-
Notifications
You must be signed in to change notification settings - Fork 1.2k
FAQ
See https://github.com/ocaml/opam-repository/wiki/Lower-bound-check---DYI
Create a new draft PR to restrict the previous version and merge it after version N is merged. e.g. #24243 (comment)
Archives of packages can be found from their checksum in alternative repository endpoints such as:
- https://gitlab.ocamlpro.com/OCamlPro/opam-repository/-/tree/cached
- https://opam.robur.coop
- https://opam.ocaml.org
Simply go to these url at the path: /cache/<name of checksum algorithm>/<first two characters of the hash>/<hash>.
For example, dune.1.0.0's archive has the following checksum: md5=7435bc09a3967bf6da01e6cb7d37ccc3 so the archive is available at the following url:
https://opam.ocaml.org/cache/md5/74/7435bc09a3967bf6da01e6cb7d37ccc3
If the original tarballs are available, we first ask the maintainers to replace their tarballs with the ones from the cache. When this is not possible or they are reluctant, we upload them to the opam-source-archives repository and update the opam files to point at the new location.
Note that if none of the known repositories have the archive you are looking for, the last resort could be archive.softwareheritage.org. However note that the checksum will not be the same as with the original archive and thus should not be trusted at face value.
There is a (rough and preliminary) script for automating source repair at https://github.com/mseri/get_missing .
What if a package I depend has been archived?
If your project is current and ongoing, it shouldn't depend on archived packages. If you need to resurrect an archived package, you have the following options:
- adopt maintenance of the package version, and make a PR for the archived project you depend on to be unarchived (i.e., moved back to the main repo)
- or convince the maintainer to put the effort into maintaining this specific version, and ask them to resurrect the package
How can I prevent a package version I depend on from being archived?
There are two ways:
- Volunteer to maintain the package version.
- Publish any packages of yours that depend on the needed version to opam, and keep them maintained (we do not archive packages that are required for maintained packages to build correctly).