heptapod issueshttps://foss.heptapod.net/groups/heptapod/-/issues2024-03-21T13:27:24Zhttps://foss.heptapod.net/heptapod/heptapod/-/issues/672Timeout error while rendering a commit diff2024-03-21T13:27:24ZGeorges RacinetTimeout error while rendering a commit diffSeveral occurrences on this instance of errors while highlightneing MR commit diffs:
```
Exception:
class: Timeout::Error
message: execution expired
backtrace:
lib/rouge/formatters/html_gitlab.rb:26:in `block (2 levels) in s...Several occurrences on this instance of errors while highlightneing MR commit diffs:
```
Exception:
class: Timeout::Error
message: execution expired
backtrace:
lib/rouge/formatters/html_gitlab.rb:26:in `block (2 levels) in stream'
lib/rouge/formatters/html_gitlab.rb:25:in `each'
lib/rouge/formatters/html_gitlab.rb:25:in `block in stream'
lib/rouge/formatters/html_gitlab.rb:19:in `stream'
lib/gitlab/highlight.rb:75:in `block in highlight_rich'
lib/gitlab/highlight.rb:75:in `highlight_rich'
lib/gitlab/highlight.rb:64:in `highlight_text'
lib/gitlab/highlight.rb:31:in `highlight'
lib/gitlab/highlight.rb:10:in `highlight'
app/presenters/blob_presenter.rb:15:in `highlight'
lib/gitlab/diff/highlight.rb:156:in `highlighted_blob_lines'
lib/gitlab/diff/highlight.rb:148:in `new_lines'
lib/gitlab/diff/highlight.rb:124:in `blob_highlighting'
lib/gitlab/diff/highlight.rb:89:in `highlight_line'
lib/gitlab/diff/highlight.rb:60:in `apply_syntax_highlight'
lib/gitlab/diff/highlight.rb:34:in `block in highlight'
lib/gitlab/diff/highlight.rb:29:in `map'
lib/gitlab/diff/highlight.rb:29:in `with_index'
lib/gitlab/diff/highlight.rb:29:in `highlight'
lib/gitlab/diff/file.rb:238:in `highlighted_diff_lines'
lib/gitlab/diff/parallel_diff.rb:17:in `parallelize'
lib/gitlab/diff/file.rb:243:in `parallel_diff_lines'
app/views/projects/diffs/_parallel_view.html.haml:5
app/views/projects/diffs/viewers/_text.html.haml:6
app/views/projects/diffs/_viewer.html.haml:14
app/views/projects/diffs/_content.html.haml:11
app/views/projects/diffs/_file.html.haml:42
app/views/projects/diffs/_diffs.html.haml:39
app/views/projects/commit/show.html.haml:15
```
I thought for a while it was due to memory pressure created by HGitaly, but it also happened while its footprint was small.Heptapod 1.3.2https://foss.heptapod.net/heptapod/heptapod/-/issues/671API: POST /projects with import_url results in: "is not a valid HTTP Git repo...2022-06-12T09:01:05Zmarc-guentherAPI: POST /projects with import_url results in: "is not a valid HTTP Git repository"I try to use the Rest API to create a new project (`POST /projects`) and have it automatically import from an existing Mercurial repository by specifying `import_url`.
This works just fine in the UI, but fails in the API with:
`{"messag...I try to use the Rest API to create a new project (`POST /projects`) and have it automatically import from an existing Mercurial repository by specifying `import_url`.
This works just fine in the UI, but fails in the API with:
`{"message":"http://.... is not a valid HTTP Git repository"}`
From a quick glance at the source code, in `lib/api/projects.rb` there is a call to `validate_git_import_url()`, which seems to check for a Git repository and doesn't know about Mercurial.
Example `curl` call:
```
curl -s --header 'PRIVATE-TOKEN: API_TOKEN' --header 'Content-Type: application/json' --data '{"path":"my-repository","import_url":"http://user:password@hg.local/my_repository"}' http://gitlab.local/api/v4/projects
```https://foss.heptapod.net/heptapod/heptapod/-/issues/670Changing source/target branch breaks the merge button2022-10-18T08:53:31ZRaphaël GomèsChanging source/target branch breaks the merge button### Summary
Sometimes a user decides to rebase their changes to a different Mercurial branch (in mercurial-devel, a switch from `default` to `stable` is common when we figure out it's a bugfix for a stable release) the source branch cha...### Summary
Sometimes a user decides to rebase their changes to a different Mercurial branch (in mercurial-devel, a switch from `default` to `stable` is common when we figure out it's a bugfix for a stable release) the source branch changes, which closes the MR. The user (or anyone with permissions) can choose to change the target branch from the Web UI to revive the MR. This causes a stuck `Checking pipeline status` + greyed-out merge button with `Merge blocked: all merge request dependencies must be merged or closed.` even though the new pipeline had succeeded on push.
@gracinet tells me this is load-dependent and not 100% reproducible.
### What is the current *bug* behavior?
Pipeline status never finishes loading, merge button is greyed out wrongly warning about unmet dependencies.
### What is the expected *correct* behavior?
New pipeline (with correct source and target branches) is attached to the MR and the merge button is usable like normal.
#### Details about the Heptapod instance where the bug occurs
foss.heptapod.net with:
Heptapod 0.30.2 (GitLab CE 14.8.6)
Mercurial 6.1.1 / Python 3.9.12 / hg-evolve 10.5.1Heptapod 0.31.2https://foss.heptapod.net/heptapod/heptapod/-/issues/669Snippets default branch discrepancy2024-03-21T13:27:25ZGeorges RacinetSnippets default branch discrepancySeen in [Docker-based functional tests for Heptapod 0.31.0rc1](https://foss.heptapod.net/heptapod/heptapod-tests/-/jobs/552344) and reproduced outside of CI, in Docker context only.
In Heptapod, Snippet repositories should behave exactl...Seen in [Docker-based functional tests for Heptapod 0.31.0rc1](https://foss.heptapod.net/heptapod/heptapod-tests/-/jobs/552344) and reproduced outside of CI, in Docker context only.
In Heptapod, Snippet repositories should behave exactly as in upstream GitLab. In particular, they are Git repositories.
The problem encountered is that their default GitLab branch (target of the `HEAD` symbolic reference) is `main` but the actual branch with content is `branch/default`. Preferred fix should be not to interfere with GitLab and use whatever it considers the default default branch to be.
Could simply be that we have a hardcoded check on `master`.Heptapod 1.3.2https://foss.heptapod.net/heptapod/heptapod/-/issues/667Incremental backups2024-03-21T13:42:49ZGeorges RacinetIncremental backupsAs a follow-up to heptapod#534, we don't lack much to support incremental backups (mostly `CreateBundleFromRefList` in HGitaly understanding the negative refs that `gitaly-backup` will send it).As a follow-up to heptapod#534, we don't lack much to support incremental backups (mostly `CreateBundleFromRefList` in HGitaly understanding the negative refs that `gitaly-backup` will send it).Heptapod 1.4https://foss.heptapod.net/heptapod/heptapod/-/issues/665Protect base image in development branches2022-05-13T14:37:12ZGeorges RacinetProtect base image in development branchesIt is very important for the release process that the CI base image is the correct one.
By definition, it cannot be done in the release branch, because the CI base image is used in them precisely to know which of the development branche...It is very important for the release process that the CI base image is the correct one.
By definition, it cannot be done in the release branch, because the CI base image is used in them precisely to know which of the development branches it *currently* relates to.
The main sources of unwanted changes being merges from `heptapod-stable` to `heptapod` (creeping only afterwards to the release branches)
Ideas:
1. adding a protection for the *development* branches (as part of CI jobs) would catch most of them. Usually those merges don't go through CI, but knowing slowly after the fact is perhaps good enoug.
2. create a precommit hook and deploy it through HDK. Caveat: In my case, the faulty merges could happen outside of HDK context. Thankfully, I have only a couple non-HDK clones (shares, actually).https://foss.heptapod.net/heptapod/hgitaly/-/issues/97RefService.ListRefs: implement sort options2024-03-10T13:16:26ZGeorges RacinetRefService.ListRefs: implement sort optionsThe first implementation of `ListRefs` (for #90) will be the minimal one for `gitaly-backups`, which does not use the the sort options.
Here is the only occurence of `ListRefsRequest` in Gitaly's code base as of GitLab 14.8, outside of ...The first implementation of `ListRefs` (for #90) will be the minimal one for `gitaly-backups`, which does not use the the sort options.
Here is the only occurence of `ListRefsRequest` in Gitaly's code base as of GitLab 14.8, outside of the service implementation and code generated from protocol (`internal/backup/backup.go`):
```go
// listRefs fetches the full set of refs and targets for the repository
func (mgr *Manager) listRefs(ctx context.Context, server storage.ServerInfo, repo *gitalypb.Repository) ([]*gitalypb.ListRefsResponse_Reference, error) {
refClient, err := mgr.newRefClient(ctx, server)
if err != nil {
return nil, fmt.Errorf("list refs: %w", err)
}
stream, err := refClient.ListRefs(ctx, &gitalypb.ListRefsRequest{
Repository: repo,
Head: true,
Patterns: [][]byte{[]byte("refs/")},
})
```https://foss.heptapod.net/heptapod/foss.heptapod.net/-/issues/127Wnat to host personal dotfiles with mercurial2022-05-01T02:06:44ZRobin RaggedWnat to host personal dotfiles with mercurial## Description of the projects to be hosted
- Project Name:
- Project URL:
- Project Maintainers:
- Project License:
Please explain here how they meet our current criteria.
### Main criteria
- [X] Free / Open Source
- [X] main develo...## Description of the projects to be hosted
- Project Name:
- Project URL:
- Project Maintainers:
- Project License:
Please explain here how they meet our current criteria.
### Main criteria
- [X] Free / Open Source
- [X] main development repositories
- [X] you are an official maintainer of the project
- [X] agreement to acknowledge where appropriate the help provided by Octobus
and Clever Cloud by hosting on foss.heptapod.net
### Additional information
Knowing this can help in case there are constraints on resources and/or
administrators availability at the time of the request. It can also help us
suggest the right solution for the needs of the project.
- is the project officially released? In downstream distributions or
packaging systems?
- estimation of the user base if possible, or number of downloads,
reverse dependencies…
- number of maintainers and regular contributors
- where is the project currently hosted? Are there issue trackers,
review systems, CI/CD to hook to or to replace somehow?
### Hosting type
What would you like to have?
- [ ] a top-level group
- [ ] a project in an existing group
- [X] just a project in your personal namespace
## Post approval maintainer task list
See [README](README.md#maintainer-task-list-for-the-import-to-happen)
for explanations.
- [X] Reviewing [Heptapod workflow](https://heptapod.net/pages/faq.html#workflow)
## Post import maintainer task list
- [X] Add the Octobus and Clever cloud acknowledgement at the selected place.
- [X] Communicate about the migration to help others to aware of the options
(for example on mastodon, twitter, bitbucket thread, mailing list, …)https://foss.heptapod.net/heptapod/heptapod/-/issues/661Tags cache cleanup for Mercurial 6.1.12024-03-21T13:27:23ZGeorges RacinetTags cache cleanup for Mercurial 6.1.1Mercurial 6.1.1 will automatically be included with next release.
It contains a fix for a [bug with tags after merges](https://bz.mercurial-scm.org/show_bug.cgi?id=6673) that needs server-side cleaning (also to stop propagation to client...Mercurial 6.1.1 will automatically be included with next release.
It contains a fix for a [bug with tags after merges](https://bz.mercurial-scm.org/show_bug.cgi?id=6673) that needs server-side cleaning (also to stop propagation to clients).
We'll need a background migration that amounts to this:
```
rm .hg/cache/*tag*
hg debugupdatecache
```
Problem underlined by the merge of Heptapod Shell in the course of heptapod#658, and *not* fixed by updating Mercurial on the client side.Heptapod 1.3.2https://foss.heptapod.net/heptapod/heptapod/-/issues/659Mercurial Bitbucket Archive imports2022-04-05T22:07:55ZSamuel BronsonMercurial Bitbucket Archive importsIt would be nice to be able to import project archives from <https://bitbucket-archive.softwareheritage.org/>, along with their issues, PRs, and whatever else is actually in those dumps.
Searching for how to do this turns up <https://he...It would be nice to be able to import project archives from <https://bitbucket-archive.softwareheritage.org/>, along with their issues, PRs, and whatever else is actually in those dumps.
Searching for how to do this turns up <https://heptapod.net/pages/tuto-bb-import.html>, but unfortunately that's actually about importing from Bitbucket itself, which is kind of irrelevant for those projects that have now vanished without a trace from bitbucket.com (although one hopes that the **logic** would still be applicable).
(I personally was hoping to try reconstituting [hgbook/hgbook](https://bitbucket-archive.softwareheritage.org/projects/hg/hgbook/hgbook.html) and [hgbook/website](https://bitbucket-archive.softwareheritage.org/projects/hg/hgbook/website.html).)https://foss.heptapod.net/heptapod/heptapod/-/issues/655Mercurial: use server.validate option2022-03-31T21:35:41ZGeorges RacinetMercurial: use server.validate optionIt can prevent some repository corruptions to be pushed to the server, where they are always more problematic to fix.
Performance assessment can be done in advance on foss.h.n through local configuration.;It can prevent some repository corruptions to be pushed to the server, where they are always more problematic to fix.
Performance assessment can be done in advance on foss.h.n through local configuration.;https://foss.heptapod.net/heptapod/heptapod/-/issues/652Wiki preview broken with ReStructuredText page2022-03-29T21:38:46ZGeorges RacinetWiki preview broken with ReStructuredText pageTo reproduce, go to https://foss.heptapod.net/mercurial/tortoisehg/thg/-/wikis/developers/MacOSX, then to the edit form, and check the content of the preview tab. The problem can be seen without doing any modification.To reproduce, go to https://foss.heptapod.net/mercurial/tortoisehg/thg/-/wikis/developers/MacOSX, then to the edit form, and check the content of the preview tab. The problem can be seen without doing any modification.https://foss.heptapod.net/heptapod/foss.heptapod.net/-/issues/126TVM2022-03-29T05:10:50ZXinwei LiuTVM## Description of the projects to be hosted
- Project Name:
- Project URL:
- Project Maintainers:
- Project License:
Please explain here how they meet our current criteria.
### Main criteria
- [x] Free / Open Source
- [ ] main develo...## Description of the projects to be hosted
- Project Name:
- Project URL:
- Project Maintainers:
- Project License:
Please explain here how they meet our current criteria.
### Main criteria
- [x] Free / Open Source
- [ ] main development repositories
- [ ] you are an official maintainer of the project
- [ ] agreement to acknowledge where appropriate the help provided by Octobus
and Clever Cloud by hosting on foss.heptapod.net
### Additional information
Knowing this can help in case there are constraints on resources and/or
administrators availability at the time of the request. It can also help us
suggest the right solution for the needs of the project.
- is the project officially released? In downstream distributions or
packaging systems?
- estimation of the user base if possible, or number of downloads,
reverse dependencies…
- number of maintainers and regular contributors
- where is the project currently hosted? Are there issue trackers,
review systems, CI/CD to hook to or to replace somehow?
### Hosting type
What would you like to have?
- [ ] a top-level group
- [ ] a project in an existing group
- [x] just a project in your personal namespace
## Post approval maintainer task list
See [README](README.md#maintainer-task-list-for-the-import-to-happen)
for explanations.
- [ ] Reviewing [Heptapod workflow](https://heptapod.net/pages/faq.html#workflow)
## Post import maintainer task list
- [ ] Add the Octobus and Clever cloud acknowledgement at the selected place.
- [ ] Communicate about the migration to help others to aware of the options
(for example on mastodon, twitter, bitbucket thread, mailing list, …)https://foss.heptapod.net/heptapod/foss.heptapod.net/-/issues/125Hosting of AMCTool2022-03-18T15:42:32ZArno MullerHosting of AMCTool## Description of the projects to be hosted
- Project Name: AMCTool
- Project URL: https://amu-tools.org/amctool/amctool.html
- Project Maintainers: Arno Muller
- Project License: GPLv3
The AMCTool is an open source tools used by healt...## Description of the projects to be hosted
- Project Name: AMCTool
- Project URL: https://amu-tools.org/amctool/amctool.html
- Project Maintainers: Arno Muller
- Project License: GPLv3
The AMCTool is an open source tools used by healthcare staff to monitor the use of antimicrobials.
The software has been in development for more than 10 years with regular releases and source code available on the project url.
The software was hosted in bitbucket using mercurial (private repository). Since they dropped mercurial, I am looking for another solution on mercurial.
### Main criteria
- [x] Free / Open Source
- [x] main development repositories
- [x] you are an official maintainer of the project
- [x] agreement to acknowledge where appropriate the help provided by Octobus
and Clever Cloud by hosting on foss.heptapod.net
### Additional information
Knowing this can help in case there are constraints on resources and/or
administrators availability at the time of the request. It can also help us
suggest the right solution for the needs of the project.
- is the project officially released? In downstream distributions or
packaging systems?
The project is officially released. At the moment, the tool is only available on windows, but I'm working on having a debian package
- estimation of the user base if possible, or number of downloads,
reverse dependencies…
The tool is used by healthcare specialists in facilities in low and middle income countries or researchers for monitoring the use of antimicrobials. The tool is free to allow interested people in resource limited settings to us it.
The tool is developed in python using pyqt5 and sqlalchemy.
- number of maintainers and regular contributors
Currently the project has one maintainer
- where is the project currently hosted? Are there issue trackers,
review systems, CI/CD to hook to or to replace somehow?
The project has an URL where the source codes is provided as archive.
### Hosting type
What would you like to have?
- [x] a top-level group
- [ ] a project in an existing group
- [ ] just a project in your personal namespace
## Post approval maintainer task list
See [README](README.md#maintainer-task-list-for-the-import-to-happen)
for explanations.
- [x] Reviewing [Heptapod workflow](https://heptapod.net/pages/faq.html#workflow)
## Post import maintainer task list
- [x] Add the Octobus and Clever cloud acknowledgement at the selected place.
- [x] Communicate about the migration to help others to aware of the options
(for example on mastodon, twitter, bitbucket thread, mailing list, …)Georges RacinetGeorges Racinethttps://foss.heptapod.net/heptapod/foss.heptapod.net/-/issues/124Request for FOSS hosting of my Bash Shlet Project2022-03-07T05:41:52ZCraig Ozancinc.ozancin@gmail.comRequest for FOSS hosting of my Bash Shlet Project## Description of the projects to be hosted
- Project Name: Shlet
- Project URL: None at this time
- Project Maintainers: Craig Ozancin
- Project License: MIT License (MIT)
Please explain here how they meet our current criteria.
### ...## Description of the projects to be hosted
- Project Name: Shlet
- Project URL: None at this time
- Project Maintainers: Craig Ozancin
- Project License: MIT License (MIT)
Please explain here how they meet our current criteria.
### Main criteria
- [X] Free / Open Source
- [X] main development repositories
- [X] you are an official maintainer of the project
- [X] agreement to acknowledge where appropriate the help provided by Octobus
and Clever Cloud by hosting on foss.heptapod.net
### Additional information
Knowing this can help in case there are constraints on resources and/or
administrators availability at the time of the request. It can also help us
suggest the right solution for the needs of the project.
- is the project officially released? In downstream distributions or
packaging systems?
Not yet. but preparing for first beta release
- estimation of the user base if possible, or number of downloads,
reverse dependencies…
No idea
- number of maintainers and regular contributors
Currently 1
- where is the project currently hosted? Are there issue trackers,
Source Hut (but they do not have the mercurial evolve/topic support that I desire)
review systems, CI/CD to hook to or to replace somehow?
### Hosting type
What would you like to have?
- [X] a top-level group
- [ ] a project in an existing group
- [ ] just a project in your personal namespace
## Post approval maintainer task list
See [README](README.md#maintainer-task-list-for-the-import-to-happen)
for explanations.
- [X] Reviewing [Heptapod workflow](https://heptapod.net/pages/faq.html#workflow)
## Post import maintainer task list
- [ ] Add the Octobus and Clever cloud acknowledgement at the selected place.
- [ ] Communicate about the migration to help others to aware of the options
(for example on mastodon, twitter, bitbucket thread, mailing list, …)https://foss.heptapod.net/heptapod/heptapod/-/issues/646Display changeset obsolescence information2022-10-18T08:30:42ZGeorges RacinetDisplay changeset obsolescence informationIt would be nice in various places to display the information that a given changeset is obsolete.
Of course the commit page would be a prime candidate, but some other pages could benefit it (if not too expensive of course).It would be nice in various places to display the information that a given changeset is obsolete.
Of course the commit page would be a prime candidate, but some other pages could benefit it (if not too expensive of course).https://foss.heptapod.net/heptapod/hgitaly/-/issues/93Gitaly Comparison tests and missing message fields2022-03-04T12:42:53ZGeorges RacinetGitaly Comparison tests and missing message fieldsIt would be real nice to have equality tests that make a difference between missing message fields and message fields having the default value.
See #92 for details about how deceiving the Python lib can be.
A solution will require some...It would be real nice to have equality tests that make a difference between missing message fields and message fields having the default value.
See #92 for details about how deceiving the Python lib can be.
A solution will require some reflection, which I *suppose* should be possible.https://foss.heptapod.net/heptapod/heptapod/-/issues/643Mercurial native migration: user feedback on errors2022-03-17T16:11:26ZGeorges RacinetMercurial native migration: user feedback on errorsCurrently, if there is an error, the process just stops, the project stays archived and the banner disappears after a few minutes (expiration of the exclusive lease in Redis). Errors can be seen in logs, but that requires systems adminis...Currently, if there is an error, the process just stops, the project stays archived and the banner disappears after a few minutes (expiration of the exclusive lease in Redis). Errors can be seen in logs, but that requires systems administrator level acces.
This is obviously suboptimal, we need to provide users with proper feedback. Email is maybe an option to avoid the need to add persistence for errors (would require a new table).https://foss.heptapod.net/heptapod/heptapod/-/issues/638Import from HGWeb based server results in empty repository2022-03-01T13:06:50ZDirk HeinrichsImport from HGWeb based server results in empty repository### Summary
After setting up a 0.29.1 test instance via Docker, allowing outbound connections, configuring SMTP and creating a local user, said user isn't able to import a simple test repository from a HGWeb based Mercurial server using...### Summary
After setting up a 0.29.1 test instance via Docker, allowing outbound connections, configuring SMTP and creating a local user, said user isn't able to import a simple test repository from a HGWeb based Mercurial server using "Import Repository URL". The import finishes but the resulting repository is empty.
### Steps to reproduce
Import Mercurial repo from HGWeb based server
### What is the current *bug* behavior?
Repository is created, but empty.
### What is the expected *correct* behavior?
Repository should have been imported.
### Relevant logs and/or screenshots
Maybe relevant: The repository contains "namespaced branches", like "foo/bar/baz". The log shows:
```
[2022-03-01 12:35:24 +0000] [389] [ERROR] repo:/var/opt/gitlab/git-data/repositories/@hashed/d4/73/d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35.hg [hg] NotADirectoryError: [Errno 20] Not a directory: b'/var/opt/gitlab/git-data/repositories/@hashed/d4/73/d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35.git/refs/heads/branch/foo/bar'
```
Looks like Git conversion is still done...
#### Details about the Heptapod instance where the bug occurs
- Type of deployment: Docker
- 0.29.1https://foss.heptapod.net/heptapod/foss.heptapod.net/-/issues/122Hosting request2022-02-24T19:40:56ZSushrut GuptaHosting requestNeed to host repos for dumpsNeed to host repos for dumps