From 2089b4bbfd461e96ca5eb25d5f1ed8e2fee0b9f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Espen=20H=C3=B8jsgaard?= Date: Tue, 16 Jan 2024 10:36:36 +0100 Subject: [PATCH 1/3] build(deps-dev): Upgrade to mangrove-deployments v2.0.0 (#1740) --- CHANGELOG.md | 2 ++ package.json | 2 +- src/configuration.ts | 79 +++++++++++++++----------------------------- yarn.lock | 10 +++--- 4 files changed, 35 insertions(+), 58 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8473887e..e6b09b638 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Next version +- Upgrade to @mangrovedao/mangrove-deployments v2.0.0 + # 2.0.3 - fix: Fix various issues in TypeDoc comments wrt @see vs @link. diff --git a/package.json b/package.json index 817e8a9ee..2383ea1ff 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "@ethersproject/experimental": "^5.7.0", "@mangrovedao/context-addresses": "^1.0.1", "@mangrovedao/mangrove-core": "^2.0.3", - "@mangrovedao/mangrove-deployments": "^1.0.3", + "@mangrovedao/mangrove-deployments": "^2.0.0", "@mangrovedao/mangrove-strats": "^1.0.2", "@mangrovedao/reliable-event-subscriber": "1.1.29", "@types/object-inspect": "^1.8.1", diff --git a/src/configuration.ts b/src/configuration.ts index 1a17d01ce..0caa318e0 100644 --- a/src/configuration.ts +++ b/src/configuration.ts @@ -20,7 +20,6 @@ import * as contextAddresses from "@mangrovedao/context-addresses"; import * as eth from "./eth"; import clone from "just-clone"; import deepmerge from "deepmerge"; -import semver from "semver"; // Make keys optional at all levels of T export type RecursivePartial = { @@ -653,66 +652,42 @@ export function resetConfiguration(): void { function readMangroveDeploymentAddresses() { // Note: Consider how to expose other deployments than the primary - const mgvCoreVersionPattern = createContractVersionPattern( + const mgvCoreVersionPattern = mgvDeployments.createContractVersionPattern( contractPackageVersions["mangrove-core"], ); // Note: Make this configurable? const mgvCoreReleasedFilter = undefined; // undefined => released & unreleased, true => released only, false => unreleased only - const mgvCoreContractsDeployments = - mgvDeployments.getCoreContractsVersionDeployments({ - version: mgvCoreVersionPattern, - released: mgvCoreReleasedFilter, - }); - readVersionDeploymentsAddresses(mgvCoreContractsDeployments); - - const mgvStratsVersionPattern = createContractVersionPattern( + const mgvCoreDeploymentsFilter = { + version: mgvCoreVersionPattern, + released: mgvCoreReleasedFilter, + }; + const latestCoreDeployments = mgvDeployments.getLatestCoreContractsPerNetwork( + mgvCoreDeploymentsFilter, + ); + + const mgvStratsVersionPattern = mgvDeployments.createContractVersionPattern( contractPackageVersions["mangrove-strats"], ); // Note: Make this configurable? const mgvStratsReleasedFilter = undefined; // undefined => released & unreleased, true => released only, false => unreleased only - const mgvStratsContractsDeployments = - mgvDeployments.getStratsContractsVersionDeployments({ - version: mgvStratsVersionPattern, - released: mgvStratsReleasedFilter, - }); - readVersionDeploymentsAddresses(mgvStratsContractsDeployments); -} - -function createContractVersionPattern(contractPackageVersion: string) { - const preleaseComponents = semver.prerelease(contractPackageVersion); - if (preleaseComponents === null) { - // For release versions of contract packages, we match any deployment of the same major version, _excluding_ prereleases. - return `^${semver.major(contractPackageVersion)}.0.0`; - } else { - // For pre-release versions of contract packages, we match any deployment of the same major version, _including_ prereleases. - // This is achieved by replacing the last prelease component by 0 and using the caret '^' pattern. - // This pattern is equivalent to '>= x.y.z-0 < x+1.0.0'. - // Examples: - // 2.0.0-alpha.1 => ^2.0.0-alpha.0 - // 2.0.0-4 => ^2.0.0-0 - const patternPreleaseComponents = [...preleaseComponents]; - patternPreleaseComponents[patternPreleaseComponents.length - 1] = "0"; - return `^${semver.major(contractPackageVersion)}.${semver.minor( - contractPackageVersion, - )}.${semver.patch(contractPackageVersion)}-${patternPreleaseComponents.join( - ".", - )}`; - } -} + const mgvStratsDeploymentsFilter = { + version: mgvStratsVersionPattern, + released: mgvStratsReleasedFilter, + }; + const latestStratsDeployments = + mgvDeployments.getLatestStratContractsPerNetwork( + mgvStratsDeploymentsFilter, + mgvCoreDeploymentsFilter, + ); -function readVersionDeploymentsAddresses( - contractsDeployments: mgvDeployments.VersionDeployments[], -) { - for (const contractDeployments of contractsDeployments) { - for (const [networkId, networkDeployments] of Object.entries( - contractDeployments.networkAddresses, - )) { - const networkName = eth.getNetworkName(+networkId); - addressesConfiguration.setAddress( - contractDeployments.deploymentName ?? contractDeployments.contractName, - networkDeployments.primaryAddress, - networkName, - ); + for (const [networkName, namedAddresses] of Object.entries( + mgvDeployments.toNamedAddressesPerNamedNetwork( + latestCoreDeployments, + latestStratsDeployments, + ), + )) { + for (const { name, address } of namedAddresses) { + addressesConfiguration.setAddress(name, address, networkName); } } } diff --git a/yarn.lock b/yarn.lock index 95403e757..84ad9d44e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1259,12 +1259,12 @@ __metadata: languageName: node linkType: hard -"@mangrovedao/mangrove-deployments@npm:^1.0.3": - version: 1.0.3 - resolution: "@mangrovedao/mangrove-deployments@npm:1.0.3" +"@mangrovedao/mangrove-deployments@npm:^2.0.0": + version: 2.0.0 + resolution: "@mangrovedao/mangrove-deployments@npm:2.0.0" dependencies: semver: ^7.5.4 - checksum: fa31875a93735309913a3fbb597c1f0546ad71216681a8d947e9d1f6316051a0fd8ca930d50c11e3e002db20c0bb595324b6e71b9bfd16a37d9a6e320267bc59 + checksum: d64a06a5986d6c11fb1b0757b7d5488441cc0f450936f7dd32fe359d05577630b54553c8bf305fcd6c0169636dd0701fae0bbaf1b38a8f51516e0a7fb462d062 languageName: node linkType: hard @@ -1289,7 +1289,7 @@ __metadata: "@ethersproject/providers": ^5.7.2 "@mangrovedao/context-addresses": ^1.0.1 "@mangrovedao/mangrove-core": ^2.0.3 - "@mangrovedao/mangrove-deployments": ^1.0.3 + "@mangrovedao/mangrove-deployments": ^2.0.0 "@mangrovedao/mangrove-strats": ^1.0.2 "@mangrovedao/reliable-event-subscriber": 1.1.29 "@typechain/ethers-v5": ^11.1.2 From a467a07b8b3d9b92baec89bd9f3d9b95353f3195 Mon Sep 17 00:00:00 2001 From: Lasse <16150076+lnist@users.noreply.github.com> Date: Tue, 16 Jan 2024 10:50:50 +0100 Subject: [PATCH 2/3] feat(build): Verify CHANGELOG is updated (#1738) --- .github/workflows/ci.yml | 28 +++++----------------------- CHANGELOG.md | 2 ++ 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2a7d8e71f..e65065cf5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,13 +19,17 @@ env: NODE_ENV: test jobs: - mangrove-js: + check: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 + # == verify changelog has been updated == + - name: Check changelog updated + uses: mangrovedao/.github/.github/actions/changelog-updated@master + - name: Yarn setup (caching yarn dependencies) uses: actions/setup-node@v4 with: @@ -81,25 +85,3 @@ jobs: path-to-lcov: ./coverage/lcov.info base-path: . flag-name: js - - # ==== final "check" job, using alls-green to have one single job to check for green workflow ==== - # see https://github.com/re-actors/alls-green - - check: - # NB: We're experimenting with using `!cancelled()` instead of `always()` in an attempt to avoid - # cancelled workflow runs blocking dependabot PR's from merging. - # Workflow runs are often cancelled automatically when a newer run is triggered. - # The problem appears to be that the `check` job runs and fails if the workflow is cancelled. - # if: always() - if: ${{ !cancelled() }} - - needs: - - mangrove-js - - runs-on: ubuntu-latest - - steps: - - name: Decide whether the needed jobs succeeded or failed - uses: re-actors/alls-green@release/v1 - with: - jobs: ${{ toJSON(needs) }} diff --git a/CHANGELOG.md b/CHANGELOG.md index e6b09b638..e24e88a43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # Next version - Upgrade to @mangrovedao/mangrove-deployments v2.0.0 +- feat: Updated CI to check `CHANGELOG.md` is updated with each PR +- fix: Able to handle backticks in changelog when releasing. # 2.0.3 From 7395af4dc83411e99c139a02ebcd4d422c0974f7 Mon Sep 17 00:00:00 2001 From: Mangrove Automation Bot <134297173+mangrove-automation@users.noreply.github.com> Date: Tue, 16 Jan 2024 10:52:27 +0100 Subject: [PATCH 3/3] Merge publish/v2.0.4 to master Published by GitHub user: espendk --- CHANGELOG.md | 2 ++ package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e24e88a43..ec661723d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Next version +# 2.0.4 + - Upgrade to @mangrovedao/mangrove-deployments v2.0.0 - feat: Updated CI to check `CHANGELOG.md` is updated with each PR - fix: Able to handle backticks in changelog when releasing. diff --git a/package.json b/package.json index 2383ea1ff..adde08872 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@mangrovedao/mangrove.js", - "version": "2.0.3", + "version": "2.0.4", "author": "Mangrove DAO", "description": "A Typescript SDK for the Mangrove Protocol.", "license": "MIT",