ActivityWatch / activitywatch

The best free and open-source automated time tracker. Cross-platform, extensible, privacy-focused.
https://activitywatch.net/
Mozilla Public License 2.0
11.98k stars 544 forks source link

ci: testing Python 3.11 #931

Closed ErikBjare closed 1 year ago

ErikBjare commented 1 year ago

CI passing. Would need some real-life testing, and ensurance that 3.11 is widely adopted.

3.9 has EOL on 05 Oct 2025 3.10 has EOL on 04 Oct 2026 3.11 has EOL on 24 Oct 2027

3.10 brings nice stuff like X | Y union syntax 3.11 brings ~10-25% performance improvement (also this is kinda nice: https://github.com/asottile/pyupgrade#use-datetimeutc-alias)

Releases are supported for 5 years after their release. 3.11 has now been out for 9 months.

I kinda don't want to wait for 3.9 to become EOL. We're now ~halfway into its life-cycle.

BelKed commented 1 year ago

What exactly you mean by "real-life testing" and "ensurance that 3.11 is widely adopted"?


By the way, Python 3.11 seems to work fine for me :)


Also, aren't we shipping a prebuilt binary, so Python version shouldn't matter?

ErikBjare commented 1 year ago

What exactly you mean by "real-life testing" and "ensurance that 3.11 is widely adopted"?

Just that the PyInstaller-built executables actually run on real machines (and not just in CI), and that any contributors won't have to jump through hoops to get Python 3.11 (but should be fine).

Will merge this for now, hoping it doesn't break anything, and will later eventually remove support for Python 3.9 & 3.10 in the underlying modules.

ErikBjare commented 1 year ago

Turns out PyInstaller-built executables do not run correctly on Windows: https://github.com/ActivityWatch/activitywatch/issues/936

I'll probably go through build/CI changes since v0.12.6 and restore Python 3.9 for now.

Edit: made a PR downgrading Python to 3.9 #941