[FEATURE REQUEST] Separate package repositories into the previous per major version structure
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 15.7k
- Forks
- 5.6k
- Avg merge
- 2d 44m
- Merged PRs (30d)
- 80
Description
Is your feature request related to a problem? Please describe.
Currently, all salt packages are in a single repo. That means both LTS and STS releases are in the same repo. Anyone who wants to mirror the repository, and only target a specific version, needs to do extra work that is often hacky to separate the different versions. Specifically, someone who wants to stick to LTS only releases and mirror.
For RPMs I see there is an attempt to implement a workaround with excludes, which also creates a timebomb for someone in the future using an outdated repo file. This is hacky.
https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.repo
[salt-repo-3006-lts]
name=Salt Repo for Salt v3006 LTS
baseurl=https://packages.broadcom.com/artifactory/saltproject-rpm/
skip_if_unavailable=True
priority=10
enabled=1
enabled_metadata=1
gpgcheck=1
exclude=*3007* *3008* *3009* *3010*
gpgkey=https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public
[salt-repo-3007-sts]
name=Salt Repo for Salt v3007 STS
baseurl=https://packages.broadcom.com/artifactory/saltproject-rpm/
skip_if_unavailable=True
priority=10
enabled=0
enabled_metadata=1
gpgcheck=1
exclude=*3006* *3008* *3009* *3010*
gpgkey=https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public
[salt-repo-latest]
name=Salt Repo for Salt LATEST release
baseurl=https://packages.broadcom.com/artifactory/saltproject-rpm/
skip_if_unavailable=True
priority=10
enabled=0
enabled_metadata=1
gpgcheck=1
gpgkey=https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public
Unfortunately the above can't easily be implemented in a mirroring tool such as Foreman/Satellite.
And Debian/Ubuntu
https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.sources
X-Repolib-Name: Salt Project
Description: Salt has many possible uses, including configuration management.
Built on Python, Salt is an event-driven automation tool and framework to deploy,
configure, and manage complex IT systems. Use Salt to automate common
infrastructure administration tasks and ensure that all the components of your
infrastructure are operating in a consistent desired state.
- Website: https://saltproject.io
- Public key: https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public
Enabled: yes
Types: deb
URIs: https://packages.broadcom.com/artifactory/saltproject-deb
Signed-By: /etc/apt/keyrings/salt-archive-keyring.pgp
Suites: stable
Components: main
For Debina/Ubuntu, its one repo, there is no separation workaround like for RPMs.
Describe the solution you'd like
Repository per major version as before
Describe alternatives you've considered
Users can use the repos directly, and use tools such as dnf versionlock or apt-mark hold. However, for anyone wanting to mirror only LTS releases, the only alternative is implementing multi staged mirror where some middleware implements package version filtering.
Additional context
Most popular OSS ships separate repositories for major versions of their software
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the salt.repo and salt.sources files linked in the issue, along with the current package repository layout. Determine how repositories can be separated per major version for RPM and Debian/Ubuntu while supporting mirroring. Done means users can mirror only an LTS or selected major-version repository without filtering packages themselves.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- debian, ubuntu
- Domain
- devops, infrastructure, release
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100