On Thursday, August 18, 2016 at 7:37:28 AM UTC+1, Jeroen Demeyer wrote: > > On 2016-08-18 00:02, Simon King wrote: > > Slightly elaborating on my suggestion: Split the code from the old-style > > p_group_cohomology-2.1.6.spkg into four parts, namely > > 1. an optional package "meataxe", which provides a C library and some > > executables and which is *not* a Python package. It is useful for > > Sage's matrix arithmetic and thus is wrapped by OptionalExtension > > in the Sage library > > Obviously, it would be better if you could just use the "official" > meataxe package, not Simon King's personal copy. But I understand that > this might not be possible. > > > 2. an optional package "modular_resolution", which depends on meataxe, > > provides a C library and some executables, which is *not* a Python > > package and which is of no use without 3. and 4. > > Right. So meataxe and modular_resolution will then be "autotools" > packages, I suppose? > > > 3. Gap and Singular library functions, that certainly should be > installed > > into SAGE_ROOT/src/ext/gap resp. .../singular (should it not?), and > a > > data-base of cohomology rings > > Again, packages should not install stuff in the Sage sources. Especially > because your package seems useful even without Sage. > > Does a concept of "GAP packages" and "Singular packages" exist? If so, > you should follow recommendations for those kinds of packages to install > your GAP/Singular code. >
With GAP it is problematic, as updating GAP wipes out installed GAP packages. Also there is a lot of boilerplate to produce for a GAP package, and I would not really recommend this, unless it's a separate piece useful with GAP alone. An alternative is to use libGAP factory function facility. This allows you to embed GAP code into py(x) files. E.g. sage: t=libgap.function_factory("""function(m) ....: local a,b; ....: a:=m^2; ....: return a-1; ....: end""") sage: t(5) 24 With Singular, you might look at Normaliz package, that installs a Singular "library", and do what they do. > > If you really have no idea what to do, install the code in > local/share/gap/modular_resolution and > local/share/singular/modular_resolution > > > 4. Cython/Python code that depends on 1., 2. and 3., and shall either > > be OptionalExtension in the Sage library (but people seem to not > > like it) or a pip-installable Python package p_group_cohomology, > > > where 3. should be provided as data files either by 2. or by 4. > > I would say: provide it with 2. You could also consider merging 2., 3. > and 4. in one package, since they look closely related (one library + > various interfaces). > > Good. > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.