diff --git a/docs/source/about.rst b/docs/source/about.rst index 1b61df8d..eb21f732 100644 --- a/docs/source/about.rst +++ b/docs/source/about.rst @@ -1,7 +1,11 @@ +.. -*- coding: utf-8 -*- + ************* About MDAKits ************* +.. _what-is-an-MDAKit: + What is an MDAKit? ================== @@ -10,11 +14,24 @@ components from the `MDAnalysis library`_ with the aim of solving specific scientific problems or in some form enhance the functionality of the MDAnalysis core library. An MDAKit can be written by anyone and hosted anywhere. +.. _requirements: + At the discretion of their authors, MDAKits can be **registered** in this -MDAKit registry. To do so, MDAKits have to meet a minimum set of requirements -including; being open-source licensed, hosted in a version control system, -have a clear designation of code authors/maintainers, have some kind of documentation -on their use, and have a minimal set of tests in place. +MDAKit registry. To do so, a MDAKit has to meet a **minimum set of +requirements**: + +#. The code in the package uses the MDAnalysis library +#. The code is open source and published under an `OSI approved license `_ +#. The code is versioned and provided in an accessible version-controlled repository (GitHub, GitLab, Bitbucket, etc.) +#. Code authors and maintainers are clearly designated +#. Minimal documentation is provided (what your code does, how to install it, + and how to use it) +#. At least minimal regression tests and continuous integration are present + +It is also highly encouraged that the MDAKit also satisfies: + +#. The code is installable as a standard package +#. Information on bug reporting, user discussions, and community guidelines is made available Registered MDAKits are then `listed here`_ with the intention of providing a centralised place where the community can find out more about them. Where possible, the MDAKits are @@ -22,6 +39,10 @@ also *continually tested* against the *latest* and *development* versions of MDA This ensures that users and developers have an up-to-date view of the code health of an MDAKit. +The specifications are written out in detail in :ref:`the MDAKits +paper`. + + Why? ==== @@ -57,12 +78,21 @@ useful to a broader community. :width: 600 :alt: MDAKits, an ecosystem of downstream packages, may be more sustainable +.. _mdakits-paper: Read our SciPy proceedings paper! ================================= To learn more about MDAKits and our vision for more sustainable community -developed molecular simulation tools, please see our `SciPy proceedings paper`_. +developed molecular simulation tools, please see our `SciPy +proceedings paper`_: + + Irfan Alibay, Lily Wang, Fiona Naughton, Ian Kenney, Jonathan Barnoud, + Richard J Gowers, and Oliver Beckstein. *MDAKits: A framework for + FAIR-compliant molecular simulation analysis* . *In* Meghann Agarwal, Chris + Calloway, and Dillon Niederhut, editors, Proceedings of the 22nd Python in + Science Conference (SCIPY 2023), pages 76–84, Austin, TX, 2023. doi: + `10.25080/gerudo-f2bc6f59-00a`_. .. _`MDAnalysis library`: @@ -76,3 +106,6 @@ developed molecular simulation tools, please see our `SciPy proceedings paper`_. .. _`FAIR`: https://doi.org/10.15497/RDA00068 + +.. _`10.25080/gerudo-f2bc6f59-00a`: + https://doi.org/10.25080/gerudo-f2bc6f59-00a diff --git a/docs/source/add.rst b/docs/source/add.rst index 997d8690..27c6702f 100644 --- a/docs/source/add.rst +++ b/docs/source/add.rst @@ -1,3 +1,5 @@ +.. _add-mdakit: + ******************************** Adding an MDAKit to the Registry ******************************** @@ -5,92 +7,262 @@ Adding an MDAKit to the Registry Do you have an MDAKit? Consider adding it to the `MDAKit registry`_! -.. note:: - The `MDAKit registry`_ is still in its infancy, we expect that the - way in which MDAKits are added, and the type of information required, - may change over time. Please reach out via the `issue tracker`_ if you - have any questions. - - -Adding an MDAKit is a simple process, and follows the following steps: - * Create a fork the MDAKit repository https://github.com/MDAnalysis/mdakits - * Make a new branch - * Add a new folder under ``mdakits`` with the name of your MDAKit - * Add a metadata YAML file with your MDAKit's details (a template can be found under ``mdakits/template``) - - -An example ``metadata.yaml`` file -================================= - -The following is an example metadata file for propkatraj:: - - # Required entries - ## str: name of the project (the respository name) - project_name: propkatraj - ## List(str): a list of authors (or a link to the authors file) - authors: - - https://github.com/Becksteinlab/propkatraj/blob/main/AUTHORS - ## List(str): a list of maintainers - maintainers: - - ianmkenney - - IAlibay - - orbeckst - ## str: a free form description of the mdakit - description: - pKa estimates for proteins using an ensemble approach - ## List(str): a list of keywords which describe the mdakit - keywords: - - pKa - - protein - ## str: the license the mdakit falls under - license: GPL-2.0-or-later - ## str: the link to the project's code - project_home: https://github.com/Becksteinlab/propkatraj/ - ## str: the link to the project's documentation - documentation_home: https://becksteinlab.github.io/propkatraj/ - ## str: the type of documentation available [UserGuide, API, README] - documentation_type: UserGuide + API - - # Optional entries - ## List(str): a list of commands to use when installing the latest - ## release of the code. Note: only one installation method can currently - ## be defined. We suggest using conda/mamba where possible. - install: - - pip install propkatraj - ## List(str): a list of commands to use when installing the mdakit from its - ## source code. - src_install: - - pip install git+https://github.com/Becksteinlab/propkatraj@main - ## str: the package name used to import the mdakit - import_name: propkatraj - ## str: a specification for the range of Python versions supported by this MDAKit - python_requires: ">=3.8" - ## str: a specification for the range of MDAnalysis versions supported by this MDAKit - mdanalysis_requires: ">=2.0.0" - ## List(str): a list of commands to use when attempting to run the MDAKit's tests - run_tests: - - pytest --pyargs propkatraj.tests - ## List(str): a list of commands to use to install the necessary dependencies required - ## to run the MDAKit's tests - test_dependencies: - - mamba install pytest MDAnalysisTests - ## str: the organisation name the MDAKit falls under - project_org: Becksteinlab - ## str: the development status of the MDAKit - development_status: Mature - ## List(str) a list of publications to cite when using the MDAKit - publications: - - https://zenodo.org/record/7647010 - - https://doi.org/10.1021/ct200133y - - https://doi.org/10.1085/jgp.201411219 - ## str: a link to the MDAKit's community (mailing list, github discussions, etc...) - community_home: https://alinktoamailinglist.org - ## str: a link to the MDAKit's changelog - changelog: https://alinktoachangelog.org +.. note:: + The `MDAKit registry`_ is still in its initial stages. We expect that the way in + which MDAKits are added, and the type of information required, may change + over time. Please reach out via the `issue tracker`_ if you have any + questions. + +Registering an MDAKit requires you to create a single file with metadata +(called ``metadata.yaml``). You add this file to the `MDAnalysis/mdakits +repository`_ on GitHub. + +Process +======= + +Add a MDAKit by following these steps: + +#. Create a fork of the MDAKit repository https://github.com/MDAnalysis/mdakits. +#. Make a new branch (choose any name, but "add-my-awesome-mdakit" is a good + one). +#. Add a new folder under ``mdakits`` with the name of your MDAKit. Please note that this *must* match the name provided under the `project_name` entry of the ``metadata.yaml`` file. +#. Add a metadata YAML file with your MDAKit's details; copy the template from + `mdakits/template/metadata.yaml`_ and modify it. See the comments in the + file and the :ref:`notes below