Repository: pyca/cryptography

Issue:
1.0 release
http://semver.org

> Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.

Should we bump our version number all the way to 1.0 for the next release?



Discussion:
Do we even _want_ to follow semver? Given our policy of removing deprecated stuff 3 releases later I don't really see the point.

To be honest, if we're not following semver we should probably just do `YY.N` releases or something. People expect something semver like when you're doing something that looks like `X.Y`. On the other hand, semver really isn't mutually exclusive with removing deprecated stuff 3 releases later. Semver doesn't say how long to keep around deprecated functionality, just that when you do actually remove something that breaks backwards compatibility you need to signal it with a major version bump. It'd be perfectly reasonable to keep stuff through 3 major releases, or even just 3 feature releases and bump the version accordingly.

If we chose to do semver would we commit to supporting the last N "major" releases or would we just tell people they have to upgrade?

We do tend to deprecate things every release right now, so if we switched our version numbers would go up rapidly. Not really a big deal but something to be aware of.

I'd vote for keeping the status quo for the moment because we're still missing major chunks of functionality that I'd like for a "1.0", but I don't feel strongly about this.

I am strongly -1 about attempting to support last N "major" releases. That will complicate the development process significantly imo.

Other than that I am +0 about switching to semver. It's not _my_ preferred versioning scheme but I don't feel strongly about it. If we _do_ switch I think it makes sense to do a 1.0 only when we are more feature-complete.

@reaperhulk What features do you think we need for a 1.0? :)

Off the top of my head:
- full support for X509 certificate and request parsing (we're missing requests and extensions right now) 
- serialization of asymmetric keys (I consider at least basic support for that our primary blocker for 0.8).
- framework in place for supporting HSMs (#1506)

Other possible things I might want:
- Optional backends actually being possible (we may or may not need this for HSM support.)
- more than fernet for recipes

Personally I think we should just continue with our current numbering and
when we get to `0.10` call it `1.0`, then `1.1`, etc.

On Fri, Feb 20, 2015 at 6:48 AM, Paul Kehrer notifications@github.com
wrote:

> Off the top of my head:
> - full support for X509 certificate and request parsing (we're missing
>   requests and extensions right now)
> - serialization of asymmetric keys (I consider at least basic support
>   for that our primary blocker for 0.8).
> - framework in place for supporting HSMs (#1506
>   https://github.com/pyca/cryptography/issues/1506)
> 
> Other possible things I might want:
> - Optional backends actually being possible (we may or may not need
>   this for HSM support.)
> - more than fernet for recipes
> 
> —
> Reply to this email directly or view it on GitHub
> https://github.com/pyca/cryptography/issues/1682#issuecomment-75249053.

## 

"I disapprove of what you say, but I will defend to the death your right to
say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
"The people's good is the highest law." -- Cicero
GPG Key fingerprint: 125F 5C67 DFE9 4084

Reopening this discussino, since we're now at 0.10 (or 1.0) :-)

Okay I'm convinced. We should re-number all 0.10 in current and call the next release 1.0.

For those wondering, what convinced me was the argument that this project is now very large and it is being relied on in production in innumerable places. It seems disingenuous to continue calling ourselves < 1.0 when we believe it to be ready for that type of use.

Plus cffi 1.0 has a nice synergy with it :)


Resolving patch:
diff --git a/src/cryptography/__about__.py b/src/cryptography/__about__.py
--- a/src/cryptography/__about__.py
+++ b/src/cryptography/__about__.py
@@ -14,7 +14,7 @@
                " and primitives to Python developers.")
 __uri__ = "https://github.com/pyca/cryptography"
 
-__version__ = "0.10.dev1"
+__version__ = "1.0.dev1"
 
 __author__ = "The cryptography developers"
 __email__ = "cryptography-dev@python.org"
diff --git a/vectors/cryptography_vectors/__about__.py b/vectors/cryptography_vectors/__about__.py
--- a/vectors/cryptography_vectors/__about__.py
+++ b/vectors/cryptography_vectors/__about__.py
@@ -14,7 +14,7 @@
 
 __uri__ = "https://github.com/pyca/cryptography"
 
-__version__ = "0.10.dev1"
+__version__ = "1.0.dev1"
 
 __author__ = "The cryptography developers"
 __email__ = "cryptography-dev@python.org"


Test patch: