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

Tag a v1.0.0 version #64

Open
davidanthoff opened this issue May 19, 2019 · 10 comments
Open

Tag a v1.0.0 version #64

davidanthoff opened this issue May 19, 2019 · 10 comments

Comments

@davidanthoff
Copy link
Contributor

Could we tag a version 1.0.0?

That would make it much easier for packages that depend on this one here to use semver compat bounds in Project.toml. The problem is that pre 1.0.0, every minor update is considered breaking, whereas starting with 1.0.0 one can use the full semver semantics, which make everything easier.

Also, it seems that this package is so widely used with the current API, that one might as well declare what we have as stable and done, right?

@ararslan
Copy link
Member

I didn't even think this package was still used. Most URI parsing I've seen done just uses what's in HTTP.jl.

@davidanthoff
Copy link
Contributor Author

I'm using it a lot: it is small, does what it is supposed to do, doesn't come with many dependencies and doesn't have code churn that I need to deal with. Perfect for our use cases. I appreciate HTTP.jl, but I shouldn't have to take a dependency on such a big package if all I want to do is parse a URI.

Should I open a PR that migrates this to Project.toml and increases the version to 1.0.0?

@davidanthoff
Copy link
Contributor Author

So, for example the whole VS Code extension uses this a lot. And we couldn't use HTTP.jl because we can't take dependencies that have a deps/build.jl script in it, which one of the upstream deps of HTTP.jl brings along.

@ararslan
Copy link
Member

HTTP's URI parsing code has seen more recent development than this has, so I think that should be migrated here, then HTTP can just take a dependency on this package to do URI parsing.

@quinnj
Copy link
Member

quinnj commented May 19, 2019

I've talked w/ @StefanKarpinski a bit about being able to register a new package from the same repo of a "parent" repo; in this case, the URIs submode of HTTP.jl is completely self-contained and could standalone as its own package.

@davidanthoff
Copy link
Contributor Author

Is the URI code in HTTP.jl backwards compatible with the API provided by URIParser.jl? In that case I would be in favor of just moving the code from HTTP.jl into URIParser.jl. If not, I would think the best solution would be to create a new URIs.jl package.

I'm not a fan of something like having the code live in the HTTP.jl repo, but exposing it as a different repo. None of the tooling supports this, it would confuse the heck out of people that want to contribute to the package (everyone is used to the workflow of one repo per package) and what exactly would be gained? Wouldn't it be by far the easiest option to simply create a URIs.jl package the normal way?

@quinnj
Copy link
Member

quinnj commented May 20, 2019

I'm not a fan of something like having the code live in the HTTP.jl repo, but exposing it as a different repo. None of the tooling supports this, it would confuse the heck out of people that want to contribute to the package (everyone is used to the workflow of one repo per package) and what exactly would be gained? Wouldn't it be by far the easiest option to simply create a URIs.jl package the normal way?

The tooling is indeed meant to support this (though doesn't currently). I also would argue that it would be less confusing for users w/ issues or would-be contributors. Previously, a user/contributor had to understand the nuance of the webstack and know whether an issue should be reported to Requests.jl, HttpServer.jl, URIParsers.jl, HttpCommon.jl, etc. That led to significant duplication of issues and was a main driver behind consolidating the webstack code in HTTP.jl.

Another fact contributing is that there frankly aren't a ton of web contributors, so having things consolidated and centralized at least help those few of us who do contribute to manage things.

Now, all that said, I do think it would still be worth splitting out URIs.jl and Servers.jl into their own, stand-alone packages/repos separate from HTTP.jl. They represent distinct enough modules that I think the separate makes sense.

@davidanthoff
Copy link
Contributor Author

I don't have an opinion about the rest of HTTP.jl, but it seems for the URI type we are then all in agreement that it should go into its own package in its own repo?

What are arguments for starting a new URIs.jl repo vs. continuing to use URIParser.jl?

@quinnj
Copy link
Member

quinnj commented May 20, 2019

I think I'm in favor starting a new repo, marking URIParser.jl as deprecated, and letting people switch over naturally; though it takes a bit of time to get people to switch over, I feel like it's the least disruptive.

@davidanthoff
Copy link
Contributor Author

Bump, it would still be wonderful if we could move the URI stuff out of HTTP.jl and into an URIs.jl package. I took a quick look and I think it is a bit too intertwined with other stuff in HTTP.jl for me to do this, but for someone familiar with the HTTP.jl codebase this might all be fairly simple?

I think naming the new package URIs.jl, as @quinnj suggested above, is the best option. And then hopefully it can move into the stdlib at some point.

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

3 participants