mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-05-21 01:39:39 +00:00
* fix(node-info): real Version + new Commit in Nix/lgpm builds
getNodeInfo Version returned "n/a" on Nix-built libs (and lgpm
releases built from the flake) because nix/default.nix never passed
-d:git_version. A flake sandbox has no .git, so git describe is
impossible; derive the semver from waku.nimble's version field plus
the flake short commit, and expose the full commit SHA via a new
Commit node info id.
- waku_state_info: add Commit to NodeInfoId + dispatch git_commit
- waku_node: add git_commit {.strdefine.} (default "n/a")
- node start logs ("Starting Waku node" / "Running nwaku node") now
print commit = git_commit alongside version
- Makefile: inject -d:git_commit (full SHA), mirrors docker label
- nix/default.nix: accept gitVersion/gitCommit, pass as nim defines
- flake.nix: gitVersion = <nimble version>-g<shortRev>, gitCommit = rev
- CI version-check (PR only): ancestor-aware `git describe --tags
--abbrev=0` vs PR HEAD, base-version compare, so waku.nimble is kept
current early and a new tag never breaks in-flight PRs
- release-assets.yml: gate build/upload on a verify-version job
asserting tag base == waku.nimble (RC tags allowed), so a mismatched
tag publishes no artifacts
- docs: prepare_release.md explains the bump-before-tag requirement
Refs: status-im/infra-logos#4
Closes: logos-messaging/logos-delivery#3884
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: simplify
* chore: update version in waku.nimble
* fix(node-info): remove Commit node info field
Drop the newly added Commit (full SHA) node info id and its
git_commit compile-time define plumbing across Makefile, flake.nix
and nix/default.nix; revert the start/run log lines to version only.
The PR now solely fixes the getNodeInfo Version regression.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore(nix): align git_version format closer to Makefile
Adds the `v` prefix and uses a 6-char SHA so Nix-built nodes report
e.g. `v0.38.1-g52e980`, matching the shape of `git describe --abbrev=6
--always --tags` aside from the unreachable commit-count segment (tag
metadata isn't exposed through the flake input protocol).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5.8 KiB
5.8 KiB
| name | about | title | labels | assignees |
|---|---|---|---|---|
| Prepare Release | Execute tasks for the creation and publishing of a new full release | Prepare release 0.0.0 | full-release |
Items to complete
All items below are to be completed by the owner of the given release.
-
Create release branch with major and minor only ( e.g. release/v0.X ) if it doesn't exist.
-
Update the
versionfield inwaku.nimbleto match the release version (e.g.version = "0.X.0") and merge it before assigning any tag - therelease-assetsworkflow gates artifact build/upload. -
Assign release candidate tag to the release branch HEAD (e.g.
v0.X.0-rc.0,v0.X.0-rc.1, ...v0.X.0-rc.N). -
Generate and edit release notes in CHANGELOG.md.
-
Validation of release candidate
-
Automated testing
- Ensure all the unit tests (specifically logos-messaging-js tests) are green against the release candidate.
-
QA testing
- Ask QA to run their available tests against the release candidate.
-
Waku fleet testing
- Deploy the release candidate to
waku.testfleet.- Start the deployment job and wait for it to finish (Jenkins access required; ask the infra team if you don't have it).
- After completion, disable fleet so that daily CI does not override your release candidate.
- Verify at https://fleets.waku.org/ that the fleet is locked to the release candidate image.
- Confirm the container image exists on Harbor.
- Search Kibana logs from the previous month (since the last release was deployed) for possible crashes or errors in
waku.test.- Set time range to "Last 30 days" (or since last release).
- Most relevant search query:
(fleet: "waku.test" AND message: "SIGSEGV"),(fleet: "waku.test" AND message: "exception"),(fleet: "waku.test" AND message: "error"). - Document any crashes or errors found.
- Ask QA to perform tests against
waku.test, if any. Then, after that, review Kibana for possible issues or unexpected restart. - Enable the
waku.testfleet again to resume auto-deployment of the latestmastercommit.
- Deploy the release candidate to
-
Status testing
- Get QA approval to deploy a new version in
status.staging. - Deploy release candidate to
status.staging. - Perform sanity check and log results as comments in this issue.
- Connect 2 instances to
status.stagingfleet, one in relay mode, the other one in light client mode.- 1:1 Chats with each other.
- Send and receive messages in a community.
- Close one instance, send messages with second instance, reopen first instance and confirm messages sent while offline are retrieved from store.
- Perform checks based on end user impact
- Inform other (Waku and Status) CCs to point their instances to
status.stagingfor a few days. Ping Status colleagues on their Discord server or in the Status community (this is not a blocking point.) - Ask QA to perform sanity checks (as described above) and checks based on end user impact; specify the version being tested
- Ask QA or infra to run the automated Status e2e tests against
status.staging - Get other CCs' sign-off: they should comment on this PR, e.g., "Used the app for a week, no problem." If problems are reported, resolve them and create a new RC.
- Connect 2 instances to
- Get QA approval to deploy a new version in
-
-
Proceed with release
- Assign a final release tag (
v0.X.0) to the same commit that contains the validated release-candidate tag (e.g.git tag -as v0.X.0 -m "final release."). - Update logos-delivery-compose and logos-delivery-simulator according to the new release.
- Bump logos-delivery dependency in logos-delivery-rust-bindings and make sure all examples and tests work.
- Bump logos-delivery dependency in logos-delivery-go-bindings and make sure all tests work.
- Create GitHub release (https://github.com/logos-messaging/logos-delivery/releases).
- Submit a PR to merge the release branch back to
master. Make sure you use the option "Merge pull request (Create a merge commit)" to perform the merge. Ping repo admin if this option is not available. - Create a deployment issue with the recently created release.
- Assign a final release tag (