-
Notifications
You must be signed in to change notification settings - Fork 373
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Internal repos-config
new syntax
#6393
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd be interested in a crash course on OpamPp
at the next meeting to be able to understand the new Repos_configSyntax
module better but overall otherwise that looks fine to me.
We might also want to discuss removing the soft/hard upgrade distinction.
(fun ~pos:_ repos -> | ||
let repos, errs = List.split repos in | ||
let repos = List.filter_map Fun.id repos in | ||
let map = OpamRepositoryName.Map.of_list repos in | ||
let errs = List.flatten errs in | ||
map, errs) | ||
(fun (map, _errs) -> | ||
OpamRepositoryName.Map.bindings map | ||
|> List.map (fun x -> Some x, [])) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These two functions can be done more efficiently in one fold each
|
||
# Packages matching: any | ||
# No matches found | ||
### sh -c "rm OPAM/repo/state-*.cache" | ||
### opam list -A | ||
[WARNING] Errors in ${BASEDIR}/OPAM/repo/repos-config, some fields have been ignored: | ||
- At ${BASEDIR}/OPAM/repo/repos-config:2:16-2:23:: | ||
expected url | ||
- In ${BASEDIR}/OPAM/repo/repos-config: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is the reason we're loosing the position here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OpamFormat.section does not keep positions
…y are needed from repo/switch driven upgrades
…from repo or switch change
let v2_3 = OpamVersion.of_string "2.3" | ||
|
||
let from_2_2_to_2_3 ~on_the_fly:_ _ conf = conf, gtc_none | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure that it is needed...
It is quite difficult and misleading to repository related information in the
repos-config
file (like in #4933 and #6283).The current format contain a list with a some optional elements, which complicated the parsing
The PR implements a new syntax for this file: each repository is a section with it's own defined labeled fields:
Adding then a new field is quite easy.
This change implies an hard upgrade (no best effort loading if read only) to update the opam root.
fix #6327
TODO: