ActivityWatch / ActivityWatch/activitywatch

The Great Migration

未关闭
#424 6 条评论 4 个 reaction 已指派 0 人 在 GitHub 查看
!pinned improves: tech debt
主要语言
Python
星标
18.9k
派生
1k
平均合并
1 天 4 小时
30 天内合并 PR
28

描述

There are currently a few migrations planned, here I'll try to document them so that we can have some general discussion and clarity on what migration debts have to be repaid.

- [ ] **bundle: aw-server-python to aw-server-rust**
- This is the big one. aw-server-rust has been properly battle-tested by now (especially in aw-android) and is ready to become the default. We're currently (April 2020, v0.9) shipping it in the bundle as an alternative server that the user can choose to start with aw-qt.
- Practically, all of the migrations below depend on this one.

- [ ] **some watchers: 'unknown' hostnames to correct hostname**
- affects: aw-watcher-web, aw-android
- currently create buckets with hostname "unknown", leading to them being assumed to have to belong to a certain hostname when querying.
- new behavior (proposal): watchers use the hostname from the server's /info API endpoint when creating the bucket.
- new behavior (proposal): watchers can create buckets with a magic hostname which automatically uses the server hostname. It's more convenient for watcher developers than the above proposal.
- new behavior (proposal): watchers no longer have hostname in their name, they are assumed to be owned by the server they have requested to create a bucket for. All buckets in /api/0/buckets are local and "external" buckets from other devices can be on a seperate endpoint.
- planned migration: Change buckets with a certain signature to the local server hostname.

- [ ] **aw-server: hostnames to device IDs** (#302)
- hostnames are a bad way to identify an instance, especially so as hostnames sometimes change (transient hostnames) for network reasons.
- planned migration: migrate to using `device_id`.

- [ ] **some watchers: non-unique bucket IDs**
- we need a fix for this to allow having buckets from several hosts with identical IDs (aw-watcher-web-chrome), but we don't yet have one.

- [ ] **some watchers: old bucket types** (discussed in https://github.com/ActivityWatch/activitywatch/issues/201)
- We have been trying to adhere to a better standard for bucket type names (namespaces), which some of the older watchers don't use (`currentwindow`, `afkstatus`).
- Before we perform this migration we might want to improve the docs on all the known and somewhat standard bucket types.

- [ ] **aw-android: bucket type and id**
- aw-android currently uses `currentwindow` as its bucket type. This is not appropriate, as the event data schema is different (no `title`, for example).
- affects: aw-android and aw-webui
- best performed by: aw-android? aw-server-rust?

- [ ] **aw-server-python: default datastore from peewee to sqlite**
- indefinitely postponed in favor of switching to aw-server-rust

There are more info about these in issues that I haven't yet referenced here.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。