invalid 0.1.2 tag for python-keystoneclient

Bug #1044695 reported by Dan Prince
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
python-keystoneclient
Fix Released
Critical
Joseph Heck

Bug Description

We seem to have a python-keystoneclient release 0.1.2 up on pypi which other projects are dependent on (glanceclient). However we are missing a tag for this in Git:

[dprince@dovetail python-keystoneclient]$ git tag
0.1.0
0.1.1
2012.1
essex-3
essex-4
essex-rc1
essex-rc2
folsom-1

Dan Prince (dan-prince)
Changed in keystone:
importance: Undecided → Critical
Revision history for this message
Dan Prince (dan-prince) wrote :

Wrong git checkout!

Changed in keystone:
status: New → Invalid
Dan Prince (dan-prince)
Changed in keystone:
status: Invalid → Confirmed
Dan Prince (dan-prince)
summary: - missing git tag for keystoneclient 0.1.2
+ invalid 0.1.2 tag for python-keystoneclient
Revision history for this message
Dan Prince (dan-prince) wrote :

Okay. Bit more research on this leads me to believe there is actually a problem here... I filed this ticket due to an issue I'm hitting w/ Glanceclient (which requires keystoneclient 0.1.2 or later). When I tested locally I initially I just had an outdated python-keystoneclient repo... looking at it a bit closer it seems that something isn't quite right.

So tag 0.1.2 exists but it wasn't showing up in the "right spots" for me. When I run 'git describe --tags' I expected to see the releaes start with 0.1.2 since that was the most recent tag for python-keystoneclient. This is not the case however:

[dprince@dovetail python-keystoneclient]$ git describe --tags
0.1.1-24-g0a8c960

Given that we use this command in openstack-common's setup.py class to generate version information for tarballs, etc it means that generating a recent keystoneclient tarball from master contains inaccurate version information (which means it breaks things like Glanceclient)

A bit more digging:

[dprince@dovetail python-keystoneclient]$ git show-ref --tags | grep 0.1.2
08135c8bc30234143f4d3f634d17471bc48f96c6 refs/tags/0.1.2

[dprince@dovetail python-keystoneclient]$ git show 08135c8bc30234143f4d3f634d17471bc48f96c6
tag 0.1.2
Tagger: Joe Heck <email address hidden>
Date: Wed Aug 1 15:53:49 2012 -0700

adding --insecure option to keystoneclient to work with self-signed SSL

commit e34c33167182a18dd93036cd3cad993a161e9d52
Author: Joe Heck <email address hidden>
Date: Fri Jul 27 14:27:03 2012 -0700

    Merge branch 'master', remote-tracking branch 'origin'

-----

That merge is the thing that concerns me. ^^^

Also, in gitk all the most recent commits reference 0.1.1 as the preceeding tag.

To me this is a critical issue because it makes it so that a tarball of the most recent keystoneclient source no longer accurately reflects current version information.

Thierry Carrez (ttx)
affects: keystone → python-keystoneclient
Revision history for this message
Joseph Heck (heckj) wrote :

The 0.1.2 tag was intended to be the release tag for the keystoneclient library that added --unsigned to allow for disregarding the cert path in verifying a PKI token. Sounds like I really didn't do something correct in the process of making that tag and release.

Looking back through the log, It was meant to tag over commit: dec8f77c9233f195999b8db9adbd4f026834fd42

What do I need to do to correctly tag and release an update?

Changed in python-keystoneclient:
assignee: nobody → Joseph Heck (heckj)
Revision history for this message
Mark McLoughlin (markmc) wrote :

tl; dr:

0.1.2 tags a merge commit which was never pushed to master

the merge commit only has one parent, and there are no other commits in 0.1.2 which didn't land on master

in more detail:

0.1.2 is on pypi and there's a tag for it in the github repo

It looks like we wanted to release commit dec8f77 as 0.1.2, which is 16 commits after 0.1.1:

  $> git log --oneline 0.1.1..dec8f77 | wc -l
  16

however, there's an extra commit in 0.1.2:

  $> git log --oneline 0.1.1..0.1.2 | wc -l
  17

and that commit is:

  git log --pretty=raw origin/master..0.1.2
  commit e34c33167182a18dd93036cd3cad993a161e9d52
  tree c8781c661b86f4eb67b9f562e8285819abb7ce4c
  parent dec8f77c9233f195999b8db9adbd4f026834fd42
  author Joe Heck <email address hidden> 1343424423 -0700
  committer Joe Heck <email address hidden> 1343424423 -0700

      Merge branch 'master', remote-tracking branch 'origin'

Note that this is a merge commit with only one parent ... very strange

Revision history for this message
Mark McLoughlin (markmc) wrote :

So, yes ... 'git describe' isn't showing master relative to 0.1.2 because the 0.1.2 commit was never on master

I recommend deleting the 0.1.2 and re-pushing

  $> git push gerrit :refs/tags/0.1.2
  $> git tag -d 0.1.2
  $> git tag -a 0.1.2 dec8f77
  $> git push gerrit tag 0.1.2

Revision history for this message
Mark McLoughlin (markmc) wrote :

That would be:

  $> git push gerrit :refs/tags/0.1.2
  $> git tag -d 0.1.2
  $> git tag -s 0.1.2 dec8f77
  $> git push gerrit tag 0.1.2

i.e. signed tag, not annotated

Revision history for this message
Joseph Heck (heckj) wrote :

Looks like I merged to a local master and tagged that rather than the commit on geritt directly...

Revision history for this message
Joseph Heck (heckj) wrote :

james and ttx concurred that since the 0.1.2 tag was "messed up", they preferred to not re-tag to the intended location but to add another tag. I've added 0.1.3 tag to gerrit and just pushed it up - it should be available presently.

Revision history for this message
Joseph Heck (heckj) wrote :

redid 0.1.2 tab with james - should be available now (in gerrit)

Changed in python-keystoneclient:
status: Confirmed → Fix Committed
Joseph Heck (heckj)
Changed in python-keystoneclient:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.