Add deb virtual repositories #138
Reference in New Issue
Block a user
Delete Branch "benvin/virtual-deb"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Virtual repos merge helm, pypi and rpm but not deb, so several apt repos (e.g. github_deb remotes plus a local deb) cannot be served as one apt source.
./) anddists/<suite>layouts; member order wins duplicate (Package, Version, Architecture), stanzas missing any are keptRequires unkin/artifactapi#147.
Acquire-By-Hash: no), so theprevgeneration never helps for deb:cachedFilecheckscurfirst. A client holding Release gen N whose Packages fetch lands after a re-merge (another client's Release past 60s TTL) gets gen N+1 bytes → apt "Hash Sum mismatch". → serveby-hash/SHA256/<hash>from both generations and advertiseAcquire-By-Hash: yes, or serve Packages fromprevwhen the client's Release is older (at minimum, add a test for this window)./is trimmed from member Filename; a member Filename of./foo.debbecomesmember/./foo.deb, whichmemberSegmentsrejects with ErrBadPath (apt install fails). →path.Cleanthe Filename before prefixing; add a test case.\x00\x00and every one after the first is dropped silently. → skip dedupe (or drop with an error) when Package is empty.gensis keyed by client-supplied suite (dists/<any>/) and grows unbounded for every suite that merges successfully, never evicted. → bound or evict entries older than mergeTTL*N.prevserved after re-merge) or per-virtual key isolation for the refactored shared cache; the rpm path is only covered by pre-existing tests. → add a test for each against the sharedmerged/cachedFile../layout is exercised with real apt; thedists/<suite>path (Release +Packages.gzfetch by apt) is unit-tested only. → add a suite-layout apt case, or note it as untested.rpmGen→repoGen,fetchMembers,cachedRPMFile→cachedFile) is bundled with the deb feature. → split: PR 1 pure refactor (rpm behaviour unchanged, existing rpm tests as proof); PR 2 deb merger + engine wiring + e2e.! grep -q '^Filename: vdebs-b/' $idxnever fails underset -e(bash exempts!-negated commands), so the "b is deduped" assertion is vacuous → useif grep -q ...; then exit 1; fiorgrep -qv-style check.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.