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

Chrono 0.3.1 breaks backwards compatibility with Chrono 0.3.0 #156

Closed
Razican opened this issue Jun 4, 2017 · 5 comments
Closed

Chrono 0.3.1 breaks backwards compatibility with Chrono 0.3.0 #156

Razican opened this issue Jun 4, 2017 · 5 comments

Comments

@Razican
Copy link

Razican commented Jun 4, 2017

I am using Rocket 0.2.8, and for that, I need to use Serde 0.9 (for now). It worked great with chrono 0.3.0, but chrono 0.3.1 updates to Serde 1.0, which breaks backwards compatibility.

@SergioBenitez
Copy link

SergioBenitez commented Jun 11, 2017

Indeed. @lifthrasiir, dcf1933 should have bumped the chrono version to 0.4. As it stands, semantic versioning has been broken, and any applications using chrono 0.3 are liable to break as a result. I'd recommend yanking chrono 0.3.1 and publishing 0.4 with the serde 1.0 upgrade.

Edit: I've read your commit message, which states:

Technically this is a breaking change, but the minor version was not
effective in avoiding dependency breakages anyway (because Cargo
will silently compile two versions of crates).

This is misguided. There's no issue with Cargo compiling two versions of a crate unless types are mixed between them. In that case, the user will get strange errors, yes, but if semantic versioning has been upheld, then the user can roll a dependency back or forward accordingly to resolve the issue. With your change, on the other hand, the user can't do this.

Please reconsider. This is bad precedent.

@quodlibetor
Copy link
Contributor

related to #146 , where @lifthrasiir has commented.

FWIW I agree that having a semver-incompatible change in a patch release is an issue, especially since serde 1.0 already splits the ecosystem, it's easier to manage dependencies if chrono 0.4 is serde-1.0 compatible and chrono 0.3 is serde 0.9 compatible.

@durka
Copy link

durka commented Jun 13, 2017

This broke my code as well (the commit where I had to pin chrono along with the rest of my routine updates). I've submitted a PR to fix the issue.

@SergioBenitez
Copy link

@lifthrasiir Can you comment and/or remedy the situation?

@durka
Copy link

durka commented Jun 19, 2017

@SergioBenitez see #146 (comment)

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

4 participants