Skip to content

MystikReasons/archlog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

227 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

archlog

Description

archlog is a simple Python CLI tool that fetches upgradable official Arch Linux packages and retrieves changelogs for each. It distinguishes between minor and major Arch package updates.

  • Minor updates usually contain only Arch-specific changes (e.g., rebuilds, packaging changes).
  • Major updates include both Arch-specific commits and upstream version changes (e.g., new Firefox version).

Currently, only official Arch packages are supported. AUR, Flatpak, and other sources are not supported.

Table of Content

Minor release example

"gdb": {
        "description": "The GNU Debugger",
        "base package": "-",
        "current version": "15.2-1",
        "new version": "15.2-2",
        "versions": [
            {
                "version-tag": "15.2-2",
                "release-type": "minor",
                "compare-url-tags-arch": "https://gitlab.archlinux.org/archlinux/packaging/packages/gdb/-/compare/15.2-1...15.2-2",
                "compare-url-tags-origin": "- Not applicable, minor release -",
                "changelog": {
                    "changelog Arch package": [
                        {
                            "commit message": "Re-enable LTO",
                            "commit URL": "https://gitlab.archlinux.org/archlinux/packaging/packages/gdb/-/commit/..."
                        },
                        {
                            "commit message": "upgpkg: 15.2-2: re-add lto",
                            "commit URL": "https://gitlab.archlinux.org/archlinux/packaging/packages/gdb/-/commit/..."
                        }
                    ],
                    "changelog origin package": [
                        "- Not applicable, minor release -"
                    ]
                }
            }
        ]
    }

Major release example

"xorg-server": {
        "description": "Xorg X server",
        "base package": "-",
        "current version": "21.1.13-1",
        "new version": "21.1.14-1",
        "versions": [
            {
                "version-tag": "21.1.14-1",
                "release-type": "major",
                "compare-url-tags-arch": "https://gitlab.archlinux.org/archlinux/packaging/packages/xorg-server/-/compare/21.1.13-1...21.1.14-1",
                "compare-url-tags-origin": "https://gitlab.freedesktop.org/xorg/xserver/-/compare/xorg-server-21.1.13...xorg-server-21.1.14",
                "changelog": {
                    "changelog Arch package": [
                        {
                            "commit message": "upgpkg: 21.1.14-1",
                            "commit URL": "https://gitlab.archlinux.org/archlinux/packaging/packages/xorg-server/-/commit/..."
                        }
                    ],
                    "changelog origin package": [
                        {
                            "commit message": "Don't crash if the client argv or argv[0] is NULL.",
                            "commit URL": "https://gitlab.freedesktop.org/xorg/xserver/-/commit/..."
                        },
                        {
                            "commit message": "Return NULL in *cmdname if the client argv or argv[0] is NULL",
                            "commit URL": "https://gitlab.freedesktop.org/xorg/xserver/-/commit/..."
                        },
                        {
                            "commit message": "Fix a double-free on syntax error without a new line.",
                            "commit URL": "https://gitlab.freedesktop.org/xorg/xserver/-/commit/..."
                        },
                        {
                            "commit message": "xkb: Fix buffer overflow in _XkbSetCompatMap()",
                            "commit URL": "https://gitlab.freedesktop.org/xorg/xserver/-/commit/..."
                        },
                    ]
                }
            }
        ]
    }

Installation

You can either clone or download the repository manually:

git clone "https://github.com/MystikReasons/archlog.git"

Or download and extract via curl:

rm -rf archlog && curl -L "https://github.com/MystikReasons/archlog/archive/refs/heads/master.zip" -o "./archlog.zip" && unzip "./archlog.zip" -d "." && mv "archlog-master" "archlog" && rm -rf "./archlog.zip"

Move into the newly created directory:

cd archlog

Then install the tool using (python-pipx needs to be installed on your system):

pipx install .

You can now remove the archlog folder if you wish too.

Beware: It is recommended not to clone the project directly into your /home/ folder, since the generated changelog will also be stored there and may get deleted together with the project files if you remove the downloaded content.

Start the CLI with:

archlog

If the archlog command is not available after installation, your system might not have ~/.local/bin in its PATH.

To fix this, run:

pipx ensurepath

Then restart your terminal or run:

source ~/.bashrc   # or ~/.zshrc depending on your shell

Update

To update, you can download or pull the appropriate branch from this repository, and run the following command inside the downloaded archlog folder:

pipx install . --force

You can now remove the archlog folder if you wish too.

rm -r archlog

Development Setup

It is recommended to use a virtual environment for development.

Create a virtual environment:

python -m venv .venv

Activate the virtual environment:

source .venv/bin/activate

Install dev dependencies:

pip install -e .[dev]

The project uses the black formatter.

Please format your contributions before commiting them.

python -m black .

Support

If you enjoy this project and would like to support its development, feel free to donate! Your support means a lot. 🙏

About

A tool to view and track changelogs for Arch Linux packages, displaying version updates, intermediate tags, and upstream changes, helping users monitor and understand package updates

Topics

Resources

License

Stars

8 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages