We welcome contributions and improvements, please see the contribution guidelines below:
# Clone the Meltano repo git clone firstname.lastname@example.org:meltano/meltano.git # Change directory into the Meltano project cd meltano # Optional, but it's best to have the latest pip pip install --upgrade pip # Optional, but it's best to have the latest setuptools pip install --upgrade setuptools # Optional, but it's recommended to create a virtual environment python -m venv venv # Activate your virtual environment source ./venv/bin/activate # Install all the dependencies pip install -r requirements.txt # Install dev dependencies with the edit flag on to detect changes pip install -e '.[dev]' # Run scripts to create remaining required files make bundle
Open a new terminal tab in the meltano project directory:
# Change into the Meltano UI code directory cd src/analyze # Install the dependencies for Meltano UI npm install # Start the web server for Meltano UI npm run dev
Meltano uses an approval workflow for all merge requests.
Meltano uses changelog-cli to populate the CHANGELOG.md
changelog (new|change|fix|breaks) MESSAGE to describe your current work in progress.
$ changelog new "add an amazing feature" $ git add CHANGELOG.md
Make sure to add CHANGELOG entries to your merge requests.
Meltano uses semver as its version number scheme.
Ensure you have the latest
master branch locally before continuing.
# get latest master branch $ git fetch origin
Meltano uses tags to create its artifacts. Pushing a new tag to the repository will publish it as docker images and a PyPI package.
# activate your virtualenv $ source ./venv/bin/activate # pip install all the development dependencies $ pip install '.[dev]'
# create and checkout release-next branch that's based off master branch $ git checkout -b release-next origin/master # view changelog (verify changes made match changes logged) $ changelog view # after changelog validation, build the release $ make release # validate that the tag auto increments based on semver $ git push --tags # update meltano repo with release-next branch $ git push origin release-next
masterand make sure to check
delete the source branch when the changes are merged.
Tmuxinator is a way for you to efficiently manage multiple services when starting up Meltano.
In order to run applications, you need to run multiple sessions and have to do a lot of repetitive tasks (like sourcing your virtual environments). So we have created a way for you to start and track everything in its appropriate panes with a single command.
It's a game changer for development and it's worth the effort!
This config uses
$MELTANO_VENV to source the virtual environment from. Set it to the correct directory before running tmuxinator.
.venvin line 2 refers to your virtual environment directory in Step #1.
$ cd path/to/meltano $ MELTANO_VENV=.venv tmuxinator local