- Fork and clone this repo, e.g. using the instructions at GitHub: Fork a repo
- Navigate to neksa/mutagene, click the Fork button at the top right
git clone https://github.com/<your_github_username>/mutagene.git
cd mutagene
git remote add upstream https://github.com/neksa/mutagene.git
- Keep your fork in sync using the instructions at GitHub: Syncing a fork
- Use your package manager of choice to install pipenv
- Create a new pipenv environment
- e.g., if you need to specify a
python
executable:pipenv install --python=/usr/bin/python3.7
- e.g., if you need to specify a
- Install the package in development mode using setup.py
pipenv run python setup.py develop
- Create and check out a feature or bugfix branch
- e.g.,
git checkout -b feature/motif_extension
- e.g.,
- Add and commit your changes
- Update
README.md
when needed - Add a description of your changes to
CHANGELOG.md
- Ensure all tests are passing, as described below
- Submit a pull request to the upstream repo with a description of your changes
- Ensure the new branch is mergeable
- Write additional tests to cover new features as necessary
- Please make sure that all tests pass when running pytest
- Our tests make use of the pytest-securestore plugin
to store credentials for connecting to an instance of JFrog Artifactory
that stores test articles. In order to run tests using
pytest
, it is necessary to set the following environment variables:SECURE_STORE_FILE=./pytest-secure.yml.aes
SECURE_STORE_PASSWORD=
contact Alexander Goncearenco or Steven Handy for instructions- To add a test article to Artifactory, update the
TEST_FILE_MAP
dictionary in the filetests/cli/cli_test_utils.py
- If you wish to use your own Artifactory repository, the test scripts can obtain the articles from their original
sources and upload them to your Artifactory repository. See
pytest-secure.yml.template
for the required format for a file to contain your connection information. - To encrypt your YAML file, use the following commands in a
pipenv run python
interpreter:import pyAesCrypt
pyAesCrypt.encryptFile('./<your_artifactory_creds_file>.yml', './<your_artifactory_creds_file>.yml.aes', '<your_encryption_password>', (64 * 1024))
- Run the tests using
pytest
pipenv run pytest --secure-store-filename=$SECURE_STORE_FILE --secure-store-password=$SECURE_STORE_PASSWORD tests