zc.recipe.cmmi destroys shared builds inadvertently
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Buildout |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
The location where a package is installed by the cmmi routine is considered a file-system resource of the buildout part in question, i.e. the recipe's install method returns the path to the installation. This happens even if the build is shared.
However, if two projects share a build and one of them decides to no longer need it (by turning shared builds off or removing the cmmi part altogether), buildout removes the shared build because it is considered to belong to the part, without knowing that the second project still needs the shared build.
A solution would need to do at least the following:
- stop returning the path of the shared installation from the install method
- still return the path to the installation if the build is *not* shared, so buildout can clean up parts that are self-contained
- provide some mechanism for the recipe itself to detect when a shared build has been removed and needs to be rebuilt since buildout can no longer detect such a condition
Changed in zc.buildout: | |
status: | New → Fix Committed |
status: | Fix Committed → Fix Released |