question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

My point of view on release process:

  • We should have 3 main branches:
    • master - “production” branch. Automatically released as @latest to npm
    • next - “pre-master” branch to batch changes before getting into release. Automatically released as @next to npm
    • canary - “experimental” branch to battle test experiments. Automatically released as @canary to npm
  • all npm releases under @latest tag should be represented as github-release with appropriate changelog
  • PRs by default should point to next branch
  • next branch accepts only ready features / fixes. no WIP or experimental
  • next and canary branches allowed to be rebased
  • Ideally no one package.json should contain current package version, like it was with semantic-release setup
  • Once next branch is ready it should be rebased into master which triggers CI workflow:
    • run prepublish scripts
    • run tests & coverage
    • determine which packages were changed and should be released (gh-releases, tags)
    • determine which version should be used for each changed package by analyzing commit messages related to them (for example, using changed files path)
    • add appropriate tags to current commit: changed-package@new-version and push tags to repo
    • create and publish release notes for each released package by analyzing commit messages related to them
    • temporary set calculated versions into package.json of packages to be released
    • release changed packages to npm
    • publish website+demos

I realize that it is pretty complicated setup and requires a lot of work that can’t be done in one step. So we should brake it down into smaller steps. For instance, we can manually set up package versions in next branch before rebasing it into master and prepare release notes by hands as well.

Also such setup most likely have some cons and flaws which I would be glad to hear and discuss. So I invite you guys to discuss it or maybe put forward your great and valuable suggestions.

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:12 (12 by maintainers)

github_iconTop GitHub Comments

2reactions
anna-buchercommented, Jun 22, 2017

And discipline for “feat” and “BREAKING CHANGE”: these two can only affect one package (+docs+demos) at a time. We could event have pre-commit test for this.

0reactions
Guriacommented, Jun 29, 2017

follow-up #989

Read more comments on GitHub >

github_iconTop Results From Across the Web

5 Steps to a Successful Release Management Process
Another option is to create a release workflow. Lucidchart is a visual productivity platform that helps developers map their processes clearly.
Read more >
Level Up Your Release Management Workflow - Mattermost
Learn about the best practices, processes, and tools needed to develop more robust, effective release management workflows.
Read more >
Gitflow: The Easy Release Management Workflow - GitKraken
To adopt Git in everyday development, a model called Gitflow was created to help simplify release management. Learn how to get started with...
Read more >
Release Workflow | Yarn - Package Manager
An in-depth guide to Yarn's release workflow which helps with managing versions across a monorepo.
Read more >
Gitflow Workflow | Atlassian Git Tutorial
Gitflow can be used for projects that have a scheduled release cycle and for the DevOps best practice of continuous delivery. This workflow...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found