Skip to content

Commit

Permalink
fix(addresses): Query for any matching pre-release deployment (#1609)
Browse files Browse the repository at this point in the history
  • Loading branch information
espendk authored Nov 20, 2023
1 parent 5a9ce60 commit f995197
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 3 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
"moize": "^6.1.6",
"node-cleanup": "^2.1.2",
"object-inspect": "^1.12.3",
"semver": "^7.5.4",
"triple-beam": "^1.3.0",
"util": "^0.12.5",
"yargs": "^17.3.0"
Expand Down
32 changes: 29 additions & 3 deletions src/configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import * as eth from "./eth";
import clone from "just-clone";
import deepmerge from "deepmerge";
import moize from "moize";
import semver from "semver";

// Make keys optional at all levels of T
export type RecursivePartial<T> = {
Expand Down Expand Up @@ -511,8 +512,9 @@ export function resetConfiguration(): void {

function readMangroveDeploymentAddresses() {
// Note: Consider how to expose other deployments than the primary

const mgvCoreVersionPattern = `^${contractPackageVersions["mangrove-core"]}`;
const mgvCoreVersionPattern = createContractVersionPattern(
contractPackageVersions["mangrove-core"],
);
// Note: Make this configurable?
const mgvCoreReleasedFilter = undefined; // undefined => released & unreleased, true => released only, false => unreleased only
const mgvCoreContractsDeployments =
Expand All @@ -522,7 +524,9 @@ function readMangroveDeploymentAddresses() {
});
readVersionDeploymentsAddresses(mgvCoreContractsDeployments);

const mgvStratsVersionPattern = `^${contractPackageVersions["mangrove-strats"]}`;
const mgvStratsVersionPattern = createContractVersionPattern(
contractPackageVersions["mangrove-strats"],
);
// Note: Make this configurable?
const mgvStratsReleasedFilter = undefined; // undefined => released & unreleased, true => released only, false => unreleased only
const mgvStratsContractsDeployments =
Expand All @@ -533,6 +537,28 @@ function readMangroveDeploymentAddresses() {
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 `^${contractPackageVersion}`;
} 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(
".",
)}`;
}
}

function readVersionDeploymentsAddresses(
contractsDeployments: mgvDeployments.VersionDeployments[],
) {
Expand Down
1 change: 1 addition & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1326,6 +1326,7 @@ __metadata:
pinst: ^3.0.0
prettier: ^3.1.0
rimraf: ^5.0.1
semver: ^7.5.4
shx: ^0.3.4
transparent-proxy: ^1.12.1
triple-beam: ^1.3.0
Expand Down

0 comments on commit f995197

Please sign in to comment.