Re: [openstack-dev] [All] tagged commit messages

2013-12-30 Thread Kevin L. Mitchell

On Mon, 2013-12-30 at 11:04 +0100, Flavio Percoco wrote:
 I like the idea of having custom tags. I'm a bit concerned about the
 implications this might have with cross-project collaborations. I
 mean, people contributing to more projects will have to be aware of
 the many possible differences in this area.
 
 That being said, I can think of some cases where we this could be
 useful for other projects. However, I'd encourage to keep common tags
 documented somewhere, perhaps this common tags shouldn't be part of
 the `Tags:` 'field', which you already mentioned above.

If I may be allowed a tangent—should a mechanism external to the commit
message be allowed for attaching a tag to a review?  Consider the recent
ext3/ext4 change: a reviewer could browse that and say, This should
have a DeploymentImpact tag.  With the tags as so far described in this
thread, that has to be something added by the submitter (or a new
version of the patch uploaded by a reviewer).  Can we create a mechanism
that would allow a reviewer to attach such a tag without having to
modify any part of the review?  Can the mechanism allow such an
attachment even if the review has already been merged?

Just something to think about :)
-- 
Kevin L. Mitchell kevin.mitch...@rackspace.com
Rackspace



___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [All] tagged commit messages

2013-12-30 Thread Angus Salkeld

On 30/12/13 13:44 -0600, Kevin L. Mitchell wrote:


On Mon, 2013-12-30 at 11:04 +0100, Flavio Percoco wrote:

I like the idea of having custom tags. I'm a bit concerned about the
implications this might have with cross-project collaborations. I
mean, people contributing to more projects will have to be aware of
the many possible differences in this area.

That being said, I can think of some cases where we this could be
useful for other projects. However, I'd encourage to keep common tags
documented somewhere, perhaps this common tags shouldn't be part of
the `Tags:` 'field', which you already mentioned above.


If I may be allowed a tangent—should a mechanism external to the commit
message be allowed for attaching a tag to a review?  Consider the recent
ext3/ext4 change: a reviewer could browse that and say, This should
have a DeploymentImpact tag.  With the tags as so far described in this
thread, that has to be something added by the submitter (or a new
version of the patch uploaded by a reviewer).  Can we create a mechanism
that would allow a reviewer to attach such a tag without having to
modify any part of the review?  Can the mechanism allow such an
attachment even if the review has already been merged?


https://www.kernel.org/pub/software/scm/git/docs/git-notes.html



Just something to think about :)
--
Kevin L. Mitchell kevin.mitch...@rackspace.com
Rackspace



___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [All] tagged commit messages

2013-12-29 Thread John Dickinson

On Dec 29, 2013, at 2:05 PM, Michael Still mi...@stillhq.com wrote:

 On Mon, Dec 30, 2013 at 8:12 AM, John Dickinson m...@not.mn wrote:
 I've seen several disconnected messages about tags in commit messages. I've 
 seen
 what is possible with the DocImpact tag, and I'd like to have some more 
 flexible tagging
 things too. I'd like to use tags for things like keeping track of config 
 defaults changing,
 specific ongoing feature work, and tracking changes come release time.
 
 I suspect I'm the last person to have touched this code, and I think
 expanding tags is a good idea. However, I'm not sure if its the best
 mechanism possible -- if a reviewer requires a tag to be added or
 changed, it currently requires a git review round trip for the
 developer or their proxy. Is that too onerous if tags become much more
 common?
 
 I definitely think some more formal way of tracking that a given patch
 needs to be covered by the release notes is a good idea.
 
 There are currently two hooks that I can see in our gerrit config:
 
 - patchset-created
 - change-merged
 
 I suspect some tags should be executed at patchset-merged? For
 example a change to flag defaults might cause a notification to be
 sent to interested operators?
 
 Perhaps step one is to work out what tags we think are useful and at
 what time they should execute?

