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

Proposal: Please start using Semantic Versioning #394

Closed
KateGo520 opened this issue Aug 1, 2020 · 19 comments
Closed

Proposal: Please start using Semantic Versioning #394

KateGo520 opened this issue Aug 1, 2020 · 19 comments

Comments

@KateGo520
Copy link

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
Copy link
Author

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

@elazarl
Copy link
Owner

elazarl commented Aug 1, 2020

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
Copy link
Author

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

@elazarl
Copy link
Owner

elazarl commented Aug 5, 2020

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

@wolfogre
Copy link

@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
Copy link

detro commented Apr 4, 2022

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
Copy link
Owner

elazarl commented Apr 4, 2022

@detro sounds a very good idea.

@detro
Copy link

detro commented Apr 4, 2022

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

@elazarl
Copy link
Owner

elazarl commented Apr 4, 2022

@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
Copy link

JanneKiiskila commented Feb 12, 2023

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
Copy link
Contributor

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
Copy link
Owner

elazarl commented Jul 28, 2024 via email

@JanneKiiskila
Copy link

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

  • major version is bumped, if any incompatible API-changes are done.
  • minor version is bumped, if any new features are added (can include also fixes - depends on release rate).
  • patch version is bumped, if things are fixed.

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

@jeffwidman
Copy link
Contributor

@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.

@jeffwidman
Copy link
Contributor

Gentle nudge on this. Feel free to email me directly--my email is in my GitHub profile.

@rgoltz
Copy link

rgoltz commented Jan 2, 2025

Now, it's start using the offical (GitHub)-release-tags. Here is a local test:

go get github.com/elazarl/goproxy@latest
go: upgraded github.com/elazarl/goproxy v0.0.0-20240726154733-8b0c20506380 => v1.2.5

Also the https://pkg.go.dev/github.com/elazarl/goproxy?tab=versions started using the offical release-versions:
image

@jeffwidman
Copy link
Contributor

@ErikPelli I think this can be closed now?

BTW, I work on the :dependabot: team at GitHub and we use this library internally as part of :dependabot:... thanks for all your recent hard work on this project... I personally help maintain multiple open source libs myself, so I understand/appreciate all the work that goes into doing that.

@ErikPelli
Copy link
Collaborator

Hi @jeffwidman, thanks for the good words, I see you are enjoying Ruby in dependabot project, I've used it with Rails in the past, but I prefer to use Go eheh.

Yup, I'll soon close this issue, since we officially started to use semantic versioning in this project.
It's a pleasure that Dependabot/Github itself uses this open source project, I joined some months ago, after it has been stale for a while, and I have merged a bunch of pending fixes and updates (and some more are still pending).
I've seen that you opened some pull requests, thanks, I'll look at them soon! Any help is always appreciated!

As you said, open source is a great hobby, which has a real impact on others, and I'll continue to maintain this project for the sake of it.
Unluckily it doesn't pay the bills: I'm still searching for contract jobs (b2b) where I can provide Go software development expertise, if you (or anyone else) know someone in their networks that can be interested, let me know!

@jeffwidman
Copy link
Contributor

Thanks for the heads up. I'll pass the word around.

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

8 participants