module dependencies issues

2015-07-09 Thread Cyril Scetbon
Hi, I use pip to install modules and setuptools to install dependencies, and generate a console_script using the entry_point parameter of setup. Here is the issue : my current sources depend on modules, let's say A=1.0, B=1.0, C=2.0. And C depends on B=1.1 I have no problem with using pip to

Re: module dependencies issues

2015-07-09 Thread Chris Angelico
On Fri, Jul 10, 2015 at 6:36 AM, Marko Rauhamaa ma...@pacujo.net wrote: Chris Angelico ros...@gmail.com: How do you expect the end result to work? Will it be that your code imports one version of a module, but other code imports another? You would have to rename one of them or something. At

Re: module dependencies issues

2015-07-09 Thread Marko Rauhamaa
Chris Angelico ros...@gmail.com: In general, I would expect that B 1.1 is backward-compatible with B 1.0, unless otherwise stated. Why must it be declared in any way other than the version number? To make it explicit. The generic component system shouldn't impose (m)any assumptions on version

Re: module dependencies issues

2015-07-09 Thread Chris Angelico
On Fri, Jul 10, 2015 at 7:11 AM, Marko Rauhamaa ma...@pacujo.net wrote: Chris Angelico ros...@gmail.com: In general, I would expect that B 1.1 is backward-compatible with B 1.0, unless otherwise stated. Why must it be declared in any way other than the version number? To make it explicit.

Re: module dependencies issues

2015-07-09 Thread Marko Rauhamaa
Chris Angelico ros...@gmail.com: How do you expect the end result to work? Will it be that your code imports one version of a module, but other code imports another? You would have to rename one of them or something. At work, we have created an analogous component system that has solved this

Re: module dependencies issues

2015-07-09 Thread Chris Angelico
On Fri, Jul 10, 2015 at 5:08 AM, Cyril Scetbon cyril.scet...@free.fr wrote: Forcing my-module to use B=1.1 fixes the issue. However it's just a sample and my code is using a lot of modules that use other shared modules too. Is there a way to let dependencies use their own version of the

Re: module dependencies issues

2015-07-09 Thread Cyril Scetbon
It's just a sample. I'd like to get a general answer. So think about the worst case. On Jul 9, 2015, at 21:50, Chris Angelico ros...@gmail.com wrote: On Fri, Jul 10, 2015 at 5:08 AM, Cyril Scetbon cyril.scet...@free.fr wrote: Forcing my-module to use B=1.1 fixes the issue. However it's just

Re: module dependencies issues

2015-07-09 Thread Chris Angelico
On Fri, Jul 10, 2015 at 5:55 AM, Cyril Scetbon cyril.scet...@free.fr wrote: It's just a sample. I'd like to get a general answer. So think about the worst case. (Please don't top-post on this list.) The worst case is virtually impossible to handle. Somewhere along the way, you need to say

Re: module dependencies issues

2015-07-09 Thread Marko Rauhamaa
Chris Angelico ros...@gmail.com: On Fri, Jul 10, 2015 at 7:11 AM, Marko Rauhamaa ma...@pacujo.net wrote: Whoever creates B-1.1 ought to make it backward-compatible, but he should also say so. The majority of developers are careless about backward-compatibility; having the component system make

Re: module dependencies issues

2015-07-09 Thread Chris Angelico
On Fri, Jul 10, 2015 at 7:33 AM, Marko Rauhamaa ma...@pacujo.net wrote: And just how compatible does it have to be to get a tick? It must be a safe binary replacement of the earlier version. Bug fixes and new features are ok, but none of the old functionality can be obsoleted. Your

Re: module dependencies issues

2015-07-09 Thread Marko Rauhamaa
Chris Angelico ros...@gmail.com: Your descriptions conflict. A safe binary replacement usually cannot even add new features, in case this breaks something. Linus Torvalds is adamant about maintaining ABI compatibility across Linux versions. That hasn't prevented him from accepting numerous new

Re: module dependencies issues

2015-07-09 Thread Mark Lawrence
On 10/07/2015 01:04, Marko Rauhamaa wrote: Chris Angelico ros...@gmail.com: Your descriptions conflict. A safe binary replacement usually cannot even add new features, in case this breaks something. New functions in C libraries do not cause runtime breakage. It's good to know that there's