I think this is exactly what I don't want. I don't want a set of predefined 
tags. We've got that today with DocImpact and SecurityImpact. What I want, for 
very practical examples in Swift, are tags for config changes so deployers can 
notice, tags for things with upgrade procedures, tags for dependency changes, 
tags for this is a new feature, all in addition to the existing DocImpact and 
SecurityImpact tag. In other words, just like impacted teams get alerted for 
changes that impact docs, I want patches that impact Swift proxy-server 
configs to be tracked (and bin scripts, and dependencies, and ring semantics, 
and etc).

I think you're absolutely right that some things should happen at 
patchset-created time and others at change-merged time. 

Like you I'm also concerned that adding a new tag may be too heavyweight if it 
requires a code push/review/gate cycle. Here's an alternative: 

1) Define a very lightweight rule for tagging commits (eg: one line, starts 
with tags:, is comma-separated)
2) Write an external script to parse the git logs and look for tags. It 
normalizes tags (eg lowercase+remove spaces), and allow simple searches (eg 
show all commits that are tagged 'configchange').

That wouldn't require repo changes to add a tag, gives contributors massive 
flexibility in tagging, doesn't add new dependencies to code repos, and is 
lightweight enough to be flexible over time.


Hmmm...actually I like this idea. I may throw together a simple script to do 
this and propose using it for Swift. Thanks Michael!


--John




 
 Michael
 
 -- 
 Rackspace Australia
 
 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [All] tagged commit messages

2013-12-29 Thread Peter Portante
On Sun, Dec 29, 2013 at 7:51 PM, John Dickinson m...@not.mn wrote:

 On Dec 29, 2013, at 2:05 PM, Michael Still mi...@stillhq.com wrote:

 On Mon, Dec 30, 2013 at 8:12 AM, John Dickinson m...@not.mn wrote:
 I've seen several disconnected messages about tags in commit messages. I've 
 seen
 what is possible with the DocImpact tag, and I'd like to have some more 
 flexible tagging
 things too. I'd like to use tags for things like keeping track of config 
 defaults changing,
 specific ongoing feature work, and tracking changes come release time.

 I suspect I'm the last person to have touched this code, and I think
 expanding tags is a good idea. However, I'm not sure if its the best
 mechanism possible -- if a reviewer requires a tag to be added or
 changed, it currently requires a git review round trip for the
 developer or their proxy. Is that too onerous if tags become much more
 common?

 I definitely think some more formal way of tracking that a given patch
 needs to be covered by the release notes is a good idea.

 There are currently two hooks that I can see in our gerrit config:

 - patchset-created
 - change-merged

 I suspect some tags should be executed at patchset-merged? For
 example a change to flag defaults might cause a notification to be
 sent to interested operators?

 Perhaps step one is to work out what tags we think are useful and at
 what time they should execute?

 I think this is exactly what I don't want. I don't want a set of predefined 
 tags. We've got that today with DocImpact and SecurityImpact. What I want, 
 for very practical examples in Swift, are tags for config changes so 
 deployers can notice, tags for things with upgrade procedures, tags for 
 dependency changes, tags for this is a new feature, all in addition to the 
 existing DocImpact and SecurityImpact tag. In other words, just like impacted 
 teams get alerted for changes that impact docs, I want patches that impact 
 Swift proxy-server configs to be tracked (and bin scripts, and dependencies, 
 and ring semantics, and etc).

 I think you're absolutely right that some things should happen at 
 patchset-created time and others at change-merged time.

 Like you I'm also concerned that adding a new tag may be too heavyweight if 
 it requires a code push/review/gate cycle. Here's an alternative:

 1) Define a very lightweight rule for tagging commits (eg: one line, starts 
 with tags:, is comma-separated)
 2) Write an external script to parse the git logs and look for tags. It 
 normalizes tags (eg lowercase+remove spaces), and allow simple searches (eg 
 show all commits that are tagged 'configchange').

 That wouldn't require repo changes to add a tag, gives contributors massive 
 flexibility in tagging, doesn't add new dependencies to code repos, and is 
 lightweight enough to be flexible over time.

