Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think people are too quick to declare v1. All of my modules are (deliberately!) v0 because v1 means "I commit to never breaking this API." Most Go modules should be v0.year.minor, eg v0.20.5 for the fifth release this year. You should only be using v1 if you have a lot of users, a set of core maintainers, etc. etc.


How does that make anything better for the user?

They know they cannot rely on a stable API, which means they have to carefully read the diff for every single upgrade, so saving no work over explicitly picking a major version.


The advantage is truth in advertising.


I feel semver combines two separate ideas into the meaning of v1:

By labeling as v1 you're:

- communicating the package is stable and will be maintained

- communication that breaking changes will now increment the major version (saying nothing about stability, backported bug fixes, or any maintenance)

I wish they were not combined. Incrementing major versions frequently on early stage projects would make them work better with package managers, but without the expectation of maintenance from the community.

Not incrementing major versions makes it hard for package managers to make sensible decisions.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: