Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The code base for Synapse R client (wrap Python client) can be found at https://github.com/Sage-Bionetworks/synapser and the code base for Synapserutils package can be found at https://github.com/Sage-Bionetworks/synapserutils/tree/master .

Branches

  • master: tracking latest release

  • develop: tracking latest development work

  • release candidate branches: for each release, a new release candidate branch will be created with name set to the version to release (v1.0-rc).

...

Releasing a new version of synapser Synapser is a process that involves client engineers, product manager, validators, and end users.

...

  1. Fork https://github.com/Sage-Bionetworks/synapser

  2. Checkout a new branch from develop 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, 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: https://github.com/Sage-Bionetworks/synapser

    2. base: develop

    3. head fork: <your Github account>/synapser

    4. compare: <your feature branch>

  5. Code view and reviewer merges your change to the develop branch.

References:

...

Add this file to your home directory, uncommenting headers and fields as necessary. Heres an example:https://github.com/Sage-Bionetworks/synapsePythonClient/blob/develop/synapseclient/.synapseConfig

Changing The Version of the Underlying Python Client in Synapser

The synapser package 'wraps' a specific version of the Synapse Python Client, specified in R/zzz.R, and tools/installPythonClient.R for example:

...

Info

Note: Make sure to add in new Rd files.

Changing The Version of the Underlying R Client in Synapserutils

(WIP)

Step 3: Deploy Staging

Once all JIRA tickets for the new release version are RESOLVED, we are ready to deploy staging version for validation process.

  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 and push to the release candicate branch

  3. Create a new staging release

    1. Go to the releases of the appropriate repo https://github.com/Sage-Bionetworks/synapser/releases

    2. Click the "Draft a new release" button and fill the following values:

      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)

      Important: Check the "Set as a pre-release" checkbox. This will cause the release to be deployed to a staging ran.

    3. Use the GitHub release “Generate release notes” feature to create release notes. Copy related content from the NEWS.md to the top of the release notes.

    4. Hit the “Publish release“ button, this will trigger a GitHub Action that will test and deploy the staging release to http://staging-ran.synapse.org/

  4. 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).

...