daml/dev-env
Gary Verhaegen 5f126897e5
dev-env: pin msys2/mingw (#15311)
* dev-env: pin msys2/mingw

Today the postgresql 12.4 artifacts were purged from the msys2 primary
mirrors. I was able to find a copy on some old mirrors (I downloaded
from [mirrors.piconets.webwerks.in], [mirrors.aliyun.com], and
[mirror.iscas.ac.cn]), but that raised the question of where to put the
binary so our CI nodes can access it. I decided to put it on one of our
GCS buckets, and while I was there I did the whole msys2 set of
packages.

Does this manually may not be the best path forward for a long-term
solution (though maybe it is; they tend not to change all that often),
but it does unblock us right now.

For the postgresql binary specifically, I have checked that the three
mirrors give me the exact same file between them, and that it matches
the old hash. For the other files, I downloaded them from the primary
mirror ([repo.msys2.org]) and checked that the hashes match the recorded
values in our JSON manifest.

CHANGELOG_BEGIN
CHANGELOG_END

[mirrors.piconets.webwerks.in]: https://mirrors.piconets.webwerks.in/msys2-mirror/mingw/x86_64/mingw-w64-x86_64-postgresql-12.4-1-any.pkg.tar.zst
[mirrors.aliyun.com]: https://mirrors.aliyun.com/msys2/mingw/x86_64/mingw-w64-x86_64-postgresql-12.4-1-any.pkg.tar.zst?spm=a2c6h.25603864.0.0.32b23240Qp8jCL
[mirror.iscas.ac.cn]: https://mirror.iscas.ac.cn/msys2/mingw/x86_64/mingw-w64-x86_64-postgresql-12.4-1-any.pkg.tar.zst
[repo.msys2.org]: https://repo.msys2.org/mingw/x86_64/
2022-10-21 14:14:30 +02:00
..
bin Add --ghc-repo-override flag to override GHC used in daml-sdk-head build (#14238) 2022-06-21 14:26:34 +01:00
etc dev-env: Don't use the "extra-" prefix in nix.conf. (#12306) 2022-01-07 11:19:40 +00:00
git-hooks rename master to main (#8245) 2020-12-27 14:19:07 +01:00
lib Revert "devenv: Just require Nix v2.4 or newer." (#12299) 2022-01-06 18:02:21 +00:00
windows dev-env: pin msys2/mingw (#15311) 2022-10-21 14:14:30 +02:00
.gitignore open-sourcing daml 2019-04-04 09:33:38 +01:00
profile_bash.sh update copyright headers (#12240) 2022-01-03 16:36:51 +00:00
profile_zsh.sh update copyright headers (#12240) 2022-01-03 16:36:51 +00:00
README.md remove dade-base-profile (#6743) 2020-07-16 11:17:42 +00:00
VERSION open-sourcing daml 2019-04-04 09:33:38 +01:00

Dev-env

This folder contains the development dependencies of this project.

Development

Structure

  • dev-env/lib/dade-common is the script meant to be included into all wrappers for dev-env provided tools and other dev-env specific tools (e.g. dade-info)
  • dev-env/lib/dade-dump-profile is a script which outputs - in porcelain mode - all environmental variables necessary for dev-env to function in a given shell.

Debugging

Run your comment with DADE_DEBUG=1 as prefix, e.g.:

DADE_DEBUG=1 jq

Environmental variables

Dev-env uses a common set of variables across it, here are they listed to be documented in future.

Public interface:

These variables are either used for dev-env initialization or are exported by dev-env for external tools to consume.

  • DADE_REPO_ROOT - root of a working directory where dev-env currently is executing; mutable content; input and output.
  • DADE_VAR_DIR - points to a directory which is meant for storing persistent and mutable data; mutable content; if not set, can be derived from DADE_DEVENV_DIR; input and output.
  • DADE_DEVENV_DIR - directory named dev-env under $DADE_BASE_ROOT, assume to be immutable (not yet the case); has to be set before dade-dump-profile is executed; input and output.
  • DADE_DESIRED_NIX_VERSION - user can provide this variable in their profile to silence the warning (in future, disable automatic installation of) the supported Nix version.

Private:

These variables are set in some of the dev-env tools and scripts and are not guaranteed to be always present in the dev-env environment (e.g. not guaranteed to be set by dade-common).

  • DADE_BASE_ROOT - root of the dev-env package; the directory which contains dev-env and nix directories, assume its immutable.
  • DADE_BUILD_RESULT - after a dev-env provided tool is built this variable is exported to point to a nix store where the tool was built.
  • DADE_DEBUG - sets -x in shell environemnt where dev-env scripts are executed.
  • DADE_CURRENT_SCRIPT_DIR - current directory of the currently running/sourced script, corresponds to $BASH_SOURCE[0], assume its immutable.
  • DADE_CURRENT_COMMAND - the name of the current command executed by dade
  • DADE_GC_ROOTS - points to a directory named gc-roots under DADE_VAR_DIR which contains Nix garbage collection roots and hashes for each dev-env provided tool individually; always mutable.
  • DADE_LIB_DIR - points to a directory lib under DADE_DEVENV_DIR which contains libraries for dev-env usage, assume its immutable.
  • DADE_NIXPKGS - points to a GC root which is a symlink to a Nixpkgs snapshot used by dev-env, used only in dade-dump-profile.