From aada549f45ef35803a3dbde46c574787db7c5215 Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Sat, 27 Sep 2025 19:13:58 +0100 Subject: [PATCH 01/13] feat: add script to bump versions and bump to 0.0.15-test --- Cargo.toml | 2 +- crates/wasm/package.json | 2 +- package.json | 6 +- packages/enclave-config/package.json | 2 +- packages/enclave-contracts/package.json | 2 +- packages/enclave-react/package.json | 2 +- packages/enclave-sdk/package.json | 2 +- pnpm-lock.yaml | 6 + scripts/README.md | 22 +++ scripts/bump-versions.ts | 224 ++++++++++++++++++++++++ 10 files changed, 262 insertions(+), 8 deletions(-) create mode 100644 scripts/bump-versions.ts diff --git a/Cargo.toml b/Cargo.toml index e3ffd14a38..6d75ee0e14 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,7 +52,7 @@ push-remote = "origin" publish = true [workspace.package] -version = "0.0.1-test" +version = "0.0.15-test" edition = "2021" license = "LGPL-3.0-only" description = "E3 โ€” Encrypted Execution Environments" diff --git a/crates/wasm/package.json b/crates/wasm/package.json index e1d343aff1..82e7e4ea06 100644 --- a/crates/wasm/package.json +++ b/crates/wasm/package.json @@ -1,6 +1,6 @@ { "name": "@enclave-e3/wasm", - "version": "0.0.14-test", + "version": "0.0.15-test", "description": "Wasm modules for enclave.", "main": "dist/node/e3_wasm.js", "module": "dist/web/e3_wasm.js", diff --git a/package.json b/package.json index fa89f3c7bc..a14ea337c4 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "url": "https://github.com/gnosisguild" }, "scripts": { - "bump:versions": "pnpm --filter \"@enclave-e3/contracts\" --filter \"@enclave-e3/sdk\" --filter \"@enclave-e3/react\" --filter \"@enclave-e3/config\" --filter \"@enclave-e3/wasm\" exec npm version", + "bump:versions": "tsx scripts/bump-versions.ts", "clean": "cd packages/enclave-contracts && pnpm clean", "compile": "pnpm evm:build && pnpm sdk:build && pnpm react:build && pnpm ciphernode:build && ./scripts/compile-circuits.sh", "lint": "pnpm evm:lint && pnpm ciphernode:lint && ./scripts/lint-circuits.sh", @@ -59,7 +59,9 @@ "devDependencies": { "@changesets/cli": "^2.27.1", "@types/node": "22.7.5", - "husky": "^9.1.7" + "husky": "^9.1.7", + "tsx": "^4.20.3", + "typescript": "5.8.3" }, "pnpm": { "overrides": { diff --git a/packages/enclave-config/package.json b/packages/enclave-config/package.json index c58aee7b80..e261803010 100644 --- a/packages/enclave-config/package.json +++ b/packages/enclave-config/package.json @@ -1,6 +1,6 @@ { "name": "@enclave-e3/config", - "version": "0.0.14-test", + "version": "0.0.15-test", "publishConfig": { "access": "public" }, diff --git a/packages/enclave-contracts/package.json b/packages/enclave-contracts/package.json index 9fcbc286e6..fa841e50a0 100644 --- a/packages/enclave-contracts/package.json +++ b/packages/enclave-contracts/package.json @@ -1,7 +1,7 @@ { "name": "@enclave-e3/contracts", "description": "Enclave is an open-source protocol for Encrypted Execution Environments (E3).", - "version": "0.0.14-test", + "version": "0.0.15-test", "license": "LGPL-3.0-only", "type": "module", "author": { diff --git a/packages/enclave-react/package.json b/packages/enclave-react/package.json index 5c8e9926a9..cd26f4ba80 100644 --- a/packages/enclave-react/package.json +++ b/packages/enclave-react/package.json @@ -1,6 +1,6 @@ { "name": "@enclave-e3/react", - "version": "0.0.14-test", + "version": "0.0.15-test", "description": "React hooks and utilities for Enclave SDK", "type": "module", "private": false, diff --git a/packages/enclave-sdk/package.json b/packages/enclave-sdk/package.json index b62231ed04..73eda08cd9 100644 --- a/packages/enclave-sdk/package.json +++ b/packages/enclave-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@enclave-e3/sdk", - "version": "0.0.14-test", + "version": "0.0.15-test", "type": "module", "exports": { ".": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b8386ba0b4..387f553809 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,6 +24,12 @@ importers: husky: specifier: ^9.1.7 version: 9.1.7 + tsx: + specifier: ^4.20.3 + version: 4.20.5 + typescript: + specifier: 5.8.3 + version: 5.8.3 crates/wasm: devDependencies: diff --git a/scripts/README.md b/scripts/README.md index e605e9dea2..42085972bb 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -2,6 +2,28 @@ This directory contains utility scripts for the Enclave project. +## Version Bumper + +`bump-versions.ts` - Bumps the versions of all packages and crates in the project. + +### Usage + +```bash +pnpm bump:versions +``` + +Example: + +```bash +pnpm bump:versions 1.0.0 +``` + +### What it does + +- Bumps the versions of all packages and crates in the project. +- Updates the versions in the `Cargo.toml` files. +- Updates the versions in the `package.json` files. + ## License Header Checker `check-license-headers.sh` - Checks and fixes SPDX license headers in source files. diff --git a/scripts/bump-versions.ts b/scripts/bump-versions.ts new file mode 100644 index 0000000000..298954cf4d --- /dev/null +++ b/scripts/bump-versions.ts @@ -0,0 +1,224 @@ +#!/usr/bin/env tsx + +import { readFileSync, writeFileSync, existsSync } from 'fs' +import { join, resolve } from 'path' + +interface PackageJson { + name: string + version: string + [key: string]: any +} + +class VersionBumper { + private newVersion: string + private rootDir: string + + constructor(newVersion: string) { + this.newVersion = newVersion + this.rootDir = resolve(__dirname, '..') + } + + /** + * Main entry point to bump all versions + */ + async bumpAll(): Promise { + console.log(`๐Ÿš€ Bumping all versions to ${this.newVersion}`) + + try { + // Validate version format + this.validateVersion(this.newVersion) + + // Bump Rust crates + await this.bumpRustCrates() + + // Bump npm packages + await this.bumpNpmPackages() + + console.log('โœ… All versions bumped successfully!') + console.log('\n๐Ÿ“‹ Summary:') + console.log(` Rust crates: ${this.newVersion}`) + console.log(` NPM packages: ${this.newVersion}`) + console.log('\n๐Ÿ’ก Next steps:') + console.log(' 1. Review the changes') + console.log(' 2. Commit the changes') + console.log(' 3. Run tests to ensure everything works') + + } catch (error) { + console.error('โŒ Error bumping versions:', error) + process.exit(1) + } + } + + /** + * Validate version format (semantic versioning) + */ + private validateVersion(version: string): void { + const semverRegex = /^\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$/ + if (!semverRegex.test(version)) { + throw new Error(`Invalid version format: ${version}. Expected format: x.y.z[-prerelease][+build]`) + } + } + + /** + * Bump versions in all Rust crates + */ + private async bumpRustCrates(): Promise { + console.log('\n๐Ÿฆ€ Bumping Rust crate versions...') + + // Update root Cargo.toml workspace version (this propagates to all crates) + const rootCargoPath = join(this.rootDir, 'Cargo.toml') + this.updateCargoToml(rootCargoPath, 'workspace.package.version') + + // Update workspace dependencies in root Cargo.toml + this.updateWorkspaceDependencies(rootCargoPath) + + console.log(' โœ“ All workspace crates (via workspace.version)') + } + + /** + * Bump versions in all npm packages + */ + private async bumpNpmPackages(): Promise { + console.log('\n๐Ÿ“ฆ Bumping NPM package versions...') + + // Main packages to bump (excluding examples and templates) + const packagesToBump = [ + 'packages/enclave-sdk', + 'packages/enclave-contracts', + 'packages/enclave-config', + 'packages/enclave-react', + 'crates/wasm' + ] + + for (const packagePath of packagesToBump) { + const fullPath = join(this.rootDir, packagePath) + const packageJsonPath = join(fullPath, 'package.json') + + if (existsSync(packageJsonPath)) { + this.updatePackageJson(packageJsonPath) + const packageName = this.getPackageName(packageJsonPath) + console.log(` โœ“ ${packageName}`) + } + } + } + + /** + * Update Cargo.toml file + */ + private updateCargoToml(filePath: string, versionKey: string): void { + const content = readFileSync(filePath, 'utf-8') + const lines = content.split('\n') + + let inTargetSection = false + let updated = false + + for (let i = 0; i < lines.length; i++) { + const line = lines[i].trim() + + // Check if we're in the target section + if (line === `[${versionKey.split('.').join('].')}]` || + (versionKey === 'workspace.package.version' && line === '[workspace.package]')) { + inTargetSection = true + continue + } + + // If we're in the target section and find a version line + if (inTargetSection && line.startsWith('version = ')) { + lines[i] = `version = "${this.newVersion}"` + updated = true + break + } + + // Reset section flag when we hit a new section + if (line.startsWith('[') && inTargetSection) { + break + } + } + + if (updated) { + writeFileSync(filePath, lines.join('\n')) + } else { + console.warn(`โš ๏ธ Could not find version in ${filePath}`) + } + } + + /** + * Update workspace dependencies in root Cargo.toml + */ + private updateWorkspaceDependencies(filePath: string): void { + const content = readFileSync(filePath, 'utf-8') + const lines = content.split('\n') + + let inWorkspaceDeps = false + let updated = false + + for (let i = 0; i < lines.length; i++) { + const line = lines[i].trim() + + if (line === '[workspace.dependencies]') { + inWorkspaceDeps = true + continue + } + + if (inWorkspaceDeps && line.startsWith('version = ')) { + lines[i] = `version = "${this.newVersion}"` + updated = true + } + + // Reset when we hit a new section + if (line.startsWith('[') && inWorkspaceDeps && line !== '[workspace.dependencies]') { + break + } + } + + if (updated) { + writeFileSync(filePath, lines.join('\n')) + } + } + + /** + * Update package.json file + */ + private updatePackageJson(filePath: string): void { + const content = readFileSync(filePath, 'utf-8') + const packageJson: PackageJson = JSON.parse(content) + + packageJson.version = this.newVersion + + // Write back with proper formatting + writeFileSync(filePath, JSON.stringify(packageJson, null, 2) + '\n') + } + + /** + * Get package name from package.json + */ + private getPackageName(filePath: string): string { + const content = readFileSync(filePath, 'utf-8') + const packageJson: PackageJson = JSON.parse(content) + return packageJson.name || 'unknown' + } + +} + +// CLI interface +async function main() { + const args = process.argv.slice(2) + + if (args.length === 0) { + console.log('Usage: tsx scripts/bump-versions.ts ') + console.log('Example: tsx scripts/bump-versions.ts 1.0.0') + console.log('Example: tsx scripts/bump-versions.ts 1.0.0-beta.1') + process.exit(1) + } + + const version = args[0] + const bumper = new VersionBumper(version) + await bumper.bumpAll() +} + +// Run if called directly +if (require.main === module) { + main().catch(console.error) +} + +export { VersionBumper } From 412fa9be525672449394e41a216666a56a7821a1 Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Mon, 29 Sep 2025 11:48:22 +0100 Subject: [PATCH 02/13] fix: remove dprint in favour of cargo fmt --- .github/workflows/releases.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 0dc6353ebc..a9fab4ff68 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -58,7 +58,7 @@ jobs: pr_branch="${{ fromJSON(steps.release-plz.outputs.pr).head_branch }}" git pull git checkout "$pr_branch" - $HOME/.dprint/bin/dprint fmt + cargo fmt git commit -am 'chore: format files' git push origin "$pr_branch" From 94f52319cd2f3c06ad1b0428c58ff95e0ae40c63 Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Mon, 29 Sep 2025 13:12:41 +0100 Subject: [PATCH 03/13] fix: ensure we update the cargo crates too --- Cargo.toml | 50 ++++++++++++++--------------- scripts/bump-versions.ts | 68 +++++++++++++++++++++++----------------- 2 files changed, 65 insertions(+), 53 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6d75ee0e14..3e3bfed415 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -59,31 +59,31 @@ description = "E3 โ€” Encrypted Execution Environments" repository = "https://github.com/gnosisguild/enclave" [workspace.dependencies] -e3-aggregator = { version = "0.0.1-test", path = "./crates/aggregator" } -e3-bfv-helpers = { version = "0.0.1-test", path = "./crates/bfv-helpers" } -e3-config = { version = "0.0.1-test", path = "./crates/config" } -e3-crypto = { version = "0.0.1-test", path = "./crates/crypto" } -e3-data = { version = "0.0.1-test", path = "./crates/data" } -e3-request = { version = "0.0.1-test", path = "./crates/request" } -e3-sdk = { version = "0.0.1-test", path = "./crates/sdk" } -e3-cli = { version = "0.0.1-test", path = "./crates/cli" } -e3-entrypoint = { version = "0.0.1-test", path = "./crates/entrypoint" } -e3-init = { version = "0.0.1-test", path = "./crates/init" } -e3-events = { version = "0.0.1-test", path = "./crates/events" } -e3-evm = { version = "0.0.1-test", path = "./crates/evm" } -e3-evm-helpers = { version = "0.0.1-test", path = "./crates/evm-helpers" } -e3-fhe = { version = "0.0.1-test", path = "./crates/fhe" } -e3-fs = { version = "0.0.1-test", path = "./crates/fs" } -e3-indexer = { version = "0.0.1-test", path = "./crates/indexer" } -e3-keyshare = { version = "0.0.1-test", path = "./crates/keyshare" } -e3-logger = { version = "0.0.1-test", path = "./crates/logger" } -e3-net = { version = "0.0.1-test", path = "./crates/net" } -e3-compute-provider = { version = "0.0.1-test", path = "./crates/compute-provider" } -e3-sortition = { version = "0.0.1-test", path = "./crates/sortition" } -e3-program-server = { version = "0.0.1-test", path = "./crates/program-server" } -e3-support-scripts = { version = "0.0.1-test", path = "./crates/support-scripts" } -e3-test-helpers = { version = "0.0.1-test", path = "./crates/test-helpers" } -e3-tests = { version = "0.0.1-test", path = "./crates/tests" } +e3-aggregator = { version = "0.0.15-test", path = "./crates/aggregator" } +e3-bfv-helpers = { version = "0.0.15-test", path = "./crates/bfv-helpers" } +e3-config = { version = "0.0.15-test", path = "./crates/config" } +e3-crypto = { version = "0.0.15-test", path = "./crates/crypto" } +e3-data = { version = "0.0.15-test", path = "./crates/data" } +e3-request = { version = "0.0.15-test", path = "./crates/request" } +e3-sdk = { version = "0.0.15-test", path = "./crates/sdk" } +e3-cli = { version = "0.0.15-test", path = "./crates/cli" } +e3-entrypoint = { version = "0.0.15-test", path = "./crates/entrypoint" } +e3-init = { version = "0.0.15-test", path = "./crates/init" } +e3-events = { version = "0.0.15-test", path = "./crates/events" } +e3-evm = { version = "0.0.15-test", path = "./crates/evm" } +e3-evm-helpers = { version = "0.0.15-test", path = "./crates/evm-helpers" } +e3-fhe = { version = "0.0.15-test", path = "./crates/fhe" } +e3-fs = { version = "0.0.15-test", path = "./crates/fs" } +e3-indexer = { version = "0.0.15-test", path = "./crates/indexer" } +e3-keyshare = { version = "0.0.15-test", path = "./crates/keyshare" } +e3-logger = { version = "0.0.15-test", path = "./crates/logger" } +e3-net = { version = "0.0.15-test", path = "./crates/net" } +e3-compute-provider = { version = "0.0.15-test", path = "./crates/compute-provider" } +e3-sortition = { version = "0.0.15-test", path = "./crates/sortition" } +e3-program-server = { version = "0.0.15-test", path = "./crates/program-server" } +e3-support-scripts = { version = "0.0.15-test", path = "./crates/support-scripts" } +e3-test-helpers = { version = "0.0.15-test", path = "./crates/test-helpers" } +e3-tests = { version = "0.0.15-test", path = "./crates/tests" } actix = "=0.13.5" actix-web = "=4.11.0" diff --git a/scripts/bump-versions.ts b/scripts/bump-versions.ts index 298954cf4d..6a3572f198 100644 --- a/scripts/bump-versions.ts +++ b/scripts/bump-versions.ts @@ -6,7 +6,6 @@ import { join, resolve } from 'path' interface PackageJson { name: string version: string - [key: string]: any } class VersionBumper { @@ -21,7 +20,7 @@ class VersionBumper { /** * Main entry point to bump all versions */ - async bumpAll(): Promise { + bumpAll(): void { console.log(`๐Ÿš€ Bumping all versions to ${this.newVersion}`) try { @@ -29,10 +28,10 @@ class VersionBumper { this.validateVersion(this.newVersion) // Bump Rust crates - await this.bumpRustCrates() + this.bumpRustCrates() // Bump npm packages - await this.bumpNpmPackages() + this.bumpNpmPackages() console.log('โœ… All versions bumped successfully!') console.log('\n๐Ÿ“‹ Summary:') @@ -62,12 +61,12 @@ class VersionBumper { /** * Bump versions in all Rust crates */ - private async bumpRustCrates(): Promise { + private bumpRustCrates(): void { console.log('\n๐Ÿฆ€ Bumping Rust crate versions...') // Update root Cargo.toml workspace version (this propagates to all crates) const rootCargoPath = join(this.rootDir, 'Cargo.toml') - this.updateCargoToml(rootCargoPath, 'workspace.package.version') + this.updateCargoToml(rootCargoPath) // Update workspace dependencies in root Cargo.toml this.updateWorkspaceDependencies(rootCargoPath) @@ -78,7 +77,7 @@ class VersionBumper { /** * Bump versions in all npm packages */ - private async bumpNpmPackages(): Promise { + private bumpNpmPackages(): void { console.log('\n๐Ÿ“ฆ Bumping NPM package versions...') // Main packages to bump (excluding examples and templates) @@ -103,35 +102,48 @@ class VersionBumper { } /** - * Update Cargo.toml file + * Update Cargo.toml file (workspace version and dependencies) */ - private updateCargoToml(filePath: string, versionKey: string): void { + private updateCargoToml(filePath: string): void { const content = readFileSync(filePath, 'utf-8') const lines = content.split('\n') - let inTargetSection = false let updated = false for (let i = 0; i < lines.length; i++) { const line = lines[i].trim() - // Check if we're in the target section - if (line === `[${versionKey.split('.').join('].')}]` || - (versionKey === 'workspace.package.version' && line === '[workspace.package]')) { - inTargetSection = true - continue - } - - // If we're in the target section and find a version line - if (inTargetSection && line.startsWith('version = ')) { - lines[i] = `version = "${this.newVersion}"` - updated = true - break + // Update workspace package version + if (line === '[workspace.package]') { + // Look for version in the next few lines + for (let j = i + 1; j < Math.min(i + 10, lines.length); j++) { + if (lines[j].trim().startsWith('version = ')) { + lines[j] = `version = "${this.newVersion}"` + updated = true + break + } + } } - // Reset section flag when we hit a new section - if (line.startsWith('[') && inTargetSection) { - break + // Update workspace dependencies + if (line === '[workspace.dependencies]') { + // Look for dependency lines with inline versions + for (let j = i + 1; j < lines.length; j++) { + const depLine = lines[j].trim() + + // Skip empty lines and new sections + if (depLine === '' || depLine.startsWith('[')) { + break + } + + // Update lines that have version = "..." in them + if (depLine.includes('version = ')) { + // Replace the version part while preserving the rest + const updatedLine = depLine.replace(/version = "[^"]*"/, `version = "${this.newVersion}"`) + lines[j] = updatedLine + updated = true + } + } } } @@ -201,7 +213,7 @@ class VersionBumper { } // CLI interface -async function main() { +function main() { const args = process.argv.slice(2) if (args.length === 0) { @@ -213,12 +225,12 @@ async function main() { const version = args[0] const bumper = new VersionBumper(version) - await bumper.bumpAll() + bumper.bumpAll() } // Run if called directly if (require.main === module) { - main().catch(console.error) + main() } export { VersionBumper } From 9a5925cdec3af6fd810edc17b3afd53af80a0aee Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Mon, 29 Sep 2025 13:24:32 +0100 Subject: [PATCH 04/13] chore: update cargo lock and add license --- .github/workflows/ci.yml | 36 ------------- .../{publish-evm.yml => publish-npm.yml} | 19 ++----- Cargo.lock | 54 +++++++++---------- examples/CRISP/Cargo.lock | 12 ++--- scripts/bump-versions.ts | 6 ++- 5 files changed, 42 insertions(+), 85 deletions(-) rename .github/workflows/{publish-evm.yml => publish-npm.yml} (51%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 49a58c88bf..205d918ccb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -603,42 +603,6 @@ jobs: chmod 644 contracts/ImageID.sol pnpm test:integration - test_enclave_init: - runs-on: ubuntu-latest - needs: [build_enclave_cli, build_e3_support_dev] - steps: - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: "22" - - name: Install pnpm - uses: pnpm/action-setup@v4 - with: - version: 10.7.1 - - name: Setup Rust - uses: dtolnay/rust-toolchain@stable - with: - toolchain: 1.86.0 - - name: Download enclave binary - uses: actions/download-artifact@v4 - with: - name: enclave-binary - path: ~/.cargo/bin/ - - name: Make binaries executable - run: | - chmod +x ~/.cargo/bin/enclave - - name: Verify downloaded artifacts - run: | - ls -la ~/.cargo/bin/enclave || echo "enclave binary not found" - - name: Enclave init - run: | - if [ "${{ github.event_name }}" = "pull_request" ]; then - BRANCH="${{ github.head_ref }}" - else - BRANCH="${{ github.ref_name }}" - fi - enclave init mycitest --template=${{ github.server_url }}/${{ github.repository }}.git#${BRANCH}:templates/default - contrib-readme-job: runs-on: ubuntu-latest name: Populate Contributors List diff --git a/.github/workflows/publish-evm.yml b/.github/workflows/publish-npm.yml similarity index 51% rename from .github/workflows/publish-evm.yml rename to .github/workflows/publish-npm.yml index 06f0c8aebd..9863d5e4cd 100644 --- a/.github/workflows/publish-evm.yml +++ b/.github/workflows/publish-npm.yml @@ -1,4 +1,4 @@ -name: EVM Version release +name: NPM Packages release on: release: types: [created] @@ -18,18 +18,7 @@ jobs: - name: pnpm-setup uses: pnpm/action-setup@v4 - run: pnpm install - - run: pnpm config:release + - run: pnpm npm:release env: - NODE_AUTH_TOKEN: ${{secrets.PUBLISH_NPM_TOKEN}} - - run: pnpm evm:release - env: - NODE_AUTH_TOKEN: ${{secrets.PUBLISH_NPM_TOKEN}} - - run: pnpm wasm:release - env: - NODE_AUTH_TOKEN: ${{secrets.PUBLISH_NPM_TOKEN}} - - run: pnpm sdk:release - env: - NODE_AUTH_TOKEN: ${{secrets.PUBLISH_NPM_TOKEN}} - - run: pnpm react:release - env: - NODE_AUTH_TOKEN: ${{secrets.PUBLISH_NPM_TOKEN}} + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 7e92d5b8bd..7a3a3f617f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2585,7 +2585,7 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "e3-aggregator" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "anyhow", @@ -2603,7 +2603,7 @@ dependencies = [ [[package]] name = "e3-bfv-helpers" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "alloy-dyn-abi", "alloy-primitives", @@ -2620,7 +2620,7 @@ dependencies = [ [[package]] name = "e3-cli" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "anyhow", @@ -2650,7 +2650,7 @@ dependencies = [ [[package]] name = "e3-compute-provider" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "ark-bn254", "ark-ff 0.4.2", @@ -2666,7 +2666,7 @@ dependencies = [ [[package]] name = "e3-config" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "alloy-primitives", "anyhow", @@ -2686,7 +2686,7 @@ dependencies = [ [[package]] name = "e3-crypto" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "aes-gcm", "anyhow", @@ -2700,7 +2700,7 @@ dependencies = [ [[package]] name = "e3-data" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "anyhow", @@ -2716,7 +2716,7 @@ dependencies = [ [[package]] name = "e3-entrypoint" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "actix-web", @@ -2754,7 +2754,7 @@ dependencies = [ [[package]] name = "e3-events" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "alloy", @@ -2775,7 +2775,7 @@ dependencies = [ [[package]] name = "e3-evm" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "alloy", @@ -2799,7 +2799,7 @@ dependencies = [ [[package]] name = "e3-evm-helpers" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "alloy", "async-trait", @@ -2812,7 +2812,7 @@ dependencies = [ [[package]] name = "e3-fhe" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "anyhow", @@ -2833,7 +2833,7 @@ dependencies = [ [[package]] name = "e3-fs" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "anyhow", "async-trait", @@ -2877,7 +2877,7 @@ dependencies = [ [[package]] name = "e3-indexer" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "alloy", "async-trait", @@ -2891,7 +2891,7 @@ dependencies = [ [[package]] name = "e3-init" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "anyhow", "async-recursion", @@ -2909,7 +2909,7 @@ dependencies = [ [[package]] name = "e3-keyshare" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "anyhow", @@ -2926,7 +2926,7 @@ dependencies = [ [[package]] name = "e3-logger" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "base64", @@ -2936,7 +2936,7 @@ dependencies = [ [[package]] name = "e3-net" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "anyhow", @@ -2958,7 +2958,7 @@ dependencies = [ [[package]] name = "e3-program-server" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix-web", "anyhow", @@ -2972,7 +2972,7 @@ dependencies = [ [[package]] name = "e3-request" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "anyhow", @@ -2987,7 +2987,7 @@ dependencies = [ [[package]] name = "e3-sdk" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "e3-bfv-helpers", "e3-evm-helpers", @@ -2996,7 +2996,7 @@ dependencies = [ [[package]] name = "e3-sortition" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "alloy", @@ -3013,7 +3013,7 @@ dependencies = [ [[package]] name = "e3-support-scripts" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "anyhow", "async-trait", @@ -3024,7 +3024,7 @@ dependencies = [ [[package]] name = "e3-test-helpers" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "bincode", @@ -3041,7 +3041,7 @@ dependencies = [ [[package]] name = "e3-tests" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "actix", "alloy", @@ -3074,7 +3074,7 @@ dependencies = [ [[package]] name = "e3-wasm" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "e3-bfv-helpers", "getrandom 0.2.16", @@ -3151,7 +3151,7 @@ dependencies = [ [[package]] name = "enclaveup" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "anyhow", "clap", diff --git a/examples/CRISP/Cargo.lock b/examples/CRISP/Cargo.lock index 463633bec6..064ee4c032 100644 --- a/examples/CRISP/Cargo.lock +++ b/examples/CRISP/Cargo.lock @@ -1850,7 +1850,7 @@ dependencies = [ "config", "dialoguer", "dotenvy", - "e3-compute-provider 0.0.1-test", + "e3-compute-provider 0.0.15-test", "e3-sdk", "env_logger", "eyre", @@ -2151,7 +2151,7 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "e3-bfv-helpers" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "alloy-dyn-abi", "alloy-primitives", @@ -2167,7 +2167,7 @@ dependencies = [ [[package]] name = "e3-compute-provider" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "ark-bn254", "ark-ff 0.4.2", @@ -2200,7 +2200,7 @@ dependencies = [ [[package]] name = "e3-evm-helpers" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "alloy", "async-trait", @@ -2244,7 +2244,7 @@ dependencies = [ [[package]] name = "e3-indexer" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "alloy", "async-trait", @@ -2273,7 +2273,7 @@ dependencies = [ [[package]] name = "e3-sdk" -version = "0.0.1-test" +version = "0.0.15-test" dependencies = [ "e3-bfv-helpers", "e3-evm-helpers", diff --git a/scripts/bump-versions.ts b/scripts/bump-versions.ts index 6a3572f198..bdba92fc43 100644 --- a/scripts/bump-versions.ts +++ b/scripts/bump-versions.ts @@ -1,5 +1,9 @@ #!/usr/bin/env tsx - +// SPDX-License-Identifier: LGPL-3.0-only +// +// This file is provided WITHOUT ANY WARRANTY; +// without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. import { readFileSync, writeFileSync, existsSync } from 'fs' import { join, resolve } from 'path' From 319ef6795e4846a89d04f526d24a2c15bd37915d Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Tue, 30 Sep 2025 15:22:11 +0100 Subject: [PATCH 05/13] feat: add changelog feature to bump script --- .changeset/README.md | 8 - .changeset/config.json | 11 - .github/workflows/ci.yml | 36 ++ .github/workflows/releases.yml | 2 +- CHANGELOG.md | 221 ++++++++ Cargo.lock | 54 +- Cargo.toml | 52 +- crates/wasm/package.json | 2 +- package.json | 6 +- packages/enclave-config/package.json | 2 +- packages/enclave-contracts/package.json | 2 +- packages/enclave-react/package.json | 2 +- packages/enclave-sdk/package.json | 2 +- pnpm-lock.yaml | 707 ++++++++++++------------ scripts/bump-versions.ts | 203 ++++++- 15 files changed, 857 insertions(+), 453 deletions(-) delete mode 100644 .changeset/README.md delete mode 100644 .changeset/config.json create mode 100644 CHANGELOG.md diff --git a/.changeset/README.md b/.changeset/README.md deleted file mode 100644 index e5b6d8d6a6..0000000000 --- a/.changeset/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Changesets - -Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works -with multi-package repos, or single-package repos to help you version and publish your code. You can -find the full documentation for it [in our repository](https://github.com/changesets/changesets) - -We have a quick list of common questions to get you started engaging with this project in -[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json deleted file mode 100644 index f05ab78d1d..0000000000 --- a/.changeset/config.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json", - "changelog": "@changesets/cli/changelog", - "commit": false, - "fixed": [], - "linked": [], - "access": "restricted", - "baseBranch": "main", - "updateInternalDependencies": "patch", - "ignore": ["crisp", "enclave-example", "crisp-client", "enclave-docs", "enclave-client"] -} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 205d918ccb..0743ef0a4d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -602,6 +602,42 @@ jobs: chmod 755 contracts tests chmod 644 contracts/ImageID.sol pnpm test:integration + + test_enclave_init: + runs-on: ubuntu-latest + needs: [build_enclave_cli, build_e3_support_dev] + steps: + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 10.7.1 + - name: Setup Rust + uses: dtolnay/rust-toolchain@stable + with: + toolchain: 1.86.0 + - name: Download enclave binary + uses: actions/download-artifact@v4 + with: + name: enclave-binary + path: ~/.cargo/bin/ + - name: Make binaries executable + run: | + chmod +x ~/.cargo/bin/enclave + - name: Verify downloaded artifacts + run: | + ls -la ~/.cargo/bin/enclave || echo "enclave binary not found" + - name: Enclave init + run: | + if [ "${{ github.event_name }}" = "pull_request" ]; then + BRANCH="${{ github.head_ref }}" + else + BRANCH="${{ github.ref_name }}" + fi + enclave init mycitest --template=${{ github.server_url }}/${{ github.repository }}.git#${BRANCH}:templates/default contrib-readme-job: runs-on: ubuntu-latest diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index a9fab4ff68..6e9fc183f1 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -75,7 +75,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: "20" + node-version: "22" registry-url: "https://registry.npmjs.org" - name: Setup pnpm diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..1b4155f630 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,221 @@ +## [0.0.14-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.14-test) (2025-09-30) + + +### Bug Fixes + +* contracts exports ([#732](https://github.com/gnosisguild/enclave/issues/732)) ([c0686c6](https://github.com/gnosisguild/enclave/commit/c0686c6b42b351c07adf400c47d8cc5b2573f8e6)) +* ensure we don't have uncommited files ([#676](https://github.com/gnosisguild/enclave/issues/676)) ([a46e707](https://github.com/gnosisguild/enclave/commit/a46e70795655b8ff3a9896651f09f5ccee2592c7)) +* ensure we update the cargo crates too ([94f5231](https://github.com/gnosisguild/enclave/commit/94f52319cd2f3c06ad1b0428c58ff95e0ae40c63)) +* fix reentrancy issue in enclave contracts ([#752](https://github.com/gnosisguild/enclave/issues/752)) ([3806a87](https://github.com/gnosisguild/enclave/commit/3806a870b39fa47a1b4b77f9484c0a1d74bfbaa4)) +* release rust crates error ([#689](https://github.com/gnosisguild/enclave/issues/689)) ([3c25929](https://github.com/gnosisguild/enclave/commit/3c25929f2317003c81d3a21d6b4fc9b1e44573cc)) +* remove already published files from gitignore ([#680](https://github.com/gnosisguild/enclave/issues/680)) ([283205d](https://github.com/gnosisguild/enclave/commit/283205dffc665d83cc741c07f697c1ecaf2d1d84)) +* remove ci artifacts deep clean ([#681](https://github.com/gnosisguild/enclave/issues/681)) ([242aac9](https://github.com/gnosisguild/enclave/commit/242aac96b9800043b0d24b5716b3262baefd4472)) +* remove dprint in favour of cargo fmt ([412fa9b](https://github.com/gnosisguild/enclave/commit/412fa9be525672449394e41a216666a56a7821a1)) +* rust crate release error ([#694](https://github.com/gnosisguild/enclave/issues/694)) ([56e9b12](https://github.com/gnosisguild/enclave/commit/56e9b12c2b319d1ea1081df4577b6b0cd0ccfc7d)) +* rust crates release workflow ([#715](https://github.com/gnosisguild/enclave/issues/715)) ([fc330c6](https://github.com/gnosisguild/enclave/commit/fc330c625742bce01def98ef3ccec5ae15fbdb96)) +* update relative paths to use git ([#708](https://github.com/gnosisguild/enclave/issues/708)) ([e0bd2bc](https://github.com/gnosisguild/enclave/commit/e0bd2bc7a5e2515013188fc7e40927630d1f6d58)) +* wasm init ([#740](https://github.com/gnosisguild/enclave/issues/740)) ([58f7905](https://github.com/gnosisguild/enclave/commit/58f7905dd5bd33070be84b0bd5d88b5f44d98267)) + + +### Features + +* add a function to get an e3 public key ([#760](https://github.com/gnosisguild/enclave/issues/760)) ([4db5dac](https://github.com/gnosisguild/enclave/commit/4db5dacf2f60872cfbafa16728b3da4f9244c248)) +* add script to bump versions and bump to 0.0.15-test ([aada549](https://github.com/gnosisguild/enclave/commit/aada549f45ef35803a3dbde46c574787db7c5215)) +* optimization by concatenating coefficients ([#734](https://github.com/gnosisguild/enclave/issues/734)) ([00e2f6d](https://github.com/gnosisguild/enclave/commit/00e2f6d5eaaf2089488f414dc57675f7120cf2a0)) +* upgrade to hardhat v3 and configure repo ([#677](https://github.com/gnosisguild/enclave/issues/677)) ([7ccf6fa](https://github.com/gnosisguild/enclave/commit/7ccf6fa4d62a972a4d2336bd436d71bbc9b54535)) + + + +## [0.0.15-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.15-test) (2025-09-30) + + +### Bug Fixes + +* contracts exports ([#732](https://github.com/gnosisguild/enclave/issues/732)) ([c0686c6](https://github.com/gnosisguild/enclave/commit/c0686c6b42b351c07adf400c47d8cc5b2573f8e6)) +* ensure we don't have uncommited files ([#676](https://github.com/gnosisguild/enclave/issues/676)) ([a46e707](https://github.com/gnosisguild/enclave/commit/a46e70795655b8ff3a9896651f09f5ccee2592c7)) +* ensure we update the cargo crates too ([94f5231](https://github.com/gnosisguild/enclave/commit/94f52319cd2f3c06ad1b0428c58ff95e0ae40c63)) +* fix reentrancy issue in enclave contracts ([#752](https://github.com/gnosisguild/enclave/issues/752)) ([3806a87](https://github.com/gnosisguild/enclave/commit/3806a870b39fa47a1b4b77f9484c0a1d74bfbaa4)) +* release rust crates error ([#689](https://github.com/gnosisguild/enclave/issues/689)) ([3c25929](https://github.com/gnosisguild/enclave/commit/3c25929f2317003c81d3a21d6b4fc9b1e44573cc)) +* remove already published files from gitignore ([#680](https://github.com/gnosisguild/enclave/issues/680)) ([283205d](https://github.com/gnosisguild/enclave/commit/283205dffc665d83cc741c07f697c1ecaf2d1d84)) +* remove ci artifacts deep clean ([#681](https://github.com/gnosisguild/enclave/issues/681)) ([242aac9](https://github.com/gnosisguild/enclave/commit/242aac96b9800043b0d24b5716b3262baefd4472)) +* remove dprint in favour of cargo fmt ([412fa9b](https://github.com/gnosisguild/enclave/commit/412fa9be525672449394e41a216666a56a7821a1)) +* rust crate release error ([#694](https://github.com/gnosisguild/enclave/issues/694)) ([56e9b12](https://github.com/gnosisguild/enclave/commit/56e9b12c2b319d1ea1081df4577b6b0cd0ccfc7d)) +* rust crates release workflow ([#715](https://github.com/gnosisguild/enclave/issues/715)) ([fc330c6](https://github.com/gnosisguild/enclave/commit/fc330c625742bce01def98ef3ccec5ae15fbdb96)) +* update relative paths to use git ([#708](https://github.com/gnosisguild/enclave/issues/708)) ([e0bd2bc](https://github.com/gnosisguild/enclave/commit/e0bd2bc7a5e2515013188fc7e40927630d1f6d58)) +* wasm init ([#740](https://github.com/gnosisguild/enclave/issues/740)) ([58f7905](https://github.com/gnosisguild/enclave/commit/58f7905dd5bd33070be84b0bd5d88b5f44d98267)) + + +### Features + +* add a function to get an e3 public key ([#760](https://github.com/gnosisguild/enclave/issues/760)) ([4db5dac](https://github.com/gnosisguild/enclave/commit/4db5dacf2f60872cfbafa16728b3da4f9244c248)) +* add script to bump versions and bump to 0.0.15-test ([aada549](https://github.com/gnosisguild/enclave/commit/aada549f45ef35803a3dbde46c574787db7c5215)) +* optimization by concatenating coefficients ([#734](https://github.com/gnosisguild/enclave/issues/734)) ([00e2f6d](https://github.com/gnosisguild/enclave/commit/00e2f6d5eaaf2089488f414dc57675f7120cf2a0)) +* upgrade to hardhat v3 and configure repo ([#677](https://github.com/gnosisguild/enclave/issues/677)) ([7ccf6fa](https://github.com/gnosisguild/enclave/commit/7ccf6fa4d62a972a4d2336bd436d71bbc9b54535)) + + + +## [0.0.15-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.15-test) (2025-09-30) + + +### Bug Fixes + +* contracts exports ([#732](https://github.com/gnosisguild/enclave/issues/732)) ([c0686c6](https://github.com/gnosisguild/enclave/commit/c0686c6b42b351c07adf400c47d8cc5b2573f8e6)) +* ensure we don't have uncommited files ([#676](https://github.com/gnosisguild/enclave/issues/676)) ([a46e707](https://github.com/gnosisguild/enclave/commit/a46e70795655b8ff3a9896651f09f5ccee2592c7)) +* ensure we update the cargo crates too ([94f5231](https://github.com/gnosisguild/enclave/commit/94f52319cd2f3c06ad1b0428c58ff95e0ae40c63)) +* fix reentrancy issue in enclave contracts ([#752](https://github.com/gnosisguild/enclave/issues/752)) ([3806a87](https://github.com/gnosisguild/enclave/commit/3806a870b39fa47a1b4b77f9484c0a1d74bfbaa4)) +* release rust crates error ([#689](https://github.com/gnosisguild/enclave/issues/689)) ([3c25929](https://github.com/gnosisguild/enclave/commit/3c25929f2317003c81d3a21d6b4fc9b1e44573cc)) +* remove already published files from gitignore ([#680](https://github.com/gnosisguild/enclave/issues/680)) ([283205d](https://github.com/gnosisguild/enclave/commit/283205dffc665d83cc741c07f697c1ecaf2d1d84)) +* remove ci artifacts deep clean ([#681](https://github.com/gnosisguild/enclave/issues/681)) ([242aac9](https://github.com/gnosisguild/enclave/commit/242aac96b9800043b0d24b5716b3262baefd4472)) +* remove dprint in favour of cargo fmt ([412fa9b](https://github.com/gnosisguild/enclave/commit/412fa9be525672449394e41a216666a56a7821a1)) +* rust crate release error ([#694](https://github.com/gnosisguild/enclave/issues/694)) ([56e9b12](https://github.com/gnosisguild/enclave/commit/56e9b12c2b319d1ea1081df4577b6b0cd0ccfc7d)) +* rust crates release workflow ([#715](https://github.com/gnosisguild/enclave/issues/715)) ([fc330c6](https://github.com/gnosisguild/enclave/commit/fc330c625742bce01def98ef3ccec5ae15fbdb96)) +* update relative paths to use git ([#708](https://github.com/gnosisguild/enclave/issues/708)) ([e0bd2bc](https://github.com/gnosisguild/enclave/commit/e0bd2bc7a5e2515013188fc7e40927630d1f6d58)) +* wasm init ([#740](https://github.com/gnosisguild/enclave/issues/740)) ([58f7905](https://github.com/gnosisguild/enclave/commit/58f7905dd5bd33070be84b0bd5d88b5f44d98267)) + + +### Features + +* add a function to get an e3 public key ([#760](https://github.com/gnosisguild/enclave/issues/760)) ([4db5dac](https://github.com/gnosisguild/enclave/commit/4db5dacf2f60872cfbafa16728b3da4f9244c248)) +* add script to bump versions and bump to 0.0.15-test ([aada549](https://github.com/gnosisguild/enclave/commit/aada549f45ef35803a3dbde46c574787db7c5215)) +* optimization by concatenating coefficients ([#734](https://github.com/gnosisguild/enclave/issues/734)) ([00e2f6d](https://github.com/gnosisguild/enclave/commit/00e2f6d5eaaf2089488f414dc57675f7120cf2a0)) +* upgrade to hardhat v3 and configure repo ([#677](https://github.com/gnosisguild/enclave/issues/677)) ([7ccf6fa](https://github.com/gnosisguild/enclave/commit/7ccf6fa4d62a972a4d2336bd436d71bbc9b54535)) + + + +## [0.0.15-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.15-test) (2025-09-30) + + +### Bug Fixes + +* contracts exports ([#732](https://github.com/gnosisguild/enclave/issues/732)) ([c0686c6](https://github.com/gnosisguild/enclave/commit/c0686c6b42b351c07adf400c47d8cc5b2573f8e6)) +* ensure we don't have uncommited files ([#676](https://github.com/gnosisguild/enclave/issues/676)) ([a46e707](https://github.com/gnosisguild/enclave/commit/a46e70795655b8ff3a9896651f09f5ccee2592c7)) +* ensure we update the cargo crates too ([94f5231](https://github.com/gnosisguild/enclave/commit/94f52319cd2f3c06ad1b0428c58ff95e0ae40c63)) +* fix reentrancy issue in enclave contracts ([#752](https://github.com/gnosisguild/enclave/issues/752)) ([3806a87](https://github.com/gnosisguild/enclave/commit/3806a870b39fa47a1b4b77f9484c0a1d74bfbaa4)) +* release rust crates error ([#689](https://github.com/gnosisguild/enclave/issues/689)) ([3c25929](https://github.com/gnosisguild/enclave/commit/3c25929f2317003c81d3a21d6b4fc9b1e44573cc)) +* remove already published files from gitignore ([#680](https://github.com/gnosisguild/enclave/issues/680)) ([283205d](https://github.com/gnosisguild/enclave/commit/283205dffc665d83cc741c07f697c1ecaf2d1d84)) +* remove ci artifacts deep clean ([#681](https://github.com/gnosisguild/enclave/issues/681)) ([242aac9](https://github.com/gnosisguild/enclave/commit/242aac96b9800043b0d24b5716b3262baefd4472)) +* remove dprint in favour of cargo fmt ([412fa9b](https://github.com/gnosisguild/enclave/commit/412fa9be525672449394e41a216666a56a7821a1)) +* rust crate release error ([#694](https://github.com/gnosisguild/enclave/issues/694)) ([56e9b12](https://github.com/gnosisguild/enclave/commit/56e9b12c2b319d1ea1081df4577b6b0cd0ccfc7d)) +* rust crates release workflow ([#715](https://github.com/gnosisguild/enclave/issues/715)) ([fc330c6](https://github.com/gnosisguild/enclave/commit/fc330c625742bce01def98ef3ccec5ae15fbdb96)) +* update relative paths to use git ([#708](https://github.com/gnosisguild/enclave/issues/708)) ([e0bd2bc](https://github.com/gnosisguild/enclave/commit/e0bd2bc7a5e2515013188fc7e40927630d1f6d58)) +* wasm init ([#740](https://github.com/gnosisguild/enclave/issues/740)) ([58f7905](https://github.com/gnosisguild/enclave/commit/58f7905dd5bd33070be84b0bd5d88b5f44d98267)) + + +### Features + +* add a function to get an e3 public key ([#760](https://github.com/gnosisguild/enclave/issues/760)) ([4db5dac](https://github.com/gnosisguild/enclave/commit/4db5dacf2f60872cfbafa16728b3da4f9244c248)) +* add script to bump versions and bump to 0.0.15-test ([aada549](https://github.com/gnosisguild/enclave/commit/aada549f45ef35803a3dbde46c574787db7c5215)) +* optimization by concatenating coefficients ([#734](https://github.com/gnosisguild/enclave/issues/734)) ([00e2f6d](https://github.com/gnosisguild/enclave/commit/00e2f6d5eaaf2089488f414dc57675f7120cf2a0)) +* upgrade to hardhat v3 and configure repo ([#677](https://github.com/gnosisguild/enclave/issues/677)) ([7ccf6fa](https://github.com/gnosisguild/enclave/commit/7ccf6fa4d62a972a4d2336bd436d71bbc9b54535)) + + + +## [0.1.2](https://github.com/gnosisguild/enclave/compare/v0.1.1...v0.1.2) (2025-09-04) + + +### Bug Fixes + +* comprehensively clean working directory ([#606](https://github.com/gnosisguild/enclave/issues/606)) ([e1e2a7d](https://github.com/gnosisguild/enclave/commit/e1e2a7de21d44c3df89d91a03089ba2dade73ac7)) +* contributor list ([#592](https://github.com/gnosisguild/enclave/issues/592)) ([fc9c836](https://github.com/gnosisguild/enclave/commit/fc9c8363419a784cb2eb831abcf231c8f91a956b)) +* enable branch protection detection ([#605](https://github.com/gnosisguild/enclave/issues/605)) ([37f1c16](https://github.com/gnosisguild/enclave/commit/37f1c16f1029d16dbf85fc9691d2cecafeb0a317)) +* ensure we do not send the vote in the semaphore message field ([#659](https://github.com/gnosisguild/enclave/issues/659)) ([8d0c0bd](https://github.com/gnosisguild/enclave/commit/8d0c0bd1339bb41f1e98929b5fdff3468cbb7553)) +* ensure we publish the dist folder of the sdk ([#614](https://github.com/gnosisguild/enclave/issues/614)) ([5e117d0](https://github.com/gnosisguild/enclave/commit/5e117d0ad2b589d683acf1c144c43efbffeae050)) +* failing release action ([#590](https://github.com/gnosisguild/enclave/issues/590)) ([b0d0f51](https://github.com/gnosisguild/enclave/commit/b0d0f51616f9a5ca58fea7de243918747b9d4206)) +* wasm install ([#594](https://github.com/gnosisguild/enclave/issues/594)) ([f5834ac](https://github.com/gnosisguild/enclave/commit/f5834ac8549da21a6b31432c58910028ca7a8269)) + + +### Features + +* add sensitive container for transferring data between actors ([#603](https://github.com/gnosisguild/enclave/issues/603)) ([e6561c6](https://github.com/gnosisguild/enclave/commit/e6561c6605c4658cb7489616fe3cd3ce7df5d6e5)) +* allow checkin without nargo ([#669](https://github.com/gnosisguild/enclave/issues/669)) ([ed02ae2](https://github.com/gnosisguild/enclave/commit/ed02ae2a5321090c3942fe6a6d71f0e539855878)) +* configure crisp as the rust template and remove risc0 from e2e tests ([#657](https://github.com/gnosisguild/enclave/issues/657)) ([354b4a4](https://github.com/gnosisguild/enclave/commit/354b4a449bb0fd28d621f3e46bad6136b2d15a34)) +* event definition ([#612](https://github.com/gnosisguild/enclave/issues/612)) ([6fc68ef](https://github.com/gnosisguild/enclave/commit/6fc68efe84802562dd324f8d8e5cbf212f7f39cc)), closes [#634](https://github.com/gnosisguild/enclave/issues/634) +* fix version issue ([#634](https://github.com/gnosisguild/enclave/issues/634)) ([feac480](https://github.com/gnosisguild/enclave/commit/feac48033a82a6f1cff476a119b7bf7fa72af6c7)) +* move wasm-crypto to the sdk ([#635](https://github.com/gnosisguild/enclave/issues/635)) ([5d086c6](https://github.com/gnosisguild/enclave/commit/5d086c652a783c25e8e22009c7329020c092a552)) +* remove skip ci ([#632](https://github.com/gnosisguild/enclave/issues/632)) ([6d5fc4e](https://github.com/gnosisguild/enclave/commit/6d5fc4e2feaa97eb2a6604e625c45b23093874d3)) +* rename network components ([#602](https://github.com/gnosisguild/enclave/issues/602)) ([38d26c1](https://github.com/gnosisguild/enclave/commit/38d26c107e569042664d56e8fc405dbae833cd91)) +* update to enclave specific org ([#673](https://github.com/gnosisguild/enclave/issues/673)) ([753d37f](https://github.com/gnosisguild/enclave/commit/753d37f95def6f7c51c154cebb1473f88960cf3f)) +* workspace for enclave circuits ([#648](https://github.com/gnosisguild/enclave/issues/648)) ([129808f](https://github.com/gnosisguild/enclave/commit/129808f496ba2ef2887054600978c1bd0b01978a)) + + + +## [0.1.1](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.22...v0.1.1) (2025-06-19) + + + +## [0.0.5-test.22](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.21...v0.0.5-test.22) (2025-06-12) + + + +## [0.0.5-test.21](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.20.1...v0.0.5-test.21) (2025-06-12) + + + +## [0.0.5-test.20.1](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.20...v0.0.5-test.20.1) (2025-06-11) + + + +## [0.0.5-test.20](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.19...v0.0.5-test.20) (2025-06-11) + + + +## [0.0.5-test.19](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.18...v0.0.5-test.19) (2025-06-11) + + + +## [0.0.5-test.18](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.17...v0.0.5-test.18) (2025-06-11) + + + +## [0.0.5-test.17](https://github.com/gnosisguild/enclave/compare/v0.0.4...v0.0.5-test.17) (2025-06-11) + + +### Bug Fixes + +* appease the linter ([6d09a1b](https://github.com/gnosisguild/enclave/commit/6d09a1b27c47fb970bb5dd2b60f44e8a58a759a5)) +* broken test ([4578905](https://github.com/gnosisguild/enclave/commit/457890551352e20a25b8aefb7ed87739fd334732)) +* computationModule -> e3Program ([14b6d4d](https://github.com/gnosisguild/enclave/commit/14b6d4dbad528d6f04e10dcd07fa56baacc4071e)) +* delete commented out code ([04f8116](https://github.com/gnosisguild/enclave/commit/04f81164537a550ada96d627ecd48d00dc29a313)) +* deploy Poseidon ([b2c946e](https://github.com/gnosisguild/enclave/commit/b2c946e1291a48969a37ff3b3717f9b1871f618d)) +* explicitly set types for hash inputs ([2b62c35](https://github.com/gnosisguild/enclave/commit/2b62c35abbcda9518a7c29b8efce74bf360f545a)) +* Handle Connection Errors and Missing Deploy Block ([#445](https://github.com/gnosisguild/enclave/issues/445)) ([6b0277a](https://github.com/gnosisguild/enclave/commit/6b0277ae71934cd07d0b5f783e7d87cd4b797490)) +* handle duration ([0ff5e8d](https://github.com/gnosisguild/enclave/commit/0ff5e8daa9398241b31899b44b34b92f4bb4f794)) +* linter errors and a broken test they revealed ([9e5f775](https://github.com/gnosisguild/enclave/commit/9e5f775100c1b60ac29ab4674a15d63604b6c548)) +* lowercase folder names ([000dc33](https://github.com/gnosisguild/enclave/commit/000dc33a4086dfd68d85a4a9e6af3952b244d45f)) +* only call `transferOwnership()` if `_owner` and `owner()` do not match ([56a4352](https://github.com/gnosisguild/enclave/commit/56a43527dfd89506dcf78f8615089cea82aeb55a)) +* remove redundant abi encoding ([4904316](https://github.com/gnosisguild/enclave/commit/490431660d62140b89fdf18565a49ad36910a46d)) +* remove unused imports ([3c1a0b9](https://github.com/gnosisguild/enclave/commit/3c1a0b90df26ff00b64673266b983be430eda888)) +* rename an incorrectly named directory ([6dda710](https://github.com/gnosisguild/enclave/commit/6dda71037ada6bb890308418f51b7530f6fadbd9)) +* swap computationModule for outputVerifier ([5bd660a](https://github.com/gnosisguild/enclave/commit/5bd660ac1f1fdf9724f73ca8435cb716c2a24c88)) +* test that I broke in the last commit. ([e1bee16](https://github.com/gnosisguild/enclave/commit/e1bee1673ac2f48b673ceb46cd095a1212d007ee)) +* typo ([21684a3](https://github.com/gnosisguild/enclave/commit/21684a31950a920d8b1f1fc90e4777c80eb50578)) +* update comment ([f58cdd0](https://github.com/gnosisguild/enclave/commit/f58cdd0a6af756162f4a716ec05fd7e6801b4d8f)) +* use LGPL license ([9f80e18](https://github.com/gnosisguild/enclave/commit/9f80e18f20b3307fe0d1abc34fb030c45d4a06ec)) + + +### Features + +* add `e3Id` and `seed` to `validate()` calls to `IE3Program` and `IComputeProvider` ([f6a01b2](https://github.com/gnosisguild/enclave/commit/f6a01b20e69e4169afae79002e26cd47cc89f12d)) +* add `getInputRoot()` to `IEnclave.sol` ([4b60423](https://github.com/gnosisguild/enclave/commit/4b604238fafc3454d4d4e1d8c742035997dd7c44)) +* add incremental merkle tree ([5fe19ff](https://github.com/gnosisguild/enclave/commit/5fe19ff804caf5c9cd51595e977c03f9f499a15d)) +* Contract Listener ([4203446](https://github.com/gnosisguild/enclave/commit/4203446cdb8ba42344bcaea42c746e1fb49a6c12)) +* emit seed and params ([bb08876](https://github.com/gnosisguild/enclave/commit/bb088767dbd9b947e2e377da1a93e7915d8953de)) +* eth actor ([f64ab1d](https://github.com/gnosisguild/enclave/commit/f64ab1d4ba6f7e6c8b18486d91b4610e6fff607c)) +* make roots easily accessible ([01a7b6b](https://github.com/gnosisguild/enclave/commit/01a7b6b81b846639503d9ec8b8a215a15185b3cb)) +* moves `IDecryptionVerifier` out of `E3Program` / `IComputeProvider` ([5de57dd](https://github.com/gnosisguild/enclave/commit/5de57dd4f77fc762e0beaa86f2363b2f540f01df)) +* remove compute provider from `Enclave.sol` ([9e13cac](https://github.com/gnosisguild/enclave/commit/9e13cacb4a9fd5de0179c0fbcda0b106a2371f95)) +* replace keccak256 with Poseidon hash ([627d0f8](https://github.com/gnosisguild/enclave/commit/627d0f8bc1b99bc2a0389820a4b6f0901fdd7e15)) +* scaffold out new unit tests and fix fixtures ([7749639](https://github.com/gnosisguild/enclave/commit/7749639fc70f8e111823156fefd543eee436bf08)) +* store ciphernode in an incremental merkle tree ([6305380](https://github.com/gnosisguild/enclave/commit/6305380287992f5b088e9f4f5cc3c9e75ad69e49)) +* store hashes, emit keys ([#120](https://github.com/gnosisguild/enclave/issues/120)) ([7bcb2b5](https://github.com/gnosisguild/enclave/commit/7bcb2b5ba9134451346b4fec505b0ada01193e91)) +* update sequence diagram ([fce8520](https://github.com/gnosisguild/enclave/commit/fce85209a52e31306d4429f69f81cd335cad5894)) +* use LeanIMT, rather than BinaryIMT. ([456ff18](https://github.com/gnosisguild/enclave/commit/456ff18fb1728bc4dbb33a05a3db6f759be95078)) + + +### Reverts + +* Revert "Enforce valid parameters (#345)" (#406) ([5c950eb](https://github.com/gnosisguild/enclave/commit/5c950eb667d07aef274d32a97246aaea6b39551e)), closes [#345](https://github.com/gnosisguild/enclave/issues/345) [#406](https://github.com/gnosisguild/enclave/issues/406) +* Revert "Add comment to create tech debt branch" ([acc12ad](https://github.com/gnosisguild/enclave/commit/acc12ad26d521b2fd08c879e518f1d3a227f4729)) + + + diff --git a/Cargo.lock b/Cargo.lock index 7a3a3f617f..20426d06bd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2585,7 +2585,7 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "e3-aggregator" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "anyhow", @@ -2603,7 +2603,7 @@ dependencies = [ [[package]] name = "e3-bfv-helpers" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "alloy-dyn-abi", "alloy-primitives", @@ -2620,7 +2620,7 @@ dependencies = [ [[package]] name = "e3-cli" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "anyhow", @@ -2650,7 +2650,7 @@ dependencies = [ [[package]] name = "e3-compute-provider" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "ark-bn254", "ark-ff 0.4.2", @@ -2666,7 +2666,7 @@ dependencies = [ [[package]] name = "e3-config" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "alloy-primitives", "anyhow", @@ -2686,7 +2686,7 @@ dependencies = [ [[package]] name = "e3-crypto" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "aes-gcm", "anyhow", @@ -2700,7 +2700,7 @@ dependencies = [ [[package]] name = "e3-data" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "anyhow", @@ -2716,7 +2716,7 @@ dependencies = [ [[package]] name = "e3-entrypoint" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "actix-web", @@ -2754,7 +2754,7 @@ dependencies = [ [[package]] name = "e3-events" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "alloy", @@ -2775,7 +2775,7 @@ dependencies = [ [[package]] name = "e3-evm" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "alloy", @@ -2799,7 +2799,7 @@ dependencies = [ [[package]] name = "e3-evm-helpers" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "alloy", "async-trait", @@ -2812,7 +2812,7 @@ dependencies = [ [[package]] name = "e3-fhe" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "anyhow", @@ -2833,7 +2833,7 @@ dependencies = [ [[package]] name = "e3-fs" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "anyhow", "async-trait", @@ -2877,7 +2877,7 @@ dependencies = [ [[package]] name = "e3-indexer" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "alloy", "async-trait", @@ -2891,7 +2891,7 @@ dependencies = [ [[package]] name = "e3-init" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "anyhow", "async-recursion", @@ -2909,7 +2909,7 @@ dependencies = [ [[package]] name = "e3-keyshare" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "anyhow", @@ -2926,7 +2926,7 @@ dependencies = [ [[package]] name = "e3-logger" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "base64", @@ -2936,7 +2936,7 @@ dependencies = [ [[package]] name = "e3-net" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "anyhow", @@ -2958,7 +2958,7 @@ dependencies = [ [[package]] name = "e3-program-server" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix-web", "anyhow", @@ -2972,7 +2972,7 @@ dependencies = [ [[package]] name = "e3-request" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "anyhow", @@ -2987,7 +2987,7 @@ dependencies = [ [[package]] name = "e3-sdk" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "e3-bfv-helpers", "e3-evm-helpers", @@ -2996,7 +2996,7 @@ dependencies = [ [[package]] name = "e3-sortition" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "alloy", @@ -3013,7 +3013,7 @@ dependencies = [ [[package]] name = "e3-support-scripts" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "anyhow", "async-trait", @@ -3024,7 +3024,7 @@ dependencies = [ [[package]] name = "e3-test-helpers" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "bincode", @@ -3041,7 +3041,7 @@ dependencies = [ [[package]] name = "e3-tests" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "actix", "alloy", @@ -3074,7 +3074,7 @@ dependencies = [ [[package]] name = "e3-wasm" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "e3-bfv-helpers", "getrandom 0.2.16", @@ -3151,7 +3151,7 @@ dependencies = [ [[package]] name = "enclaveup" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "anyhow", "clap", diff --git a/Cargo.toml b/Cargo.toml index 3e3bfed415..275724cf8f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,38 +52,38 @@ push-remote = "origin" publish = true [workspace.package] -version = "0.0.15-test" +version = "0.0.14-test" edition = "2021" license = "LGPL-3.0-only" description = "E3 โ€” Encrypted Execution Environments" repository = "https://github.com/gnosisguild/enclave" [workspace.dependencies] -e3-aggregator = { version = "0.0.15-test", path = "./crates/aggregator" } -e3-bfv-helpers = { version = "0.0.15-test", path = "./crates/bfv-helpers" } -e3-config = { version = "0.0.15-test", path = "./crates/config" } -e3-crypto = { version = "0.0.15-test", path = "./crates/crypto" } -e3-data = { version = "0.0.15-test", path = "./crates/data" } -e3-request = { version = "0.0.15-test", path = "./crates/request" } -e3-sdk = { version = "0.0.15-test", path = "./crates/sdk" } -e3-cli = { version = "0.0.15-test", path = "./crates/cli" } -e3-entrypoint = { version = "0.0.15-test", path = "./crates/entrypoint" } -e3-init = { version = "0.0.15-test", path = "./crates/init" } -e3-events = { version = "0.0.15-test", path = "./crates/events" } -e3-evm = { version = "0.0.15-test", path = "./crates/evm" } -e3-evm-helpers = { version = "0.0.15-test", path = "./crates/evm-helpers" } -e3-fhe = { version = "0.0.15-test", path = "./crates/fhe" } -e3-fs = { version = "0.0.15-test", path = "./crates/fs" } -e3-indexer = { version = "0.0.15-test", path = "./crates/indexer" } -e3-keyshare = { version = "0.0.15-test", path = "./crates/keyshare" } -e3-logger = { version = "0.0.15-test", path = "./crates/logger" } -e3-net = { version = "0.0.15-test", path = "./crates/net" } -e3-compute-provider = { version = "0.0.15-test", path = "./crates/compute-provider" } -e3-sortition = { version = "0.0.15-test", path = "./crates/sortition" } -e3-program-server = { version = "0.0.15-test", path = "./crates/program-server" } -e3-support-scripts = { version = "0.0.15-test", path = "./crates/support-scripts" } -e3-test-helpers = { version = "0.0.15-test", path = "./crates/test-helpers" } -e3-tests = { version = "0.0.15-test", path = "./crates/tests" } +e3-aggregator = { version = "0.0.14-test", path = "./crates/aggregator" } +e3-bfv-helpers = { version = "0.0.14-test", path = "./crates/bfv-helpers" } +e3-config = { version = "0.0.14-test", path = "./crates/config" } +e3-crypto = { version = "0.0.14-test", path = "./crates/crypto" } +e3-data = { version = "0.0.14-test", path = "./crates/data" } +e3-request = { version = "0.0.14-test", path = "./crates/request" } +e3-sdk = { version = "0.0.14-test", path = "./crates/sdk" } +e3-cli = { version = "0.0.14-test", path = "./crates/cli" } +e3-entrypoint = { version = "0.0.14-test", path = "./crates/entrypoint" } +e3-init = { version = "0.0.14-test", path = "./crates/init" } +e3-events = { version = "0.0.14-test", path = "./crates/events" } +e3-evm = { version = "0.0.14-test", path = "./crates/evm" } +e3-evm-helpers = { version = "0.0.14-test", path = "./crates/evm-helpers" } +e3-fhe = { version = "0.0.14-test", path = "./crates/fhe" } +e3-fs = { version = "0.0.14-test", path = "./crates/fs" } +e3-indexer = { version = "0.0.14-test", path = "./crates/indexer" } +e3-keyshare = { version = "0.0.14-test", path = "./crates/keyshare" } +e3-logger = { version = "0.0.14-test", path = "./crates/logger" } +e3-net = { version = "0.0.14-test", path = "./crates/net" } +e3-compute-provider = { version = "0.0.14-test", path = "./crates/compute-provider" } +e3-sortition = { version = "0.0.14-test", path = "./crates/sortition" } +e3-program-server = { version = "0.0.14-test", path = "./crates/program-server" } +e3-support-scripts = { version = "0.0.14-test", path = "./crates/support-scripts" } +e3-test-helpers = { version = "0.0.14-test", path = "./crates/test-helpers" } +e3-tests = { version = "0.0.14-test", path = "./crates/tests" } actix = "=0.13.5" actix-web = "=4.11.0" diff --git a/crates/wasm/package.json b/crates/wasm/package.json index 82e7e4ea06..e1d343aff1 100644 --- a/crates/wasm/package.json +++ b/crates/wasm/package.json @@ -1,6 +1,6 @@ { "name": "@enclave-e3/wasm", - "version": "0.0.15-test", + "version": "0.0.14-test", "description": "Wasm modules for enclave.", "main": "dist/node/e3_wasm.js", "module": "dist/web/e3_wasm.js", diff --git a/package.json b/package.json index a14ea337c4..b5bbe1bcfe 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@enclave/main", "description": "Enclave is an open-source protocol for Encrypted Execution Environments (E3).", - "version": "0.0.0", + "version": "0.0.14-test", "private": true, "license": "LGPL-3.0-only", "author": { @@ -49,16 +49,14 @@ "npm:release": "pnpm build && pnpm config:release && pnpm evm:release && pnpm wasm:release && pnpm sdk:release && pnpm react:release", "support:build": "cd crates/support && ./scripts/build.sh", "build": "pnpm compile", - "changeset": "changeset", - "version": "changeset version", "wasm:build": "cd ./crates/wasm && pnpm build", "release": "pnpm build && changeset publish", "build:ts": "pnpm evm:build && pnpm sdk:build && pnpm react:build" }, "packageManager": "pnpm@10.7.1+sha512.2d92c86b7928dc8284f53494fb4201f983da65f0fb4f0d40baafa5cf628fa31dae3e5968f12466f17df7e97310e30f343a648baea1b9b350685dafafffdf5808", "devDependencies": { - "@changesets/cli": "^2.27.1", "@types/node": "22.7.5", + "conventional-changelog-cli": "^5.0.0", "husky": "^9.1.7", "tsx": "^4.20.3", "typescript": "5.8.3" diff --git a/packages/enclave-config/package.json b/packages/enclave-config/package.json index e261803010..c58aee7b80 100644 --- a/packages/enclave-config/package.json +++ b/packages/enclave-config/package.json @@ -1,6 +1,6 @@ { "name": "@enclave-e3/config", - "version": "0.0.15-test", + "version": "0.0.14-test", "publishConfig": { "access": "public" }, diff --git a/packages/enclave-contracts/package.json b/packages/enclave-contracts/package.json index fa841e50a0..9fcbc286e6 100644 --- a/packages/enclave-contracts/package.json +++ b/packages/enclave-contracts/package.json @@ -1,7 +1,7 @@ { "name": "@enclave-e3/contracts", "description": "Enclave is an open-source protocol for Encrypted Execution Environments (E3).", - "version": "0.0.15-test", + "version": "0.0.14-test", "license": "LGPL-3.0-only", "type": "module", "author": { diff --git a/packages/enclave-react/package.json b/packages/enclave-react/package.json index cd26f4ba80..5c8e9926a9 100644 --- a/packages/enclave-react/package.json +++ b/packages/enclave-react/package.json @@ -1,6 +1,6 @@ { "name": "@enclave-e3/react", - "version": "0.0.15-test", + "version": "0.0.14-test", "description": "React hooks and utilities for Enclave SDK", "type": "module", "private": false, diff --git a/packages/enclave-sdk/package.json b/packages/enclave-sdk/package.json index 73eda08cd9..b62231ed04 100644 --- a/packages/enclave-sdk/package.json +++ b/packages/enclave-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@enclave-e3/sdk", - "version": "0.0.15-test", + "version": "0.0.14-test", "type": "module", "exports": { ".": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 387f553809..09f2cbaf88 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,12 +15,12 @@ importers: .: devDependencies: - '@changesets/cli': - specifier: ^2.27.1 - version: 2.29.6(@types/node@22.7.5) '@types/node': specifier: 22.7.5 version: 22.7.5 + conventional-changelog-cli: + specifier: ^5.0.0 + version: 5.0.0(conventional-commits-filter@5.0.0) husky: specifier: ^9.1.7 version: 9.1.7 @@ -1387,61 +1387,6 @@ packages: '@braintree/sanitize-url@6.0.4': resolution: {integrity: sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==} - '@changesets/apply-release-plan@7.0.12': - resolution: {integrity: sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ==} - - '@changesets/assemble-release-plan@6.0.9': - resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} - - '@changesets/changelog-git@0.2.1': - resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} - - '@changesets/cli@2.29.6': - resolution: {integrity: sha512-6qCcVsIG1KQLhpQ5zE8N0PckIx4+9QlHK3z6/lwKnw7Tir71Bjw8BeOZaxA/4Jt00pcgCnCSWZnyuZf5Il05QQ==} - hasBin: true - - '@changesets/config@3.1.1': - resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==} - - '@changesets/errors@0.2.0': - resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - - '@changesets/get-dependents-graph@2.1.3': - resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} - - '@changesets/get-release-plan@4.0.13': - resolution: {integrity: sha512-DWG1pus72FcNeXkM12tx+xtExyH/c9I1z+2aXlObH3i9YA7+WZEVaiHzHl03thpvAgWTRaH64MpfHxozfF7Dvg==} - - '@changesets/get-version-range-type@0.4.0': - resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - - '@changesets/git@3.0.4': - resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==} - - '@changesets/logger@0.1.1': - resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - - '@changesets/parse@0.4.1': - resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==} - - '@changesets/pre@2.0.2': - resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} - - '@changesets/read@0.6.5': - resolution: {integrity: sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg==} - - '@changesets/should-skip-package@0.1.2': - resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} - - '@changesets/types@4.1.0': - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - - '@changesets/types@6.1.0': - resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} - - '@changesets/write@0.4.0': - resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} - '@coinbase/wallet-sdk@3.9.3': resolution: {integrity: sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw==} @@ -1457,6 +1402,18 @@ packages: peerDependencies: commander: ~12.1.0 + '@conventional-changelog/git-client@1.0.1': + resolution: {integrity: sha512-PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==} + engines: {node: '>=18'} + peerDependencies: + conventional-commits-filter: ^5.0.0 + conventional-commits-parser: ^6.0.0 + peerDependenciesMeta: + conventional-commits-filter: + optional: true + conventional-commits-parser: + optional: true + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -2186,6 +2143,10 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead + '@hutson/parse-repository-url@5.0.0': + resolution: {integrity: sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==} + engines: {node: '>=10.13.0'} + '@iden3/bigarray@0.0.2': resolution: {integrity: sha512-Xzdyxqm1bOFF6pdIsiHLLl3HkSLjbhqJHVyqaTxXt3RqXBEnmsUmEW47H7VOi/ak7TdkRpNkxjyK5Zbkm+y52g==} @@ -2321,15 +2282,6 @@ packages: resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==} engines: {node: '>=18'} - '@inquirer/external-editor@1.0.1': - resolution: {integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': 22.7.5 - peerDependenciesMeta: - '@types/node': - optional: true - '@inquirer/figures@1.0.13': resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} engines: {node: '>=18'} @@ -2388,12 +2340,6 @@ packages: '@lit/reactive-element@2.1.1': resolution: {integrity: sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==} - '@manypkg/find-root@1.1.0': - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} - - '@manypkg/get-packages@1.1.3': - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - '@mdx-js/mdx@2.3.0': resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} @@ -3701,6 +3647,9 @@ packages: '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -3730,6 +3679,9 @@ packages: '@types/resolve@0.0.8': resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==} + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + '@types/send@0.17.5': resolution: {integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==} @@ -4063,6 +4015,9 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + add-stream@1.0.0: + resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} + add@2.0.6: resolution: {integrity: sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q==} @@ -4195,6 +4150,9 @@ packages: resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} engines: {node: '>=8'} + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -4327,10 +4285,6 @@ packages: peerDependencies: ajv: 4.11.8 - 8 - better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - bfj@7.1.0: resolution: {integrity: sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==} engines: {node: '>= 8.0.0'} @@ -4593,9 +4547,6 @@ packages: character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - chardet@2.1.0: - resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} - charenc@0.0.2: resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} @@ -4624,10 +4575,6 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - cipher-base@1.0.6: resolution: {integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==} engines: {node: '>= 0.10'} @@ -4780,6 +4727,9 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} @@ -4835,6 +4785,73 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + conventional-changelog-angular@8.0.0: + resolution: {integrity: sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==} + engines: {node: '>=18'} + + conventional-changelog-atom@5.0.0: + resolution: {integrity: sha512-WfzCaAvSCFPkznnLgLnfacRAzjgqjLUjvf3MftfsJzQdDICqkOOpcMtdJF3wTerxSpv2IAAjX8doM3Vozqle3g==} + engines: {node: '>=18'} + + conventional-changelog-cli@5.0.0: + resolution: {integrity: sha512-9Y8fucJe18/6ef6ZlyIlT2YQUbczvoQZZuYmDLaGvcSBP+M6h+LAvf7ON7waRxKJemcCII8Yqu5/8HEfskTxJQ==} + engines: {node: '>=18'} + hasBin: true + + conventional-changelog-codemirror@5.0.0: + resolution: {integrity: sha512-8gsBDI5Y3vrKUCxN6Ue8xr6occZ5nsDEc4C7jO/EovFGozx8uttCAyfhRrvoUAWi2WMm3OmYs+0mPJU7kQdYWQ==} + engines: {node: '>=18'} + + conventional-changelog-conventionalcommits@8.0.0: + resolution: {integrity: sha512-eOvlTO6OcySPyyyk8pKz2dP4jjElYunj9hn9/s0OB+gapTO8zwS9UQWrZ1pmF2hFs3vw1xhonOLGcGjy/zgsuA==} + engines: {node: '>=18'} + + conventional-changelog-core@8.0.0: + resolution: {integrity: sha512-EATUx5y9xewpEe10UEGNpbSHRC6cVZgO+hXQjofMqpy+gFIrcGvH3Fl6yk2VFKh7m+ffenup2N7SZJYpyD9evw==} + engines: {node: '>=18'} + + conventional-changelog-ember@5.0.0: + resolution: {integrity: sha512-RPflVfm5s4cSO33GH/Ey26oxhiC67akcxSKL8CLRT3kQX2W3dbE19sSOM56iFqUJYEwv9mD9r6k79weWe1urfg==} + engines: {node: '>=18'} + + conventional-changelog-eslint@6.0.0: + resolution: {integrity: sha512-eiUyULWjzq+ybPjXwU6NNRflApDWlPEQEHvI8UAItYW/h22RKkMnOAtfCZxMmrcMO1OKUWtcf2MxKYMWe9zJuw==} + engines: {node: '>=18'} + + conventional-changelog-express@5.0.0: + resolution: {integrity: sha512-D8Q6WctPkQpvr2HNCCmwU5GkX22BVHM0r4EW8vN0230TSyS/d6VQJDAxGb84lbg0dFjpO22MwmsikKL++Oo/oQ==} + engines: {node: '>=18'} + + conventional-changelog-jquery@6.0.0: + resolution: {integrity: sha512-2kxmVakyehgyrho2ZHBi90v4AHswkGzHuTaoH40bmeNqUt20yEkDOSpw8HlPBfvEQBwGtbE+5HpRwzj6ac2UfA==} + engines: {node: '>=18'} + + conventional-changelog-jshint@5.0.0: + resolution: {integrity: sha512-gGNphSb/opc76n2eWaO6ma4/Wqu3tpa2w7i9WYqI6Cs2fncDSI2/ihOfMvXveeTTeld0oFvwMVNV+IYQIk3F3g==} + engines: {node: '>=18'} + + conventional-changelog-preset-loader@5.0.0: + resolution: {integrity: sha512-SetDSntXLk8Jh1NOAl1Gu5uLiCNSYenB5tm0YVeZKePRIgDW9lQImromTwLa3c/Gae298tsgOM+/CYT9XAl0NA==} + engines: {node: '>=18'} + + conventional-changelog-writer@8.2.0: + resolution: {integrity: sha512-Y2aW4596l9AEvFJRwFGJGiQjt2sBYTjPD18DdvxX9Vpz0Z7HQ+g1Z+6iYDAm1vR3QOJrDBkRHixHK/+FhkR6Pw==} + engines: {node: '>=18'} + hasBin: true + + conventional-changelog@6.0.0: + resolution: {integrity: sha512-tuUH8H/19VjtD9Ig7l6TQRh+Z0Yt0NZ6w/cCkkyzUbGQTnUEmKfGtkC9gGfVgCfOL1Rzno5NgNF4KY8vR+Jo3w==} + engines: {node: '>=18'} + + conventional-commits-filter@5.0.0: + resolution: {integrity: sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==} + engines: {node: '>=18'} + + conventional-commits-parser@6.2.0: + resolution: {integrity: sha512-uLnoLeIW4XaoFtH37qEcg/SXMJmKF4vi7V0H2rnPueg+VEtFGA/asSCNTcq4M/GQ6QmlzchAEtOoDTtKqWeHag==} + engines: {node: '>=18'} + hasBin: true + convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} @@ -5226,10 +5243,6 @@ packages: detect-browser@5.3.0: resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - detect-libc@2.0.4: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} @@ -5299,6 +5312,10 @@ packages: dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dotenv@16.6.1: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} @@ -5645,9 +5662,6 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - extension-port-stream@3.0.0: resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==} engines: {node: '>=12.0.0'} @@ -5768,6 +5782,10 @@ packages: find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + find-up-simple@1.0.1: + resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} + engines: {node: '>=18'} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -5966,6 +5984,16 @@ packages: resolution: {integrity: sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==} hasBin: true + git-raw-commits@5.0.0: + resolution: {integrity: sha512-I2ZXrXeOc0KrCvC7swqtIFXFN+rbjnC7b2T943tvemIOVNl+XP8YnA9UVwqFhzzLClnSA60KR/qEjLpXzs73Qg==} + engines: {node: '>=18'} + hasBin: true + + git-semver-tags@8.0.0: + resolution: {integrity: sha512-N7YRIklvPH3wYWAR2vysaqGLPRcpwQ0GKdlqTiVN5w1UmCdaeY3K8s6DMKRCh54DDdzyt/OAB6C8jgVtb7Y2Fg==} + engines: {node: '>=18'} + hasBin: true + git-up@7.0.0: resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} @@ -6209,6 +6237,10 @@ packages: resolution: {integrity: sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==} engines: {node: '>= 6.0.0'} + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + html-url-attributes@3.0.1: resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} @@ -6240,10 +6272,6 @@ packages: https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} - human-id@4.1.1: - resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} - hasBin: true - human-signals@4.3.1: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} @@ -6296,6 +6324,10 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + index-to-position@1.2.0: + resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} + engines: {node: '>=18'} + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -6423,6 +6455,10 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + is-obj@3.0.0: resolution: {integrity: sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==} engines: {node: '>=12'} @@ -6464,10 +6500,6 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - is-typed-array@1.1.15: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} @@ -6476,10 +6508,6 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -6748,9 +6776,6 @@ packages: lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} @@ -6928,6 +6953,10 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + merge-descriptors@2.0.0: resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} engines: {node: '>=18'} @@ -7375,6 +7404,10 @@ packages: resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} hasBin: true + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -7472,9 +7505,6 @@ packages: os-browserify@0.3.0: resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} - outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - ox@0.6.9: resolution: {integrity: sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==} peerDependencies: @@ -7495,10 +7525,6 @@ packages: resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} engines: {node: '>=12.20'} - p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} - p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -7523,10 +7549,6 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - p-map@7.0.3: resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} engines: {node: '>=18'} @@ -7542,9 +7564,6 @@ packages: resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} engines: {node: '>=14.16'} - package-manager-detector@0.2.11: - resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} - pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -7572,6 +7591,10 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + engines: {node: '>=18'} + parse-numeric-range@1.3.0: resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} @@ -8086,9 +8109,13 @@ packages: read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} + read-package-up@11.0.0: + resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} + engines: {node: '>=18'} + + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -8550,8 +8577,17 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spawndamnit@3.0.1: - resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.22: + resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} @@ -8649,10 +8685,6 @@ packages: resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} engines: {node: '>=0.10.0'} - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - strip-eof@1.0.0: resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} engines: {node: '>=0.10.0'} @@ -8784,9 +8816,13 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} - term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} + temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} + + tempfile@5.0.0: + resolution: {integrity: sha512-bX655WZI/F7EoTDw9JvQURqAXiPHi8o8+yFxPF2lWYyz1aHnmMRuXWqL6YB6GmeO0o4DIYWHLgGNi/X64T+X4Q==} + engines: {node: '>=14.18'} text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -9010,6 +9046,10 @@ packages: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + type-is@2.0.1: resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} engines: {node: '>= 0.6'} @@ -9087,6 +9127,10 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} @@ -9283,6 +9327,9 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + valtio@1.13.2: resolution: {integrity: sha512-Qik0o+DSy741TmkqmRfjq+0xpZBXi/Y6+fXZLn0xNF1z/waFMbE3rkivv5Zcf9RrMUp6zswf2J7sbh2KBlba5A==} engines: {node: '>=12.20.0'} @@ -10644,150 +10691,6 @@ snapshots: '@braintree/sanitize-url@6.0.4': {} - '@changesets/apply-release-plan@7.0.12': - dependencies: - '@changesets/config': 3.1.1 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - detect-indent: 6.1.0 - fs-extra: 7.0.1 - lodash.startcase: 4.4.0 - outdent: 0.5.0 - prettier: 2.8.8 - resolve-from: 5.0.0 - semver: 7.7.2 - - '@changesets/assemble-release-plan@6.0.9': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - semver: 7.7.2 - - '@changesets/changelog-git@0.2.1': - dependencies: - '@changesets/types': 6.1.0 - - '@changesets/cli@2.29.6(@types/node@22.7.5)': - dependencies: - '@changesets/apply-release-plan': 7.0.12 - '@changesets/assemble-release-plan': 6.0.9 - '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.1 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 - '@changesets/get-release-plan': 4.0.13 - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.5 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.1(@types/node@22.7.5) - '@manypkg/get-packages': 1.1.3 - ansi-colors: 4.1.3 - ci-info: 3.9.0 - enquirer: 2.4.1 - fs-extra: 7.0.1 - mri: 1.2.0 - p-limit: 2.3.0 - package-manager-detector: 0.2.11 - picocolors: 1.1.1 - resolve-from: 5.0.0 - semver: 7.7.2 - spawndamnit: 3.0.1 - term-size: 2.2.1 - transitivePeerDependencies: - - '@types/node' - - '@changesets/config@3.1.1': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.3 - '@changesets/logger': 0.1.1 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - micromatch: 4.0.8 - - '@changesets/errors@0.2.0': - dependencies: - extendable-error: 0.1.7 - - '@changesets/get-dependents-graph@2.1.3': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.1 - semver: 7.7.2 - - '@changesets/get-release-plan@4.0.13': - dependencies: - '@changesets/assemble-release-plan': 6.0.9 - '@changesets/config': 3.1.1 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.5 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/get-version-range-type@0.4.0': {} - - '@changesets/git@3.0.4': - dependencies: - '@changesets/errors': 0.2.0 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - micromatch: 4.0.8 - spawndamnit: 3.0.1 - - '@changesets/logger@0.1.1': - dependencies: - picocolors: 1.1.1 - - '@changesets/parse@0.4.1': - dependencies: - '@changesets/types': 6.1.0 - js-yaml: 3.14.1 - - '@changesets/pre@2.0.2': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - - '@changesets/read@0.6.5': - dependencies: - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.1 - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - p-filter: 2.1.0 - picocolors: 1.1.1 - - '@changesets/should-skip-package@0.1.2': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/types@4.1.0': {} - - '@changesets/types@6.1.0': {} - - '@changesets/write@0.4.0': - dependencies: - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - human-id: 4.1.1 - prettier: 2.8.8 - '@coinbase/wallet-sdk@3.9.3': dependencies: bn.js: 5.2.2 @@ -10829,6 +10732,14 @@ snapshots: dependencies: commander: 13.1.0 + '@conventional-changelog/git-client@1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0)': + dependencies: + '@types/semver': 7.7.1 + semver: 7.7.2 + optionalDependencies: + conventional-commits-filter: 5.0.0 + conventional-commits-parser: 6.2.0 + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -11648,6 +11559,8 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} + '@hutson/parse-repository-url@5.0.0': {} + '@iden3/bigarray@0.0.2': {} '@iden3/binfileutils@0.0.11': @@ -11761,13 +11674,6 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 - '@inquirer/external-editor@1.0.1(@types/node@22.7.5)': - dependencies: - chardet: 2.1.0 - iconv-lite: 0.6.3 - optionalDependencies: - '@types/node': 22.7.5 - '@inquirer/figures@1.0.13': {} '@inquirer/input@2.3.0': @@ -11835,22 +11741,6 @@ snapshots: dependencies: '@lit-labs/ssr-dom-shim': 1.4.0 - '@manypkg/find-root@1.1.0': - dependencies: - '@babel/runtime': 7.28.3 - '@types/node': 22.7.5 - find-up: 4.1.0 - fs-extra: 8.1.0 - - '@manypkg/get-packages@1.1.3': - dependencies: - '@babel/runtime': 7.28.3 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 - fs-extra: 8.1.0 - globby: 11.1.0 - read-yaml-file: 1.1.0 - '@mdx-js/mdx@2.3.0': dependencies: '@types/estree-jsx': 1.0.5 @@ -13764,6 +13654,8 @@ snapshots: dependencies: undici-types: 6.19.8 + '@types/normalize-package-data@2.4.4': {} + '@types/parse-json@4.0.2': {} '@types/prettier@2.7.3': {} @@ -13791,6 +13683,8 @@ snapshots: dependencies: '@types/node': 22.7.5 + '@types/semver@7.7.1': {} + '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 @@ -14690,6 +14584,8 @@ snapshots: acorn@8.15.0: {} + add-stream@1.0.0: {} + add@2.0.6: {} adm-zip@0.4.16: {} @@ -14798,6 +14694,8 @@ snapshots: array-back@4.0.2: {} + array-ify@1.0.0: {} + array-union@2.1.0: {} array-uniq@1.0.3: {} @@ -14957,10 +14855,6 @@ snapshots: jsonpointer: 5.0.1 leven: 3.1.0 - better-path-resolve@1.0.0: - dependencies: - is-windows: 1.0.2 - bfj@7.1.0: dependencies: bluebird: 3.7.2 @@ -15264,8 +15158,6 @@ snapshots: character-reference-invalid@2.0.1: {} - chardet@2.1.0: {} - charenc@0.0.2: {} check-error@1.0.3: @@ -15296,8 +15188,6 @@ snapshots: chownr@2.0.0: {} - ci-info@3.9.0: {} - cipher-base@1.0.6: dependencies: inherits: 2.0.4 @@ -15452,6 +15342,11 @@ snapshots: commondir@1.0.1: {} + compare-func@2.0.0: + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + compare-versions@6.1.1: {} compute-scroll-into-view@3.1.1: {} @@ -15515,6 +15410,85 @@ snapshots: content-type@1.0.5: {} + conventional-changelog-angular@8.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-atom@5.0.0: {} + + conventional-changelog-cli@5.0.0(conventional-commits-filter@5.0.0): + dependencies: + add-stream: 1.0.0 + conventional-changelog: 6.0.0(conventional-commits-filter@5.0.0) + meow: 13.2.0 + tempfile: 5.0.0 + transitivePeerDependencies: + - conventional-commits-filter + + conventional-changelog-codemirror@5.0.0: {} + + conventional-changelog-conventionalcommits@8.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-core@8.0.0(conventional-commits-filter@5.0.0): + dependencies: + '@hutson/parse-repository-url': 5.0.0 + add-stream: 1.0.0 + conventional-changelog-writer: 8.2.0 + conventional-commits-parser: 6.2.0 + git-raw-commits: 5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) + git-semver-tags: 8.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) + hosted-git-info: 7.0.2 + normalize-package-data: 6.0.2 + read-package-up: 11.0.0 + read-pkg: 9.0.1 + transitivePeerDependencies: + - conventional-commits-filter + + conventional-changelog-ember@5.0.0: {} + + conventional-changelog-eslint@6.0.0: {} + + conventional-changelog-express@5.0.0: {} + + conventional-changelog-jquery@6.0.0: {} + + conventional-changelog-jshint@5.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-preset-loader@5.0.0: {} + + conventional-changelog-writer@8.2.0: + dependencies: + conventional-commits-filter: 5.0.0 + handlebars: 4.7.8 + meow: 13.2.0 + semver: 7.7.2 + + conventional-changelog@6.0.0(conventional-commits-filter@5.0.0): + dependencies: + conventional-changelog-angular: 8.0.0 + conventional-changelog-atom: 5.0.0 + conventional-changelog-codemirror: 5.0.0 + conventional-changelog-conventionalcommits: 8.0.0 + conventional-changelog-core: 8.0.0(conventional-commits-filter@5.0.0) + conventional-changelog-ember: 5.0.0 + conventional-changelog-eslint: 6.0.0 + conventional-changelog-express: 5.0.0 + conventional-changelog-jquery: 6.0.0 + conventional-changelog-jshint: 5.0.0 + conventional-changelog-preset-loader: 5.0.0 + transitivePeerDependencies: + - conventional-commits-filter + + conventional-commits-filter@5.0.0: {} + + conventional-commits-parser@6.2.0: + dependencies: + meow: 13.2.0 + convert-source-map@1.9.0: {} convert-source-map@2.0.0: {} @@ -15946,8 +15920,6 @@ snapshots: detect-browser@5.3.0: {} - detect-indent@6.1.0: {} - detect-libc@2.0.4: {} devlop@1.1.0: @@ -16013,6 +15985,10 @@ snapshots: no-case: 3.0.4 tslib: 2.8.1 + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + dotenv@16.6.1: {} dunder-proto@1.0.1: @@ -16591,8 +16567,6 @@ snapshots: extend@3.0.2: {} - extendable-error@0.1.7: {} - extension-port-stream@3.0.0: dependencies: readable-stream: 3.6.2 @@ -16708,6 +16682,8 @@ snapshots: find-root@1.1.0: {} + find-up-simple@1.0.1: {} + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -16918,6 +16894,22 @@ snapshots: chalk: 2.4.2 node-emoji: 1.11.0 + git-raw-commits@5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0): + dependencies: + '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) + meow: 13.2.0 + transitivePeerDependencies: + - conventional-commits-filter + - conventional-commits-parser + + git-semver-tags@8.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0): + dependencies: + '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) + meow: 13.2.0 + transitivePeerDependencies: + - conventional-commits-filter + - conventional-commits-parser + git-up@7.0.0: dependencies: is-ssh: 1.4.1 @@ -17382,6 +17374,10 @@ snapshots: hoopy@0.1.4: {} + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + html-url-attributes@3.0.1: {} html-void-elements@3.0.0: {} @@ -17422,8 +17418,6 @@ snapshots: https-browserify@1.0.0: {} - human-id@4.1.1: {} - human-signals@4.3.1: {} human-signals@5.0.0: {} @@ -17457,6 +17451,8 @@ snapshots: imurmurhash@0.1.4: {} + index-to-position@1.2.0: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -17555,6 +17551,8 @@ snapshots: is-number@7.0.0: {} + is-obj@2.0.0: {} + is-obj@3.0.0: {} is-path-inside@3.0.3: {} @@ -17586,18 +17584,12 @@ snapshots: is-stream@3.0.0: {} - is-subdir@1.2.0: - dependencies: - better-path-resolve: 1.0.0 - is-typed-array@1.1.15: dependencies: which-typed-array: 1.1.19 is-unicode-supported@0.1.0: {} - is-windows@1.0.2: {} - isarray@1.0.0: {} isarray@2.0.5: {} @@ -17837,8 +17829,6 @@ snapshots: lodash.sortby@4.7.0: {} - lodash.startcase@4.4.0: {} - lodash.truncate@4.4.2: {} lodash@4.17.21: {} @@ -18178,6 +18168,8 @@ snapshots: media-typer@1.1.0: {} + meow@13.2.0: {} + merge-descriptors@2.0.0: {} merge-stream@2.0.0: {} @@ -18958,6 +18950,12 @@ snapshots: dependencies: abbrev: 1.0.9 + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.7.2 + validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} normalize-range@0.1.2: {} @@ -19069,8 +19067,6 @@ snapshots: os-browserify@0.3.0: {} - outdent@0.5.0: {} - ox@0.6.9(typescript@5.8.3)(zod@3.25.76): dependencies: '@adraffy/ens-normalize': 1.11.0 @@ -19117,10 +19113,6 @@ snapshots: p-cancelable@3.0.0: {} - p-filter@2.1.0: - dependencies: - p-map: 2.1.0 - p-finally@1.0.0: {} p-limit@2.3.0: @@ -19143,8 +19135,6 @@ snapshots: dependencies: p-limit: 3.1.0 - p-map@2.1.0: {} - p-map@7.0.3: {} p-try@2.2.0: {} @@ -19158,10 +19148,6 @@ snapshots: registry-url: 6.0.1 semver: 7.7.2 - package-manager-detector@0.2.11: - dependencies: - quansync: 0.2.11 - pako@1.0.11: {} pako@2.1.0: {} @@ -19207,6 +19193,12 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse-json@8.3.0: + dependencies: + '@babel/code-frame': 7.27.1 + index-to-position: 1.2.0 + type-fest: 4.41.0 + parse-numeric-range@1.3.0: {} parse-path@7.1.0: @@ -19653,12 +19645,19 @@ snapshots: dependencies: pify: 2.3.0 - read-yaml-file@1.1.0: + read-package-up@11.0.0: dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 + find-up-simple: 1.0.1 + read-pkg: 9.0.1 + type-fest: 4.41.0 + + read-pkg@9.0.1: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 6.0.2 + parse-json: 8.3.0 + type-fest: 4.41.0 + unicorn-magic: 0.1.0 readable-stream@2.3.8: dependencies: @@ -20306,10 +20305,19 @@ snapshots: space-separated-tokens@2.0.2: {} - spawndamnit@3.0.1: + spdx-correct@3.2.0: dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.22 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.22 + + spdx-license-ids@3.0.22: {} split-on-first@1.1.0: {} @@ -20405,8 +20413,6 @@ snapshots: strip-bom-string@1.0.0: {} - strip-bom@3.0.0: {} - strip-eof@1.0.0: {} strip-final-newline@3.0.0: {} @@ -20578,7 +20584,11 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - term-size@2.2.1: {} + temp-dir@3.0.0: {} + + tempfile@5.0.0: + dependencies: + temp-dir: 3.0.0 text-table@0.2.0: {} @@ -20806,6 +20816,8 @@ snapshots: type-fest@1.4.0: {} + type-fest@4.41.0: {} + type-is@2.0.1: dependencies: content-type: 1.0.5 @@ -20876,6 +20888,8 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} + unicorn-magic@0.1.0: {} + unified@10.1.2: dependencies: '@types/unist': 2.0.11 @@ -21072,6 +21086,11 @@ snapshots: v8-compile-cache-lib@3.0.1: {} + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + valtio@1.13.2(@types/react@18.3.24)(react@18.3.1): dependencies: derive-valtio: 0.1.0(valtio@1.13.2(@types/react@18.3.24)(react@18.3.1)) diff --git a/scripts/bump-versions.ts b/scripts/bump-versions.ts index bdba92fc43..a0e151287b 100644 --- a/scripts/bump-versions.ts +++ b/scripts/bump-versions.ts @@ -6,6 +6,7 @@ // or FITNESS FOR A PARTICULAR PURPOSE. import { readFileSync, writeFileSync, existsSync } from 'fs' import { join, resolve } from 'path' +import { execSync } from 'child_process' interface PackageJson { name: string @@ -14,6 +15,7 @@ interface PackageJson { class VersionBumper { private newVersion: string + private oldVersion: string | null = null private rootDir: string constructor(newVersion: string) { @@ -24,27 +26,43 @@ class VersionBumper { /** * Main entry point to bump all versions */ - bumpAll(): void { + async bumpAll(): Promise { console.log(`๐Ÿš€ Bumping all versions to ${this.newVersion}`) try { // Validate version format this.validateVersion(this.newVersion) + // Get current version from root package.json or Cargo.toml + this.oldVersion = this.getCurrentVersion() + console.log(`๐Ÿ“Œ Current version: ${this.oldVersion || 'unknown'}`) + // Bump Rust crates this.bumpRustCrates() // Bump npm packages this.bumpNpmPackages() - console.log('โœ… All versions bumped successfully!') + // Update lock files + this.updateLockFiles() + + // Generate changelog + await this.generateChangelog() + + console.log('\nโœ… All versions bumped successfully!') console.log('\n๐Ÿ“‹ Summary:') - console.log(` Rust crates: ${this.newVersion}`) - console.log(` NPM packages: ${this.newVersion}`) + console.log(` Previous version: ${this.oldVersion || 'unknown'}`) + console.log(` New version: ${this.newVersion}`) + console.log(` Rust crates: โœ“`) + console.log(` NPM packages: โœ“`) + console.log(` Lock files: โœ“`) + console.log(` Changelog: โœ“`) + console.log('\n๐Ÿ’ก Next steps:') - console.log(' 1. Review the changes') - console.log(' 2. Commit the changes') - console.log(' 3. Run tests to ensure everything works') + console.log(' 1. Review the changes and CHANGELOG.md') + console.log(' 2. Commit: git add . && git commit -m "chore(release): bump version to ' + this.newVersion + '"') + console.log(' 3. Tag: git tag v' + this.newVersion) + console.log(' 4. Push: git push && git push --tags') } catch (error) { console.error('โŒ Error bumping versions:', error) @@ -52,6 +70,104 @@ class VersionBumper { } } + /** + * Get current version from the monorepo + */ + private getCurrentVersion(): string | null { + // Try to get from root package.json first + const rootPackagePath = join(this.rootDir, 'package.json') + if (existsSync(rootPackagePath)) { + const content = readFileSync(rootPackagePath, 'utf-8') + const packageJson = JSON.parse(content) + if (packageJson.version) { + return packageJson.version + } + } + + // Try to get from root Cargo.toml workspace version + const rootCargoPath = join(this.rootDir, 'Cargo.toml') + if (existsSync(rootCargoPath)) { + const content = readFileSync(rootCargoPath, 'utf-8') + const versionMatch = content.match(/\[workspace\.package\][\s\S]*?version = "([^"]+)"/) + if (versionMatch) { + return versionMatch[1] + } + } + + return null + } + + /** + * Generate changelog using conventional commits + */ + private async generateChangelog(): Promise { + console.log('\n๐Ÿ“ Generating changelog...') + + try { + execSync('pnpm conventional-changelog --help', { + stdio: 'ignore', + cwd: this.rootDir + }) + + const changelogPath = join(this.rootDir, 'CHANGELOG.md') + + if (!existsSync(changelogPath)) { + // First time - generate entire changelog + console.log(' Generating full changelog from git history...') + execSync('npx conventional-changelog -p angular -i CHANGELOG.md -s -r 0', { + cwd: this.rootDir, + stdio: 'inherit' + }) + } else { + // Update existing changelog with changes since last release + console.log(' Updating changelog with new changes...') + execSync('npx conventional-changelog -p angular -i CHANGELOG.md -s', { + cwd: this.rootDir, + stdio: 'inherit' + }) + } + + console.log(' โœ“ Changelog generated successfully') + + } catch (error) { + console.warn(' โš ๏ธ Could not generate changelog:', error) + console.log(' Continuing without changelog...') + } + } + + /** + * Update lock files after version bump + */ + private updateLockFiles(): void { + console.log('\n๐Ÿ”’ Updating lock files...') + + // Update Cargo.lock + try { + execSync('cargo update --workspace', { + cwd: this.rootDir, + stdio: 'pipe' + }) + console.log(' โœ“ Cargo.lock updated') + } catch (error) { + console.warn(' โš ๏ธ Could not update Cargo.lock') + } + + // Detect and update the appropriate Node.js lock file + const pnpmLockPath = join(this.rootDir, 'pnpm-lock.yaml') + + if (existsSync(pnpmLockPath)) { + try { + execSync('pnpm install --lockfile-only', { + cwd: this.rootDir, + stdio: 'pipe' + }) + console.log(' โœ“ pnpm-lock.yaml updated') + } catch (error) { + console.warn(' โš ๏ธ Could not update pnpm-lock.yaml') + } + } + } + /** * Validate version format (semantic versioning) */ @@ -75,7 +191,7 @@ class VersionBumper { // Update workspace dependencies in root Cargo.toml this.updateWorkspaceDependencies(rootCargoPath) - console.log(' โœ“ All workspace crates (via workspace.version)') + console.log(' โœ“ All workspace crates updated via workspace.version') } /** @@ -84,6 +200,13 @@ class VersionBumper { private bumpNpmPackages(): void { console.log('\n๐Ÿ“ฆ Bumping NPM package versions...') + // Update root package.json if it exists + const rootPackagePath = join(this.rootDir, 'package.json') + if (existsSync(rootPackagePath)) { + this.updatePackageJson(rootPackagePath) + console.log(' โœ“ Root package.json') + } + // Main packages to bump (excluding examples and templates) const packagesToBump = [ 'packages/enclave-sdk', @@ -111,12 +234,12 @@ class VersionBumper { private updateCargoToml(filePath: string): void { const content = readFileSync(filePath, 'utf-8') const lines = content.split('\n') - + let updated = false - + for (let i = 0; i < lines.length; i++) { const line = lines[i].trim() - + // Update workspace package version if (line === '[workspace.package]') { // Look for version in the next few lines @@ -128,18 +251,18 @@ class VersionBumper { } } } - + // Update workspace dependencies if (line === '[workspace.dependencies]') { // Look for dependency lines with inline versions for (let j = i + 1; j < lines.length; j++) { const depLine = lines[j].trim() - + // Skip empty lines and new sections if (depLine === '' || depLine.startsWith('[')) { break } - + // Update lines that have version = "..." in them if (depLine.includes('version = ')) { // Replace the version part while preserving the rest @@ -150,7 +273,7 @@ class VersionBumper { } } } - + if (updated) { writeFileSync(filePath, lines.join('\n')) } else { @@ -164,29 +287,29 @@ class VersionBumper { private updateWorkspaceDependencies(filePath: string): void { const content = readFileSync(filePath, 'utf-8') const lines = content.split('\n') - + let inWorkspaceDeps = false let updated = false - + for (let i = 0; i < lines.length; i++) { const line = lines[i].trim() - + if (line === '[workspace.dependencies]') { inWorkspaceDeps = true continue } - + if (inWorkspaceDeps && line.startsWith('version = ')) { lines[i] = `version = "${this.newVersion}"` updated = true } - + // Reset when we hit a new section if (line.startsWith('[') && inWorkspaceDeps && line !== '[workspace.dependencies]') { break } } - + if (updated) { writeFileSync(filePath, lines.join('\n')) } @@ -213,18 +336,44 @@ class VersionBumper { const packageJson: PackageJson = JSON.parse(content) return packageJson.name || 'unknown' } - } // CLI interface function main() { const args = process.argv.slice(2) - if (args.length === 0) { - console.log('Usage: tsx scripts/bump-versions.ts ') - console.log('Example: tsx scripts/bump-versions.ts 1.0.0') - console.log('Example: tsx scripts/bump-versions.ts 1.0.0-beta.1') - process.exit(1) + if (args.length === 0 || args[0] === '--help' || args[0] === '-h') { + console.log(` +Usage: tsx scripts/bump-versions.ts + +Version Bump Script for Enclave Monorepo +- Bumps all Rust crates and npm packages to the same version +- Generates changelog from conventional commits +- Updates lock files + +Examples: + tsx scripts/bump-versions.ts 1.0.0 + tsx scripts/bump-versions.ts 1.0.0-beta.1 + tsx scripts/bump-versions.ts 2.3.4 + +The script will: + 1. Update versions in all Rust crates (via workspace.version) + 2. Update versions in all npm packages + 3. Update lock files (Cargo.lock, package-lock.json, etc.) + 4. Generate/update CHANGELOG.md from git history + +Commit Convention for Changelog: + Use conventional commits for automatic changelog generation: + - feat: New feature + - fix: Bug fix + - docs: Documentation changes + - chore: Maintenance tasks + - test: Test changes + - refactor: Code refactoring + - perf: Performance improvements + - BREAKING CHANGE: Breaking changes +`) + process.exit(args.length === 0 ? 1 : 0) } const version = args[0] From 820ea9d35a25286610a1e71a6a5d7d3b15079679 Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Tue, 30 Sep 2025 17:32:15 +0100 Subject: [PATCH 06/13] feat: unify releases --- .github/workflows/binary-releases.yml | 151 ---------- .github/workflows/publish-npm.yml | 24 -- .github/workflows/releases.yml | 412 +++++++++++++++++++++----- README.md | 137 +++++++++ 4 files changed, 476 insertions(+), 248 deletions(-) delete mode 100644 .github/workflows/binary-releases.yml delete mode 100644 .github/workflows/publish-npm.yml diff --git a/.github/workflows/binary-releases.yml b/.github/workflows/binary-releases.yml deleted file mode 100644 index 498563f7e2..0000000000 --- a/.github/workflows/binary-releases.yml +++ /dev/null @@ -1,151 +0,0 @@ -name: Binary Releases - -on: - push: - tags: - - 'v*' - workflow_dispatch: - inputs: - tag: - description: 'Tag to release' - required: true - default: 'v0.1.0' - prerelease: - description: 'Mark as pre-release' - required: false - default: false - type: boolean - repository_dispatch: - types: [binary-release] - -permissions: - contents: write - -jobs: - build: - name: Build binaries - runs-on: ${{ matrix.os }} - strategy: - matrix: - include: - - os: ubuntu-latest - target: x86_64-unknown-linux-gnu - os_name: linux - arch: x86_64 - - os: macos-latest - target: aarch64-apple-darwin - os_name: macos - arch: aarch64 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install Rust - uses: dtolnay/rust-toolchain@stable - - - name: Add Rust targets - run: | - rustup target add ${{ matrix.target }} - - - name: Build enclave - run: cargo build --locked --release --target ${{ matrix.target }} --bin enclave - - - name: Build enclaveup - run: cargo build --locked --release --target ${{ matrix.target }} --bin enclaveup - - - name: Create release archives - run: | - mkdir -p dist - - # Get the correct binary extension - if [[ "${{ matrix.target }}" == *"windows"* ]]; then - EXT=".exe" - else - EXT="" - fi - - # Create enclave archive - cp "target/${{ matrix.target }}/release/enclave${EXT}" "./enclave${EXT}" - tar -czf "dist/enclave-${{ matrix.os_name }}-${{ matrix.arch }}.tar.gz" "enclave${EXT}" - rm "enclave${EXT}" - - # Create enclaveup archive - cp "target/${{ matrix.target }}/release/enclaveup${EXT}" "./enclaveup${EXT}" - tar -czf "dist/enclaveup-${{ matrix.os_name }}-${{ matrix.arch }}.tar.gz" "enclaveup${EXT}" - rm "enclaveup${EXT}" - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: enclave-binaries-${{ matrix.os_name }}-${{ matrix.arch }}-${{ github.run_number }} - path: dist/ - - release: - name: Create Release - runs-on: ubuntu-latest - needs: build - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Download all artifacts - uses: actions/download-artifact@v4 - with: - path: dist/ - - - name: Flatten artifacts - run: | - mkdir -p release-assets - find dist/ -name "*.tar.gz" -exec cp {} release-assets/ \; - ls -la release-assets/ - - - name: Get tag name and prerelease status - id: get_tag - run: | - if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then - echo "tag=${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT - echo "prerelease=${{ github.event.inputs.prerelease }}" >> $GITHUB_OUTPUT - elif [ "${{ github.event_name }}" = "repository_dispatch" ]; then - VERSION="${{ github.event.client_payload.version }}" - echo "tag=v${VERSION}" >> $GITHUB_OUTPUT - echo "prerelease=false" >> $GITHUB_OUTPUT - else - TAG="${GITHUB_REF#refs/tags/}" - echo "tag=${TAG}" >> $GITHUB_OUTPUT - # Auto-detect prerelease based on tag name - if [[ "${TAG}" =~ (test|alpha|beta|rc|dev) ]]; then - echo "prerelease=true" >> $GITHUB_OUTPUT - else - echo "prerelease=false" >> $GITHUB_OUTPUT - fi - fi - - - name: Create Release - uses: softprops/action-gh-release@v1 - with: - tag_name: ${{ steps.get_tag.outputs.tag }} - name: Release ${{ steps.get_tag.outputs.tag }} - draft: false - prerelease: ${{ steps.get_tag.outputs.prerelease }} - files: release-assets/* - body: | - ## Installation - - ### Install enclaveup (the installer) - ```bash - curl -fsSL https://raw.githubusercontent.com/gnosisguild/enclave/main/install | bash - ``` - - ### Use enclaveup to install enclave - ```bash - enclaveup install - ``` - - ## Assets - - `enclave-*`: The main Enclave CLI binary - - `enclaveup-*`: The installer binary - - Supported platforms: - - Linux (x86_64) - - macOS (x86_64, aarch64 Apple Silicon) \ No newline at end of file diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml deleted file mode 100644 index 9863d5e4cd..0000000000 --- a/.github/workflows/publish-npm.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: NPM Packages release -on: - release: - types: [created] -env: - MNEMONIC: "test test test test test test test test test test test junk" - INFURA_API_KEY: "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" - ETHERSCAN_API_KEY: "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" -jobs: - publish-npm: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 - with: - node-version: 22 - registry-url: "https://registry.npmjs.org/" - - name: pnpm-setup - uses: pnpm/action-setup@v4 - - run: pnpm install - - run: pnpm npm:release - env: - NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - \ No newline at end of file diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 6e9fc183f1..ccd4d342dc 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -1,87 +1,198 @@ -name: Releases Workflow +name: Release permissions: - pull-requests: write contents: write + packages: write on: push: - branches: [main] - paths: - - "Cargo.toml" - - "package.json" - - "crates/**" - - "packages/**" - - ".github/workflows/releases.yml" - pull_request: - branches: [main] + tags: + - 'v*.*.*' + - 'v*.*.*-*' # Pre-release tags like v1.0.0-beta.1 + +env: + MNEMONIC: "test test test test test test test test test test test junk" + INFURA_API_KEY: "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" + ETHERSCAN_API_KEY: "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" jobs: - release-rust: - name: Release Rust Crates + validate-and-prepare: + name: Validate Tag and Prepare Release runs-on: ubuntu-latest - # Add concurrency control to prevent conflicts with other workflows - concurrency: - group: release-rust-${{ github.ref }} - cancel-in-progress: false outputs: - releases_created: ${{ steps.release-plz.outputs.releases_created }} - version: ${{ steps.release-plz.outputs.version }} + version: ${{ steps.get_version.outputs.version }} + is_prerelease: ${{ steps.get_version.outputs.is_prerelease }} steps: - - uses: actions/checkout@v4 + - name: Checkout code + uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Install Rust toolchain + - name: Get version from tag + id: get_version + run: | + # Extract version from tag (remove 'v' prefix) + VERSION=${GITHUB_REF_NAME#v} + echo "version=$VERSION" >> $GITHUB_OUTPUT + + # Check if it's a pre-release (contains -, like beta, alpha, rc, etc.) + if [[ "$VERSION" =~ - ]]; then + echo "is_prerelease=true" >> $GITHUB_OUTPUT + echo "๐Ÿ“ฆ Pre-release version: $VERSION" + else + echo "is_prerelease=false" >> $GITHUB_OUTPUT + echo "๐Ÿ“ฆ Release version: $VERSION" + fi + + - name: Verify versions match + run: | + VERSION=${{ steps.get_version.outputs.version }} + + # Check Cargo.toml workspace version + CARGO_VERSION=$(grep -E '^\[workspace\.package\]' -A 5 Cargo.toml | grep '^version' | head -1 | sed 's/.*"\(.*\)".*/\1/') + if [ "$CARGO_VERSION" != "$VERSION" ]; then + echo "โŒ Cargo.toml version ($CARGO_VERSION) doesn't match tag ($VERSION)" + exit 1 + fi + + # Check root package.json if it exists + if [ -f package.json ]; then + NPM_VERSION=$(node -p "require('./package.json').version") + if [ "$NPM_VERSION" != "$VERSION" ]; then + echo "โŒ package.json version ($NPM_VERSION) doesn't match tag ($VERSION)" + exit 1 + fi + fi + + echo "โœ… All versions match: $VERSION" + + build-binaries: + name: Build Binaries (${{ matrix.os_name }}-${{ matrix.arch }}) + runs-on: ${{ matrix.os }} + needs: validate-and-prepare + strategy: + matrix: + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + os_name: linux + arch: x86_64 + - os: macos-latest + target: aarch64-apple-darwin + os_name: macos + arch: aarch64 + - os: macos-latest + target: x86_64-apple-darwin + os_name: macos + arch: x86_64 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Rust uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.target }} - - name: Run release-plz - id: release-plz - uses: MarcoIeni/release-plz-action@v0.5.64 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + - name: Cache Rust dependencies + uses: Swatinem/rust-cache@v2 with: - version: "0.3.83" - command: ${{ github.event_name == 'pull_request' && 'release-pr --dry-run' || 'release-pr' }} + key: ${{ matrix.target }} - - uses: fregante/setup-git-user@v2.0.1 - if: steps.release-plz.outputs.prs_created == 'true' + - name: Build enclave binary + run: cargo build --locked --release --target ${{ matrix.target }} --bin enclave - - name: Install dprint - if: steps.release-plz.outputs.prs_created == 'true' - run: curl -fsSL https://dprint.dev/install.sh | sh -s 0.47.2 > /dev/null 2>&1 + - name: Build enclaveup binary + run: cargo build --locked --release --target ${{ matrix.target }} --bin enclaveup - - name: Format Rust code - if: steps.release-plz.outputs.prs_created == 'true' + - name: Create release archives + shell: bash run: | - pr_branch="${{ fromJSON(steps.release-plz.outputs.pr).head_branch }}" - git pull - git checkout "$pr_branch" - cargo fmt - git commit -am 'chore: format files' - git push origin "$pr_branch" - - release-npm: - name: Release NPM Packages + mkdir -p dist + + # Get the correct binary extension + if [[ "${{ matrix.target }}" == *"windows"* ]]; then + EXT=".exe" + else + EXT="" + fi + + # Create enclave archive + cp "target/${{ matrix.target }}/release/enclave${EXT}" "./enclave${EXT}" + tar -czf "dist/enclave-${{ matrix.os_name }}-${{ matrix.arch }}.tar.gz" "enclave${EXT}" + rm "enclave${EXT}" + + # Create enclaveup archive + cp "target/${{ matrix.target }}/release/enclaveup${EXT}" "./enclaveup${EXT}" + tar -czf "dist/enclaveup-${{ matrix.os_name }}-${{ matrix.arch }}.tar.gz" "enclaveup${EXT}" + rm "enclaveup${EXT}" + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: enclave-binaries-${{ matrix.os_name }}-${{ matrix.arch }} + path: dist/ + + publish-rust-crates: + name: Publish Rust Crates runs-on: ubuntu-latest - needs: release-rust - if: github.event_name == 'push' + needs: validate-and-prepare + # Publish ALL versions to crates.io (including pre-releases) steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + + - name: Cache Rust dependencies + uses: Swatinem/rust-cache@v2 + + - name: Publish to crates.io + env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + run: | + VERSION="${{ needs.validate-and-prepare.outputs.version }}" + IS_PRERELEASE="${{ needs.validate-and-prepare.outputs.is_prerelease }}" + + if [[ "$IS_PRERELEASE" == "true" ]]; then + echo "๐Ÿ“ฆ Publishing pre-release version to crates.io: $VERSION" + else + echo "๐Ÿ“ฆ Publishing stable version to crates.io: $VERSION" + fi + + # Publish crates in dependency order + # Adjust this order based on your actual crate dependencies + + # Example order (modify based on your project): + # cargo publish -p enclave-core --no-verify || echo "enclave-core: already published or error" + # sleep 10 # Wait for crates.io to index + # cargo publish -p enclave-crypto --no-verify || echo "enclave-crypto: already published or error" + # sleep 10 + # cargo publish -p enclave-sdk --no-verify || echo "enclave-sdk: already published or error" + # sleep 10 + # cargo publish -p enclave --no-verify || echo "enclave: already published or error" + + echo "โš ๏ธ Note: Add your crates in dependency order in the workflow file" + echo "Skipping actual publish for now - uncomment the cargo publish commands above" + + publish-npm-packages: + name: Publish NPM Packages + runs-on: ubuntu-latest + needs: validate-and-prepare + steps: + - name: Checkout code + uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: "22" - registry-url: "https://registry.npmjs.org" + node-version: '22' + registry-url: 'https://registry.npmjs.org' - name: Setup pnpm - uses: pnpm/action-setup@v2 - with: - version: 10.7.1 + uses: pnpm/action-setup@v4 - name: Install dependencies run: pnpm install --frozen-lockfile @@ -89,28 +200,183 @@ jobs: - name: Build packages run: pnpm build - - name: Create Release PR or Publish - uses: changesets/action@v1 - with: - publish: pnpm release + - name: Determine npm tag + id: npm_tag + run: | + if [[ "${{ needs.validate-and-prepare.outputs.is_prerelease }}" == "true" ]]; then + echo "tag=next" >> $GITHUB_OUTPUT + echo "๐Ÿ“ฆ Publishing with 'next' tag for pre-release" + else + echo "tag=latest" >> $GITHUB_OUTPUT + echo "๐Ÿ“ฆ Publishing with 'latest' tag for stable release" + fi + + - name: Publish to npm env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + # Use your existing npm:release script or publish directly + pnpm npm:release + + # Alternative: publish with specific tag + # npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN + # pnpm publish -r --access public --tag ${{ steps.npm_tag.outputs.tag }} --no-git-checks - trigger-binary-release: - name: Trigger Binary Release + create-github-release: + name: Create GitHub Release runs-on: ubuntu-latest - needs: [release-rust, release-npm] - if: github.event_name == 'push' && needs.release-rust.outputs.releases_created == 'true' + needs: [validate-and-prepare, build-binaries, publish-rust-crates, publish-npm-packages] + # Always create release even if publishing fails (for pre-releases that skip crates.io) + if: always() && needs.validate-and-prepare.result == 'success' && needs.build-binaries.result == 'success' steps: - - uses: actions/checkout@v4 + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 - - name: Trigger binary release workflow - uses: peter-evans/repository-dispatch@v3 + - name: Download all binary artifacts + uses: actions/download-artifact@v4 with: - token: ${{ secrets.GITHUB_TOKEN }} - event-type: binary-release - client-payload: | - { - "version": "${{ needs.release-rust.outputs.version }}" - } + path: dist/ + + - name: Prepare release assets + run: | + mkdir -p release-assets + find dist/ -name "*.tar.gz" -exec cp {} release-assets/ \; + ls -la release-assets/ + + - name: Generate Release Notes + id: release_notes + run: | + VERSION=${{ needs.validate-and-prepare.outputs.version }} + IS_PRERELEASE=${{ needs.validate-and-prepare.outputs.is_prerelease }} + + # Create release notes + cat > release_notes.md << EOF + ## ๐Ÿš€ Release v${VERSION} + + EOF + + # Add pre-release warning if applicable + if [[ "${IS_PRERELEASE}" == "true" ]]; then + cat >> release_notes.md << EOF + > โš ๏ธ **This is a pre-release version** + > Pre-release versions may contain bugs and breaking changes. + + EOF + fi + + # Extract changelog section for this version if CHANGELOG.md exists + if [ -f CHANGELOG.md ]; then + echo "### What's Changed" >> release_notes.md + echo "" >> release_notes.md + + # Try to extract the section for this version + awk -v ver="${VERSION}" ' + /^#+ \[?'${VERSION}'\]?/ { flag=1; next } + /^#+ \[?[0-9]+\.[0-9]+\.[0-9]+/ && flag { exit } + flag { print } + ' CHANGELOG.md >> release_notes.md || echo "See CHANGELOG.md for details." >> release_notes.md + fi + + # Add installation instructions + cat >> release_notes.md << EOF + + --- + + ## ๐Ÿ“ฆ Installation + + ### Install via enclaveup (Recommended) + + Install the installer: + \`\`\`bash + curl -fsSL https://raw.githubusercontent.com/gnosisguild/enclave/main/install | bash + \`\`\` + + Then use it to install enclave: + \`\`\`bash + enclaveup install + \`\`\` + + ### NPM Packages + + EOF + + if [[ "${IS_PRERELEASE}" == "true" ]]; then + cat >> release_notes.md << EOF + \`\`\`bash + # Install pre-release versions + npm install @enclave/sdk@next + npm install @enclave/contracts@next + npm install @enclave/config@next + npm install @enclave/react@next + \`\`\` + EOF + else + cat >> release_notes.md << EOF + \`\`\`bash + # Install stable versions + npm install @enclave/sdk@latest + npm install @enclave/contracts@latest + npm install @enclave/config@latest + npm install @enclave/react@latest + \`\`\` + EOF + fi + + # Add Rust crates section only for stable releases + if [[ "${IS_PRERELEASE}" == "false" ]]; then + cat >> release_notes.md << EOF + + ### Rust Crates + + \`\`\`toml + [dependencies] + enclave = "${VERSION}" + \`\`\` + EOF + fi + + # Add binary assets information + cat >> release_notes.md << EOF + + ## ๐Ÿ’พ Binary Assets + + - \`enclave-*\`: The main Enclave CLI binary + - \`enclaveup-*\`: The installer/version manager binary + + ### Supported Platforms + - Linux (x86_64) + - macOS (x86_64, aarch64 Apple Silicon) + + ## ๐Ÿ“ Checksums + + \`\`\` + EOF + + # Generate checksums for the binaries + cd release-assets && sha256sum *.tar.gz >> ../release_notes.md || true + cd .. + + echo '```' >> release_notes.md + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + tag_name: v${{ needs.validate-and-prepare.outputs.version }} + name: v${{ needs.validate-and-prepare.outputs.version }} + body_path: release_notes.md + draft: false + prerelease: ${{ needs.validate-and-prepare.outputs.is_prerelease }} + generate_release_notes: false # We're providing our own + files: release-assets/* + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Update stable tag (for stable releases only) + if: needs.validate-and-prepare.outputs.is_prerelease == 'false' + run: | + git tag -f stable + git push origin stable --force + echo "โœ… Updated 'stable' tag to point to v${{ needs.validate-and-prepare.outputs.version }}" + \ No newline at end of file diff --git a/README.md b/README.md index 98aeccca66..67660a873b 100644 --- a/README.md +++ b/README.md @@ -160,6 +160,143 @@ sequenceDiagram Enclave-->>Users: success ``` +## ๐Ÿš€ Release Process + +### Overview + +Enclave uses a unified versioning strategy where all packages (Rust crates and npm packages) share the same version number. Releases are triggered by git tags and follow semantic versioning. + +### Release Workflow + +#### 1. Development Phase + +Developers work on features and fixes, committing with [conventional commits](https://www.conventionalcommits.org/): + +```bash +git commit -m "feat: add new encryption module" +git commit -m "fix: resolve memory leak in SDK" +git commit -m "docs: update API documentation" +git commit -m "BREAKING CHANGE: redesign configuration API" +``` + +#### 2. Version Bump +When ready to release, maintainers bump the version across all packages: + +```bash +# Bump version and generate changelog +tsx scripts/bump-versions.ts 1.0.0 + +# For pre-releases +tsx scripts/bump-versions.ts 1.0.0-beta.1 +``` + +#### 3. Commit and Tag +```bash +# Review changes +git diff + +# Commit the version bump +git add . +git commit -m "chore(release): bump version to 1.0.0" + +# Push to main +git push origin main + +# Create and push tag (this triggers the release!) +git tag v1.0.0 +git push origin v1.0.0 +``` + +This script: +- Updates version in `Cargo.toml` (workspace version) +- Updates version in all npm `package.json` files +- Updates lock files (`Cargo.lock`, `package-lock.json`) +- Generates/updates `CHANGELOG.md` from commit history + +#### 4. Automated Release +Once the tag is pushed, GitHub Actions automatically: + +1. **Validates** version consistency across all packages +2. **Builds** binaries for all platforms: + - Linux (x86_64) + - macOS (x86_64, aarch64) +3. **Runs** all tests +4. **Publishes** packages: + * All versions (stable and pre-release): + * โœ… Publishes to crates.io + * โœ… Publishes to npm + * Tag differences: + * Stable (v1.0.0): npm latest tag, updates stable git tag + * Pre-release (v1.0.0-beta.1): npm next tag, no stable tag update +5. **Creates** GitHub Release with: + - Binary downloads for all platforms + - Release notes from CHANGELOG.md + - SHA256 checksums + - Installation instructions + +## ๐Ÿท๏ธ Version Strategy + +### Version Format + +Enclave follows [Semantic Versioning](https://semver.org/): + +- **Stable**: `v1.0.0` - Production ready +- **Pre-release**: `v1.0.0-beta.1` - Testing/preview versions + - `-alpha.X` - Early development, may have breaking changes + - `-beta.X` - Feature complete, testing for bugs + - `-rc.X` - Release candidate, final testing + +### Which Version Should I Use? + +#### For Production (Mainnet) +Use stable versions only: +```bash +enclaveup install # Latest stable +enclaveup install v1.0.0 # Specific stable version +``` + +#### For Testing (Testnet) +You can use pre-release versions: +```bash +enclaveup install --pre-release # Latest pre-release +enclaveup install v1.0.0-beta.1 # Specific pre-release +``` + +#### For Development +Build from source: +```bash +git clone https://github.com/gnosisguild/enclave.git +cd enclave +cargo build --release +``` + +## ๐ŸŒฟ Branch and Tag Strategy + +### Current Setup + +- **`main`** - Primary development branch +- **`v*.*.*`** - Version tags for releases +- **`stable`** - Always points to the latest stable release + +### Installation Sources + +```bash +# Latest stable release (recommended for production) +curl -fsSL https://raw.githubusercontent.com/gnosisguild/enclave/stable/install | bash + +# Latest development version (may be unstable) +curl -fsSL https://raw.githubusercontent.com/gnosisguild/enclave/main/install | bash +``` + +### Future Branch Strategy + +We plan to implement a three-tier branch strategy: + +1. **`develop`** - Bleeding edge, experimental features +2. **`testnet`** - Stable features for testnet deployment +3. **`mainnet`** - Production-ready for mainnet deployment + + ## Security and Liability This repo is provided WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. From 49a35f722c33e9f41d9052c35a64816f09f45342 Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Tue, 30 Sep 2025 21:41:01 +0100 Subject: [PATCH 07/13] feat: update bump script to also push to git --- CHANGELOG.md | 60 +++++++++ README.md | 10 +- enclave.sh | 27 ++++ examples/CRISP/Cargo.lock | 12 +- run_nodes.sh | 7 ++ scripts/bump-versions.ts | 255 +++++++++++++++++++++++++++++++------- 6 files changed, 314 insertions(+), 57 deletions(-) create mode 100644 enclave.sh create mode 100644 run_nodes.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b4155f630..144503152b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,66 @@ * wasm init ([#740](https://github.com/gnosisguild/enclave/issues/740)) ([58f7905](https://github.com/gnosisguild/enclave/commit/58f7905dd5bd33070be84b0bd5d88b5f44d98267)) +### Features + +* add a function to get an e3 public key ([#760](https://github.com/gnosisguild/enclave/issues/760)) ([4db5dac](https://github.com/gnosisguild/enclave/commit/4db5dacf2f60872cfbafa16728b3da4f9244c248)) +* add changelog feature to bump script ([319ef67](https://github.com/gnosisguild/enclave/commit/319ef6795e4846a89d04f526d24a2c15bd37915d)) +* add script to bump versions and bump to 0.0.15-test ([aada549](https://github.com/gnosisguild/enclave/commit/aada549f45ef35803a3dbde46c574787db7c5215)) +* optimization by concatenating coefficients ([#734](https://github.com/gnosisguild/enclave/issues/734)) ([00e2f6d](https://github.com/gnosisguild/enclave/commit/00e2f6d5eaaf2089488f414dc57675f7120cf2a0)) +* unify releases ([820ea9d](https://github.com/gnosisguild/enclave/commit/820ea9d35a25286610a1e71a6a5d7d3b15079679)) +* upgrade to hardhat v3 and configure repo ([#677](https://github.com/gnosisguild/enclave/issues/677)) ([7ccf6fa](https://github.com/gnosisguild/enclave/commit/7ccf6fa4d62a972a4d2336bd436d71bbc9b54535)) + + + +## [0.0.14-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.14-test) (2025-09-30) + + +### Bug Fixes + +* contracts exports ([#732](https://github.com/gnosisguild/enclave/issues/732)) ([c0686c6](https://github.com/gnosisguild/enclave/commit/c0686c6b42b351c07adf400c47d8cc5b2573f8e6)) +* ensure we don't have uncommited files ([#676](https://github.com/gnosisguild/enclave/issues/676)) ([a46e707](https://github.com/gnosisguild/enclave/commit/a46e70795655b8ff3a9896651f09f5ccee2592c7)) +* ensure we update the cargo crates too ([94f5231](https://github.com/gnosisguild/enclave/commit/94f52319cd2f3c06ad1b0428c58ff95e0ae40c63)) +* fix reentrancy issue in enclave contracts ([#752](https://github.com/gnosisguild/enclave/issues/752)) ([3806a87](https://github.com/gnosisguild/enclave/commit/3806a870b39fa47a1b4b77f9484c0a1d74bfbaa4)) +* release rust crates error ([#689](https://github.com/gnosisguild/enclave/issues/689)) ([3c25929](https://github.com/gnosisguild/enclave/commit/3c25929f2317003c81d3a21d6b4fc9b1e44573cc)) +* remove already published files from gitignore ([#680](https://github.com/gnosisguild/enclave/issues/680)) ([283205d](https://github.com/gnosisguild/enclave/commit/283205dffc665d83cc741c07f697c1ecaf2d1d84)) +* remove ci artifacts deep clean ([#681](https://github.com/gnosisguild/enclave/issues/681)) ([242aac9](https://github.com/gnosisguild/enclave/commit/242aac96b9800043b0d24b5716b3262baefd4472)) +* remove dprint in favour of cargo fmt ([412fa9b](https://github.com/gnosisguild/enclave/commit/412fa9be525672449394e41a216666a56a7821a1)) +* rust crate release error ([#694](https://github.com/gnosisguild/enclave/issues/694)) ([56e9b12](https://github.com/gnosisguild/enclave/commit/56e9b12c2b319d1ea1081df4577b6b0cd0ccfc7d)) +* rust crates release workflow ([#715](https://github.com/gnosisguild/enclave/issues/715)) ([fc330c6](https://github.com/gnosisguild/enclave/commit/fc330c625742bce01def98ef3ccec5ae15fbdb96)) +* update relative paths to use git ([#708](https://github.com/gnosisguild/enclave/issues/708)) ([e0bd2bc](https://github.com/gnosisguild/enclave/commit/e0bd2bc7a5e2515013188fc7e40927630d1f6d58)) +* wasm init ([#740](https://github.com/gnosisguild/enclave/issues/740)) ([58f7905](https://github.com/gnosisguild/enclave/commit/58f7905dd5bd33070be84b0bd5d88b5f44d98267)) + + +### Features + +* add a function to get an e3 public key ([#760](https://github.com/gnosisguild/enclave/issues/760)) ([4db5dac](https://github.com/gnosisguild/enclave/commit/4db5dacf2f60872cfbafa16728b3da4f9244c248)) +* add changelog feature to bump script ([319ef67](https://github.com/gnosisguild/enclave/commit/319ef6795e4846a89d04f526d24a2c15bd37915d)) +* add script to bump versions and bump to 0.0.15-test ([aada549](https://github.com/gnosisguild/enclave/commit/aada549f45ef35803a3dbde46c574787db7c5215)) +* optimization by concatenating coefficients ([#734](https://github.com/gnosisguild/enclave/issues/734)) ([00e2f6d](https://github.com/gnosisguild/enclave/commit/00e2f6d5eaaf2089488f414dc57675f7120cf2a0)) +* unify releases ([820ea9d](https://github.com/gnosisguild/enclave/commit/820ea9d35a25286610a1e71a6a5d7d3b15079679)) +* upgrade to hardhat v3 and configure repo ([#677](https://github.com/gnosisguild/enclave/issues/677)) ([7ccf6fa](https://github.com/gnosisguild/enclave/commit/7ccf6fa4d62a972a4d2336bd436d71bbc9b54535)) + + + +## [0.0.14-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.14-test) (2025-09-30) + + +### Bug Fixes + +* contracts exports ([#732](https://github.com/gnosisguild/enclave/issues/732)) ([c0686c6](https://github.com/gnosisguild/enclave/commit/c0686c6b42b351c07adf400c47d8cc5b2573f8e6)) +* ensure we don't have uncommited files ([#676](https://github.com/gnosisguild/enclave/issues/676)) ([a46e707](https://github.com/gnosisguild/enclave/commit/a46e70795655b8ff3a9896651f09f5ccee2592c7)) +* ensure we update the cargo crates too ([94f5231](https://github.com/gnosisguild/enclave/commit/94f52319cd2f3c06ad1b0428c58ff95e0ae40c63)) +* fix reentrancy issue in enclave contracts ([#752](https://github.com/gnosisguild/enclave/issues/752)) ([3806a87](https://github.com/gnosisguild/enclave/commit/3806a870b39fa47a1b4b77f9484c0a1d74bfbaa4)) +* release rust crates error ([#689](https://github.com/gnosisguild/enclave/issues/689)) ([3c25929](https://github.com/gnosisguild/enclave/commit/3c25929f2317003c81d3a21d6b4fc9b1e44573cc)) +* remove already published files from gitignore ([#680](https://github.com/gnosisguild/enclave/issues/680)) ([283205d](https://github.com/gnosisguild/enclave/commit/283205dffc665d83cc741c07f697c1ecaf2d1d84)) +* remove ci artifacts deep clean ([#681](https://github.com/gnosisguild/enclave/issues/681)) ([242aac9](https://github.com/gnosisguild/enclave/commit/242aac96b9800043b0d24b5716b3262baefd4472)) +* remove dprint in favour of cargo fmt ([412fa9b](https://github.com/gnosisguild/enclave/commit/412fa9be525672449394e41a216666a56a7821a1)) +* rust crate release error ([#694](https://github.com/gnosisguild/enclave/issues/694)) ([56e9b12](https://github.com/gnosisguild/enclave/commit/56e9b12c2b319d1ea1081df4577b6b0cd0ccfc7d)) +* rust crates release workflow ([#715](https://github.com/gnosisguild/enclave/issues/715)) ([fc330c6](https://github.com/gnosisguild/enclave/commit/fc330c625742bce01def98ef3ccec5ae15fbdb96)) +* update relative paths to use git ([#708](https://github.com/gnosisguild/enclave/issues/708)) ([e0bd2bc](https://github.com/gnosisguild/enclave/commit/e0bd2bc7a5e2515013188fc7e40927630d1f6d58)) +* wasm init ([#740](https://github.com/gnosisguild/enclave/issues/740)) ([58f7905](https://github.com/gnosisguild/enclave/commit/58f7905dd5bd33070be84b0bd5d88b5f44d98267)) + + ### Features * add a function to get an e3 public key ([#760](https://github.com/gnosisguild/enclave/issues/760)) ([4db5dac](https://github.com/gnosisguild/enclave/commit/4db5dacf2f60872cfbafa16728b3da4f9244c248)) diff --git a/README.md b/README.md index 67660a873b..0460846431 100644 --- a/README.md +++ b/README.md @@ -184,10 +184,10 @@ When ready to release, maintainers bump the version across all packages: ```bash # Bump version and generate changelog -tsx scripts/bump-versions.ts 1.0.0 +pnpm bump:versions 1.0.0 # For pre-releases -tsx scripts/bump-versions.ts 1.0.0-beta.1 +pnpm bump:versions 1.0.0-beta.1 ``` #### 3. Commit and Tag @@ -199,8 +199,10 @@ git diff git add . git commit -m "chore(release): bump version to 1.0.0" -# Push to main -git push origin main +# Push to a release branch +git push origin chore/release/v1.0.0 + +# Then open a PR to main # Create and push tag (this triggers the release!) git tag v1.0.0 diff --git a/enclave.sh b/enclave.sh new file mode 100644 index 0000000000..45b37da7de --- /dev/null +++ b/enclave.sh @@ -0,0 +1,27 @@ +# !/bin/bash + +# Install the enclave binary +# cargo install --path ./crates/cli --bin enclave -f + +# Deploy Contacts +(cd packages/enclave-contracts && pnpm clean:deployments && pnpm deploy:mocks --network localhost) + +# Deploy CRISP Contracts +(cd examples/CRISP && ETH_WALLET_PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 FOUNDRY_PROFILE=local forge script --rpc-url http://localhost:8545 --broadcast deploy/Deploy.s.sol) + +# Add Ciphernodes to Enclave +sleep 2 # wait for enclave to start + +# Get the addresses of the ciphernodes +CN1=0xbDA5747bFD65F08deb54cb465eB87D40e51B197E +CN2=0xdD2FD4581271e230360230F9337D5c0430Bf44C0 +CN3=0x2546BcD3c84621e976D8185a91A922aE77ECEc30 + +# Add the ciphernodes to the enclave +pnpm ciphernode:add --ciphernode-address "$CN1" --network "localhost" +pnpm ciphernode:add --ciphernode-address "$CN2" --network "localhost" +pnpm ciphernode:add --ciphernode-address "$CN3" --network "localhost" + + +# Delete local DB +(rm -rf ./examples/CRISP/apps/server/database) \ No newline at end of file diff --git a/examples/CRISP/Cargo.lock b/examples/CRISP/Cargo.lock index 064ee4c032..a4d9bb0bd6 100644 --- a/examples/CRISP/Cargo.lock +++ b/examples/CRISP/Cargo.lock @@ -1850,7 +1850,7 @@ dependencies = [ "config", "dialoguer", "dotenvy", - "e3-compute-provider 0.0.15-test", + "e3-compute-provider 0.0.14-test", "e3-sdk", "env_logger", "eyre", @@ -2151,7 +2151,7 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "e3-bfv-helpers" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "alloy-dyn-abi", "alloy-primitives", @@ -2167,7 +2167,7 @@ dependencies = [ [[package]] name = "e3-compute-provider" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "ark-bn254", "ark-ff 0.4.2", @@ -2200,7 +2200,7 @@ dependencies = [ [[package]] name = "e3-evm-helpers" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "alloy", "async-trait", @@ -2244,7 +2244,7 @@ dependencies = [ [[package]] name = "e3-indexer" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "alloy", "async-trait", @@ -2273,7 +2273,7 @@ dependencies = [ [[package]] name = "e3-sdk" -version = "0.0.15-test" +version = "0.0.14-test" dependencies = [ "e3-bfv-helpers", "e3-evm-helpers", diff --git a/run_nodes.sh b/run_nodes.sh new file mode 100644 index 0000000000..9dc0eb1f56 --- /dev/null +++ b/run_nodes.sh @@ -0,0 +1,7 @@ +# !/bin/bash + +# Install the enclave binary +cargo install --path ./crates/cli --bin enclave -f + + anvil & + cd examples/CRISP && enclave wallet set --name ag --private-key "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" && enclave nodes up -v diff --git a/scripts/bump-versions.ts b/scripts/bump-versions.ts index a0e151287b..09eec32f68 100644 --- a/scripts/bump-versions.ts +++ b/scripts/bump-versions.ts @@ -13,14 +13,22 @@ interface PackageJson { version: string } +interface BumpOptions { + skipGit?: boolean + skipPush?: boolean + dryRun?: boolean +} + class VersionBumper { private newVersion: string private oldVersion: string | null = null private rootDir: string + private options: BumpOptions - constructor(newVersion: string) { + constructor(newVersion: string, options: BumpOptions = {}) { this.newVersion = newVersion this.rootDir = resolve(__dirname, '..') + this.options = options } /** @@ -28,6 +36,10 @@ class VersionBumper { */ async bumpAll(): Promise { console.log(`๐Ÿš€ Bumping all versions to ${this.newVersion}`) + + if (this.options.dryRun) { + console.log('๐Ÿ“ DRY RUN MODE - No changes will be made') + } try { // Validate version format @@ -47,7 +59,12 @@ class VersionBumper { this.updateLockFiles() // Generate changelog - await this.generateChangelog() + this.generateChangelog() + + // Git operations + if (!this.options.skipGit && !this.options.dryRun) { + this.performGitOperations() + } console.log('\nโœ… All versions bumped successfully!') console.log('\n๐Ÿ“‹ Summary:') @@ -58,18 +75,128 @@ class VersionBumper { console.log(` Lock files: โœ“`) console.log(` Changelog: โœ“`) - console.log('\n๐Ÿ’ก Next steps:') - console.log(' 1. Review the changes and CHANGELOG.md') - console.log(' 2. Commit: git add . && git commit -m "chore(release): bump version to ' + this.newVersion + '"') - console.log(' 3. Tag: git tag v' + this.newVersion) - console.log(' 4. Push: git push && git push --tags') - + if (!this.options.skipGit && !this.options.dryRun) { + console.log(` Git commit: โœ“`) + console.log(` Git tag: v${this.newVersion} โœ“`) + + if (!this.options.skipPush) { + console.log(` Git push: โœ“`) + console.log(` Tag push: โœ“`) + console.log('\n๐ŸŽ‰ Release tag pushed! The release workflow will start automatically.') + } else { + console.log('\n๐Ÿ’ก Next steps:') + console.log(' Push changes and tag to trigger release:') + console.log(' git push && git push --tags') + } + } else if (this.options.dryRun) { + console.log('\n๐Ÿ’ก Dry run complete. To perform actual bump, run without --dry-run') + } else { + console.log('\n๐Ÿ’ก Next steps:') + console.log(' 1. Review the changes and CHANGELOG.md') + console.log(' 2. Commit: git add . && git commit -m "chore(release): bump version to ' + this.newVersion + '"') + console.log(' 3. Tag: git tag v' + this.newVersion) + console.log(' 4. Push: git push && git push --tags') + } } catch (error) { console.error('โŒ Error bumping versions:', error) process.exit(1) } } + /** + * Check git status for uncommitted changes + */ + private checkGitStatus(): void { + try { + const status = execSync('git status --porcelain', { + cwd: this.rootDir, + encoding: 'utf-8' + }).trim() + + if (status) { + console.error('โŒ Error: You have uncommitted changes.') + console.error(' Please commit or stash your changes before bumping versions.') + console.error('\n Uncommitted files:') + console.error(status.split('\n').map(line => ' ' + line).join('\n')) + console.error('\n To proceed anyway, use --skip-git flag') + process.exit(1) + } + } catch (error) { + console.warn('โš ๏ธ Could not check git status') + } + } + + /** + * Perform git operations (add, commit, tag, push) + */ + private performGitOperations(): void { + console.log('\n๐Ÿ“ Performing git operations...') + + try { + // Add all changes + console.log(' Adding changes...') + execSync('git add .', { cwd: this.rootDir }) + + // Create commit message + const commitMessage = `chore(release): bump version to ${this.newVersion} + + - Updated all Rust crates to ${this.newVersion} + - Updated all npm packages to ${this.newVersion} + - Updated lock files + - Generated CHANGELOG.md` + + // Commit changes + console.log(' Committing changes...') + execSync(`git commit -m "${commitMessage}"`, { + cwd: this.rootDir, + stdio: 'pipe' + }) + console.log(` โœ“ Committed with message: "chore(release): bump version to ${this.newVersion}"`) + + // Create tag + const tagName = `v${this.newVersion}` + console.log(` Creating tag ${tagName}...`) + + // Check if it's a pre-release + const isPrerelease = this.newVersion.includes('-') + const tagMessage = isPrerelease + ? `Pre-release ${this.newVersion}` + : `Release ${this.newVersion}` + + execSync(`git tag -a ${tagName} -m "${tagMessage}"`, { + cwd: this.rootDir, + stdio: 'pipe' + }) + console.log(` โœ“ Created tag: ${tagName}`) + + // Push changes and tag (unless --no-push was specified) + if (!this.options.skipPush) { + console.log(' Pushing to remote...') + + // Push commits + execSync('git push', { + cwd: this.rootDir, + stdio: 'pipe' + }) + console.log(' โœ“ Pushed commits') + + // Push tag + execSync(`git push origin ${tagName}`, { + cwd: this.rootDir, + stdio: 'pipe' + }) + console.log(` โœ“ Pushed tag ${tagName}`) + } + + } catch (error: any) { + console.error('โŒ Error during git operations:', error.message) + console.error('\n๐Ÿ’ก If the tag already exists, delete it first:') + console.error(` git tag -d v${this.newVersion}`) + console.error(` git push --delete origin v${this.newVersion}`) + throw error + } + } + /** * Get current version from the monorepo */ @@ -100,7 +227,7 @@ class VersionBumper { /** * Generate changelog using conventional commits */ - private async generateChangelog(): Promise { + private generateChangelog(): void { console.log('\n๐Ÿ“ Generating changelog...') try { @@ -202,10 +329,8 @@ class VersionBumper { // Update root package.json if it exists const rootPackagePath = join(this.rootDir, 'package.json') - if (existsSync(rootPackagePath)) { - this.updatePackageJson(rootPackagePath) - console.log(' โœ“ Root package.json') - } + this.updatePackageJson(rootPackagePath) + console.log(' โœ“ Root package.json') // Main packages to bump (excluding examples and templates) const packagesToBump = [ @@ -219,12 +344,11 @@ class VersionBumper { for (const packagePath of packagesToBump) { const fullPath = join(this.rootDir, packagePath) const packageJsonPath = join(fullPath, 'package.json') + + this.updatePackageJson(packageJsonPath) + const packageName = this.getPackageName(packageJsonPath) + console.log(` โœ“ ${packageName}`) - if (existsSync(packageJsonPath)) { - this.updatePackageJson(packageJsonPath) - const packageName = this.getPackageName(packageJsonPath) - console.log(` โœ“ ${packageName}`) - } } } @@ -334,7 +458,7 @@ class VersionBumper { private getPackageName(filePath: string): string { const content = readFileSync(filePath, 'utf-8') const packageJson: PackageJson = JSON.parse(content) - return packageJson.name || 'unknown' + return packageJson.name } } @@ -342,43 +466,80 @@ class VersionBumper { function main() { const args = process.argv.slice(2) - if (args.length === 0 || args[0] === '--help' || args[0] === '-h') { - console.log(` -Usage: tsx scripts/bump-versions.ts + // Parse options + const options: BumpOptions = {} + let version: string | null = null + + for (let i = 0; i < args.length; i++) { + const arg = args[i] + + if (arg === '--help' || arg === '-h') { + showHelp() + process.exit(0) + } else if (arg === '--skip-git') { + options.skipGit = true + } else if (arg === '--no-push') { + options.skipPush = true + } else if (arg === '--dry-run') { + options.dryRun = true + } else if (!arg.startsWith('-')) { + version = arg + } + } + + if (!version) { + console.error('โŒ Error: Version is required') + showHelp() + process.exit(1) + } + + const bumper = new VersionBumper(version, options) + bumper.bumpAll() +} + +function showHelp() { + console.log(` +Usage: pnpm bump:versions [options] Version Bump Script for Enclave Monorepo -- Bumps all Rust crates and npm packages to the same version -- Generates changelog from conventional commits -- Updates lock files +Bumps all versions, generates changelog, commits, tags, and pushes to trigger release. + +Arguments: + version The new version (e.g., 1.0.0, 1.0.0-beta.1) + +Options: + --skip-git Skip all git operations (add, commit, tag, push) + --no-push Perform git operations but don't push (local only) + --dry-run Show what would be done without making changes + --help, -h Show this help message Examples: + # Full release (bump, commit, tag, push) tsx scripts/bump-versions.ts 1.0.0 + + # Pre-release tsx scripts/bump-versions.ts 1.0.0-beta.1 - tsx scripts/bump-versions.ts 2.3.4 + + # Local only (don't push) + tsx scripts/bump-versions.ts --no-push 1.0.0 + + # Manual git operations + tsx scripts/bump-versions.ts --skip-git 1.0.0 + + # Test what would happen + tsx scripts/bump-versions.ts --dry-run 1.0.0 The script will: - 1. Update versions in all Rust crates (via workspace.version) - 2. Update versions in all npm packages - 3. Update lock files (Cargo.lock, package-lock.json, etc.) - 4. Generate/update CHANGELOG.md from git history - -Commit Convention for Changelog: - Use conventional commits for automatic changelog generation: - - feat: New feature - - fix: Bug fix - - docs: Documentation changes - - chore: Maintenance tasks - - test: Test changes - - refactor: Code refactoring - - perf: Performance improvements - - BREAKING CHANGE: Breaking changes + 1. Check for uncommitted changes + 2. Update versions in all Rust crates and npm packages + 3. Update lock files (Cargo.lock, pnpm-lock.yaml) + 4. Generate/update CHANGELOG.md + 5. Commit changes with message: "chore(release): bump version to X.Y.Z" + 6. Create annotated tag: vX.Y.Z + 7. Push commits and tag to trigger the release workflow + +Note: Pushing the tag will automatically trigger the GitHub Actions release workflow. `) - process.exit(args.length === 0 ? 1 : 0) - } - - const version = args[0] - const bumper = new VersionBumper(version) - bumper.bumpAll() } // Run if called directly From d8f98652f80fc503d35ec4ce2917b99103d116e6 Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Wed, 1 Oct 2025 09:00:37 +0100 Subject: [PATCH 08/13] chore: update documentation of the script --- README.md | 127 +++++++++++++++++++++++++++++++-------- enclave.sh | 27 --------- run_nodes.sh | 7 --- scripts/README.md | 74 ++++++++++++++++++++--- scripts/bump-versions.ts | 1 - 5 files changed, 168 insertions(+), 68 deletions(-) delete mode 100644 enclave.sh delete mode 100644 run_nodes.sh diff --git a/README.md b/README.md index 0460846431..0ffc677c8e 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,22 @@ sequenceDiagram Enclave uses a unified versioning strategy where all packages (Rust crates and npm packages) share the same version number. Releases are triggered by git tags and follow semantic versioning. -### Release Workflow +### Quick Release + +```bash +# One command to release! ๐ŸŽ‰ +pnpm bump:versions 1.0.0 + +# This automatically: +# - Bumps all versions +# - Generates changelog +# - Commits changes +# - Creates tag +# - Pushes to GitHub +# - Triggers release workflow +``` + +### Detailed Release Workflow #### 1. Development Phase @@ -179,43 +194,47 @@ git commit -m "docs: update API documentation" git commit -m "BREAKING CHANGE: redesign configuration API" ``` -#### 2. Version Bump -When ready to release, maintainers bump the version across all packages: +#### 2. Release Execution + +When ready to release, maintainers run a single command: ```bash -# Bump version and generate changelog +# For stable release pnpm bump:versions 1.0.0 -# For pre-releases +# For pre-release pnpm bump:versions 1.0.0-beta.1 ``` -#### 3. Commit and Tag -```bash -# Review changes -git diff +This command automatically: +- โœ… Validates working directory is clean +- โœ… Updates version in `Cargo.toml` (workspace version) +- โœ… Updates version in all npm `package.json` files +- โœ… Updates lock files (`Cargo.lock`, `pnpm-lock.yaml`) +- โœ… Generates/updates `CHANGELOG.md` from commit history +- โœ… Commits changes: `chore(release): bump version to X.Y.Z` +- โœ… Creates annotated tag: `vX.Y.Z` +- โœ… Pushes commits and tag to GitHub +- โœ… **Triggers automated release workflow** -# Commit the version bump -git add . -git commit -m "chore(release): bump version to 1.0.0" +#### 3. Alternative: Manual Review Before Push -# Push to a release branch -git push origin chore/release/v1.0.0 +If you prefer to review changes before pushing: -# Then open a PR to main +```bash +# Prepare release locally (no push) +pnpm bump:versions --no-push 1.0.0 + +# Review the changes +git diff HEAD~1 +cat CHANGELOG.md -# Create and push tag (this triggers the release!) -git tag v1.0.0 -git push origin v1.0.0 +# If everything looks good, push +git push && git push --tags ``` -This script: -- Updates version in `Cargo.toml` (workspace version) -- Updates version in all npm `package.json` files -- Updates lock files (`Cargo.lock`, `package-lock.json`) -- Generates/updates `CHANGELOG.md` from commit history +#### 4. Automated Release Pipeline -#### 4. Automated Release Once the tag is pushed, GitHub Actions automatically: 1. **Validates** version consistency across all packages @@ -228,8 +247,8 @@ Once the tag is pushed, GitHub Actions automatically: * โœ… Publishes to crates.io * โœ… Publishes to npm * Tag differences: - * Stable (v1.0.0): npm latest tag, updates stable git tag - * Pre-release (v1.0.0-beta.1): npm next tag, no stable tag update + * Stable (`v1.0.0`): npm `latest` tag, updates `stable` git tag + * Pre-release (`v1.0.0-beta.1`): npm `next` tag, no `stable` tag update 5. **Creates** GitHub Release with: - Binary downloads for all platforms - Release notes from CHANGELOG.md @@ -298,6 +317,62 @@ We plan to implement a three-tier branch strategy: 2. **`testnet`** - Stable features for testnet deployment 3. **`mainnet`** - Production-ready for mainnet deployment +## ๐Ÿ“‹ Release Checklist + +For maintainers doing a release: + +- [ ] Ensure all tests pass on `main` +- [ ] Review commits since last release for proper conventional format +- [ ] Decide version number (major/minor/patch) +- [ ] Run: `pnpm bump:versions X.Y.Z` +- [ ] Monitor GitHub Actions for successful deployment +- [ ] Verify packages on [npm](https://www.npmjs.com/org/enclave) and [crates.io](https://crates.io/search?q=enclave) +- [ ] Check GitHub release page for binaries and changelog +- [ ] Announce release (Discord/Twitter/etc) + +## ๐Ÿ”ง Script Options + +The `bump:versions` script supports several options: + +```bash +# Full automatic release (default) +pnpm bump:versions 1.0.0 + +# Local only - don't push +pnpm bump:versions --no-push 1.0.0 + +# Skip git operations entirely +pnpm bump:versions --skip-git 1.0.0 + +# Dry run - see what would happen +pnpm bump:versions --dry-run 1.0.0 + +# Show help +pnpm bump:versions --help +``` + +## ๐Ÿ”„ Rollback Procedure + +If a release has issues: + +1. **Mark as deprecated on npm**: + ```bash + npm deprecate @enclave/sdk@1.0.0 "Critical bug, use 1.0.1" + ``` + +2. **Yank from crates.io** (if critical): + ```bash + cargo yank --version 1.0.0 enclave + ``` + +3. **Fix and release patch**: + ```bash + pnpm bump:versions 1.0.1 + ``` + +## ๐Ÿ“Š Version History + +Check our [Releases page](https://github.com/gnosisguild/enclave/releases) for full version history and changelogs. ## Security and Liability diff --git a/enclave.sh b/enclave.sh deleted file mode 100644 index 45b37da7de..0000000000 --- a/enclave.sh +++ /dev/null @@ -1,27 +0,0 @@ -# !/bin/bash - -# Install the enclave binary -# cargo install --path ./crates/cli --bin enclave -f - -# Deploy Contacts -(cd packages/enclave-contracts && pnpm clean:deployments && pnpm deploy:mocks --network localhost) - -# Deploy CRISP Contracts -(cd examples/CRISP && ETH_WALLET_PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 FOUNDRY_PROFILE=local forge script --rpc-url http://localhost:8545 --broadcast deploy/Deploy.s.sol) - -# Add Ciphernodes to Enclave -sleep 2 # wait for enclave to start - -# Get the addresses of the ciphernodes -CN1=0xbDA5747bFD65F08deb54cb465eB87D40e51B197E -CN2=0xdD2FD4581271e230360230F9337D5c0430Bf44C0 -CN3=0x2546BcD3c84621e976D8185a91A922aE77ECEc30 - -# Add the ciphernodes to the enclave -pnpm ciphernode:add --ciphernode-address "$CN1" --network "localhost" -pnpm ciphernode:add --ciphernode-address "$CN2" --network "localhost" -pnpm ciphernode:add --ciphernode-address "$CN3" --network "localhost" - - -# Delete local DB -(rm -rf ./examples/CRISP/apps/server/database) \ No newline at end of file diff --git a/run_nodes.sh b/run_nodes.sh deleted file mode 100644 index 9dc0eb1f56..0000000000 --- a/run_nodes.sh +++ /dev/null @@ -1,7 +0,0 @@ -# !/bin/bash - -# Install the enclave binary -cargo install --path ./crates/cli --bin enclave -f - - anvil & - cd examples/CRISP && enclave wallet set --name ag --private-key "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" && enclave nodes up -v diff --git a/scripts/README.md b/scripts/README.md index 42085972bb..7cf11f6a3b 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -9,20 +9,80 @@ This directory contains utility scripts for the Enclave project. ### Usage ```bash -pnpm bump:versions +# Full release (bump, commit, tag, and push) +pnpm bump:versions 1.0.0 + +# Pre-release version +pnpm bump:versions 1.0.0-beta.1 + +# Local only (don't push to remote) +pnpm bump:versions --no-push 1.0.0 + +# Manual git operations (just bump versions) +pnpm bump:versions --skip-git 1.0.0 + +# Test run (see what would happen) +pnpm bump:versions --dry-run 1.0.0 ``` -Example: +### What it does + +**By default, the script performs a complete release:** + +1. **Validates** your working directory is clean (no uncommitted changes) +2. **Updates versions** across the entire monorepo: + - Rust workspace version in root `Cargo.toml` + - All npm packages in `packages/` and `crates/wasm` + - Root `package.json` +3. **Updates lock files**: + - `Cargo.lock` for Rust dependencies + - `pnpm-lock.yaml` for npm dependencies +4. **Generates changelog** from conventional commits (uses `CHANGELOG.md`) +5. **Commits** all changes with message: `chore(release): bump version to X.Y.Z` +6. **Creates** annotated git tag: `vX.Y.Z` +7. **Pushes** commits and tag to GitHub +8. **Triggers** the automated release workflow + +### Examples ```bash -pnpm bump:versions 1.0.0 +# One-command release (recommended) +pnpm bump:versions 1.2.3 +# This bumps everything, commits, tags, and pushes - triggering the full release! + +# Pre-release for testing +pnpm bump:versions 1.2.3-beta.1 +# Automatically detected as pre-release, published to npm with 'next' tag + +# Prepare release locally first +pnpm bump:versions --no-push 1.2.3 +# Does everything except push - review first, then: git push && git push --tags + +# Just bump versions (old behavior) +pnpm bump:versions --skip-git 1.2.3 +# Only updates versions, you handle git operations manually ``` -### What it does +### Options + +- `--skip-git` - Skip all git operations (add, commit, tag, push) +- `--no-push` - Perform git operations locally but don't push +- `--dry-run` - Preview what would happen without making any changes +- `--help` - Show help message + +### Prerequisites + +- Clean working directory (no uncommitted changes) +- Conventional commits for changelog generation +- Valid semver version format + +### After Running -- Bumps the versions of all packages and crates in the project. -- Updates the versions in the `Cargo.toml` files. -- Updates the versions in the `package.json` files. +Once you run `pnpm bump:versions X.Y.Z` and the tag is pushed, GitHub Actions automatically: +- Builds binaries for all platforms (Linux, macOS) +- Publishes to npm (with `latest` or `next` tag) +- Publishes to crates.io +- Creates GitHub release with changelog and binaries ## License Header Checker diff --git a/scripts/bump-versions.ts b/scripts/bump-versions.ts index 09eec32f68..2988e4a2d9 100644 --- a/scripts/bump-versions.ts +++ b/scripts/bump-versions.ts @@ -348,7 +348,6 @@ class VersionBumper { this.updatePackageJson(packageJsonPath) const packageName = this.getPackageName(packageJsonPath) console.log(` โœ“ ${packageName}`) - } } From ba4713a0084d0c2b2a704ddc871adee61e85091a Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Wed, 1 Oct 2025 09:03:29 +0100 Subject: [PATCH 09/13] chore: update CHANGELOG --- CHANGELOG.md | 254 +-------------------------------------------------- 1 file changed, 2 insertions(+), 252 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 144503152b..775ac32639 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## [0.0.14-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.14-test) (2025-09-30) +## [0.0.14-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.14-test) (2025-10-01) ### Bug Fixes @@ -24,258 +24,8 @@ * add script to bump versions and bump to 0.0.15-test ([aada549](https://github.com/gnosisguild/enclave/commit/aada549f45ef35803a3dbde46c574787db7c5215)) * optimization by concatenating coefficients ([#734](https://github.com/gnosisguild/enclave/issues/734)) ([00e2f6d](https://github.com/gnosisguild/enclave/commit/00e2f6d5eaaf2089488f414dc57675f7120cf2a0)) * unify releases ([820ea9d](https://github.com/gnosisguild/enclave/commit/820ea9d35a25286610a1e71a6a5d7d3b15079679)) +* update bump script to also push to git ([49a35f7](https://github.com/gnosisguild/enclave/commit/49a35f722c33e9f41d9052c35a64816f09f45342)) * upgrade to hardhat v3 and configure repo ([#677](https://github.com/gnosisguild/enclave/issues/677)) ([7ccf6fa](https://github.com/gnosisguild/enclave/commit/7ccf6fa4d62a972a4d2336bd436d71bbc9b54535)) -## [0.0.14-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.14-test) (2025-09-30) - - -### Bug Fixes - -* contracts exports ([#732](https://github.com/gnosisguild/enclave/issues/732)) ([c0686c6](https://github.com/gnosisguild/enclave/commit/c0686c6b42b351c07adf400c47d8cc5b2573f8e6)) -* ensure we don't have uncommited files ([#676](https://github.com/gnosisguild/enclave/issues/676)) ([a46e707](https://github.com/gnosisguild/enclave/commit/a46e70795655b8ff3a9896651f09f5ccee2592c7)) -* ensure we update the cargo crates too ([94f5231](https://github.com/gnosisguild/enclave/commit/94f52319cd2f3c06ad1b0428c58ff95e0ae40c63)) -* fix reentrancy issue in enclave contracts ([#752](https://github.com/gnosisguild/enclave/issues/752)) ([3806a87](https://github.com/gnosisguild/enclave/commit/3806a870b39fa47a1b4b77f9484c0a1d74bfbaa4)) -* release rust crates error ([#689](https://github.com/gnosisguild/enclave/issues/689)) ([3c25929](https://github.com/gnosisguild/enclave/commit/3c25929f2317003c81d3a21d6b4fc9b1e44573cc)) -* remove already published files from gitignore ([#680](https://github.com/gnosisguild/enclave/issues/680)) ([283205d](https://github.com/gnosisguild/enclave/commit/283205dffc665d83cc741c07f697c1ecaf2d1d84)) -* remove ci artifacts deep clean ([#681](https://github.com/gnosisguild/enclave/issues/681)) ([242aac9](https://github.com/gnosisguild/enclave/commit/242aac96b9800043b0d24b5716b3262baefd4472)) -* remove dprint in favour of cargo fmt ([412fa9b](https://github.com/gnosisguild/enclave/commit/412fa9be525672449394e41a216666a56a7821a1)) -* rust crate release error ([#694](https://github.com/gnosisguild/enclave/issues/694)) ([56e9b12](https://github.com/gnosisguild/enclave/commit/56e9b12c2b319d1ea1081df4577b6b0cd0ccfc7d)) -* rust crates release workflow ([#715](https://github.com/gnosisguild/enclave/issues/715)) ([fc330c6](https://github.com/gnosisguild/enclave/commit/fc330c625742bce01def98ef3ccec5ae15fbdb96)) -* update relative paths to use git ([#708](https://github.com/gnosisguild/enclave/issues/708)) ([e0bd2bc](https://github.com/gnosisguild/enclave/commit/e0bd2bc7a5e2515013188fc7e40927630d1f6d58)) -* wasm init ([#740](https://github.com/gnosisguild/enclave/issues/740)) ([58f7905](https://github.com/gnosisguild/enclave/commit/58f7905dd5bd33070be84b0bd5d88b5f44d98267)) - - -### Features - -* add a function to get an e3 public key ([#760](https://github.com/gnosisguild/enclave/issues/760)) ([4db5dac](https://github.com/gnosisguild/enclave/commit/4db5dacf2f60872cfbafa16728b3da4f9244c248)) -* add changelog feature to bump script ([319ef67](https://github.com/gnosisguild/enclave/commit/319ef6795e4846a89d04f526d24a2c15bd37915d)) -* add script to bump versions and bump to 0.0.15-test ([aada549](https://github.com/gnosisguild/enclave/commit/aada549f45ef35803a3dbde46c574787db7c5215)) -* optimization by concatenating coefficients ([#734](https://github.com/gnosisguild/enclave/issues/734)) ([00e2f6d](https://github.com/gnosisguild/enclave/commit/00e2f6d5eaaf2089488f414dc57675f7120cf2a0)) -* unify releases ([820ea9d](https://github.com/gnosisguild/enclave/commit/820ea9d35a25286610a1e71a6a5d7d3b15079679)) -* upgrade to hardhat v3 and configure repo ([#677](https://github.com/gnosisguild/enclave/issues/677)) ([7ccf6fa](https://github.com/gnosisguild/enclave/commit/7ccf6fa4d62a972a4d2336bd436d71bbc9b54535)) - - - -## [0.0.14-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.14-test) (2025-09-30) - - -### Bug Fixes - -* contracts exports ([#732](https://github.com/gnosisguild/enclave/issues/732)) ([c0686c6](https://github.com/gnosisguild/enclave/commit/c0686c6b42b351c07adf400c47d8cc5b2573f8e6)) -* ensure we don't have uncommited files ([#676](https://github.com/gnosisguild/enclave/issues/676)) ([a46e707](https://github.com/gnosisguild/enclave/commit/a46e70795655b8ff3a9896651f09f5ccee2592c7)) -* ensure we update the cargo crates too ([94f5231](https://github.com/gnosisguild/enclave/commit/94f52319cd2f3c06ad1b0428c58ff95e0ae40c63)) -* fix reentrancy issue in enclave contracts ([#752](https://github.com/gnosisguild/enclave/issues/752)) ([3806a87](https://github.com/gnosisguild/enclave/commit/3806a870b39fa47a1b4b77f9484c0a1d74bfbaa4)) -* release rust crates error ([#689](https://github.com/gnosisguild/enclave/issues/689)) ([3c25929](https://github.com/gnosisguild/enclave/commit/3c25929f2317003c81d3a21d6b4fc9b1e44573cc)) -* remove already published files from gitignore ([#680](https://github.com/gnosisguild/enclave/issues/680)) ([283205d](https://github.com/gnosisguild/enclave/commit/283205dffc665d83cc741c07f697c1ecaf2d1d84)) -* remove ci artifacts deep clean ([#681](https://github.com/gnosisguild/enclave/issues/681)) ([242aac9](https://github.com/gnosisguild/enclave/commit/242aac96b9800043b0d24b5716b3262baefd4472)) -* remove dprint in favour of cargo fmt ([412fa9b](https://github.com/gnosisguild/enclave/commit/412fa9be525672449394e41a216666a56a7821a1)) -* rust crate release error ([#694](https://github.com/gnosisguild/enclave/issues/694)) ([56e9b12](https://github.com/gnosisguild/enclave/commit/56e9b12c2b319d1ea1081df4577b6b0cd0ccfc7d)) -* rust crates release workflow ([#715](https://github.com/gnosisguild/enclave/issues/715)) ([fc330c6](https://github.com/gnosisguild/enclave/commit/fc330c625742bce01def98ef3ccec5ae15fbdb96)) -* update relative paths to use git ([#708](https://github.com/gnosisguild/enclave/issues/708)) ([e0bd2bc](https://github.com/gnosisguild/enclave/commit/e0bd2bc7a5e2515013188fc7e40927630d1f6d58)) -* wasm init ([#740](https://github.com/gnosisguild/enclave/issues/740)) ([58f7905](https://github.com/gnosisguild/enclave/commit/58f7905dd5bd33070be84b0bd5d88b5f44d98267)) - - -### Features - -* add a function to get an e3 public key ([#760](https://github.com/gnosisguild/enclave/issues/760)) ([4db5dac](https://github.com/gnosisguild/enclave/commit/4db5dacf2f60872cfbafa16728b3da4f9244c248)) -* add script to bump versions and bump to 0.0.15-test ([aada549](https://github.com/gnosisguild/enclave/commit/aada549f45ef35803a3dbde46c574787db7c5215)) -* optimization by concatenating coefficients ([#734](https://github.com/gnosisguild/enclave/issues/734)) ([00e2f6d](https://github.com/gnosisguild/enclave/commit/00e2f6d5eaaf2089488f414dc57675f7120cf2a0)) -* upgrade to hardhat v3 and configure repo ([#677](https://github.com/gnosisguild/enclave/issues/677)) ([7ccf6fa](https://github.com/gnosisguild/enclave/commit/7ccf6fa4d62a972a4d2336bd436d71bbc9b54535)) - - - -## [0.0.15-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.15-test) (2025-09-30) - - -### Bug Fixes - -* contracts exports ([#732](https://github.com/gnosisguild/enclave/issues/732)) ([c0686c6](https://github.com/gnosisguild/enclave/commit/c0686c6b42b351c07adf400c47d8cc5b2573f8e6)) -* ensure we don't have uncommited files ([#676](https://github.com/gnosisguild/enclave/issues/676)) ([a46e707](https://github.com/gnosisguild/enclave/commit/a46e70795655b8ff3a9896651f09f5ccee2592c7)) -* ensure we update the cargo crates too ([94f5231](https://github.com/gnosisguild/enclave/commit/94f52319cd2f3c06ad1b0428c58ff95e0ae40c63)) -* fix reentrancy issue in enclave contracts ([#752](https://github.com/gnosisguild/enclave/issues/752)) ([3806a87](https://github.com/gnosisguild/enclave/commit/3806a870b39fa47a1b4b77f9484c0a1d74bfbaa4)) -* release rust crates error ([#689](https://github.com/gnosisguild/enclave/issues/689)) ([3c25929](https://github.com/gnosisguild/enclave/commit/3c25929f2317003c81d3a21d6b4fc9b1e44573cc)) -* remove already published files from gitignore ([#680](https://github.com/gnosisguild/enclave/issues/680)) ([283205d](https://github.com/gnosisguild/enclave/commit/283205dffc665d83cc741c07f697c1ecaf2d1d84)) -* remove ci artifacts deep clean ([#681](https://github.com/gnosisguild/enclave/issues/681)) ([242aac9](https://github.com/gnosisguild/enclave/commit/242aac96b9800043b0d24b5716b3262baefd4472)) -* remove dprint in favour of cargo fmt ([412fa9b](https://github.com/gnosisguild/enclave/commit/412fa9be525672449394e41a216666a56a7821a1)) -* rust crate release error ([#694](https://github.com/gnosisguild/enclave/issues/694)) ([56e9b12](https://github.com/gnosisguild/enclave/commit/56e9b12c2b319d1ea1081df4577b6b0cd0ccfc7d)) -* rust crates release workflow ([#715](https://github.com/gnosisguild/enclave/issues/715)) ([fc330c6](https://github.com/gnosisguild/enclave/commit/fc330c625742bce01def98ef3ccec5ae15fbdb96)) -* update relative paths to use git ([#708](https://github.com/gnosisguild/enclave/issues/708)) ([e0bd2bc](https://github.com/gnosisguild/enclave/commit/e0bd2bc7a5e2515013188fc7e40927630d1f6d58)) -* wasm init ([#740](https://github.com/gnosisguild/enclave/issues/740)) ([58f7905](https://github.com/gnosisguild/enclave/commit/58f7905dd5bd33070be84b0bd5d88b5f44d98267)) - - -### Features - -* add a function to get an e3 public key ([#760](https://github.com/gnosisguild/enclave/issues/760)) ([4db5dac](https://github.com/gnosisguild/enclave/commit/4db5dacf2f60872cfbafa16728b3da4f9244c248)) -* add script to bump versions and bump to 0.0.15-test ([aada549](https://github.com/gnosisguild/enclave/commit/aada549f45ef35803a3dbde46c574787db7c5215)) -* optimization by concatenating coefficients ([#734](https://github.com/gnosisguild/enclave/issues/734)) ([00e2f6d](https://github.com/gnosisguild/enclave/commit/00e2f6d5eaaf2089488f414dc57675f7120cf2a0)) -* upgrade to hardhat v3 and configure repo ([#677](https://github.com/gnosisguild/enclave/issues/677)) ([7ccf6fa](https://github.com/gnosisguild/enclave/commit/7ccf6fa4d62a972a4d2336bd436d71bbc9b54535)) - - - -## [0.0.15-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.15-test) (2025-09-30) - - -### Bug Fixes - -* contracts exports ([#732](https://github.com/gnosisguild/enclave/issues/732)) ([c0686c6](https://github.com/gnosisguild/enclave/commit/c0686c6b42b351c07adf400c47d8cc5b2573f8e6)) -* ensure we don't have uncommited files ([#676](https://github.com/gnosisguild/enclave/issues/676)) ([a46e707](https://github.com/gnosisguild/enclave/commit/a46e70795655b8ff3a9896651f09f5ccee2592c7)) -* ensure we update the cargo crates too ([94f5231](https://github.com/gnosisguild/enclave/commit/94f52319cd2f3c06ad1b0428c58ff95e0ae40c63)) -* fix reentrancy issue in enclave contracts ([#752](https://github.com/gnosisguild/enclave/issues/752)) ([3806a87](https://github.com/gnosisguild/enclave/commit/3806a870b39fa47a1b4b77f9484c0a1d74bfbaa4)) -* release rust crates error ([#689](https://github.com/gnosisguild/enclave/issues/689)) ([3c25929](https://github.com/gnosisguild/enclave/commit/3c25929f2317003c81d3a21d6b4fc9b1e44573cc)) -* remove already published files from gitignore ([#680](https://github.com/gnosisguild/enclave/issues/680)) ([283205d](https://github.com/gnosisguild/enclave/commit/283205dffc665d83cc741c07f697c1ecaf2d1d84)) -* remove ci artifacts deep clean ([#681](https://github.com/gnosisguild/enclave/issues/681)) ([242aac9](https://github.com/gnosisguild/enclave/commit/242aac96b9800043b0d24b5716b3262baefd4472)) -* remove dprint in favour of cargo fmt ([412fa9b](https://github.com/gnosisguild/enclave/commit/412fa9be525672449394e41a216666a56a7821a1)) -* rust crate release error ([#694](https://github.com/gnosisguild/enclave/issues/694)) ([56e9b12](https://github.com/gnosisguild/enclave/commit/56e9b12c2b319d1ea1081df4577b6b0cd0ccfc7d)) -* rust crates release workflow ([#715](https://github.com/gnosisguild/enclave/issues/715)) ([fc330c6](https://github.com/gnosisguild/enclave/commit/fc330c625742bce01def98ef3ccec5ae15fbdb96)) -* update relative paths to use git ([#708](https://github.com/gnosisguild/enclave/issues/708)) ([e0bd2bc](https://github.com/gnosisguild/enclave/commit/e0bd2bc7a5e2515013188fc7e40927630d1f6d58)) -* wasm init ([#740](https://github.com/gnosisguild/enclave/issues/740)) ([58f7905](https://github.com/gnosisguild/enclave/commit/58f7905dd5bd33070be84b0bd5d88b5f44d98267)) - - -### Features - -* add a function to get an e3 public key ([#760](https://github.com/gnosisguild/enclave/issues/760)) ([4db5dac](https://github.com/gnosisguild/enclave/commit/4db5dacf2f60872cfbafa16728b3da4f9244c248)) -* add script to bump versions and bump to 0.0.15-test ([aada549](https://github.com/gnosisguild/enclave/commit/aada549f45ef35803a3dbde46c574787db7c5215)) -* optimization by concatenating coefficients ([#734](https://github.com/gnosisguild/enclave/issues/734)) ([00e2f6d](https://github.com/gnosisguild/enclave/commit/00e2f6d5eaaf2089488f414dc57675f7120cf2a0)) -* upgrade to hardhat v3 and configure repo ([#677](https://github.com/gnosisguild/enclave/issues/677)) ([7ccf6fa](https://github.com/gnosisguild/enclave/commit/7ccf6fa4d62a972a4d2336bd436d71bbc9b54535)) - - - -## [0.0.15-test](https://github.com/gnosisguild/enclave/compare/v0.1.2...v0.0.15-test) (2025-09-30) - - -### Bug Fixes - -* contracts exports ([#732](https://github.com/gnosisguild/enclave/issues/732)) ([c0686c6](https://github.com/gnosisguild/enclave/commit/c0686c6b42b351c07adf400c47d8cc5b2573f8e6)) -* ensure we don't have uncommited files ([#676](https://github.com/gnosisguild/enclave/issues/676)) ([a46e707](https://github.com/gnosisguild/enclave/commit/a46e70795655b8ff3a9896651f09f5ccee2592c7)) -* ensure we update the cargo crates too ([94f5231](https://github.com/gnosisguild/enclave/commit/94f52319cd2f3c06ad1b0428c58ff95e0ae40c63)) -* fix reentrancy issue in enclave contracts ([#752](https://github.com/gnosisguild/enclave/issues/752)) ([3806a87](https://github.com/gnosisguild/enclave/commit/3806a870b39fa47a1b4b77f9484c0a1d74bfbaa4)) -* release rust crates error ([#689](https://github.com/gnosisguild/enclave/issues/689)) ([3c25929](https://github.com/gnosisguild/enclave/commit/3c25929f2317003c81d3a21d6b4fc9b1e44573cc)) -* remove already published files from gitignore ([#680](https://github.com/gnosisguild/enclave/issues/680)) ([283205d](https://github.com/gnosisguild/enclave/commit/283205dffc665d83cc741c07f697c1ecaf2d1d84)) -* remove ci artifacts deep clean ([#681](https://github.com/gnosisguild/enclave/issues/681)) ([242aac9](https://github.com/gnosisguild/enclave/commit/242aac96b9800043b0d24b5716b3262baefd4472)) -* remove dprint in favour of cargo fmt ([412fa9b](https://github.com/gnosisguild/enclave/commit/412fa9be525672449394e41a216666a56a7821a1)) -* rust crate release error ([#694](https://github.com/gnosisguild/enclave/issues/694)) ([56e9b12](https://github.com/gnosisguild/enclave/commit/56e9b12c2b319d1ea1081df4577b6b0cd0ccfc7d)) -* rust crates release workflow ([#715](https://github.com/gnosisguild/enclave/issues/715)) ([fc330c6](https://github.com/gnosisguild/enclave/commit/fc330c625742bce01def98ef3ccec5ae15fbdb96)) -* update relative paths to use git ([#708](https://github.com/gnosisguild/enclave/issues/708)) ([e0bd2bc](https://github.com/gnosisguild/enclave/commit/e0bd2bc7a5e2515013188fc7e40927630d1f6d58)) -* wasm init ([#740](https://github.com/gnosisguild/enclave/issues/740)) ([58f7905](https://github.com/gnosisguild/enclave/commit/58f7905dd5bd33070be84b0bd5d88b5f44d98267)) - - -### Features - -* add a function to get an e3 public key ([#760](https://github.com/gnosisguild/enclave/issues/760)) ([4db5dac](https://github.com/gnosisguild/enclave/commit/4db5dacf2f60872cfbafa16728b3da4f9244c248)) -* add script to bump versions and bump to 0.0.15-test ([aada549](https://github.com/gnosisguild/enclave/commit/aada549f45ef35803a3dbde46c574787db7c5215)) -* optimization by concatenating coefficients ([#734](https://github.com/gnosisguild/enclave/issues/734)) ([00e2f6d](https://github.com/gnosisguild/enclave/commit/00e2f6d5eaaf2089488f414dc57675f7120cf2a0)) -* upgrade to hardhat v3 and configure repo ([#677](https://github.com/gnosisguild/enclave/issues/677)) ([7ccf6fa](https://github.com/gnosisguild/enclave/commit/7ccf6fa4d62a972a4d2336bd436d71bbc9b54535)) - - - -## [0.1.2](https://github.com/gnosisguild/enclave/compare/v0.1.1...v0.1.2) (2025-09-04) - - -### Bug Fixes - -* comprehensively clean working directory ([#606](https://github.com/gnosisguild/enclave/issues/606)) ([e1e2a7d](https://github.com/gnosisguild/enclave/commit/e1e2a7de21d44c3df89d91a03089ba2dade73ac7)) -* contributor list ([#592](https://github.com/gnosisguild/enclave/issues/592)) ([fc9c836](https://github.com/gnosisguild/enclave/commit/fc9c8363419a784cb2eb831abcf231c8f91a956b)) -* enable branch protection detection ([#605](https://github.com/gnosisguild/enclave/issues/605)) ([37f1c16](https://github.com/gnosisguild/enclave/commit/37f1c16f1029d16dbf85fc9691d2cecafeb0a317)) -* ensure we do not send the vote in the semaphore message field ([#659](https://github.com/gnosisguild/enclave/issues/659)) ([8d0c0bd](https://github.com/gnosisguild/enclave/commit/8d0c0bd1339bb41f1e98929b5fdff3468cbb7553)) -* ensure we publish the dist folder of the sdk ([#614](https://github.com/gnosisguild/enclave/issues/614)) ([5e117d0](https://github.com/gnosisguild/enclave/commit/5e117d0ad2b589d683acf1c144c43efbffeae050)) -* failing release action ([#590](https://github.com/gnosisguild/enclave/issues/590)) ([b0d0f51](https://github.com/gnosisguild/enclave/commit/b0d0f51616f9a5ca58fea7de243918747b9d4206)) -* wasm install ([#594](https://github.com/gnosisguild/enclave/issues/594)) ([f5834ac](https://github.com/gnosisguild/enclave/commit/f5834ac8549da21a6b31432c58910028ca7a8269)) - - -### Features - -* add sensitive container for transferring data between actors ([#603](https://github.com/gnosisguild/enclave/issues/603)) ([e6561c6](https://github.com/gnosisguild/enclave/commit/e6561c6605c4658cb7489616fe3cd3ce7df5d6e5)) -* allow checkin without nargo ([#669](https://github.com/gnosisguild/enclave/issues/669)) ([ed02ae2](https://github.com/gnosisguild/enclave/commit/ed02ae2a5321090c3942fe6a6d71f0e539855878)) -* configure crisp as the rust template and remove risc0 from e2e tests ([#657](https://github.com/gnosisguild/enclave/issues/657)) ([354b4a4](https://github.com/gnosisguild/enclave/commit/354b4a449bb0fd28d621f3e46bad6136b2d15a34)) -* event definition ([#612](https://github.com/gnosisguild/enclave/issues/612)) ([6fc68ef](https://github.com/gnosisguild/enclave/commit/6fc68efe84802562dd324f8d8e5cbf212f7f39cc)), closes [#634](https://github.com/gnosisguild/enclave/issues/634) -* fix version issue ([#634](https://github.com/gnosisguild/enclave/issues/634)) ([feac480](https://github.com/gnosisguild/enclave/commit/feac48033a82a6f1cff476a119b7bf7fa72af6c7)) -* move wasm-crypto to the sdk ([#635](https://github.com/gnosisguild/enclave/issues/635)) ([5d086c6](https://github.com/gnosisguild/enclave/commit/5d086c652a783c25e8e22009c7329020c092a552)) -* remove skip ci ([#632](https://github.com/gnosisguild/enclave/issues/632)) ([6d5fc4e](https://github.com/gnosisguild/enclave/commit/6d5fc4e2feaa97eb2a6604e625c45b23093874d3)) -* rename network components ([#602](https://github.com/gnosisguild/enclave/issues/602)) ([38d26c1](https://github.com/gnosisguild/enclave/commit/38d26c107e569042664d56e8fc405dbae833cd91)) -* update to enclave specific org ([#673](https://github.com/gnosisguild/enclave/issues/673)) ([753d37f](https://github.com/gnosisguild/enclave/commit/753d37f95def6f7c51c154cebb1473f88960cf3f)) -* workspace for enclave circuits ([#648](https://github.com/gnosisguild/enclave/issues/648)) ([129808f](https://github.com/gnosisguild/enclave/commit/129808f496ba2ef2887054600978c1bd0b01978a)) - - - -## [0.1.1](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.22...v0.1.1) (2025-06-19) - - - -## [0.0.5-test.22](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.21...v0.0.5-test.22) (2025-06-12) - - - -## [0.0.5-test.21](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.20.1...v0.0.5-test.21) (2025-06-12) - - - -## [0.0.5-test.20.1](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.20...v0.0.5-test.20.1) (2025-06-11) - - - -## [0.0.5-test.20](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.19...v0.0.5-test.20) (2025-06-11) - - - -## [0.0.5-test.19](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.18...v0.0.5-test.19) (2025-06-11) - - - -## [0.0.5-test.18](https://github.com/gnosisguild/enclave/compare/v0.0.5-test.17...v0.0.5-test.18) (2025-06-11) - - - -## [0.0.5-test.17](https://github.com/gnosisguild/enclave/compare/v0.0.4...v0.0.5-test.17) (2025-06-11) - - -### Bug Fixes - -* appease the linter ([6d09a1b](https://github.com/gnosisguild/enclave/commit/6d09a1b27c47fb970bb5dd2b60f44e8a58a759a5)) -* broken test ([4578905](https://github.com/gnosisguild/enclave/commit/457890551352e20a25b8aefb7ed87739fd334732)) -* computationModule -> e3Program ([14b6d4d](https://github.com/gnosisguild/enclave/commit/14b6d4dbad528d6f04e10dcd07fa56baacc4071e)) -* delete commented out code ([04f8116](https://github.com/gnosisguild/enclave/commit/04f81164537a550ada96d627ecd48d00dc29a313)) -* deploy Poseidon ([b2c946e](https://github.com/gnosisguild/enclave/commit/b2c946e1291a48969a37ff3b3717f9b1871f618d)) -* explicitly set types for hash inputs ([2b62c35](https://github.com/gnosisguild/enclave/commit/2b62c35abbcda9518a7c29b8efce74bf360f545a)) -* Handle Connection Errors and Missing Deploy Block ([#445](https://github.com/gnosisguild/enclave/issues/445)) ([6b0277a](https://github.com/gnosisguild/enclave/commit/6b0277ae71934cd07d0b5f783e7d87cd4b797490)) -* handle duration ([0ff5e8d](https://github.com/gnosisguild/enclave/commit/0ff5e8daa9398241b31899b44b34b92f4bb4f794)) -* linter errors and a broken test they revealed ([9e5f775](https://github.com/gnosisguild/enclave/commit/9e5f775100c1b60ac29ab4674a15d63604b6c548)) -* lowercase folder names ([000dc33](https://github.com/gnosisguild/enclave/commit/000dc33a4086dfd68d85a4a9e6af3952b244d45f)) -* only call `transferOwnership()` if `_owner` and `owner()` do not match ([56a4352](https://github.com/gnosisguild/enclave/commit/56a43527dfd89506dcf78f8615089cea82aeb55a)) -* remove redundant abi encoding ([4904316](https://github.com/gnosisguild/enclave/commit/490431660d62140b89fdf18565a49ad36910a46d)) -* remove unused imports ([3c1a0b9](https://github.com/gnosisguild/enclave/commit/3c1a0b90df26ff00b64673266b983be430eda888)) -* rename an incorrectly named directory ([6dda710](https://github.com/gnosisguild/enclave/commit/6dda71037ada6bb890308418f51b7530f6fadbd9)) -* swap computationModule for outputVerifier ([5bd660a](https://github.com/gnosisguild/enclave/commit/5bd660ac1f1fdf9724f73ca8435cb716c2a24c88)) -* test that I broke in the last commit. ([e1bee16](https://github.com/gnosisguild/enclave/commit/e1bee1673ac2f48b673ceb46cd095a1212d007ee)) -* typo ([21684a3](https://github.com/gnosisguild/enclave/commit/21684a31950a920d8b1f1fc90e4777c80eb50578)) -* update comment ([f58cdd0](https://github.com/gnosisguild/enclave/commit/f58cdd0a6af756162f4a716ec05fd7e6801b4d8f)) -* use LGPL license ([9f80e18](https://github.com/gnosisguild/enclave/commit/9f80e18f20b3307fe0d1abc34fb030c45d4a06ec)) - - -### Features - -* add `e3Id` and `seed` to `validate()` calls to `IE3Program` and `IComputeProvider` ([f6a01b2](https://github.com/gnosisguild/enclave/commit/f6a01b20e69e4169afae79002e26cd47cc89f12d)) -* add `getInputRoot()` to `IEnclave.sol` ([4b60423](https://github.com/gnosisguild/enclave/commit/4b604238fafc3454d4d4e1d8c742035997dd7c44)) -* add incremental merkle tree ([5fe19ff](https://github.com/gnosisguild/enclave/commit/5fe19ff804caf5c9cd51595e977c03f9f499a15d)) -* Contract Listener ([4203446](https://github.com/gnosisguild/enclave/commit/4203446cdb8ba42344bcaea42c746e1fb49a6c12)) -* emit seed and params ([bb08876](https://github.com/gnosisguild/enclave/commit/bb088767dbd9b947e2e377da1a93e7915d8953de)) -* eth actor ([f64ab1d](https://github.com/gnosisguild/enclave/commit/f64ab1d4ba6f7e6c8b18486d91b4610e6fff607c)) -* make roots easily accessible ([01a7b6b](https://github.com/gnosisguild/enclave/commit/01a7b6b81b846639503d9ec8b8a215a15185b3cb)) -* moves `IDecryptionVerifier` out of `E3Program` / `IComputeProvider` ([5de57dd](https://github.com/gnosisguild/enclave/commit/5de57dd4f77fc762e0beaa86f2363b2f540f01df)) -* remove compute provider from `Enclave.sol` ([9e13cac](https://github.com/gnosisguild/enclave/commit/9e13cacb4a9fd5de0179c0fbcda0b106a2371f95)) -* replace keccak256 with Poseidon hash ([627d0f8](https://github.com/gnosisguild/enclave/commit/627d0f8bc1b99bc2a0389820a4b6f0901fdd7e15)) -* scaffold out new unit tests and fix fixtures ([7749639](https://github.com/gnosisguild/enclave/commit/7749639fc70f8e111823156fefd543eee436bf08)) -* store ciphernode in an incremental merkle tree ([6305380](https://github.com/gnosisguild/enclave/commit/6305380287992f5b088e9f4f5cc3c9e75ad69e49)) -* store hashes, emit keys ([#120](https://github.com/gnosisguild/enclave/issues/120)) ([7bcb2b5](https://github.com/gnosisguild/enclave/commit/7bcb2b5ba9134451346b4fec505b0ada01193e91)) -* update sequence diagram ([fce8520](https://github.com/gnosisguild/enclave/commit/fce85209a52e31306d4429f69f81cd335cad5894)) -* use LeanIMT, rather than BinaryIMT. ([456ff18](https://github.com/gnosisguild/enclave/commit/456ff18fb1728bc4dbb33a05a3db6f759be95078)) - - -### Reverts - -* Revert "Enforce valid parameters (#345)" (#406) ([5c950eb](https://github.com/gnosisguild/enclave/commit/5c950eb667d07aef274d32a97246aaea6b39551e)), closes [#345](https://github.com/gnosisguild/enclave/issues/345) [#406](https://github.com/gnosisguild/enclave/issues/406) -* Revert "Add comment to create tech debt branch" ([acc12ad](https://github.com/gnosisguild/enclave/commit/acc12ad26d521b2fd08c879e518f1d3a227f4729)) - - - From 0638f4b2b17468a8c86c909eb53cda86859c6f82 Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Wed, 1 Oct 2025 09:52:15 +0100 Subject: [PATCH 10/13] fix: pr comments --- .github/workflows/releases.yml | 6 +++--- scripts/bump-versions.ts | 31 ++++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index ccd4d342dc..4d3df7f4e6 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -272,9 +272,10 @@ jobs: echo "" >> release_notes.md # Try to extract the section for this version + # Fixed regex to handle both stable and pre-release versions awk -v ver="${VERSION}" ' - /^#+ \[?'${VERSION}'\]?/ { flag=1; next } - /^#+ \[?[0-9]+\.[0-9]+\.[0-9]+/ && flag { exit } + /^#+ \[?'"${VERSION//./\\.}"'\]?/ { flag=1; next } + /^#+ \[?[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.-]+)?/ && flag { exit } flag { print } ' CHANGELOG.md >> release_notes.md || echo "See CHANGELOG.md for details." >> release_notes.md fi @@ -379,4 +380,3 @@ jobs: git tag -f stable git push origin stable --force echo "โœ… Updated 'stable' tag to point to v${{ needs.validate-and-prepare.outputs.version }}" - \ No newline at end of file diff --git a/scripts/bump-versions.ts b/scripts/bump-versions.ts index 2988e4a2d9..6cb874aabe 100644 --- a/scripts/bump-versions.ts +++ b/scripts/bump-versions.ts @@ -34,7 +34,7 @@ class VersionBumper { /** * Main entry point to bump all versions */ - async bumpAll(): Promise { + bumpAll(): void { console.log(`๐Ÿš€ Bumping all versions to ${this.newVersion}`) if (this.options.dryRun) { @@ -48,6 +48,35 @@ class VersionBumper { // Get current version from root package.json or Cargo.toml this.oldVersion = this.getCurrentVersion() console.log(`๐Ÿ“Œ Current version: ${this.oldVersion || 'unknown'}`) + + // Check for uncommitted changes + if (!this.options.skipGit && !this.options.dryRun) { + this.checkGitStatus() + } + + // In dry-run mode, just show what would happen + if (this.options.dryRun) { + console.log('\n๐Ÿ“‹ Would perform the following actions:') + console.log(' 1. Update Rust workspace version in Cargo.toml') + console.log(' 2. Update NPM package versions in:') + console.log(' - Root package.json') + console.log(' - packages/enclave-sdk') + console.log(' - packages/enclave-contracts') + console.log(' - packages/enclave-config') + console.log(' - packages/enclave-react') + console.log(' - crates/wasm') + console.log(' 3. Update lock files (Cargo.lock, pnpm-lock.yaml)') + console.log(' 4. Generate/update CHANGELOG.md') + if (!this.options.skipGit) { + console.log(' 5. Commit changes') + console.log(` 6. Create tag: v${this.newVersion}`) + if (!this.options.skipPush) { + console.log(' 7. Push commits and tag to origin') + } + } + console.log('\nโœ… Dry run complete. Run without --dry-run to perform these actions.') + return + } // Bump Rust crates this.bumpRustCrates() From ebd51b7631065f8b8b1e7e1f20956b04c76bfcbb Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Wed, 1 Oct 2025 10:01:16 +0100 Subject: [PATCH 11/13] test: update workflow to test it out --- .github/workflows/releases.yml | 50 ++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 4d3df7f4e6..67726cc3ca 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -9,6 +9,10 @@ on: tags: - 'v*.*.*' - 'v*.*.*-*' # Pre-release tags like v1.0.0-beta.1 + # test only + pull_request: + branches: + - main env: MNEMONIC: "test test test test test test test test test test test junk" @@ -31,8 +35,15 @@ jobs: - name: Get version from tag id: get_version run: | - # Extract version from tag (remove 'v' prefix) - VERSION=${GITHUB_REF_NAME#v} + # For PR testing, read version from Cargo.toml instead of tag + if [[ "${{ github.event_name }}" == "pull_request" ]]; then + VERSION=$(grep -E '^\[workspace\.package\]' -A 5 Cargo.toml | grep '^version' | head -1 | sed 's/.*"\(.*\)".*/\1/') + echo "๐Ÿงช DRY RUN MODE - Testing with version from Cargo.toml: $VERSION" + else + # Extract version from tag (remove 'v' prefix) + VERSION=${GITHUB_REF_NAME#v} + fi + echo "version=$VERSION" >> $GITHUB_OUTPUT # Check if it's a pre-release (contains -, like beta, alpha, rc, etc.) @@ -138,6 +149,8 @@ jobs: name: Publish Rust Crates runs-on: ubuntu-latest needs: validate-and-prepare + # Only publish on actual tag pushes + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') # Publish ALL versions to crates.io (including pre-releases) steps: - name: Checkout code @@ -194,11 +207,16 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v4 + - name: Install Nargo + uses: noir-lang/noirup@v0.1.4 + with: + toolchain: v1.0.0-beta.11 + - name: Install dependencies run: pnpm install --frozen-lockfile - - name: Build packages - run: pnpm build + - name: Install wasm-pack + uses: ./.github/actions/install-wasm-pack - name: Determine npm tag id: npm_tag @@ -215,12 +233,21 @@ jobs: env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} run: | - # Use your existing npm:release script or publish directly - pnpm npm:release + # Configure npm authentication + npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN + + # Get the tag to use + TAG="${{ steps.npm_tag.outputs.tag }}" + + # Build first (same as npm:release) + pnpm build - # Alternative: publish with specific tag - # npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN - # pnpm publish -r --access public --tag ${{ steps.npm_tag.outputs.tag }} --no-git-checks + # Publish each package explicitly with the correct tag + pnpm --filter @enclave-e3/config publish --access public --tag $TAG --no-git-checks + pnpm --filter @enclave-e3/contracts publish --access public --tag $TAG --no-git-checks + pnpm --filter @enclave-e3/wasm publish --access public --tag $TAG --no-git-checks + pnpm --filter @enclave-e3/sdk publish --access public --tag $TAG --no-git-checks + pnpm --filter @enclave-e3/react publish --access public --tag $TAG --no-git-checks create-github-release: name: Create GitHub Release @@ -367,7 +394,8 @@ jobs: tag_name: v${{ needs.validate-and-prepare.outputs.version }} name: v${{ needs.validate-and-prepare.outputs.version }} body_path: release_notes.md - draft: false + # draft: false + draft: ${{ github.event_name == 'pull_request' }} # Draft for PRs, published for tags prerelease: ${{ needs.validate-and-prepare.outputs.is_prerelease }} generate_release_notes: false # We're providing our own files: release-assets/* @@ -375,7 +403,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Update stable tag (for stable releases only) - if: needs.validate-and-prepare.outputs.is_prerelease == 'false' + if: github.event_name == 'push' && needs.validate-and-prepare.outputs.is_prerelease == 'false' run: | git tag -f stable git push origin stable --force From e3245e26954fa2b95bef2d5d68018291ac2884ff Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Wed, 1 Oct 2025 10:29:22 +0100 Subject: [PATCH 12/13] chore: build only ts for npm workflow --- .github/workflows/releases.yml | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 67726cc3ca..cdef8c0a9e 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -88,14 +88,15 @@ jobs: target: x86_64-unknown-linux-gnu os_name: linux arch: x86_64 - - os: macos-latest - target: aarch64-apple-darwin - os_name: macos - arch: aarch64 - - os: macos-latest - target: x86_64-apple-darwin - os_name: macos - arch: x86_64 + # Comment out for testing only + # - os: macos-latest + # target: aarch64-apple-darwin + # os_name: macos + # arch: aarch64 + # - os: macos-latest + # target: x86_64-apple-darwin + # os_name: macos + # arch: x86_64 steps: - name: Checkout @@ -207,11 +208,6 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v4 - - name: Install Nargo - uses: noir-lang/noirup@v0.1.4 - with: - toolchain: v1.0.0-beta.11 - - name: Install dependencies run: pnpm install --frozen-lockfile @@ -240,7 +236,7 @@ jobs: TAG="${{ steps.npm_tag.outputs.tag }}" # Build first (same as npm:release) - pnpm build + pnpm build:ts # Publish each package explicitly with the correct tag pnpm --filter @enclave-e3/config publish --access public --tag $TAG --no-git-checks From 66319d42efe9a6b5603d806ce3f7ef2fa98a4ad7 Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Wed, 1 Oct 2025 10:53:07 +0100 Subject: [PATCH 13/13] chore: remove testing syntax from workflow --- .github/workflows/releases.yml | 43 +++++++++++----------------------- 1 file changed, 14 insertions(+), 29 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index cdef8c0a9e..836eec75fd 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -9,10 +9,6 @@ on: tags: - 'v*.*.*' - 'v*.*.*-*' # Pre-release tags like v1.0.0-beta.1 - # test only - pull_request: - branches: - - main env: MNEMONIC: "test test test test test test test test test test test junk" @@ -35,15 +31,9 @@ jobs: - name: Get version from tag id: get_version run: | - # For PR testing, read version from Cargo.toml instead of tag - if [[ "${{ github.event_name }}" == "pull_request" ]]; then - VERSION=$(grep -E '^\[workspace\.package\]' -A 5 Cargo.toml | grep '^version' | head -1 | sed 's/.*"\(.*\)".*/\1/') - echo "๐Ÿงช DRY RUN MODE - Testing with version from Cargo.toml: $VERSION" - else - # Extract version from tag (remove 'v' prefix) - VERSION=${GITHUB_REF_NAME#v} - fi - + # Extract version from tag (remove 'v' prefix) + VERSION=${GITHUB_REF_NAME#v} + echo "version=$VERSION" >> $GITHUB_OUTPUT # Check if it's a pre-release (contains -, like beta, alpha, rc, etc.) @@ -88,15 +78,14 @@ jobs: target: x86_64-unknown-linux-gnu os_name: linux arch: x86_64 - # Comment out for testing only - # - os: macos-latest - # target: aarch64-apple-darwin - # os_name: macos - # arch: aarch64 - # - os: macos-latest - # target: x86_64-apple-darwin - # os_name: macos - # arch: x86_64 + - os: macos-latest + target: aarch64-apple-darwin + os_name: macos + arch: aarch64 + - os: macos-latest + target: x86_64-apple-darwin + os_name: macos + arch: x86_64 steps: - name: Checkout @@ -150,8 +139,6 @@ jobs: name: Publish Rust Crates runs-on: ubuntu-latest needs: validate-and-prepare - # Only publish on actual tag pushes - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') # Publish ALL versions to crates.io (including pre-releases) steps: - name: Checkout code @@ -235,7 +222,7 @@ jobs: # Get the tag to use TAG="${{ steps.npm_tag.outputs.tag }}" - # Build first (same as npm:release) + # Build first pnpm build:ts # Publish each package explicitly with the correct tag @@ -249,7 +236,6 @@ jobs: name: Create GitHub Release runs-on: ubuntu-latest needs: [validate-and-prepare, build-binaries, publish-rust-crates, publish-npm-packages] - # Always create release even if publishing fails (for pre-releases that skip crates.io) if: always() && needs.validate-and-prepare.result == 'success' && needs.build-binaries.result == 'success' steps: - name: Checkout @@ -390,8 +376,7 @@ jobs: tag_name: v${{ needs.validate-and-prepare.outputs.version }} name: v${{ needs.validate-and-prepare.outputs.version }} body_path: release_notes.md - # draft: false - draft: ${{ github.event_name == 'pull_request' }} # Draft for PRs, published for tags + draft: false prerelease: ${{ needs.validate-and-prepare.outputs.is_prerelease }} generate_release_notes: false # We're providing our own files: release-assets/* @@ -399,7 +384,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Update stable tag (for stable releases only) - if: github.event_name == 'push' && needs.validate-and-prepare.outputs.is_prerelease == 'false' + if: needs.validate-and-prepare.outputs.is_prerelease == 'false' run: | git tag -f stable git push origin stable --force