+1


 Hmmm...actually I like this idea. I may throw together a simple script to do 
 this and propose using it for Swift. Thanks Michael!


 --John





 Michael

 --
 Rackspace Australia

 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [All] tagged commit messages

2013-12-29 Thread John Dickinson

On Dec 29, 2013, at 5:24 PM, Michael Still mi...@stillhq.com wrote:

 On Mon, Dec 30, 2013 at 11:51 AM, John Dickinson m...@not.mn wrote:
 On Dec 29, 2013, at 2:05 PM, Michael Still mi...@stillhq.com wrote:
 
 [snip]
 
 Perhaps step one is to work out what tags we think are useful and at
 what time they should execute?
 
 I think this is exactly what I don't want. I don't want a set of predefined 
 tags.
 
 [snip]
 
 Super aggressive trimming, because I want to dig into this one bit some 
 more...
 
 I feel like anything that requires pro-active action from the target
 audience will fail. For example, in nova we've gone through long
 cycles with experimental features where we've asked deployers to turn
 on new features in labs and report problems before we turn it on by
 default. They of course don't.
 
 So... I feel there is value in a curated list of tags, even if we
 allow additional tags (a bit like launchpad). In fact, the idea of a
 DeployImpact tag for example really works for me. I'm very tempted
 to implement that one in notify_impact now.

Yup, I understand and agree with where you are coming from. Let's discuss 
DeployImpact as an example.

First, I like the idea of some set of curated tags (and you'll see why at the 
end of this email). Let's have a way that we can tag a commit as having a 
DeployImpact. Ok, what does that mean? In some manner of speaking, _every_ 
commit has a deployment impact. So maybe just things that affect upgrades? Is 
that changes? New features? Breaking changes only (sidebar: why would these 
sort of changes ever get merged anyway? moving on...)? My point is that a 
curated list of tags ends up being fairly generic to the point of not being too 
useful.

Ok, we figured out the above questions (ie when to use DeployImpact and when to 
not use it). Now I'm a deployer and packager (actually not hypothetical, since 
my employer is both for Swift), so what do I do? Do I have to sign up for some 
sort of thing? Does this mean a gerrit code review cycle to some -infra 
project? That would be a pretty high barrier for getting access to that info. 
Or maybe the change-merged action for a DeployImpact tag simply sends an email 
to a new DeployImpact mailing list or puts a new row in a DB somewhere that is 
shown on some page ever time I load it? In that case, I've still got to sign up 
for a new mailing list (and remember to not filter it and get everyone in my 
company who does deployments to check it) or remember to check a particular 
webpage before I do a deploy.

Maybe I'm thinking about this wrong way. Maybe the intended audience is the 
rest of the OpenStack dev community. In that case, sure, now I have a way to 
find DeployImpact commits. That's nice, but what does that get me? I already 
see all the patches in my email and on my gerrit dashboard. Being able to 
filter the commits is nice, but constraining that to an approved list of tags 
seems heavy-handed.

So while I like the idea of a curated list of tags, in general, I don't think 
they lessen the burden for the intended audience (the intended audience being 
people not in the dev/contributor community but rather those deploying and 
using the code). That's why a tool that can parse git commit messages seems 
simple and flexible enough to meet the needs of deployers (eg run `git log 
commit | tagged-search deployimpact` before packaging) without requiring the 
overhead of managing a curated tag list via code repo changes (as DocImpact is 
today).

All that being said, I'll poke some holes in my own idea. The problem with my 
idea is letting deployers know what tags they should actually search for. In 
this case, there probably should be some curated list of high-level tags that 
should be used across all OpenStack projects. In other words, if I use 
deploy-change on my patch and you use DeploymentImpact, then what does a 
packager/deployer search for? There should be some set of tags with guidelines 
for their usage on the wiki. I'd propose starting with ConfigDefaultChanged, 
DependencyChanged, and NewFeature.

--John




 
 Michael
 
 -- 
 Rackspace Australia
 
 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev