Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
5e37faf
Remove macOS specific metadata from the release archive
kit-ty-kate Sep 26, 2025
9200f4f
Make the release archive reproducible
kit-ty-kate Sep 26, 2025
ed0fa11
Add a test showing the behaviour of autopin in presence of a pin-depends
kit-ty-kate Jul 20, 2025
248b82c
Add a test showing the behaviour of opam switch create <local> in pre…
kit-ty-kate Jul 20, 2025
d9bac17
reftest: add complete tests for the pin-depends feature
rjbou Oct 7, 2025
5c32376
Fix pinned depends being ignored on simulated pins
kit-ty-kate Jul 20, 2025
149f26d
Merge pull request #6611 from kit-ty-kate/deps-only-pin-depends
kit-ty-kate Oct 7, 2025
f88b700
Add 'OpamFormula.equal' function
rjbou Oct 8, 2025
561a7eb
option: make global option default-invariant modifiable
rjbou Oct 8, 2025
b26dc4f
Merge pull request #6730 from rjbou/option-def-inv
kit-ty-kate Oct 9, 2025
75043fd
compat: add Lazy.map_val
rjbou Sep 18, 2025
86bac20
Add logging for write & read files
rjbou Oct 9, 2025
ceff73d
reftest: complete action-disk.test with the behaviour of extra-files
rjbou Oct 9, 2025
7a504c0
reftest: complete action-disk.test with the behaviour of extra-source
rjbou Oct 9, 2025
1c71f5e
OpamFile.OPAM API: No longer assume that internal opam repositories a…
kit-ty-kate Sep 9, 2025
6c51e0e
Merge pull request #6679 from kit-ty-kate/get_repo_files
kit-ty-kate Oct 10, 2025
09a2d06
reftest: Add a test showing the behaviour of opam when faced with out…
kit-ty-kate Feb 10, 2025
dd7f5eb
Check the status of git submodules when checking if a repository is u…
kit-ty-kate Jul 31, 2024
ccb0a6e
Merge pull request #6153 from kit-ty-kate/git-check-submodule-status
kit-ty-kate Oct 10, 2025
2555bd4
reftest: add --depext-only test
rjbou May 14, 2025
b2c9c73
depext-only: no longer ignore conflict exit code
rjbou May 14, 2025
76b46ac
Merge pull request #6516 from rjbou/depext-only-conflict
kit-ty-kate Oct 10, 2025
9339706
reftest: add missing documentation for 'unset" builtin
rjbou Oct 10, 2025
4acd8f2
reftest: add 'sed-hash' command to replace single hashes and hashes p…
rjbou Oct 10, 2025
8fa7a5f
Update to FlexDLL 0.44 for the bootstrap
MisterDA Jul 8, 2025
acb7ba2
reftest: add remove --force test
rjbou Sep 1, 2025
5efaaa9
remove: no longer remove --force commands in current directory
rjbou Sep 2, 2025
2aad2e4
Merge pull request #6734 from rjbou/reftest-sed-hash
kit-ty-kate Oct 14, 2025
5543e9b
Update msvs-detect to 0.7.0
MisterDA Jul 8, 2025
d5e5fdd
Merge pull request #6672 from rjbou/remove-force
kit-ty-kate Oct 14, 2025
ea4f800
Merge pull request #6592 from MisterDA/update-windows-deps
kit-ty-kate Oct 14, 2025
41e12e3
Merge pull request #6706 from kit-ty-kate/reproducible-release-archive
kit-ty-kate Oct 14, 2025
b56d54e
depexts: Harden the parsing of 'apk policy' on Alpine
kit-ty-kate Oct 6, 2025
c1be49a
Add opam-set-os command for cleaner reftest OS family configuration
arozovyk Sep 18, 2025
facaec7
Merge pull request #6742 from kit-ty-kate/harden-alpine-depexts-parsing
kit-ty-kate Oct 15, 2025
d47b9a0
Merge pull request #6741 from arozovyk/reftests_add_opam-set-os
kit-ty-kate Oct 15, 2025
e16b84b
Don't unnecessarily initialise csh variables
dra27 Oct 6, 2025
3fa4ac7
Add a test for variables.sh double-applying
dra27 Oct 8, 2025
97adba1
Make variables.* back off if already set
dra27 Oct 7, 2025
cc8e824
Add a test showing the "nuking the root" effect
dra27 Oct 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/scripts/main/ocaml-cache.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ case "$HOST" in
PREFIX="$OCAML_LOCAL";;
esac

