diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml index fd674149..8c0d3c3d 100644 --- a/.github/workflows/prepare-release.yml +++ b/.github/workflows/prepare-release.yml @@ -65,20 +65,29 @@ jobs: echo "Current version: $CURRENT_VERSION" echo "New version: $NEW_VERSION" - # Update package.json version field manually - yarn workspace @openzeppelin/compact-contracts version "$NEW_VERSION" + # Update package.json version field + node -e ' + const fs = require("fs"); + const path = "./contracts/package.json"; + const pkg = JSON.parse(fs.readFileSync(path, "utf8")); + pkg.version = process.env.NEW_VERSION; + fs.writeFileSync(path, JSON.stringify(pkg, null, 2) + "\n"); + ' # Escape special characters for sed ESCAPED_CURRENT=$(printf '%s' "$CURRENT_VERSION" | sed -e 's/[\/&]/\\&/g') ESCAPED_NEW=$(printf '%s' "$NEW_VERSION" | sed -e 's/[\/&]/\\&/g') + # Pattern to match version + optional prerelease (-alpha.1) and build (+build) suffixes + VERSION_SUFFIX='(-[A-Za-z0-9.]+)?(\+[A-Za-z0-9.]+)?' + # Replace version in contracts/src/ find ./contracts/src/ -type d -name '.*' -prune -o \ - -type f -exec sed -i "s#$ESCAPED_CURRENT#$ESCAPED_NEW#g" {} + + -type f -exec sed -Ei "s#${ESCAPED_CURRENT}${VERSION_SUFFIX}#$ESCAPED_NEW#g" {} + # Replace version in docs/, excluding package-lock.json find ./docs/ -type d -name '.*' -prune -o \ - -type f ! -name 'package-lock.json' -exec sed -i "s#$ESCAPED_CURRENT#$ESCAPED_NEW#g" {} + + -type f ! -name 'package-lock.json' -exec sed -Ei "s#${ESCAPED_CURRENT}${VERSION_SUFFIX}#$ESCAPED_NEW#g" {} + - name: Auto-commit changes uses: stefanzweifel/git-auto-commit-action@778341af668090896ca464160c2def5d1d1a3eb0 #v6.0.1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4e1a335b..4a9a090a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -81,7 +81,7 @@ jobs: - name: Publish to npm run: | # Publish the tarball with appropriate tag - npm publish "${{ steps.pack.outputs.tarball }}" --tag "${{ steps.pack.outputs.tag }}" --access public --provenance + npm publish "${{ steps.pack.outputs.tarball }}" --tag "${{ steps.pack.outputs.tag }}" --access public env: NPM_CONFIG_PROVENANCE: true diff --git a/contracts/package.json b/contracts/package.json index fa756f84..16e7a728 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -1,6 +1,6 @@ { "name": "@openzeppelin/compact-contracts", - "version": "0.0.1", + "version": "0.0.1-alpha.0", "description": "OpenZeppelin Compact contract library", "keywords": [ "openzeppelin",