Repository navigation
Description
We have classes that someone can use to resolve versions using gitlab tags and we have options for downloading release archives from somewhere other than pypi.org. Using those is cumbersome, because you have to make a plugin and you have to know the URL patterns for downloading automatically created archives. We should add some configuration options to make this easier.
The configuration might look like
download_source:
mode: [None, url, gitlab]
url: https://gitlab.com/path/to/repo
clone_repo: true/false (default to false)
resolver_dist:
resolve_with_tags: true/false (default to false)
tag_pattern: (regex, defaults to something like "v?(\d+(\.\d+)*)")When the download_source.mode is set to "gitlab", fromager should automatically recognize that it needs to treat the package as coming from gitlab and make some internal decisions based on that information.
The download_source.url in that case should point to the gitlab project. Other information will be derived from that project, including paths to archive tarballs.
If download_source.clone_repo is false, fromager will automatically derive the URL of the git archive created from a tag and use that when downloading the source.
If download_source.clone_repo is set to true, the git repo will be cloned at the tag instead of downloaded. The existing git_options will be applied.
Today, the default resolver behavior is to look at packages on pypi.org. If resolver_dist.resolve_with_tags is set to true, and download_source.mode is set to "gitlab" then a resolver will use the tags in the gitlab repository to find versions instead. The resolver_dist.tag_pattern can be used to filter the tags that are interpreted as versions.
Activity
LalatenduMohanty commentedon Nov 12, 2025
We should first create the design and get it reviewed before doing the code implementation.
mprpic commentedon Nov 5, 2026
Closing as done: #1414 added the
gitlab-tag-downloadandgitlab-tag-gitsource providers, so GitLab projects can be configured in package settings without a plugin.If you feel this change is still needed, feel free to reopen this issue. Thank you!