dassh-dev / dassh

Ducted Assembly Steady State Heat Transfer Software (DASSH)
Other
17 stars 6 forks source link

Publish to PyPi and Conda #20

Open kkiesling opened 1 year ago

kkiesling commented 1 year ago

Seeing as DASSH is open source and only requires a pip install, it would be possible to formally publish this to the PyPI package index which would allow users to install without needing to clone the repository. Once this is available on PyPI, it is a simple task to add as a conda package on conda-forge as well, therefore supporting multiple Python package managers. Once both are initially setup, any time a new release is made, the PyPI package will automatically publish and an automated PR will open on the conda-forge repo to release it there.

The steps to make this happen:

Adding to PyPI:

  1. Setup a python-publish.yml workflow file
  2. Ensure the repo is setup for packaging (I believe it already is setup properly minus the pyproject.toml file) and publish it to the test PyPI
  3. Do a formal GitHub release for DASSH (right now there are a few tags and a few PRs indicating some version # but no formal release has been done on the platform)
  4. Register an account on PyPI and formalize the upload to the main package registry

Adding to Conda-forge:

  1. Use the conda-forge tools to automatically generate a recipe from the setup.py.
  2. Make a PR in the conda-forge staging area to add the package and await approval. Once PR is merged from staging, the feedstock for us to maintain (mostly automated) will be ready.

An example of a package that has done exactly this is the OpenMC Plotter:

MilosAtz commented 1 year ago

This is a great idea - thanks for pointing out some useful examples to follow! I can take a look and make some moves on it this weekend.

kkiesling commented 1 year ago

I can work on this too! I have published a few things to conda already so I know how that works. I haven't published to PyPi but I think I could figure it out.

kkiesling commented 1 year ago

I am going to start an official github release right now to at least have that available to me in PyARC

kkiesling commented 1 year ago

I made a v0.12.2 release from the current develop branch. If we use official releases there is not really a big reason to use both master and develop here, but we can republish from master if that is preferred. It probably makes most sense to set develop as the default branch.