ActivityWatch / ActivityWatch/activitywatch

The Great Migration

Đang mở
#424 6 bình luận 4 reaction 0 người được giao Xem trên GitHub
!pinned improves: tech debt
Ngôn ngữ chính
Python
Star
18.9k
Fork
1k
Merge trung bình
1 ngày 4 giờ
Pull request đã merge (30 ngày)
28

Mô tả

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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.