-
Notifications
You must be signed in to change notification settings - Fork 44
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
Pip install #77
Pip install #77
Conversation
|
||
setup( | ||
name="ngff", | ||
version="0.0.4dev", |
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 version
probably expresses best my concerns about the multi-type repository. Turning it into a question, what is our positions on the different versions in this repository? I see at least 3 sources of truth:"
- the version of the Python library shipping the schemas (0.0.4.dev)
- the version of the latest schema (currently 0.3.0)
- the latest repository tag (currently 0.1.3)
Are these versions expected to be in sync or evolve independently. For all the versions that are in sync, can we use a single-source of truth.
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.
The "version of the latest schema" is defined by the most recent top-level directory, currently /0.3/
but I think that doesn't have to match the current version in setup.py, since the directory will never be named *dev
. But at each release they should match and correspond to the repo tag (with bumpversion being the single source of truth).
setup.py
Outdated
description="Next-Generation File Format: spec and schemas", | ||
long_description=read("README.md"), | ||
long_description_content_type="text/markdown", | ||
packages=["ngff"], |
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.
See ome/ome-zarr-py#142 (review) for a suggestion of prefixing the package with ome_
"Programming Language :: Python", | ||
"Programming Language :: Python :: 3", | ||
"Operating System :: OS Independent", | ||
"License :: OSI Approved :: BSD License", |
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.
Another issue to clarify is that the repository is currently marked under the W3C Sofware and Document License - see https://github.com/ome/ngff/blob/main/LICENSE.md
so at least locally it looks like the schemas are not bundled On the exclusion of examples, probably also a topic up for discussion but in the case of ome-model, we had several conversation about the potential value of packaging our XML samples in the specification JAR. |
Trying to get Also get everything with:
With this (or empty MANIFEST.in) I get everything copied
With this, I get
Switching them the other way up gives me everything if the file ends with a blank line!
Always making sure to not include a blank line now... This still gives me everything:
and so does this, maybe because
Ooops - just noticed a typo in recusive in last 2 examples!? So don't understand why they're copying everything.
So does:
and this also gives everything:
and so does:
This includes everything:
Can't get a handle on this - even getting different results with the same MANIFEST.in at different times... 😢 |
I am not quite sure what's blocking here. Is it just the question about how to include the schemas into the package data? |
The first issue is functional I did not manage to get this working in #77 (comment). It might be ready to be retested with the last commit? Additionally, I am still unsure of how much Python specificity should be introduced into this repository. We have a very similar experience in https://github.com/ome/ome-model which includes some specification (OME XSD schemas), the OME-XML Java library and formerly the OME-XML C++ library. When working actively on the specification, this level of high coupling makes complete sense as you want these components to be updated and maintained in sync. As the library matures, this tends to create unnecessary coupling i.e. a fix that only affects the Python package would requires a release of any othe component. #77 (comment) is a concrete instance of a lifecycle question that is generated by this coupling. |
I couldn't work out how to get the schemas included, but not to include everything under |
My 2cents: I would avoid doing anything python specific for distributing the spec and rather implement this in
Yes, somehow including non-python files with |
👍 for a download based workflow in the language-specific implementations. Perhaps the ngff build creates a bundle that can be accessed e.g. |
Would it be possible to update the schemas in the |
I am not sure I understand. Are you suggesting that |
I think, when I was working on ome/ome-zarr-py#142, I was able to |
I was assuming the download would be packaged into the |
No, I don't think it's worth re-testing. I didn't make any progress on packaging above. Not sure what to try next. |
Going with a different strategy at ome/ome-zarr-py#142 |
Add
schemas.py
from ome/ome-zarr-py#142 so that we can do:Built and pushed to test-pypi for testing with
To test:
Then:
NB: packaging included lots of files eg.
0.x/examples/
but I failed to exclude with a MANIFEST.in.