+1 On 3/7/14 12:07 PM, Cory Johns wrote: > Oh, good, so we already have a version in place, we just need to > incorporate it better in the release process. That makes things much > easier. > > With regards to "API version," yes, I meant that as synonymous with the > MAJOR part of the MAJOR.MINOR.PATCH version scheme, as semver.org describes > the MAJOR version as changing whenever a backwards-incompatible API change > occurs (with MINOR changing when new backwards-compatible features are > added, and PATCH changing with any backwards-compatible bug fixes). But I > could see calling MAJOR.MINOR the "API version" since even not all of our > new "features" necessarily affect the API (i.e., warranting a modification > to http://allura.sourceforge.net/docs/#api-documentation). As long as our > version number has a consistent semantic meaning, I think it's really up to > us to establish a convention. > > Our existing version.py file has a two-part version number, so I guess we > should bring that up to date, and integrate it with the release script. > The release script can just compare the most recent asf_release_* tag with > the version.py file and either increment or reset the patch version number, > as appropriate. Then, it's just up to us to keep the version.py file up to > date in the commits that make changes. > > > On Fri, Mar 7, 2014 at 9:49 AM, Dave Brondsema <d...@brondsema.net> wrote: > >> On 3/5/14 3:18 PM, Cory Johns wrote: >>> I'd like to propose, and request feedback for, an idea for tracking the >>> version number for Allura. >>> >>> I think we've pretty well settled on using semantic versioning (see: >>> semver.org), which requires the MAJOR version number to be increased >>> whenever an "incompatible API change." As it might not always be obvious >>> from the ticket or commit log whether an incompatible change has been >> made, >>> I propose that we start tracking at least part of the version number in >> the >>> repository itself, e.g., in a VERSION file. This way, it will be obvious >>> when the MAJOR version number must change, as it can be updated along >> with >>> the code change that necessitates it. >> >> I was about to write about storing it in a var in Allura/allura/version.py >> and >> bring it into setup.py too (so packaging and other code can access it), >> but it >> looks like we already do that! But we haven't kept the version number in >> that >> file accurate. We should do so and put a reminder in our release script >> steps. >> >>> >>> Since we likely don't want to increase the version number with each >> commit >>> (or do we?), we could instead track the "API version" in the repository, >>> and only update the MINOR and PATCH versions upon release, external to >> the >>> code itself. >> >> By "API version" do you mean the MAJOR part of the version number? Or >> something >> else? >> >>> >>> Alternatively, we could track both the MAJOR and MINOR version numbers in >>> the repository, which would require us to update the MINOR version number >>> for (and resolve conflicts between) each ticket that adds a new, >> backwards >>> compatible feature. This would take all of the guesswork / judgement out >>> of determining the release version. However, I think that Allura is >> still >>> proceeding with a sufficient amount of feature development that doing it >>> this way would cause more conflict on the version number than would be >>> worth the benefit. >> >> Yeah, I agree. I think updating the version proactively for api-breaking >> changes makes sense, so that we don't forget about those changes. But >> most of >> the time version can be determined at release time, when reviewing the >> whole set >> of changes. >> >>> >>> Anyway, what are others' thoughts? >>> >> >> >> >> -- >> Dave Brondsema : d...@brondsema.net >> http://www.brondsema.net : personal >> http://www.splike.com : programming >> <>< >> >
-- Dave Brondsema : d...@brondsema.net http://www.brondsema.net : personal http://www.splike.com : programming <><