Skip to content

release: prepare v1.0.1 - #181

Open
kiwidream wants to merge 2 commits into
1.x.xfrom
kiwidream/1.0.1-rc1-prep
Open

kiwidream wants to merge 2 commits into
1.x.xfrom
kiwidream/1.0.1-rc1-prep

Conversation

@kiwidream

@kiwidream kiwidream commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

Summary

This PR prepares v1.0.1 from 1.x.x for #174. v1.0.1 ships directly, without a release candidate. The plan change is recorded in #174.

When rc1 was dropped, the branch history was rewritten into these two commits. The earlier review rounds remain in this PR's conversation.

Maintainer checklist (before tagging and publishing)

The publisher only checks that the notes file is UTF-8, so these gates live here and in #174.

Testing

  • Built locally.

  • Ran focused unit or functional tests for the changed area.

  • Ran lint or formatting checks relevant to this change.

  • Not run. Reason:

  • Version strings: qbit, qbitd, qbit-cli, qbit-tx, qbit-util, qbit-wallet and qbit-qt all print v1.0.1. The rpcdocs-json manifest and build metadata report project_version v1.0.1.

  • Tests:

    • test_qbit --run_test=util_tests passes.
    • The functional tests interface_bitcoin_cli, feature_help, feature_uacomment and rpc_net (v1 and v2 transport) pass.
    • The ci/release unit tests pass: 228 tests.
    • verify_mainnet_release_posture passes against a local-only scratch v1.0.1 tag on fb45d18.
  • Lints: lint-qbit-public-docs, lint-files and git diff --check pass.

  • doc: fix pipe rendering and tighten P2MR v1 consensus profile #252 check: before the notes repeated doc: fix pipe rendering and tighten P2MR v1 consensus profile #252's "no normative changes" claim, a mechanical comparison confirmed that every MUST, MUST NOT and MAY statement, every numeric value and every upper-case identifier in the profile is preserved.

  • Not run: codespell, test_qbit-qt and the full suites; CI covers those.

Notes for reviewers:

  • v1.0.0 peers will log the informational "newer subversion … consider upgrading" message for /qbit:1.0.1/.
  • This is pre-existing: core-checks.yml:122 runs the mainnet-posture job only for target branch 1.0.0, so it never runs for 1.x.x PRs. The local posture check above covers it for this change.

Target Branch

  • This PR targets main or a maintainer-requested release branch such as 0.1.x.

Targets 1.x.x.

Risk / Review Notes

  • Consensus, script, crypto, wallet, P2P, release, CI, or security-sensitive behavior changed.
  • No consensus, script, crypto, wallet, P2P, release, CI, or security-sensitive behavior changed.

Notes: this changes release metadata only: the version and user agent, man pages and release notes. There are no code-behavior changes beyond the test expectation.

Docs / Process Impact

Choose exactly one:

  • I updated public docs because this PR changes user-visible behavior, integration guidance, release/process guidance, or expected validation.
  • No public docs update needed. Reason:

Refs #174.

🤖 Generated with Claude Code

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-27T19:04:06.137530Z fb45d18 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2c05917252

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread doc/release-notes-1.0.1.md Resolved
Comment thread doc/release-notes-1.0.1.md Resolved
@djh58 djh58 mentioned this pull request Oct 26, 2026
6 of 15 tasks
djh58 added a commit that referenced this pull request Oct 27, 2026
* ci: check mainnet publication posture for 1.1.0

The "mainnet publication posture" job checks that the source being
released keeps the mainnet launch posture: the AuxPoW chain ID, the
genesis and ASERT launch data, the mainnet bootstrap, and the
default-mainnet build. The "Classify release target" step only set
mainnet_publish_gate_required for target branch 1.0.0, so pull
requests, merge-queue runs and pushes into 1.1.0, the next mainnet
release line, skipped the job and the Core Checks Gate never asked for
its result.

Set the output for 1.1.0 as well, and keep 1.0.0. The job's `if:` and
the Core Checks Gate both read this output, so for source and
release-policy changes into 1.1.0 the job now runs and a failure blocks
the gate. Pin both branches in the existing workflow contract test, and
update the release process, which names the branches the job runs for.

Refs #222

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* build: bump version to v1.1.0-rc1

Set CLIENT_VERSION_MINOR to 1, CLIENT_VERSION_BUILD to 0 and
CLIENT_VERSION_RC to 1 so the source identifies as v1.1.0-rc1, the
first release candidate of v1.1.0, the release after v1.0.1 that adds
the hybrid post-quantum v2 transport (#184). CLIENT_VERSION_IS_RELEASE
stays true: 1.1.0 is a release line, so candidate binaries carry no
commit suffix, as for v1.0.0 and the v1.0.1 candidates.

CMake appends "-rc1" to CLIENT_VERSION_STRING, so every binary reports
v1.1.0-rc1, the user agent becomes /qbit:1.1.0-rc1/, and the Windows
installer metadata and the RPC docs manifest's project version derive
from the same string. The Guix archive name comes from the v1.1.0-rc1
tag itself.

Regenerate the seven manual pages with contrib/devtools/gen-manpages.py
(help2man 1.49.3) from a build of this tree with the GUI, the wallet
and every tool. Besides the version and date lines, qbitd.1 and
qbit-qt.1 gain -v2pqtransport, which #184 added as a connection option.
The other options #184 added (-mlkemportable and the regtest-only
-test values) are debug options that only -help-debug lists, so the
pages don't show them.

