Skip to content

Commit

Permalink
0.13.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeff Escalante committed Dec 17, 2014
1 parent f061353 commit 56974dc
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "accord",
"version": "0.12.0",
"version": "0.13.0",
"author": "Jeff Escalante <[email protected]>",
"description": "A unified interface for compiled languages and templates in JavaScript",
"main": "lib",
Expand Down

6 comments on commit 56974dc

@notslang
Copy link
Contributor

Choose a reason for hiding this comment

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

Like I said in #56 (comment), this requires a major version bump. Minor version bumps are for backwards-compatible changes (see http://semver.org/ if you haven't read that already).

@jescalan
Copy link
Owner

Choose a reason for hiding this comment

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

Hey sorry about that, actually this is the correct versioning bump according to this policy, but I didn't realize that this wasn't in the readme yet so I just added it. I adhere to this for all the projects I work on and usually have that note in the readme.

@stephenlacy
Copy link
Contributor

Choose a reason for hiding this comment

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

I would consider it to be in production phase as other libraries depend on it. It breaks projects with npm update

@jescalan
Copy link
Owner

Choose a reason for hiding this comment

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

It's up to the author when to push a library to 1.0. According to the semver docs, this should happen once the API is considered stable, not as soon as anyone else is using it. There are a lot of libraries that people use and depend on that are not yet 1.0. This just means that if you are using a library and the major version is zero, you should lock it down and be careful about updates.

I'll push accord to 1.0 as soon as I feel like the public API is fully stable and solid. If I had done this earlier, we would be at major version 10+, which is ridiculous. We're close to that point, but not quite there yet.

If npm update upgrades packages below major version 1 strictly according to semver, that is a bug in npm. It states clearly in the semver docs that any library below major version 1 can have a breaking change at any version. Perhaps we should try to submit a fix for that?

@notslang
Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, it is the correct version bump if you consider this library to be in initial development. Actually, that doesn't need to be a separate policy - that's covered in points 4 & 5 of the semver spec.

And echoing @stevelacy's point: this should be out of initial development because we're using it in production. Considering if libraries are being used is important in determining the phase because the whole point of semver is being able to lock down your deps to the right degree of specificity. If you haven't defined a public API, then it's fine to keep it at 0.x.x. But once we've defined it, and it's able to be depended upon, it should be over 0.x.x. If it really were that unstable then we probably shouldn't be using it in roots.

Also, nothing should be ridiculous about having a 10+ major version... it's just a number, and if that many breaking changes are required then so be it. If we start to assign meaning to the magnitude of that number then we get into sentimental versioning.

And for upgrading below major version 1: it depends on the way you specify it... if you're using the caret operator then it will observe the "magic zero" behaviour

@jescalan
Copy link
Owner

Choose a reason for hiding this comment

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

Hey guys,

Sorry but going to have to put a cap on this discussion. The semver spec is clear on what you can and cannot do, and I am following their rules precisely. I also have a large note right at the top of the readme explaining exactly how I version under major version 1. I do this for all my libraries and have for a while, and it has always worked out well.

If you'd like to fork this and push major versions, I welcome you to do so. Otherwise, this is my choice and I'm sticking with the way it is. If you auto-upgrade all your libraries without checking the version numbers or release notes, you were asking for it anyway.

I will push this to major version 1 when I feel comfortable doing so. When that happens, if you are watching this repo's activity you will get a notification. Until then lock at the minor version and everyone will be fine.

Please sign in to comment.