claritychallenge / clarity

Clarity Challenge toolkit - software for building Clarity Challenge systems
https://claritychallenge.github.io/clarity
MIT License
132 stars 54 forks source link

[FEATURE] Release to PyPI #36

Closed ns-rse closed 1 year ago

ns-rse commented 2 years ago

Is your feature request related to a problem? Please describe.

Making pyclarity available on PyPI would make installation easier, particularly as development progresses.

Describe the solution you'd like

Automated publishing of commits tagged with versions to PyPI should occur. This is possible with pypi-publish GitHub Action.

Describe alternatives you've considered

Manual releases are also possible, but should not be needed if the process can be automated.

Additional context

N/A.

ns-rse commented 2 years ago

Given time frame I think it may be prudent to manually release first and then address automating publishing to PyPI based on tags/releases via workflow.

Test releases are being made to Test PyPI. @jonbarker68 has highlighted the need to include the recipes/* directory structure and this will be done by including __init__.py in the relevant directories.

The versioning is something I've not really dealt with in great detail and think the versioneer package can be utilised to avoid having to manually adjust versions in various files (setup.cfg and clarity/__init__.py) as it automates aligning the version with GitHub tags/releases so I'll document that in a separate issue.

jonbarker68 commented 2 years ago

Yes, that sounds very sensible.

@ns-rse Yes, looks like there are many directories in the recipes tree that contain python code but no init.py. But there are also directories such as clarity/data/params that contain data files that are loaded by some library function but which contain no python files. These currently don't have init.py files. Do they need them for the packager to find them? Or is it only things that need to be found for import that need init.py?

There's a page here http://sixty-north.com/blog/including-package-data-in-python-packages.html that suggests that for including data files in a package you need a MANIFEST.in.

jonbarker68 commented 1 year ago

Closing issue