Skip to content

automate gitlab mode #729

Closed
Closed

Description

@dhellmann

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

  1. LalatenduMohanty commented on Nov 12, 2025

    @LalatenduMohanty
    Member

    We should first create the design and get it reviewed before doing the code implementation.

  2. mprpic commented on Nov 5, 2026

    @mprpic
    Contributor

    Closing as done: #1414 added the gitlab-tag-download and gitlab-tag-git source 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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions