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
File details
Details for the file sentry_devenv-1.10.0.tar.gz
.
File metadata
- Download URL: sentry_devenv-1.10.0.tar.gz
- Upload date:
- Size: 37.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06c25896279d35c79894f6dd900706329fde0b855fa3537d635864f1e9175bad |
|
MD5 | 4d5873187fed6f90330e8e4a662f9b56 |
|
BLAKE2b-256 | 49c90ad9ee48975a2b42628fd22f91d7dabd278101670c0742c1d53260518a9f |
File details
Details for the file sentry_devenv-1.10.0-py3-none-any.whl
.
File metadata
- Download URL: sentry_devenv-1.10.0-py3-none-any.whl
- Upload date:
- Size: 55.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b03f616322f95fb2bb176c53da77baa14d4217a6103ab62cfa400bf16dcb86b2 |
|
MD5 | bb5ca75446e65164db1eda35c6319c6c |
|
BLAKE2b-256 | f1b3b86173051957b931f5d6189775429008693796129ac26fa58ebd2e14c459 |