atom feed48 messages in net.launchpad.lists.openstackRe: [Openstack] best practices for me...
FromSent OnAttachments
Andrew BogottJul 2, 2012 12:16 pm 
Russell BryantJul 2, 2012 12:26 pm 
Joshua HarlowJul 2, 2012 2:41 pm 
Joshua HarlowJul 2, 2012 2:54 pm 
Gabriel HurleyJul 2, 2012 3:18 pm 
John PostlethwaitJul 2, 2012 4:42 pm 
Christopher B FerrisJul 2, 2012 5:41 pm 
Thierry CarrezJul 3, 2012 2:31 am 
Thierry CarrezJul 3, 2012 2:34 am 
Doug HellmannJul 3, 2012 5:37 am 
James E. BlairJul 3, 2012 6:55 am 
Joshua HarlowJul 3, 2012 10:46 am 
Dan PrinceJul 3, 2012 10:59 am 
Gabriel HurleyJul 3, 2012 11:59 am 
Andrew BogottJul 3, 2012 12:47 pm 
Joshua HarlowJul 3, 2012 2:09 pm 
James E. BlairJul 3, 2012 2:54 pm 
Eric WindischJul 3, 2012 3:47 pm 
Andrew BogottJul 3, 2012 3:54 pm 
Gabriel HurleyJul 3, 2012 4:53 pm 
Timothy DalyJul 3, 2012 5:27 pm 
Monty TaylorJul 3, 2012 6:17 pm 
Thierry CarrezJul 4, 2012 2:56 am 
Gabriel HurleyJul 4, 2012 3:17 pm 
Eric WindischJul 4, 2012 4:11 pm 
Christopher B FerrisJul 5, 2012 4:29 am 
Sean DagueJul 5, 2012 6:55 am 
Doug HellmannJul 5, 2012 7:16 am 
Joshua HarlowJul 5, 2012 10:21 am 
Mark McLoughlinJul 18, 2012 2:01 am 
Mark McLoughlinJul 18, 2012 2:13 am 
Mark McLoughlinJul 18, 2012 2:16 am 
Mark McLoughlinJul 18, 2012 2:23 am 
Thierry CarrezJul 18, 2012 4:00 pm 
Doug HellmannJul 23, 2012 8:50 am 
Thierry CarrezJul 23, 2012 8:59 am 
Doug HellmannJul 23, 2012 9:04 am 
Eric WindischAug 2, 2012 1:05 pm 
Christopher B FerrisAug 2, 2012 2:08 pm 
Vishvananda IshayaAug 2, 2012 3:47 pm 
Jay PipesAug 2, 2012 5:18 pm 
Zhongyue LuoAug 2, 2012 5:24 pm 
Eric WindischAug 2, 2012 5:51 pm 
Mark McLoughlinAug 2, 2012 10:26 pm 
Thierry CarrezAug 3, 2012 2:49 am 
Thierry CarrezAug 3, 2012 4:02 am 
Jay PipesAug 3, 2012 9:25 am 
Eric WindischAug 3, 2012 9:34 am 
Subject:Re: [Openstack] best practices for merging common into specific projects
From:Andrew Bogott (abog@wikimedia.org)
Date:Jul 3, 2012 3:54:06 pm
List:net.launchpad.lists.openstack

On 7/3/12 5:47 PM, Eric Windisch wrote:

git submodules don't have to be linked to the head of a branch. Instead of double-commiting (for every commit), we can do a single commit in each project to change the git reference of the submodule. This would not be too far from the existing behavior, except that it would minimize the double commits.

Oh, I guess I left out an important part of my vision, which is that there would be a commit hook in common which moves the submodule reference in the parent projects anytime a patch is merged in common. So, in short: once a patch passed review for inclusion in common, that patch would automatically go live in all other project heads simultaneously.

On Tuesday, July 3, 2012 at 15:47 PM, Andrew Bogott wrote:

On 7/3/12 1:59 PM, Gabriel Hurley wrote:

The notion that copying code is any protection against APIs that may change is a red herring. It's the exact same effect as pegging a version of a dependency (whether it's a commit hash or a real version number), except now you have code duplication. An unstable upgrade path is an unstable upgrade path, and copying the code into the project doesn't alleviate the pain for the project if the upstream library decides to change its APIs.

Also, we're really calling something used by more or less all the core projects "incubated"? ;-) Seems like it's past the proof-of-concept phase now, at least for many parts of common. Questions of API stability are an issue unto themselves.

Anyhow, I'm +1 on turning it into a real library of its own, as a couple people suggested already.

- Gabriel

I feel like I should speak up since I started this fight in the first place :)

Like most people in this thread, I too long for an end to the weird double-commit process that we're using now. So I'm happy to set aside my original Best Practices proposal until there's some consensus regarding how much longer we're going to use that process. Presumably opinions about how to handle merge-from-common commits will vary in the meantime, but that's something we can live with.

In terms of promoting common into a real project, though, I want to raise another option that's guaranteed to be unpopular: We make openstack-common a git-submodule that is automatically checked out within the directory tree of each other project. Then each commit to common would need to be gated by the full set of tests on every project that includes common.

I haven't thought deeply about the pros and cons of code submodule vs. python project, but I want to bring up the option because it's the system that I'm the most familiar with, and one that's been discussed a bit off and on.