Le mardi 30 septembre 2008 à 16:36 +0100, Chris Withers a écrit :
No, the problem we have today is that some developers are providing modules without API stability, which means you cannot simply depend on a module, you need a specific version.
This problem is never going away, it's the nature of software.
It doesn’t have to go away per se, but we need proper ways to deal with incompatible changes in the interfaces.
Again, when a C library changes its ABI, we do not allow it to keep the same name. It's as simple as that.
That's insane, and I bet without trying to hard, I could find examples of violation of this supposed practice.
Of course, Python developers don’t have the monopoly on misunderstanding maintainability requirements. It evens happens more often in C, where the ABI can change without any incompatibility in the API. When this happens without a soname change, we either change the soname ourselves (diverging from upstream) or change the package name, making it impossible to install two conflicting versions at once. In Python libraries, this is not possible without changing the code, since the file name and the module name are the same. If a Python module changes its API incompatibly, we are forced to update all reverse dependencies and add versioned conflicts, without being able to ensure none is forgotten, and without enforcing the change for third-party packages. [snip]
Besides, accurately specified dependency information, including versions, within a package should suffice.
It will suffice, but we will not be able to manage it in distributions if you allow too many weird things to be specified in these dependencies. Cheers, -- .''`. : :' : We are debian.org. Lower your prices, surrender your code. `. `' We will add your hardware and software distinctiveness to `- our own. Resistance is futile.