Skip to content
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

move pyiron_ontology to standalone table #2

Merged
merged 1 commit into from
Jan 22, 2024

Conversation

liamhuber
Copy link
Member

Dependencies are all pinned properly with daily CI runs working fine; coverage is 95%; readthedocs is up and running.

The dependencies are only numpy, owlready2, pandas, and pint, so I think "standalone" make sense.

Dependencies are all pinned properly with daily CI runs working fine; coverage is 95%; readthedocs is up and running. 

The dependencies are only numpy, owlready2, pandas, and pint, so I think "standalone" make sense.
@@ -29,6 +29,7 @@ To increase the maintainability of the `pyiron` project, there is a continuous r
| [atomistics](https://github.com/pyiron/atomistics) | Interfaces for atomistic simulation codes and workflows | [![Coverage Status](https://coveralls.io/repos/github/pyiron/atomistics/badge.svg?branch=main)](https://coveralls.io/github/pyiron/atomistics?branch=main) | [:books:](https://atomistics.readthedocs.io) | [:package:](https://anaconda.org/conda-forge/atomistics) |
| [pyfileindex](https://github.com/pyiron/pyfileindex) | Pythonic file system index | [![Coverage Status](https://coveralls.io/repos/github/pyiron/pyfileindex/badge.svg?branch=main)](https://coveralls.io/github/pyiron/pyfileindex?branch=main) | | [:package:](https://anaconda.org/conda-forge/pyfileindex) |
| [pyiron_lammps](https://github.com/pyiron/pyiron_lammps) | Vector-oriented LAMMPS interface to rapidly iterate over series of atomistic structures or interatomic potentials. | [![Coverage Status](https://coveralls.io/repos/github/pyiron/pyiron_lammps/badge.svg?branch=main)](https://coveralls.io/github/pyiron/pyiron_lammps?branch=main) | | [:package:](https://anaconda.org/conda-forge/pyiron_lammps) |
| [pyiron_ontology](https://github.com/pyiron/pyiron_ontology) | Leveraging ontologies for dynamic typing and guided workflow design | [![Coverage Status](https://coveralls.io/repos/github/pyiron/pyiron_ontology/badge.svg?branch=main)](https://coveralls.io/github/pyiron/pyiron_ontology?branch=main) | [:books:](https://pyiron-ontology.readthedocs.io) | [:package:](https://anaconda.org/conda-forge/pyiron_ontology) |
Copy link
Member

@jan-janssen jan-janssen Jan 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I currently do not see that pyiron_ontology fits for:

there is a continuous release of spin-off packages which are used inside pyiron, but which can also be used as stand-alone packages

I would rather move it to the Stable Version section just like pyiron_contrib

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thinking about this a bit more the Stable Version is most likely also not the right category. I guess my biggest issue is currently that I do not see how pyiron_ontology is currently used or how it is going to be used in future.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I currently do not see that pyiron_ontology fits for:

there is a continuous release of spin-off packages which are used inside pyiron, but which can also be used as stand-alone packages

If this objection is something beyond your second comment about where/how it is used, please expand; I don't see how pyiron_ontology fails to fit this description.

Thinking about this a bit more the Stable Version is most likely also not the right category.

I agree; those packages (ex.-base) are all domain specific, depend on pyiron_base (afaik), and have some corpus of data associated with them. Those criteria aren't explicitly listed in the header, but I agree pyiron_ontology does not fit in well.

I guess my biggest issue is currently that I do not see how pyiron_ontology is currently used or how it is going to be used in future.

The first clause is extremely straightforward: pyiron_ontology is already used in ironflow. In the example below (also demo'd on the ironflow landing page) it is leveraged to provide both the dynamic (i.e. use-based) typing that controls whether connections are allowed, and the node recommendation system, which is powered by the the same functionality as the "workflow tree" example in the pyiron_ontology docs:

ironflow_ontology

As for future use, of course that's harder to nail down. @JNmpi has requested and I fully agree that pyiron_workflow should get extended with ontological typing (ala ironflow). In the course of doing that I would expect to make changes to pyiron_ontology -- possibly even significant ones -- but since it's already working and has demonstrated applicability to the problem, it's the logical place to start for that functionality.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The first clause is extremely straightforward: pyiron_ontology is already used in ironflow.

But then I do not understand why you do not want to keep it in Next Generation Developments

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because it is a small, standalone tool that I can see being useful to other projects that want to exploit dynamic typing or workflow-tree constructions. I.e. I see it as a standalone tool, and not something that is intrinsically or exclusively for use with other pyiron modules

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From my perspective pyiron_ontology is a library for the packages in Next Generation Developments - mainly ironflow as you explained above. In contrast to this, the packages in Stand-alone Packages are libraries for the current stable version and the new developments. Therefore pyiron_ontology belongs to Next Generation Developments.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From my perspective pyiron_ontology is a library for the packages in Next Generation Developments - mainly ironflow as you explained above.

For me this is a bit of a chicken-and-egg issue; the library (afaik) is currently only leveraged by ironflow, but it is fully standalone and can be leveraged in non-pyiron projects just as well. Moving it to the Stand alone table makes this generic usability clear and raises visibility.

In contrast to this, the packages in Stand-alone Packages are libraries for the current stable version and the new developments. Therefore pyiron_ontology belongs to Next Generation Developments.

IMO this is an overly restrictive interpretation of "used in pyiron" that overrides the more important section-header description of "Stand alone".

If we do choose to apply this more restrictive interpretation, I suppose pyiron_lammps then also needs to be moved to another section.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we do choose to apply this more restrictive interpretation, I suppose pyiron_lammps then also needs to be moved to another section.

That's a good suggestion - I am happy to move pyiron_lammps to Next Generation Developments

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we do choose to apply this more restrictive interpretation, I suppose pyiron_lammps then also needs to be moved to another section.

That's a good suggestion - I am happy to move pyiron_lammps to Next Generation Developments

🤦‍♂️ while I appreciate the internal consistency, that wasn't my main point. IMO ironflow should be in Next Generation Developments because it is a proof-of-concept in scope and, importantly, not receiving active dependency updates; pyiron_workflow should be in Next Generation Developments because it is feature-incomplete (storage is not merged, database interactions are non-existent).

In contrast, pyiron_lammps and pyiron_ontology are both feature-complete, stable, and useable as-is. Stand alone is quite a sensible place for both.

(As an aside, pyiron_gui can probably be over in Stable as well, although it's possible @niklassiemer has some feature incompleteness concerns he wants to address first, similar to my feelings on pyiron_workflow).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we should discuss this topic in the next pyiron meeting, as I feel it is a more fundamental discussion how we want to define the categories on the GitHub overview page.

@jan-janssen
Copy link
Member

As discussed in the pyiron meeting, we agreed to move pyiron_ontology to Stand-alone Packages and pyiron_gui to Stable Version, reducing the next generation developments to pyiron_workflow and ironflow.

@liamhuber liamhuber merged commit 070ae2d into main Jan 22, 2024
@liamhuber liamhuber deleted the pyiron_ontology_as_standalone branch January 22, 2024 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants