sikanhe / gqtx

Code-first Typescript GraphQL Server without codegen or metaprogramming
458 stars 13 forks source link

proposal: use changesets for versioning #47

Open n1ru4l opened 3 years ago

n1ru4l commented 3 years ago

Changesets is a great tool for publishing new versions and preserving a changelog. https://github.com/atlassian/changesets

It can be used for tracking the major/minor/patch changes of individual contributors and automatically release them.

How does it work?

Contributors have to run a yarn changeset command locally for generating a .md file where they document their pull request changes in the .changesets folder. The changeset contains a human-readable message as well as the information on whether the change is major/minor/patch. The changeset must be committed to git.

A Github action will create a pull request on the master branch that removes the *.md files and bumps the package version according to the documented changes. The pull request will be updated every time the master branch is updated.

Once the pull request is merged the GitHub action will automatically publish the version to npm.

So as a maintainer releasing a new version is as easy as merging a pull request.