-
Notifications
You must be signed in to change notification settings - Fork 371
2021 Developer Meetings
- 2021.07.16
- 2021.07.08
- 2021.07.02
- 2021.06.25
- 2021.06.18
- 2021.06.10
- 2021.05.21
- 2021.05.14
- 2021.05.07
- 2021.04.30
- 2021.04.23
- 2021.04.16
- 2021.04.01
- 2021.03.26
- 2021.03.19
- 2021.03.12
- 2021.02.26
- 2021.02.19
- 2021.02.12
- 2021.01.29
- 2021.01.22
- 2021.01.15
- 2021.01.08
- #4031 - system compilers upgrade behaviour
-
#3997 -
OPAMPRECISETRACKING
issues. @dra27 thoughts (possibly posted elsewhere, or maybe I just mused):- We could write a file in the opam root which is required to have a non-integral of nanoseconds. Reading that file could confirm to opam that nanoseconds haven't been confirmed. Pros: really simple. Cons: bit hacky.
- Most files are installed now using opam .install files - i.e. we do read them. So we can compute checksums nearly for free. Why don't we always write checksum and timestamp? In this case, if the timestamp doesn't match then we use the checksum. If that does match, and we have a write lock, we update the timestamp in the changes file? Pros: could be turned on by default. Cons: bit fiddlier to implement.
-
#3983 - behaviour of
opam pin
when the pinned version matches upstream -
#3962 and #3928 - issues with non-root use of
install.sh
. Is that worth looking at in more detail? - #3876 - is there anything to do here?
-
#3850 - @avsm's revulsion to
{build}
. Decision needed! -
#3849 -
csh
specific issue. Close? - #3833 - I think the use-case is effectively a mixed pin, and so not likely to be supported. Close?
- #3793 - do we really want to do this?
-
#3766 - adopt XDG for
.opam
- #3737 - is this still an issue?
- #3586 - another system compilers one
- #3577 - signed sources
- 2020 Issue Sweep
- #4487
- #4485
- #4479
- #4468
- #4455
- #4454
- #4452
- #4446
- #4444
- #4440
- #4423
- #4422
- #4419
- #4411
- #4407
- #4406
- #4390
- #4389
- #4381
- #4380
- #4373
- #4363
- #4361
- #4345
- #4343
- #4339
- #4330
- #4318
- #4313
- #4311
- #4305
- #4291
- #4283
- #4282
- #4277
- #4272
- #4271
- #4258
- #4254
- #4245
- #4239
- #4227
- #4220
- #4216
- #4212
- #4207
- #4204
- #4203
- #4202
- #4201
- #4190
- #4185
- #4181
- #4172
- #4161
- #4158
- #4135
- #4127
- #4104
- #4103
- #4102
- #4099
- #4088
- #4067
- #4056
- #4054
- 2.1.0 - good to go?!
- 2.0.9
- Issues
- #4528 - for 2.2.0?
- #4541 - @AltGr for 2.2.0?
- #4543 - ?
- #4555 - ?
- #4557 - ?
- #4558 - for 2.2.0?
- #4565 - todo?
- #4566 - ?
- #4573 - Debian patch in this is kind of worrying!
- #4576 - ?
- #4578 - @AltGr for 2.2.0?
- #4586 - for 2.2.0, as part of Git spec?
- #4594 - possibly close or move to opam-test repo? (@dra27 will expand - to do with multicore)
- #4598 - 2.2.0?
- #4608 - ?
- #4613 - ?
- #4617 - todo?
- #4629 - todo?
- #4633 - 2.2.0?
- #4647 - todo?
- #4649 - 2.2.0?
- #4651 - 2.2.0?
- #4661 - 2.2.0?
- #4662 - close and track in new?
- #4670 - fixed?
- #4673 - 2.2.0?
- #4674 - close?
- #4686 - todo?
- #4688 - 2.2.0?
- #4690 - 2.2.0 (for monitoring)
- #4718 - ?
- #4726 - 2.2.0 (@dra27)
- #4727 - 2.2.0?
- #4730 - 2.2.0?
- #4737 - todo?
- Goals
- 2.1.0 / 2.0.9 status 🥳
- Version policy on branches
- External contributions
- Issues
- Tracker items tagged Bug
- Issues opened this year:
- Goals
- 2.1.0: @rjbou and @AltGr will be on holiday at various points until during w/b 12 Jul. Assuming nothing explodes, we'll tag 2.1.0 next week before @rjbou is off with binaries and release announcement following during w/b 12 Jul.
- 2.0.9: @dra27 forgot to ask!
- Version policy for branches. The PR containing commits for releases has been quite useful. The only problem is that not all of us can push to
OCamlPro/
. Plan:2.2.0~alpha~dev
version bump onmaster
(as done) but no direct pushes or intermediate merges to maintenance branches (apart from unrelated things such as CI fixes). The first person who wishes to cherry-pick to an old branch prepares a PR with the version bump and the cherry-pick and opens the PR; all subsequent cherry-picks are pushed to that PR until release (i.e. the maintenance branch is a series of merges). - External contributions/issues: PRs from external contributors all pinged/closed as appropriate. Issues down to #4528 above triaged/reviewed.
The emergency of #4713 stalled announcing the RC this week. The fix in #4715 is passing CI - @rjbou just checking a few more things with registering local switches (e.g. via --switch
) but once that's in we can tag rc2 and, in a nod to Groundhog Day, repeat!
Brief discussion on mechanising the binary build process - @AltGr has done something similar with GitHub Actions for Learn OCaml, and is looking at using that for the bulk of the builds for opam as well. Some of the platforms may be trickier (OpenBSD) and either need doing manually, or possibly with custom runners in GHA?
- 2.1.0: confirm release schedule; double-check release criteria
- 2.0.9: remaining plans
- LTS, minimum OCaml version and release speed
- Project Goals
- 2.2.0: collecting specs
- New issue: #4690 - tracking issue for Windows-specific problem.
- New issue: #4688 -
opam switch -
as restoring the previous switch. - New issue: #4686 - when should opam lint warnings be being displayed to users.
- New issue: #4705 - spaces in parent directory
- @dra27 looking at a couple of minor Windows nits - PRs to come.
- #4705 is serious (and has been present since OPAM 1.1.0!): @rjbou looking at it; @dra27 will sync up with Windows side of it
- Small display issue with opam lint --help and the lint codes which we happened to spot discussing something else!
- @dra27 will cherry-pick https://github.com/ocaml/opam/pull/4668
- @rjbou finishing off the cherry-pick of
opam-root-version
- It's then good to go
- opam-core and opam-format to 4.03
- Rest to 4.08
- opam-file-format can stay at 4.02.3, but it's on final warning... as soon as there's an issue, it gets bumped
LTS ideas
- @rjbou: maintaining last release and a nominated LTS release
- @rjbou: Bug fixes then cause a decision - is master ready to be spun into a release; or do we back-port to last
- LTS: gets critical bug fixes only
- Previous release: all bug fixes
- Nominate at 2.1 as being an LTS, with a view to ensure a release prior to the next Debian freeze (in 2024ish)
- Aim to come up with some individual ideas and then go from there
- If there's good agreement, we may even publish them!
- Muriel had suggested last year having a poll of users
- The idea was discussed, but no questions determined
- We could piggy-back on the OCaml Survey for 2021 - sync with Gabriel Scherer to see if there is going to be one
- @dra27: Windows shell integration
- @dra27: https://github.com/ocaml/opam/wiki/Spec-for-opam-file-versioning
- @AltGr: semver and solver improvements
- @rjbou: https://github.com/ocaml/opam/wiki/Spec-for-opam-multi-packages-repo
- @rjbou: repository mirroring; treatment of Git archives
- @kit-ty-kate:
- https://github.com/ocaml/opam/issues/4688
- https://github.com/ocaml/opam/issues/4647
- https://github.com/ocaml/opam/issues/4633
- https://github.com/ocaml/opam/issues/4522
- https://github.com/ocaml/opam/issues/4048 - related https://github.com/ocaml/opam/issues/4099 - which also links to https://github.com/ocaml/opam/issues/4594 This feels like it may be a larger feature to design?
- https://github.com/ocaml/opam/issues/4686
- Should we be linting when pinning?
- @altgr - original intention was that the developer would be pinning; perhaps with CI it's less necessary
- @rjbou - could have an environment variable to list the lint warnings which are disabled (dune-release and opam-publish would need to explicitly disable this)
- @dra27 - wondering if we could make it that just pin-depends and --dev-repo don't lint?
- @kit-ty-kate - could display just the errors, not the warnings at pinning time?
- @altgr - could consider just displaying the errors on opam update (@rjbou - but a bit surprising if you pin in order to test everything's OK!) @dra27 - or could have the linting for local repos only?
- #4672 - switches to the dev profile in Dune for CI. Only questions are whether we use the release profile for the builds which run the testsuite and whether everyone's happy to go with it!
- #4663 - ready to merge?
- #4667 - ready to merge?
- ocaml/opam-file-format#45 followed by a release should unblock #4369
- ocamllabs/dune-release#343
- #4668 - 2.0.9+, 2.1.0+ or 2.2.0+?
- #4673 - confirm that the original command was wrong (i.e. should it have worked)
- #4662 - original issue addressed by #4671. MacPorts issue described at #4662 (comment)
- #4582 - PR itself is just about ready to go, modulo a couple of help messages and a function name
- Are we strictly implementing the spec properly?
- In particular,
--yes
runs sudo commands (asopam depext --yes
used to) but is this contrary to Spec for opam depext integration? - Should
--yes
and--confirm-level
<>ask
imply non-interactive? i.e. do they answer no to the unsafe questions? - (this was already an issue with depext and with
--unsafe-yes
, so it doesn't block #4582 itself)
- In particular,
- #4669 - does this count as a regression?
- #4670 - does this count as a regression?
- #4674 - proposal to allow packages to request sandbox disabling
- 4672: yes, and with running opam-rt and other tests with a release profile build of opam
- 4663: is ready to merge
- 4667: @rjbou to review
- opam-file-format#45: good to go and then release 2.1.3
- dune-release#343 - @emillon will have a look at the mdx problem; other than that just needs
dune build @fmt
- 4668: OK for 2.0.9
- 4673: reopened; it is inconsistent that detection works with
opam repo add
but not withopam switch create
; however not for 2.1 - 4662: original issue is that the depext on
"gcc"
was incorrect for Macports. Apparently you truly do have to specify the version now.--assume-depexts
was the wrong switch to advise. Clarified that--assume-depexts
still requires the depext to be listed it just doesn't go ahead and install it. For example, this you allows you to build and make available your own libgmp, but the depext on gmp must still be correct in the opam file. - 4671: worth advising there might be a problem with the package itself (i.e. that it's requesting the wrong thing) in addition to suggesting
--no-depexts
@AltGr and @dra27 in complete agreement: sudo
should not be run without a prompt! It's possible that there may be prompts (e.g. sudo prompting for password, etc.). Shouldn't apt be running explicitly with -i if unsafe-yes is not enabled? Conclusion was no: the package manager will prompt if necessary, opam should pause before invoking it and that's enough.
@AltGr that there's an additional confirmation level which is triggered by stdin being closed - it's then no to anything which wasn't being auto-answered. This seems to resolve the question of what should happen for --yes
with unsafe questions. For now, they should be interactive, and you can explicitly close stdin (as you can in 2.0) to answer no to those questions. Interaction and confirmation level are not related features - it just happens to be that --no
implies there will be no interaction. In 2.2 we might add a flag --non-interactive
to allow triggering this behaviour without closing stdin. The suggestion was made that --yes --no
actually means "answer yes to safe questions and no to everything else", but even the Windows user vetoed this!
Alpine issue - let's fix it (@kit-ty-kate looking into it); the alternate command is fast and stops what otherwise looks like a regression (since it works with opam depext
).
EPEL. We should view this as a regression simply because there was a hack in opam-depext 2.0 to deal with this. However, there's a simpler and cleaner solution for 2.1: we refine the error message so that if epel-release is mentioned and not installed then we can give me a more precise error message that the user needs to enable the EPEL repo by running dnf install epel-release
and then running the opam command again.
This at least limits the special-casing. Users on CentOS 8 already need to have enabled the PowerTools repo manually (even it was done at installation time or by upgrading), and we can both document clearly that EPEL may be required for some depexts and also the error message guides the user to the correct action.
-
opam-root-version
change is nearly ready - #4660 opened to track the issue of 2.1 CLI environment variables leaking into package builds (@dra27 will have a look)
- @kit-ty-kate will rebase and update ocamllabs/dune-release#343 which should mean that both publishing tools are 2.1-ready
dra27 was a little lax on the note-taking - discussion of active PRs for the 2.1 release candidate
dra27 was a little lax on the note-taking - discussion of active PRs for the 2.1 release candidate
-
#4640 😱
- @AltGr live-coded in the meeting...
-
#4638 (closes #4636)
- See also opam-root-compatibilities
- Agreeing on the which fields and where is the larger part of this - implementing it should be straightforward!
-
--confirm-level
(#4582) - Release opam-file-format and update opam to use it (#4639 closes #4394)
- Two issues being worked by @dra27 (PR by end Friday):
- It should be possible for opam 2.4, introducing new fields but no new syntax, to use opam-file-format 2.3 for its parsing (i.e. have no 2.4 release), but at present the future best-effort parser would mean that opam 2.4 wouldn't be able to tell the difference between a syntactically valid
opam-version: "2.4"
file and one which had a parsing/lexing error part-way through. Solved by inserting a sentinel group which can be detected as a syntax error (and has the right location information) - The present implementation doesn't return the
opam-version
line if there's a lexing/parsing error very close (grammatically-speaking) to the version - i.e.opam-version: "2.4" <
.
- It should be possible for opam 2.4, introducing new fields but no new syntax, to use opam-file-format 2.3 for its parsing (i.e. have no 2.4 release), but at present the future best-effort parser would mean that opam 2.4 wouldn't be able to tell the difference between a syntactically valid
- Two issues being worked by @dra27 (PR by end Friday):
- #4641 (closes #4619)
-
#4642 (addresses #4554
- Include in 2.1? Doesn't address the issue with opam-state 2.0.x and opam binary 2.0.x, but it would mean that plugins and tools using opam-state 2.0.x and opam binary 2.1.x won't see the same issue
- Agreed - low-risk internal change, which will stop the appearance of a performance regression (if opam-state 2.0.x starts fighting with opam 2.1 over the cache)
- ocaml-mccs release done - need to update lib-ext
-
#4643 - OK to include, but
make cold
shouldn't include the solver, just as we're quite close to rc. No problem to add an additional cold target (e.g.cold-0install
) then it can be added via that.
- dune-release is not yet compatible with opam-state 2.1 - ocamllabs/dune-release#343
- opam-publish is not yet compatible with opam-state 2.1 - no PR?
-
--confirm-level
(#4582) or--unsafe-depext-yes
(#4563) - #4636 needs implementing and back-porting for 2.0.9
- Release opam-file-format and update opam to use it (closes #4394)
- Implement plugin symlink erasing at upgrade (closes #4619)
- Fast install (#4494) just needs the the conflict resolved, I think?
- @AltGr/@kit-ty-kate time to rebase (closes #4545)
- An ocaml-mccs release is advisable to pick up #30 (4.12 support)
- Merge doc/release/readme.md into release, and ensure everything is correct
- Branch 2.1 immediately after the rc is tagged
- Checklist at https://github.com/ocaml/opam/wiki/Release-2.1.0#to-release-candidate
- Install instructions should no mention OPAM 1.2.2!
- dune-release needs updating for opam-file-format 2.1.3
- opam-publish needs updating (including #112)
- @AltGr - some work with the Software Heritage Foundation has been agreed (with funding for OCamlPro) archiving all packages from opam-repository there (not just the GitHub repos). Also looking at support for referencing SHF copies in the opam files themselves (i.e. with an ID) - could include falling back to their caches.
#4619 - plugins and opam-state and upgrades
- Plugins symlink reset at upgrade (together with #4621 this fixes the issue)
- Tweaking opam-state to allow read-only access to new opam roots, when possible. Suggested in #4266 but dropped by the implementation in #4280 (following discussion at 17 Jul 2020 dev meeting, based on time stamps of messages!). As we encourage more plugins to incubate ideas, I think we should revisit this: idea is that the config files in the root (global, switch and repo) all have
opam-root-version: "2.1"
andopam-version: "2.0"
. The idea is simple:opam-root-version
is checked for taking out write locks,opam-version
is checked for taking out read locks and opam-state 2.0.x should be updated to internally recogniseopam-root-version
(i.e. no change in API inOpamFile
) and ignore fields it doesn't recognise. The changes we've made for 2.1 mean that it should "just work" to have readable roots to 2.0.
Notes in italics
No new issues! \o/
-
opam-file-format#43
- @dra27 to get 4.02 working, but otherwise ready for review
-
opam-file-format#32 - needed/safe for 2.1 release?
- @rjbou - not urgent for opam 2.1; can double-check with @NathanReb whether it's still urgent for dune-release. Primary problem is that it keeps the "generated by dune comment". Given that it's possible to do it from the lexer, should this code go to dune-release and potentially be spun out further? Further discussion - potentially moving OpamPrinter.Preserved to a separate library.
- #4616 (not yet opened!) (@dra27) - cold compiler to 4.12.0 to fix Cygwin (and some src_ext updates)
-
#4612 - replaces #4599
- @AltGr to review
- #4607 (@AltGr)
- #4606 (@rjbou)
- #4591 (@AltGr)
-
#4582 (@rjbou) - alternative to #4563
- blocked on various CLI versioning PRs
- #4581 (@rjbou) - blocked on #4606
- #4580 (@rjbou)
- #4563 (@rjbou)
-
#4548 (@kit-ty-kate)
- move to next
- #4494 (@kit-ty-kate)
- #4438 (@rjbou)
- #3897 (@dra27)
Notes in italics
macOS testing CI problem with opam-rt - a sandboxing script update seems to have broken macOS testing?
-
https://github.com/ocaml/opam/pull/4607 (@AltGr)
- Working as in 2.0; @dra27 to review
-
https://github.com/ocaml/opam/pull/4606 (@rjbou)
- @dra27 to start testing; @AltGr to go through some of the messages
-
https://github.com/ocaml/opam/pull/4599 (@dra27)
- @rjbou to review - we could revert #4314
-
https://github.com/ocaml/opam/pull/4595 (@dra27) - blocked on #4575
- @dra27 will rebase to clear conflict (after #4575 merged)
-
https://github.com/ocaml/opam/pull/4591 (@AltGr)
- @dra27 will check
-
https://github.com/ocaml/opam/pull/4585 (@kit-ty-kate)
- @AltGr - affects the generation of Docker images used at OCamlPRO. Hold this for now - immediately afterwards for 2.2
-
https://github.com/ocaml/opam/pull/4582 (@rjbou) - alternative to #4563
- blocked on various CLI versioning PRs
- https://github.com/ocaml/opam/pull/4581 (@rjbou) - blocked on #4606
-
https://github.com/ocaml/opam/pull/4580 (@rjbou)
- Bug fix is good to go; wider discussion as to why it behaves this way. Let's merge the fix and open an issue to track the fetching system.
-
https://github.com/ocaml/opam/pull/4575 (@rjbou)
- Merged in meeting!
-
https://github.com/ocaml/opam/pull/4567 (@dra27)
- It may affect reftests so rebase before merge
-
https://github.com/ocaml/opam/pull/4564 (@rjbou)
- Awaiting @AltGr
- https://github.com/ocaml/opam/pull/4563 (@rjbou)
-
https://github.com/ocaml/opam/pull/4548 (@kit-ty-kate)
- Rebase - but checking the Dune invocations. @NathanReb - could generate a
dune-workspace
at the toplevel, as that terminates root detection? Alas - same problem!
- Rebase - but checking the Dune invocations. @NathanReb - could generate a
- https://github.com/ocaml/opam/pull/4545 (@kit-ty-kate)
- https://github.com/ocaml/opam/pull/4525 (@kit-ty-kate)
-
https://github.com/ocaml/opam/pull/4514 (@rjbou) - bumped to next?
- Yes
-
https://github.com/ocaml/opam/pull/4494 (@kit-ty-kate) - bumped to next?
- Needs updating to check that there are no session/switch/etc. pre/post-install hooks, but otherwise good to go.
-
https://github.com/ocaml/opam/pull/4438 (@rjbou)
- @dra27 to review
-
https://github.com/ocaml/opam/pull/3897 (@dra27)
- @dra27 to rebase and test
- https://github.com/ocaml/opam/pull/4547 (@rjbou) - 2.0.9 release
- https://github.com/ocaml/opam/pull/4538 (@kit-ty-kate) - CUDF trimming for 2.0
-
https://github.com/ocaml/opam/pull/4513 (@dannywillems) - docs fix
- @AltGr happy to merge
-
https://github.com/ocaml/opam/pull/4447 (@Blaisorblade) - passwords from git operations
- To review at a future meeting - probably "wontfix"
-
https://github.com/ocaml/opam/pull/4421 (@johnwhitington) - install docs update
- Need consensus over the recommended order for setup programs (brew vs binary)
-
https://github.com/ocaml/opam/pull/4039 (@gasche) - CUDF machine readable output for conflicts
- This can be rebased to go in after 2.1.0
-
https://github.com/ocaml/opam/pull/3958 (@hongchangwu) -
etc_root
andetcexec_root
in.install
files- Pick up for next - @dra27 concern that we should maximise the backwards compatibility when writing as well as reading
- https://github.com/ocaml/opam/pull/4568 (@dra27) - insomnia-related experiment with clickable links
- https://github.com/ocaml/opam/pull/4532 (@Keryan-dev) - semver operator
- https://github.com/ocaml/opam/pull/4523 (@kit-ty-kate) - deprecated flag
- https://github.com/ocaml/opam/pull/4470 (@kit-ty-kate) - dose3 6.x
-
https://github.com/ocaml/opam/pull/4442 (@dra27) - faster git fetching by using
--depth=1
-
https://github.com/ocaml/opam/pull/4435 (@rjbou) -
opam repo remove
for last repo in switch - https://github.com/ocaml/opam/pull/4414 (@rjbou) - sandbox script updates checker
-
https://github.com/ocaml/opam/pull/4274 (@kit-ty-kate) -
uname(2)
vsuname(1)
🙂 - https://github.com/ocaml/opam/pull/3901 (@dra27) - more AppVeyor testing on native Windows
- https://github.com/ocaml/opam/pull/3217 (@kit-ty-kate) - tools refactoring
- https://github.com/ocaml/opam/pull/2930 (@dra27) - very old switch defaults; will probably close with 2.2 (but it's not yet superseded)
-
https://github.com/ocaml/opam/pull/2927 (@dra27) - very old
%<..>%
notation - will be resolved for 2.2
-
opam-repository package naming
-
https://github.com/ocaml/opam-repository/pull/18229 - introduce
ocaml-src.4.13+trunk
. - ocaml-variants "trunk" packages - renaming to drop the patch number (e.g.
ocaml-variants.4.13.trunk
) - Merging ocaml-variants.4.13.0+options and ocaml-base-compiler.4.13.0
- Any downsides?
- Any reason not to do this for 4.12.0 (we can keep the +options package for compatibility)
- This is useful for pinning
-
https://github.com/ocaml/opam-repository/pull/18229 - introduce
-
Issues (which might affect 2.1.0~rc)
- https://github.com/ocaml/opam/issues/4586
- https://github.com/ocaml/opam/issues/4578 - 2.1.1?
- https://github.com/ocaml/opam/issues/4558 - I'm still unclear on the repro case for this between 2.0 and 2.1
- https://github.com/ocaml/opam/issues/4557 - 2.1.1?
- https://github.com/ocaml/opam/issues/4554
-
2.1.0~rc blockers
- https://github.com/ocaml/opam/issues/4577
- https://github.com/ocaml/opam/issues/4572 - @AltGr and @dra27 to go through later?
- CLI versioning via environment variables (cf. https://github.com/ocaml/opam/pull/4581#issuecomment-791328762)
-
RC checklist
-
Folding
the ocaml-option-*
packages into ocaml-base-compiler. @kit-ty-kate - concerned potentially at ocaml-option-vanilla not being default. Let's discuss further on a PR. -
Using
4.13.trunk
- @AltGr should be double-checked just in case the letters are treated separately. @kit-ty-kate - the version numbers do work. -
For
ocaml-src.4.13+trunk
, @kit-ty-kate - what would happen if you wanted to use the dev branch after 4.13.0 is released? @dra27 - surely that wouldn't be needed for this package, though; the package is there so that there's one for the release. -
OK to merge the 2020 Dev Meetings into a single page? The only downside would be the loss of linking. @rjbou - use a 2021 page straight away; @dra27 - with anchors for the dates.
- Confirm heading straight to RC - merge the two milestones
- Bumping issues to 2.1.1+
- https://github.com/ocaml/opam/issues/4446 - this affects 2.0 too?
- Moving everything to "In Progress"
- https://github.com/ocaml/opam/issues/4188 - can be closed?
-
https://github.com/ocaml/opam/issues/4323 - compatible way is simply to add
--check
as an alias, although what's the status of https://github.com/ocaml/opam/issues/4503 for having a "default" CLI? - https://github.com/ocaml/opam/issues/4543 - is this being worked on yet?
- https://github.com/ocaml/opam/issues/4448 - any further issues for 2.1?
- https://github.com/ocaml/opam/issues/4501 - similarly?
- Adding issues to projects
Present: @avsm (notes), @kit-ty-kate, @rjbou
-
all focus on rc next week -- looking at blockers.
-
start pushing out stuff to 2.1.1 milestone as we need to cut the RC.
-
https://github.com/ocaml/opam/pull/4542 is going to go in shortly.
-
https://github.com/ocaml/opam/pull/4311 is a bad performance regression, but we could punt this to 2.1.1 if we dont get a fix in time.
-
https://github.com/ocaml/opam/pull/4514 needs a decision on which variables we should take. Pushing out to 2.1.1
-
https://github.com/ocaml/opam/issues/4321
- cant design a confirm-level feature in time for 2.1.0 - defer to 2.2.0 and a design spec
- rename the cli option to explicitly note that it is dangerous, so it doesnt show up in tutorials etc: opam install --yes --unsafe-depext-yes
-
Minimum OCaml version for 2.x
- bump to 4.06 as the minimum version for the 2.x series
- we have bootstrap from a C compiler for any distros that are < 4.06 and not upgrading.
@dra27 - Confirming that semver changes will wait until post 2.1, please - just for safety! @samoht has a point that we should discuss whether it's what's wanted
@emillon mentioned that Dune 3 development is starting. Since it's major, there are features slated for removal, including dropping support for OPAM 1.x - mainly finding the switch. @dra27 - it sounds fine (@AltGr agrees too) - maybe use opam --version
in the error message to make it friendly that it's OPAM 1.2.2
@emillon - what should {with-doc}
should do. @AltGr it's simply a variable, from opam's perspective. At present, many projects do @doc {with-doc}
but this builds documentation without installing (@dra27 - which is of course wasted effort!).
@kit-ty-kate - does opam know when a package was installed using with-doc? @AltGr - no, it's not recorded @dra27 - although it's likely to change with package variables
@kit-ty-kate - discussions with @samoht on the difference in semantics between opam list --with-test and opam install --with-test. @dra27 - needed for 2.1? @kit-ty-kate - no, too big. @dra27 - let's ensure it's tracked to be picked up later. @kit-ty-kate - opened #4543
- Various issue and PR triages - directly commented on the issues themselves
- Welcome to maintainership! @avsm will sort out GitHub permissions later.
- Dose6 is only just out - let's stick both 2.0 and 2.1 with Dose5, but switching to ocamlgraph 2 should be done (@AltGr agrees - it would be worth double-checking changes)
- We may need to carry a few patches for ocamlgraph 2 in lib-ext
- The release of extlib 1.7.7-1 unblocks 2.0.8 for OCaml 4.12, so that should be good to go
- All in hand!
- Ticking forward
- @emillon note for 2.2 for removing unused fields from the format (Slack discussion this week - will move to an issue in the 2.2 project so we track it).
- opam 2.0.8
- 4.12 status (check with beta1)
- Any other blockers?
- New issues
-
opam config var
- https://github.com/ocaml/opam/issues/4503- @dra27 proposes fixing tools (either to use
opam var
or setOPAMCLI
) - Because of
opam config var
in editor configurations, restore that specific command
- @dra27 proposes fixing tools (either to use
-
https://github.com/ocaml/opam/issues/4505 - recursive treatment of
--locked
-
https://github.com/ocaml/opam/issues/4507 - user surprise at
opam install .
vsopam reinstall .
-
- opam 2.1 rc (check-list)
- opam-file-format ready
- ocaml-mccs ready
- https://github.com/AltGr/ocaml-mccs/pull/26
- https://github.com/AltGr/ocaml-mccs/pull/30
- https://github.com/AltGr/ocaml-mccs/pull/28
- https://github.com/AltGr/ocaml-mccs/issues/31
- Have we previously discussed moving ocaml-mccs to ocaml-opam org?
- opam-publish / dune-release / camelus using opam 2.1
- cold compiler and src_exts up-to-date
- Documentation up-to-date
- Regenerate graph of users, verify that opam 1.2.2 is fully EOL (@AltGr - already done?)
- User thumbs up on beta for features - not sure of the list at the moment (I think it may now be empty?)
- opam-lib users happy: opam-publish, dune-release, opam-depext (plugin), camelus, OTHERS?
- opam tools users happy: merlin, ocp-browser, tuareg, mirage, opam-user-setup, OTHERS?
- Tests all working - backport PR is ready to merge
- Should be working with OCaml 4.12~beta1 - @rjbou to check before release
- #4505 - @rjbou to determine whether to fix for 2.1
- #4507 - @rjbou problem would be calling the solver each time to check the dependencies, so the call would be much slower. @AltGr - another possibility would only to check the direct dependencies with the new flag. @dra27 - a third possibility would be to note the predicate values and see that they've changed and so interpret that as a reinstall. This is related to package parameters and so might be "fixed in passing". @dra27 to update issue
- #4503 - restore
opam config var
for the RC; but ensure PRs open to useopam var
for the identified tools
- @dra27 to have a look at #4394 (ensuring that
opam-version: "2.1"
and greater is the first non-whitespace/comment line) - @rjbou will ensure ocaml/opam-file-format#32 is merged for 2.1.3
- ocaml/opam-file-format#25 is non-critical
- AltGr/ocaml-mccs#31 may be fixed by a newer GLPK
- Should check that GLPK 5.0 works, since Debian will package it at some point
- Dose 6 is nearly released - @AltGr
- ocaml/opam#4470 adds required support for ocamlgraph 2.0
- opam-publish is updated
- dune-release - @kit-ty-kate has a branch (https://github.com/kit-ty-kate/dune-release/tree/opam-2.1) but not yet a PR which has been being tested
- Camelus - doesn't appear to be updated (@ThomasBlanc is away for a while) - but this is perhaps less critical. @AltGr to have a quick look and check the status?
- ocaml-ci is using 2.0.7 - but it's based on docker-base-images which does have a 2.1 binary in it. Kate will test.
- opam-repo-ci is using 2.1 with no problems
- ocaml-ci-scripts - @dra27 will do a PR to set
OPAMCLI=2.0
- setup-ocaml - @dra27 will check it's uses
- @dra27 + @MisterDA will look into that
@emillon - it's presently difficult for both developers to test out the betas. We should have some more visible documentation on the process and potentially a tool to help. @AltGr - the install.sh script is supposed to do backups and other things. @AltGr - see "Try it!" at end of https://opam.ocaml.org/blog/opam-2-1-0-alpha/ @rjbou - there is also https://github.com/ocaml/opam/wiki/How-to-test-an-opam-feature (but it's a bit hidden away).
@dra27 - the wiki suggests having an alias for the new binary, but perhaps it would be better to have one for the old binary. So you have a backup of the old opam root and also a way to get back to the old root if necessary.
@emillon - what about local switches, as they're outside the root. @AltGr - the local switches are listed in the root (and this survives the upgrade). @emillon - what about if the local switch is used with 2.1, can it then be used with 2.0? @AltGr - almost certainly not, because the format may be upgraded.
@dra27 - rather than backing up local switches, perhaps we should just warn that that change is one way, so you might have to remake the local switch if you go back
@emillon - yes, the main point is to be clear exactly what backing up means and we do and don't get.
- Issues/PRs bumped to "next beta" which might be bumped to 2.2
- https://github.com/ocaml/opam/issues/4344 - appears to be entirely a feature, no bugs?
- https://github.com/ocaml/opam/issues/4489 - is this purely a documentation change?
- https://github.com/ocaml/opam/issues/4381 (and https://github.com/ocaml/opam/pull/4435) - leave unfixed for 2.1?
- Minor shopping list of checks:
- Graceful opam update for system compilers
- Graceful opam update for OCaml point releases (do we have a UI for this?!)
- https://github.com/ocaml/opam/issues/4188
- https://github.com/ocaml/opam/issues/4172
- https://github.com/ocaml/opam/issues/4311
- https://github.com/ocaml/opam/issues/4305 - bump to 2.2?
- https://github.com/ocaml/opam/issues/4313 - remove from milestones?
- https://github.com/ocaml/opam/issues/4201 - bump to 2.2?
- https://github.com/ocaml/opam/issues/4245 - bump to 2.2?
- https://github.com/ocaml/opam/issues/4333
- https://github.com/ocaml/opam/issues/4400 - looks potentially fixable
- https://github.com/ocaml/opam/issues/4389
- https://github.com/ocaml/opam/issues/4454
- https://github.com/ocaml/opam/issues/4455 - bump to 2.2?
- https://github.com/ocaml/opam/issues/4485
- https://github.com/ocaml/opam/issues/4490
- https://github.com/ocaml/opam/issues/4297
- opam 2.1 rc (check-list)
- opam-file-format ready
- ocaml-mccs ready
- https://github.com/AltGr/ocaml-mccs/pull/26
- https://github.com/AltGr/ocaml-mccs/pull/30
- https://github.com/AltGr/ocaml-mccs/pull/28
- https://github.com/AltGr/ocaml-mccs/issues/31
- Have we previously discussed moving ocaml-mccs to ocaml-opam org?
- opam-publish / dune-release / camelus using opam 2.1
- cold compiler and src_exts up-to-date
- Documentation up-to-date
Present: @AltGr, @dra27, @kit-ty-kate, @emillon
@AltGr: various things moving around with the conflict messages which are nearly there.
- #4344 - @AltGr reckons this is closable.
- #4489 - docs update; can be pushed to 2.2 if necessary
- #4381 - @AltGr - almost certain a 1.2.2 upgrade hangover (initialise the defaults) so could be reclassified as a bug - you should just end up with empty selections. @dra27 will update the issue.
- System compiler upgrading - this should be working; there should be a workflow for it to test it @dra27 will open and issue
- Setting up switches for "OCaml 4.12" or "OCaml 4.11" with automatic upgrade to point releases. @AltGr - default at the moment will not do this. It's not obvious what the change would look like - let's add this to the considerations for opam 2.2.
- #4188 - @rjbou to check and update; @AltGr - this may well have been fixed already (the problem was the code to infer the new switch invariant triggering in a read-only context)
- #4172 - issue is still present; performance improvement bump to 2.1.1 @emillon - may be able to improve the performance of this by changing opam show slightly. For example, local switches are often unnecessarily scanned.
- #4311 - slowdown appears to be caused by the switch invariants (@AltGr so it's slower "by design"!). @dra27 - can something be done either with two solves; one to get and fix the invariant and then with that list of packages in the base and then a second solve. @AltGr - for
--installable
the external solver isn't involved; this is actually Dose's SAT solver. @kit-ty-kate - the switch invariant in these cases isocaml-base-compiler
(it's come via an upgrade). @kit-ty-kate ---co-installable-with ocaml-base-compiler.4.11.1
speeds things up considerably. @AltGr - the universe is encoded differently which affects this, too (although it's not clear why that would be responsible for this slow down). @dra27 - does this slowdown still occur even when the switch invariant is exactly the list of base packages from the 2.0 switch? @kit-ty-kate - nope! @AltGr - it sounds as though--co-installable-with
is usually what the user wants. @dra27 - in fact, given that--no-switch
was needed in 2.0, would it be better for--installable
in 2.1 to be assuming the base packages. - #4305 - @dra27 will update issue - definitely to be fixed; but not 2.1
- #4313 - @AltGr will look into it - the two sequences of commands should be equivalent.
- #4201 - remove from the 2.1 milestone
- #4245 - remove from the 2.1 milestone
- #4333 - link to the new issue @kit-ty-kate added
- #4400 - @AltGr testing
- #4389 - not critical for 2.1
- #4454 - @rjbou to determine
- #4455 - not critical for 2.1
- #4485 - remove from the 2.1 milestone
- #4490 - remove from the 2.1 milestone
- #4297 - @rjbou to determine
- opam-monorepo demo and discussion for metadata with @NathanReb
- opam-file-format 2.1.2 & opam 2.1 beta4
- Switching off Travis - is everything migrated?