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

Please tag versions by a 'v' prefix. #185

Closed
postmodern opened this Issue Jun 2, 2011 · 11 comments

Comments

Projects
None yet
4 participants
@postmodern
Contributor

postmodern commented Jun 2, 2011

I noticed that Rack is not tagging it's versions with a v prefix, as required by Semantic Versioning (see SemVerTag).

@josh

This comment has been minimized.

Contributor

josh commented Jun 2, 2011

I'd prefer to have the leading v too, but we already started tagging the releases without them. The v has no effect on our version policy.

@josh josh closed this Jun 2, 2011

@postmodern

This comment has been minimized.

Contributor

postmodern commented Jun 2, 2011

Could you start tagging with the v at some point?

I'm working on a project that will require Git repos have Semantic Version tags.

@tenderlove

This comment has been minimized.

Member

tenderlove commented Jun 2, 2011

It doesn't seem like semantic versioning requires it. It says

This sub-specification SHOULD be used if you use a version control system (Git, Mercurial, SVN, etc) to store your code.

If they're following rfc2119 for the meaning of SHOULD, then it isn't required:

  1. SHOULD This word, or the adjective "RECOMMENDED", mean that there
    may exist valid reasons in particular circumstances to ignore a
    particular item, but the full implications must be understood and
    carefully weighed before choosing a different course.
@raggi

This comment has been minimized.

Member

raggi commented Jun 2, 2011

You really mean that your project is going to be so brittle that tags with or without a meaningless 'v' is relevant to the code?

Here, let me help:

major, minor, patch = tag.match(/(\d+)\.(\d+)\.(\d+)/).captures

I'll see how I feel when I make the next tag - you may be lucky, but I don't feel this is worthy of a real issue or any more brain time.

Have a great day.

@postmodern

This comment has been minimized.

Contributor

postmodern commented Jun 2, 2011

@tenderlove Good point about the usage of SHOULD. Although, the next item in that section does use the MUST keyword.

  1. When tagging releases in a version control system, the tag for a version MUST be "vX.Y.Z" e.g. "v3.1.0".

@raggi Not necessarily brittle, just enforcing standards in my code. But yeah, keep it in the back of your mind, not a major issue.

PS: That Regex could use some brittleness (ex: bondjamesbond00.00.07perl!). ;)

@raggi

This comment has been minimized.

Member

raggi commented Jun 2, 2011

show me that tag.

@tenderlove

This comment has been minimized.

Member

tenderlove commented Jun 2, 2011

@postmodern the SHOULD clause allows the entire section to be ignored:

This sub-specification SHOULD be used

It's nice that we have a document telling us what to do, but remember that there are many ruby projects that existed before the semantic versioning document existed (or became popular). The first commit to semver.org was in 2009. The first rack release was in 2007.

I think history is a good enough reason to opt out of the tagging section via it's "SHOULD" clause. It would be unreasonable to demand that people who want to abide by SemVer but already have tagging systems in place go back and retag everything. I believe the author of SemVer thought of this, which is why this section is optional.

@raggi

This comment has been minimized.

Member

raggi commented Jun 2, 2011

3 segment versioning schemes are older than any rack author. semver is young enough that there are no professional devs younger than it. it's great there's a specification like document on the topic, and it'd be nice if we can stay close to various best practices there, but equally time and effort are important.

I do my best to keep to a sane versioning policy with regard to version numbers and i try to remember to cover all the due diligence of running against multiple ruby versions, etc. not all contributors manage that, which adds to overhead of patch acceptance and release preparation (sadly). racks development model doesn't currently involve tagging for reasons other than versions, so for our development model the 'v' is largely meaningless.

In applications that have a more complex release pattern, i could see the potential usefulness with tooling, but when i said "show me the tag" what i was really eluding too is that racks tagging process is very common throughout the FOSS library community, dropping the 'v' is really in line with racks culture of lightweight and unixy infrastructure (take a look at our rakefile). whilst opinions may differ from that (even my personal ones do in some ways/on some days), this is a philosophy from chris that shines through in the code style of the project and has persisted even through the increasing core team.

apologies for the lack of punctuation, spelling checks etc, i hope this rushed but more detailed answer is enough to close the topic.

@postmodern

This comment has been minimized.

Contributor

postmodern commented Jun 3, 2011

@tenderlove OK, I just had @mojombo correct me, SemVerTag is optional.

@raggi All good points with respect to how Rack is developed. Although, there are good reasons for having the v prefix (Examples).

Sorry for bringing this up and wasting time. I did not know it would become such a controversial topic. Sorry again everyone.

@raggi

This comment has been minimized.

Member

raggi commented Jun 3, 2011

contrived examples are not real examples. i don't put telephone numbers in tags. come on, seriously.

@tenderlove

This comment has been minimized.

Member

tenderlove commented Jun 3, 2011

@postmodern don't worry about it! ❤️❤️❤️❤️❤️❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment