Skip to content

Latest commit

 

History

History
59 lines (44 loc) · 3.51 KB

CONTRIBUTION.md

File metadata and controls

59 lines (44 loc) · 3.51 KB

Contributing

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.

Getting started

General Contribution Instructions

  1. Fork the repository.
  2. Clone the forked repository.
  3. Push all your changes to the dev branch of the forked repository.
  4. Create pull requests to the origin repository.

Setup Project for Development and Testing

  1. Install package dependencies.
  2. Clone the schematic package repository: git clone https://github.com/Sage-Bionetworks/schematic.git
  3. Create and activate a virtual environment.
  4. 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
  5. Obtain appropriate Google credentials file(s).
  6. Obtain and Fill in the config.yml file and the .synapseConfig file as well as described in the Fill in Configuration File(s) part of the documentation.
  7. 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.

Pull Request Process

  1. Ensure any install or build dependencies are removed before the end of the layer when doing a build.
  2. 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.
  3. 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.
  4. When merging into dev into master follow release procedures (TODO: releas process to be determined)

Updating Synapse Test Resources

  1. Duplicate the entity being updated (or folder if applicable).
  2. Edit the duplicates (e.g. annotations, contents, name).
  3. Update the test suite in your branch to use these duplicates, including the expected values in the test assertions.
  4. Open a PR as per the usual process (see above).
  5. 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.

Code style