diff --git a/.github/workflows/gh-ci-cron.yaml b/.github/workflows/gh-ci-cron.yaml index 275b5b34..663ad6ce 100644 --- a/.github/workflows/gh-ci-cron.yaml +++ b/.github/workflows/gh-ci-cron.yaml @@ -194,18 +194,14 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - - name: setup_miniconda - uses: conda-incubator/setup-miniconda@v2 + - name: setup_micromamba + uses: mamba-org/setup-micromamba@v1 with: - python-version: 3.9 - auto-update-conda: true - channel-priority: flexible - channels: conda-forge - add-pip-as-python-dependency: true - architecture: x64 - use-mamba: true - miniforge-variant: Mambaforge environment-file: docs/requirements.yaml + environment-name: MDAKitRegistry-docs + create-args: >- + python=3.9 + pip - name: build_docs run: | cd docs && sphinx-build -b html source build diff --git a/docs/requirements.yaml b/docs/requirements.yaml index a8eeff23..a3604287 100644 --- a/docs/requirements.yaml +++ b/docs/requirements.yaml @@ -1,12 +1,14 @@ name: MDAKitRegistry-docs channels: + - conda-forge + - defaults dependencies: # Base depends - python - pip - - sphinx==5.3.0 - - sphinx_rtd_theme + - sphinx + - mdanalysis-sphinx-theme - pyyaml - pydantic diff --git a/docs/scripts/gen_mdakits.py b/docs/scripts/gen_mdakits.py index 5b744672..f1df12df 100644 --- a/docs/scripts/gen_mdakits.py +++ b/docs/scripts/gen_mdakits.py @@ -71,7 +71,7 @@ def generate_mdakit_index(target='.', excludedirs=["template",]): " 2. Provide sufficient details to allow others to use and " "potentially participate in the development of the MDAKits\n" " 3. Provide information about the current state of the MDAKits " - "and how they interact with the latest versions of MDAnalysis\n" + "and how they interact with the latest versions of MDAnalysis\n\n" "Each of the MDAKits in the following table links to a page with " "more details about what the MDAKits do, how they can be " "installed and how to participate in their development.\n") diff --git a/docs/source/_static/custom.css b/docs/source/_static/custom.css deleted file mode 100644 index de8d2e67..00000000 --- a/docs/source/_static/custom.css +++ /dev/null @@ -1,225 +0,0 @@ -/* override css for readable.css */ - -/* styles/fonts to match http://mdanalysis.org (see public/css) */ -/* MDAnalysis orange: #FF9200 */ -/* MDAnalysis gray: #808080 */ -/* MDAnalysis white: #FFFFFF */ -/* MDAnalysis black: #000000 */ -/* Very light orange: #FFEBD0 */ -/* Code orange: #ca6500 */ -/* RTD dark grey: #343131 */ -/* RTD light grey: #e6e6e6 */ - -/* -- page layout --------------------------------------------------------- */ - -body { - font-family: 'PT Sans', Helvetica, Arial, 'sans-serif'; - font-size: 17px; -} - -div.body { - color: #000000; -} - -div.sphinxsidebar a:hover { - text-decoration: none !important; -} - -div.sphinxsidebar p { - color: #808080; -} - -/* Home MDAnalysis colour */ -.wy-side-nav-search > a { - color: #343131; -} - -/* Side MDAnalysis version colour */ -.wy-side-nav-search > div.version { - color: #808080; -} - -/* Menubar caption colour */ -div.wy-menu-vertical span.caption-text { - color: #FF9200; -} - -/* Mobile layout menubar option */ -nav.wy-nav-top { - background: #343131; -} - -/* Menu search bar outline (default blue) */ -.wy-side-nav-search input[type="text"] { - border-color: #808080; -} - - -/* -- body styles --------------------------------------------------------- */ - -/* Different coloured links for sidebar vs body) */ -div.rst-content a { - color: #FF9200; - text-decoration: none; -} - -div.rst-content a:visited { - color: #FF9200; -} - -a:hover { - color: #FF9200 !important; - text-decoration: underline; -} - - -pre, tt, code { - font-family: Menlo, Monaco, 'Courier New', monospace -} - - -div.body h1 { - font-weight: bolder; -} - -a.headerlink { - color: #808080; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - background-color: #808080; - color: #fff; -} - -/* ------- admonition boxes ------- */ - -div.admonition { - margin: 10px 0px; - padding: 10px 10px; -} - -div.admonition p.admonition-title { - font-size: 100%; - font-weight: bolder; -} - -/* ----- Tables ----- */ - -/* override table width restrictions */ -/* wrap tables instead of scrolling */ -@media screen and (min-width: 767px) { - - .wy-table-responsive table td, .wy-table-responsive table th { - /* !important prevents the common CSS stylesheets from overriding - this as on RTD they are loaded after this stylesheet */ - white-space: normal !important; - } - - .wy-table-responsive { - overflow: visible !important; - max-width: 100% !important; - } - } - -/* ----- Field lists ------ */ - -.section > dl.field-list { - display: flex; - flex-wrap: wrap; - margin: 0; - padding: 0; -} - -dl.field-list > dt::after { - content: ":"; -} - -.rst-content dl:not(.docutils) dt { - background: none; - color: #000000; - border-top: none; -} - -.section > dl.field-list dt { - margin: 0; - padding: 0; - flex-basis: 20%; - display: block; -} - -.section > dl.field-list > dd { - flex-basis: 70%; - margin: 0; -} - -.section > dl.field-list > dd p { - margin: 0; -} - -/* ----- MDAnalysis coloured elements ------ */ - -.rst-content dl.class dt, .rst-content dl.function dt { - color: #ca6500; - background: #FFEBD0; - border-top: solid 3px #FF9200; -} - -.rst-content .viewcode-link, .rst-content .viewcode-back { - color: #808080; -} - -.rst-content .guilabel { - background: #efefef; - border: 1px solid #808080; -} - - -.rst-content .seealso p.admonition-title { - background: #808080; -} - -.rst-content .seealso { - background: #e3e3e3; -} - -.rst-content .error p.admonition-title, .rst-content .warning p.admonition-title { - background: #F45F4B; -} - -.rst-content .error, .rst-content .warning { - background: #FFEEED; -} - -.rst-content .caution p.admonition-title, .rst-content .note p.admonition-title, .rst-content .important p.admonition-title { - background: #FF9200; -} - -.rst-content .caution, .rst-content .note, .rst-content .important { - background: #FFEBD0; -} - -.rst-content code:not(.xref).literal { - color: #ca6500; -} -/* override table width restrictions */ -@media screen and (min-width: 767px) { - - .wy-table-responsive table td, .wy-table-responsive table th { - /* !important prevents the common CSS stylesheets from overriding - this as on RTD they are loaded after this stylesheet */ - white-space: normal !important; - } - - .wy-table-responsive { - overflow: visible !important; - max-width: 100% !important; - } - } - -dl.footnote p { - font-weight: lighter; - font-size: 14px -} \ No newline at end of file diff --git a/docs/source/_static/readable.css b/docs/source/_static/readable.css deleted file mode 100644 index 1d170214..00000000 --- a/docs/source/_static/readable.css +++ /dev/null @@ -1,463 +0,0 @@ -/* - * Adapted for combining with alabaster for MDAnalysis. - * To be used as a custom CSS - * - * based on: - * - * readable.css_t - * ~~~~~~~~~~~~~~ - * - * Sphinx stylesheet -- readable theme. - * - * :copyright: Copyright 2013 by Ignacy Sokolowski. - * :license: MIT, see LICENSE for details. - * - */ - - -/* -- page layout --------------------------------------------------------- */ - -body { - font-family: 'Georgia', serif; - font-size: 17px; - margin: 0; - padding: 0; -} - -div.document { - margin: 10px auto 0 auto; - /* max-width: {{ page_width }}; */ -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - /* margin: 0 0 0 {{ theme_sidebarwidth|toint }}px; */ -} - -div.body { - background-color: #ffffff; - color: #3e4349; - padding: 0 30px 30px 30px; -} - -div.footer { - color: #555; - font-size: 14px; - margin: 20px auto 30px auto; - text-align: right; - max-width: 880px; -} - -div.footer a { - color: #444; - text-decoration: underline; -} - -div.related { - padding: 10px 10px; - width: auto; -} - -div.sphinxsidebar { - float: left; - font-size: 14px; - line-height: 1.5em; - margin-left: -100%; - /* width: {{ theme_sidebarwidth|toint }}px; */ -} - -div.sphinxsidebarwrapper { - font-size: 14px; - line-height: 1.5em; - padding: 10px 0 10px 10px; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - color: #333; - font-size: 24px; - font-weight: normal; - margin: 0 0 5px 0; - padding: 0; -} - -div.sphinxsidebar h4 { - font-size: 1.1em; -} - -div.sphinxsidebar h3 a { - color: #333; -} - -div.sphinxsidebar p { - color: #888; -} - -div.sphinxsidebar p.searchtip { - line-height: 1.4em; -} - -div.sphinxsidebar ul { - color: #000; - margin: 10px 0 20px; - padding: 0; -} - -div.sphinxsidebar a { - color: #444; -} - -div.sphinxsidebar a:hover { - color: #d00; -} - -div.sphinxsidebar input { - border: 1px solid #ccc; - font-family: sans-serif; - font-size: 1em; -} - -/* -- body styles --------------------------------------------------------- */ - -a { - color: #900; - text-decoration: none; -} - -a:visited { - color: #700; -} - -a:hover { - color: #d00; - text-decoration: underline; -} - -hr { - border: 1px solid #b1b4b6; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { font-weight: normal; } - -div.body h1, -div.body h2, -div.body h3, -div.body h4 { color: #212224; } -div.body h5 { color: #000; } -div.body h6 { color: #777; } - -div.body h1 { margin: 0 0 10px 0; } -div.body h2, -div.body h3 { margin: 30px 0px 10px 0px; } -div.body h4, -div.body h5, -div.body h6 { margin: 20px 0px 10px 0px; } - -div.body h1 { padding: 0 0 10px 0; } -div.body h2, -div.body h3 { padding: 10px 0 10px 0; } -div.body h4 { padding: 10px 0 10px 0; } -div.body h5, -div.body h6 { padding: 10px 0 0 0; } - -div.body h1, -div.body h2, -div.body h3 { border-bottom: 1px solid #ddd; } -div.body h4 { border-bottom: 1px solid #e5e5e5; } - -div.body h1 { font-size: 230%; } -div.body h2 { font-size: 180%; } -div.body h3 { font-size: 130%; } -div.body h4 { font-size: 110%; } -div.body h5 { font-size: 105%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #c60f0f; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - background-color: #c60f0f; - color: #fff; -} - -div.body ul { - list-style: disc; - margin: 1em 0; - padding-left: 1.3em; -} - -div.body ul ul, div.body ol ul { - margin: .2em 0; - padding-left: 1.2em; -} - -div.body ul li { - padding: 2px 0; -} - -div.body ul.search li { - padding: 5px 0 5px 20px; -} - -div.body ol { - counter-reset: li; - margin-left: 0; - padding-left: 0; -} - -div.body ol ol { - margin: .2em 0; -} - -div.body ol > li { - list-style: none; - margin: 0 0 0 1.9em; - padding: 2px 1px; - position: relative; -} - -div.body ol > li:before { - content: counter(li) "."; - counter-increment: li; - top: -2px; - left: -1.9em; - width: 1.9em; - padding: 4px 0; - position: absolute; - text-align: left; -} - -div.body p, -div.body dd, -div.body li { - line-height: 1.4em; -} - -div.admonition p.admonition-title + p { - display: inline; -} - -div.highlight { - background-color: #fff; -} - -div.important, div.note { - background-color: #eee; - border: 1px solid #ccc; -} - -div.attention, div.caution, div.hint, div.seealso, div.tip { - background-color: #fef9e9; - border: 1px solid #fbe091; -} - -div.topic { - background-color: #eee; -} - -div.danger, div.error, div.warning { - background-color: #ffe4e4; - border: 1px solid #f66; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ':'; -} - -pre { - background-color: #f5f5f5; - border: 1px solid #C6C9CB; - color: #222; - font-size: 0.75em; - line-height: 1.5em; - margin: 1.5em 0 1.5em 0; - padding: 10px; - box-shadow: 1px 1px 1px #d8d8d8; - -webkit-box-shadow: 1px 1px 1px #d8d8d8; - -moz-box-shadow: 1px 1px 1px #d8d8d8; -} - -pre, tt, code { - font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -tt, code { - background-color: #ecf0f3; - font-size: 0.85em; -} - -tt.descname, code.descname { - font-size: 0.95em; -} - -tt.xref, a tt, code.xref, a code { - font-weight: normal; -} - -span.pre { - padding: 0 2px; -} - -dl.class, dl.function { - margin-bottom: 50px; -} - -dl.function > dt, -dl.attribute > dt, -dl.classmethod > dt, -dl.method > dt, -dl.class > dt, -dl.exception > dt { - background-color: #f5f5f5; - margin: 25px 0 10px 0; - padding: 1px 10px; -} - -table.docutils { - width: 100%; -} - -table.docutils.footnote { - width: auto; -} - -table.docutils thead, -table.docutils tfoot { - background: #f5f5f5; -} - -table.docutils thead tr th { - color: #000; - font-weight: normal; - padding: 7px 5px; - vertical-align: middle; -} - -table.docutils tbody tr th, -table.docutils tbody tr td { - border-bottom: 0; - border-top: solid 1px #ddd; - padding: 7px 5px; - vertical-align: top; -} -table.docutils tbody tr:last-child th, -table.docutils tbody tr:last-child td { - border-bottom: solid 1px #ddd; -} - -table.docutils thead tr td p, -table.docutils tfoot tr td p, -table.docutils tbody tr td p, -table.docutils thead tr td ul, -table.docutils tfoot tr td ul, -table.docutils tbody tr td ul, -table.docutils thead tr td ol, -table.docutils tfoot tr td ol, -table.docutils tbody tr td ol { - margin: 0 0 .5em; -} -table.docutils thead tr td p.last, -table.docutils tfoot tr td p.last, -table.docutils tbody tr td p.last, -table.docutils thead tr td ul.last, -table.docutils tfoot tr td ul.last, -table.docutils tbody tr td ul.last, -table.docutils thead tr td ol.last, -table.docutils tfoot tr td ol.last, -table.docutils tbody tr td ol.last { - margin-bottom: 0; -} - -.viewcode-back { - font-family: Arial, sans-serif; -} - -div.viewcode-block:target { - background-color: #fef9e9; - border-top: 1px solid #fbe091; - border-bottom: 1px solid #fbe091; -} - -@media screen and (max-width: 870px) { - - div.document { - width: auto; - margin: 0; - } - - div.documentwrapper { - float: none; - } - - div.bodywrapper { - margin: 0; - } - - div.body { - min-height: 0; - padding: 0 20px 30px 20px; - } - - div.footer { - background-color: #333; - color: #888; - margin: 0; - padding: 10px 20px 20px; - text-align: left; - width: auto; - } - - div.footer a { - color: #bbb; - } - - div.footer a:hover { - color: #fff; - } - - div.sphinxsidebar { - background-color: #333; - color: #fff; - float: none; - margin: 0; - padding: 10px 20px; - width: auto; - } - - div.sphinxsidebar h3, - div.sphinxsidebar h4, - div.sphinxsidebar p, - div.sphinxsidebar h3 a { - color: #fff; - } - - div.sphinxsidebar ul { - color: #999; - } - - div.sphinxsidebar a { - color: #aaa; - } - - div.sphinxsidebar a:hover { - color: #fff; - } - -} diff --git a/docs/source/_templates/footer.html b/docs/source/_templates/footer.html deleted file mode 100644 index 5fd6ad48..00000000 --- a/docs/source/_templates/footer.html +++ /dev/null @@ -1,11 +0,0 @@ -{% extends "!footer.html" %} - -{% block extrafooter %} -{{ super() }} - -{% endblock %} diff --git a/docs/source/about.rst b/docs/source/about.rst index db9938c1..1b61df8d 100644 --- a/docs/source/about.rst +++ b/docs/source/about.rst @@ -58,18 +58,18 @@ useful to a broader community. :alt: MDAKits, an ecosystem of downstream packages, may be more sustainable -Read our whitepaper! -==================== +Read our SciPy proceedings paper! +================================= To learn more about MDAKits and our vision for more sustainable community -developed molecular simulation tools, please see our `whitepaper`_. +developed molecular simulation tools, please see our `SciPy proceedings paper`_. .. _`MDAnalysis library`: https://docs.mdanalysis.org -.. _`whitepaper`: - https://github.com/MDAnalysis/MDAKits/blob/main/paper/whitepaper/MDAKits_whitepaper.pdf +.. _`SciPy proceedings paper`: + https://conference.scipy.org/proceedings/scipy2023/ian_kenney.html .. _`listed here`: mdakits.html diff --git a/docs/source/add.rst b/docs/source/add.rst index 0755ef7a..997d8690 100644 --- a/docs/source/add.rst +++ b/docs/source/add.rst @@ -2,18 +2,18 @@ Adding an MDAKit to the Registry ******************************** -Do you have an MDAKit? Consider adding it 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 + 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 + * 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``) @@ -92,3 +92,5 @@ The following is an example metadata file for propkatraj:: .. _`issue tracker`: https://github.com/MDAnalysis/MDAKits/issues +.. _`MDAKit registry`: https://mdakits.mdanalysis.org/mdakits.html + diff --git a/docs/source/conf.py b/docs/source/conf.py index bcdf6eec..7d0df881 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -96,29 +96,14 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'sphinx_rtd_theme' +html_theme = 'mdanalysis_sphinx_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -color = {'orange': '#FF9200', - 'gray': '#808080', - 'white': '#FFFFFF', - 'black': '#000000', } html_theme_options = { - 'canonical_url': '', - 'logo_only': True, - 'display_version': True, - 'prev_next_buttons_location': 'bottom', - 'style_external_links': False, - 'style_nav_header_background': 'white', # '#e76900', # dark orange - # Toc options - 'collapse_navigation': True, - 'sticky_navigation': True, - 'navigation_depth': 4, - 'includehidden': True, - 'titles_only': False, + 'mda_official': True, } # Add any paths that contain custom static files (such as style sheets) here, @@ -126,12 +111,11 @@ # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] html_css_files = [ - 'custom.css', - 'https://cdn.datatables.net/1.13.4/css/jquery.dataTables.min.css', + 'https://cdn.datatables.net/1.13.6/css/jquery.dataTables.min.css', ] html_js_files = [ - 'https://cdn.datatables.net/1.13.4/js/jquery.dataTables.min.js', + 'https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js', 'main.js', ] @@ -214,12 +198,7 @@ # -- Extension configuration ------------------------------------------------- -rst_epilog = """ -.. |MDAKit_Registry_version| replace:: {0} -""".format(version) - - intersphinx_mapping = { - 'https://docs.python.org/3/': None, - 'https://docs.mdanalysis.org/stable/': None, + 'python': ('https://docs.python.org/3/', None), + 'mdanalysis': ('https://docs.mdanalysis.org/stable/', None), } diff --git a/docs/source/makingakit.rst b/docs/source/makingakit.rst index 301be466..cea3c303 100644 --- a/docs/source/makingakit.rst +++ b/docs/source/makingakit.rst @@ -358,7 +358,7 @@ After this point, two more requirements are satisfied: Providing documentation *********************** -The cookiecutter includes a `Read the Docs `_ +The cookiecutter includes a `Read the Docs `__ configuration as well a premade documentation environment file that is used by Read the Docs and for building locally. First, we need to install the correct environment for building the documentation. In the ``docs/`` directory, run: @@ -500,7 +500,7 @@ Refeshing the RMSF documentation will now show a properly formatted citation usi Deploying the documentation ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Log into `Read the Docs `_ and navigate to the +Log into `Read the Docs `__ and navigate to the dashboard. Click the "Import a Project" button and find the repository in the list. Click the "+" and confirm that the name, URL, and default branch are correct. @@ -628,4 +628,4 @@ Apart from actively developing the kit, changes in kit dependencies, or even Pyt For this reason, the kits' continuous integration is rerun weekly to confirm the kits expected behavior. In the event that a kit no longer passes its tests, an issue in MDAnalysis/MDAKits is automatically raised while notifying the maintainers indicated in the `metadata.yaml` file. While the registry developers will be happy to help where possible, ultimately, the maintainers of the MDAKit are responsible for resolving such issues and ensuring that the tests pass. -The issue will automatically close after the next CI run if the tests pass again. \ No newline at end of file +The issue will automatically close after the next CI run if the tests pass again. diff --git a/mdakits/MDAnalysis-tui/metadata.yaml b/mdakits/MDAnalysis-tui/metadata.yaml new file mode 100644 index 00000000..b6a41d8c --- /dev/null +++ b/mdakits/MDAnalysis-tui/metadata.yaml @@ -0,0 +1,52 @@ +# Required entries +## str: name of the project (the respository name) +project_name: mda-tui +## List(str): a list of authors (or a link to the authors file) +authors: + - https://github.com/p-j-smith/mda-tui/blob/main/AUTHORS.md +## List(str): a list of maintainers +maintainers: + - p-j-smith +## str: a free form description of the mdakit +description: + Trajectory transformations in your terminal +## List(str): a list of keywords which describe the mdakit +keywords: + - transformations + - TUI +## 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/p-j-smith/mda-tui +## str: the link to the project's documentation +documentation_home: https://p-j-smith.github.io/mda-tui/ +## str: the type of documentation available [UserGuide, API, README] +documentation_type: README + UserGuide + +# 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 mda-tui +## List(str): a list of commands to use when installing the mdakit from its +## source code. +src_install: + - pip install git+https://github.com/p-j-smith/mda-tui@main +## str: the package name used to import the mdakit +import_name: mda_tui +## str: a specification for the range of Python versions supported by this MDAKit +python_requires: ">=3.10" +## 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: + - git clone latest + - python -m pip install ".[test]" + - pytest -v ./tests +## str: the development status of the MDAKit +development_status: Alpha +## str: a link to the MDAKit's community (mailing list, github discussions, etc...) +community_home: "https://github.com/p-j-smith/mda-tui/discussions" +## str: a link to the MDAKit's changelog +changelog: "https://github.com/p-j-smith/mda-tui/blob/main/CHANGELOG.md" diff --git a/mdakits/mda-tui/metadata.yaml b/mdakits/mda-tui/metadata.yaml new file mode 100644 index 00000000..b6a41d8c --- /dev/null +++ b/mdakits/mda-tui/metadata.yaml @@ -0,0 +1,52 @@ +# Required entries +## str: name of the project (the respository name) +project_name: mda-tui +## List(str): a list of authors (or a link to the authors file) +authors: + - https://github.com/p-j-smith/mda-tui/blob/main/AUTHORS.md +## List(str): a list of maintainers +maintainers: + - p-j-smith +## str: a free form description of the mdakit +description: + Trajectory transformations in your terminal +## List(str): a list of keywords which describe the mdakit +keywords: + - transformations + - TUI +## 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/p-j-smith/mda-tui +## str: the link to the project's documentation +documentation_home: https://p-j-smith.github.io/mda-tui/ +## str: the type of documentation available [UserGuide, API, README] +documentation_type: README + UserGuide + +# 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 mda-tui +## List(str): a list of commands to use when installing the mdakit from its +## source code. +src_install: + - pip install git+https://github.com/p-j-smith/mda-tui@main +## str: the package name used to import the mdakit +import_name: mda_tui +## str: a specification for the range of Python versions supported by this MDAKit +python_requires: ">=3.10" +## 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: + - git clone latest + - python -m pip install ".[test]" + - pytest -v ./tests +## str: the development status of the MDAKit +development_status: Alpha +## str: a link to the MDAKit's community (mailing list, github discussions, etc...) +community_home: "https://github.com/p-j-smith/mda-tui/discussions" +## str: a link to the MDAKit's changelog +changelog: "https://github.com/p-j-smith/mda-tui/blob/main/CHANGELOG.md" diff --git a/mdakits/mdaencore/metadata.yaml b/mdakits/mdaencore/metadata.yaml new file mode 100644 index 00000000..cb6a05ed --- /dev/null +++ b/mdakits/mdaencore/metadata.yaml @@ -0,0 +1,63 @@ +# Required entries +## str: name of the project (the respository name) +project_name: mdaencore +## List(str): a list of authors (or a link to the authors file) +authors: + - https://github.com/MDAnalysis/mdaencore/blob/main/AUTHORS.md +## List(str): a list of maintainers +maintainers: + - ianmkenney + - IAlibay +## str: a free form description of the mdakit +description: + Quantitative ensemble similarity analysis for molecular data +## List(str): a list of keywords which describe the mdakit +keywords: + - ensemble + - similarity + - covariance + - PCA +## 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/MDAnalysis/mdaencore/ +## str: the link to the project's documentation +documentation_home: https://www.mdanalysis.org/mdaencore/ +## str: the type of documentation available [UserGuide, API, README] +documentation_type: README + 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 mdaencore + +## List(str): a list of commands to use when installing the mdakit from its +## source code. +src_install: + - pip install git+https://github.com/MDAnalysis/mdaencore.git +## str: the package name used to import the mdakit +import_name: mdaencore +## str: a specification for the range of Python versions supported by this MDAKit +python_requires: ">=3.9" +## 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 mdaencore.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: MDAnalysis +## str: the development status of the MDAKit +development_status: Mature +## List(str) a list of publications to cite when using the MDAKit +publications: + - https://doi.org/10.1371/journal.pcbi.1004415 +## str: a link to the MDAKit's community (mailing list, github discussions, etc...) +community_home: +## str: a link to the MDAKit's changelog +changelog: https://github.com/MDAnalysis/mdaencore/blob/main/CHANGELOG.md diff --git a/mdakits/mdaencore/status.yaml b/mdakits/mdaencore/status.yaml new file mode 100644 index 00000000..f339e168 --- /dev/null +++ b/mdakits/mdaencore/status.yaml @@ -0,0 +1,22 @@ +badges: + analysis: false + converter: false + coverage: false + reader: false + topology: false + transformation: false + writer: false +develop: + install_mdakit: true + install_mdanalysis: true + install_python: true + install_test_deps: true + numfails: 0 + run_tests: true +latest: + install_mdakit: true + install_mdanalysis: true + install_python: true + install_test_deps: true + numfails: 0 + run_tests: true diff --git a/mdakits/openmm-mdanalysis-reporter/metadata.yaml b/mdakits/openmm-mdanalysis-reporter/metadata.yaml new file mode 100644 index 00000000..0cb69210 --- /dev/null +++ b/mdakits/openmm-mdanalysis-reporter/metadata.yaml @@ -0,0 +1,52 @@ +# Required entries +## str: name of the project (the respository name) +project_name: openmm-mdanalysis-reporter +## List(str): a list of authors (or a link to the authors file) +authors: + - https://github.com/sef43/openmm-mdanalysis-reporter/blob/main/AUTHORS.md +## List(str): a list of maintainers +maintainers: + - sef43 +## str: a free form description of the mdakit +description: + MDAnalysis based reporters for OpenMM +## List(str): a list of keywords which describe the mdakit +keywords: + - OpenMM + - Reporters + +## str: the license the mdakit falls under +license: MIT +## str: the link to the project's code +project_home: https://github.com/sef43/openmm-mdanalysis-reporter +## str: the link to the project's documentation +documentation_home: https://github.com/sef43/openmm-mdanalysis-reporter/blob/main/README.md +## str: the type of documentation available [UserGuide, API, README] +documentation_type: README + +# 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: + - mamba install -c jaimergp/label/unsupported-cudatoolkit-shim -c conda-forge --strict-channel-priority openmm + - pip install openmm-mdanalysis-reporter +## List(str): a list of commands to use when installing the mdakit from its +## source code. +src_install: + - mamba install -c jaimergp/label/unsupported-cudatoolkit-shim -c conda-forge --strict-channel-priority openmm + - git clone https://github.com/sef43/openmm-mdanalysis-reporter.git + - cd openmm-mdanalysis-reporter + - pip install . + +## str: the package name used to import the mdakit +import_name: mdareporter +## str: a specification for the range of Python versions supported by this MDAKit +python_requires: ">=3.9" +## str: a specification for the range of MDAnalysis versions supported by this MDAKit +mdanalysis_requires: ">=2.0.0" +openmm_requires: ">=7.7.0" +run_tests: + - pytest --pyargs mdareporter.tests +test_dependencies: + - mamba install -c jaimergp/label/unsupported-cudatoolkit-shim -c conda-forge --strict-channel-priority openmm pytest diff --git a/mdakits/openmm-mdanalysis-reporter/status.yaml b/mdakits/openmm-mdanalysis-reporter/status.yaml new file mode 100644 index 00000000..f339e168 --- /dev/null +++ b/mdakits/openmm-mdanalysis-reporter/status.yaml @@ -0,0 +1,22 @@ +badges: + analysis: false + converter: false + coverage: false + reader: false + topology: false + transformation: false + writer: false +develop: + install_mdakit: true + install_mdanalysis: true + install_python: true + install_test_deps: true + numfails: 0 + run_tests: true +latest: + install_mdakit: true + install_mdanalysis: true + install_python: true + install_test_deps: true + numfails: 0 + run_tests: true diff --git a/mdakits/prolif/metadata.yaml b/mdakits/prolif/metadata.yaml index 6a859372..0c6a31bf 100644 --- a/mdakits/prolif/metadata.yaml +++ b/mdakits/prolif/metadata.yaml @@ -17,13 +17,14 @@ documentation_type: UserGuide + API ## Optional entries install: - - conda install -c conda-forge prolif + - mamba install -c conda-forge prolif src_install: - pip install rdkit - - pip install git+https://github.com/chemosim-lab/ProLIF@master + - pip install "prolif[dev] @ git+https://github.com/chemosim-lab/ProLIF@master" python_requires: ">=3.8" mdanalysis_requires: ">=2.2.0" run_tests: + - mamba install ipython py3Dmol "matplotlib>=3.5" - git clone latest - pytest -v ./tests test_dependencies: diff --git a/mdakits/prolif/status.yaml b/mdakits/prolif/status.yaml index f339e168..cbb456f4 100644 --- a/mdakits/prolif/status.yaml +++ b/mdakits/prolif/status.yaml @@ -18,5 +18,5 @@ latest: install_mdanalysis: true install_python: true install_test_deps: true - numfails: 0 - run_tests: true + numfails: 2 + run_tests: false diff --git a/mdakits/template/metadata.yaml b/mdakits/template/metadata.yaml index 603593ca..09386db5 100644 --- a/mdakits/template/metadata.yaml +++ b/mdakits/template/metadata.yaml @@ -1,63 +1,92 @@ +# TEMPLATE MDAKit file +# -------------------- +# +# Please replace ALL entries with appropriate content for YOUR MDAKit. +# Below we use the placeholder GH_HOST_ACCOUNT for the GitHub account where +# the source code repository is held, typically your username or the +# organization that you're part off. +# MYPROJECT is the name of your project (the repository name and here +# we assume that this is also the PyPi/conda package name) whereas +# MYPACKAGE is how you import it in python. +# +# See https://mdakits.mdanalysis.org/add.html for more information. +# # 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) +project_name: MYPROJECT +## List(str): a link to the authors file (preferred) or a list of authors authors: - - https://github.com/Becksteinlab/propkatraj/blob/main/AUTHORS + - https://github.com/GH_HOST_ACCOUNT/MYPROJECT/blob/main/AUTHORS ## List(str): a list of maintainers maintainers: - - ianmkenney - - IAlibay - - orbeckst + - NAME1 + - OPTIONAL_NAME2 + - OPTIONAL_NAME3 ## str: a free form description of the mdakit description: - pKa estimates for proteins using an ensemble approach + (REPLACE WITH A SHORT DESCRIPTION OF WHAT YOUR MDAKit DOES.) ## List(str): a list of keywords which describe the mdakit keywords: - - pKa - - protein + - KEYWORD1 + - KEYWORD2 ## 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/ +project_home: https://github.com/GH_HOST_ACCOUNT/MYPROJECT/ ## str: the link to the project's documentation -documentation_home: https://becksteinlab.github.io/propkatraj/ +documentation_home: https://MYPROJECT.readthedocs.io ## 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. +## be defined. We suggest using mamba where possible (e.g. +## mamba -c conda-forge install MYPROJECT +## for a conda package installation) install: - - pip install propkatraj + - pip install MYPROJECT ## 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 + - pip install git+https://github.com/GH_HOST_ACCOUNT/MYPROJECT@main ## str: the package name used to import the mdakit -import_name: propkatraj +import_name: MYPACKAGE ## str: a specification for the range of Python versions supported by this MDAKit -python_requires: ">=3.8" +python_requires: ">=3.9" ## 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 +## If you package your tests inside your package then you can typically use the +## pytest --pyargs MYPACKAGE.tests +## command as shown below. +## Otherwise you need to include commands to make the tests available. +## For example, if the tests are in the repository at the top level under `./tests`: +## First use `git clone latest` to either clone the top commit for "develop" runs or check out +## the latest tag for "latest release" checks. Then then run pytest: +## - git clone latest +## - pytest -v ./tests +## Feel free to ask for advice on your pull request! run_tests: - - pytest --pyargs propkatraj.tests + - pytest --pyargs MYPACKAGE.tests ## List(str): a list of commands to use to install the necessary dependencies required -## to run the MDAKit's tests +## to run the MDAKit's tests. +## The default below _might_ be sufficient or you might not even need MDAnalysisTests: +## make sure that it is appropriate for how you run tests. test_dependencies: - mamba install pytest MDAnalysisTests ## str: the organisation name the MDAKit falls under -project_org: Becksteinlab +project_org: GH_HOST_ACCOUNT ## str: the development status of the MDAKit -development_status: Mature +## See https://pypi.org/classifiers/ for development status classifiers. +development_status: Productions/Stable ## List(str) a list of publications to cite when using the MDAKit +## Links to scientific publications or stable URLs (typically of the form +## https://doi.org/ or to a preprint server) publications: - - https://zenodo.org/record/7647010 - - https://doi.org/10.1021/ct200133y - - https://doi.org/10.1085/jgp.201411219 + - URL1 + - URL2 ## str: a link to the MDAKit's community (mailing list, github discussions, etc...) -community_home: +community_home: URL ## str: a link to the MDAKit's changelog -changelog: +changelog: https://github.com/MYNAME/MYPROJECT/blob/main/CHANGES diff --git a/utils/mdakit.py b/utils/mdakit.py index e62c7a07..d0cf7120 100644 --- a/utils/mdakit.py +++ b/utils/mdakit.py @@ -386,9 +386,9 @@ def write_mdakit_page(self): urls = [] authors = self.gen_authors(urls) - title = ("************************\n" + title = ("************************************************\n" f"{name}\n" - "************************\n\n") + "************************************************\n\n") description = (f"| **Description:**\n" f"| *{self.metadata.description}*\n") @@ -453,7 +453,7 @@ def write_mdakit_page(self): ) if self.metadata.src_install is not None: installation_instructions += ( - f"The source code of {name} can be " + f"\nThe source code of {name} can be " "installed using the following:\n\n" ".. code-block:: bash\n\n" ) diff --git a/utils/write-ci-status-json.py b/utils/write-ci-status-json.py index 0eb27ba9..c64d9d0b 100644 --- a/utils/write-ci-status-json.py +++ b/utils/write-ci-status-json.py @@ -65,7 +65,7 @@ def get_statuses(env_values: List[str]) -> Dict[str, str]: status_dict = get_statuses(env_statuses) - outfile = f"{args.mdakit.lower()}-{args.tag}-statuses.json" + outfile = f"{args.mdakit}-{args.tag}-statuses.json" with open(outfile, 'w') as f: json.dump(status_dict, f)