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

[RFC] Bump version number to 1.0 #1005

Closed
wincent opened this issue Aug 25, 2017 · 18 comments
Closed

[RFC] Bump version number to 1.0 #1005

wincent opened this issue Aug 25, 2017 · 18 comments
Assignees

Comments

@wincent
Copy link
Contributor

wincent commented Aug 25, 2017

While it's true that the GraphQL Spec itself is labelled as a "Working Draft" and an "Draft RFC Specification", and "Significant enhancement [is expected to] continue" (see), the truth is that the graphql NPM package is relatively solid at this point and being depended on in production by numerous companies.

I think it's time to move to 1.0+ versioning so that we can actually use the version number to transmit meaningful semantic information (ie. that a "major" version bump is a compatibility-breaking change). Our current version numbers (of the form v0.x.y) transmit basically nothing, because:

Major version zero (0.y.z) is for initial development. Anything may change at any time.

This entry from the Semver FAQ is also helpful:

How do I know when to release 1.0.0?

If your software is being used in production, it should probably already be 1.0.0. If you have a stable API on which users have come to depend, you should be 1.0.0. If you’re worrying a lot about backwards compatibility, you should probably already be 1.0.0.

I think all of those apply to this package, so let's do it with the next release.

@IvanGoncharov
Copy link
Member

@wincent Great idea 👍
One thing to note is that after #927 be merged description inside comments will be deprecated.
I think it's better to declare something deprecated before 1.0.0 so we should wait for merge of #927.

In general, a big part of graphql-js is dependent on IDL/SDL which is not yet merged.
And there is a non-zero risk that something besides description will be changed so I recommend waiting until graphql/graphql-spec#90 merged.

@leebyron
Copy link
Contributor

Agree with both of you. Let's release v1.0 once we cut the Fall version of the spec next month

@felixfbecker
Copy link

This would also help a lot with #491 (comment)

@robzhu robzhu assigned robzhu and leebyron and unassigned robzhu Nov 6, 2017
@razor-x
Copy link

razor-x commented Jan 11, 2018

Just stumbling on this thread and wondering what ever happened with this as according to the above comment this should have already happened sometime in October / November. Thanks.

@leebyron
Copy link
Contributor

leebyron commented Feb 8, 2018

I'm planning on moving to major versions for the next release, but while technically v1.0.0 is > v0.13.0, it's sort of difficult to see the ordering. How about the next version is v14.0.0?

@felixfbecker
Copy link

Don't really see the problem. Why would it not be obvious that 1.0.0 is greater than 0.13.0? I mean, it's also obvious that 0.1.0 is greater than 0.0.2. That's just how version numbers work

@felixfbecker
Copy link

Also relevant quote from the semver spec:

  1. Version 1.0.0 defines the public API. The way in which the version number is incremented after this release is dependent on this public API and how it changes.

@leebyron
Copy link
Contributor

leebyron commented Feb 8, 2018

Just trying to remove the psychological connection to "version 1" which can create the misleading picture that up until this point the library wasn't ready and now it is, or that it's the "first" version, which clearly isn't the case. That same psychological connection makes moving from v1 to v2 feel more painful than v123 to v124, even though they're semantically identical. The linked ava issue above illustrates it. We've been verbally describing the last few versions like "GraphQL JS version thirteen", so it would help create a consistent verbal/psychological ordering to avoid confusion.

@felixfbecker
Copy link

Well either follow semantic versioning or sentimental versioning 😄

People need to stop attaching feelings to version numbers. Big projects not following semver because of these feelings only makes the issue worse.

If you want to make clear that this release is not different than the previous ones that is better done in the release notes, a blog post or a tweet (for human consumption). Version numbers should follow the semver contract.

Of course all just my opinion 🤗

@leebyron
Copy link
Contributor

leebyron commented Feb 8, 2018

I don't see moving to v14 instead of v1 as necessarily breaking semver, or at the very least it does not break from the spirit of semver. https://reactjs.org/blog/2016/02/19/new-versioning-scheme.html#what-happened-to-100 is a great articulation of why this is important for people as well as machines.

@IvanGoncharov
Copy link
Member

@leebyron Totally agree about releasing v14.0.0 👍
This library exposes soo many public API functions that breaking changes some time necessary so it's better to avoid the pain of v1 to v2 migration.

I also think it would be great if release notes for v14 would contain deprecation notice and define sunset dates (or versions) for:

@orta
Copy link
Member

orta commented Feb 11, 2018

+1 on v14.0.0, think it better represents the state where this library is at.

@kbrandwijk
Copy link

I think it is important to move to major, whichever version number you want to put to it. I'm personally getting very tired of using graphql in packages and having breaking changes in minor versions. Minor versions are supposed to be safe, but they never are, causing a lot of issues in many libraries each and every time. I really don't get why this has already been brought up more than half a year ago, and nothing has been done about it.

@simonhaenisch
Copy link

yes, please bump to 1.0.0 or 14.0.0 or 99999.0.0 or whatever asap, we really don't want to deal with breaking changes "hiding" in minor/feature version bumps.

@razor-x
Copy link

razor-x commented Mar 22, 2018

@IvanGoncharov I noticed a new version was released a few days ago. I'm a bit disappointed to see it was v0.13.2. Any reason this could not have been v1.0.0 or v13.2.0?

@IvanGoncharov
Copy link
Member

I noticed a new version was released a few days ago. I'm a bit disappointed to see it was v0.13.2. Any reason this could not have been v1.0.0 or v13.2.0?

@razor-x Disclaimer: I'm not a Facebook employee just an active contributor.
It was a maintenance release to quickly fix issues with flow v0.68

@leebyron
Copy link
Contributor

See: https://medium.com/@leeb/graphql-js-preparing-for-v14-0-0-839f823c144e

Unless we need to do any other maintenance releases, the next release will be v14. I need help from other library authors to make the migration smooth.

@IvanGoncharov
Copy link
Member

We are really close to this release and all actual discussion happening in #1383

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

No branches or pull requests

9 participants