Dev Env
Project description
This repo was originally created as a way to centralize and document the process of provisioning development environments (dev env). As time went on it became clear that it would be helpful to centralize other common development tools and utilities. This repo now contains tools, scripts and utilities which:
provision dev and CI environments using Docker with confidence that both the development and CI environments are the same
automate cutting releases
simplify integration testing
The tools, scripts and utilities in this repo assume the user follows a pre-defined set of patterns and practices.
Key Concepts
a project is hosted in either public or private github repo
at the project’s root is a text file called cfg4dev which configures the project’s dev env
after git cloning the repo, a developer configures the dev env by executing source cfg4dev
dev-env publishes dev env docker images to Docker Hub
the docker images are docker pulled to a developer’s machine by cfg4dev
CircleCI can use a dev-env docker image as a docker executor
shell and python scripts are run on a developer’s machine to access the dev env packaged in the docker image
the scripts are installed on a developer’s machine by cfg4dev
at the project’s root is a text file called CHANGELOG.md which is manually curated by developers to record key changes to the project
Assumptions
developers use macOS
dev-env targets projects which are shell and Python centric
if a project’s repo is called abc-def-ghi and the project builds a Python package, the package is called abc_def_ghi and the source code for the package is in a sub-directory of the project’s root directory called abc_def_ghi - in addition, the abc_def_ghi directory contains a file called __init__.py that contains at least a single line that looks like __version__ = '1.2.0' which declares the Python package version
scripts and Dockerfiles to build a project’s development environment are in a sub-directory of the project’s root directory called dev_env
projects use a branching strategy something like
all development is done on the master branch (optionally using feature branches)
for each release a new branch is created from master called release-<version>
CHANGELOG.md follows a predefined format / structure
What Next
take a look at the shell and python scripts to assess dev-env capability
here’s a description of how to start using dev-env
take a look at this github repo which illustrates how to use dev-env
if you’d like to help contribute to dev-env see this
References/Inspirations
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 dev_env-0.6.21.tar.gz
.
File metadata
- Download URL: dev_env-0.6.21.tar.gz
- Upload date:
- Size: 50.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 045302098924b4ba08957acb8cc44953ed24438985a7cfbb4242f7c470355bb9 |
|
MD5 | 4c233d2e7ac12020ce541513fbee2b79 |
|
BLAKE2b-256 | 7c66dfbf9ab52f361180c53a63d9267df528983288018f9bdf6940bc93724628 |
File details
Details for the file dev_env-0.6.21-py3-none-any.whl
.
File metadata
- Download URL: dev_env-0.6.21-py3-none-any.whl
- Upload date:
- Size: 28.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 794bdea3209b4ac333cd89182229bb025a07909e60e5cb89387a1de43aea80a4 |
|
MD5 | e1d5baece0ce9d2b7871ad54ee8e80eb |
|
BLAKE2b-256 | be830d8ef46505558a1e0f875a80352e798088aaa7e930fa6644047013b30bfc |