Bug 1233581

Summary: python-subunit unbundling of iso8601 breaks other packages
Product: [Fedora] Fedora Reporter: Bohuslav "Slavek" Kabrda <bkabrda>
Component: subunitAssignee: Jerry James <loganjerry>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: loganjerry
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: subunit-1.1.0-3.fc23 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-07-14 12:52:37 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1239843    

Description Bohuslav "Slavek" Kabrda 2015-06-19 08:36:44 UTC
The way iso8601 is unbundled from subunit breaks packages depending on "import subunit.iso8601". I think it should be possible to symlink iso8601/iso8601.py as subunit/iso8601.py. This way, you can still keep things unbundled and not break other packages. Thanks.

Comment 1 Jerry James 2015-06-21 03:28:23 UTC
I'm going to argue this point, not because I feel like arguing, but because I'm trying to determine the best solution and I find that talking through the options helps with that process.

In Fedora, we think that if package A bundles package B, that is bad and A ought to be patched to unbundle B.  If package C breaks as a result, because it assumes that A bundles B, doesn't that make C just as bad, and just as in need of patching, as package A?

Also, if we alter the subunit package to include a symlink to a file not owned by the subunit package, that opens the possibility of the link being broken by some future change to the python-iso8601 package, such as it changing from noarch to arch-specific, or dropping python 2 support, or simply renaming its files.

So I propose that whatever packages you have come across that are broken by the unbundling ought to be patched, not subunit.  Counterarguments?

Comment 2 Bohuslav "Slavek" Kabrda 2015-06-22 06:50:28 UTC
(In reply to Jerry James from comment #1)
> I'm going to argue this point, not because I feel like arguing, but because
> I'm trying to determine the best solution and I find that talking through
> the options helps with that process.

Sure, thanks for this.

> In Fedora, we think that if package A bundles package B, that is bad and A
> ought to be patched to unbundle B.  If package C breaks as a result, because
> it assumes that A bundles B, doesn't that make C just as bad, and just as in
> need of patching, as package A?

Sure, we can do this downstream but:
- I think that if possible, we should make the unbundling patches transparent - in the sense that they don't make (possibly all) depending packages adapt.
- We should also think of usecases when developers do "pip install --user package-that-depends-on-A". Since we can't control these, we should (again, if possible) make the unbundling patches transparent.

> Also, if we alter the subunit package to include a symlink to a file not
> owned by the subunit package, that opens the possibility of the link being
> broken by some future change to the python-iso8601 package, such as it
> changing from noarch to arch-specific, or dropping python 2 support, or
> simply renaming its files.

That's true, but let me have a suggestion:
We have a system called Koschei [1] that does "CI" for packages. It basically has a priority queue of packages to continuously rebuild and bumps the priority when a dependency of package is rebuilt. What if you included a test for the iso8601 file in %check section and added your package to Koschei? That way, you should be notified (it emits messages that can be filtered out using FMN) in the event that something changes.
If python-iso8601 drops Python 2 support, then the situation would be the same as it would be now, since you'll still have "Requires: python-iso8601", IIUC.

> So I propose that whatever packages you have come across that are broken by
> the unbundling ought to be patched, not subunit.  Counterarguments?

[1] http://koschei.cloud.fedoraproject.org/

Comment 3 Bohuslav "Slavek" Kabrda 2015-07-13 11:22:17 UTC
Jerry, any further thoughts/concerns? If not, can you get this fixed, please? Thanks a lot!

Comment 4 Jerry James 2015-07-13 14:27:32 UTC
Sorry, Real Life's been keeping me very busy lately.  I am on the road, and will be for the next week.  I can't really build anything without a Fedora box with me.  If you can get a provenpackager to take care of this, please go ahead.  Otherwise, I will deal with it when I get home on July 20th.

Comment 5 Bohuslav "Slavek" Kabrda 2015-07-14 12:52:37 UTC
Fixed in [1], built as subunit-1.1.0-3.fc23.

[1] http://pkgs.fedoraproject.org/cgit/subunit.git/commit/