mark florisson, 27.08.2012 13:52:
> On 27 August 2012 12:40, Stefan Behnel <stefan...@behnel.de> wrote:
>> mark florisson, 27.08.2012 13:13:
>>> On 27 August 2012 12:06, Stefan Behnel wrote:
>>>> My experience with lxml tells me that it's often better to keep things
>>>> separate but integrated, instead of shipping them in a big box. As long as
>>>> it doesn't hurt too much to have separate tools, we should keep it that
>>>> way. Those who prefer everything in a big box can use distributions like
>>>> Sage, or use apt.
>>>>
>>>> As for versioning, you can set dependency version ranges in distutils (and
>>>> friends) which are honoured by install tools like pip. That keeps the
>>>> installation fully automatic (and definitely not "a lot more pain"). That
>>>> being said, the best way to handle this is to build a well defined
>>>> interface between the two components and to keep that alive for a while.
>>>>
>>>> For Jenkins, we'd set up separate jobs that build the dependencies and then
>>>> install them from there before running the integration tests. We could even
>>>> have dedicated integration test jobs that only run the tests that involve
>>>> the dependency (and potentially more than one version of the dependency).
>>>
>>> Oh great, that works for me as well. I thought Cython's take was to
>>> avoid dependencies by shipping everything (like Plex and Tempita).
>>
>> Those are core dependencies. Plex is actually modified IIRC, and even
>> compiled. Tempita was specifically chosen because it's so small and can be
>> shipped.
>>
>>
>>> I'll make minivect distributable, then.
>>
>> I think the difference here is that it's an optional dependency. It makes
>> sense independently as well when used with other tools. And from my distant
>> view, it seems like it could deserve its own project.
>>
>> The code tree looks a bit disorganised currently, with a lot of modules at
>> the top level. I guess that's what you meant when you said "make it
>> distributable".
> 
> Indeed, the idea was that it would be included verbatim in
> projects/used as a submodule, since it'd be small enough to include
> and would always be stable and integrated into the main project. That
> basically means the entire thing would be the package. It'd be kind of
> nice to allow it both ways, i.e. install as a package, and make it
> convenient as a submodule. I think that can be managed.

I'd just move it into a package anyway and let projects that want to use it
as a git submodule move it to an appropriate place during installation by
appropriately configuring their project specific distutils setup.


> E.g. I can see situations where you need to fix a little bug, or make
> a small change where you don't really want (to wait for) a new release
> of minivect, but you do want that exact commit for the release of the
> main project.

Doesn't that apply to more or less all code out there?

Stefan

_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to