Problem
The repo: grammar exists and sync can add/remove package repositories, but there is no discovery. Users must manually write repo:apt:ppa:x/y or repo:dnf:https://... for repositories they already have configured.
Current behavior
Repos are declared, never detected. adopt discovers packages but not where they come from.
Proposed behavior
shall adopt (or shall adopt repos) should detect:
- apt: Parse
/etc/apt/sources.list and /etc/apt/sources.list.d/*.list + sources.list.d/*.sources (DEB822 format)
- yum/dnf: Parse
/etc/yum.repos.d/*.repo
- pacman: Parse
/etc/pacman.conf (registered repos) and /etc/pacman.d/mirrorlist
- brew:
brew tap
- snap:
snap list (core/stable channels vs. edge/beta)
- flatpak:
flatpak remotes
- nix: Channels and flake registries
- Windows: winget sources, scoop buckets
Each should produce a repo:BACKEND:SPEC declaration.
Scope questions
- Should PPAs that are just dead/404 be flagged rather than adopted?
- Official distro repos (e.g.,
archive.ubuntu.com) — skip or include?
- A user may have repos that conflict (e.g., two different Node version repos). Should adopt detect conflicts?
Problem
The
repo:grammar exists andsynccan add/remove package repositories, but there is no discovery. Users must manually writerepo:apt:ppa:x/yorrepo:dnf:https://...for repositories they already have configured.Current behavior
Repos are declared, never detected.
adoptdiscovers packages but not where they come from.Proposed behavior
shall adopt(orshall adopt repos) should detect:/etc/apt/sources.listand/etc/apt/sources.list.d/*.list+sources.list.d/*.sources(DEB822 format)/etc/yum.repos.d/*.repo/etc/pacman.conf(registered repos) and/etc/pacman.d/mirrorlistbrew tapsnap list(core/stable channels vs. edge/beta)flatpak remotesEach should produce a
repo:BACKEND:SPECdeclaration.Scope questions
archive.ubuntu.com) — skip or include?