A build tool for monolithic repositories
Project description
Menhir is a build tool for monolithic repositories. Unlike existing monolithic build tools, it does not aim at being prescriptive about how (sub-)projects are built. It prefers to use established single project build tools at the project level.
Usage
Menhir is zero configuration.
At the root of the repository, menhir can have a menhir_root.yaml file. This file configures a set of build tools for menhir to use, using a list on the tools key. If this file is not present, all built in tools are used. The file can specify add-in tools that are maintained outside of menhir itself.
Currently the supported build tools are setup_py, pyenv, pytest and script.
The menhir command line provides the exec command to execute a build phase on the monorepo. The build phases are implemented by the build tools.
codecov - uploads coverage to coverage.io
docker - build, push, publish
dynamodb - put
setup_py - sdist, lambda-package
pyenv - requirements
pytest - test
- script - any phase for which bin/<phase-name> exists and is
executable
terraform - plan, apply, destroy
When executing the script tools, the following environment variables are set if the condition is true:
MENHIR_CHANGED MENHIR_CHANGED_DEP MENHIR_CHANGED
Installation
Install using pip.
pip install menhir
Cross project dependencies
The cross project dependencies are discovered by the build tools. Currently only the setup_py tool contributes dependencies.
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
File details
Details for the file menhir-0.0.22.tar.gz
.
File metadata
- Download URL: menhir-0.0.22.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10b42d0d50fe06bc84cdcfaa38d5f16afa4e27acca40255612942d71dd668f86 |
|
MD5 | 1a532b4fe5e8ba7fa84196ba1a8a3fcc |
|
BLAKE2b-256 | 07bdc72c0724b25f858551740fa8d8b5dda2e5ac7b73ba77f3aef91cb0cd3ce4 |