On Thu, 20 Dec 2012 13:15:38 +0100
Charles Bouillaguet <charles.bouillag...@gmail.com> wrote:

> On 12/20/2012 01:02 PM, Burcin Erocal wrote:
> >> What should I do ? Unconditionally include the cython interface to
> >> the sage library, and mark all doctests as optional ?
> >
> > Can you compile the Cython interface without the header files
> > installed by your package?
> 
> No
> 
> > I assume the Cython interface needs to be changed whenever you
> > update your library.
> 
> Yes, but changing spkg versions requires a ticket, on which the sage 
> library can also be changed.
> 
> > Which Sage version is used with an experimental package
> > cannot be controlled, since Sage just grabs the latest version
> > available at install time. Hence, if you keep the interface
> > separate from the spkg, you will run into many incompatibility
> > issues.
> 
> OK. But then how do the other spkgs do ?
> 
> > Wouldn't it be easier to include the Cython interface in the
> > package? AFAIK, Cython's build system improved significantly and
> > there is no reason to use Sage's build system for a Cython module.
> 
> Is it possible to patch the sage library when installing an spkg ?
> What if the patch fails because the sage library was updated since
> the last spkg updatye ??? This seems like asking for trouble, and
> incompatibilities.

I am not suggesting to patch the Sage library when installing your
package. You can put the interface in a separate Cython module which is
built by the usual Python/Cython setup.py magic and installed in the
system python module directory. Then people will be able to import your
module from the Sage command line as usual.

> I still don't understand how it is currently done.

I don't think there is a well established procedure for this. There is
code in the Sage library that depends on optional packages. This works
just like you described. modules_list.py already includes some examples.
In this case, all doctests will need to be marked optional.


Given the fact that there is no way to guarantee that the wrapper
code in the Sage library corresponds to the library version
available in the package, I don't see how the current practice is
better than bundling the wrappers in the package.

I can see the benefits of having the wrappers "included in Sage" from a
reputation/review point of view. However, this is not on par with the
rest of the Sage library code, since this code is hidden behind
optional tags and not tested by Sage users or developers regularly.

#13540 improves the situation somewhat. But the way optional
packages/modules are handled still leaves something to be desired.
Especially if we want to promote creating separate specialized packages
as a way of distributing research code:

https://groups.google.com/d/topic/sage-devel/fcxNrQqVSz0/discussion


Cheers,
Burcin

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To post to this group, send email to sage-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-devel+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.


Reply via email to