Skip to content

Maintenance

Boopathi Rajaa edited this page Jan 31, 2023 · 2 revisions

This is the location for documentation, guides, and other information for the GraphQL-JIT package maintainers. It is intended to provide a set of resources and references for all package developers and maintainers.


Versions

For Versions 0.x.x, we follow 0.Major.MinorOrPatch.

From version 1.0.0, the package would follow - Major.Minor.Patch


Publishing Packages

1. Version

As stated in Versions, find out the next version number depending on the changes from the previous release.

To view those changes in GitHub,

  1. Navigate to https://github.com/zalando-incubator/graphql-jit/compare
  2. Choose the base to the latest tag published previously.
  3. Make sure the compare field is the main branch
  4. Determine the next version (whether it is a major, minor, or a patch bump) based on the list commits below

2. Pull Request

  1. Update package.json's version to the new version locally.
    • Do NOT use npm version patch or similar commands as it creates a tag. We will create the tag using GH releases.
  2. Commit the changes and create a new Pull Request with the following details -

Commit message title / PR Title:

Bump release to 0.x.x

PR Description / Changelog:

#### Breaking Changes:

- Breaking change (#000)

#### Bug fixes:

- fix: fix1 (#000)

#### Version updates:

- Bump graphql from 0.0.0 to 0.0.0 (#000)

#### Other changes:

- Commit Message (#000)

Get approval from one other maintainer and merge the PR to the main branch. (Note: At this stage the package is still not published)

3. Release

NPM release happens automatically in the CI every time a new tag is created in the main branch. To create a new tag, we will use GitHub releases.

  1. Navigate to https://github.com/zalando-incubator/graphql-jit/releases
  2. "Draft new release"
  3. Select "Choose a tag" and use v0.x.x the version for this release (note: we use the prefix v for tags and releases).
  4. Release Title: v0.x.x
  5. Release Description: Same as the PR description as formed above.
  6. Publish the new release.

What happens when you publish the release?

Publishing the release would create -

  1. The tag v0.x.x - list of tags: https://github.com/zalando-incubator/graphql-jit/tags
  2. The release v0.x.x - list of releases: https://github.com/zalando-incubator/graphql-jit/releases
  3. The NPM publish pipeline - https://github.com/zalando-incubator/graphql-jit/actions/workflows/publish.yml