Need finer-grained control over PPA dependencies

Bug #1646596 reported by Robert Bruce Park
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Bileto
Triaged
Medium
Simon Quigley
Canonical System Image
New
High
Unassigned

Bug Description

Currently bileto automatically forces PPA dependencies based on it's own criteria (it can add or remove overlay PPA depending on whether the ticket is an SRU or not). This forceful behaviour is unfortunately required due to the impossibility of creating PPAs atomically. It's very possible for bileto to crash during PPA creation, leaving PPA created but with not all properties set correctly. Due to that, every bileto job, including the status job that runs every 20 minutes, will inspect the PPA properties and correct any problems that it finds.

This makes it impossible to set PPA dependencies manually in exceptional cases, as bileto will notice the dependencies are "wrong" and "fix" them.

Two use cases that have caused complaints are:

1. One ticket depends on changes in another. Merging the tickets isn't feasible because they're both already large, but packages in one ticket need to be built against libs in another ticket for simultaneous development.

2. Trying to cherry-pick fixes into a snapshot of the overlay PPA instead of using the overlay PPA directly.

So bileto should grow some ability to manually override what it considers to be the "correct" PPA dependencies, allowing arbitrary* PPAs to be specified.

* (Not sure if this should be restricted to ~ci-train-ppa-service team, or allow any PPA at all)

description: updated
Revision history for this message
Łukasz Zemczak (sil2100) wrote :

This would be a very highly welcome change in Bileto as there just needs to be flexibility on setting dependencies. Right now we're wrongly assuming that the overlay is what we want, but there are even cases where we don't want to use the overlay and only use the archive, or like in the snapshot case. Not to mention future uses of Bileto by different teams like cloud etc - those wouldn't want to use the overlay but maybe some other PPA instead.

Revision history for this message
Michael Terry (mterry) wrote :

Adding a task for canonical-devices-system-image for tracking purposes. Having this feature would be the long-term fix for our problem with unity8-session snaps being built with the proposed pocket.

In the meantime, we do have workarounds if needed -- either avoid using the hotfixes silo for building. Or source copy the the packages in that silo to another PPA and then build from there, avoiding bileto.

Changed in canonical-devices-system-image:
milestone: none → p2
importance: Undecided → High
Revision history for this message
dobey (dobey) wrote :

I think we might want to enforce that silos with development series targets (ie zesty) must be built against -proposed when this feature is implemented, to help guard against people building packages without, and then landing them. Compiler and library updates there tend to be more severe, and if not careful, landing things without building against -proposed can break migrations or end up in release earlier than they should while dependencies are sitting in -proposed.

Since there are many variables that determine when things get through -proposed, and not all packages have autopkgtests, or sufficient ones when they do, I'd be cautious to rely solely on proposed migration blocking things in the situation where one builds a silo without -proposed enabled.

Changed in bileto:
assignee: Robert Bruce Park (robru) → nobody
Simon Quigley (tsimonq2)
Changed in bileto:
assignee: nobody → Simon Quigley (tsimonq2)
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.