Conversation
Member
|
Thanks for the pull request, but we are trying to keep most of the documentation (including installation instructions) in the docs rather than in the readme file. Python3 isn't required in the pre-packaged version either, so this is not always the case. In the instructions in the docs on how to install from source it is clearly stated that you need python 3.5 or above
https://activitywatch.readthedocs.io/en/latest/installing-from-source.html |
TimeToBuildBob
added a commit
to TimeToBuildBob/activitywatch
that referenced
this pull request
Sep 7, 2026
Watcher ActivityWatch#143 squash-merged at abd69a6. The two ActivityWatch#138 guards now skip when AW_RESEARCH_EDITION=true, which is what killed v0.14.0b5-research run 34155142876. Pin folded into this PR so the recut does not need a separate bump round-trip. Git-Session-Id: pm-aw143
ErikBjare
pushed a commit
that referenced
this pull request
Sep 8, 2026
…e id into research builds (#1434) * feat(research): bake profile=research, port 5667 and a distinct bundle id into research builds The Research Edition profile stack (#1399) shipped, but the research build never consumed it: v0.14.0b5-research resolves profile=default, binds 5600 and shares activitywatch/ with a standard install. The profile is build identity, not a launch argument: a login-item --profile would miss double-click, Spotlight and the updater relaunch. New fail-closed patcher scripts/patch_research_edition_profile.py {qt|tauri} (same pattern as patch_research_edition_awqt.py), wired into all three build jobs for AW_RESEARCH_EDITION == 'true': - every no-flag/no-env profile fallback in aw-qt, aw-server, aw-client, aw-server-rust and aw-tauri resolves to BUILD_PROFILE = "research"; DEFAULT_PROFILE itself is left alone because it means the ordinary install in suffix/dir/lockfile/export_profile logic - built-in port 5600 -> 5667 in both servers, aw-client, aw-qt's tray and manager fallbacks, and aw-tauri's UserConfig::default - CFBundleIdentifier net.activitywatch.ActivityWatch-research (Tauri identifier net.activitywatch.tauri-research) and CFBundleName "ActivityWatch Research" in aw.spec, build_app_tauri.sh, tauri.conf.json and notarize.sh The bake runs after the module test suites (which assert the ordinary defaults) and before Package; Python modules are editable installs, the Rust binaries get an explicit rebuild step. Git-Session-Id: cb3d * fix(research): emit ActivityWatch-Research.app and run patcher tests in CI The research macOS bundle still installed as ActivityWatch.app, so dragging it into Applications replaced a standard install. Bake the on-disk stem (ActivityWatch-Research.app / .dmg) through aw.spec, APP_NAME, Makefile, and notarize.sh, and parameterize the dmg job on APP_BUNDLE. Also run the fail-closed patcher tests on every release/PR job before patching, so table drift fails at PR time instead of tag time. * build(deps): bump aw-watcher-window for research-edition guard skips Watcher #143 squash-merged at abd69a6. The two #138 guards now skip when AW_RESEARCH_EDITION=true, which is what killed v0.14.0b5-research run 34155142876. Pin folded into this PR so the recut does not need a separate bump round-trip. Git-Session-Id: pm-aw143 * feat(research): give the research edition its own Windows install identity Both Inno Setup scripts describe a single product each. A research build made from them would share the standard AppId, so Windows treats it as the *same* product: the research setup upgrades over an existing install and its uninstaller removes both. That defeats the dual-run the research edition exists for. Patch, fail-closed, at release time: - activitywatch-setup.iss (qt): AppId -> 32024B9B-..., MyAppName -> "ActivityWatch Research", OutputBaseFilename -> activitywatch-research-setup - aw-tauri.iss (tauri): AppId -> 70E2D4AB-..., MyAppName -> "ActivityWatch Research (Tauri)", DefaultDirName -> ActivityWatch-Research-Tauri, OutputBaseFilename -> activitywatch-research-tauri-setup - tauri.conf.json: pin bundle.windows.wix.upgradeCode AppName, DefaultDirName (qt), the Start-Menu / desktop / {userstartup} shortcuts and UninstallDisplayName all derive from `#define MyAppName`, so one patched token cascades to every user-visible identity. The tests assert that cascade against the *real* .iss files rather than a synthetic fixture, so upstream hardcoding a shortcut name fails the research build instead of silently shipping a colliding Start-Menu entry. WixConfig exposes no product-code field (Tauri generates one per build); the upgrade code is what defines the MSI product family, so that is the one pinned. It was already distinct via the patched identifier, but only as a side effect of an unrelated string. Note both .iss files ship OutputBaseFilename=activitywatch-setup on master, so the qt and tauri setups already overwrite each other in dist/. The research names are distinct from each other as well as from standard. Refs #1434 Git-Session-Id: 26d3 * feat(research): split Linux package and first-run autostart identity The research edition already had its own profile, port, macOS bundle and Windows installer identity. Linux was still a single product: the deb is `Package: activitywatch` installing `/opt/activitywatch`, and it drops `aw-qt.desktop` into both /etc/xdg/autostart and /usr/share/applications. Installing a research deb next to a standard one therefore replaces it -- dpkg treats a same-named package as an upgrade -- and its autostart entry overwrites the standard one. Bake a distinct Linux identity at release time: package `activitywatch-research`, `/opt/activitywatch-research`, `activitywatch-research.desktop` in both shared namespaces, a rebranded `Name=`, and a matching AppImage icon id / desktop-entry filename. Also split what aw-qt registers for itself on first run (config `autostart_on_first_run`): the Linux autostart filename, the macOS LaunchAgent label, and APP_NAME (which the Windows Run value and Startup shortcut derive from). Installer identity does not cover these -- without them the two editions still overwrite each other's autostart. The Linux autostart patch targets `_linux_desktop_path()` rather than `DESKTOP_FILENAME`, which also names the shipped resource the build reads out of the bundle; flipping the constant would send `_bundled_desktop_file()` looking for a file that is not there. Tauri's Linux bundles come from Tauri's own bundler, keyed on `productName`, which is coupled to the cargo binary name -- left for a change that can be verified against a real Tauri build. Tests patch the real packaging scripts, not a synthetic fixture, so upstream adding another /opt/activitywatch reference or a fourth desktop-entry copy fails the research build instead of shipping a collision. Git-Session-Id: e26e * ci: add research-edition-checks job — fire patch guards at PR time Adds a dedicated `research-edition-checks` job that runs on every PR and push to master. It checks out with submodules and verifies that every patch target in the Qt and Tauri tables still exists exactly once in the real source files (`--check` mode). This is the fail-closed guard that previously only fired when Erik pushed the annotated release tag. The job is stdlib-only (no poetry/build step) so it completes in ~30s. It also runs the fixture-based profile patcher unit tests. Closes task step 6.2 of the research-edition-profile-wiring checklist. Git-Session-Id: f8ff * feat(research): 5.4 Tauri autostart — AUTOSTART_PATCHES_TAURI for distinct app_name tauri_plugin_autostart uses productName ("aw-tauri") as the OS autostart entry name by default. Standard and research Tauri builds sharing that name means enabling autostart in one edition overwrites the other's entry on Windows (registry Run key) and Linux (~/.config/autostart/). Add AUTOSTART_PATCHES_TAURI that replaces tauri_plugin_autostart::init() with a Builder::new() call. After the profile patches have also run, BUILD_PROFILE is defined in profile.rs. When BUILD_PROFILE != DEFAULT_PROFILE the Builder sets app_name("aw-tauri-research"), giving the research binary its own entry name. MacosLauncher selection (AppleScript vs LaunchAgent) is preserved. Tauri's Linux bundler derives package/desktop names from productName, so a full Linux package identity split needs a separate investigation; the collision that is fixed here is the runtime autostart entry written by the plugin itself. Add test asserting the patcher inserts BUILD_PROFILE and that the lib.rs patch produces Builder code with the conditional app_name override. Git-Session-Id: 49c9 * ci: research-edition build leg on PR/branch CI (6.2) The --check smoke test (706ba75) only catches patch-target drift on the unpatched tree. A patched-tree compile/test/package failure -- the class that killed the first v0.14.0b5-research run -- still only surfaced at tag time. Add a `research` matrix dimension with one Linux include row per build job (Qt on ubuntu-22.04, Tauri on ubuntu-24.04) that sets AW_RESEARCH_EDITION=true, so every PR and branch push applies the full research patch set and builds, tests and packages the patched tree. On tag pushes and workflow dispatches the include row's `research` value resolves to false, so it merges into the existing Linux row instead of adding a duplicate leg: research tags already build the research edition in every row, and standard tags must not upload research artifacts to the standard release. Artifact names carry a -research suffix so the leg cannot collide with the standard row on the same runner. Git-Session-Id: 0283
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.