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

Tracking issue for rust-url 2.0 #463

Closed
17 of 42 tasks
SimonSapin opened this issue Oct 17, 2018 · 6 comments
Closed
17 of 42 tasks

Tracking issue for rust-url 2.0 #463

SimonSapin opened this issue Oct 17, 2018 · 6 comments

Comments

@SimonSapin
Copy link
Member

SimonSapin commented Oct 17, 2018

For a while now we’ve been discussing some possible breaking changes and I’ve been reluctant, to avoid dealing with moving the ecosystem to a semver-incompatible version. However it’s probably time to do it anyway, in particular to get serde 1.0 support in the url crate itself. To avoid doing multiple such migrations, it would be nice batch breaking changes together.

This is blocked on

This would unblock

Changes to consider

Not necessarily blockers for 2.0.0.

Update with current spec and tests

… because this might lead to API or behavior changes.

Breaking API changes

Behavior changes

Some of those might arguably be considered breaking. Or maybe not.

Non-breaking changes

… maybe worth looking at while I’m spending time on rust-url:

Unsure if breaking

Potential breaking changes for the idna crate

Potential breaking changes for the percent_encoding crate

  • Encode sets as const values of a single type, instead of types implementing a trait
@atouchet
Copy link
Contributor

atouchet commented Nov 2, 2018

Servo is now using hyper 0.12.

This was referenced Feb 11, 2019
@est31
Copy link
Contributor

est31 commented Jul 10, 2019

rustc-serialize should probably be put onto the list, too: #506

@killercup
Copy link

Hey, for an internal project we wanted to have a url crate with some of the things listed here. I forked this repo and made some changes, mostly removing rustc-serialize and adding serde 1.0, which you can find here. This is not meant to replace this crate, but to as soon as possible rexports all of url 2.0 and get deprecated :)

Are you okay with me publishing this fork to crates.io? We'll want to publish some crates depending on this.

@SimonSapin
Copy link
Member Author

I mean, if publishing a fork is what you need to get other work unblocked I don’t really have a reason to stop you.

That said, Just Making url 2.0 Already is probably a better outcome. I’ve just been putting it off because the list above looks so daunting. But maybe you or other people can help. I’ve pushed a 2.0 branch which for now is the same as master. Feel free to make PRs into that branch for any of the above (or more). The changes your already have in your fork would be a good start.

The key is we don’t have to do everything in the list. While batching breaking changes is better to avoid the need to do 3.0 too soon, if no one has implemented a particular change after some time maybe it’s wasn’t that important in the first place.

@killercup
Copy link

That said, Just Making url 2.0 Already is probably a better outcome.

Definitely.

I’ve just been putting it off because the list above looks so daunting.

I can relate to that very much! And since url is a pretty major crate the barrier to just releasing a new major version is pretty high I imagine.

I'm gonna publish my fork so our internal stuff can easily depend on it (and I so that I can feel like I did something this week). I'll probably also keep doing weird stuff there just to experiment with some APIs, and release a new version until I either hit 0.99.0 or am actually happy with the code.

I hope to have the time to slowly merge to "good" parts back into your 2.0 branch. Actually, anyone is welcome to just take my changes and merge them over!

@SimonSapin
Copy link
Member Author

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