Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Version published after converting to the new editor

This document attempts to cover development and release practices for the synapser and PythonEmbedInR projects.

...

  1. Fork https://github.com/Sage-Bionetworks/PythonEmbedInR and https://github.com/Sage-Bionetworks/synapser
  2. Checkout a new branch to work on a feature/ Jira
  3. GitHub Actions are configured in the repositories. Every push will build and test your changes in your forked repo (see the GitHub Actions tab of the repo). On your fork of the synapser repo (not needed for PythonEmbedInR), add each of the following secrets, the values can be obtained from the "Python Client dev stack openssl keys" entry of LastPass. These allow a test configuration to be installed during builds which enables vignette integration tests to run against test services. 
    1. encrypted_d17283647768_iv
    2. encrypted_d17283647768_key
  4. Once your change is ready for review, create a Pull Request with 
    1. base fork: Sage-Bionetworks/PythonEmbedInR or Sage-Bionetworks/synapser
    2. base: develop
    3. head fork: <your Github account>/PythonEmbedInR or <your Github account>/synapser
    4. compare: <your feature branch>
  5. Code view and reviewer merges your change

...

  1. Create a new release candidate branch from develop with branch name as the version to release (v1.0-rc)
  2. Update the docs in the release candidate branch:
    1. ensure you have the R pkgdown package installed (on a Mac you may need to brew install harfbuzz, fribidi, and pandoc if you haven't already)
    2. Update the changelog contained in NEWS.md
    3. Update the version in the DESCRIPTION file, as the version is reflected in the generated documentation.
    4. from the repo directory run the following command:

      Code Block
      R -e "pkgdown::build_site()"


    5. Review the changes by inspecting docs/index.html file.

    6. Commit the changes to the docs directory. When this release branch is validated and merged to master it will automatically publish to https://r-docs.synapse.org via GitHub Pages.

  3. If this is a synapser build, and there was an associated change to PythonEmbedInR whose staging build has already been released, update the PythonEmbedInR version in the Imports section of the DESCRIPTION file so that new the synapser version will depend on the updated PythonEmbedInR.
  4. Create a new staging release
    1. Go to the releases of the appropriate repo
      https://github.com/Sage-Bionetworks/PythonEmbedInR/releases
      https://github.com/Sage-Bionetworks/synapser/releases
    2. Click the "Draft a new release" button and fill the following values:

      Important: Check the "This is a pre-release" checkbox. This will cause the release to be deployed to test.pypi.org rather than production pypi.org.

      Tag version: X.Y-rc where X.Y where X.Y is the release version (e.g. 0.11-rc)
      Target: the previously created vX.Y-rc branch
      Release title: Same as tag version (X.Y-rc)
    3. Hit the publish button, this will trigger a GitHub Action that will test and deploy the production release to http://staging-ran.synapse.org/
  5. Notify validators about the available version. The validation version will be in format <version-to-build>.<build-number> (For example: 1.0.87, for build number 87).

...

  1. Go to the releases of the appropriate repo
    https://github.com/Sage-Bionetworks/PythonEmbedInR/releases
    https://github.com/Sage-Bionetworks/synapser/releases
  2. Click the "Draft a new release" button and fill the following values:

    Tag version: X.Y where X.Y is the release version (e.g. 0.11)
    Target: the previously created vX.Y-rc branch
    Release title: Same as tag version (X.Y)

    Do NOT check the "This is a pre-release" checkbox.

  3. Hit the publish button, this will trigger a GitHub Action that will test and deploy the production release to http://ran.synapse.org/
  4. Merge the develop branch to the master branch.

...