diff --git a/.github/workflows/assets.yml b/.github/workflows/assets.yml index 41efe354..3d9d8d79 100644 --- a/.github/workflows/assets.yml +++ b/.github/workflows/assets.yml @@ -37,19 +37,21 @@ jobs: - name: Wheel path id: wheel working-directory: pybuild/dist/ - run: echo "{wheel}={$(ls *.whl)}" >> $GITHUB_OUTPUT + run: | + echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_OUTPUT + echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_ENV - uses: actions/upload-artifact@v3 with: name: pypi-macos-py${{ matrix.python }} - path: pybuild/dist/${{ steps.wheel.outputs.wheel }} + path: pybuild/dist/${{ env.WHEEL_NAME }} - uses: actions/upload-release-asset@v1 if: ${{ github.event_name == 'release' && github.event.action == 'created' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: pybuild/dist/${{ steps.wheel.outputs.wheel }} - asset_name: ${{ steps.wheel.outputs.wheel }} + asset_path: pybuild/dist/${{ env.WHEEL_NAME }} + asset_name: ${{ env.WHEEL_NAME }} asset_content_type: application/zip manylinux-x64: @@ -88,19 +90,21 @@ jobs: - name: Wheel path id: wheel working-directory: wheelhouse - run: echo "{wheel}={$(ls *.whl)}" >> $GITHUB_OUTPUT + run: | + echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_OUTPUT + echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_ENV - uses: actions/upload-artifact@v3 with: name: pypi-linux-${{ matrix.cpython_version }} - path: wheelhouse/${{ steps.wheel.outputs.wheel }} + path: wheelhouse/${{ env.WHEEL_NAME }} - uses: actions/upload-release-asset@v1 if: ${{ github.event_name == 'release' && github.event.action == 'created' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: wheelhouse/${{ steps.wheel.outputs.wheel }} - asset_name: ${{ steps.wheel.outputs.wheel }} + asset_path: wheelhouse/${{ env.WHEEL_NAME }} + asset_name: ${{ env.WHEEL_NAME }} asset_content_type: application/zip manylinux-arm64: @@ -151,19 +155,21 @@ jobs: - name: Wheel path id: wheel working-directory: wheelhouse - run: echo "{wheel}={$(ls *.whl)}" >> $GITHUB_OUTPUT + run: | + echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_OUTPUT + echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_ENV - uses: actions/upload-artifact@v3 with: name: pypi-linux-${{ matrix.cpython_version }} - path: wheelhouse/${{ steps.wheel.outputs.wheel }} + path: wheelhouse/${{ env.WHEEL_NAME }} - uses: actions/upload-release-asset@v1 if: ${{ github.event_name == 'release' && github.event.action == 'created' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: wheelhouse/${{ steps.wheel.outputs.wheel }} - asset_name: ${{ steps.wheel.outputs.wheel }} + asset_path: wheelhouse/${{ env.WHEEL_NAME }} + asset_name: ${{ env.WHEEL_NAME }} asset_content_type: application/zip windows-x64: @@ -190,19 +196,22 @@ jobs: - name: Wheel path id: wheel working-directory: pybuild/dist/ - run: echo "{wheel}={$(Get-ChildItem -name *.whl)}" >> $GITHUB_OUTPUT + run: | + echo "WHEEL_NAME=$(Get-ChildItem -name *.whl)" >> $env:GITHUB_OUTPUT + echo "WHEEL_NAME=$(Get-ChildItem -name *.whl)" >> $env:GITHUB_ENV + shell: powershell - uses: actions/upload-artifact@v3 with: name: pypi-windows-py${{ matrix.python }} - path: pybuild/dist/${{ steps.wheel.outputs.wheel }} + path: pybuild/dist/${{ env.WHEEL_NAME }} - uses: actions/upload-release-asset@v1 if: ${{ github.event_name == 'release' && github.event.action == 'created' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: pybuild/dist/${{ steps.wheel.outputs.wheel }} - asset_name: ${{ steps.wheel.outputs.wheel }} + asset_path: pybuild/dist/${{ env.WHEEL_NAME }} + asset_name: ${{ env.WHEEL_NAME }} asset_content_type: application/zip publish: diff --git a/CHANGELOG.md b/CHANGELOG.md index 154561b4..18d3303e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## [ 0.5.1 ] - [ 2024-01-08 ] + +### Added + +### Changed + +- Fixed `upload-release-asset` steps in `.github/workflow/assets.yml`. +- Updated `RELEASE.md`. + +### Removed + ## [ 0.5.0 ] - [ 2023-12-16 ] ### Added diff --git a/RELEASE.md b/RELEASE.md index e3c57236..502a9f45 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,41 +1,39 @@ Release procedure ================= -Most of the release process is managed by GitHub Actions. If you follow the -procedure below, it will automatically test and build all wheels and conda -packages for all platform, and publish them to PyPI and conda assuming the -secrets are configured correctly. +Most of the release process is managed by GitHub Actions. If you follow the procedure below, +it will automatically test and build all wheels for all platforms, +and publish them to PyPI assuming the secrets are configured correctly. - - Make a branch with a name starting with "release" based upon the commit that - is to be released. For example, `release-0.0.1`, but the suffix doesn't - matter. + - Make a branch with a name starting with "release" based upon the commit that is to be released. + For example, `release-0.0.1`, but the suffix doesn't matter. - - Change the version in `setup.py` (this is the only place where the version - is hardcoded) and change any other files where applicable (changelog, etc), - then commit and make a PR for it. + - Change the version in `include/version.hpp` (this is the only place where the version is hardcoded) + and change any other files where applicable (`CHANGELOG.md`, etc.), then commit and make a PR for it. - CI will now run not only the test workflow, but also the assets workflow. - The assets workflow builds the wheels and conda packages, but publishes them - to the GitHub Actions build artifacts only. You can then test these yourself - if you have reason to believe that something might be wrong with them that - CI might not catch. To find them, go to Actions -> Assets workflow -> - click the run for your branch -> Artifacts. + The assets workflow builds the wheels, but publishes them to the GitHub Actions build artifacts only. + You can then test these yourself if you have reason to believe that + something might be wrong with them that CI might not catch. + To find them, go to Actions -> Assets workflow -> click the run for your branch -> Artifacts. - - If the test or assets workflows fail, fix it before merging the PR (of - course). + - If the test or assets workflows fail, fix it before merging the PR (of course). - Once CI is green, merge the PR into `develop` if there are any changes. If no changes were needed, just delete the branch to clean up. - - If needed, also merge to `master`. + - Create and push a new tag using the same version you put in `include/version.hpp`. + For example: - - Draft a new release through the GitHub interface. Set the "tag version" - to the same version you put in `setup.py`, the title to - "Release `version`: `name`", and write a short changelog in the body. - For releases that don't go to master, check the "prerelease" box, so it - won't show up as the latest release. + ``` + git tag 0.0.1 + git push origin 0.0.1 + ``` - - CI will run the assets workflow again, now with the new version string baked - into the wheels and packages. When done, these wheels and packages are - automatically added to the GitHub release, and if the secrets/API keys for - PyPI and conda are correct, CI will publish them there. + - Draft a new release through the GitHub interface. + Set the "tag version", and the title to "Release `version`: `name`". + And write a short change log in the body. + + - CI will run the assets workflow again, now with the new version string baked into the wheels. + When done, these wheels are automatically added to the GitHub release, + and if the secrets/API keys for PyPI are correct, CI will publish them there. diff --git a/include/version.hpp b/include/version.hpp index 25737a46..597208d3 100644 --- a/include/version.hpp +++ b/include/version.hpp @@ -1,4 +1,4 @@ #pragma once -#define LIBQASM_VERSION "0.5.0" -#define LIBQASM_RELEASE_YEAR "2023" +#define LIBQASM_VERSION "0.5.1" +#define LIBQASM_RELEASE_YEAR "2024"