peterh / liner

Pure Go line editor with history, inspired by linenoise
MIT License
1.04k stars 132 forks source link

please tag and version this project #72

Closed aviau closed 8 years ago

aviau commented 8 years ago

Hello,

Can you please tag and version this project?

I am the Debian Maintainer for liner and versioning would help Debian keep up with development.

peterh commented 8 years ago

First off, I want to thank you for volunteering to help Debian. It's because of people like you that Debian is great.

That said, I'm afraid I don't see what a set of tags buys you. Liner is go-style, which means that "master" is always the latest bugfix version, and the API doesn't break. Should I ever desire an incompatible API, I'll create a new library with a different name. To "keep up", you need to poll my repository state somehow, and git will show you if there have been any changes to master just as easily as it will show you if there have been any new tags.

Given this, and given https://pkg-go.alioth.debian.org/packaging.html (no anchors in that page, so I can't link directly as I can to the Fedora equivalent: https://fedoraproject.org/wiki/PackagingDrafts/Go#Versions ), is it really worth the expense of maintaining versions and tags?

aviau commented 8 years ago

Debian and Fedora use scripts that allows us to keep up with tags. There are scripts that will warn me when you create a new tag. However, those scripts don't yet support monitoring git repositories. To keep up with liner, I must check manually from time to time.

Also, since you don't use tags and semantic versioning, I have to read the code and try to guess if you broke the api, added a feature, or fixed a bug.

I currently maintain 80+ packages and tags would save me time. I am sure the Fedora people would appreciate it too.

If Debian decides to support monitoring git repositories, that would be a different story, but it is not the case for now.

peterh commented 8 years ago

Also, since you don't use tags and semantic versioning...

Go-style versioning is isomorphic to semver. The major version is the import path ("github.com/peterh/liner" in this case) and each push to master is a minor or patch version (the difference is unimportant from a backwards compatibility point of view).

If it would make you more comfortable, I can copy the Go 1 Compatibility Promise and s/Go/Liner/g.

However, those scripts don't yet support monitoring git repositories.

I currently maintain 80+ packages and tags would save me time.

I suspect that fixing the scripts would take you less time than maintaining version numbers for those 80+ packages.