diff --git a/.github/renovate.json b/.github/renovate.json index 66dff0f..5853807 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -17,7 +17,7 @@ }, { "matchPackageNames": ["@xmtp/node-sdk", "@xmtp/node-bindings"], - "followTag": "nightly", + "allowedVersions": "/-(?:pre\\.\\d{14}\\.(?:dev|nightly)\\.[0-9a-f]+|nightly\\.\\d{8}\\.[0-9a-f]+)$/", "ignoreUnstable": false, "respectLatest": false } diff --git a/test/xmtpLockstep.test.ts b/test/xmtpLockstep.test.ts index adfe77e..6b7e3ea 100644 --- a/test/xmtpLockstep.test.ts +++ b/test/xmtpLockstep.test.ts @@ -13,13 +13,18 @@ import { describe, expect, it } from "vitest"; * * Nightlies of both packages are published together from a single libxmtp * commit, and dev releases likewise publish both from one libxmtp run — so - * the pins are in lockstep exactly when they share the same - * `nightly..` or `dev.` suffix. Renovate bumps nightlies - * as one grouped PR (see .github/renovate.json) and libxmtp's dev-release + * the pins are in lockstep exactly when they share the same suffix: the + * unified `pre...` shape that main-cut dev and + * nightly releases now share (one release run stamps one timestamp, so both + * packages carry an identical suffix), or the legacy + * `nightly..` / `dev.` shapes, which are kept because + * branch-cut dev releases still use them. Renovate bumps nightlies as one + * grouped PR (see .github/renovate.json) and libxmtp's dev-release * automation opens dev bumps the same way; this test fails if anything * desyncs them. */ -const PRERELEASE_SUFFIX = /-(nightly\.\d{8}\.[0-9a-f]+|dev\.[0-9a-f]+)$/; +const PRERELEASE_SUFFIX = + /-(pre\.\d{14}\.(?:dev|nightly)\.[0-9a-f]+|nightly\.\d{8}\.[0-9a-f]+|dev\.[0-9a-f]+)$/; describe("xmtp node-sdk / node-bindings lockstep", () => { const pkg = JSON.parse( @@ -46,7 +51,8 @@ describe("xmtp node-sdk / node-bindings lockstep", () => { bindingsSuffix, `@xmtp/node-sdk ${nodeSdk} and @xmtp/node-bindings ${nodeBindings} ` + "must come from the same libxmtp commit (matching " + - "nightly.. or dev. suffix); a skewed pair breaks inbox-id " + + "pre..., nightly.., or dev. " + + "suffix); a skewed pair breaks inbox-id " + 'derivation with "Inbox ID doesn\'t match nonce & address"', ).toBe(sdkSuffix); });