Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add doc that explains public VS. Stable releases #345

Merged
merged 4 commits into from
Jun 1, 2019
Merged

Conversation

AArnott
Copy link
Collaborator

@AArnott AArnott commented May 29, 2019

No description provided.

@MarcoRossignoli
Copy link
Member

@AArnott out of scope...I did't take a look at code but you can answer quickly...to count height do you check every update of version.json file and compare schemas querying repo history?

To remove the `-prerelease`, the version.json file must be changed to remove it.
Committing this change communicates to everyone looking at the repo that this software is stable.

The natural evolution of a product includes usually includes entering and exiting a `-prerelease` stage many times, but within a branded release (usually recognized by an intentional version number like "1.2") the progression usually transitions only one direction: from `-prerelease` to stable quality.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So could be possible have a master always in -beta and when someone wants release remove beta, do commit generate package and relese and right after re-add -beta to start a "new pahase"?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

possible, yes, but tedious. It doesn't leave you a branch for servicing that release either.
For this (and I'll add this to the doc), we offer the nbgv prepare-release command.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great clear.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AArnott many compliments...ngbv lib+commands are a bomb for versioning lib...I'try to apply "all concepts" step by step with @tonerdo

@AArnott
Copy link
Collaborator Author

AArnott commented May 29, 2019

@MarcoRossignoli To count height, I walk history by commit from HEAD to the last commit that retains the same version property integers. So changing major.minor or major.minor.patch will reset the height, but adding or removing a -beta will not reset height.
Then there's logic to deal with branches with multiple ways to get to the last commit. This I believe is documented in the README.

@MarcoRossignoli
Copy link
Member

This I believe is documented in the README.

Yes I wonder only how it's implemented, you walk commit history for version.json file...maybe there was some other trick or you booked ver in some git metadata place, but it's not so.

@AArnott
Copy link
Collaborator Author

AArnott commented May 29, 2019

Version height calculation starts here.

Copy link
Member

@MarcoRossignoli MarcoRossignoli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank's!

@MarcoRossignoli
Copy link
Member

@AArnott in a case like our where we have 3 components with different version for historical reason we should update version.json like

release.branchName = "release_msbuild/v{version}"
release.branchName = "release_collector/v{version}"
release.branchName = "release_console/v{version}"

and run nbgv prepare-release inside project folder, right?

@AArnott
Copy link
Collaborator Author

AArnott commented May 29, 2019

@MarcoRossignoli ugh. I don't know how well that will work or if there's a better way. I've never heard of quite your situation before when using prepare-release. I suppose you could try it and see.
But if you plan to release all at the same time as a rule, personally I might try for maintaining just one branch for each release instead of 3. That might mean that prepare-release isn't useful.
On the other hand if you might release just one package for servicing, then one branch per package might make sense.

@MarcoRossignoli
Copy link
Member

On the other hand if you might release just one package for servicing, then one branch per package might make sense.

Eh at the moment is our use case, because the "core" is shared between 3 "drivers" but not all support all code feature(passing parameters) and "drivers" doesn't provide same "added features", but this is a "design" issue to me, maybe in future we will be able to "merge features" in core and let "drivers" to be only "pluggable entry points".

I agree...if we'll decide to "align" version some day maybe will be better.

BTW I did some tests on my custom repo, tool and the idea works very well.

doc/public_vs_stable.md Outdated Show resolved Hide resolved
doc/public_vs_stable.md Outdated Show resolved Hide resolved
@AArnott AArnott merged commit 13a6776 into master Jun 1, 2019
@AArnott AArnott deleted the publicReleaseDoc branch June 1, 2019 13:44
AArnott pushed a commit that referenced this pull request Feb 8, 2025
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants