@rosssmyth:matrix.org | Another idea I have been ruminating upon is something like:
- Create a package set like
rustCrates, but do not populate it with anything initially
- Create builders similar to the above idea (add the source, add a symlink builder for cargo-vendor)
- When someone wants to add a Rust package, a new process is used:
- Use a tool that processes lock files, and checks if the required crates are in the package set
- If not, it emits the latest semver-compatible to a
by-name-like directory tree using the crates.to name
- Each ~week a program similar to the one I made is ran:
- For each crate in the package set, update each semver to the latest-compatible one, should be relatively fast since no downloading is required, the version is in the index, and the required hash is in the index
- Write the latest semver-compatible-version and hash in the files
- Check the rustsec db as well, and if crates are yanked.
- For program dependencies in which the semver that is required is already in the pkgset, they do not touch the package set. If they need to wait a ~week for the next version to the bumped to that is fine.
| 20:09:31 |