-
Notifications
You must be signed in to change notification settings - Fork 20
Open
Description
I created a list of outdated packages (packages that have a newer version in the upstream repo than here).
- bheap: 2.0.0 > 1.0.0+dune (upstream uses dune)
- cmdliner: 1.1.0 > 1.0.4+dune [new release] Cmdliner.1.1.0+dune #143
- ctypes: 0.20.0 > 0.17.1+dune
- ctypes-foreign: 0.18.0 > 0.17.1+dune
- dose3: 7.0.0 > 5.0.1+dune
- extlib: 1.7.8 > 1.7.7+dune Add dune port of extlib.1.7.8 #129
- fmt: 0.9.0 > 0.8.10+dune Update fmt #89 @NathanReb [new release] fmt (0.9.0+dune) #130
- hmap: 0.8.1 > 0.8.0+dune update hmap #90 [new release] hmap (0.8.1+dune) #126
- io-page: 2.4.0 > 2.3.0+dune @Leonidas-from-XIV
io-page2.3.0 uses dune upstream #144 - menhir: 20220210 > 20200624+dune (upstream uses dune)
- menhirLib: 20220210 > 20200624+dune (upstream uses dune)
- menhirSdk: 20220210 > 20200624+dune (upstream uses dune)
- merlin: 4.4.1~4.14preview > 3.3.4+dune
- mtime: 1.4.0 > 1.3.0+dune update mtime to 1.4.0 #118 @maiste [new release] mtime (1.4.0+dune) #139
- num: 1.4 > 1.3+dune (upstream uses dune, but opam metadata uses Makefiles Release num.1.4+dune #163)
- ocamlfind: 1.9.3 > 1.8.1+dune
- ocamlgraph: 2.0.0 > 1.8.8+dune (upstream uses dune)
- opam-client: 2.1.2 > 2.0.7+dune
- opam-core: 2.1.2 > 2.0.7+dune
- opam-devel: 2.1.2 > 2.0.7+dune
- opam-file-format: 2.1.3 > 2.1.0+dune
- opam-format: 2.1.2 > 2.0.7+dune
- opam-installer: 2.1.2 > 2.0.7+dune
- opam-repository: 2.1.2 > 2.0.7+dune
- opam-solver: 2.1.2 > 2.0.7+dune
- opam-state: 2.1.2 > 2.0.7+dune
- ppx_tools: 6.5 > 6.1+dev+dune (upstream uses dune)
- ptime: 1.0.0 > 0.8.5+dune update ptime to 1.0.0 #102 [new release] ptime (1.0.0+dune) #128
- react: 1.2.2 > 1.2.1+dune @Leonidas-from-XIV [new release] react.1.2.2+dune #146
- rresult: 0.7.0 > 0.6.0+dune update rresult #92 @maiste [new release] rresult (0.7.0+dune) #140
- sexplib: v0.14.0 > v0.13.0+dune (dune port was about bigarray-compat)
- topkg: 1.0.5 > 1.0.1+dune update topkg #93 [new release] topkg (1.0.5+dune) #127
- uucp: 14.0.0 > 13.0.0+dune update uucp #94 [new release] uucp (14.0.0+dune) #124
- uuidm: 0.9.8 > 0.9.7+dune [new release] uuidm (0.9.8+dune) #131
- uuseg: 14.0.0 > 13.0.0+dune update uuseg #95 @Leonidas-from-XIV [new release] uuseg 14.0.0 #149
- uutf: 1.0.3 > 1.0.2+dune [new release] uutf (1.0.3+dune) #132
- xmlm: 1.4.0 > 1.3.0+dune @Leonidas-from-XIV [new release] xmlm.1.4.0+dune #145
- zarith: 1.12 > 1.9.1+dune update zarith #96 @TheLortex
(list based on ocaml/opam-repository@4e30c15 and c750941)
This does not always mean that an action is required - sometimes it means that dune support has been merged upstream.
We can do that process later and try to automate this down the line but let's keep this manual for now.
let latest_versions set =
let module M = OpamPackage.Name.Map in
OpamPackage.Set.fold
(fun pkg acc ->
let name = OpamPackage.name pkg in
let version = OpamPackage.version pkg in
match M.find_opt name acc with
| None -> M.safe_add name version acc
| Some v ->
if OpamPackage.Version.compare version v > 0 then
M.add name version acc
else acc)
set M.empty
let latest_versions_in_dir str =
str |> OpamFilename.Dir.of_string |> OpamRepository.packages
|> latest_versions
let main upstream overlays =
let base_packages = latest_versions_in_dir upstream in
let overlays_packages = latest_versions_in_dir overlays in
OpamPackage.Name.Map.iter
(fun name overlays_ver ->
match OpamPackage.Name.Map.find_opt name base_packages with
| None ->
Printf.printf "%s: no upstream\n" (OpamPackage.Name.to_string name)
| Some upstream_ver ->
if OpamPackage.Version.compare upstream_ver overlays_ver > 0 then
Printf.printf "%s: %s > %s\n"
(OpamPackage.Name.to_string name)
(OpamPackage.Version.to_string upstream_ver)
(OpamPackage.Version.to_string overlays_ver))
overlays_packages
let info = Cmdliner.Cmd.info "diff"
let repo n =
let open Cmdliner.Arg in
required & pos n (some string) None & info []
let term =
let open Cmdliner.Term in
const main $ repo 0 $ repo 1
let () = Cmdliner.Cmd.v info term |> Cmdliner.Cmd.eval |> Stdlib.exitMetadata
Metadata
Assignees
Labels
No labels