Update configs if the config is in the branch and changes

Bug #400427 reported by Elliot Murphy
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
PQM
Fix Released
High
Unassigned
Ubuntu One Servers
Invalid
High
Tim Cole
config-manager
New
Undecided
Unassigned

Bug Description

> Ubunet has two sourcedeps under very active development:
> > ubuntuone-client and ubuntuone-storage-protocol. Sometimes, we need to
> > make changes in both of those sourcedeps, and then update some tests in
> > the main ubunet branch and land the whole mess all at once. Currently
> > this is pretty fragile, and results in PQM being broken for some window
> > of time.
> >
> > I've been working on fixing this, as you know in rev 161 of
> > lp:config-manager you merged support for telling config-manager the
> > revision number of a branch that should be pulled into sourcedeps.
> >
> > The next step is to version control the config-manager.txt config file
> > that is used to load all the sourcedeps, and to make pqm use the version
> > of sourcedeps that are specified in the branch under test. This gives us
> > a bit of a chicken-and-egg problem, since before running tests, pqm uses
> > config-manager to get the main trunk branch (and currently all of the
> > sourcedeps) to merge into.

I think the most elegant thing would be to have PQM check out the branch
and then build the contained config; with the config not being self
referential.

This needs a [small] tweak to PQM.
Currently the logic is
if build-a-config:
  read the config
  build it
  find the branch being targeted in the config

I think
if build-a-config:
  try:
     read the config
  except (config not found, branch not in config):
     branch the target
     merge the source
     read the config
     build it ignoring the branch being targeted

would be all thats needed. That would preserve a branch at ., which is
what cm.py uses to update the root (which can contain the config). cm.py
may need a tweak to know to process the config twice if the config
changes when updating a containing branch.

So - two small bugs, I think.

-Rob

Tags: desktop+

Related branches

Changed in ubunet:
milestone: w15-karmic → w17-karmic-alpha4
Revision history for this message
Tim Cole (tcole) wrote :

I've done a branch (versioned-sourcedeps) which splits out sourcedeps branch and revision information into a distinct configuration file.

Now to wire that file up with pqm/config-manager somehow, I guess.

Changed in ubunet:
milestone: w17-karmic-alpha4 → w19-karmic-alpha5
Revision history for this message
Tim Cole (tcole) wrote :

Updating to critical because the version trainwrecks really are stopping work.

Changed in ubunet:
importance: Medium → Critical
assignee: Elliot Murphy (statik) → Tim Cole (tcole)
summary: - make PQM handle a config stored inside trunk.
+ Update configs if the config is in the branch and changes
Changed in pqm:
status: New → Fix Committed
status: Fix Committed → Fix Released
importance: Undecided → High
Elliot Murphy (statik)
visibility: private → public
Revision history for this message
Tim Cole (tcole) wrote :

Next step is to get the new version of PQM available for ubunet PQM. This is RT 35521.

Changed in ubuntuone-servers:
milestone: w19-karmic-alpha5 → w21-karmic-alpha6
tags: added: ubuntuone-karmic
Changed in ubuntuone-servers:
status: Triaged → In Progress
Revision history for this message
Joshua Hoover (joshuahoover) wrote :

Discussed during bug triage call and determined this is not critical and not necessarily needed for Karmic release.

Changed in ubuntuone-servers:
importance: Critical → High
tags: removed: ubuntuone-karmic
Revision history for this message
Tim Cole (tcole) wrote :

It looks like the remaining work to be done is in config-manager -- with bzr, update (versus build) is apparently only capable of fast-forwarding the tree. We unfortunately need more than that.

Changed in ubuntuone-servers:
status: In Progress → Confirmed
status: Confirmed → Invalid
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.