busterjs / buster

Abandoned - A powerful suite of automated test tools for JavaScript.
http://docs.busterjs.org
Other
448 stars 37 forks source link

Version bump policy #462

Closed dominykas closed 8 years ago

dominykas commented 8 years ago

I'm starting to venture into the dark territory... Either way, as I'll be going through all the buster's submodules and updating their dependencies, I will also be adding this to package.json:

    "engines": {
        "node": ">= 4"
    },

Technically, this is a breaking change, but in practice I'll keep all versions (0.10, 0.12, 4, 5) in .travis.yml and I hope I'll manage to get things working.

Question 1) However, once I'm ready to publish... if pkg is already post-v1, do you think I should bump major, minor or patch or not for such packages?

I know that hapijs folks went as far as simply releasing a new major (v10) as soon as node 4 came out, to note that ES6 will be valid, even though they didn't break anything just then, i.e. they bumped major purely based on intent to break things in the future.

Question 2) As for pre-v1 packages, semver pretty much says "anything goes", so I'll bump minor, unless someone confirms that v1 is in order. I'd appreciate if someone gave me some notes on what's missing for v1 of dependencies (not talking about buster itself [yet]). @dwittner?

Question 3) So far, I've been using 5.x (for post-v1) and 0.5.x (for pre-v1) as a version format for dependencies I'm updating. I use this in my projects and I'd like to also point to hapijs, who use a similar format. I find it a lot clearer than npm's default ~x.y.z or ^x.y.z. I hope there are no objections?

augustl commented 8 years ago

1) I think major should be bumped. If you're on 0.12, you don't expect a upgrade from, say, 1.2 to 1.3 would break your app

2) Agreed, bumping minor makes sense, and also agree that if the module is ready for 1.0 then bumping to 1.0 makes sense too.

3) I like "5.x" and "0.5.x" a lot better so if those specs has semver semantics like ~ and ^ I say go for it!

augustl commented 8 years ago

Update on 1), I'm assuming a engine version requirement on node >=4 would break apps running on node 0.12 upgrading from, say, a version 1.2 without a engine version requirement to a version 1.3 that added a engine version requirement on node >= 4. It's been a while since I've done node hacking so I'm not sure if my assumption is correct :)

dominykas commented 8 years ago

Nope, it doesn't break - only gives a warning during npm install.

augustl commented 8 years ago

I see. If all you get is a warning, then bumping major isn't needed imo since it might be confusing. But if we actually do break stuff on older versions of node, I think we should bump major.

dominykas commented 8 years ago

re question 1 - I'm starting to lean towards bumping major:

Alternatively, I don't really have to add an engines restriction... (which would mean I should republish bane without it).

dominykas commented 8 years ago

Here's what I'm doing so far:

The remaining unmerged/unfinished updates are all pre-V1 (will bump minor upon release) except for ramp, which is post-V1 and will get a major bump, as it depends on both - when and ramp-resources.

Bumping pre-V1 packages to V1 will be another day's topic once I manage to chew off this whole upgrade thing (and also if I don't break too much, e.g. I intend to try latest buster from git with when and my own projects before releasing anything).