-
Notifications
You must be signed in to change notification settings - Fork 3
[WIP] Ecosystem registry infrastructure #68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
1981c82
1b9589d
d0165cc
784fceb
65eadbf
12a6e91
ec95ef0
23aeade
33c9afa
2cb2cba
4d439b6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| # Managing the ecosystem catalog | ||
|
|
||
| A subset of this website is devoted to providing a catalog of software that | ||
| makes up the broader Open Free Energy ecosystem. This is intended to be a | ||
| central clearinghouse where users can find different modular tools that can be | ||
| plugged into an Open Free Energy workflow. This page documents that part of the | ||
| website. | ||
|
|
||
| ## Adding a new catalog entry | ||
|
|
||
| External contributors are most likely to want to add a new catalog entry, | ||
| representing some useful code that they have created and wish to share. Adding | ||
| new entries is intended to be as easy as possible. | ||
|
|
||
| Basically, all you need to do is fork and clone this repo, and add a new item | ||
| under the `_ecosystem/` directory. This will be a Markdown file with YAML | ||
| frontmatter. Copy the `_ecosystem/_defaults.md` file to get a template that | ||
| you can work from. | ||
|
|
||
| Add that file in a branch on your fork, and make a pull request to have your | ||
| new entry added to the catalog! | ||
|
|
||
| ## Customizing ecosystem configuration | ||
|
|
||
| The general idea here is that catalog entries represent different "categories" | ||
| of object, with the objects within a category being modular replacements for | ||
| each other. As an example, "protocol" is one of the categories for Open Free | ||
| Energy. | ||
|
|
||
| Details of the ecosystem configuration are in the `_config.yaml` for the site. | ||
| In particular, custom configuration the ecosystem tools are under the | ||
| `ecosystem_catalog` top-level heading. This allows you to change, e.g., the | ||
| allowed categories. | ||
|
|
||
| Some aspects of configuration are based on Jekyll's standard configuration | ||
| tools. In particular, note that `ecosystem` is one the Jekyll `collections`, | ||
| and note that we can set the default layout for ecosystem entries within the | ||
| standard `defaults` configuration heading. | ||
|
|
||
| ## Changing the presentation of catalog entries | ||
|
|
||
| Catalog entries are shown in two different styles: | ||
|
|
||
| 1. Full-page mode, where a full web page is dedicated to each entry. This is | ||
| intended to provide sufficient details for a reader to learn more about the | ||
| entry. You can customize this mode in `_layouts/ecosystem-entry.html`. | ||
| 2. Summary mode (cards), where a brief summary of each entry is provided, e.g., | ||
| as part of a list of other catalog entries. You can customize this mode in | ||
| `_includes/ecosystem-summary.html`. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| --- | ||
| name: <NAME OF ENTRY> | ||
| developers: <DEVELOPERS AS A STRING> | ||
| source: <URL FOR SOURCE CODE> | ||
| license: <STRING NAME OF LICENSE> | ||
| ### SELECT THE TYPES OF PLUGINS YOU PROVIDE | ||
| # atommappers: | ||
| # - name: <NAME OF FIRST PLUGIN> | ||
| # description: >- | ||
| # <BRIEF DESCRIPTION OF PLUGIN> | ||
| # - name: <NAME OF NEXT PLUGIN> | ||
| # description: >- | ||
| # <BRIEF DESCRIPTION OF PLUGIN> | ||
| # networkplanners: | ||
| # - name: <NAME OF FIRST PLUGIN> | ||
| # description: >- | ||
| # <BRIEF DESCRIPTION OF PLUGIN> | ||
| # - name: <NAME OF NEXT PLUGIN> | ||
| # description: >- | ||
| # <BRIEF DESCRIPTION OF PLUGIN> | ||
| # scorers: | ||
| # - name: <NAME OF FIRST PLUGIN> | ||
| # description: >- | ||
| # <BRIEF DESCRIPTION OF PLUGIN> | ||
| # - name: <NAME OF NEXT PLUGIN> | ||
| # description: >- | ||
| # <BRIEF DESCRIPTION OF PLUGIN> | ||
| # protocols: | ||
| # - name: <NAME OF FIRST PLUGIN> | ||
| # description: >- | ||
| # <BRIEF DESCRIPTION OF PLUGIN> | ||
| # - name: <NAME OF NEXT PLUGIN> | ||
| # description: >- | ||
| # <BRIEF DESCRIPTION OF PLUGIN> | ||
|
|
||
| ### FOLLOWING ARE OPTIONAL | ||
| # docs: <URL FOR DOCUMENTATION> | ||
| # contact: <EMAIL FOR CONTACT> (not used) | ||
| # conda-forge: <INSTALL NAME FOR CONDA-FORGE> | ||
| # pypi: <INSTALL NAME FOR PYPI> | ||
| # publications: | ||
| # - <LIST OF DOI> | ||
| # thumbnail: (not used) | ||
| # src: <URL FOR THUMBNAIL IMAGE> | ||
| # alt: <ALT TEXT FOR THUMBNAIL> | ||
| --- | ||
| <FREE FORM LONG DESCRIPTION HERE> | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| --- | ||
| title: An example plugin | ||
| developers: Those cool cats at OpenFE | ||
| source: https://github.com/openfreeenergy/openfreeenergy.github.io | ||
| license: MIT | ||
| atommappers: | ||
| - name: Example | ||
| description: >- | ||
| An awesome OpenFE plugin | ||
| --- | ||
|
|
||
| Now let me tell you all the awesome details about this plugin. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| --- | ||
| title: Another example plugin | ||
| developers: more cool cats at OpenFE | ||
| source: https://github.com/openfreeenergy/openfreeenergy.github.io | ||
| license: MIT | ||
| protocols: | ||
| - name: Another example plugin | ||
| description: >- | ||
| A protocol plugin | ||
| --- | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| --- | ||
| title: Kartograf | ||
| developers: Ben Ries and other OpenFE people | ||
| source: https://github.com/openfreeenergy/kartograf | ||
| license: MIT | ||
| atommappers: | ||
| - name: KartografAtomMapper | ||
| description: >- | ||
| Kartograf is a 3D-first atom mapper. This allows it to avoid some | ||
| problems, particularly those around chirality, that can occur with 2D | ||
| mappers (e.g., those focused on common substructure.) Ben can expand this | ||
| a little if he wants. | ||
| --- | ||
|
|
||
| This is where Ben should write a lot more detail about Kartograf. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| --- | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This schema looks good to me. example.md and example2.md above now seem out of sync?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm confused by this comment: can you double-check what you're seeing? The changes to those in d0165cc should have brought them into the new format. Am I missing something?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Missed that! Unused though. (This is part of why it'll be good to have an action to check that the YAML matches the schema -- I started playing with that a bit, but don't plan to include it in this PR). |
||
| title: LOMAP | ||
| developers: Mobley Lab and Open Free Energy | ||
| source: https://github.com/openfreeenergy/Lomap | ||
| conda-forge: lomap2 | ||
| license: MIT | ||
| atommappers: | ||
| - name: LomapAtomMapper | ||
| description: >- | ||
| The LOMAP atom mapper is based on a maximum common substructure approach | ||
| to detemine the mapping between two ligands. | ||
| networkplanners: | ||
| - name: LomapNetworkPlanner | ||
| description: >- | ||
| lorem ipsum | ||
| --- | ||
|
|
||
| Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor | ||
| incididunt ut labore et dolore magna aliqua. Elit duis tristique sollicitudin | ||
| nibh sit amet. Vitae auctor eu augue ut lectus. Sit amet dictum sit amet justo | ||
| donec enim diam. Id venenatis a condimentum vitae sapien pellentesque habitant | ||
| morbi. Ut eu sem integer vitae justo eget magna fermentum iaculis. Vel orci | ||
| porta non pulvinar neque laoreet suspendisse interdum. Curabitur vitae nunc sed | ||
| velit. Id aliquet risus feugiat in ante metus dictum at. Venenatis cras sed | ||
| felis eget velit aliquet sagittis id. Nibh sed pulvinar proin gravida | ||
| hendrerit. Eget nullam non nisi est. Viverra maecenas accumsan lacus vel | ||
| facilisis volutpat est velit egestas. Lectus vestibulum mattis ullamcorper | ||
| velit sed. Pellentesque elit ullamcorper dignissim cras tincidunt lobortis | ||
| feugiat. Dolor sed viverra ipsum nunc aliquet bibendum enim. | ||
|
|
||
| Morbi non arcu risus quis varius quam quisque id. Dui sapien eget mi proin sed. | ||
| Nunc vel risus commodo viverra maecenas accumsan lacus. Condimentum mattis | ||
| pellentesque id nibh tortor id aliquet lectus. In metus vulputate eu | ||
| scelerisque felis imperdiet proin. Id velit ut tortor pretium viverra | ||
| suspendisse potenti. Ut pharetra sit amet aliquam id. In fermentum et | ||
| sollicitudin ac orci phasellus egestas tellus. Ultricies mi eget mauris | ||
| pharetra. Nunc id cursus metus aliquam. Nunc non blandit massa enim nec dui | ||
| nunc mattis. Mattis aliquam faucibus purus in massa tempor nec feugiat nisl. | ||
| Lacus sed turpis tincidunt id aliquet risus feugiat in ante. Nisl purus in | ||
| mollis nunc sed. In hac habitasse platea dictumst quisque sagittis. Neque | ||
| ornare aenean euismod elementum nisi quis eleifend. Vel quam elementum pulvinar | ||
| etiam non quam lacus suspendisse. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| {% comment %} | ||
| This is the include file for a catalog entry summary card. Style can be done | ||
| in SASS/CSS. | ||
|
|
||
| This `include` takes `package` and `plugin` arguments. | ||
| {% endcomment %} | ||
|
|
||
| <div class="ecosystemSummary" id="ecosystem-{{ include.plugin.name }}"> | ||
| <h1> | ||
| <a href="{{ include.project.url }}">{{ include.plugin.name }}</a> | ||
| </h1> | ||
| <address class="ecosystemSummaryAuthor"> | ||
| {{ include.project.developers }} | ||
| <br /> | ||
| <span class="part-of-project"> | ||
| Part of <a href="{{ include.project.url }}"> | ||
| {{ include.project.title }} | ||
| </a> | ||
| </span> | ||
| </address> | ||
| <div class="ecosystemSummarySummary"> | ||
| {{ include.plugin.description | markdownify }} | ||
| </div> | ||
| <!-- TODO: add this in later, once there are more things to include | ||
| <ul class="ecosystemSummaryExtras"> | ||
| <li>{{ include.package.license }}</li> | ||
| </ul> | ||
| --> | ||
| </div> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,77 @@ | ||
| --- | ||
| layout: page | ||
| --- | ||
|
|
||
| <div class="ecosystemEntry"> | ||
|
|
||
| <aside class="ecosystemDetailsBox"> | ||
| <dl> | ||
| <dt>Developers</dt> | ||
| <dd class="ecosystemEntryDevelopers">{{ page.developers }}</dd> | ||
| <!-- TODO: add contact link (obfuscate?) --> | ||
| <dt>Source code</dt> | ||
| <!-- TODO: extract GitHub links to make prettier --> | ||
| <dd class="ecosystemEntryLink"> | ||
| <a href="{{ page.source }}">{{ page.source }}</a> | ||
| </dd> | ||
| {% if page.docs %} | ||
| <dt>Documentation</dt> | ||
| <dd class="ecosystemEntryLink"> | ||
| <a href="{{ page.docs }}">{{ page.docs }}</a> | ||
| </dd> | ||
| {% endif %} | ||
| {% if page.conda-forge or page.pypi %} | ||
| <dt>Installation</dt> | ||
| <dd class="ecosystemEntryInstallation"> | ||
| <ul> | ||
| {% if page.conda-forge %} | ||
| <li> | ||
| <kbd>mamba install -c conda-forge {{ page.conda-forge }}</kbd> | ||
| </li> | ||
| {% endif %} | ||
| {% if page.pypi %} | ||
| <li> | ||
| <kbd>python -m pip install {{ page.pypi }}</kbd> | ||
| </li> | ||
| {% endif %} | ||
| </ul> | ||
| </dd> | ||
| {% endif %} | ||
| <dt>License</dt> | ||
| <dd class="ecosystemEntryLicense"> | ||
| {{ page.license }} | ||
| </dd> <!-- TODO: link known licenses --> | ||
| <dt>Plugins</dt> | ||
| <dd class="ecosystemEntryPlugins"> | ||
| <ul> | ||
| {% for category in site.ecosystem_catalog.categories %} | ||
| {% for plugin in page[category.name] %} | ||
| <li>{{ plugin.name }}</li> | ||
| {% endfor %} | ||
| {% endfor %} | ||
| </ul> | ||
| </dd> | ||
| {% if page.publications %} | ||
| <dt>Publications</dt> | ||
| <dd class="ecosystemEntryPublications"> | ||
| <ul> | ||
| {% for pub in page.publications %} | ||
| <li><a href="{{ pub }}">{{ pub }}</a></li> | ||
| {% endfor %} | ||
| </ul> | ||
| </dd> | ||
| {% endif %} | ||
| </dl> | ||
| </aside> | ||
|
|
||
| <ul class="ecosystemCategoryTag"> | ||
| {% for category in site.ecosystem_catalog.categories %} | ||
| {% if page[category.name] %} | ||
| <li>{{ category.label | upcase }}</li> | ||
| {% endif %} | ||
| {% endfor %} | ||
| </ul> | ||
|
|
||
| {{ page.content | markdownify }} | ||
|
|
||
| </div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this needs updating to the new schema I think. I'd also err on the side of more descriptive prompts inside each placeholder, e.g.
<CATEGORY (one of Atom Mapper, Scorer, Planner, Protocol)>