Skip to content

Commit

Permalink
Revert "Update surmisebandsdk.md"
Browse files Browse the repository at this point in the history
This reverts commit 961ca6f.
  • Loading branch information
wildsm committed Sep 16, 2024
1 parent 961ca6f commit 3b35e17
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions surmisebandsdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@

| # | Policy |Support| Notes |
|---|-----------------------|-------|-------------------------|
| 1. | Support BAND community GNU Autoconf, CMake, or other build options. |Full| surmise is a Python package and provides a setup.py file for installation. This is compatible with Python's built-in installation feature (``python setup.py install``) and with the pip installer. GNU Autoconf or CMake are unsuitable for a Python package. |
| 2. | Have a README file in the top directory that states a specific set of testing procedures for a user to verify the software was installed and run correctly. | Full| README explains full test procedure. |
| 3. | Provide a documented, reliable way to contact the development team. |Full| The surmise team can be contacted through the public [issues page on GitHub](https://github.com/bandframework/surmise/issues) or via an e-mail to [the surmise team](SUPPORT.rst). |
| 4. | Come with an open-source license |Full| surmise uses the MIT license. [M4 details](#m4-details) |
| 5. | Provide a runtime API to return the current version number of the software |Full| The version can be returned within Python via: `surmise.__version__`. |
| 6. | Provide a BAND team-accessible repository. |Full| https://github.com/bandframework/surmise |
| 7. | Must allow installing, building, and linking against an outside copy of all imported software that is externally developed and maintained. |Full| surmise does not contain any other package's source code within. Note that Python packages are imported using the conventional `sys.path` system. Alternative instances of a package can be used, for example, by including them through an appropriate definition of the PYTHONPATH environment variable. |
| 8. | Have no hardwired print or IO statements that cannot be turned off. |Full| There are no mandatory print statements: any print statements for code feedback in a method can be suppressed via `verbose` argument. |
| 1. | Support BAND community GNU Autoconf, CMake, or other build options |Full| surmise is a Python package and provides a setup.py file for installation. This is compatible with Python's built-in installation feature (``python setup.py install``) and with the pip installer. GNU Autoconf or CMake are unsuitable for a Python package. |
| 2. | Have a README file in the top directory that states a specific set of testing procedures for a user to verify the software was installed and run correctly. | Full| README explains full test procedure.|
| 3. | Provide a documented, reliable way to contact the development team |Full| The surmise team can be contacted through the public [issues page on GitHub](https://github.com/bandframework/surmise/issues) or via an e-mail to [the surmise team](SUPPORT.rst).|
| 4. | Come with an open-source license |Full| surmise uses the MIT license. [M4 details](#m4-details)|
| 5. | Provide a runtime API to return the current version number of the software |Full| The version can be returned within Python via: `surmise.__version__`.|
| 6. | Provide a BAND team-accessible repository |Full| https://github.com/bandframework/surmise |
| 7. | Must allow installing, building, and linking against an outside copy of all imported software that is externally developed and maintained |Full| surmise does not contain any other package's source code within. Note that Python packages are imported using the conventional `sys.path` system. Alternative instances of a package can be used, for example, by including them through an appropriate definition of the PYTHONPATH environment variable.|
| 8. | Have no hardwired print or IO statements that cannot be turned off |Full| There are no mandatory print statements: any print statements for code feedback in a method can be suppressed via `verbose` argument. |

M4 details <a id="m4-details"></a>: This was chosen based on the MIT license being the default license for BAND.

Expand All @@ -48,16 +48,16 @@ M4 details <a id="m4-details"></a>: This was chosen based on the MIT license bei
|**R1.**| Have a public repository. |Full| https://github.com/bandframework/surmise is publicly available. |
|**R2.**| Free all system resources acquired as soon as they are no longer needed. |Full| Python has built-in garbage collection that frees memory when it becomes unreferenced. |
|**R3.**| Provide a mechanism to export ordered list of library dependencies. |Full| The dependencies for surmise are given in `setup.py` and when pip install or pip setup.py egg_info are run, a file is created `surmise.egg-info/requires.txt` containing the list of required and optional dependencies. If installing through pip, these will automatically be installed if they do not exist. `pip install surmise` installs required dependencies. |
|**R4.**| Document versions of packages that it works with or depends upon, preferably in machine-readable form. |Full| The detailed installation instructions come with a full list of tested external dependencies (available on github `README.rst`). |
|**R4.**| Document versions of packages that it works with or depends upon, preferably in machine-readable form. |Full| The detailed installation instructions come with a full list of tested external dependencies (available on github `README.rst`). |
|**R5.**| Have README, SUPPORT, LICENSE, and CHANGELOG files in top directory. |Full| All files are included in the repository. |
|**R6.**| Have sufficient documentation to support use and further development. |Full| surmise provides documentation through a *Sphinx* framework. It is published on [readthedocs](https://surmise.readthedocs.io), which includes a user guide covering quick-start, installation, and many usage details. There are several tutorials and examples. The developer guide contains information on internal modules. |
|**R7.**| Be buildable using 64-bit pointers; 32-bit is optional. |Full| There is no explicit use of pointers in surmise, as Python handles pointers internally and depends on the install of Python, which will generally be 64-bit on supported systems. |
|**R8.**| Do not assume a full MPI communicator; allow for user-provided MPI communicator. |N/a| None. |
|**R9.**| Use a limited and well-defined name space (e.g., symbol, macro, library, include) |Full| surmise uses `surmise` namespace. Modules have `surmise` prefix, and in `surmise` folder. |
|**R10.**| Give best effort at portability to key architectures. |Full| surmise is being regularly tested on Mac OS, Linux, and MS Windows. The current set of automatically tested, common architectures is viewable [here](https://github.com/bandframework/surmise/blob/main/.github/workflows/python-package.yml). |
|**R11.**| Install headers and libraries under `<prefix>/include` and `<prefix>/lib`, respectively. |Full| The standard Python installation is used for Python dependencies. This installs external Python packages under `<install-prefix>/lib/python<X.Y>/site-packages/`. |
|**R12.**| All BAND compatibility changes should be sustainable. |Full| The BAND-compatible package is in the standard release path. All the changes here should be sustainable. |
|**R13.**| Respect system resources and settings made by other previously called packages. |Full| surmise does not modify system resources or settings. |
|**R14.**| Provide a comprehensive test suite for correctness of installation verification. |Full| surmise contains a comprehensive set of unit tests that can be run, individually or all at once, via pytest with a high coverage. Running the provided ``.\run_tests.sh`` performs comprehensive testing. [R14 details](#r14-details) |
|**R7.**| Be buildable using 64-bit pointers; 32-bit is optional |Full| There is no explicit use of pointers in surmise, as Python handles pointers internally and depends on the install of Python, which will generally be 64-bit on supported systems.|
|**R8.**| Do not assume a full MPI communicator; allow for user-provided MPI communicator |N/a| None. |
|**R9.**| Use a limited and well-defined name space (e.g., symbol, macro, library, include) |Full| surmise uses `surmise` namespace. Modules have `surmise` prefix, and in `surmise` folder.|
|**R10.**| Give best effort at portability to key architectures |Full| surmise is being regularly tested on Mac OS, Linux, and MS Windows. The current set of automatically tested, common architectures is viewable [here](https://github.com/bandframework/surmise/blob/main/.github/workflows/python-package.yml) |
|**R11.**| Install headers and libraries under `<prefix>/include` and `<prefix>/lib`, respectively |Full| The standard Python installation is used for Python dependencies. This installs external Python packages under `<install-prefix>/lib/python<X.Y>/site-packages/`.|
|**R12.**| All BAND compatibility changes should be sustainable |Full| The BAND-compatible package is in the standard release path. All the changes here should be sustainable.|
|**R13.**| Respect system resources and settings made by other previously called packages |Full| surmise does not modify system resources or settings.|
|**R14.**| Provide a comprehensive test suite for correctness of installation verification |Full| surmise contains a comprehensive set of unit tests that can be run, individually or all at once, via pytest with a high coverage. Running the provided ``.\run_tests.sh`` performs comprehensive testing. [R14 details](#r14-details)|

R14 details <a id="r14-details"></a>: See the `README.rst` file in the `tests` directory.

0 comments on commit 3b35e17

Please sign in to comment.