devkit
Overview
A tool for setup and lifecycle management of projects made up of components in multiple git repositories and using a variety of development tools.
TODO:
- Define system software required to be installed, e.g. homebrew, sdkman, docker
- Define which repos need to be pulled from git
Quick start
Create a virtual environment for use with devkit
Create a folder for all your virtual environments if you don't already have one. In your virtual environments
folder create a new virtual environment for devkit:
- Create a virtual environment
python3 -m venv devkit
- Activate the virtual environment
source devkit/bin/activate
- Get the latest version of pip
pip install --upgrade pip
- Install latest version of pipenv into virtual environment
pip install pipenv
Configure the virtual environment for devkit
Assuming you have at least python 3.6 installed in an activated virtual environment.
pipenv install
download the packages defined in Pipfile
- Test installation by setting up the example projects
./devkit.sh setup
This will clone the projects listed in resources\devkit.yml
. The example configuration
uses a folder called sandbox which is assumed to be a sub-folder of the folder from
which the devkit.sh
shell script is executed.
Install package in development mode for use from the command line
pip install -e .
Then devkit can be called from command line $ devkit setup
as long as there is a resources/devkit.yaml
in the folder where it is being executed.
Utilities
- Script to build all the repos.
- docker-compose definition to run the applications locally
- Script to update all repos
Additional information
- What branches to build from?
- What tools to use to build. Could detect this.
Improvements
- Config file to define:
- the projects being managed (i.e. git urls)
- the default branch to work from in each repo
- project specific branch overrides
- define relationships between services to allow docker-compose to be auto-generated?
- Command line utility that takes commands and options. devkit update --all --exclude= devkit update
- Option to pipe logs to log file or dev/null and just see a summary for builds
- Halt the build all if a module build fails
- An info command that summarises what's checked out, what has pending changes, etc.