From 7f8ecc5c0c5aa5712e278255e40a7ca13bdbf75d Mon Sep 17 00:00:00 2001 From: Nodari Chkuaselidze Date: Mon, 9 Dec 2024 17:33:32 +0000 Subject: [PATCH] docs: backport release notes for v7. Simplify release process. --- CHANGELOG.md | 2 +- docs/README.md | 1 - docs/release-files.md | 36 +-- docs/release-notes/release-notes-7.x.md | 287 ++++++++++++++++++++++++ docs/release-process.md | 36 +-- docs/release-schedule.md | 12 - 6 files changed, 300 insertions(+), 74 deletions(-) create mode 100644 docs/release-notes/release-notes-7.x.md delete mode 100644 docs/release-schedule.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a3c7e382..d119584a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## v7.0.0 -**When upgrading to this version of hsd, you must pass `--wallet-migrate=4` when +**When upgrading to this version of hsd, you must pass `--wallet-migrate=5` when you run it for the first time.** ### Primitives diff --git a/docs/README.md b/docs/README.md index c25ce12a6..b47e1e8cf 100644 --- a/docs/README.md +++ b/docs/README.md @@ -4,7 +4,6 @@ HSD ## Links - [Install](./install.md) - [Configuration](https://hsd-dev.org/guides/config.html) - - [Release schedule](./release-schedule.md) - [Release process](./release-process.md) - [Release files](./release-files.md) diff --git a/docs/release-files.md b/docs/release-files.md index e673ac402..09bc53d4a 100644 --- a/docs/release-files.md +++ b/docs/release-files.md @@ -4,7 +4,7 @@ Releasing hsd and hs-client This document contains information about bundling, signing and distributing the files. -`hsd/hs-client` is distributed through several platforms: `github`, `npm`, `brew`. +`hsd/hs-client` is distributed through several platforms: `github`, `npm`. @@ -17,8 +17,6 @@ distributing the files. - [Minor, Patch](#minor-patch) * [Deploying to npm](#deploying-to-npm) + [Deploying latest version, minor and patches included](#deploying-latest-version-minor-and-patches-included) - + [Deploying support versions (previous and life-support)](#deploying-support-versions-previous-and-life-support) - * [Deploying to homebrew](#deploying-to-homebrew) * [Deploying to handshake.org](#deploying-to-handshakeorg) + [Building tarball](#building-tarball) + [Signing and upload](#signing-and-upload) @@ -46,8 +44,6 @@ After you are [ready](./release-process.md) to publish files (for example - `git tag --force -s latest` - Tag `v4.0.0` as `latest`. - `git checkout v3.x.x` - latest `v3` version. - `git tag --force -s previous` - Tag latest `v3` as `previous`. - - `git checkout v2.x.x` - latest `v2` version. - - `git tag --force -s life-support` - Tag latest `v2` as `life-support`. #### Minor, Patch If we are updating minor/patch versions, regardless of the `major`, we @@ -61,8 +57,8 @@ it will update `previous` tag. We will have full example with `major`: ## Deploying to npm Maintainer needs access rights to the npm repository. Releasing -on npm by default tags the release with `latest`, so releasing latest -and supporting older versions is different. +on npm by default tags the release with `latest`. +`previous` tag is not released on npm. NOTE: You can use `npm publish --dry-run` to see the details before actual release. @@ -74,27 +70,6 @@ Major, minor and patch of the latest version deployment (for example v4.1.0): NOTE: `package.json` should have been updated in `v4.1.0` tag to `4.1.0`. -### Deploying support versions (previous and life-support) -Older versions can have additional tags for `previous` and `life-support`: - - `git checkout v3.1.0` - switch to the tag for the `previous` version. - - `npm publish --tag previous` - update appropriate npm tag for the release. -or - - `git checkout v2.4.1` - switch to the tag for the `life-support` version. - - `npm publish --tag life-support` - update appropriate npm tag for the - release. - -NOTE: `package.json` should have been updated in `v3.1.0` tag to `3.1.0`. - -## Deploying to homebrew - To deploy to the popular MacOS package manager [brew][homebrew], you will -need to create Pull request to the [Hombrew Core repository][homebrew-repo]. -Formula for the `hsd` can be found at `homebrew-core/Formula/hsd.rb` - - Update `homebrew-core/Formula/hsd.rb`. (e.g. [hsd 3.0.1][homebrew-update]) - - You can check the steps when formula was introduced - [hsd formula][homebrew-new-formula] or review the - [Guidelines][homebrew-guidelines]. - - Additionally double check if `nodejs` version needs update. - ## Deploying to handshake.org Handshake.org website is hosted via github and can be found at [handshake-org/handshake-web][handshake-web]. Website contains easy to install @@ -149,11 +124,6 @@ publish by itself, only generate files to review locally. release. -[homebrew]: https://brew.sh/ -[homebrew-repo]: https://github.com/Homebrew/homebrew-core -[homebrew-new-formula]: https://github.com/Homebrew/homebrew-core/pull/51014 -[homebrew-update]: https://github.com/Homebrew/homebrew-core/pull/87779/files -[homebrew-guidelines]: https://github.com/Homebrew/homebrew-core/blob/master/CONTRIBUTING.md [handshake-web]: https://github.com/handshake-org/handshake-web/ [bpkg]: https://github.com/chjj/bpkg [hsclient]: https://github.com/handshake-org/hs-client diff --git a/docs/release-notes/release-notes-7.x.md b/docs/release-notes/release-notes-7.x.md new file mode 100644 index 000000000..7119e701e --- /dev/null +++ b/docs/release-notes/release-notes-7.x.md @@ -0,0 +1,287 @@ +v7.x Release notes +================== + + + +- [v7.0.0](#v700) + * [How to Upgrade](#how-to-upgrade) + * [Notable Changes](#notable-changes) + + [Primitives](#primitives) + + [Node Changes](#node-changes) + - [Node HTTP API](#node-http-api) + + [hs-client node](#hs-client-node) + + [Wallet Changes](#wallet-changes) + - [Wallet Configuration](#wallet-configuration) + - [Wallet API](#wallet-api) + * [Wallet HTTP API](#wallet-http-api) + * [Examples](#examples) + * [Wallet RPC](#wallet-rpc) + * [Wallet CLI (hsw-cli)](#wallet-cli-hsw-cli) + + [hs-client wallet](#hs-client-wallet) + * [Changelog](#changelog) + + + +# v7.0.0 +## How to Upgrade + When upgrading to this version, you must use the `--wallet-migrate=5` flag +the first time you run it. It is strongly recommended to back up your wallet +before proceeding with the upgrade +([#782](https://github.com/handshake-org/hsd/pull/782), + [#896](https://github.com/handshake-org/hsd/pull/896), + [#888](https://github.com/handshake-org/hsd/pull/888)). + +## Notable Changes +### Primitives +- TX + - tx.test no longer updates the filter, + instead `.testAndMaybeUpdate` is used for testing and potentially updating + ([#856](https://github.com/handshake-org/hsd/pull/856)). + +### Node Changes + Add support for the interactive rescan, that allows more control over +rescan process and allows parallel rescans +([#856](https://github.com/handshake-org/hsd/pull/856)). + +#### Node HTTP API +- `GET /` or `getInfo()` now has more properties +([#869](https://github.com/handshake-org/hsd/pull/869)): + - `treeRootHeight` - height at which the block txns are accumulated + in the current branch. + - `indexers` + - `indexTX` - is tx indexer enabled. + - `indexAddress` - is addr indexer enabled. + - `options` + - `spv` is the Node SPV? + - `prune` does node have pruning enabled. + - `treeCompaction` + - `compacted` - whethere tree is compacted or not. + - `compactOnInit` - is tree compaction on init enabled. + - `compactInterval` - what is the current compaction interval config. + - `nextCompaction` - when will the next compaction trigger after restart. + - `lastCompaction` - when was the last compaction run. +- Introduce `scan interactive` hook (start, filter, fullLock) +([#883](https://github.com/handshake-org/hsd/pull/883)). +- Add `get median time` hook to get median time past for a blockhash +([#888](https://github.com/handshake-org/hsd/pull/888)). +- Add `get entries` hook to get entries. Similar to `get hashes`, but +returns encoded entries +([#888](https://github.com/handshake-org/hsd/pull/888)). + +### hs-client node +- Introduce `scanInteractive` method that starts interactive rescan + ([#856](https://github.com/handshake-org/hsd/pull/856)). + - expects ws hook for `block rescan interactive` params `rawEntry, rawTXs` + that returns scanAction object. + - expects ws hook for `block rescan interactive abort` param `message`. +- Add `getMempoolRejectionFilter` and `checkMempoolRejectionFilter` NodeClient + aliases. ([#882](https://github.com/handshake-org/hsd/pull/882)). +- Add `getFee`, an HTTP alternative to estimateFee socket call + ([#882](https://github.com/handshake-org/hsd/pull/882)). +- Adds `getEntries(start, end)` that returns encoded chain entries + ([#882](https://github.com/handshake-org/hsd/pull/882)). + +### Wallet Changes +- Add migration that recalculates txdb balances to fix any inconsistencies + ([#782](https://github.com/handshake-org/hsd/pull/782)). +- Wallet will now use `interactive scan` for initial sync(on open) and rescan + ([#883](https://github.com/handshake-org/hsd/pull/883)). + +#### Wallet Configuration +- Wallet now has option `wallet-migrate-no-rescan`/`migrate-no-rescan` if you + want to disable rescan when migration recommends it. It may result in the + incorrect txdb state, but can be useful if you know the issue does not affect + your wallet or is not critical ([#859](https://github.com/handshake-org/hsd/pull/859)). +- Add `--wallet-preload-all` (or `--preload-all` for standalone wallet node) + that will open all wallets before starting other services (e.g. HTTP). + By default this is set to `false` ([#803](https://github.com/handshake-org/hsd/pull/803)). +- Add `--wallet-max-history-txs` (or `--max-history-txs` for standalone wallet + node) that will be the hard limit of confirmed and unconfirmed histories + ([#888](https://github.com/handshake-org/hsd/pull/888)). + +#### Wallet API + +- WalletNode now emits `open` and `close` events + ([#883](https://github.com/handshake-org/hsd/pull/883)). +- WalletDB Now emits events for: `open`, `close`, `connect`, `disconnect` + ([#859](https://github.com/handshake-org/hsd/pull/859)). +- WalletDB + - `open()` no longer calls `connect` and needs separate call `connect` + ([#859](https://github.com/handshake-org/hsd/pull/859)). + - `open()` no longer calls scan, instead only rollbacks and waits for + sync to do the rescan + ([#859](https://github.com/handshake-org/hsd/pull/859)). + - emits events for: `open`, `close`, `connect`, `disconnect`, `sync done` + ([#859](https://github.com/handshake-org/hsd/pull/859)). + - Wallet now has additional methods for quering history + ([#888](https://github.com/handshake-org/hsd/pull/888)): + - `listUnconfirmed(acc, { limit, reverse })` - Get first or last `limit` + unconfirmed transactions. + - `listUnconfirmedAfter(acc, { hash, limit, reverse })` - Get first or last `limit` + unconfirmed transactions after/before tx with hash: `hash`. + - `listUnconfirmedFrom(acc, { hash, limit, reverse })` - Get first or last `limit` + unconfirmed transactions after/before tx with hash `hash`, inclusive. + - `listUnconfirmedByTime(acc, { time, limit, reverse })` - Get first or last + `limit` unconfirmed transactions after/before `time`, inclusive. + - `listHistory(acc, { limit, reverse })` - Get first or last `limit` + unconfirmed/confirmed transactions. + - `listHistoryAfter(acc, { hash, limit, reverse })` - Get first or last `limit` + unconfirmed/confirmed transactions after/before tx with hash `hash`. + - `listHistoryFrom(acc, { hash, limit, reverse })` - Get first or last `limit` + confirmed/unconfirmed transactions after/before tx with hash `hash`, inclusive. + - `listUnconfirmedByTime(acc, { time, limit, reverse })` - Get first or last + `limit` confirmed/unconfirmed transactions after/before `time`, inclusive. + - NOTE: Default is ascending order, from the oldest. + +##### Wallet HTTP API +- All transaction creating endpoints now accept `hardFee` for specifying the + exact fee ([#845](https://github.com/handshake-org/hsd/pull/845)). +- All transaction sending endpoints now fundlock/queue tx creation. (no more + conflicting transactions) + ([#845](https://github.com/handshake-org/hsd/pull/845)) +- Add options to `getNames` for passing `own` + ([#882](https://github.com/handshake-org/hsd/pull/882)). +- Rename `createAuctionTxs` to `createAuctionTXs` + ([#899](https://github.com/handshake-org/hsd/pull/899)). +- All `bid` serializations will include `height` of the bid. (`-1` if + it was migrated not-owned bid) + ([#896](https://github.com/handshake-org/hsd/pull/896)) + - `GET /wallet/:id/auction` (`getAuctions`) + - `GET /wallet/:id/auction/:name` (`getAuctionByName`) + - `GET /wallet/:id/bid` (`getBids`) + - `GET /wallet/:id/bid/:name` (`getBidsByName`) +- All `reveal` serializations will include `bidPrevout` of the bid. (`null` if +it was migrated not-owned reveal) + ([#896](https://github.com/handshake-org/hsd/pull/896)) + - `GET /wallet/:id/auction` (`getAuctions`) + - `GET /wallet/:id/auction/:name` (`getAuctionByName`) + - `GET /wallet/:id/reveal` (`getReveals`) + - `GET /wallet/:id/reveal/:name` (`getRevealsByName`) +- `GET /wallet/:id/tx/history` - The params are now `time`, `after`, +`limit`, and `reverse`. + ([#888](https://github.com/handshake-org/hsd/pull/888)) +- `GET /wallet/:id/tx/unconfirmed` - The params are are same as above. + ([#888](https://github.com/handshake-org/hsd/pull/888)) + +These endpoints have been deprecated +([#888](https://github.com/handshake-org/hsd/pull/888)): +- `GET /wallet/:id/tx/range` - Instead use the `time` param for the history and + unconfirmed endpoints. +- `GET /wallet/:id/tx/last` - Instead use `reverse` param for the history and + unconfirmed endpoints. + +##### Examples + +Pagination examples ([#888](https://github.com/handshake-org/hsd/pull/888)): + +``` +GET /wallet/:id/tx/history?after=&limit=50&reverse=false +GET /wallet/:id/tx/history?after=&limit=50&reverse=true +``` +By using `after=` we can anchor pages so that results will not shift +when new blocks and transactions arrive. With `reverse=true` we can change +the order the transactions are returned as _latest to genesis_. The +`limit=` specifies the maximum number of transactions to return +in the result. + +``` +GET /wallet/:id/tx/history?time=&limit=50&reverse=false +GET /wallet/:id/tx/history?time=&limit=50&reverse=true +``` +The param `time` is in epoch seconds and indexed based on median-time-past +(MTP) and `date` is ISO 8601 format. Because multiple transactions can share +the same time, this can function as an initial query, and then switch to the +above `after` format for the following pages. + +``` +GET /wallet/:id/tx/unconfirmed?after=&limit=50&reverse=false +GET /wallet/:id/tx/unconfirmed?after=&limit=50&reverse=true +GET /wallet/:id/tx/unconfirmed?time=&limit=50&reverse=false +``` +The same will apply to unconfirmed transactions. The `time` is in epoch +seconds and indexed based on when the transaction was added to the wallet. + +##### Wallet RPC +The following new methods have been added +([#888](https://github.com/handshake-org/hsd/pull/888)): + - `listhistory` - List history with a limit and in reverse order. + - `listhistoryafter` - List history after a txid _(subsequent pages)_. + - `listhistorybytime` - List history by giving a timestamp in epoch seconds + _(block median time past)_. + - `listunconfirmed` - List unconfirmed transactions with a limit and in + reverse order. + - `listunconfirmedafter` - List unconfirmed transactions after a txid + _(subsequent pages)_. + - `listunconfirmedbytime` - List unconfirmed transactions by time they + where added. + +The following methods have been deprecated +([#888](https://github.com/handshake-org/hsd/pull/888)): + - `listtransactions` - Use `listhistory` and the related methods and the + `after` argument for results that do not shift when new blocks arrive. + +##### Wallet CLI (hsw-cli) + - `history` now accepts new args on top of `--account`: `--reverse`, + `--limit`, `--after`, `--after` + ([#888](https://github.com/handshake-org/hsd/pull/888)). + - `pending` now accepts new args, same as above + ([#888](https://github.com/handshake-org/hsd/pull/888)). + + +### hs-client wallet + - `getHistory` and `Wallet.getHistory` no longer accept `account`, + instead accepts object with properties: `account`, `time`, `after`, + `limit`, and `reverse` + ([#888](https://github.com/handshake-org/hsd/pull/888)). + + - `getPending` and `Wallet.getPending` have the same changes as + `getHistory` above + ([#888](https://github.com/handshake-org/hsd/pull/888)). + +## Changelog + - \[[`0a4cc496`](https://github.com/handshake-org/hsd/commit/0a4cc496)] - [#888](https://github.com/handshake-org/hsd/pull/888) - **SEMVER-MAJOR wallet**: Wallet TX Count and time indexing - (@nodech - Nodari Chkuaselidze and @braydonf - Braydon Fuller) + - \[[`5294be7e`](https://github.com/handshake-org/hsd/commit/5294be7e)] - [#896](https://github.com/handshake-org/hsd/pull/896) - **SEMVER-MAJOR wallet**: Link bid and reveal - (@nodech - Nodari Chkuaselidze) + - \[[`d754b863`](https://github.com/handshake-org/hsd/commit/d754b863)] - [#899](https://github.com/handshake-org/hsd/pull/899) - **SEMVER-MAJOR wallet-client**: rename createAuctionTxs to createAuctionTXs. - (@nodech - Nodari Chkuaselidze) + - \[[`9ddb69e2`](https://github.com/handshake-org/hsd/commit/9ddb69e2)] - [#883](https://github.com/handshake-org/hsd/pull/883) - **SEMVER-MAJOR wallet**: Wallet Sync Updates - (@nodech - Nodari Chkuaselidze) + - \[[`fc23f410`](https://github.com/handshake-org/hsd/commit/fc23f410)] - [#782](https://github.com/handshake-org/hsd/pull/782) - **SEMVER-MAJOR txdb**: Txdb tests and updates - (@nodech - Nodari Chkuaselidze and @pinheadmz - Matthew Zipkin) + - \[[`bb7da60e`](https://github.com/handshake-org/hsd/commit/bb7da60e)] - [#859](https://github.com/handshake-org/hsd/pull/859) - **SEMVER-MAJOR wallet**: Add open/close and connect/disconnect events. - (@nodech - Nodari Chkuaselidze) + - \[[`509ffe5f`](https://github.com/handshake-org/hsd/commit/509ffe5f)] - [#882](https://github.com/handshake-org/hsd/pull/882) - **SEMVER-MINOR clients**: Update wallet and node clients - (@nodech - Nodari Chkuaselidze) + - \[[`f749f5cc`](https://github.com/handshake-org/hsd/commit/f749f5cc)] - [#885](https://github.com/handshake-org/hsd/pull/885) - **SEMVER-MINOR wallet**: set icannlockup to true for wallets. - (@nodech - Nodari Chkuaselidze) + - \[[`419924b2`](https://github.com/handshake-org/hsd/commit/419924b2)] - [#856](https://github.com/handshake-org/hsd/pull/856) - **SEMVER-MINOR chain**: Fullnode interactive rescan. - (@nodech - Nodari Chkuaselidze) + - \[[`79994774`](https://github.com/handshake-org/hsd/commit/79994774)] - [#803](https://github.com/handshake-org/hsd/pull/803) - **SEMVER-MINOR wallet**: --preload-all option to load all wallet on open. - (@nodech - Nodari Chkuaselidze) + - \[[`aac7fa7b`](https://github.com/handshake-org/hsd/commit/aac7fa7b)] - [#869](https://github.com/handshake-org/hsd/pull/869) - **SEMVER-MINOR node-http**: Add node/chain parameters to the getInfo (`/`) - (@nodech - Nodari Chkuaselidze) + - \[[`7bd2078c`](https://github.com/handshake-org/hsd/commit/7bd2078c)] - [#866](https://github.com/handshake-org/hsd/pull/866) - **SEMVER-MINOR covenant**: set methods on covenant. - (@nodech - Nodari Chkuaselidze) + - \[[`7aeb668b`](https://github.com/handshake-org/hsd/commit/7aeb668b)] - [#845](https://github.com/handshake-org/hsd/pull/845) - **SEMVER-MINOR wallet-http**: put send transaction endpoints behind fund locks. - (@nodech - Nodari Chkuaselidze) + - \[[`ceab2a81`](https://github.com/handshake-org/hsd/commit/ceab2a81)] - [#900](https://github.com/handshake-org/hsd/pull/900) - **migrations**: Update migrations - (@nodech - Nodari Chkuaselidze) + - \[[`53780989`](https://github.com/handshake-org/hsd/commit/53780989)] - [#906](https://github.com/handshake-org/hsd/pull/906) - **net**: Remove offline seed node - (@Falci - Fernando Falci) + - \[[`dc4f4f42`](https://github.com/handshake-org/hsd/commit/dc4f4f42)] - [#884](https://github.com/handshake-org/hsd/pull/884) - **net**: add nathan.woodburn nodes to seed - (@Nathanwoodburn - Nathan Woodburn) + - \[[`1b331eed`](https://github.com/handshake-org/hsd/commit/1b331eed)] - [#904](https://github.com/handshake-org/hsd/pull/904) - **wallet**: Add more specific error when linked inputs are pending. - (@nodech - Nodari Chkuaselidze) + - \[[`45c6ac1d`](https://github.com/handshake-org/hsd/commit/45c6ac1d)] - [#902](https://github.com/handshake-org/hsd/pull/902) - **types**: Update types - (@nodech - Nodari Chkuaselidze) + - \[[`e88734fb`](https://github.com/handshake-org/hsd/commit/e88734fb)] - [#901](https://github.com/handshake-org/hsd/pull/901) - **mtx**: - Resolve coins from coinview as well during coinselection. - (@nodech - Nodari Chkuaselidze) + - \[[`e93bd53e`](https://github.com/handshake-org/hsd/commit/e93bd53e)] - [#898](https://github.com/handshake-org/hsd/pull/898) - **wallet**: Add nowFn to wdb options and txdb. - (@nodech - Nodari Chkuaselidze) + - \[[`680a9da7`](https://github.com/handshake-org/hsd/commit/680a9da7)] - [#897](https://github.com/handshake-org/hsd/pull/897) - **pkg**: Update bdb and other deps. - (@nodech - Nodari Chkuaselidze) + - \[[`1daebd8a`](https://github.com/handshake-org/hsd/commit/1daebd8a)] - [#895](https://github.com/handshake-org/hsd/pull/895) - **test**: change ownership resolver from google to cloudflare. - (@nodech - Nodari Chkuaselidze) + - \[[`fe336aec`](https://github.com/handshake-org/hsd/commit/fe336aec)] - [#893](https://github.com/handshake-org/hsd/pull/893) - **test**: disable dns-test until c-ares fix. - (@nodech - Nodari Chkuaselidze) + - \[[`0a4f24bd`](https://github.com/handshake-org/hsd/commit/0a4f24bd)] - [#887](https://github.com/handshake-org/hsd/pull/887) - **pkg**: update lint and docs. - (@nodech - Nodari Chkuaselidze) + - \[[`5f943173`](https://github.com/handshake-org/hsd/commit/5f943173)] - [#881](https://github.com/handshake-org/hsd/pull/881) - **test**: Test cleanup - (@nodech - Nodari Chkuaselidze) + - \[[`349d203b`](https://github.com/handshake-org/hsd/commit/349d203b)] - [#875](https://github.com/handshake-org/hsd/pull/875) - **test**: Cover reorg for double open index - (@nodech - Nodari Chkuaselidze) + - \[[`c9e39855`](https://github.com/handshake-org/hsd/commit/c9e39855)] - [#879](https://github.com/handshake-org/hsd/pull/879) - **test**: add in memory dns cache. - (@nodech - Nodari Chkuaselidze) + - \[[`5955e913`](https://github.com/handshake-org/hsd/commit/5955e913)] - [#870](https://github.com/handshake-org/hsd/pull/870) - **wallet**: add tests for the chain state and fix markState - (@nodech - Nodari Chkuaselidze) + - \[[`b6778c4b`](https://github.com/handshake-org/hsd/commit/b6778c4b)] - [#876](https://github.com/handshake-org/hsd/pull/876) - **pkg**: update to es2020. Use latest bslint - (@nodech - Nodari Chkuaselidze) + - \[[`b01d39c2`](https://github.com/handshake-org/hsd/commit/b01d39c2)] - [#858](https://github.com/handshake-org/hsd/pull/858) - **net**: add a new permanently hard-coded seed node - @handshake-enthusiast + - \[[`43e13006`](https://github.com/handshake-org/hsd/commit/43e13006)] - [#871](https://github.com/handshake-org/hsd/pull/871) - **wallet**: fix batch styles and jsdocs. - (@nodech - Nodari Chkuaselidze) + - \[[`e3e5e01c`](https://github.com/handshake-org/hsd/commit/e3e5e01c)] - [#873](https://github.com/handshake-org/hsd/pull/873) - **chain**: remove unnecessary critical error. - (@nodech - Nodari Chkuaselidze) + - \[[`64468280`](https://github.com/handshake-org/hsd/commit/64468280)] - [#861](https://github.com/handshake-org/hsd/pull/861) - **wallet**: don't add coinbase txs to the pending list. - (@nodech - Nodari Chkuaselidze) + - \[[`bc3c1728`](https://github.com/handshake-org/hsd/commit/bc3c1728)] - [#868](https://github.com/handshake-org/hsd/pull/868) - **wallet**: rescan deadlock fix - (@nodech - Nodari Chkuaselidze) + - \[[`0690c6f3`](https://github.com/handshake-org/hsd/commit/0690c6f3)] - [#860](https://github.com/handshake-org/hsd/pull/860) - **pkg**: clean up unused params. - (@nodech - Nodari Chkuaselidze) + - \[[`4a70d700`](https://github.com/handshake-org/hsd/commit/4a70d700)] - [#863](https://github.com/handshake-org/hsd/pull/863) - **test**: add unit tests for cipher state - (@nodech - Nodari Chkuaselidze and @kilpatty - Sean Kilgarriff) + - \[[`5582e791`](https://github.com/handshake-org/hsd/commit/5582e791)] - [#865](https://github.com/handshake-org/hsd/pull/865) - **test**: abstract some mining heights - (@nodech - Nodari Chkuaselidze and @tynes - Mark Tyneway) + - \[[`5c287c9d`](https://github.com/handshake-org/hsd/commit/5c287c9d)] - [#853](https://github.com/handshake-org/hsd/pull/853) - **net**: Delete duplicates from seed nodes - @handshake-enthusiast + - \[[`e4245e53`](https://github.com/handshake-org/hsd/commit/e4245e53)] - [#852](https://github.com/handshake-org/hsd/pull/852) - **txdb**: fix conflict event bug. - (@nodech - Nodari Chkuaselidze and @braydonf - Braydon Fuller) + - \[[`7fe7ce41`](https://github.com/handshake-org/hsd/commit/7fe7ce41)] - [#555](https://github.com/handshake-org/hsd/pull/555) - **namestate**: improve "stats" object for transfers, expiry and revoke - (@pinheadmz - Matthew Zipkin and @nodech - Nodari Chkuaselidze) + - \[[`2ede2c29`](https://github.com/handshake-org/hsd/commit/2ede2c29)] - [#851](https://github.com/handshake-org/hsd/pull/851) - **pkg**: update bdb to 1.5.1 and use @handshake-org/bfilter. - (@nodech - Nodari Chkuaselidze) + - \[[`4e87fb1d`](https://github.com/handshake-org/hsd/commit/4e87fb1d)] - [#850](https://github.com/handshake-org/hsd/pull/850) - **script**: add redundant tests to math ops. - (@nodech - Nodari Chkuaselidze) + - \[[`ab611036`](https://github.com/handshake-org/hsd/commit/ab611036)] - [#849](https://github.com/handshake-org/hsd/pull/849) - **pkg**: ci no longer update npm on build. - (@nodech - Nodari Chkuaselidze) + - \[[`61ae19c2`](https://github.com/handshake-org/hsd/commit/61ae19c2)] - [#844](https://github.com/handshake-org/hsd/pull/844) - **docs**: backport release schedule and v6.x notes. - (@nodech - Nodari Chkuaselidze) + - \[[`9b70c294`](https://github.com/handshake-org/hsd/commit/9b70c294)] - [#910](https://github.com/handshake-org/hsd/pull/844) - **net**: remove unstable seed. (@nodech - Nodari Chkuaselidze) + diff --git a/docs/release-process.md b/docs/release-process.md index 772dc3607..e9163102a 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -25,8 +25,8 @@ This document describes the release process and branching strategy for hsd. ## Release schedule and release candidates - We release 2 major versions of the hsd per year (October and April). We -release the `release candidate` for the next major version one month early to + We release up to 2 major versions of the hsd per year. We release +the `release candidate` for the next major version one week early to allow others to join the testing of the `hsd`. `Release candidates` can be released several times until the final release date. @@ -42,7 +42,6 @@ This document uses following definitions for the versions: - `next` version (`major+1.x.x`) - The version that will be released on the next major release date. - `previous` version (`major-1.x.x`). - - `life-support` version (`major-2.x.x`). Some useful tips for PRs: - Does it need database migration ? - major upgrade. @@ -53,18 +52,13 @@ Some useful tips for PRs: get removed from the `next` release. ## Support period - We release 2 major version per year and we want to support each version at -least for a year. This means that we will support 2 more versions on top of the -`latest` version. For example current version `3.x.x` will get at least security -fixes, until version `6.x.x` is released. Support types: + We release up to 2 major version per year, but only latest 2 will be +supported (`latest` and `previous`). +Support types: - `latest` version (`major.x.x`) - active minor and patche releases. - - `previous` version (`major-1.x.x`) - backport patches and minor fixes - only if it improves performance or has high impact. - - `life-support` version (`major-2.x.x`)- only backport security fixes. + - `previous` version (`major-1.x.x`) - only backport critical fixes. - Anything prior to these is discontinued. -NOTE: We should also collect stats for the active node versions in the network. - ## Changelog and release notes CHANGELOG will only report backwards-incompatible API changes and actions users need to take to upgrade. @@ -79,7 +73,6 @@ version. be used in production. Each released version lives in a separate branch: - `latest` in `major.x` branch. - `previous` in `major-1.x` branch. - - `life-support` in `major-2.x` branch. Minor and patch releases of these versions are released from these branches and updates are backported from the `master`. Merges to the released version @@ -91,7 +84,6 @@ Process below will be described as procedures for the situations: - release `next` major version. (becomes `latest`) - release `latest` minor and patch versions. - release `previous` minor and patch versions. - - release `life-support` minor and patch versions. Process for the `latest` and `previous` minor/patch releases is the same. At the same time only these branches should exist in the repo @@ -101,9 +93,6 @@ At the same time only these branches should exist in the repo - `v4.x-proposal` - active backport and PR base. - `v3.x` - just become `previous` version. - `v3.x-proposal` - import minor/patch backport and PR base. - - `v2.x` - just become `life-support` version. - - `v2` does not have proposal, because it only supports critical fixes, which - wont go through standard PR release process. ### master branch and package.json version `master` branch only accumulates changes from PRs and is mostly untested(other @@ -133,8 +122,8 @@ Process example (e.g. `latest` was `3.1.0` and we are releasing `4.0.0-rc.1`): - update `package-lock.json` by running `npm install`. - optional: In case we want to omit some changes from the `master`, you can also rebase and discard those commits. - - Create Release doc file for the - `docs/release-notes/release-notes-4.x-draft.md`. + - Create Release doc + `docs/release-notes/release-notes-4.x.md`. - Update CHANGELOG file with the incompatibilities and actions to take. - Create PR: `Release v4.0.0-rc.1` from branch `4.x-proposal` to `4.x`. - PR description containing list of PRs (similar to release notes) @@ -155,7 +144,7 @@ Process example: - update `package.json` version to `4.0.0-rc.2` in the `4.x-proposal`. - update `package-lock.json` by running `npm install`. - Update Release doc file for the - `docs/release-notes/release-notes-4.x-draft.md`. + `docs/release-notes/release-notes-4.x.md`. - Update CHANGELOG file with the incompatibilities and actions to take. (should not be any) - Create PR `Release v4.0.0-rc.2` from branch `4.x-proposal` to `4.x`. @@ -169,18 +158,13 @@ Process example: Above process continues until last week where we do the actual release: - update `package.json` version to `4.0.0` in the `4.x-proposal` branch. - update `package-lock.json` by running `npm install`. - - Rename relase doc file from - `docs/release-notes/release-notes-4.x-draft.md` to - `docs/release-notes/release-notes-4.x.md` - CHANGELOG should be up to date. - Create PR `Release v4.0.0` from the branch `4.x-proposal` to `4.x`. - PR list from prev PRs. - Final review before release - [Release files][release-files] for the `4.0.0` - - Update [schedule][schedule] if necessary - Update `latest` tag. - Update `previous` tag. - - Update `life-support` tag. - Backport release notes to `master`. ### Release minor and patches @@ -201,8 +185,6 @@ release minor(process is the same for `previous` minor and patch releases): - Depending on the version we are upgrading, update relevant tag: - `latest` if we are releasing from the last `major`. - `previous` if we are updating `previous` versions `minor`. - - `life-support` if we are updating `life-support` versions `minor`. - Backport release notes to `master`. [release-files]: ./release-files.md -[schedule]: ./release-schedule.md diff --git a/docs/release-schedule.md b/docs/release-schedule.md deleted file mode 100644 index bf3d78813..000000000 --- a/docs/release-schedule.md +++ /dev/null @@ -1,12 +0,0 @@ -Maintenance period -================== - -| Version | Release Date | Maintenance End | End of Life | -| ------- | ------------ | --------------- | ----------- | -| v3.x | 2021-10-14 | 2022-10-31 | 2023-04-30 | -| v4.x | 2022-04-30 | 2023-04-30 | 2023-10-31 | -| v5.x | 2023-01-19 | 2023-10-31 | 2024-04-30 | -| v6.x | 2023-08-10 | 2024-04-30 | 2024-10-31 | -| v7.x | 2024-04-30 | 2024-10-31 | 2024-04-30 | -| v8.x | 2024-10-31 | 2025-04-30 | 2025-10-31 | -| v9.x | 2025-04-30 | 2025-10-30 | 2026-04-30 |