-
-
Notifications
You must be signed in to change notification settings - Fork 8
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
stop using semver #4
Comments
@jonathanong I am reading and digesting it. I can say, at least, that I think I am O.K. with referencing between our own things with
at least for now, we should probably try the scheme on something not quite as visible as express, especially if we end up tweaking it or something. |
I don't think I like the 0.x.x dev channel thing very much. It is far |
Yea, I also think that is weird. node.js uses the odd/even just like perl 5 does. |
For example: 0.3.0 -- which is this a dev version for? 2.3.0? 17.3.0? What if you need both?! Maybe I'm not understanding it, but I still don't like it. |
the problem with odd and even versioning is that it's not compatible with semver. why would there be for small stuff i'd rather just bump the major more to confuse people less. this matters for express because you don't want to be bumping the major every few months but you still want fixes with breaking changes in within a reasonable time |
main point is to use |
yes, this. that i am not iffy about :) |
I thought that How do we objectively differentiate between major and minor breaks? |
According to the docs, if you are not sure, it is minor-breaking. |
Wait with ferver you don't reset the minor? This will only cause lots of confusion >.< |
I feel the same way. Right now I think the only consensus is that if you're in doubt on if the change is not breaking or slightly breaking, bump the minor, not the patch. |
For tiny libraries like those in this org, it would be easier to skip minor versions all together. Not resetting the minor will cause confusion if you just look at the release history, but I don't think anyone will do that (because I don't know how you would). All the changes in the commit log will have incrementing numbers except the major switches when it's a release. |
okay i updated the docs and removed the dev channel (since i can't think of a project it would even be useful). if you all agree, i'd like to make it official in the org. |
OK, generally seems fine. Even the few repos I have that is still at |
I still think minors should reset with majors, but the rest seems ok, though I haven't re-read it thoroughly. |
The resetting stuff was part of the dev channel stuff that is removed, so don't worry, it's still being reset :P |
@jonathanong I just finished reading your blog post on this and it's awesome :) |
I am against switching away from pinned dependencies. Code should be fixed for a release because that is what we have tested. Developers break random crap and release patch versions. I am OK with minor versions introducing some breaking changes simply because too many people look at major versions as some sort of media event. With an up to date changelog I thing we will be fine. |
I should add that all the dep update commits are great because if a dep breaks then we can track it down to an update commit. It follows nicely. |
@dougwilson has been doing all the updates, so it's really up to him if he wants to continuously do that. My only goal is to be able to |
I know, and I'm still against not pinning against the libraries we do not control (i.e. I still think we should pin against "foreign" libs). So far I'm only thinking of maybe |
As @balupton said earlier in npm/npm#4587 (comment), npm version system should be redefined this way:
I think we could just borrow that definition. |
Down with the |
semver... rofl |
that's what my ferver is basically, but i think "breaks for some" should really be "breaks or might break for some" |
Hardcore semver is dumb, but I'm also not sure we should totally follow this ferver thing. Can we just close this and say we go with a sorta soft-semver? |
If it helps, I do try to follow semver as much as possible (since, of course, npm forces node library to), but sometimes I can introduce slightly breaking changes on a minor version bump on purpose. Sadly it's harder to do this today than ever before because so many people use |
They deserve what they get for introducing stupid defaults.
|
This way you'll get a bunch of angry users after each minor breaking change. I think we should say a few words in readme's about versioning system, and ask people to use |
I still don't understand the difference between |
The thing is that ferver does have a recognizable name, and "we follow semver but not really"-style versioning does not. Maybe add a table at the footer of the README that lists all information that is rarely changed (as opposed to badges that change frequently). Something like this:
|
Unfortunately as long as we are published on npm, we can't not use semver unless we want lots of angry users all the time and people just not using the modules. npm forces semver on all the modules. |
Npm doesn't force anything.
|
It does with |
This is a problem with developer education. You cannot simply use a On Mon, Sep 15, 2014 at 8:38 AM, Douglas Christopher Wilson <
|
Yes, we can. I'm now looking at the most popular modules,
That's exactly why I suggested to mention this in README. People need to learn this, not blindly follow npm defaults. |
Like I said, I don't publish strict semver modules, either, but I try to make them really close to semver. I basically use a less extreme compromise between semver and ferver, where minor doe snot solely mean "Minor breaking changes", but may contain minor breaking changes if I really feel that I must. |
http://fredkschott.com/post/2014/02/npm-no-longer-defaults-to-tildes/ oh for pete sake npm We should just advocate major bumping. |
for these modules, we should be using semver but bumping minor more liberally. the ferver crap is more for bigger projects like express that cant semver as easily. it's up to @dougwilson for express, but i think with v5+ he should deprecate, wait 3-6 months, remove/change vs. waiting until the next major version. |
About express: yeah, full-blown ferver with constantly breaking minors fits better here, but it's up to you really. About small jshttp packages: Current versioning system is fine, but it's not semver. It's very close to it, but it is not. So even if breaking changes are rare, sometimes you have to do them, and if you claim you use semver, you'll get a bunch of angry users complaining. I don't suggest to change it, but it's worth to discuss about how we tell users about breaking changes. Maybe put big bold "breaking" heading in "history.md" every time it happens. |
Also, semver does allow breaking bugfixes in patches. But for this org it'll be useful to forbid them as well, thus "ferver in semver-like mode" would work a bit better. |
Eh. Perhaps we just add a
|
I agree. If only we could find a way to avoid having that boilerplate in every readme, that'd be awesome. |
Add |
In every repo? please no. |
If we must, put a table somewhere with links to this stuff |
How about we add a document about this somewhere in jshttp (like either on the github pages or just in the repo) and write:
That'll give the most important information up-front and a link to the full policy. |
eh, gona close this, seems like the consensus is "semver: the sensible parts" |
what do you guys think about switching to this crazy idea i had today: https://github.com/jonathanong/ferver
main goal is to stop pinning deps that use
ferver
and instead use~
so @dougwilson doesn't spam the commit log with dep updates =Pfor express, we can release
5.y.z
immediately without any changes (or maybe a few) except a note that we'll use ferver, to never depend on express with^
, and to not expect a6.0.0
. this way, we could get rid of half of the current issues immediately as well as iterate on the router and such.The text was updated successfully, but these errors were encountered: