As a user I want to sync upstream repositories using "Flat Repository Format"
It appears some APT repositories do not store their release files somewhere beneath a
dists/ folder, using the repo root (or some arbitrary path) instead.
Apparently this repository can be included in an
/etc/apt/sources.list file as follows (at least on Ubuntu):
deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /
There is some Ubuntu documentation hinting at specifying an "exact path" here: http://manpages.ubuntu.com/manpages/xenial/man5/sources.list.5.html (Also see the examples).
Some initial thoughts:
- We need to make sure the solution does not break any existing use cases.
- If there is no unambiguous way to handle these new cases using the existing
distributionfield, then we need a new field/option in our remotes. (use this as a last resort)
- We need to make sure we consider every instance of hard coded
distspath segments in our solution.
- The exception is the simple publisher which generally ignores upstream repo structure in favour of its own.
- How should the structured publisher deal with so structured repos? (It probably needs to stay true to its word and retain upstream Release and Packages file placement.)
- We will need to think about fixtures and tests for this.
- I consider this to be a new feature, not a bugfix.
It appears Debian has a specification for this as well: https://wiki.debian.org/DebianRepository/Format#Flat_Repository_Format
They refer to this as a "Flat Repository Format".
- Subject changed from As a user I want to sync upstream repositories that do not store Release files within /dists/ to As a user I want to sync upstream repositories using "Flat Repository Format"
Needs further discussion:
We could add a separate
FlatAptRemote, or try to use the existing
If we do go for two remotes, a common parent class would probably make sense.
Please register to edit this issue