superfaceai / service-client

Library provides client for superface backend apis.
MIT License
5 stars 1 forks source link

Automate releasing process #35

Closed janhalama closed 3 years ago

janhalama commented 3 years ago

Now we do a lot of manual work with each NPM package release:

There is agreed architecture decision how we want to keep a changelog: https://www.notion.so/superface/1f77fa5a1e5f473495bb878a4c5d54a3?v=0f4018588dc0418fbba106531b48fef5&p=d770aba21aba4b50887b393f4266ead0

What should be automated:

janhalama commented 3 years ago

New release process proposal:

  1. Developer working on new feature / bug fix / change updates CHANGELOG.MD either manually or using script. Changelog update is part of pull request with actual features / bug fixes / changes.
  2. PR s reviewed and merged to main branch
  3. Once it is appropriate (not necessarily after every merge to main) developer triggers manual release workflow with parameter patch / minor / major, depending what kind of release wants to release
  4. Release workflow consists of following steps:
    • checkout, install, test, build
    • bump version according to patch / minor / major parameter
    • update changelog -> unreleased section is labeled with new version and timestamp, compare links to github are updated
    • commit changelog changes
    • create new tag
    • publish new version to NPM repository
    • push changes to git origin