BTW, I should point out that the proposed scheme does *not* create 
significantly longer filenames.

Actual:

* master: openmpi-v2.x-dev-3019-gbd1b6fe.tar.bz2 (39 chars)
* v2.0.x: openmpi-v2.0.1-101-ga66f3e2.tar.bz2 (36 chars)
* v2.x:   openmpi-v2.0.1-203-g56991c6.tar.bz2 (36 chars)

Proposed (including HHMM):

* master: openmpi-master-201610172100-bd1b6fe.tar.bz2 (44 chars)
* v2.0.x: openmpi-v2.0.x-201610172115-a66f3e2.tar.bz2 (44 chars)
* v2.x:   openmpi-v2.x-201610172130-56991c6.tar.bz2 (41 chars)



> On Oct 18, 2016, at 10:19 AM, Jeff Squyres (jsquyres) <jsquy...@cisco.com> 
> wrote:
> 
> On Oct 17, 2016, at 11:56 PM, Gilles Gouaillardet <gil...@rist.or.jp> wrote:
>> 
>> Jeff,
>> 
>> i have no strong objections against the new scheme.
>> that being said, i think i like the current one better ...
>> imho, the issue is the tag was put on a commit that is common to master and 
>> branch.
>> 
>> i guess we did :
>> 
>> git checkout master
>> git tag v2.x
>> git branch v2.x
>> 
>> what if we had done instead :
>> git checkout master
>> git checkout -b v2.x
>> git commit --allow-empty -m "forking the v2.x branch"
>> git tag v2.x
> 
> I think you meant "git tag v2.x-dev" (you can't have the branch and tag name 
> be the same -- that's ambiguous).
> 
> This happened because we originally created ompi and ompi-release; the master 
> branch went to ompi, and the v2.x branch went to ompi-release.  The 
> "v2.x-dev" tag went to the v2.x branch in ompi-release, on the commit that is 
> the common ancestor of both the master and v2.x branches.  Meaning: this tag 
> was not in the ompi repo.
> 
> I.e., we didn't realize the problem until the v2.x branch was brought back to 
> the ompi repo (which was fairly recent).  This put the "v2.x-dev" tag (much) 
> more recent than the "dev" tag, and therefore "git describe" on master shows 
> "v2.x-dev" instead of "dev".
> 
> The (abbreviated) tree looks like this (from git log --graph --decorate 
> --abbrev-commit --pretty=oneline --all --simplify-by-decoration):
> 
> -----
> * 0a6c886 (origin/v2.x, v2.x) Merge pull request #2149 from 
> hjelmn/v2.x_accumula
> | * a659cb2 (HEAD -> master, origin/master, origin/HEAD, jsq/master) Merge 
> pull 
> | | * a66f3e2 (origin/v2.0.x, v2.0.x) Merge pull request #2163 from 
> hjelmn/v2.0.
> | |/  
> |/|   
> * | ee86e07 (tag: v2.0.1) Merge pull request #1363 from 
> jsquyres/pr/v2.0.1/fix-r
> * | 0a4a5d7 (tag: v2.0.0) Merge pull request #1266 from 
> jsquyres/pr/v2.0.0/news-
> |/  
> * ec44a25 (tag: v2.x-dev) README: clarify OMPI's same-version requirements
> * 84810b8 (tag: dev) Cover the remaining code paths for Java apps to define cl
> -----
> 
> Notice:
> 
> - We originally had the v2.x branch in ompi-release, and made the v2.x-dev 
> tag there.  When we migrated the v2.x branch back to ompi, it became evident 
> that the v2.x-dev tag is in the "wrong" location (i.e., it should have been 
> at one commit beyond ec44a25 on the v2.x branch).
> 
> - The v2.x and v2.0.x branches are currently both "git describe"ing their 
> relation to the v2.0.1 tag because we aggressively delayed making the v2.0.x 
> branch until we absolutely had to.  Hence, the v2.0.1 tag is reachable by 
> both the current v2.x HEAD *and* the v2.0.x HEAD.
> 
>> pro: i guess that would have produced the "expected" behavior.
>> cons: v2.x would be only on the v2.x branch, so the branch point is really 
>> the parent of the tag
>> 
>> regardless we want to change the way we tag, could we simply sed the git 
>> describe output instead ?
>> master : git describe | sed -e 's/v2.x-dev/master/g'
>> v2.x: git describe | sed -e 's/v2.0.1/v2.x/g'
>> v2.0.x: git describe | sed -e 's/v2.0.1/v2.0.x/g'
>> or
>> v2.x: git describe | sed -e 's/v2.0.1/v2.1.0a/g'
>> v2.0.x: git describe | sed -e 's/v2.0.1/v2.0.2a/g'
> 
> My proposal with the (admittedly long -- but who cares?) timestamped 
> filenames is a recognition of:
> 
> - tags are heavyweight and eternal (i.e., we can't change them once they're 
> made)
> - due to unforeseen circumstances, we haven't gotten the tags right so far
> - even where the tags *are* right, "git describe" gives confusing output 
> (e.g., the v2.0.x and v2.x tarballs)
> 
> So why keep using this mechanism?
> 
> But even more importantly: you're proposing output that *looks* like "git 
> describe" output, but *isn't*.  
> 
> Meaning: you can't map your sed'ed string back to a unique place in the git 
> history in the same way that you can with "git describe" output.  Yes, you 
> still have the git hash, but it won't be related to the tags in the history 
> in the same way that "git describe" output is.  *** This will be incredibly 
> confusing! ***
> 
> Another way of looking at this: sure, we can sed the "git describe" output, 
> but that's effectively equivalent to using a different mechanism.  And if 
> we're going to use a different mechanism, we shouldn't violate the Law of 
> Least Astonishment by making it look like the original mechanism.
> 
> The timestamp-based filename gives us a different that is easily human 
> readable, sortable, and tracked back to a specific location in the git 
> history.
> 
>>> I propose changing them to the following format:
>>> 
>>>    openmpi-${BRANCHNAME}-${YYYYMMDD}-${SHORTHASH}.tar.bz2
>>> 
>>> Here's what last night's tarballs would have looked like with that scheme:
>>> 
>>>    openmpi-master-20161017-bd1b6fe.tar.bz2
>>>    openmpi-v2.0.x-20161017-a66f3e2.tar.bz2
>>>    openmpi-v2.x-20161017-56991c6.tar.bz2
>>> 
>>> Optionally, we could put a HHMM timestamp in there for finer granularity.
> 
> -- 
> Jeff Squyres
> jsquy...@cisco.com
> For corporate legal information go to: 
> http://www.cisco.com/web/about/doing_business/legal/cri/
> 
> _______________________________________________
> devel mailing list
> devel@lists.open-mpi.org
> https://rfd.newmexicoconsortium.org/mailman/listinfo/devel


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

_______________________________________________
devel mailing list
devel@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel

Reply via email to