From f55bbbfb9fce07feb3f91476cfee5f6ca5c67e90 Mon Sep 17 00:00:00 2001 From: Robin Candau Date: Wed, 3 Jul 2024 22:31:11 +0200 Subject: [PATCH] chore(changelog): Add a changelog file (#190) Add a CHANGELOG.md file to keep a proper changelog (outside of the GitHub releases) and a git-cliff config to maintain it over time Partially addresses https://github.com/Antiz96/arch-update/issues/183 --- .github/workflows/mdl_style.rb | 3 + CHANGELOG.md | 386 +++++++++++++++++++++++++++++++++ cliff.toml | 97 +++++++++ 3 files changed, 486 insertions(+) create mode 100644 CHANGELOG.md create mode 100644 cliff.toml diff --git a/.github/workflows/mdl_style.rb b/.github/workflows/mdl_style.rb index 33ceabd..3b457dd 100644 --- a/.github/workflows/mdl_style.rb +++ b/.github/workflows/mdl_style.rb @@ -6,3 +6,6 @@ # Allow inline HTML exclude_tag :html + +# Allow having multiple headers with the same content (for CHANGELOG.md) +exclude_rule 'MD024' diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..3dafb86 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,386 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## [2.1.0](https://github.com/Antiz96/arch-update/releases/tag/v2.1.0) - 2024-06-20 + +### Features + +- Add support for systemd run0 by @Antiz96 in +- Add an option in the configuration file to explicitly set which command to use for privilege elevation (`sudo`, `doas` or `run0`) by @Antiz96 in +- Add the `--show-config` option that displays the current configuration file by @Antiz96 in + +### Fixes + +- Assign the STATE_FILE var before it is accessed in arch-update-tray.py script by @Antiz96 in + +## [2.0.2](https://github.com/Antiz96/arch-update/releases/tag/v2.0.2) - 2024-05-19 + +### Features + +- Add a right click context menu to the systray applet (to "quit/exit" it and run arch-update) by @trigg in +- Make the reboot countdown after a kernel upgrade showing remaining seconds in real time by @Antiz96 in + +### Improvements/Fixes + +- Add the method to force `arch-update` to run in a specific terminal emulator via the desktop file to the documentation (as workaround for people using a terminal emulator not [known/supported](https://gitlab.gnome.org/GNOME/glib/-/blob/main/gio/gdesktopappinfo.c#L2694) by `gio` for whom cliking on the systray applet icon does nothing) by @Antiz96 in +- Improve documentation regarding the check function and how to modify the check cycle by @Antiz96 in +- Use the 'state_up_to_date' function to initialize the state file if it does not exists by @Antiz96 in +- Make Arch-Update also look in XDG_DATA_HOME/XDG_DATA_DIRS for translation files and example config by @Antiz96 in +- Fix wording in Makefile by @Antiz96 in +- Fix typos in READMEs by @Antiz96 in + +## [2.0.1](https://github.com/Antiz96/arch-update/releases/tag/v2.0.1) - 2024-05-13 + +### Improvements/Fixes + +- Fix a typo in the FR documentation by @Antiz96 in +- Make systray applet also searching in XDG_DATA_HOME & XDG_DATA_DIRS when looking for the .desktop file by @Antiz96 and @trigg in + +## [2.0.0](https://github.com/Antiz96/arch-update/releases/tag/v2.0.0) - 2024-05-10 + +### Features + +- Add a systray applet by @trigg in and + +### Improvements + +- Move icons into hicolor theme by @trigg in +- Drop icon changing for the .desktop file and remove superfluous icons/states by @Antiz96 in +- New icons set by @Tearling27 in and +- Simplification of the README for an easier and more fluid reading + +### Important notes + +- People running Wayland additionally need the `qt6-wayland` package for the systray applet to work properly. +- For people using the Arch-Update AUR package : + The following error is expected when using `arch-update` to update from v1.X.X to v2.X.X: `cp: cannot stat '/usr/share/icons/arch-update/arch-update_up-to-date.svg': No such file or directory`. It will only happen once during the switch from v1 to v2 and will not happen again after that :) +- For people installing Arch-Update [from source](https://github.com/Antiz96/arch-update?tab=readme-ov-file#from-source): + First uninstall the current version running on your system (via `sudo make uninstall`) before downloading this release's archive (or pulling the repo locally) and re-installing Arch-Update (via `sudo make install`), otherwise you'll keep unnecessary residues of the previous version on your system. Also make sure to install the newly required dependencies listed in the installation instructions. + +## [1.15.0](https://github.com/Antiz96/arch-update/releases/tag/v1.15.0) - 2024-05-01 + +### Features + +- Introduce the `--gen-config` option that allows to generate an example configuration file by @Antiz96 in + +## [1.14.4](https://github.com/Antiz96/arch-update/releases/tag/v1.14.4) - 2024-04-18 + +### Improvements + +- Add an explicit message that the script is looking for updates by @Antiz96 in + +## [1.14.3](https://github.com/Antiz96/arch-update/releases/tag/v1.14.3) - 2024-04-14 + +### Improvements/Fixes + +- Explicitly set color option of wrapped tools in the main script by @Antiz96 in + +## [1.14.2](https://github.com/Antiz96/arch-update/releases/tag/v1.14.2) - 2024-04-13 + +### Improvements + +- Add a trust path for users by @Antiz96 in + +### Fixes + +- Fix a typo in ZSH completions by @Antiz96 in + +## [1.14.1](https://github.com/Antiz96/arch-update/releases/tag/v1.14.1) - 2024-03-24 + +### Improvement + +- Replace the previously sent desktop notification instead of sending a new one during the check function by @Antiz96 in + +### Other + +- [Release Prep] v1.14.1 by @Antiz96 in + +## [1.14.0](https://github.com/Antiz96/arch-update/releases/tag/v1.14.0) - 2024-03-22 + +### Features + +- Add the `-D/--debug` argument to display debug traces by @Antiz96 in + +### Other + +- [Release Prep] v1.14.0 by @Antiz96 in + +## [1.13.0](https://github.com/Antiz96/arch-update/releases/tag/v1.13.0) - 2024-03-21 + +### Features + +- Add the new `-d/--devel` option to include AUR development packages updates by @derethil in + +### Improvements/Fixes + +- Add the `-l/--list` option to shell completions by @Sparkway in +- Make the pending kernel update detection more robust (for EndeavourOS) by @Antiz96 in +- Fix a small typo in the main script by @Antiz96 in + +### Other + +- [Release Prep] v1.13.0 by @Antiz96 in + +## [1.12.2](https://github.com/Antiz96/arch-update/releases/tag/v1.12.2) - 2024-03-12 + +### Features + +- Add the new `-l/--list` option to simply get the list of pending updates by @Antiz96 in + +### Other + +- [Release Prep] v1.12.2 by @Antiz96 in + +## [1.12.1](https://github.com/Antiz96/arch-update/releases/tag/v1.12.1) - 2024-02-29 + +### Features + +- Add shell completions for bash, zsh and fish by @Antiz96 in + +### Other + +- [Release Prep] v1.12.1 by @Antiz96 in + +## [1.12.0](https://github.com/Antiz96/arch-update/releases/tag/v1.12.0) - 2024-02-25 + +### Features + +- Introduce the `-n/--news` option that allows to display latest Arch News by @Antiz96 in +- Allow to customize the number of Arch news to display before updating and with the `-n/--news` option by @Antiz96 in +- Only display Arch news if a new one has been published since the last run by @Antiz96 in + +### Improvements + +- Improve documentation by @Antiz96 in & + +### Other + +- [Release Prep] v1.12.0 by @Antiz96 in + +## [1.11.0](https://github.com/Antiz96/arch-update/releases/tag/v1.11.0) - 2024-02-09 + +### Features + +- French translation for the main script by @Antiz96 in +- French translation for the documentation (README + Man pages) by @Antiz96 & @jfchadeyron in + +### Improvements/Fixes + +- Make Flatpak packages updates detection more robust to avoid false positives by @Antiz96 in +- Improvement the packaging method by @Antiz96 in + +### Other + +- Licensing: Precise that Arch-Update is licensed under GPL3+ by @Antiz96 in +- [Release Prep] v1.11.0 by @Antiz96 in + +## [1.10.1](https://github.com/Antiz96/arch-update/releases/tag/v1.10.1) - 2024-01-14 + +### Fixes + +- Correction of documentation regarding how to change the auto-check cycle by @Antiz96 in +- Update url for systemd Time Spans in documentation by @Antiz96 in + +### Other + +- Harmonize name as 'Arch-Update' everywhere by @Antiz96 in +- [Release Prep] v1.10.1 by @Antiz96 in + +## [1.10.0](https://github.com/Antiz96/arch-update/releases/tag/v1.10.0) - 2024-01-06 + +### Features + +- Add colors to the output of the script by @Antiz96 in +- Add an optional configuration file to enable/disable or modify certain options by @Antiz96 in + +### Improvements + +- Switch to a self-hosted runner for CI-CD + Add actionlint to CI by @Antiz96 in +- Use complete version ref in man page by @wmemcpy in +- Update documentation to advice using 'systemctl edit' to modify the auto-check cycle by @Antiz96 in + +### Fixes + +- Add missing documentation for the old cached packages handling and pending kernel update processing features in the help message by @Antiz96 in + +### Other + +- [Release Prep] v1.10.0 by @Antiz96 in +- Improve readability of documentation in README by @Antiz96 in + +## [1.9.1](https://github.com/Antiz96/arch-update/releases/tag/v1.9.1) - 2023-12-04 + +### Fixes + +- Fix false positive 'pending kernel update' messages on EndeavourOS with systemd-boot by @Antiz96 in + +### Other + +- [Release Prep] Bump the script to v1.9.1 by @Antiz96 in + +## [1.9.0](https://github.com/Antiz96/arch-update/releases/tag/v1.9.0) - 2023-12-03 + +### Features + +- Check if there are old or uninstalled cached packages in pacman's cache and offers to remove them if there are by @Antiz96 in (suggested by @Temet79 in + +### Fixes + +- Add the missing space in the 'kernel_reboot' function to keep a consistent style by @Antiz96 in + +### Other + +- [Release Prep] Bump the script to v1.9.0 by @Antiz96 in + +## [1.8.0](https://github.com/Antiz96/arch-update/releases/tag/v1.8.0) - 2023-12-01 + +### Features + +- If both paru and yay are installed, use paru by default by @Antiz96 in +- Check if a pending kernel update requires a reboot to be applied and, if there's one, offer to reboot by @Antiz96 in + +### Fixes + +- Do not keep the `current_check` file in addition to the `last_check` one after the run of the check() function is finished as only the former is interesting/relevant to keep by @Antiz96 in + +### Other + +- Add a link to the YouTube review of arch-update we made with @Cardiacman13 to the README (review in french) by @Antiz96 in +- Restructuring the functions' calls in the script to make it more readable and easier to evolve/work with by @Antiz96 in +- [Release Prep] Bump the script to v1.8.0 by @Antiz96 in + +## [1.7.0](https://github.com/Antiz96/arch-update/releases/tag/v1.7.0) - 2023-11-24 + +- Only send desktop notification if the list of available updates differs from the last check by @Antiz96 in + +## [1.6.2](https://github.com/Antiz96/arch-update/releases/tag/v1.6.2) - 2023-11-21 + +- Make showing the version changes the default behaviour when listing available updates by @Antiz96 in +- Make vim an optional dependency by @Antiz96 in + +## [1.6.1](https://github.com/Antiz96/arch-update/releases/tag/v1.6.1) - 2023-11-10 + +- Bugfix: Only print "No Flatpak unused package found" if flatpak is actually installed by @Antiz96 in + +## [1.6.0](https://github.com/Antiz96/arch-update/releases/tag/v1.6.0) - 2023-11-10 + +- Add Flatpak packages support (both for update and remove unused packages) by @Antiz96 in +- Add styling to differentiate each steps of the main script more easily by @Antiz96 in + +## [1.5.7](https://github.com/Antiz96/arch-update/releases/tag/v1.5.7) - 2023-07-16 + +- Show more relevant info in a more readable way during the print of a news by @Antiz96 in +- Add a '[NEW]' tag to each Arch news that are newer than 15 days by @Antiz96 in +- Update documentation with the recently added features by @Antiz96 in +- Bump the main script's version by @Antiz96 in + +## [1.5.6](https://github.com/Antiz96/arch-update/releases/tag/v1.5.6) - 2023-06-24 + +- Add codespell to the test suite ran by GH action by @Antiz96 in +- Typo fixes by @Antiz96 in +- Bump the main script version by @Antiz96 in + +## [1.5.5](https://github.com/Antiz96/arch-update/releases/tag/v1.5.5) - 2023-06-14 + +- Filter all special characters/symbols when parsing the Arch news urls to avoid ending with a wrong url by @Antiz96 in + +## [1.5.4](https://github.com/Antiz96/arch-update/releases/tag/v1.5.4) - 2023-06-13 + +- Add a GitHub action to run shellcheck on pull requests by @Antiz96 in +- Add basic but useful information at the top of the main script by @Antiz96 in +- Refactoring the script with functions by @Antiz96 in +- Add a clear and concise help message (instead of simply printing the man page) for the --help option by @Antiz96 in +- Use separated exit codes for each type of errors by @Antiz96 in +- Switch from hq to htmlq to print Arch news during the update operation by @Antiz96 in +- Bump the script to v1.5.4 by @Antiz96 in + +## [1.5.3](https://github.com/Antiz96/arch-update/releases/tag/v1.5.3) - 2023-04-04 + +- Revert the required fix for the 'checkupdate' issue when using yay (implemented in #22) as it has been fixed/reverted by upstream () + +## [1.5.2](https://github.com/Antiz96/arch-update/releases/tag/v1.5.2) - 2023-04-03 + +- Fix the 'checkupdate' issue when using yay by @Antiz96 in + +## [1.5.1](https://github.com/Antiz96/arch-update/releases/tag/v1.5.1) - 2023-02-10 + +- Make use of pacdiff to search for pacnew files by @Antiz96 in + +## [1.5.0](https://github.com/Antiz96/arch-update/releases/tag/v1.5.0) - 2023-02-09 + +- Add removing orphan packages support by @Antiz96 in +- Make searching and processing orphan packages and pacnew files independent from updates by @Antiz96 in +- Make the pacnew processing feature lists pacnew files before offering to process them by @Antiz96 in +- Various improvements/optimisation to the main script, the README and the documentation by @Antiz96 in +- Bump the script to v1.5.0 by @Antiz96 in + +## [1.4.2](https://github.com/Antiz96/arch-update/releases/tag/v1.4.2) - 2022-11-30 + +- Bump the script's version to v1.4.2 by @Antiz96 in + +## [1.4.1](https://github.com/Antiz96/arch-update/releases/tag/v1.4.1) - 2022-11-28 + +- Corrected the arch-update.svg default icon by @Antiz96 in + +## [1.4.0](https://github.com/Antiz96/arch-update/releases/tag/v1.4.0) - 2022-11-26 + +- Add support for doas by @Antiz96 in +- Add support for pacdiff to be able to process pacnew/pacsave files after an update by @Antiz96 in +- Add a feature to read the latest Arch Linux news before updating the system by @Antiz96 in + +## [1.3.2](https://github.com/Antiz96/arch-update/releases/tag/v1.3.2) - 2022-09-15 + +- The repo has been restructured to better suit best practices. +- New install/uninstall method: The install.sh and uninstall.sh scripts have been removed in favor of a Makefile; which is cleaner, more standard and way easier to maintain. +- The wiki pages has been merged directly into the README to centralize information (the wiki has therefore been deleted). +- The "dependencies" (and overall) documentation has been improved. +- A LICENSE file has been added to the repo (GLP3). + +## [1.3.1](https://github.com/Antiz96/arch-update/releases/tag/v1.3.1) - 2022-06-29 + +- Added some information to the man page/documentation. +- Typo fixes. + +## [1.3.0](https://github.com/Antiz96/arch-update/releases/tag/v1.3.0) - 2022-06-27 + +### New features + +- Now also supports [paru](https://aur.archlinux.org/packages/paru) as an optional dependency for the AUR support (in addition to [yay](https://aur.archlinux.org/packages/yay)). +- New [-v (or --version)](https://github.com/Antiz96/arch-update/wiki/Documentation#-v---version) option to print the current version. + +### Code changes + +- Messages printed by Arch-Update that relates to errors are now printed in the error output (2) instead of the standard output (which is more conventional). +- The install/update script has been completely re-written in a more elegant way. It now checks the integrity of the Arch-Update archive when performing an install or an update (based on its sha256 sum). +- The uninstall script has been completely re-written in a more elegant way. +- Miscellaneous little changes and fixes to the main Arch-Update script. + +### Various changes + +- The repository structure and the installation/update method has been modified in order to get cleaner, more conventional and secured, and easier to maintain. +- The man page is now zipped during the installation process (automatically done by pacman for the [AUR package](https://aur.archlinux.org/packages/arch-update)) instead of being already zipped in the archive. +- The versions number now follows the [semantic versioning principles](https://semver.org/). + +## [1.2.4](https://github.com/Antiz96/arch-update/releases/tag/v1.2.4) - 2022-04-29 + +- Minor fixes + +## [1.2.3](https://github.com/Antiz96/arch-update/releases/tag/v1.2.3) - 2022-04-21 + +- Minor fixes + +## [1.2.2](https://github.com/Antiz96/arch-update/releases/tag/v1.2.2) - 2022-03-31 + +- Corrected and added some info in the man page + +## [1.2.1](https://github.com/Antiz96/arch-update/releases/tag/v1.2.1) - 2022-03-31 + +- Corrected and added some info in the man page + +## [1.2](https://github.com/Antiz96/arch-update/releases/tag/v1.2) - 2022-03-30 + +- Added correlation between "pkgver" and "source" in the PKGBUILD +- The archive is now uploaded as a release and not directly in the git repo + + diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 0000000..10fb51f --- /dev/null +++ b/cliff.toml @@ -0,0 +1,97 @@ +# git-cliff ~ default configuration file +# https://git-cliff.org/docs/configuration + +[remote.github] +owner = "Antiz96" +repo = "arch-update" + +[changelog] +# template for the changelog footer +header = """ +# Changelog\n +All notable changes to this project will be documented in this file.\n +""" +# template for the changelog body +# https://keats.github.io/tera/docs/#introduction +body = """ +{%- macro remote_url() -%} + https://github.com/Antiz96/arch-update +{%- endmacro -%} + +{% macro print_commit(commit) -%} + - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\ + {% if commit.breaking %}[**breaking**] {% endif %}\ + {{ commit.message | upper_first }} - \ + ([{{ commit.id | truncate(length=7, end="") }}]({{ self::remote_url() }}/commit/{{ commit.id }}))\ + {% if commit.github.username %} by @{{ commit.github.username }}{%- endif -%} +{% endmacro -%} + +{% if version %}\ + ## [{{ version | trim_start_matches(pat="v") }}]\ + ({{ self::remote_url() }}/releases/tag/{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }} +{% else %}\ + ## [unreleased] +{% endif %}\ + +{% for group, commits in commits | group_by(attribute="group") %} + ### {{ group | striptags | trim | upper_first }} + {% for commit in commits + | filter(attribute="scope") + | sort(attribute="scope") %} + {{ self::print_commit(commit=commit) }} + {%- endfor -%} + {% raw %}\n{% endraw %}\ + {%- for commit in commits %} + {%- if not commit.scope -%} + {{ self::print_commit(commit=commit) }} + {% endif -%} + {% endfor -%} +{% endfor %}\n +""" +# template for the changelog footer +footer = """ + +""" +# remove the leading and trailing s +trim = true +# postprocessors +postprocessors = [ + { pattern = '', replace = "https://github.com/Antiz96/arch-update" }, # replace repository URL +] + +[git] +# parse the commits based on https://www.conventionalcommits.org +conventional_commits = true +# filter out the commits that are not conventional +filter_unconventional = false +# process each line of a commit as an individual commit +split_commits = false +# regex for preprocessing the commit messages +commit_preprocessors = [ + { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](/pull/${2}))" }, +] +# regex for parsing and grouping commits +commit_parsers = [ + { message = "^feat", group = "Features" }, + { message = "^fix", group = "Fixes" }, + { message = "^doc", group = "Documentation" }, + { message = "^style", group = "Styling" }, + { message = "^chore\\(release\\): v", skip = true }, + { message = "^chore", group = "Miscellaneous" }, +] +# protect breaking changes from being skipped due to matching a skipping commit_parser +protect_breaking_commits = false +# filter out the commits that are not matched by commit parsers +filter_commits = false +# regex for matching git tags +# tag_pattern = "v[0-9].*" +# regex for skipping tags +# skip_tags = "" +# regex for ignoring tags +# ignore_tags = "" +# sort the tags topologically +topo_order = false +# sort the commits inside sections by oldest/newest order +sort_commits = "newest" +# limit the number of commits included in the changelog. +# limit_commits = 42