-
Notifications
You must be signed in to change notification settings - Fork 410
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
[Cache] Somehow it doesn't seem to hit the cache #4166
Comments
I believe many things conspires against this:
In order to check the use of the cache you can start the cache server before with |
The |
So is it impossible to speed up the |
@mefyl is there an another way to activate the cache somehow? |
You have the counterparts on the command line and in the environment:
|
@mefyl Is there any difference between setting environment variables and adding a config file? |
There shouldn't be any, no. |
Do you have any idea why the cache is saved but it doesn't seem to be used? The first one does not use the cache with either |
@bobot Regarding OPAM sandboxing, it should not be an issue with recent versions of OPAM since the dune cache is now mounted just like ccache. You can check for this snippet in
@smorimoto I know nothing about github actions, what are the differences between the two builds ? Can you take a look inside the dune log file ( |
The first does not add the dune global configuration file, nor does the daemon start, but the second does. Let me check the build logs. |
The logs for opam were not logged for some reason, so I don't know, but at least the build of the software itself has hit the cache. |
@mefyl @smorimoto great that dune cache work! Just for my understanding, why is the |
(It still seems that the dune command call through opam does not hit the cache.) |
Result of my experiments:
To sum-up it works with @mefyl environement options, but I don't know a simple way to show it. |
It seems that the direct mode and sandboxing cannot be used at the same time: |
I found that by disabling sandboxing and making the cache as large as possible, it was twice as fast: |
Dune tells the problem, the script |
OPAM resets(only on macos) the variable
|
Hmm, weird... The same error also seems to be occurring on Ubuntu btw. |
Can you give me a link to this error on ubuntu? Because I don't see in the code (bwrap.sh) where it would be done. |
Indeed it has been fixed in ubuntu in ocaml/opam@201c304 . It should land in opam 2.1.0. |
IIUC, that fix is also included in opam 2.0.8, so let's wait for it to be released: ocaml/opam#4425. When the release is published, setup-ocaml will automatically follow it, so we can just re-try the build and see if it works as we expect. |
Hmm, ocaml/opam@201c304 does not seem to fix this. |
Does it conflict with this one?
|
@rjbou Do you have any idea why this is happening? |
There is different sandbox scripts, MacOS uses |
That is probably due to the fact that very few people use this... |
This has been fixed by ocaml/opam#4535. Thanks to everyone for helping me investigate this issue! |
No response from MAINTAINER, and this update enables the internal solver to build and be usable at runtime Changes prefixed with "(*)" are potentially breaking to scripts or existing repositories (changes that are automatically handled by the format upgrade tools are not marked). Those prefixed with "(+)" are new command/option (since 2.1.0~alpha2). 2.1.3: * [BUG] Fix `opam init` and `opam init --reinit` when the `jobs` variable has been set in the opamrc or the current config. [#5056 @rjbou] * When inferring a 2.1+ switch invariant from 2.0 base packages, don't filter out pinned packages as that causes very wide invariants for pinned compiler packages [#5176 @dra27 - fix #4501] * [BUG] Fix an internal error on repository upgrade from OPAM 1.2 [#4965 @AltGr] * Some optimisations to `opam list --installable` queries combined with other filters [#4882 @AltGr - fix #4311] * Improve performance of some opam list combinations (e.g. `--available`, `--installable`) [#4999 @kit-ty-kate] * Improve performance of `opam list --conflicts-with` when combined with other filters [#4999 @kit-ty-kate] * Improve performance of `opam show` by as much as 300% when the package to show is given explicitly or is unique [#4998 @kit-ty-kate - fix #4997 and partially #4172] * [BUG] `opam var` no longer fails if no switch is set [#5027 @rjbou - fix #5025] * [BUG] Setting a variable with option `--switch <sw>` fails instead of writing an invalid `switch-config` file [#5027 @rjbou] * When a field is defined in switch and global scope, try to determine the scope also by checking switch selection [#5027 @rjbou] * [BUG] Handle external dependencies when updating switch state pin status (all pins), instead as a post pin action (only when called with `opam pin` [#5047 @rjbou - fix #5046] * [BUG] When reinstalling a package that has a dirty source, if uncommitted changes are the same than the ones stored in opam's cache, opam consider that it is up to date and nothing is updated [4879 @rjbou] * Stop Zypper from upgrading packages on updates on OpenSUSE [#4978 @kit-ty-kate] * Clearer error message if a command doesn't exist [#4971 @kit-ty-kat - fix #4112] * [BUG] Remove windows double printing on commands and their output [#4940 @rjbou] * Actually allow multiple state caches to co-exist [#4934 @dra27 - actually fixes #4554] * Update cold compiler to 4.13 to avoid issues with glibc 2.34 on Unix [#5017 @dra27] * Bump opam-file-format to 2.1.4 [#5117 @kit-ty-kate - fix #5116] * Fix some empty conflict explanations [#4982 @kit-ty-kate - partially fix #4373] * Port some tests from master [#4841 #4974 #4861 #4915 #4979 #5004 #5006 #5015 #5024 #5025 #5031 #5131 #5176 @AltGr @dra27 @kit-ty-kate] * Update test engine to allow for additional tests [#4913 #4966 #4979 #5004 #5009 #5024 #5097 @AltGr @kit-ty-kate @rjbou] * Update for git protocol deprecation on GitHub [#5097 @rjbou] * When building opam, do not fail if curl/wget is missing [#5223 #5233 @kit-ty-kate] 2.1.2: * Fallback on dnf if yum does not exist on RHEL-based systems [#4825 @kit-ty-kate] * Use --no-depexts in CLI 2.0 mode [#4908 @dra27] * bootstrap: update ocaml version (fixes the compilation of opam with mingw) [#4927 @kit-ty-kate] 2.1.1: * Fix typo in error message for opam var [#4786 @kit-ty-kate - fix #4785] * Run the sandbox check in the temporary directory [#4787 @dra27 - fix #4783] * OpamSystem: avoid calling Unix.environment at top level [#4789 @hannesm] * Homebrew: Add support for casks and full-names [#4801 @kit-ty-kate] * Fix the cold target in presence of an older OCaml compiler version on macOS [#4802 @kit-ty-kate - fix #4801] * Archlinux: handle virtual package detection [#4833 @rjbou - partial fix #4759] * Disable the detection of available packages on RHEL-based distributions. This fixes an issue on RHEL-based distributions where yum list used to detect available and installed packages would wait for user input without showing any output and/or fail in some cases [#4791 @kit-ty-kate - fixes #4790] * Handle empty environment variable updates - missed cherry-pick from 2.0 [#4840 @dra27] * Fix vendored build on mingw-w64 with g++ 11.2 [#4835 @dra27] * Put back support for switch creation with packages argument and `--packages` option with cli 2.0, and a specific error message for cli 2.1 [#4853 @rjbou - fix #4843] * Fix reverting environment additions to PATH-like variables when several dirs added at once [#4861 @dra27] * Fix dose3 download url since gforge is gone [#4870 @avsm] * Ensure setenv can use package variables defined during the build [#4841 @dra27] * Fix `set-invariant: default repos were loaded instead of switch repos [#4866 @rjbou] 2.1.0: * Set DEBIAN_FRONTEND=noninteractive for unsafe-yes confirmation level [#4735 @dra27 - partially fix #4731] * Fix 2.1~alpha2 to 2.1 format upgrade with reinit [#4750 #4756 @rjbou - fix #4748] * Fix bypass-check handling on reinit [#4750 @rjbou] * fish: fix deprecated redirection syntax `^` [#4736 @vzaliva] * Bump src_exts and fix build compat with Dune 2.9.0 [#4754 @dra27] * Fix depext alpine tagged repositories handling [#4758 @rjbou] 2.1.0~rc2: * Remove OPAMZ3DEBUG evironment variable [#4720 @rjbou - fix #4717] * Fix format upgrade when there is missing local switches in the config file [#4715 @rjbou - fix #4713] * Fix not recorded local switch handling, with format upgrade [#4715 @rjbou] * Set opam root version to 2.1 [#4715 @rjbou] * Improved and extended tests [#4715 @rjbou] 2.1.0~rc: * (*) Environment variables initialised only at opam client launch, no more via libraries [#4606 #4703 @rjbou] * (*) Deprecated `build-doc`, `build-test`, `make` flags [#4581 @rjbou] * (+) Add `--confirm-level` and `OPAMCONFIRMLEVEL` for automatic answering [#4582 @rjbou - fix #4168; #4683 @dra27 - fix #4682; #4691 @rjbou - fix #4682] * (+) Add `--no` [#4582 @rjbou] * (+) Add a `--with-0install-solver` option to the configure script to enable the 'builtin-0install' solver [#4646 @kit-ty-kate] * Add default cli mechanism: deprecated options are accepted (in the major version) if no cli is specified [#4575 @rjbou] * Add `opam config` deprecated subcommands in the default cli [#4575 @rjbou - fix #4503] * Add cli versioning for opam environment variables [#4606 @rjbou] * Add cli versioning for enums of flags with predefined enums [#4606 @rjbou] * Clearer messages about using --cli and OPAMCLI [#4655 @dra27] * The options `--root` and `--switch` are now reflected in environment variables when building packages so that calls to `opam` during build access the correct root and switch [#4668 @LasseBlaauwbroek] * Add cli versioning for enums of flags with predefined enums [#4626 @rjbou] * Preprocess `--confirm-level` for plugins calls/install [#4694 @rjbou] * Ensure the symlink for a plugin is maintained on each invocation [#4621 @dra27 - partially fixes #4619] * Initialise environment variables for plugins call/install [#4582 @rjbou] * Expect plugins to end in .exe on Windows [#4709 @dra27] * Introduce a `default-invariant` config field, restore the 2.0 semantics for `default-compiler` [#4607 @AltGr] * Fix default invariant with no system compiler [#4644 @AltGr - fix #4640] * Perform an hard upgrade on intermediate roots, ie root from `2.1~alpha/beta`, and keep a light upgrade from `2.0` [#4638 @rjbou] * Send the 'opam root layout update' message to stderr [#4692 @AltGr] * If opam root is different from the binary, allow reading it and try to read in best effort mode [#4638 @rjbou - fix #4636] * Don't check opam system dependencies on reinit after a format upgrade [#4638 @rjbou] * Fix `sys-ocaml-cc`, `sys-ocaml-arch` and `sys-ocaml-libc` when no system compiler installed [#4706 @dra27] * Fix `Not_found` (config file) in config report [#4570 @rjbou] * Config report: Print variables of installed compilers and their (installed) dependencies [#4570 @rjbou] * Don't patch twice file [#4529 @rjbou] * With `--deps-only`, set dependencies as root packages [#4964 @rjbou - fix #4502] * Keep global lock only if root format upgrade is performed [#4612 @rjbou - fix #4597] * Improve installation times by only tracking files listed in `.install` instead of the whole switch prefix when there are no `install:` instructions (and no preinstall commands) [#4494 @kit-ty-kate @rjbou; #4667 @dra27 - fix #4422] * Scrub OPAM* environment variables added since 2.0 from package builds to prevent warnings when a package calls opam [#4663 @dra27 - fix #4660] * Correct the message when more than one depext is missing [#4678 @dra27] * Only display one conflict message when they are all owing to identical missing depexts [#4678 @dra27] * Don't exclude base packages from rebuilds (made some sense in opam 2.0 with base packages but doesn't make sense with 2.1 switch invariants) [#4569 @dra27] * Don't refer to base packages in messages any more [#4623 @dra27 - fixes #4572] * Give the correct command when demonstrating switch creation [#4675 @dra27 - fixes #4673] * On switch loading, if invariant is inferred and a write lock required, write the file [#4638 @rjbou] * Don't look for lock files for pin depends [#4511 @rjbou - fix #4505] * Fetch sources when pinning an already pinned package with a different url when using working directory [#4542 @rjbou - fix #4484] * Don't ask for confirmation for pinning base packages (similarly makes no sense with 2.1 switch invariants) [#4571 @dra27] * Fix version pin source retrieving: mustn't error if archive opam file is malformed [#4580 @rjbou] * `opam list --silent` renamed to `--check` [#4595 @dra27 - fix #4323] * Include doc field in opam-show [#4567 @dra27 - partially fix #4565] * Fix `switch` global variable resolving [#4685 @rjbou - fix #4684] * Fix `hash` package variable resolving [#4687 @rjbou] * Lint: Fix W59 & E60 for conf packages (no url required) [#4550 @rjbou - fix #4549] * Lint: Fix W59 & E60 with VCS urls, don't check upstream if url has VCS backend [#4635 @rjbou] * Lint: Add E67 checksum specified with non archive url [#4635 @rjbou] * Lint: Disable subpath warning E63,W64 [#4638 @rjbou] * Lint: Fix manpage listing [#4708 @rjbou] * Don't write lock file with `--read-only', `--safe`, and `--dryrun` [#4562 @rjbou - fix #4320] * Make `opam lock` consistent with `opam install`, on local pin always take last opam file even if uncommitted [#4562 @rjbou - fix #4320] * Opam file: Fix `features` parser [#4507 @rjbou] * Opam file: Rename `hidden-version` to `avoid-version` [#4527 @dra27] * Opam file: Fix rewriting with preserved format empty field error [#4634 @rjbou - fix #4628] * Opam file: Switch config: Defined `invariant` field as an option to differentiate when it is not defined [#4638 @rjbou] * Opam file: Differentiate bad format from bad (opam) version with `Bad_version` exception, raised from `OpamFormat.check_opam_version` [#4638 @rjbou] * Opam file: Always print the `opam-version` field on files [#4638 @rjbou] * Opam file: Config: add `opam-root-version` field as a marker for the whole opam root [#4638 @rjbou - fix #4636] * Opam file: Add `BestEffort` modules with reading functions that don't show errors, given the `opam_file_format` internal field [#4638 @rjbou - fix #4636] * Depext: Handle macport variants [#4509 @rjbou - fix #4297] * Depext: Always upgrade all the installed packages when installing a new package on Archlinux [#4556 @kit-ty-kate] * Depext: Handle some additional environment variables (`OPAMASSUMEDEPEXTS`, `OPAMNODEPEXTS`) [#4587 @AltGr] * Depext: Improve messages to hint that answering `no` doesn't abort installation [#4591 @AltGr] * Depext: Add support for non-interactive mode in macports [#4676 @kit-ty-kate] * Depext: Handling of packages of tagged repositories for alpine [#4700 @rjbou - fix #4670] * Depext: Clarify some `assume-depexts` related messages [#4671 @AltGr - partial fix #4662] * Depext: Warn the user if epel-release is missing and unavailable depexts are detected [#4679 @dra27 fix #4669] * Depext: Ignore config yes automatic answering when asking confirmation to run install commands [#4698 @rjbou - fix #4680] * Sandbox: Fix the conflict with the environment variable name used by dune [#4535 @smorimoto - fix ocaml/dune#4166] * Sandbox: Kill builds on Ctrl-C with bubblewrap [#4530 @kit-ty-kate - fix #4400] * Sandbox: Linux: mount existing TMPDIR read-only, re-bind `$TMPDIR` to a separate tmpfs [#4589 @AltGr] * Sandbox: Fix the sandbox check [#4589 @AltGr] * Sandbox: Fix sandbox script shell mistake that made `PWD` read-write on remove actions [#4589 @AltGr] * Sandbox: Port bwrap improvements to sandbox_exec [#4589 @AltGr] * Sandbox: Fix realpath use for macos, partial revert of #4589 [#4609 @AltGr] * Add missing shell quoting to support space and special shell characters in switch directory path [#4707 @kit-ty-kate] * Rename `state.cache` to include the `OpamVersion.magic()` string. All .cache files are deleted if any cache file is written to, allowing multiple versions of the library to co-exist without constantly regenerating it [#4642 @dra27 - fix #4554] * Fix Cudf preprocessing [#4534 #4627 @AltGr - fix #4624] * Allow to upgrade to a hidden-version package if a hidden-version package is already installed [#4525 @kit-ty-kate] * Add support for a few select criteria useful to CI to the 0install solver: `+count[version-lag,solution]` to always choose the oldest version available, `+removed` to not try to keep installed packages [#4631 @kit-ty-kate] * Fix opam-devel's tests on platforms without openssl, GNU-diff and a system-wide ocaml [#4500 @kit-ty-kate] * Use dune to run reftests [#4376 @emillon] * Restrict `extlib` and `dose` version [#4517 @kit-ty-kate] * Restrict to `opam-file-format.2.1.2` [#4495 @rjbou] * Require `opam-file-format.2.1.3+` in order to enforce `opam-version: "2.1"` as first non-comment line [#4639 @dra27 - fix #4394] * Switch to newer version of MCCS (based on newer GLPK) for src_ext [#4559 @AltGr] * Bump dune version to 2.8.2 [#4592 @AltGr] * Bump the minimal dune requirement to dune 1.11 [#4437 @dra27 @kit-ty-kate] * 4.12 compatibility [#4437 @dra27 @kit-ty-kate] * Cold compiler updated to 4.12 [#4616 @dra27] * Fix build from source when a dune-project file is presented in the parent directory [#4545 @kit-ty-kate] * Fix build from source when a dune-project file is presented in the parent directory [#4545 @kit-ty-kate - fix #4537] * Fix opam-devel.install not to install two files called opam [#4664 @dra27] * Build release tags as non-dev versions, as for release tarballs [#4665 @dra27 - fix #4656] * Disable dev version for tests (needed for format upgrade test) [#4638 @rjbou] * Add a hint for missing `openssl` in `make cold` [#4702 @rjbou] * Remove test field from opam-devel, they need the network [#4702 @rjbou] * Update src_ext for Dune and MCCS [#4704 @dra27] * Release scripts: switch to OCaml 4.10.2 by default, add macos/arm64 builds by default [#4559 @AltGr] * Release scripts: add default cli version check on full archive build [#4575 @rjbou] * Arg: Generalise `mk_tristate_opt` to `mk_state_opt` [#4575 @rjbou] * Arg: Fix `mk_state_opt` and rename to `mk_enum_opt` [#4626 @rjbou] * Arg: Add `mk_enum_opt_all` for state flags that appears more than once [#4582 @rjbou] * Fix `opam exec` on native Windows when calling cygwin executables [#4588 @AltGr] * Fix temporary file with a too long name causing errors on Windows [#4590 @AltGr] * CLI: Add flag deprecation and replacement helper [#4595 @rjbou] * Win32 Console: fix VT100 support [#3897 #4710 @dra27] * Tidied the opam files [#4620 @dra27] * Externalise cli versioning tools from `OpamArg` into `OpamArgTools` [#4606 @rjbou] * Each library defines its own environment variables, that fills the config record [#4606 @rjbou] * Harden cygpath wrapper [#4625 @dra27] * Reset the plugin symlinks when the root is upgraded [#4641 @dra27 - partial fix for #4619] * Formalise opam dev version detection with `OpamVersion.is_dev_version` [#4665 @dra27] * Add `OpamStd.String.is_prefix_of` [#4694 @rjbou @dra27] * Fix `OpamStd.Format.pretty_list`: `last` argument dropped if list contains more than 2 elements [#4694 @rjbou] * Run the shell hooks with closed stdin (bash, zsh) [#4692 @AltGr] * Improved and extended tests [#4376 #4504 #4545 #4612 #4668 #4612 #4634 #4672 #4638 #4702 #4697 #4697 @AltGr @dra27 @emillon @rjbou] * Improve Github Actions [#4593 #4575 #4610 #4610 #4618 #4606 #4695 #4695 @AltGr @dra27 @rjbou] * Improve documentation [#4496 #4506 #4513 #4637 #4681 #4702 @dannywillems @eth-arm @kit-ty-kate @rjbou @UnixJunkie] 2.1.0~beta4: * (*) Implemented CLI version compatibility layer [#4385 @rjbou] * (*) Return code 31 (`Sync_error`) instead of code 40 (`Package_operation_error`) when all failures happend during fetching [#4416 @rjbou - fix #4214] * (+) Add `--download-only` flag [#4071 @Armael @rjbou - fix #4036] * (+) Provide `opam update --depexts` to request an update of the system package manager databases [#4379 @AltGr - fix #4355] * Set OPAMCLI=2.0 during package action commands [#4492 @kit-ty-kate] * Fix sandbox check on first `opam init` [#4370 @rjbou - fix #4368] * Print shell-appropriate eval command on `opam init` [#4427 @freevoid] * Fix init script check in csh [#4482 @gahr] * The stdout of `pre-` and `post-session` hooks is now propagated to the user [#4382 @AltGr - fix #4359] * `post-install` hooks are now allowed to modify or remove installed files [#4388 @lefessan] * Add support for switch-specific pre/post sessions hooks [#4476 @rjbou - fix #4472] * Ensure we don't advertise upgrades to hidden versions [#4477 @AltGr - fix #4432] * Fix `opam remove --autoremove <PKG>` to not autoremove unrelated packages [#4369 @AltGr - fix #4250 #4332] * Fix cases where `opam remove -a` could trigger conflicts in the presence of orphan packages [#4369 @AltGr - fix #4250 #4332] * Fix `--update-invariant` when removing or changing package name [#4360 @AltGr - fix #4353] * Fix updates of the invariant with `--update-invariant` [#4431 @AltGr] * Fix cleanup of build dirs for version pinned packages [#4436 @rjbou - fix #4255] * Fix opamfile format upgrade on pinning [#4366 @rjbou - fix #4365] * Fix `pin --show` actually pinning [#4367 @rjbou - fix #4348] * When several pins are needed, do their fetching in parallel [#4399 @rjbou - fix #4315] * Don't cleanup VCS pin source directories [#4399 @rjbou] * Fix `--working-dir` with local switches [#4433 @rjbou] * Add package variable `opamfile-loc`, containing the location of installed package opam file [#4402 @rjbou] * Fix `arch` detection when using 32bit mode on ARM64 [#4462 @kit-ty-kate] * Fix `arch` detection of i486 [#4462 @kit-ty-kate] * Skip loading the switch state for variable lookup when possible [#4428 @rjbou] * Fix package variables display when no config file is found [#4428 @rjbou] * Fix `opam option depext-bypass-=["XXX"]` [#4428 @rjbou] * Lint: add a check that strings in filtered package formula are booleans or variables [#443 @rjbou - fix #4439] * Fix handling of filename-encoded pkgname in opam files [#4401 @AltGr - fix ocaml-opam/opam-publish#107] * Don't recompile when modifying the package flags [#4477 @AltGr] * Add depext support for NetBSD and DragonFlyBSD [#4396 @kit-ty-kate] * Fix depexts on OpenBSD, FreeBSD and Gentoo: Allow short names and full name paths for ports-based systems [#4396 @kit-ty-kate] * Handle the case where `os-family=ubuntu` as `os-family=debian` [#4441 @alan-j-hu] * Update opam's opam files to 2.0 [#4371 @AltGr] * Makefile: Add rule `custom-libinstall` for `opam-custom-install` use [#4401 @AltGr] * Use the archive caches when running `opam admin cache` [#4384 @AltGr - fix #4352] * Fix explosion of `opam admin check --cycles` on repositories with huge cliques [#4392 @AltGr] * Much improved format-preserving printer [#4298 #4302 @rjbou - fix #3993] * Fix missing conflict message when trying to remove required packages [#4362 @AltGr] * Fix the Z3 backend for upgrades [#4393 @AltGr] * Fix cases where opam would wrongly complain about action cycles [#4358 @AltGr - fix #4357] * Fix permission denied fallback for openssl [#4449 @Blaisorblade - fix #4448] * Add debug & verbose log for patch & subst applications [#4464 @rjbou - fix #4453] * Be more robust w.r.t. new caches updates when `--read-only` is not used [#4467 @AltGr - fix #4354] * Improved and extended tests [#4375 #4395 #4428 #4385 #4467 #4475 #4483 @emillon @rjbou @AltGr @freevoid @dra27] * Switched to Github actions [#4463 @rjbou] 2.1.0~beta2: * Reduced startup times, in particular for `opam exec` [#4341 @AltGr] * Fixed the sandboxing check on fresh inits [#4342 @AltGr] * Fixed cases where `--with-version` was not respected by `opam pin` [#4346 @AltGr] * Upgraded the bootstrap OCaml compiler from 4.09.1 to 4.11.1 [#4242 @avsm @dra27 @MisterDA @rjbou] 2.1.0~beta: * (*) `--cli` / `OPAMCLI` option added [#4316 @dra27] * `--help/--version` documented in wrong section for aliases [#4317 @dra27] * `opam lock --help` missing common information {#4317 @dra27] * (+) `--yes` passed to all commands, and plugins [#4316 @dra27] * On init, check availability of sandbox and propose to disable [#4284 @rjbou - fix #4089] * config upgrade: on the fly upgrade if no write lock required [#4313 @rjbou] * (*) Add `pin scan` subcommand to list available pins [#4285 @rjbou] * (*) Add `--normalise` option to print a normalised list when scanning, that can be taken by `opam pin add` [#4285 @rjbou] * (*) Add `with-version` option to set the pinned package version [#4301 @rjbou] * Add error message in case git repo is empty [#4303 @rjbou - fix #3905] * Lock: Support -d as alias of --direct-only (to match plugin) [#4319 @dra27] * Switch: Support -n as an alias of --no-action (to match opam-pin) [#4324 @dra27] * List: <field> form no longer advertised as valid for --columns [#4322 @dra27] * Admin: <field> form no longer advertised as valid for --columns in list [#4322 @dra27] * Solver: Don't penalise packages with more recent 'hidden-versions' [#4312 @AltGr] * `OpamCommand.pin` refactor, including adding `OpamClient.PIN.url_pins` to pin a list of package with url [#4285 #4301 @rjbou] * `OpamPinCommand.source_pin', for new package confirmation, don't check that no opam file is given as argument [#4301 @rjbou] * CLI: Provide all functions in the client library [#4329 @AltGr] * Process: don't display status line if not verbose, and status line disabled [#4285 @rjbou] * Optimise package name comparison [#4328 @AltGr - fix #4245] 2.1.0~alpha3: * Confirmation on non-compiler switch invariant: not on dryrun, Y by default [#4289 @AltGr] * (*) Fix pin kind automatic detection consistency [#4300 @rjbou]: With `opam pin target', when opam file is not versioned and at root, vcs-pin the package instead of path-pin, and with `opam pin add nv target', take opam file even if not versioned. * External dependencies: Fix non-interactive mode on OpenSuse [#4293 @kit-ty-kate] * src-ext: bump topkg to 1.0.2 and dune to 2.6.2, with a second compiler built in case main one is < 4.07.0 (dune restriction) [#4294 @dra27] * Allow Z3 backend to return sub-optimal solutions on timeout, add `OPAMSOLVERALLOWSUBOPTIMAL` environment variable [#4289 @AltGr] * Add an optional solver relying on opam-0install-cudf [#4240 @kit-ty-kate] 2.1.0~alpha2: * Remove m4 from the list of recommended tools [#4184 @kit-ty-kate] * Fix config solver field ignored at init [#4243 @rjbou - fix #4241] * Fix atoms formula restriction with `--all` at upgrade [#4221 @rjbou - fix #4218] * Copy instead of calling rsync when archives are in a local cache [#4270 @kit-ty-kate] * Opam file build using dune, removal of opam-%.install makefile target [#4178 @rjbou #4229 @kit-ty-kate - fix #4173] * Use version var in opam file instead of equal current version number in opamlib dependencies [#4178 @rjbou] * src ext: fix extlib url [#4248 @rjbou] * Add `_build` to rsync exclusion list [#4230 @rjbou - fix #4195] * Recursive opam file lookup: ignore `_build` [#4230 @rjbou] * Assume-built fix & rewriting [#4211 @rjbou] * Fix autoremove env var handling [#4219 @rjbou - fix #4217] * Fix Not_found with `opam switch create . --deps` [#4151 @AltGr] * Package Var: resolve self `name` variable for orphan packages [#4228 @rjbou - fix #4224] * (*) Reject (shell) character on switch names [#4237 @rjbou - fix #4231] * Fix `OPAMSWITCH` empty string setting, consider as unset [#4237 @rjbou] * opam-installer: For paths, remove use of empty switch in favor of a context-less module [#4237 @rjbou] * Add missing depext to unavailable reasons [#4194 @rjbou #4279 @rjbou - fix #4176] * (*) Bump config file version to 2.1 (new depext fields) [#4280 @rjbou - fix #4266] * Add depext handling on new pinned packages [#4194 @rjbou - fix #4189] * Don't keep unpinned package version if it exists in repo [#4073 @rjbou - fix #3630] * Fix path resolving when pinning with `file://` [#4209 @rjbou - fix #4208] * (*) Disable recursive & subpath pinning (only present experimentally in opam 2.1.0~alpha) [#4252 @rjbou] * Add switch depext-bypass as modifiable field [#4194 @rjbou - fix #4177] * Add `--no-depexts` option to disable depexts packages unavailability [#4194 @rjbou - fix #4205] * Warn if packages are not listed because of depexts unavailability [#4194 @rjbou - fix #4205] * (*) Display error message for all not found packages [#4179 @rjbou - fix #4164] * (*) Keep package order given via cli [#4179 @rjbou - fix #4163] * `--sort`` apply to with all options, not only `--just-file` [#4179 @rjbou] * Add scope display to Not found message [#4192 @rjbou] * No scope needed for variable display [#4192 @rjbou - fix #4183] * Fix package variable resolution [#4192 @rjbou - fix #4182] * opam option: Fix messages advertising a command in an obsolete format [#4194 @rjbou] * E65: check that url local paths are absolute [#4209 @rjbou] * Fix arch query depext [#4200 @rjbou] * Add message when adding a package to `depext-bypass` [#4194 @rjbou] * Fix performance issue of depext under Docker/debian [#4165 @AltGr] * Handle debian virtual packages [#4269 @AltGr @rjbou - fix #4251] * Refactor `OpamSysInteract` package status [#4152 #4200 @rjbou] * Add environment variables handling on depext query [#4200 @rjbou] * Add depext Macport support [#4152 @rjbou] * Homebrew/depext: add no auto update env var for install, accept `pkgname` and `pkgname@version` on query [#4200 @rjbou] * Tag packages with missing depexts in Cudf [#4235 @AltGr] * Force LC_ALL=C for depext query commands [#4200 @rjbou] * Put back opam-depext-2.0's behaviour with regards to asking users' consent before installing system packages [#4168 @kit-ty-kate @rjbou] * Add OPAMDEPEXTYES env variable to pass --yes options to system package manager [#4168 @kit-ty-kate @rjbou] * Fix system install command dryrun [#4200 @rjbou] * (+) Add --depext-only to install only external dependencies, regardless of config depext status [#4238 @rjbou] * Move system install confirmation message after opam packages install [#4238 @rjbou] * Error if '--depext-only' is given with '--assume-depexts' or '--no-depexts' [#4238 @rjbou] * Sanddbox: no error when linked directory doesn't exist (e.g. XDG defined) [#4278 @kit-ty-kate] * Sandbox: add quotes to avoid space unwanted behaviors [#4278 @kit-ty-kate] * Fix temp files repository cleaning [#4197 @rjbou] * Fix admin cache synchronisation message [#4193 @rjbou - fix #4167] * Fix mismatching extra files detection [#4198 @rjbou] * Fix Cudf generation for compat with external solvers [#4261 @AltGr] * Check for a solution before calling the solver [#4263 @AltGr] * Add the package flag 'hidden-version' to discourage selection by the solver [#4281 @AltGr] * Tweak the default criteria to handle 'missing-depexts' and 'hidden-version' flags [#4281 @AltGr] * Disable chrono when timestamps are disables [#4206 @rjbou] * Expose some functionality in the `OpamAction`, `OpamPath` and `OpamSwitchState` modules for use without a `switch` value (introduce a functor to permit replicating switch layout in different contexts) [#4147 @timberston] * Std: Add map_reduce to Set and Map [#4263 @AltGr] * Fix regression in command resolution from #4072 (ocaml code for looking up commands in PATH) [#4265 @dra27] * Use OCaml 4.09.1 for the make cold target [#4257 @dra27] * Add show cram test [#4206 @rjbou] * Add envrionnement variable handling on cram test [#4206 @rjbou] 2.1.0~alpha: * Recursive & subpath based pin [#3499 @rjbou @hngrgr - fix #3174 #3477] * Define switch invariants rather than "base packages" [#3894 @AltGr] * Don't warn on switch creation with 'ocaml' as invariant [#4108 @AltGr] * Better error handling on switch creation [#4121 @AltGr] * Integrate lock plugin [#3746 @rjbou - fix #3734 #3769 #3694] * Add configuration modifications as opam config subcommands [#3992 @rjbou] * opam var and opam option outside of opam config [#4116 @rjbou - fix #4119] * Enable option var optimisation switch load [#4138 @rjbou] * Integrate depext plugin [#3975 @rjbou @AltGr - fix #3790 #1519 #2426 #3692] * Enable command/output display only from verbose level 3 [#4141 @rjbou] * Add `opam install --check <pkg>` checks that `<pkg>` dependencies are already installed in the switch. It reports missing ones and exits with 1, 0 otherwise. It is used on a check only purpose, additionally to `--deps-only`. [#3854 @rjbou - fix #3823] * Add `opam install <pkg> --ignore-conflicts` to use with `--deps-only` in case it is needed to install dependencies without taking conflicts into account. [#3853 @rjbou - fix #3846] * Add `opam show --just-file <file>` shows information of a given file, without loading the switch state. It can be combined with other options, as field filter `--field`. It deprecates `--file` option. [#3729 @rjbou - fix #3721] * Add `opam show --all-versions <pkg>` displays information of all versions of the given package. It can be used in combination of field filter. [#3867 @rjbou - fix #2980] * Add `opam show --sort <pkg>` display on stdout a sorted opam file: all fields are alphabetically sorted. [#3866 @rjbou - fix ocaml-opam/opam2web#173] * opam show better error handling. [#4118 @rjbou - fix #3875] * `opam show --field` are no longer required to end with a colon. [#3931 @rjbou] * (*) `opam show --normalise` disable terminal width wrapping. [#3868 @rjbou - fix #3751] * `opam env --check` permit to indicates if an opam environment is synchronized: returns 0 if up-to-date, 1 otherwise. [#4074 @rjbou - fix #3725] * Add `opam switch export --freeze` to record VCS commit hash when a VCS url is specified. [#4055 @hannesm] * Add `opam switch export --full` option, include extra-files in switch export, on import create an overlay directory with the file contents. [#4040 @hannesm] * Optimize repository loading: we store the repository contents as .tar.gz files in ~/.opam/repo instead. [#3752 @AltGr - fix #3721] * Handle failure or interruption of tar during `opam update`. [#3861 @AltGr] * Fallback in case repository archive doesn't exist. [#4008 @rjbou] * In case repository archive is corrupted, delete it and ask to launch an update. [#4075 @rjbou - fix #4053] * When adding a repository, an error is displayed in case of mismatching urls, now both urls are displayed. [#4086 @rjbou - fix #4085] * Handle url backend change to VCS of a package from repository. [#4007 @rjbou - fix #3991] * Allow local compiler switch creation. [#3720 @rjbou - fix #3713] * Switch creation, fix multiple compiler candidate. [#3884 @rjbou - fix #3874] * Make reinstall handling stricter. [#3907 @AltGr] * (*) `opam list --resolve`: restrain test dependencies to direct one instead of listing all test dependencies of queried package(s) [#3923 @rjbou - fix ocaml-opam/opam-depext#121] * Update pin-depends confirmation message to add a skip option. [#3852 @rjbou - fix #3840] * Add OPAMDROPWORKINGDIR environment variable for C. [#3792 @rjbou - fix #3727] * Don't restrain copy to versioned file. [#3759 @rjbou] * Don't fetch sources when working-dir is set. [#4046 @rjbou] * Update in place source copy: [#3948 @rjbou] - review `sync_dirty` on VCS: - use VCS to synchronize, then rsync & remove others files - exclude `_build`, `_opam` & VCS directories - when `--inplace-build` is given, it does a dirty synchronization of the sources, in order to keep tracking package stats (clean, local or dirty). * Fix `working-dir` messages on update command. [#3824 @rjbou] * Working-dir fixes. [#3982 @rjbou] * Update download errors handling during actions processing. [#3811 @AltGr] * Update `ftp` command, to pass url last. [#3910 @hannesm] * Terminate (with double dashes) list of command-line download option. [#3913 @cfcs] * Repository: remove 'file://' prefix for darcs. [#3761 @rjbou] * Opam{Git,Hg}: Fix diffs in presence of binary file. [#3879 @kit-ty-kate] * Set core.autocrlf and core.eol for Git remotes. [#3882 @dra27] * Add a git clean on `reset_tree` to keep source dir clean. [#3948 @rjbou] * Lint W62: Add a lint check for SPDX license. [#3976 @AltGr] * Lint: add result in json output. [#3848 @rjbou - fix #3046] * Add lint codes in manpage. [#3903 @rjbou] * Default configuration file: add `getconf` to required tools. [#3813 @rjbou] * Clarify message in `opam init --yes`. [#3892 @dra27] * Shell setup: don't advice an infinite sourcing loop. [#3832 @rjbou] * Default configuration file: Add compilation target globals, `sys-ocaml-arch, `sys-ocaml-cc`, and `sys-ocaml-libc`. [#3900 @dra27] * Ensure that environment is initialized lazily, not before init functions are called [#4111 @gasche] * Fix OPAMLOGS handling, and logdir `opam_init` argument [#4117 @rjbou - fix #4076] * Include base packages configuration variables in opam config report. [#3798 @dra27] * Determine jobs number at launch (`OpamStateConfig`) [#4004 @rjbou - fix #3986] * Fully test native Windows in the testsuite. [#3260 @dra27] * Allow native Windows to use Cygwin tool. [#3348 @dra27] * Deal with Windows path conventions (backslashes, .exe, etc.) [#3350 @dra27] * Correct display of dir separator on Windows. [#3893 @dra27] * Tested wrong variable in OPAMW_HasGlyp. [#3898 @dra27] * Default use `fetch` on FreeBSD, `ftp` on OpenBSD. [#3904 @hannesm] * Don't overwrite user's sandbow script modification. [#4020 #4092 @rjbou] * Handle `CCACHE_DIR` environment variable in sandbox script. [#4087 @rjbou - fix #4079] * Follow links of `~/.cache` & `~/.cache/dune` for bwrap call. [#4087 @rjbou - fix #4086] * On MacOS sandbox script, always read write mount `/tmp` [#3742 @rjbou - fix ocaml/opam-repository#13339] * Environment file right handling for empty switch. [#3899 @dra27] * Add colon for fish MANPATH fix. [#4084 @rjbou - fix #4078] * Update zsh check interactive terminal [#4095 @OCamlPro-mattiasdrp #4128 @AltGr] * Add package selection to `opam admin add-hashes` [#3787 @rjbou - fix #3767] * Download files (patches, etc.) using a safe filename. [#3900 @dra27] * `opam admin --add-constraints`, add constraint on depopts. [#4002 @rjbou - fix #3994] * Add `format-version` field to all opam files. [#3478 @AltGr] [#3906 @AltGr] * Clarify pin depend parse error. [#3762 @rjbou] * Opam file extensions (`x-` fields) enhancement. [#4049 @hannesm] * Add support for Z3 as a solver backend. [#3845 @AltGr] * Interleave download actions with build/install actions. [#3777 @Armael] [#4083 @rjbou - fix #4080] * Generalization of the job scheduler: provide separate job pools for different subsets of the tasks. [#3778 @AltGr] * Refactor the return types of `OpamSolution.{apply,resolve_and_apply}` [#3781 @Armael] * Use the scheduler pools to respect the download-jobs parameter. [#3791 @AltGr] * Set the right opam file `format-version` field on upgrade. [#4014 @rjbou] * Streamline the output from download action. [#3794 @AltGr] * Use a character that displays better on terminals for download action. [ #3802 @AltGr] * Change symbol for download action. [#3862 @AltGr] * Include the version number in "compilation failed" message. [#4052 @Armael] * Propagate `--force` remove option to directory tracking revert function. [#4094 @rjbou - fix #4091] * Add `OpamDirTack.string_of_changes` [#4107 @rjbou @hannesm] * Introduce state `drop` function to replace `ignore (unlock ..)` for more lock-type-safety. [#3783 @gasche - #3812 @rjbou] * Change `OpamStateTypes.switch_state.conf_files `from package_map` to `name_map` [#3799 @dra27] * Fix handling of availability outside of switches. [#3864 @AltGr] * Sorting formulas function. [#3945 @rjbou] * Sort formula: fix `compare_formula` & add `compare` [#3960 @rjbou] * Patch rewrite test. [#3456 @dra27] * Command errors display: differentiate command not found & permission denied. [#3865 @rjbou] * Factorize option functions in `OpamProcess` [#4016 @nobrakal] * Use ocaml code for looking up commands in `PATH` [#4072 @Armael] * Copy files using OCaml code instead of calling to cp or install [#4064 @Armael] * Sort & clean pkg:depend. [#4060 @rjbou - fix #4057] * Add `of_json` functions & crowbar. [#3776 @gasche] * JSON (de)serialization for OpamParallel graph. [#3786 @gasche] * Url: catch failure & specific exception. [#3946 @rjbou] * Update: don't update installed dev package that is not pinned. [#3947 @rjbou] * Use `OpamArg` helpers for option. [#4059 @rjbou] * Steps towards sudo-enabled make install. [#3522 @dra27] * Port build system to Dune (1.2) [#3618 @dra27] * Update shell/msvs-detect to 0.4.0. [#3869 @dra27] * Sort out repository script mode. [#3963 @dra27] * Preliminary support for Dune 2.0. [#3965 @dra27] * Update mccs.1.1+11 [#4109 #4146 @MisterDA] * Fix developer mode option. [#3646 @rjbou] * Ensure configure generates consistently. [#3935 @dra27] * Documentation [#3542 @0xflotus] [#3571 @hannesm] [#3780 @gasche] [#3944 @tchajed] [#3955 @nbraud] [#4106 @vp2177] [#3863 @dra27] [#3554 @rjbou - fix #3540 #2255c #3612 #3606c] [#4058 @rjbou] [#4114 @rjbou @AltGr]
What I want to do is speed up the
opam install
process, but somehow it doesn't seem to hit the cache properly. This has been primarily tested on the GitHub Actions VM, but theopam install
process doesn't seem to be as fast as expected on my local machine. However, the cache files seem to be generated properly, and it's likely that the cache was not hit or used properly. Is there any way to easily check if it's hit?Reproduction
If the cache exists on cache storage, restore it to the cache directory
Put the following dune configuration to
~/.config/dune/config
(lang dune 2.0) (cache enabled) (cache-transport direct)
or
(lang dune 2.0) (cache enabled)
Start the cache daemon
Install and build dependencies and source
Store cache directory contents to cache storage
Specifications
dune
: 2.8.2ocaml
: 4.11.1The text was updated successfully, but these errors were encountered: