When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
Please note we have a code of conduct, please follow it in all your interactions with the project.
- Fork the repository.
- Clone the forked repository.
- Push all your changes to the dev branch of the forked repository.
- Create pull requests to the origin repository.
- Install package dependencies.
- Clone the
schematic
package repository:git clone https://github.com/Sage-Bionetworks/schematic.git
- Create and activate a virtual environment.
- Run the following commands to build schematic and install the package along with all of its dependencies:
cd schematic # change directory to schematic git checkout develop # switch to develop branch of schematic poetry build # build source and wheel archives pip install dist/schematicpy-0.1.11-py3-none-any.whl # install wheel file
- Obtain appropriate Google credentials file(s).
- Obtain and Fill in the
config.yml
file and the.synapseConfig
file as well as described in theFill in Configuration File(s)
part of the documentation. - Run the test suite.
Note: To ensure that all tests run successfully, contact your DCC liason and request to be added to the schematic-dev
team on Synapse.
- Ensure any install or build dependencies are removed before the end of the layer when doing a build.
- If needed, update the README.md with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.
- You may merge the Pull Request in once you have the sign-off of at least one other developer, or if you do not have permission to do that, you may request the second reviewer to merge it for you.
- When merging into dev into master follow release procedures (TODO: releas process to be determined)
- Duplicate the entity being updated (or folder if applicable).
- Edit the duplicates (e.g. annotations, contents, name).
- Update the test suite in your branch to use these duplicates, including the expected values in the test assertions.
- Open a PR as per the usual process (see above).
- Once the PR is merged, leave the original copies on Synapse to maintain support for feature branches that were forked from
develop
before your update.- If the old copies are problematic and need to be removed immediately (e.g. contain sensitive data), proceed with the deletion and alert the other contributors that they need to merge the latest
develop
branch into their feature branches for their tests to work.
- If the old copies are problematic and need to be removed immediately (e.g. contain sensitive data), proceed with the deletion and alert the other contributors that they need to merge the latest
-
Please consult this code style guide prior contributing code to the project: http://google.github.io/styleguide/pyguide.html
-
Be consistent and follow existing code conventions and spirit.