gmac / backbone.epoxy

Declarative data binding and computed models for Backbone
http://epoxyjs.org
MIT License
615 stars 89 forks source link

Version tags #107

Closed frank-weindel closed 9 years ago

frank-weindel commented 9 years ago

I'm currently having trouble using semver syntax to specify the versions of epoxy I want to allow in a bower.json. This is because the repository is not tagging all new version releases.

The syntax I want to use allows all versions of epoxy >= v1.2.3 and < 2.0.0. This is how that looks as a dependency in bower.json

"backbone.epoxy": "gmac/backbone.epoxy#^1.2.3"

However, trying to bower install with this syntax results in an error because there is no tag in the repo for v1.2.3. The latest tag that I see is "v1.2", it seems prior to that version tags were maintained properly. "v1.2" is not a valid semver tag as noted in #74 so to grab that version you must hardset that tag in bower.json.

"backbone.epoxy": "gmac/backbone.epoxy#v1.2"

This has the horrible consequence of locking dependencies to only that version without any wiggle room of resolution between multiple components that may require different versions of epoxy.

But anyway, there is no way to actually even hardset v1.2.3 even at this point. I'm interested in using the new itemView feature added in response to #85.

Both NPM and Bower have very standard and automated ways of tagging a git repo with a new semver string, updating bower/package JSON and committing those changes together.

https://www.npmjs.org/doc/cli/npm-version.html http://bower.io/docs/api/#version

NPM and bower might not play well together in this regard, but they both use the same tagging scheme. Could the tags be added? If given the permission I could go in and add the necessary tags myself.

frank-weindel commented 9 years ago

Right now to get bower to install version 1.2.3 of epoxy I need to have the following dependency that targets the version's exact commit hash:

    "backbone.epoxy": "gmac/backbone.epoxy#0faa26d76bcfd2ffee8c4b38b8ee0c24a7b3ff55"

I don't have to tell you how undesirable that is.

gmac commented 9 years ago

Yeah, master does tend to be a few commits ahead of the last tagged release. I've just pushed out a v1.3.0 tag.

frank-weindel commented 9 years ago

Thanks. Could you rename the tag "v1.3.0"? It literally breaks the semver capability in bower (and possibly NPM?) when the version is tagged just "v1.3". Thats what #74 is about. If you used npm version or bower version the tag that would be created would be "v1.3.0". This is standard across both package managers. I know you might not be keen on maintaining multiple package manager definitions, but just standardizing your tags this way helps others use your library without any version frustrations. This is a blocker for us at the moment.

gmac commented 9 years ago

I tagged as v1.3.0, but couldn't push that to NPM due to v1.3 already being present. So, we've gone up to v1.3.1.