After a long time, it’s time to officially release setup-ocaml v2!
With the official caching functionality introduced from v2, setup is much faster. (Notable thing: we’ve spent some time with the GitHub team pulling Actions and the ecosystem itself to the level where it “actually works”.)
We hope you will enjoy this release with a lot of other functionalities that we really need to do real development, such as support for semver-style versioning (ocaml-compiler: 4.13.x
).
And please report any bugs you encounter!
Thank you!
Added
2.0.0-alpha
- Added support for 32 bits compiler variants.
- Added semver-style version matching support.
- Cache opam root (
~/.opam
on Unix,D:\.opam
on Windows), opam download-cache (~/.opam/download-cache
on Unix,D:\.opam\download-cache
on Windows), and opam local switch (_opam
). - If
dune-cache
enabled, install dune, automatically configure the dune cache for the most efficient use in CI (exportsDUNE_CACHE=enabled
,DUNE_CACHE_TRANSPORT=direct
. TRANSPORT must bedirect
, notdaemon
, to speed up the opam install process and to support Windows: [Cache] Somehow it doesn't seem to hit the cache · Issue #4166 · ocaml/dune · GitHub, [Cache] Cache daemon is not Windows compatible · Issue #4167 · ocaml/dune · GitHub), and share the dune cache directory for each run. - If
opam-pin
is enabled, pin the local packages specified byopam-local-packages
. - If
opam-depext
is enabled, install the system dependencies specified byopam-local-packages
via depext - If
opam-disable-sandboxing
is enabled, sandboxing is disabled for all platforms except Windows. (Sandboxing is always disabled on the Windows runners due to limitations of opam.) - The profiling functionality allows us to check the duration of each group if debug mode is enabled. (Enabling debug logging - GitHub Docs)
2.0.0-beta
- Added
opam-repositories
input to support multiple opam repositories.
2.0.0-beta10
- Added “extends” experimentally.
Changed
2.0.0-alpha
- The Windows runners install
mingw64-i686-gcc-core
andmingw64-i686-gcc-g++
for 32 bit compiler variant support. - Clean the log output by grouping some operations.
- The compiler will be initialised in all platforms with an opam local switch to eliminate differences between platforms and prepare for full dependency caching in the future.
- The macOS and Ubuntu runners install and cache opam from the GitHub release directly without the system package manager.
- The macOS and Ubuntu runners install
darcs
andmercurial
. - The Windows runners install
mercurial
. - Export
OPAMCOLOR=always
. - Export
OPAMERRLOGLEN=0
. - Export
OPAMPRECISETRACKING=1
. - Export
OPAMSOLVERTIMEOUT=500
. - Export
OPAMROOT=D:\.opam
on the Windows runners. - Export
OPAMVERBOSE=true
if the actions debug mode is enabled. (Enabling debug logging - GitHub Docs) - Export
MSYS=winsymlinks:native
for@actions/cache
on the Windows runners. - Export
HOME=%USERPROFILE%
for opam on the Windows runners.
2.0.0-beta2
- Changed to force an update of the opam cache if the week number is changed.
2.0.0-beta3
- Use the week number to manage Cygwin cache.
2.0.0-beta4
- Set
OPAMSOLVERTIMEOUT
to1000
to avoid a timeout even if the opam solver is slow. - Increase cache hit ratio by loosening restore keys of opam cache.
2.0.0-beta5
- Reduce GitHub API calls to avoid issues that can easily hit rate-limiting.
2.0.0-beta6
- Unlock opam 2.1 on the Ubuntu and macOS runners.
2.0.0-beta8
- Use 2.1 mode instead of 2.0 mode on the Ubuntu and macOS runners.
2.0.0-beta9
- Increase the allowed artifact cache size from 5GB to 10GB.
2.0.0-beta10
- Remove some hacks as
--no-depexts
is now used in CLI 2.0 mode from opam 2.1.2.
2.0.0-beta13
- Do not install opam-depext if it’s not enabled.
2.0.0
- Update default runtime to node16.
Removed
2.0.0-alpha
- The
ocaml-version
input has been removed. Use theocaml-compiler
instead. - The simplified version specifying scheme (e.g.
4.12.0
) support has been removed.
2.0.0-beta
- The
opam-repository
input has been removed in order to add theopam-repositories
input.
2.0.0-beta2
- Removed the profiling functionality added in
2.0.0-alpha
.
Fixed
2.0.0-alpha
- Use the appropriate file system behavior parameters on the Windows runners. (
R2L:1
,R2R:1
) - Add
ppa: avsm/musl
on 18.04 and older Ubuntu runners. - Pass
--enable-shell-hook
toopam init
fixes a bug that must be run via opam exec in subsequent steps. - The Ubuntu runners install
gcc-multilib
,g++-multilib
forocaml-option-32bit
.
2.0.0-beta3
- Set repository priorities correctly for multiple repositories feature.
- Lock the version of opam to be installed only to < 2.1 releases until opam 2.2 is released.
2.0.0-beta5
- If no user-input version is found in the opam-repository, explicitly raise an error instead of implicitly breaking the workflow.
- Retrieve the base compiler version from opam-repository to use the live released compiler version.
2.0.0-beta7
- Return an empty array to avoid depext failure when depext flags are not passed.
2.0.0-beta11
- Add support for more styles for the ocamlformat configuration in lint-fmt action.
2.0.0-beta12
- Fallback to the version in which the assets exist if no assets exist in the latest opam release.
- Instruct Cygwin setup to use “sys” symlinks during setup (partial workaround for bug with native symlinks in Cygwin setup - some depexts may still be affected)
2.0.0-beta13
- Print a proper error if the version not found in the
.ocamlformat
file.