Skip to content

Comments

feat: replace aw-notify (Python) with aw-notify-rs (Rust)#1210

Closed
TimeToBuildBob wants to merge 1 commit intoActivityWatch:masterfrom
TimeToBuildBob:feat/replace-aw-notify-with-rs
Closed

feat: replace aw-notify (Python) with aw-notify-rs (Rust)#1210
TimeToBuildBob wants to merge 1 commit intoActivityWatch:masterfrom
TimeToBuildBob:feat/replace-aw-notify-with-rs

Conversation

@TimeToBuildBob
Copy link
Contributor

@TimeToBuildBob TimeToBuildBob commented Feb 22, 2026

Summary

Replaces the aw-notify Python submodule (ErikBjare/aw-notify) with aw-notify-rs (0xbrayo/aw-notify-rs), a Rust reimplementation that provides identical notification behavior with better performance and native compilation.

Requested by @0xbrayo.

Changes

  • Remove aw-notify submodule (ErikBjare/aw-notify, Python/poetry-based)
  • Add aw-notify-rs submodule (0xbrayo/aw-notify-rs, Rust/cargo-based)
  • Update Makefile: replace aw-notify with aw-notify-rs in SUBMODULES
  • Update CI: update comments to reference aw-notify-rs in both build.yml and build-tauri.yml
  • Update CI cache: add aw-notify-rs/target to the cargo build cache in both workflows

Build Process Differences

aw-notify (Python) aw-notify-rs (Rust)
Build tool poetry install + pyinstaller cargo build --release
Runtime Python 3.x required Native binary, no runtime needed
Makefile targets build, package, clean build, package, clean (compatible ✅)
Cache pip/wheel cache cargo target cache
Binary dist/aw-notify/ (PyInstaller bundle) dist/aw-notify (single native binary)

The aw-notify-rs Makefile already provides compatible build, package, and clean targets, so the activitywatch build system integrates without changes to the main build logic.

Testing

The CI will validate the Rust build. The aw-notify-rs binary:

  • Provides the same time summary, threshold alerts, server monitoring, and new-day greeting features
  • Works cross-platform (Linux, macOS, Windows)
  • Connects to ActivityWatch server on localhost:5600 by default

Important

Replace Python aw-notify with Rust aw-notify-rs for improved performance and native compilation.

  • Submodule Changes:
    • Remove aw-notify submodule.
    • Add aw-notify-rs submodule.
  • Makefile:
    • Replace aw-notify with aw-notify-rs in SUBMODULES.
  • CI Updates:
    • Update build.yml and build-tauri.yml to reference aw-notify-rs.
    • Add aw-notify-rs/target to cache paths in both workflows.

This description was created by Ellipsis for 732ad11. You can customize this summary. It will automatically update as commits are pushed.

Replaces the aw-notify Python submodule (ErikBjare/aw-notify) with
aw-notify-rs (0xbrayo/aw-notify-rs), a Rust reimplementation that
provides the same notification features with better performance and
native compilation.

Changes:
- Remove aw-notify submodule (Python/poetry-based build)
- Add aw-notify-rs submodule (Rust/cargo-based build)
- Update Makefile to use aw-notify-rs in SUBMODULES
- Update CI workflows to reference aw-notify-rs
- Add aw-notify-rs/target to cargo cache in both CI workflows

The aw-notify-rs submodule already provides compatible Makefile targets
(build, package, clean) that integrate cleanly with the existing
activitywatch build system.

Requested by @0xbrayo.
Copy link

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Looks good to me! 👍

Reviewed everything up to 732ad11 in 6 seconds. Click for details.
  • Reviewed 93 lines of code in 6 files
  • Skipped 0 files when reviewing.
  • Skipped posting 0 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.

Workflow ID: wflow_4YXq9sQ2qJ7ZkEaq

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

@greptile-apps
Copy link

greptile-apps bot commented Feb 22, 2026

Greptile Summary

Replaced Python-based aw-notify with Rust-based aw-notify-rs for better performance and native compilation.

Key Changes:

  • Swapped submodule from ErikBjare/aw-notify (Python) to 0xbrayo/aw-notify-rs (Rust)
  • Updated Makefile to reference aw-notify-rs in the extras build list
  • Added aw-notify-rs/target to CI cargo cache paths in both build workflows
  • Updated comments in both CI workflows to reference the new module name

Integration Notes:

  • The change assumes aw-notify-rs provides compatible Makefile targets (build, package, clean)
  • The new Rust binary will be built with cargo build --release instead of PyInstaller
  • CI caching properly includes the new Rust build artifacts

Confidence Score: 4/5

  • Safe to merge with minor verification recommended
  • The changes are straightforward and consistent across all files. The submodule swap is clean with no orphaned references. However, the aw-notify-rs repository and its Makefile targets should be verified to ensure they provide the expected interface (build, package, clean targets) as stated in the PR description
  • No files require special attention - all changes are clean substitutions

Important Files Changed

Filename Overview
.gitmodules Removed Python aw-notify submodule and added Rust aw-notify-rs submodule
Makefile Updated SUBMODULES list to use aw-notify-rs instead of aw-notify
.github/workflows/build.yml Updated comment and added aw-notify-rs/target to cargo cache paths
.github/workflows/build-tauri.yml Updated comment and added aw-notify-rs/target to cargo cache paths

Last reviewed commit: 732ad11

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

6 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@0xbrayo
Copy link
Member

0xbrayo commented Feb 22, 2026

This is superseded by #1211, feel free to add any changes there. @TimeToBuildBob

@0xbrayo
Copy link
Member

0xbrayo commented Feb 22, 2026

Seems to failing due to notarization, either could work!

@TimeToBuildBob
Copy link
Contributor Author

Closing in favor of #1211 — 0xbrayo's version supersedes this one. Will contribute any remaining changes there if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants