From 63282f0c8fb5bdbb06483140c265afd8bea51aca Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Jun 2026 11:51:39 -0700 Subject: [PATCH] Release: v1.17 changelog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Signed-off-by: Daniel D’Aquino Co-authored-by: Daniel D’Aquino --- .../skills/filing-user-bug-reports/SKILL.md | 2 +- .../preparing-release-changelog/SKILL.md | 108 ++++++++++++++++++ CHANGELOG.md | 43 +++++++ 3 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 .agents/skills/preparing-release-changelog/SKILL.md diff --git a/.agents/skills/filing-user-bug-reports/SKILL.md b/.agents/skills/filing-user-bug-reports/SKILL.md index 48813f04..9f49b673 100644 --- a/.agents/skills/filing-user-bug-reports/SKILL.md +++ b/.agents/skills/filing-user-bug-reports/SKILL.md @@ -1,5 +1,5 @@ --- -name: Filing User Bug Reports +name: filing-user-bug-reports description: Process conversations or chat logs to identify reported bugs, search for existing GitHub issues, update existing issues when new undocumented details are discovered, and create new issues for untracked problems. --- diff --git a/.agents/skills/preparing-release-changelog/SKILL.md b/.agents/skills/preparing-release-changelog/SKILL.md new file mode 100644 index 00000000..9bd0101a --- /dev/null +++ b/.agents/skills/preparing-release-changelog/SKILL.md @@ -0,0 +1,108 @@ +--- +name: preparing-release-changelog +description: Prepare the CHANGELOG.md for a Damus release by running the changelog script, curating the output, and committing the result. Covers prerequisites, known pitfalls (duplicate entries, reverted commits, truncated annotations, wrong version label), and the editing/commit steps. +--- + +# Preparing Release Changelog + +## Description +Prepare the CHANGELOG.md for a Damus release by running the changelog script, curating the output, and committing the result. Covers prerequisites, known pitfalls (duplicate entries, reverted commits, truncated annotations, wrong version label), and the editing/commit steps. + +## When to Use +- When preparing a new Damus release and the changelog needs to be updated +- When rebasing a release-changelog branch onto master and picking up new entries + +## Overview + +Damus uses a Python script (`devtools/changelog.py`) to assist in generating changelogs from git commit history. The changelog format follows [Keep a Changelog](https://keepachangelog.com/) conventions. + +## Prerequisites + +- Python 3 with `mako` and `requests` packages installed: + ``` + pip install mako requests + ``` +- Access to the full git history (not a shallow clone). If needed, run: + ``` + git fetch --unshallow origin + git fetch origin tag + ``` + +## Step 1: Identify the Commit Range + +Find the tag for the previous release (e.g. `v1.16.1`) and the commit hash for the new release candidate: + +```bash +git tag | sort -V | tail -20 # list recent tags +git rev-parse v1.16.1 # resolve a tag to its commit SHA +``` + +The commit range format is: `..` + +Example: `v1.16.1..5cb8a49` + +## Step 2: Run the Changelog Script + +```bash +python3 devtools/changelog.py v1.16.1..5cb8a49 +``` + +This scans git log for `Changelog-
:` annotations in commit messages, where `
` is one of: `added`, `changed`, `deprecated`, `fixed`, `removed`, `experimental`. + +**Note:** The script derives the version label from the second argument with the first character stripped (intended for tag names like `v1.17` → `1.17`). When passing a bare commit hash, the version will be wrong—fix it manually when editing `CHANGELOG.md`. + +## Step 3: Review and Clean Up the Raw Output + +The script's output is a starting point that typically needs manual curation: + +1. **Fix the version label:** Replace the auto-derived version (e.g. `cb8a49`) with the actual release version (e.g. `1.17`). + +2. **Remove duplicate entries:** Some commits may appear after the previous release tag in `master` history but were already included in that previous release's `CHANGELOG.md` (e.g. cherry-picked features from a release branch). Cross-check against the existing `CHANGELOG.md` and remove duplicates. + +3. **Remove reverted entries:** If a commit was later reverted, drop its `Changelog-*` entry. The revert commit may itself have a changelog entry explaining the fix—keep that instead. + +4. **Fix truncated entries:** Commit messages with a very long first line can cause `Changelog-Fixed:` entries to be truncated. Check the raw `git log` output to find the full intent, or look up the PR for context. + +5. **Verify the date:** Use the actual release date, not the commit date from the RC. + +## Step 4: Update CHANGELOG.md + +Prepend the new section to `CHANGELOG.md`, following the existing format: + +```markdown +## [1.17] - YYYY-MM-DD + +### Added + +- Feature description (Author Name) + + +### Changed + +- Change description (Author Name) + + +### Fixed + +- Fix description (Author Name) + + + +[1.17]: https://github.com/damus-io/damus/releases/tag/v1.17 +``` + +Keep the existing `[version]: URL` reference link at the bottom of each section. + +## Step 5: Commit the Changelog + +```bash +git add CHANGELOG.md +git commit -s -m "v1.17 changelog" +``` + +## Tips + +- **Changelog annotations in commits:** Contributors should include a line like `Changelog-Added: Description of feature` in their commit messages so the script can pick them up automatically. +- **`Changelog-None`:** Use this in commit messages that intentionally have no changelog entry (e.g. internal refactors, test fixes). The script ignores it. +- **Author attribution:** The script appends the git author name in parentheses. Keep these intact—they credit contributors. +- **Sections in the script** are: `added`, `changed`, `deprecated`, `fixed`, `removed`, `experimental`. Only sections that have at least one entry are rendered. diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bd00bc0..c89dccfe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,46 @@ +## [1.17] - 2026-06-03 + +### Added + +- Added Sentry error and diagnostics reporting to aid future quality improvements (Daniel D'Aquino) +- Automatic lossless storage optimization (Daniel D'Aquino) +- Added "Compact Database" button in Settings → Storage that reclaims unused space by compacting the NostrDB on the next app launch (Daniel D'Aquino) +- Full container file breakdown in storage settings export (Daniel D'Aquino) +- Show client name on events when available (alltheseas) +- Add client tag to published events to identify Damus (alltheseas) +- Storage usage statistics view in Settings (Daniel D'Aquino) +- Added GIF keyboard support (Damus Labs only) (ericholguin) +- Added detailed diagnostics reporting to GIF keyboard errors (Daniel D'Aquino) + + +### Changed + +- Redesigned media blur overlay to look like intentional protection instead of a broken state (alltheseas) +- Moved clear cache button to storage settings (Daniel D'Aquino) +- Clear stale LMDB readers on NostrDB init to prevent reader slot leakage and runaway storage usage (Daniel D'Aquino) +- Made GIF keyboard widely available to Purple users without need for an API key (Damus Labs) (Daniel D'Aquino) +- Restored signal indicator (William Casarin) + + +### Fixed + +- Fixed issue where mentioned profile names would not render properly (Daniel D'Aquino) +- Fix stale relay list causing inability to disconnect relays (alltheseas) +- Fixed issue where temporary files would not get cleaned up (Daniel D'Aquino) +- Wallet view now immediately clears stale data when switching wallets (Daniel D'Aquino) +- Fixed issue where the app could display an error message when using another NWC wallet in parallel (Daniel D'Aquino) +- Fix memory corruption crash when creating empty filters (Daniel D'Aquino) +- Fixed startup crash when app performs long-running compaction procedure (Daniel D'Aquino) +- Fixed database transaction leak that could lead to higher storage usage (Daniel D'Aquino) +- Fix GIF picker grid tap hitbox selecting adjacent item (Daniel D'Aquino) +- Fixed issues that could cause the signal indicator to become outdated (William Casarin) +- Fixed issue where some of the user's own notes would not show up in their own profile (Daniel D'Aquino) +- Fixed an issue where posts would not appear on the user's own timeline if they did not follow themselves (Daniel D'Aquino) + + +[1.17]: https://github.com/damus-io/damus/releases/tag/v1.17 + + ## [1.16.1] - 2026-02-17 ### Added