Skip to content

Commit

Permalink
Merge branch 'master' into develop
Browse files Browse the repository at this point in the history
Merge master into develop
  • Loading branch information
mangrove-automation committed Jan 16, 2024
2 parents 22f020a + 7395af4 commit 0ff27ba
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 82 deletions.
28 changes: 5 additions & 23 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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) }}
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# 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.

# 2.0.3

- fix: Fix various issues in TypeDoc comments wrt @see vs @link.
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down Expand Up @@ -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",
Expand Down
79 changes: 27 additions & 52 deletions src/configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<T> = {
Expand Down Expand Up @@ -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);
}
}
}
Expand Down
10 changes: 5 additions & 5 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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
Expand Down

0 comments on commit 0ff27ba

Please sign in to comment.