Ticket #10248: 10248-developers-guide.patch

File 10248-developers-guide.patch, 3.9 KB (added by drkirkby, 12 years ago)

Patch for the Sage Developers Guide, which removes references to most specific platforms, and provides a link to supported platforms.

  • doc/en/developer/inclusion.rst

    # HG changeset patch
    # User David Kirkby <david.kirkby@onetel.net>
    # Date 1289439955 0
    # Node ID 3ea770e09a803a434a9261c8881a9f555960a0e9
    # Parent  f5e6724a274008cd284bbcac19b98a555a3cc667
    #10248 Update the "Inclusion Procedure for New Packages" to take into account supported platforms for Sage.
    
    diff -r f5e6724a2740 -r 3ea770e09a80 doc/en/developer/inclusion.rst
    a b  
    77- **License**. The license must be a GPL version 2+ compatible
    88  license.
    99
    10 - **Build Support**. The code must build on the following supported
    11   architectures and compilers (and intended port targets):
    1210
    13   - Linux: x86, x86_64, Itanium, ppc, ppc64, Sparc (gcc 3.4--4.3)
     11- **Build Support**. The code **must** build on all the `fully supported platforms <http://wiki.sagemath.org/SupportedPlatforms#Fullysupported-SageisALWAYScheckedonALLtheseplatformsBEFOREareleaseismade/>`_.
    1412
    15   - Apple Mac OS X: ppc, ppc64, x86, x86_64 (Xcode 2.5+)
     13  A standard package should also work on all the platforms where Sage is
     14  `expected to work <http://wiki.sagemath.org/SupportedPlatforms#Expectedtowork-Sagewillprobablywork.2Cbutitisnotalwaystested.>`_, but since we don't fully
     15  support these platforms and often lack the resources to test on them, you
     16  are not expected to confirm your packages works on those platforms.
     17  However, if you can, it is better to do so. As noted
     18  `here <http://wiki.sagemath.org/SupportedPlatforms#Expectedtowork-Sagewillprobablywork.2Cbutitisnotalwaystested.>`_, a failure of Sage to work on a
     19  platform where it is expected to work, will be considered a bug.
    1620
    17   - Microsoft Windows: x86, x86_64 MSVC 2005/Intel Fortran (MinGW or
    18     Cygwin support is insufficient!)
    19 
    20   - Solaris 10: Sparc, x86, x86_64 (Sun Forte 12)
     21  There is no need to worry too much about platforms where Sage will
     22  `probably not work <http://wiki.sagemath.org/SupportedPlatforms#Probablywillnotwork-Portingworkmaybeongoing>`_ though if it's clear that there is
     23  significant effort taking place to port Sage to a platform, then you should
     24  aim to ensure your package does not cause unnecessary headaches to those
     25  working on the port.
     26 
     27  If it's clear that a port is stagnent, with nobody working on
     28  it, then you can safely ignore it.
    2129
    2230  Remarks:
    2331
     
    2634    expected to do the heavy lifting and also support those ports
    2735    upstream if there is no Sage developer who is willing to share the
    2836    burden.
     37  - One of the best ways to ensure your code works on multiple platforms
     38    is to only use commands which are defined by `POSIX.1-2008 <http://www.opengroup.org/onlinepubs/9699919799/>`_ and only use options which are defined
     39    in the POSIX standard. For example, do not use the -p option to `uname <http://www.opengroup.org/onlinepubs/9699919799/utilities/uname.html>`_ as
     40    the '-p' option is not defined by the POSIX standard, so is not portable.
     41    If you must use a non-POSIX command, or a option which is not defined
     42    by POSIX, then ensure the code only gets executed on the platform(s)
     43    where that command and/or option will be acceptable.
    2944
    30   Potential future ports include FreeBSD (x86, x86_64), OpenBSD (x86,
    31   x86_64), HPUX (Itanium), AIX (PPC64), and ARM (OS X).
    3245
    3346- **Quality**. The code should be "better" than any other available
    3447  code (that passes the two above criteria), and the authors need to
     
    4558
    4659  - Maintainable
    4760
     61  - Portability
     62
    4863  - Reasonable build time, size, dependencies
    4964
     65
     66- **Previously an optional package**. Usually a new standard package must have spent some time as an optional package. However, sometimes this is not possible, if for example a new library is needed to permit an updated version of a standard package to function.
     67
    5068-  **Refereeing**. The code must be refereed, as discussed in
    5169   :ref:`chapter-trac`.