Utilities for setting up a Sentry development environment
Project description
devenv
managing dev environments since '24
devenv
is an extensible execution framework and library for authoring
a simple set of high level commands - bootstrap, sync, doctor, nuke - that
manage a repository's dev environment.
prerequisites
Are you a Sentry employee? Make sure your GitHub account has been added to a getsentry/engineering
team. If not, open an IT Ticket before continuing.
Otherwise, set the SENTRY_EXTERNAL_CONTRIBUTOR
environment variable.
install
Download this and run it:
bash install-devenv.sh
This "global" devenv is installed to ~/.local/share/sentry-devenv
.
To update this installation, run devenv update
.
user guide
devenv bootstrap
This is intended for initial setup.
devenv fetch [repository name]
Any repository on github in the form of [org]/[reponame]
Repositories are cloned to a "coderoot" directory which is specified in the global configuration.
Note: sentry
and ops
are currently special names which perform more complicated installations (e.g., sentry
will set up both sentry and getsentry)
devenv sync
When you're inside a repository, this will bring the dev environment up to date,
or create it if it doesn't exist.
It runs [reporoot]/devenv/sync.py
.
devenv doctor
When you're inside a repository, this diagnoses and tries to fix common issues.
Checks and fixes are defined in [reporoot]/devenv/checks
.
devenv nuke|uninstall
(wip)
When you're inside a repository, this completely removes the dev environment.
technical overview
devenv itself lives in ~/.local/share/sentry-devenv
.
This is the "global" devenv. Inside:
bin
contains devenv itself anddirenv
- this is the only PATH entry needed for devenv
- a private python and virtualenv used exclusively by
devenv
As much as possible, a repo's dev environment is self-contained within [reporoot]/.devenv
.
We're relying on direnv
(which bootstrap will install, globally) to add [reporoot]/.devenv/bin
to PATH.
Therefore a minimum viable [reporoot]/.envrc
might look like:
if [ -f "${PWD}/.env" ]; then
dotenv
fi
PATH_add "${HOME}/.local/share/sentry-devenv/bin"
if ! command -v devenv >/dev/null; then
echo "install devenv: https://github.com/getsentry/devenv#install"
return 1
fi
PATH_add "${PWD}/.devenv/bin"
configuration
global configuration is at ~/.config/sentry-devenv/config.ini
.
repository configuration is at [reporoot]/devenv/config.ini
.
develop
We use tox
. The easiest way to run devenv locally is just using the tox venv's executable:
~/code/sentry $ ~/code/devenv/.tox/py311/bin/devenv sync
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sentry_devenv-1.10.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b03f616322f95fb2bb176c53da77baa14d4217a6103ab62cfa400bf16dcb86b2 |
|
MD5 | bb5ca75446e65164db1eda35c6319c6c |
|
BLAKE2b-256 | f1b3b86173051957b931f5d6189775429008693796129ac26fa58ebd2e14c459 |