FLEXDLL_VERSION=0.43
FLEXDLL_VERSION=0.44
MINGW_W64_VERSION=12.0.0

curl -sLO "https://github.com/ocaml/ocaml/archive/refs/tags/${OCAML_VERSION}.tar.gz"
Expand Down
32 changes: 32 additions & 0 deletions master_changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,27 @@ users)

## Init
* Remove `getconf` from the list of required runtime tools, which allows `opam init` to work out-of-the-box on Haiku [#6634 @kit-ty-kate - fix #6632]
* The variables scripts now only updates the environment if `OPAM_SWITCH_PREFIX` is unset-or-empty [#6729 @dra27 - fix dbuenzli/topkg#142, #4649, #5761]

## Config report

## Actions

## Install
* More fine grained error message in case of bad hash or missing extra-files error (and remove raw fatal error) [#6696 @rjbou]
* Do not ignore extra-files whose name is invalid and fail early in that case [#6679 @rjbou @kit-ty-kate]
* BUG: Fix `opam install pkg --depext-only` exit with code 0 instead of 20 (not found) [#6516 @rjbou - fix #6488]

## Build (package)

## Remove
* [BUG] Fix `opam remove --force` launching commands in current directory [#6672 @rjbou - fix #6570]

## UI
* Show the invalid character when detecting an erroneous package name [#6638 @lefessan - fix #6396]
* Handle non-displayable characters when detecting an erroneous package name or version [#6640 @kit-ty-kate]
* Remove duplicated directory separator when displaying some rare filenames [#6703 @rjbou]
* The name of missing or erroneous extra-files are not displayed instead of their path in error messages [#6679 @kit-ty-kate @rjbou]

## Switch

Expand All @@ -51,6 +56,7 @@ users)

## Var/Option
* Make the computation of `pkg:opamfile` match its specification [#6659 @kit-ty-kate - fix #5346]
* Make global option `default-invariant` modifiable [#6730 @rjbou]

## Update / Upgrade
* Fix the false-positive mismatch debug warning during `opam update` when faced with nested extra-files on Windows [#6715 @kit-ty-kate]
Expand All @@ -63,6 +69,7 @@ users)
## Source
* Better error message, especially in case of `Failure` [#6696 @rjbou]
* Raise a warning instead of an error when an item of `extra-files` is missing [#6696 @rjbou]
* Do not ignore extra-files whose name is invalid and raise a warning in that case [#6679 @rjbou @kit-ty-kate]

## Lint

Expand All @@ -77,13 +84,15 @@ users)
## Opamfile

## External dependencies
* Harden the parsing of `apk policy` on Alpine [#6742 @kit-ty-kate]

## Format upgrade
* Complete upgrade mechanism to permit on the fly upgrade and write upgrade from repo and switch level [#6416 @rjbou]

## Sandbox

## VCS
* Check the status of git submodules when checking if a repository is up-to-date [#6132 @kit-ty-kate]

## Build
* Update the dependency constraint on `patch` to now require its stable version [#6663 @kit-ty-kate]
Expand All @@ -92,11 +101,14 @@ users)
* `./configure --enable-static` is now supported on OpenBSD [#6705 @flumf]
* Add missing constraints to avoid cmdliner 2.0.0 [#6707 @kit-ty-kate]
* Add patch library dependency to opam-state [#6614 @arozovyk]
* Update the bootstrap compiler's flexdll to 0.44 [#6592 @MisterDA]
* Update the `msvs-detect` script used on Windows during compiler bootstrap to 0.7.0 [#6592 @MisterDA]

## Infrastructure

## Release scripts
* The OpenBSD binary now a full static binary [#6705 @flumf @kit-ty-kate - fix #6241]
* The release archive (`opam-full-*.tar.gz`) is now reproducible [#6706 @kit-ty-kate - fix #6619]

## Install script
* Add 2.4.1 to the install scripts [#6617 @kit-ty-kate]
Expand All @@ -115,11 +127,14 @@ users)
* [NEW] Fetch shared archive sources without checksums [#6627 @psafont - fix #5638]

## Shell
* csh: Don't double-set unconditional variables in `variables.csh` and `env_hook.csh` [#6729 @dra27]

## Internal
* Replace every polymorphic uses of `List.mem` by a version that doesn't use `Repr.equal` [#6644 @kit-ty-kate]
* Simplify the `src_ext/update-sources.sh` script [#6701 @kit-ty-kate]
* Homogeneise verbose command output between sandboxed and non sandboxed one [#6675 @rjbou]
* Add the `install-pin-depends`, `ignore-pin-depends`, `proceed-actions` and `switch-clean-up` named questions [#6611 @kit-ty-kate @rjbou]
* Add logging for file reads and writes [#6679 @rjbou]

## Internal: Unix

Expand Down Expand Up @@ -151,6 +166,15 @@ users)
* Add a test showing the behaviour of nested extra-files [#6715 @kit-ty-kate]
* Add opam file loading tests to `update.test` to demonstrate current behaviour of loading full repository instead of only changed files. [#6614 @arozovyk @rjbou @kit-ty-kate]
* Fix `env.test` in cases where calling `env` inside of a script outputs a `__CF_USER_TEXT_ENCODING` environment variable that isn't present in `sh -c env` [#6719 @kit-ty-kate]
* Add complete tests for the `pin-depends` feature [#6611 @rjbou]
* Complete `action-disk.test` with the behaviour of `extra-files` [#6679 @rjbou]
* Complete `action-disk.test` with the behaviour of `extra-source` [#6679 @rjbou]
* Add a test showing the behaviour of opam when faced with outdated git submodule in its local cache [#6153 @kit-ty-kate]
* Add reftest for `--depext-only` option [#6516 @rjbou]
* Add a test for `opam remove --force` [#6672 @rjbou]
* Use the new `opam-set-os` command when applicable [#6741 @arozovyk]
* Add a test showing that `variables.sh` doesn't re-apply updates if sourced more than once in the same session [#6729 @dra27 @kit-ty-kate]
* Add a test for #6455 showing the effect on opam env if the switch whose settings were applied by `variables.sh` is deleted [#6729 @dra27]

### Engine
* Fix gcc < 14.3 bug on mingw i686 [#6624 @kit-ty-kate]
Expand All @@ -159,6 +183,8 @@ users)
* Allow `sed-cmd` to parse even if no space is after the command [#6675 @rjbou]
* Harden the regexp used for substituting variable checksums [#6710 @kit-ty-kate]
* Add the `unset` builtin [#6708 @kit-ty-kate]
* Add the `sed-hash` command to replace hashes in opam output [#XXX @rjbou]
* Add `opam-set-os` command for reftests that combines setting global `os-family` variable. [#6741 @arozovyk]

## Github Actions
* bump `actions/checkout` from 4 to 5 [#6643 @kit-ty-kate]
Expand Down Expand Up @@ -202,14 +228,19 @@ users)

## opam-state
* `OpamSwitchState.files`: was removed [#6662 @kit-ty-kate]
* `OpamSwitchState.overlay_opam_file`: was added [6679 @rjbou]
* `OpamRepositoryState` add `load_opams_from_diff` to update package definitions based on file change operations (diff) [#6614 @arozovyk]
* `OpamRepositoryState.get_repo_files`: was added [#6679 @kit-ty-kate @rjbou]

## opam-solver

## opam-format
* `OpamFile.OPAM.get_metadata_dir`: was removed [#6679 @kit-ty-kate]
* `OpamFile.OPAM.get_extra_files`: no longer takes a named `repos_roots` argument and instead takes a named `get_repo_files` argument. It also now returns the content of the files instead of their path [#6679 @kit-ty-kate @rjbou]
* `OpamFormula.equal_relop`: was added [#6644 @kit-ty-kate]
* `OpamTypesBase.{action,pkg_flag,simple_arg,arg,filter,command}_equal`: were added [#6644 @kit-ty-kate]
* `OpamVariable.variable_contents_equal`: was added [#6644 @kit-ty-kate]
* `OpamFormula`: add `equal` function for `OpamFormula.t` [#6730 @rjbou]

## opam-core
* `OpamConsole.confirm`: now takes an optional `name` argument [#6709 @kit-ty-kate]
Expand Down Expand Up @@ -244,3 +275,4 @@ users)
* `OpamSystem`: add lower-level `parse_patch` that preprocesses and parses a patch file. [#6614 @arozovyk]
* `OpamFilename.patch`: use variants to make the input either `Filename.t` or reuse `Patch.diffs` directly. Remove the `?preprocess` argument since the preprocess logic is moved to the `OpamFilename.parse_patch` function that is called only in `OpamVCS` (mirroring the previous logic). [#6614 @arozovyk]
* `OpamSystem.patch`: change the signature to work directly with `Patch.diffs` (implementation is now the previously `internal_patch` function), parsing is now done separately. [#6614 @arozovyk]
* `OpamCompat.Lazy`: add `map_val` [#6679 @rjbou]
11 changes: 9 additions & 2 deletions release/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ OPAM_VERSION = $(subst -,~,$(VERSION))
GIT_URL = ..

OCAMLV = 4.14.2
FLEXDLLV = 0.43
FLEXDLLV = 0.44
# currently hardcoded in Dockerfile.in
OCAML_URL = https://github.com/ocaml/ocaml/archive/refs/tags/$(OCAMLV).tar.gz
FLEXDLL_URL = https://github.com/ocaml/flexdll/archive/refs/tags/$(FLEXDLLV).tar.gz
Expand All @@ -30,7 +30,14 @@ $(OUTDIR)/opam-full-$(VERSION).tar.gz:
mkdir -p "$(OUTDIR)"
git clone $(GIT_URL) -b $(TAG) "$(OUTDIR)/opam-full-$(VERSION)"
$(MAKE) -C "$(OUTDIR)/opam-full-$(VERSION)" OCAML=$(call pathsearch,ocaml) download-ext
cd "$(OUTDIR)" && tar cz -f $(notdir $@) --exclude .git opam-full-$(VERSION)
( set -euo pipefail && \
cd "$(OUTDIR)/opam-full-$(VERSION)" && \
git archive "$(TAG)" \
--prefix "opam-full-$(VERSION)/" \
--mtime "$$(git show -s --format=%ct "$(TAG)" | tail -1)" \
-o "$(abspath $(OUTDIR)/opam-full-$(VERSION).tar)" \
$$(for f in $$(git ls-files -i -o -x '*'); do echo "--add-file=$$f" || exit 1; done) && \
gzip --no-name --best "$(abspath $(OUTDIR)/opam-full-$(VERSION).tar)" )
rm -rf "$(OUTDIR)/opam-full-$(VERSION)"

build/Dockerfile.x86_64-linux: Dockerfile.in
Expand Down
2 changes: 1 addition & 1 deletion release/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,6 @@
## Device requirements
* Mac M1 or above with Rosetta2
* >=70GB of disk space free
* brew dependencies: git, git-lfs, gpg, qemu>=8.1.0 (avoid qemu 9.1.x, see https://gitlab.com/qemu-project/qemu/-/issues/2581), docker>=24.0.0, sshpass
* brew dependencies: git >= 2.40.0, git-lfs, gpg, qemu>=8.1.0 (avoid qemu 9.1.x, see https://gitlab.com/qemu-project/qemu/-/issues/2581), docker>=24.0.0, sshpass
* opam repo with the tag fetched
* Have the secret key available
Loading