OpenFAST / openfast_toolbox

Miscellaneous Python tools for OpenFAST
17 stars 14 forks source link

Add installation from PyPI #4

Open cortadocodes opened 8 months ago

cortadocodes commented 8 months ago

I'm using openfast_toolbox as part of a dockerised productionised app but running into issues with the current installation method. The usual way I'd install a package would be

pip install <package-name>

or

poetry add <package-name>

Having to install by cloning and then editably installing makes it difficult to properly manage the dependencies for openfast_toolbox alongside the other packages in my app and means I have to create a specific Dockerfile just to run this installation method instead of using one of the generic ones we create for our apps. Editably installing is also not best practice for a productionised app but I'm unsure whether it's ok to install it non-editably.

Is there a reason why openfast_toolbox isn't available on the PyPI package registry? If not, would you be able to publish it on PyPI so we can more easily install and use it?

cortadocodes commented 8 months ago

I've had a quick look at setup.py, Makefile, and your development CI workflow and I think it would be quite easy to do this - I'm happy to contribute a small PR that adds PyPI publishing if there isn't a reason I've missed that would make it particularly challenging!

cortadocodes commented 5 months ago

@ebranlard any thoughts? I'm about to start developing some more open-source openfast-based tools so it would be really useful to get some versions of this package both tagged on GitHub and published to PyPI

rafmudaf commented 5 months ago

@andrew-platt @deslaughter you might have an opinion, as well

andrew-platt commented 5 months ago

@ptrbortolotti might have more of an opinion on this than I do.

I'm definitely open to making this easier to install through PyPI or docker. However, I'm not really a regular user of this package, so I don't have a strong opinion.

andrew-platt commented 5 months ago

@rthedin may also have an opinion here.

rafmudaf commented 5 months ago

@cortadocodes This repository has largely been a side project for a few NREL researchers, and no one is directly responsible for maintaining and supporting it. My primary concern with publishing it more broadly is:

A possible solution is to state it clearly in the repository that this project is community maintained, and encourage users to fix anything that they see missing including the above points. Being the person to bring it up, this may fall on you :wink: If that sounds good to you, I'm happy to work with you to review a pull request to add the upload to PyPI to this repo's CI and manage the project on PyPI.

cortadocodes commented 5 months ago

Community maintenance sounds good to me! I think it will be beneficial to the project and its users and increase the speed we can get features that we need 🙂 We're happy at Octue to be one of the contributors.

Who fixes the build system when inevitably something changes

I think fixes and changes could be done on an as-needed and when-developers-are-available basis

Who creates new releases in the openfast-toolbox repo to trigger the upload to PyPI

I'm happy to set up some CI workflows that automate the releases including publishing to PyPI. We'd just need to adopt a gitflow where all updates to main go through a pull request on a separate branch (if that's not the case already).

cortadocodes commented 5 months ago

I think this issue can be combined with https://github.com/OpenFAST/openfast/issues/1851 - let's carry on the conversation there?