From bcf03ace6c732819aba7600c7038545894fdd62c Mon Sep 17 00:00:00 2001 From: Dominique Date: Tue, 19 Nov 2024 16:26:14 +0100 Subject: [PATCH] chore(release): 19.3.1 (#1551) --- CHANGELOG.md | 40 ++++++++++++++++++++++++++++++++++++++++ RELEASE.md | 26 ++++++++++++++++++++++++-- docs/dist/app.bundle.js | 22 +++++++++++----------- docs/src/openapi-v1.yaml | 2 +- package.json | 2 +- 5 files changed, 77 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 398710cd2..7f6855046 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,46 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [19.3.1](https://github.com/paritytech/substrate-api-sidecar/compare/v19.3.0..v19.3.1) (2024-11-19) + +### Fixes + +- fix: ignore extrinsicIndex in multiBlockMigrations event ([#1541](https://github.com/paritytech/substrate-api-sidecar/pull/1541)) ([45c4b1f](https://github.com/paritytech/substrate-api-sidecar/commit/45c4b1f423949df3e6eb9f3e1669c1967e76a52b)) +- fix(dev): fix tsconfig extends pathing for ts-node-dev ([#1537](https://github.com/paritytech/substrate-api-sidecar/pull/1537)) ([cef2d10](https://github.com/paritytech/substrate-api-sidecar/commit/cef2d10ead615b81c11a493310c84411fd45738f)) +- fix: return DispatchError in dry-run endpoint ([#1533](https://github.com/paritytech/substrate-api-sidecar/pull/1533)) ([c43a26b](https://github.com/paritytech/substrate-api-sidecar/commit/c43a26bbf768f466e363574f856fa30b1a84e3f8)) + +### CI + +- ci: fix deploy ([#1539](https://github.com/paritytech/substrate-api-sidecar/pull/1539)) ([7f161d5](https://github.com/paritytech/substrate-api-sidecar/commit/7f161d5c687c3d1dd43e64c61dc8aaab0c3fe06e)) +- ci: Move from Gitlab to Github ([#1531](https://github.com/paritytech/substrate-api-sidecar/pull/1531)) ([87245fd](https://github.com/paritytech/substrate-api-sidecar/commit/87245fd0cd6dfc39ad4f7939abdbaef49d6aca74)) + +### Chores + +- chore(deps): update non pjs deps ([#1550](https://github.com/paritytech/substrate-api-sidecar/pull/1550)) ([156ad7a](https://github.com/paritytech/substrate-api-sidecar/commit/156ad7a9b458a3b86016f21afbc011356c50666f)) +- chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /docs ([#1548](https://github.com/paritytech/substrate-api-sidecar/pull/1548)) ([c7b3f86](https://github.com/paritytech/substrate-api-sidecar/commit/c7b3f86677b26e2c895ca46e7fd8b80ced2800cd)) +- chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 ([#1549](https://github.com/paritytech/substrate-api-sidecar/pull/1549)) ([80d3b65](https://github.com/paritytech/substrate-api-sidecar/commit/80d3b65fc4b949e3cee4317ba7f83c2a63654614)) +- chore(deps): update polkadot-js deps to v14.3.1 ([#1547](https://github.com/paritytech/substrate-api-sidecar/pull/1547)) ([3ff1e48](https://github.com/paritytech/substrate-api-sidecar/commit/3ff1e48008c39f4001caf165d09b791bb8710d20)) +- chore(deps): bump winston from 3.16.0 to 3.17.0 ([#1545](https://github.com/paritytech/substrate-api-sidecar/pull/1545)) ([fb81a16](https://github.com/paritytech/substrate-api-sidecar/commit/fb81a16197ee45719fa7f12217f6aa2de13ee8ec)) +- chore(deps): bump the pjs group across 1 directory with 7 updates ([#1546](https://github.com/paritytech/substrate-api-sidecar/pull/1546)) ([b59928c](https://github.com/paritytech/substrate-api-sidecar/commit/b59928c8da5d4c5d35e01661eb26757908a61d3e)) +- chore: update Dependabot versioning strategy ([#1543](https://github.com/paritytech/substrate-api-sidecar/pull/1543)) ([158a1f8](https://github.com/paritytech/substrate-api-sidecar/commit/158a1f824ae099e3d22a73551d29030df11f1d54)) +- chore(deps): bump docker/build-push-action from 5 to 6 ([#1540](https://github.com/paritytech/substrate-api-sidecar/pull/1540)) ([7465da](https://github.com/paritytech/substrate-api-sidecar/commit/f7465da37d093485f78b8775f8d2400e144ace75)) +- chore(deps): bump winston from 3.15.0 to 3.16.0 ([#1536](https://github.com/paritytech/substrate-api-sidecar/pull/1536)) ([4a58326](https://github.com/paritytech/substrate-api-sidecar/commit/4a58326ffc5db7443abad1070c7e388a429e9595)) +- chore(deps): bump lru-cache from 11.0.1 to 11.0.2 ([#1535](https://github.com/paritytech/substrate-api-sidecar/pull/1535)) ([292cd38](https://github.com/paritytech/substrate-api-sidecar/commit/292cd382134a2e594b8205125333d2aad2748cf0)) +- chore(deps-dev): bump @substrate/dev from 0.8.0 to 0.9.0 ([#1528](https://github.com/paritytech/substrate-api-sidecar/pull/1528)) ([991821d](https://github.com/paritytech/substrate-api-sidecar/commit/991821d6476871d40b520a7e6e81c26d53c47afc)) +- chore(deps-dev): bump @types/express-serve-static-core from 5.0.0 to 5.0.1 ([#1529](https://github.com/paritytech/substrate-api-sidecar/pull/1529)) ([67f2806](https://github.com/paritytech/substrate-api-sidecar/commit/67f2806014e1f34c0e2ec7ab4f1eba6a93e5a29a)) + +## Compatibility + +Tested against the following node releases: +- Polkadot v1.16.2 (Polkadot stable2409-2) +- Kusama v1.16.2 (Polkadot stable2409-2) +- Westend v1.16.2 (Polkadot stable2409-2) + +Tested against the following runtime releases: +- Polkadot v1003004 +- Kusama v1003003 +- Westend v1016002 + ## [19.3.0](https://github.com/paritytech/substrate-api-sidecar/compare/v19.2.2..v19.3.0) (2024-10-23) ### Features diff --git a/RELEASE.md b/RELEASE.md index 93c09ef06..b5f72c65d 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,5 +1,13 @@ ### Releases +#### Prerequisites + +Before starting the release process, it is recommended to prepare a few things in advance. In order to set the compatibility version (for the node releases) in the Changelog during the last steps of the release process, you will need the following prepared in advance: +- The latest Polkadot-SDK binary already built. Instructions to build from source can be found [here](https://github.com/paritytech/polkadot-sdk/tree/master/polkadot#build-from-source). +- A chain (Polkadot or Kusama) synced in either archive or pruned mode. + +_Estimated Time Needed: Depending on your machine and the syncing mode you choose, it can take from a few hours to a few days._ + #### Preparation 1. Make sure the polkadot-js dependencies are up to date. Refer to the "Updating polkadot-js dependencies" section in the [README](./README.md). @@ -10,14 +18,28 @@ - If the failed job is related to benchmarks, e.g. `continuous-integration/gitlab-bench-polkadot` or `continuous-integration/gitlab-push-benchmark`, it is not critical, and you can proceed with the next steps of the release. - If the failed job is related to staging deployment, e.g. `continuous-integration/gitlab-deploy-staging`, this is critical. In this case, you should check with the CI/CD team to get the relevant logs and fix the issue before continuing with the release. -1. Make sure that you've run `yarn` in this folder, and run `cargo install wasm-pack` so that that binary is available on your `$PATH`. +1. Make sure that you've run `yarn` in this folder, and run `cargo install wasm-pack` so that binary is available on your `$PATH`. 1. Checkout a branch with the format `name-v5-0-1` (with `name` being the name of the person doing the release, e.g. `tarik-v5-0-1`). When deciding what version will be released it is important to look over 1) PRs since the last release and 2) release notes for any updated polkadot-js dependencies as they may affect type definitions. -1. The next step is to run the e2e tests. There are two types of e2e tests: `yarn test:historical-e2e-tests`, and `yarn test:latest-e2e-tests`. If you would like to run either tests against a single chain you may use the flag `--chain` to specify the chain. If you would also like to test against a local node you may use the `--local` flag in conjunction with `--chain`. Before moving forward ensure all tests pass, and if it warns of any missing types feel free to make an issue [here](https://github.com/paritytech/substrate-api-sidecar/issues). +1. The next step is to run the e2e tests. There are two types of e2e tests: `yarn test:historical-e2e-tests`, and `yarn test:latest-e2e-tests`. If you would like to run either tests against a single chain you may use the flag `--chain` to specify the chain. Note: that the e2e tests will connect to running nodes in order to test sidecar against real data, and they may fail owing to those connections taking too long to establish. If you run into any failures, try running the tests again. +1. It is recommended to also test against a local node so that you can later complete the compatibility section of the changelog and release notes. To do this you can use the `--local` flag in conjunction with `--chain` as shown below (example shown for the Polkadot chain): + + ``` + yarn test:latest-e2e-tests --local ws://127.0.0.1:9944 --chain polkadot + ``` + + This should be done while a local node is running and synced with the corresponding chain (example shown for the Polkadot chain): + + ``` + ./target/release/polkadot --chain polkadot --base-path + ``` + +1. Before moving forward ensure all tests pass, and if it warns of any missing types feel free to make an issue [here](https://github.com/paritytech/substrate-api-sidecar/issues). + 1. Update the version in the package.json (this is very important for releasing on NPM). 1. Update the substrate-api-sidecar version in the docs by going into `docs/src/openapi-v1.yaml`, and changing the `version` field under `info` to the releases respected version. Then run `yarn build:docs`. diff --git a/docs/dist/app.bundle.js b/docs/dist/app.bundle.js index d447cf40c..40b3f505b 100644 --- a/docs/dist/app.bundle.js +++ b/docs/dist/app.bundle.js @@ -346,7 +346,7 @@ eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nex /***/ ((__unused_webpack_module, exports) => { "use strict"; -eval("/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar __toString = Object.prototype.toString\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var dec = opt.decode || decode;\n\n var index = 0\n while (index < str.length) {\n var eqIdx = str.indexOf('=', index)\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break\n }\n\n var endIdx = str.indexOf(';', index)\n\n if (endIdx === -1) {\n endIdx = str.length\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1\n continue\n }\n\n var key = str.slice(index, eqIdx).trim()\n\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim()\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n\n index = endIdx + 1\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n var expires = opt.expires\n\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + expires.toUTCString()\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.partitioned) {\n str += '; Partitioned'\n }\n\n if (opt.priority) {\n var priority = typeof opt.priority === 'string'\n ? opt.priority.toLowerCase()\n : opt.priority\n\n switch (priority) {\n case 'low':\n str += '; Priority=Low'\n break\n case 'medium':\n str += '; Priority=Medium'\n break\n case 'high':\n str += '; Priority=High'\n break\n default:\n throw new TypeError('option priority is invalid')\n }\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction decode (str) {\n return str.indexOf('%') !== -1\n ? decodeURIComponent(str)\n : str\n}\n\n/**\n * URL-encode value.\n *\n * @param {string} val\n * @returns {string}\n */\n\nfunction encode (val) {\n return encodeURIComponent(val)\n}\n\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */\n\nfunction isDate (val) {\n return __toString.call(val) === '[object Date]' ||\n val instanceof Date\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n\n\n//# sourceURL=webpack://sidecar-swagger-ui/./node_modules/cookie/index.js?"); +eval("/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar __toString = Object.prototype.toString\nvar __hasOwnProperty = Object.prototype.hasOwnProperty\n\n/**\n * RegExp to match cookie-name in RFC 6265 sec 4.1.1\n * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2\n * which has been replaced by the token definition in RFC 7230 appendix B.\n *\n * cookie-name = token\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" /\n * \"*\" / \"+\" / \"-\" / \".\" / \"^\" / \"_\" /\n * \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\n */\n\nvar cookieNameRegExp = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n\n/**\n * RegExp to match cookie-value in RFC 6265 sec 4.1.1\n *\n * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n * ; US-ASCII characters excluding CTLs,\n * ; whitespace DQUOTE, comma, semicolon,\n * ; and backslash\n */\n\nvar cookieValueRegExp = /^(\"?)[\\u0021\\u0023-\\u002B\\u002D-\\u003A\\u003C-\\u005B\\u005D-\\u007E]*\\1$/;\n\n/**\n * RegExp to match domain-value in RFC 6265 sec 4.1.1\n *\n * domain-value = \n * ; defined in [RFC1034], Section 3.5, as\n * ; enhanced by [RFC1123], Section 2.1\n * =