elazarl / goproxy

An HTTP proxy library for Go
BSD 3-Clause "New" or "Revised" License
5.99k stars 1.09k forks source link

Proposal: Please start using Semantic Versioning #394

Open KateGo520 opened 4 years ago

KateGo520 commented 4 years ago

I found that this project already supports Go modules. But sadly, the tags doesn't follow Semantic Versioning, which means that all tags of this project will be ignored by Go modules and replaced by pseudo-versions, go get acts weirdly when tags are not in that form. It would be great to have the tagged release be named in the format vX.X.X format so that go mod can read it.

    github.com/elazarl/goproxy v0.0.0-20200710112657-153946a5f232

Else the mod file shows something like github.com/elazarl/goproxy v0.0.0-20200710112657-153946a5f232 which is not very readable and difficult to upgrade. It’s hard to verify which version is in use. This is not conducive to version control

So, I propose this project to follow Semantic Versioning in future versions. For example, v1.0.1, v2.0.0, v3.1.0-alpha, v3.1.0-beta.2etc.

KateGo520 commented 4 years ago

@kimor79 @n-i-x Could you help me review this issue? Thx :p

elazarl commented 4 years ago

Sounds great to me. This project predates go modules, and tags were supposed to support some primitive versioning by HTTP redirect. There were times...

KateGo520 commented 4 years ago

@elazarl Thank you for your reply and look forward to a new version for module. : D

elazarl commented 4 years ago

@KateGo520 can you help me with how to set version to the submodule ext/?

wolfogre commented 2 years ago

@elazarl If there is any problem with how to set version to the submodule, you can find how "golang/tools" do it: https://github.com/golang/tools/tags

Semantic versioning is so important for go modules, sorry to trouble you but could you please speed this up?

detro commented 2 years ago

Given how actively supported and widely adopted this project seems to be, I'd love to see some semantic versioning. It does make for a more ergonomic experience, as well as it deliver a sense of "craftmanship" superior to go.mod lines like:

github.com/elazarl/goproxy v0.0.0-20220328115640-894aeddb713e

So, big support for this issue.

elazarl commented 2 years ago

@detro sounds a very good idea.

detro commented 2 years ago

Hey @elazarl are you looking for a contribution to do this or am I missing something? :)

elazarl commented 2 years ago

@detro a PR would be awesome. I'm unfotunately very limited in the time I can invest, but I'm happy to review and merge PRs.

JanneKiiskila commented 1 year ago

This one probably cannot be covered via PRs @elazarl , the tag injection is done directly via git tag -commands as far as I'm aware, so someone with repo write access could do it.

jeffwidman commented 1 month ago

To bump this again, @elazarl this requires a maintainer.

If you aren't quite sure how to do this, I'm happy to volunteer to help... we use this project at my day job, so it's easy for me to justify spending a little time to help maintain the project.

I helped another open source go library switch to modules here: https://github.com/vishvananda/netns/releases

I think once you've seen it done a time or two it'd be easy to understand how it works and handle it going forward if you want.

elazarl commented 1 month ago

I'll be happy for a PR and guidance. Thanks

On Fri, Jul 26, 2024, 19:48 Jeff Widman @.***> wrote:

To bump this again, @elazarl https://github.com/elazarl this requires a maintainer.

If you aren't quite sure how to do this, I'm happy to volunteer to help... we use this project at my day job, so it's easy for me to justify spending a little time to help maintain the project.

I helped another open source go library switch to modules here: https://github.com/vishvananda/netns/releases

I think once you've seen it done a time or two it'd be easy to understand how it works and handle it going forward if you want.

— Reply to this email directly, view it on GitHub https://github.com/elazarl/goproxy/issues/394#issuecomment-2253128826, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAB7RIXDNYNH6EMRIR6Y3UDZOJ4XNAVCNFSM6AAAAABLQ3DYH2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJTGEZDQOBSGY . You are receiving this because you were mentioned.Message ID: @.***>

JanneKiiskila commented 1 month ago

https://semver.org/ is a good introduction. Essentially:

v1.0.0 is usually considered the 1st stable release.

jeffwidman commented 1 month ago

@elazarl as noted above, this is not something that happens via PR's... it happens via Git tags which requires write access to the repo.

As I said, I'm happy to show how to do this, but you'll need to either give me write permissions on the repo (aka make me a temporary maintainer), or we can do a video call where we screenshare and I walk you through what you need to do.

Happy to help, let me know what you'd prefer.