util_tests/test_FormatSubVersion expected the "Test" client name to
format as CLIENT_VERSION_STRING, which fails for every version with a
release-candidate suffix: FormatSubVersion uses that string only for
the qbit user agent and formats any other name numerically. Apply the
same fix as the v1.0.1-rc1 preparation (#181), byte for byte, so that
merging 1.x.x into 1.1.0 brings an identical change: expect the
numeric form built from the version components. The qbit user-agent
checks on the next lines still cover CLIENT_VERSION_STRING.

Refs #222

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* doc: draft v1.1.0 release notes

Add doc/release-notes-1.1.0.md in the structure of the v1.0.1 notes
(#181). It covers every change merged to 1.1.0 since it branched from
1.x.x at 45e9e72: the hybrid post-quantum v2 transport, with the
parts and fixes merged through #233 (#223 to #254), and #249.

Behavior changes come first: the hybrid transport is on by default, how
to switch it off, the numeric -v2pqtransport value, the single I2P
session-creation limit and qbit-photon's OpenSSL configuration loading.
A compatibility table states how v1.1.0 nodes connect with v1.0.0 and
v1.0.1 nodes and over v1, in both directions, as
p2p_v2_previous_release.py and rpc_pqtransport.py test it. Known
limitations summarize the release fuzz campaign and the limits its
report on #222 states, the basis of the load-shedding threshold, the
portable ML-KEM code on AArch64 Linux, and the unsigned-platform waiver
(#70). The only performance figures are the handshake benchmark results
published in #240.

Fold in and delete the 1.1.0 fragments doc/release-notes-223.md, -240.md
and -249.md, and point the specification's and the operator guide's
release-note links at the new notes' hybrid transport section. The
v1.0.0 and v1.0.1 fragments are left alone.

The notes say that v1.1.0 contains every change in v1.0.1. That holds
once 1.x.x is merged into 1.1.0 after v1.0.1 ships; the short "Changes
in v1.0.1" section then gains a link to the v1.0.1 notes.

Refs #222

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* net: say how the load-shedding threshold was set

The comment on DEFAULT_PQ_SHED_THRESHOLD_PER_S said that the release
gate's flood measurement (#222, R3) would set its final value. R3 was
settled with CPU benchmarks of the handshake instead, and the threshold
stays at 1,000 offers per second, as the v1.1.0 release notes say. Say
so, so the comment no longer points at a change that is not coming.

Refs #222

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* doc: cite the new fuzz seeds in the v1.1.0 notes

#255 merged into 1.1.0 after the notes were drafted. It adds generated
seeds to the required fuzz corpus for the hybrid transport's targets, so
the test section now cites it alongside the earlier seed changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
kiwidream and others added 2 commits October 27, 2026 14:57
Cover every pull request merged to 1.x.x since the signed v1.0.0 tag,
through #252. List the behavior changes first: the -fallbackfee default
(#151), fee-only send entries (#150), and the encryptwallet overlap
error code moving from -16 to -15 (#183).

Record the release's known limitations: the unsigned-platform waiver
(#70), the depth of the fuzz evidence (#173), and scheduled-workflow
deployment (#152, #158). The required P2MR v1 conformance statement
names the signed tag target and the oracle report digest, so the
in-tree notes point to the release page, and the publish-time notes
file carries the exact statement.

Fold the #150 and #151 fragments into these notes and remove them.

Refs #174

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Set CLIENT_VERSION_BUILD to 1 so the source identifies as v1.0.1, the
maintenance release proposed in #174. It ships without a release
candidate, so CLIENT_VERSION_RC stays 0. CLIENT_VERSION_IS_RELEASE stays
true: 1.x.x is the release line, so its binaries carry no commit suffix,
as for v1.0.0. CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR and
CLIENT_VERSION_PHASE are unchanged.

CLIENT_VERSION_STRING becomes 1.0.1, so every binary reports v1.0.1,
the user agent is /qbit:1.0.1/, the Windows installer metadata and the
RPC docs manifest derive from the same string, and Guix and the
release validators derive 1.0.1 from a v1.0.1 tag.

Regenerate the manual pages from the built binaries with
contrib/devtools/gen-manpages.py (help2man 1.49.3). Only the version
and date lines change.

util_tests/test_FormatSubVersion expected the "Test" client name to
format as CLIENT_VERSION_STRING. FormatSubVersion uses that string only
for the qbit user agent and formats any other name numerically, so the
check holds only while the version has no phase or release-candidate
suffix. Expect the numeric form built from the version components,
which holds for every version. The qbit user-agent checks on the next
lines still cover CLIENT_VERSION_STRING.

No other tracked file carries the release version. The README and doc
mentions of v1.0.0 describe the launch source, and the 1.0.0 entries in
the workflows are branch names, so they are left alone.

Refs #174

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kiwidream
kiwidream force-pushed the kiwidream/1.0.1-rc1-prep branch from 5f20d00 to fb45d18 Compare October 27, 2026 19:02
@kiwidream kiwidream changed the title release: prepare v1.0.1-rc1 release: prepare v1.0.1 Oct 27, 2026

@qbit-reviewer qbit-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No findings.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant