|
||
---|---|---|
.. | ||
bin | ||
dotfiles | ||
etc | ||
git-hooks | ||
lib | ||
t | ||
windows | ||
.gitignore | ||
profile_bash.sh | ||
profile_zsh.sh | ||
README.md | ||
VERSION |
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.dev-env/lib/dade-base-profile
is a sourcable version ofdade-dump-profile
.
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 fromDADE_DEVENV_DIR
; input and output.DADE_DEVENV_DIR
- directory nameddev-env
under$DADE_BASE_ROOT
, assume to be immutable (not yet the case); has to be set beforedade-base-profile
is sourced ordade-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 containsdev-env
andnix
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 bydade
DADE_GC_ROOTS
- points to a directory namedgc-roots
underDADE_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 directorylib
underDADE_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 indade-dump-profile
.
Versioning
We use Nix store paths as versions of dev-env. Briefly, this means
that non-da
repositories will have a dev-env/dev-env.version
file
with the Nix store path of the desired dev-env version. Please see the
[design doc of DEL-1294][design-doc] for details.
Changelog
Notable changes to the dev-env should be added to UNRELEASED.md
.
From there, they can be move to CHANGELOG.md
with the
update-changelog
script from ledger. Run the script as:
$ ../ledger/scripts/update-changelog UNRELEASED.md CHANGELOG.md $(cat VERSION)
This will move the entries from UNRELEASED.md
to CHANGELOG.md
.
Pull request references in the form of [pr:1234]
and Jira references
in the form of [jira:ABC-1234]
are automatically turned into links
during this process.
Releases
Run dade-freeze
to generate a release of dev-env, suitable for consumption in
other repositories. Please note That this is not published by the command.
Hydra will build new dev-env version from master as soon as it's pushed at:
http://hydra.da-int.net/job/da/master/cached.x86_64-darwin.dev-env