diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index e4e38ba..19d1c65 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -90,6 +90,8 @@ jobs: make test release: + permissions: + contents: write runs-on: ubuntu-22.04 strategy: matrix: @@ -107,11 +109,7 @@ jobs: - name: Create ZIP run: zip -r sv2v-${{ matrix.name }} ./sv2v-${{ matrix.name }} - name: Upload Release Asset - uses: actions/upload-release-asset@v1.0.2 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./sv2v-${{ matrix.name }}.zip - asset_name: sv2v-${{ matrix.name }}.zip - asset_content_type: application/zip + GH_TOKEN: ${{ github.token }} + GH_REPO: ${{ github.repository }} + run: gh release upload ${{ github.event.release.tag_name }} sv2v-${{ matrix.name }}.zip diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f5af1a..31b313c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,25 +10,25 @@ * `unique`, `unique0`, and `priority` case statements now produce corresponding `parallel_case` and `full_case` statement attributes * Added support for attributes in unary, binary, and ternary expressions -* Added support for shadowing interface names with local typenames * Added support for streaming concatenations within ternary expressions +* Added support for shadowing interface names with local typenames * Added support for passing through `wait` statements ### Bug Fixes -* Fixed an issue that prevented parsing tasks and functions with `inout` ports * Fixed signed unsized literals with a leading 1 bit (e.g., `'sb1`, `'sh8f`) incorrectly sign-extending in size and type casts * Fixed conflicting genvar names when inlining interfaces and modules that use them; all genvars are now given a design-wide unique name -* Fixed byte order of strings in size casts * Fixed unconverted structs within explicit type casts +* Fixed byte order of strings in size casts * Fixed unconverted multidimensional struct fields within dimension queries * Fixed non-typenames (e.g., from packages or subsequent declarations) improperly shadowing the names of `struct` pattern fields * Fixed shadowing of interface array indices passed to port connections * Fixed failure to resolve typenames suffixed with dimensions in contexts permitting both types and expressions, e.g., `$bits(T[W-1:0])` +* Fixed an issue that prevented parsing tasks and functions with `inout` ports * Fixed errant constant folding of shadowed non-trivial localparams * Fixed conversion of function calls with no arguments passed to other functions * Fixed certain non-ANSI style port declarations being incorrectly reported as diff --git a/release.sh b/release.sh new file mode 100755 index 0000000..18af843 --- /dev/null +++ b/release.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +set -e +set -x + +version=$1 + +# ensure there are no uncommitted changes +[ "" == "$(git status --porcelain)" ] + +# update the version in sv2v.cabal +sed -i.bak -e "s/^version.*/version: $version/" sv2v.cabal +diff sv2v.cabal{,.bak} && echo not changed && exit 1 || true +rm sv2v.cabal.bak + +# update the version in CHANGELOG.md +sed -i.bak -e "s/^## Unreleased$/## v$version/" CHANGELOG.md +diff CHANGELOG.md{,.bak} && echo not changed && exit 1 || true +rm CHANGELOG.md.bak + +# create the release commit and tag +git commit -a -m "release v$version" +git tag -a v$version HEAD -m "Release v$version" + +# build and test +make +make test +[ $version == `bin/sv2v --numeric-version` ] + +# push the release commit and tag +git push +git push origin v$version + +# create the GitHub release +notes=`pandoc --from markdown --to markdown --wrap none CHANGELOG.md | \ + sed '3,/^## /!d' | \ + tac | tail -n +3 | tac` +gh release create v$version --title v$version --notes "$notes" + +# create the Hackage release candidate +stack upload --test-tarball --candidate .