JSAGE

Guidelines for Publishing in JSAGE

  1. License: All software that is published in JSAGE must be licensed under a "GPL v2 or later"-compatible license.

  2. Copyright: Authors are encouraged to keep the copyright on their work.

  3. Languages: Software published in JSAGE may be written using any of the following programming languages:
    • Python (and/or Cython)
    • C, C++
    • Common Lisp (clisp)
    • Fortran 95
    • GP/PARI
    • Singular
    • GAP
    • Maxima


  4. Library Dependencies: Software included in SAGE must depend only on the following libraries:
    • Python libraries: matplotlib, networkx, numpy, pexpect, pycrypto, pyopensll, pysqlite, sage, twisted, weave, and zodb.
    • C/C++ libraries: bzip2, cddlib, givaro, gmp, gsl, libgd, linbox, mpfi, mpfr, ntl, pari, openssl, and sqlite.
    • Dependencies on other libraries will be considered in exceptional cases.


  5. Documentation:
    • Docstrings should be formatted as explained in the SAGE programming guide.
    • Every function that could be used interactively must contain at least one example illustrating its usage, and preferably more. These should be in a section of the docstrings labeled EXAMPLES.
    • Additional testing code may also be included in a section labeled TESTS.
    • When applicable, a few paragraphs explaining the idea and background of a module should be included.