lofar-astron / RMextract

extract TEC, vTEC, Earthmagnetic field and Rotation Measures from GPS and WMM data for radio interferometry observations
GNU General Public License v3.0
31 stars 22 forks source link

PyPI releases #57

Open AlecThomson opened 2 months ago

AlecThomson commented 2 months ago

Hi @maaijke @gmloose ,

With the recent changes going into RMextract, will there be new releases onto PyPI? The last release is from 2021 it seems.

It may be neat to setup some CI/CD tools to automatically release new versions onto PyPI, if desired. I can help to get those implemented if that'd be useful.

gmloose commented 2 months ago

That is definitely the intention, yes. I leave it to @maaijke to decide when she thinks it's the proper time to do so. Some extra hands to help with automation would be welcomed very much. I sometimes struggle to find the time 😄.

maaijke commented 2 months ago

Yesy please make a new version @gmloose I understand that the master is used in Linc so it should be fine. I hope to start soon on a complete rewrite of RMextract I will contact you @AlecThomson when I am ready

gmloose commented 2 months ago

OK, I've put it on the top of my to-do list.

AlecThomson commented 1 month ago

EDIT: I now have a better understanding of dynamic versioning, am changing this comment completely.

We can use the GitHub action like pypi-publish to publish to PyPI automatically.

I've recently been using config like this (note this uses a poetry build, which won't apply here)

name: Python package
on:
  push:
    tags:
      - "v*.*.*"
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Build and publish to pypi
        uses: JRubics/poetry-publish@v2.0
        with:
          pypi_token: ${{ secrets.PYPI_TOKEN }}

Which triggers when a release with the tag "v*.*.*" is made.

Let me know what you think and I can start a PR :)

It looks like the best option will be to follow this guide: https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/

gmloose commented 1 month ago

I've done this in the past. Here are two examples to get you going; they take slightly different approaches:

Both use automatic versioning using setuptool_scm and cibuildwheel for building portable binary wheels.