Add changelog

Git history is not for everyone. Let's introduce a user-oriented change
log. Ideally, this file should be updated incrementally when adding
a new feature. I have added contributors guidelines in README.md.

Update release.sh to automatically generate the release tag message with
the unreleased changes from the changelog.

Link: https://keepachangelog.com/en/1.0.0/
Signed-off-by: Robin Jarry <robin@jarry.cc>
This commit is contained in:
Robin Jarry 2022-07-12 12:40:07 +02:00
parent ea718fe146
commit 45e6e89b24
3 changed files with 243 additions and 5 deletions

228
CHANGELOG.md Normal file
View File

@ -0,0 +1,228 @@
# ChangeLog for the aerc project
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased](https://git.sr.ht/~rjarry/aerc/log/master)
### Added
- Read-only mbox backend support.
- Import/Export mbox files with `:import-mbox` and `:export-mbox`.
- `address-book-cmd` can now also be specified in `accounts.conf`.
### Changed
- Aerc will no longer exit while a send is in progress.
- When scrolling through large folders, client side threading is now debounced
to avoid lagging.
- The provided awk filters are now POSIX compliant and should work on MacOS and
BSD.
### Fixed
- Transient crashes when closing tabs.
- Binding a command to `<c-i>` and `<c-m>`.
- Reselection after delete and scroll when client side threading is enabled.
- `check-mail` now works when the default folder is empty on startup.
## [0.11.0](https://git.sr.ht/~rjarry/aerc/refs/0.11.0) - 2022-07-11
### Added
- Deal with calendar invites with `:accept`, `:accept-tentative` and `:decline`.
- IMAP cache support.
- Maildir++ support.
- Background mail count polling for all folders.
- Authentication-Results display (DKIM, SPF & DMARC).
- Folder-specific key bindings.
- Customizable PGP icons.
- Open URLs from messages with `:open-link`.
- Forward all individual attachments with `:forward -A`.
### Changed
- Messages are now deselected after performing a command. Use `:remark` to
reselect the previously selected messages and chain other commands.
- Pressing `<Enter>` in the default postpone folder now runs `:recall` instead
of `:view`.
- PGP signed/encrypted indicators have been reworked.
- The `threading-enabled` option now affects if message threading should be
enabled at startup. This option no longer conflicts with `:toggle-threads`.
### Fixed
- `:pipe`, `:save` and `:open` for signed and/or encrypted PGP messages.
- Messages that have failed `gpg` encryption/signing are no longer sent.
- Recalling attachments from drafts.
## [0.10.0](https://git.sr.ht/~rjarry/aerc/refs/0.10.0) - 2022-05-07
### Added
- Format specifier for compact folder names in dirlist.
- Customizable, per-folder status line.
- Allow binding commands to `<` and `>` keys.
- Optional filter to parse ICS files (uses `python3` vobject library).
- Save all attachments with `:save -a`.
- Native `gpg` support.
- PGP `auto-sign` and `opportunistic-encrypt` options.
- Attach your PGP public key to a message with `:attach-key`.
### Fixed
- Stack overflow with faulty `References` headers when `:toggle-threads` is
enabled.
## [0.9.0](https://git.sr.ht/~rjarry/aerc/refs/0.9.0) - 2022-03-21
### Added
- Allow `:pipe` on multiple selected messages.
- Client side on-the-fly message threading with `:toggle-threads` (conflicts
with existing `threading-enabled` option).
- Per-account, better status line.
- Consecutive, incremental `:search` and `:filter` support.
- Foldable tree for directory list.
- `Bcc` and `Body` in `mailto:` handler.
- Fuzzy tab completion for commands and folders.
- Key pass though mode for the message viewer to allow searching with `less`.
### Changed
- Use terminfo for setting terminal title.
## [0.8.2](https://git.sr.ht/~rjarry/aerc/refs/0.8.2) - 2022-02-19
### Added
- New `colorize` filter with diff, multi-level quotes and URL coloring.
- XDG desktop entry to use as default `mailto:` handler.
- IMAP automatic reconnect.
- Recover drafts after crash with `:recover`.
- Show possible actions with user configured bindings when reviewing a message.
- Allow setting any header in email templates.
- Improved `:change-folder` responsiveness.
- New `:compose` option to never include your own address when replying.
### Changed
- Templates and style sets are now searched from multiple directories. Not from
a single hard-coded folder set at build time. In addition of the configured
`PREFIX/share/aerc/*` folders at build time, aerc now also looks into
`~/.config/aerc/*`, `~/.local/share/aerc/*`, `/usr/local/share/aerc/*` and
`/usr/share/aerc/*`
- A warning is displayed when trying to configure account specific bindings
for a non-existent account.
### Fixed
- `Ctrl-h` binding not working.
- Open files leaks for maildir and notmuch.
## 0.8.1 - 2022-02-20 [YANKED]
## 0.8.0 - 2022-02-19 [YANKED]
## [0.7.1](https://git.sr.ht/~rjarry/aerc/refs/0.7.1) - 2022-01-15
### Added
- IMAP low level TCP settings.
- Experimental IMAP server-side and notmuch threading.
- `:recall` now works from any folder.
- PGP/MIME signing and encryption.
- Account specific bindings.
### Fixed
- Address book completion for multiple addresses.
- Maildir external mailbox changes monitoring.
## 0.7.0 - 2022-01-14 [YANKED]
## [0.6.0](https://git.sr.ht/~rjarry/aerc/refs/0.6.0) - 2021-11-09
*The project was forked to https://git.sr.ht/~rjarry/aerc.*
### Added
- Allow more modifiers for key bindings.
- Dynamic dates in message list.
- Match any header in filters specifiers.
### Fixed
- Don't read entire messages into memory.
## [0.5.0](https://git.sr.ht/~sircmpwn/aerc/refs/0.5.0) - 2020-11-10
### Added
- Remove folder with `:rmdir`.
- Configurable style sets.
- UI context aware options and styling.
- oauthbearer support for SMTP.
- IMAP sort support.
## [0.4.0](https://git.sr.ht/~sircmpwn/aerc/refs/0.4.0) - 2020-05-20
### Added
- Address book completion.
- Initial PGP support using an internal key store.
- Messages can now be selected with `:mark`.
- Drafts handing with `:postpone` and `:recall`.
- Tab management with `:move-tab` and `:pin-tab`.
- Add arbitrary headers in the compose window with `:header`.
- Interactive prompt with `:choose`.
- Notmuch labels improvements.
- Support setting some headers in message templates.
### Changed
- `aerc.conf` ini parser only uses `=` as delimiter. `:` is now ignored.
## [0.3.0](https://git.sr.ht/~sircmpwn/aerc/refs/0.3.0) - 2019-11-21
### Added
- A new notmuch backend is available. See `aerc-notmuch(5)` for details.
- Message templates now let you change the default reply and forwarded message
templates, as well as add new templates of your own. See `aerc-templates(7)`
for details.
- Mouse input is now optionally available and has been rigged up throughout the
UI, set `[ui]mouse-enabled=true` in `aerc.conf` to enable.
- `:cc` and `:bcc` commands are available in the message composer.
- Users may now configure arbitrary message headers for editing in the message
composer.
## [0.2.0](https://git.sr.ht/~sircmpwn/aerc/refs/0.2.0) - 2019-07-29
### Added
- Maildir & sendmail transport support
- Search and filtering are supported (via `/` and `\` by default)
- `aerc mailto:...` now opens the composer in running aerc instance
- Initial tab completion support has been added
- Improved headers and addressing in the composer and message view
- Message attachments may now be added in the composer
- Commands can now be run in the background with `:exec` or `:pipe -b`
- A new triggers system allows running aerc commands when new emails arrive,
which may (for example) be used to send desktop notifications or move new
emails to a folder
### Changed
- The filters have been rewritten in awk, dropping the Python dependencies.
`w3m` and `dante` are both still required for HTML email, but the HTML filter
has been commented out in the default config file.
- The default keybindings and configuration options have changed considerably,
and users are encouraged to pull the latest versions out of `/usr/share` and
re-apply their modifications to them, or to at least review the diff with
their current configurations. aerc may not behave properly without taking
this into account.
## [0.1.0](https://git.sr.ht/~sircmpwn/aerc/refs/0.1.0) - 2019-06-03
Initial release.

View File

@ -116,6 +116,10 @@ you did not break anything.
- If applicable, update unit tests.
- If adding a new feature, please consider adding new tests.
- Do not forget to update the docs.
- If your commit brings visible changes for end-users, add an entry in the
*Unreleased* section of the
[CHANGELOG.md](https://git.sr.ht/~rjarry/aerc/tree/master/item/CHANGELOG.md)
file.
Once you are happy with your work, you can create a commit (or several
commits). Follow these general rules:
@ -199,3 +203,5 @@ Submit *confirmed* bug reports and *confirmed* feature requests on
[https://todo.sr.ht/~rjarry/aerc](https://todo.sr.ht/~rjarry/aerc).
[License](https://git.sr.ht/~rjarry/aerc/tree/master/item/LICENSE).
[Change log](https://git.sr.ht/~rjarry/aerc/tree/master/item/CHANGELOG.md).

View File

@ -9,16 +9,20 @@ read -rp "next tag ($next_tag)? " n
if [ -n "$n" ]; then
next_tag="$n"
fi
tag_url="https://git.sr.ht/~rjarry/aerc/refs/$next_tag"
echo "======= Updating version in Makefile..."
echo "======= Creating release commit..."
sed -i Makefile -e "s/$prev_tag/$next_tag/g"
git add Makefile
sed -i CHANGELOG.md -e "s|^## \[Unreleased\].*|&\n\n## [$next_tag]($tag_url) - $(date +%Y-%m-%d)|"
git add Makefile CHANGELOG.md
git commit -sm "Release version $next_tag"
echo "======= Creating tag..."
git tag --edit --sign \
changes=$(sed -n "/^## \[$next_tag\].*/,/^## \[$prev_tag\].*/{//!p;}" \
CHANGELOG.md | sed '1d;$d;s/^#\+/#/' )
git -c core.commentchar='%' tag --edit --sign \
-m "Release $next_tag highlights:" \
-m "$(git log --format='- %s' $prev_tag..)" \
-m "$changes" \
-m "Thanks to all contributors!" \
-m "~\$ git shortlog -sn $prev_tag..$next_tag
$(git shortlog -sn $prev_tag..)" \
@ -46,7 +50,7 @@ Hi all,
I am glad to announce the release of aerc $next_tag.
https://git.sr.ht/~rjarry/aerc/refs/$next_tag
$tag_url
$(git tag -l --format='%(contents)' "$next_tag" | sed -n '/BEGIN PGP SIGNATURE/q;p')
EOF