Compare commits

127 Commits

Author SHA1 Message Date
e073e33a7b Merge pull request 'chore(deps): update dependency mypy to v1.20.1' (#72) from renovate/all-dev-dependencies into main
All checks were successful
Python Linters / formatting (push) Successful in 50s
Python Linters / mypy (push) Successful in 49s
Python Linters / pylint (push) Successful in 55s
REUSE Compliance / reuse (push) Successful in 7s
Selftests / test-sync (push) Successful in 48s
Selftests / test-build-install (push) Successful in 56s
2026-04-18 06:16:18 +02:00
62e3d88ba4 chore(deps): update dependency mypy to v1.20.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 51s
Python Linters / mypy (pull_request) Successful in 50s
Python Linters / pylint (pull_request) Successful in 57s
REUSE Compliance / reuse (pull_request) Successful in 13s
Selftests / test-sync (pull_request) Successful in 50s
Selftests / test-build-install (pull_request) Successful in 56s
2026-04-18 03:17:09 +00:00
b27213425a Merge pull request 'chore(deps): update dependency mypy to v1.20.0' (#71) from renovate/all-dev-dependencies into main
All checks were successful
Python Linters / formatting (push) Successful in 29s
Python Linters / pylint (push) Successful in 31s
Python Linters / mypy (push) Successful in 29s
REUSE Compliance / reuse (push) Successful in 6s
Selftests / test-build-install (push) Successful in 29s
Selftests / test-sync (push) Successful in 48s
2026-04-06 04:16:53 +02:00
9b4ab9d25b chore(deps): update dependency mypy to v1.20.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 31s
Python Linters / formatting (pull_request) Successful in 28s
REUSE Compliance / reuse (pull_request) Successful in 11s
Python Linters / mypy (pull_request) Successful in 29s
Selftests / test-build-install (pull_request) Successful in 59s
Selftests / test-sync (pull_request) Successful in 49s
2026-04-06 01:21:21 +00:00
4e393ed5aa Merge pull request 'chore(deps): update dependency bump-my-version to v1.3.0' (#70) from renovate/all-dev-dependencies into main
All checks were successful
Python Linters / formatting (push) Successful in 28s
Python Linters / pylint (push) Successful in 31s
Python Linters / mypy (push) Successful in 28s
REUSE Compliance / reuse (push) Successful in 6s
Selftests / test-build-install (push) Successful in 29s
Selftests / test-sync (push) Successful in 51s
2026-03-28 03:16:46 +01:00
afe96292ae chore(deps): update dependency bump-my-version to v1.3.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 31s
Python Linters / formatting (pull_request) Successful in 28s
REUSE Compliance / reuse (pull_request) Successful in 11s
Python Linters / mypy (pull_request) Successful in 30s
Selftests / test-sync (pull_request) Successful in 53s
Selftests / test-build-install (pull_request) Successful in 1m2s
2026-03-28 01:20:41 +00:00
85ec1eb377 Merge pull request 'chore(deps): update dependency black to v26.3.1' (#69) from renovate/all-dev-dependencies into main
All checks were successful
Python Linters / pylint (push) Successful in 32s
Python Linters / formatting (push) Successful in 28s
REUSE Compliance / reuse (push) Successful in 7s
Python Linters / mypy (push) Successful in 32s
Selftests / test-sync (push) Successful in 53s
Selftests / test-build-install (push) Successful in 1m0s
2026-03-17 06:16:53 +01:00
6df40f94ef chore(deps): update dependency black to v26.3.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 31s
Python Linters / formatting (pull_request) Successful in 27s
REUSE Compliance / reuse (pull_request) Successful in 12s
Python Linters / mypy (pull_request) Successful in 29s
Selftests / test-sync (pull_request) Successful in 49s
Selftests / test-build-install (pull_request) Successful in 58s
2026-03-17 04:17:48 +00:00
2c8f9d9d6e Merge pull request 'chore(deps): update dependency black to v26.3.0' (#68) from renovate/all-dev-dependencies into main
All checks were successful
Python Linters / formatting (push) Successful in 26s
Python Linters / pylint (push) Successful in 29s
Python Linters / mypy (push) Successful in 28s
REUSE Compliance / reuse (push) Successful in 7s
Selftests / test-build-install (push) Successful in 29s
Selftests / test-sync (push) Successful in 47s
2026-03-12 03:17:10 +01:00
cca1be3a2d chore(deps): update dependency black to v26.3.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 27s
Python Linters / pylint (pull_request) Successful in 30s
REUSE Compliance / reuse (pull_request) Successful in 11s
Python Linters / mypy (pull_request) Successful in 30s
Selftests / test-build-install (pull_request) Successful in 1m2s
Selftests / test-sync (pull_request) Successful in 50s
2026-03-12 01:21:13 +00:00
8dbc538152 Merge pull request 'chore(deps): update dependency isort to v8.0.1' (#67) from renovate/all-dev-dependencies into main
All checks were successful
Python Linters / formatting (push) Successful in 27s
Python Linters / pylint (push) Successful in 30s
Python Linters / mypy (push) Successful in 29s
REUSE Compliance / reuse (push) Successful in 7s
Selftests / test-build-install (push) Successful in 30s
Selftests / test-sync (push) Successful in 48s
2026-03-06 03:17:09 +01:00
9ce9f04e93 chore(deps): update dependency isort to v8.0.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 33s
Python Linters / formatting (pull_request) Successful in 28s
REUSE Compliance / reuse (pull_request) Successful in 10s
Python Linters / mypy (pull_request) Successful in 29s
Selftests / test-build-install (pull_request) Successful in 1m0s
Selftests / test-sync (pull_request) Successful in 51s
2026-03-06 01:21:11 +00:00
c63986d44f Merge pull request 'chore(deps): update dependency isort to v8' (#66) from renovate/major-all-dev-dependencies into main
All checks were successful
Python Linters / formatting (push) Successful in 25s
Python Linters / pylint (push) Successful in 28s
Python Linters / mypy (push) Successful in 26s
REUSE Compliance / reuse (push) Successful in 5s
Selftests / test-build-install (push) Successful in 27s
Selftests / test-sync (push) Successful in 48s
2026-02-25 03:17:02 +01:00
5e5f3704a3 chore(deps): update dependency isort to v8
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 54s
Python Linters / pylint (pull_request) Successful in 1m0s
Python Linters / mypy (pull_request) Successful in 30s
REUSE Compliance / reuse (pull_request) Successful in 13s
Selftests / test-build-install (pull_request) Successful in 57s
Selftests / test-sync (pull_request) Successful in 49s
2026-02-25 01:20:35 +00:00
fcd07bb9cd Merge pull request 'chore(deps): update dependency bump-my-version to v1.2.7' (#65) from renovate/all-dev-dependencies into main
All checks were successful
Python Linters / formatting (push) Successful in 27s
Python Linters / pylint (push) Successful in 31s
REUSE Compliance / reuse (push) Successful in 6s
Python Linters / mypy (push) Successful in 27s
Selftests / test-build-install (push) Successful in 30s
Selftests / test-sync (push) Successful in 46s
2026-02-20 04:19:42 +01:00
05f81ef9ce chore(deps): update dependency bump-my-version to v1.2.7
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 25s
Python Linters / pylint (pull_request) Successful in 30s
REUSE Compliance / reuse (pull_request) Successful in 11s
Python Linters / mypy (pull_request) Successful in 28s
Selftests / test-build-install (pull_request) Successful in 58s
Selftests / test-sync (pull_request) Successful in 49s
2026-02-20 01:20:51 +00:00
77ceed1c5e Merge pull request 'chore(deps): update dependency black to v26' (#64) from renovate/major-all-dev-dependencies into main
All checks were successful
Python Linters / formatting (push) Successful in 34s
Python Linters / pylint (push) Successful in 37s
Python Linters / mypy (push) Successful in 36s
REUSE Compliance / reuse (push) Successful in 8s
Selftests / test-build-install (push) Successful in 37s
Selftests / test-sync (push) Successful in 55s
Reviewed-on: #64
2026-01-23 11:45:06 +01:00
74dc7d7d85 chore(deps): update dependency black to v26
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 37s
Python Linters / formatting (pull_request) Successful in 33s
REUSE Compliance / reuse (pull_request) Successful in 16s
Python Linters / mypy (pull_request) Successful in 35s
Selftests / test-sync (pull_request) Successful in 57s
Selftests / test-build-install (pull_request) Successful in 1m11s
2026-01-23 05:17:39 +00:00
102dab5677 Merge pull request 'chore(deps): update https://github.com/fsfe/reuse-action action to v6' (#53) from renovate/https-github.com-fsfe-reuse-action-6.x into main
All checks were successful
Python Linters / mypy (push) Successful in 1m39s
Python Linters / formatting (push) Successful in 1m42s
Python Linters / pylint (push) Successful in 1m46s
REUSE Compliance / reuse (push) Successful in 46s
Selftests / test-sync (push) Successful in 1m38s
Selftests / test-build-install (push) Successful in 1m43s
Reviewed-on: #53
2026-01-07 13:58:53 +01:00
cda756682c Merge pull request 'chore(deps): update dependency bump-my-version to v1.2.6' (#63) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 17s
Python Linters / pylint (push) Successful in 46s
Python Linters / formatting (push) Successful in 50s
Python Linters / mypy (push) Successful in 48s
Selftests / test-sync (push) Successful in 55s
Selftests / test-build-install (push) Successful in 1m48s
2026-01-02 03:18:54 +01:00
f1d82598c3 chore(deps): update dependency bump-my-version to v1.2.6
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
REUSE Compliance / reuse (pull_request) Successful in 17s
Python Linters / formatting (pull_request) Successful in 1m11s
Python Linters / mypy (pull_request) Successful in 1m9s
Python Linters / pylint (pull_request) Successful in 2m0s
Selftests / test-build-install (pull_request) Successful in 1m45s
Selftests / test-sync (pull_request) Successful in 1m14s
2026-01-02 01:20:42 +00:00
dcc3c632da Merge pull request 'chore(deps): update dependency mypy to v1.19.1' (#62) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 15s
Python Linters / pylint (push) Successful in 46s
Python Linters / formatting (push) Successful in 49s
Python Linters / mypy (push) Successful in 1m15s
Selftests / test-build-install (push) Successful in 1m52s
Selftests / test-sync (push) Successful in 1m53s
2025-12-19 02:19:45 +01:00
ce8514ab6e chore(deps): update dependency mypy to v1.19.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
REUSE Compliance / reuse (pull_request) Successful in 18s
Python Linters / mypy (pull_request) Successful in 1m5s
Python Linters / formatting (pull_request) Successful in 1m7s
Python Linters / pylint (pull_request) Successful in 1m48s
Selftests / test-build-install (pull_request) Successful in 1m36s
Selftests / test-sync (pull_request) Successful in 1m10s
2025-12-18 05:19:24 +00:00
c7e310e117 Merge pull request 'chore(deps): update dependency bump-my-version to v1.2.5' (#61) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 18s
Python Linters / pylint (push) Successful in 44s
Python Linters / formatting (push) Successful in 42s
Python Linters / mypy (push) Successful in 54s
Selftests / test-sync (push) Successful in 55s
Selftests / test-build-install (push) Successful in 1m42s
2025-12-17 03:19:34 +01:00
d2822442bd chore(deps): update dependency bump-my-version to v1.2.5
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 40s
Python Linters / formatting (pull_request) Successful in 38s
Python Linters / mypy (pull_request) Successful in 57s
REUSE Compliance / reuse (pull_request) Successful in 1m1s
Selftests / test-build-install (pull_request) Successful in 1m36s
Selftests / test-sync (pull_request) Successful in 1m25s
2025-12-17 01:19:28 +00:00
a8ba0b68f7 Merge pull request 'chore(deps): update dependency black to v25.12.0' (#60) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 16s
Python Linters / pylint (push) Successful in 44s
Python Linters / formatting (push) Successful in 42s
Python Linters / mypy (push) Successful in 48s
Selftests / test-build-install (push) Successful in 54s
Selftests / test-sync (push) Successful in 58s
2025-12-11 04:19:47 +01:00
2fe38f1b09 chore(deps): update dependency black to v25.12.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
REUSE Compliance / reuse (pull_request) Successful in 17s
Python Linters / pylint (pull_request) Successful in 54s
Python Linters / formatting (pull_request) Successful in 40s
Python Linters / mypy (pull_request) Successful in 49s
Selftests / test-sync (pull_request) Successful in 54s
Selftests / test-build-install (pull_request) Successful in 1m45s
2025-12-11 02:18:33 +00:00
7ff6b06f7a Merge pull request 'chore(deps): update dependency pylint to v4.0.4' (#59) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 21s
Python Linters / pylint (push) Successful in 55s
Python Linters / mypy (push) Successful in 1m7s
Python Linters / formatting (push) Successful in 1m9s
Selftests / test-build-install (push) Successful in 1m36s
Selftests / test-sync (push) Successful in 1m16s
2025-12-04 03:17:51 +01:00
476ff5d8c7 chore(deps): update dependency pylint to v4.0.4
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
REUSE Compliance / reuse (pull_request) Successful in 1m14s
Python Linters / formatting (pull_request) Successful in 1m36s
Python Linters / mypy (pull_request) Successful in 1m33s
Python Linters / pylint (pull_request) Successful in 1m39s
Selftests / test-sync (pull_request) Successful in 49s
Selftests / test-build-install (pull_request) Successful in 1m49s
2025-12-04 01:19:59 +00:00
6c1fb7e2ad Merge pull request 'chore(deps): update dependency mypy to v1.19.0' (#58) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 9s
Python Linters / formatting (push) Successful in 38s
Python Linters / pylint (push) Successful in 44s
Python Linters / mypy (push) Successful in 51s
Selftests / test-build-install (push) Successful in 43s
Selftests / test-sync (push) Successful in 52s
2025-12-02 03:19:08 +01:00
7b19cdbebd chore(deps): update dependency mypy to v1.19.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
REUSE Compliance / reuse (pull_request) Successful in 18s
Python Linters / pylint (pull_request) Successful in 1m6s
Python Linters / formatting (pull_request) Successful in 1m2s
Selftests / test-build-install (pull_request) Successful in 1m33s
Python Linters / mypy (pull_request) Successful in 1m57s
Selftests / test-sync (pull_request) Successful in 1m10s
2025-12-02 01:20:48 +00:00
6b62eac9f2 Merge pull request 'chore(deps): update actions/checkout action to v6' (#57) from renovate/actions-checkout-6.x into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 1m1s
Python Linters / pylint (push) Successful in 1m23s
Python Linters / formatting (push) Successful in 2m9s
Python Linters / mypy (push) Successful in 2m13s
Selftests / test-sync (push) Successful in 1m1s
Selftests / test-build-install (push) Successful in 1m46s
Reviewed-on: #57
2025-11-24 23:26:55 +01:00
ebc0219c5c chore(deps): update actions/checkout action to v6
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 35s
Python Linters / formatting (pull_request) Successful in 34s
Python Linters / mypy (pull_request) Successful in 37s
REUSE Compliance / reuse (pull_request) Successful in 49s
Selftests / test-sync (pull_request) Successful in 1m0s
Selftests / test-build-install (pull_request) Successful in 1m26s
2025-11-24 01:21:46 +00:00
e362e35740 Merge pull request 'chore(deps): update dependency pylint to v4.0.3' (#56) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 15s
Python Linters / pylint (push) Successful in 43s
Python Linters / formatting (push) Successful in 42s
Python Linters / mypy (push) Successful in 44s
Selftests / test-sync (push) Successful in 52s
Selftests / test-build-install (push) Successful in 1m20s
2025-11-17 03:18:07 +01:00
4778985683 chore(deps): update dependency pylint to v4.0.3
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
REUSE Compliance / reuse (pull_request) Successful in 45s
Python Linters / mypy (pull_request) Successful in 1m9s
Python Linters / pylint (pull_request) Successful in 1m12s
Python Linters / formatting (pull_request) Successful in 1m18s
Selftests / test-build-install (pull_request) Successful in 1m11s
Selftests / test-sync (pull_request) Successful in 50s
2025-11-17 01:18:14 +00:00
19cc36f305 Merge pull request 'chore(deps): update all-dev-dependencies' (#55) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 15s
Python Linters / formatting (push) Successful in 42s
Python Linters / pylint (push) Successful in 44s
Python Linters / mypy (push) Successful in 41s
Selftests / test-build-install (push) Successful in 40s
Selftests / test-sync (push) Successful in 48s
2025-11-13 04:17:54 +01:00
78a852d8c2 chore(deps): update all-dev-dependencies
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
REUSE Compliance / reuse (pull_request) Successful in 15s
Python Linters / formatting (pull_request) Successful in 31s
Python Linters / pylint (pull_request) Successful in 34s
Python Linters / mypy (pull_request) Successful in 31s
Selftests / test-sync (pull_request) Successful in 46s
Selftests / test-build-install (pull_request) Successful in 1m23s
2025-11-13 02:18:15 +00:00
4ede6878ca Merge pull request 'chore(deps): update all-dev-dependencies (major)' (#54) from renovate/major-all-dev-dependencies into main
All checks were successful
Python Linters / pylint (push) Successful in 33s
Python Linters / mypy (push) Successful in 31s
Python Linters / formatting (push) Successful in 31s
REUSE Compliance / reuse (push) Successful in 6s
Selftests / test-build-install (push) Successful in 29s
Selftests / test-sync (push) Successful in 48s
2025-10-16 04:19:26 +02:00
3063b019ef chore(deps): update all-dev-dependencies
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
REUSE Compliance / reuse (pull_request) Successful in 8s
Python Linters / pylint (pull_request) Successful in 35s
Python Linters / mypy (pull_request) Successful in 34s
Python Linters / formatting (pull_request) Successful in 41s
Selftests / test-build-install (pull_request) Successful in 1m7s
Selftests / test-sync (pull_request) Successful in 47s
2025-10-16 01:20:43 +00:00
3c6176c17c chore(deps): update https://github.com/fsfe/reuse-action action to v6
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 1m4s
Python Linters / mypy (pull_request) Successful in 1m2s
Python Linters / pylint (pull_request) Successful in 1m7s
REUSE Compliance / reuse (pull_request) Successful in 17s
Selftests / test-sync (pull_request) Successful in 54s
Selftests / test-build-install (pull_request) Successful in 1m4s
2025-10-10 01:19:56 +00:00
c14dcb08b8 Merge pull request 'chore(deps): update dependency pylint to v3.3.9' (#52) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 7s
Python Linters / formatting (push) Successful in 38s
Python Linters / mypy (push) Successful in 40s
Python Linters / pylint (push) Successful in 44s
Selftests / test-build-install (push) Successful in 40s
Selftests / test-sync (push) Successful in 49s
2025-10-09 04:16:33 +02:00
ed9b62af58 chore(deps): update dependency pylint to v3.3.9
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 31s
Python Linters / pylint (pull_request) Successful in 34s
Python Linters / mypy (pull_request) Successful in 32s
REUSE Compliance / reuse (pull_request) Successful in 8s
Selftests / test-sync (pull_request) Successful in 56s
Selftests / test-build-install (pull_request) Successful in 1m6s
2025-10-09 01:21:22 +00:00
300352e1cf Merge pull request 'chore(deps): update dependency bump-my-version to v1.2.4' (#51) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 15s
Python Linters / formatting (push) Successful in 31s
Python Linters / pylint (push) Successful in 34s
Python Linters / mypy (push) Successful in 33s
Selftests / test-sync (push) Successful in 46s
Selftests / test-build-install (push) Successful in 1m19s
2025-10-08 04:17:29 +02:00
a10474f1d2 chore(deps): update dependency bump-my-version to v1.2.4
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 27s
Python Linters / pylint (pull_request) Successful in 31s
REUSE Compliance / reuse (pull_request) Successful in 16s
Python Linters / mypy (pull_request) Successful in 1m22s
Selftests / test-sync (pull_request) Successful in 56s
Selftests / test-build-install (pull_request) Successful in 1m16s
2025-10-08 01:22:16 +00:00
8c38978b28 Merge pull request 'chore(deps): update dependency isort to v6.1.0' (#50) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 14s
Python Linters / formatting (push) Successful in 30s
Python Linters / pylint (push) Successful in 32s
Python Linters / mypy (push) Successful in 30s
Selftests / test-sync (push) Successful in 45s
Selftests / test-build-install (push) Successful in 1m21s
2025-10-05 04:17:29 +02:00
4e01d7d10c chore(deps): update dependency isort to v6.1.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / mypy (pull_request) Successful in 1m3s
REUSE Compliance / reuse (pull_request) Successful in 13s
Python Linters / pylint (pull_request) Successful in 1m11s
Python Linters / formatting (pull_request) Successful in 1m19s
Selftests / test-sync (pull_request) Successful in 50s
Selftests / test-build-install (pull_request) Successful in 1m2s
2025-10-05 01:20:21 +00:00
d7c35c572d Merge pull request 'chore(deps): update dependency pyyaml to v6.0.3' (#49) from renovate/pyyaml-6.x-lockfile into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 7s
Python Linters / pylint (push) Successful in 31s
Python Linters / mypy (push) Successful in 30s
Python Linters / formatting (push) Successful in 38s
Selftests / test-build-install (push) Successful in 30s
Selftests / test-sync (push) Successful in 44s
2025-09-29 04:16:41 +02:00
8f3df25251 chore(deps): update dependency pyyaml to v6.0.3
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 34s
Python Linters / formatting (pull_request) Successful in 29s
Python Linters / mypy (pull_request) Successful in 29s
REUSE Compliance / reuse (pull_request) Successful in 16s
Selftests / test-sync (pull_request) Successful in 55s
Selftests / test-build-install (pull_request) Successful in 1m14s
2025-09-29 01:20:52 +00:00
5d8b63e883 Merge pull request 'chore(deps): update all-dev-dependencies' (#47) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 7s
Python Linters / pylint (push) Successful in 37s
Python Linters / formatting (push) Successful in 34s
Python Linters / mypy (push) Successful in 39s
Selftests / test-build-install (push) Successful in 33s
Selftests / test-sync (push) Successful in 56s
2025-09-24 14:47:56 +02:00
399ed7fd48 chore(deps): update all-dev-dependencies
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 36s
Python Linters / pylint (pull_request) Successful in 40s
Python Linters / mypy (pull_request) Successful in 37s
REUSE Compliance / reuse (pull_request) Successful in 15s
Selftests / test-build-install (pull_request) Successful in 38s
Selftests / test-sync (pull_request) Successful in 57s
2025-09-24 12:45:12 +00:00
6f1e92cc50 Merge pull request 'chore(deps): update dependency pylint to v3.3.8' (#45) from renovate/all-dev-dependencies into main
All checks were successful
Python Linters / mypy (push) Successful in 40s
REUSE Compliance / reuse (push) Successful in 14s
Python Linters / formatting (push) Successful in 1m11s
Python Linters / pylint (push) Successful in 1m16s
Selftests / test-sync (push) Successful in 51s
Selftests / test-build-install (push) Successful in 1m23s
2025-08-14 02:05:18 +02:00
6d44b44394 chore(deps): update dependency pylint to v3.3.8
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 32s
Python Linters / pylint (pull_request) Successful in 35s
Python Linters / mypy (pull_request) Successful in 33s
REUSE Compliance / reuse (pull_request) Successful in 17s
Selftests / test-sync (pull_request) Successful in 1m1s
Selftests / test-build-install (pull_request) Successful in 1m20s
2025-08-13 00:06:20 +00:00
ebd6804ff2 Merge pull request 'chore(deps): update dependency mypy to v1.17.1' (#44) from renovate/all-dev-dependencies into main
All checks were successful
Python Linters / formatting (push) Successful in 1m8s
Python Linters / mypy (push) Successful in 1m1s
Python Linters / pylint (push) Successful in 1m13s
REUSE Compliance / reuse (push) Successful in 11s
Selftests / test-sync (push) Successful in 1m0s
Selftests / test-build-install (push) Successful in 1m8s
2025-08-05 02:05:08 +02:00
b3c47783ad chore(deps): update dependency mypy to v1.17.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 36s
Python Linters / mypy (pull_request) Successful in 36s
Python Linters / pylint (pull_request) Successful in 46s
REUSE Compliance / reuse (pull_request) Successful in 18s
Selftests / test-sync (pull_request) Successful in 1m9s
Selftests / test-build-install (pull_request) Successful in 1m23s
2025-08-04 00:06:28 +00:00
b2f6d31d62 Merge pull request 'chore(deps): update dependency bump-my-version to v1.2.1' (#43) from renovate/all-dev-dependencies into main
All checks were successful
REUSE Compliance / reuse (push) Successful in 17s
Python Linters / mypy (push) Successful in 1m10s
Python Linters / pylint (push) Successful in 1m22s
Python Linters / formatting (push) Successful in 1m32s
Selftests / test-sync (push) Successful in 1m0s
Selftests / test-build-install (push) Successful in 1m13s
2025-07-24 02:04:39 +02:00
182c2d0c6a chore(deps): update dependency bump-my-version to v1.2.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 47s
Python Linters / formatting (pull_request) Successful in 41s
Python Linters / mypy (pull_request) Successful in 43s
REUSE Compliance / reuse (pull_request) Successful in 17s
Selftests / test-build-install (pull_request) Successful in 1m35s
Selftests / test-sync (pull_request) Successful in 1m11s
2025-07-23 00:05:45 +00:00
2e7ceb2858 Merge pull request 'chore(deps): update dependency mypy to v1.17.0' (#42) from renovate/all-dev-dependencies into main
All checks were successful
Python Linters / formatting (push) Successful in 37s
Python Linters / pylint (push) Successful in 41s
Python Linters / mypy (push) Successful in 38s
REUSE Compliance / reuse (push) Successful in 11s
Selftests / test-sync (push) Successful in 1m0s
Selftests / test-build-install (push) Successful in 1m7s
2025-07-19 02:06:02 +02:00
a99c00138a chore(deps): update dependency mypy to v1.17.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
REUSE Compliance / reuse (pull_request) Successful in 17s
Python Linters / formatting (pull_request) Successful in 43s
Python Linters / mypy (pull_request) Successful in 45s
Python Linters / pylint (pull_request) Successful in 47s
Selftests / test-build-install (pull_request) Successful in 1m15s
Selftests / test-sync (pull_request) Successful in 1m10s
2025-07-18 00:05:22 +00:00
0dd7c01666 chore(deps): update dependency mypy to v1.16.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 32s
Python Linters / pylint (pull_request) Successful in 35s
Python Linters / mypy (pull_request) Successful in 34s
REUSE Compliance / reuse (pull_request) Successful in 17s
Selftests / test-sync (pull_request) Successful in 57s
Selftests / test-build-install (pull_request) Successful in 1m6s
REUSE Compliance / reuse (push) Successful in 8s
Python Linters / formatting (push) Successful in 34s
Python Linters / pylint (push) Successful in 37s
Python Linters / mypy (push) Successful in 45s
Selftests / test-build-install (push) Successful in 33s
Selftests / test-sync (push) Successful in 49s
2025-06-20 00:05:51 +00:00
f9a0217df5 chore(deps): update dependency bump-my-version to v1.2.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 34s
Python Linters / pylint (pull_request) Successful in 36s
Python Linters / mypy (pull_request) Successful in 34s
REUSE Compliance / reuse (pull_request) Successful in 26s
Selftests / test-sync (pull_request) Successful in 1m12s
Selftests / test-build-install (pull_request) Successful in 1m20s
Python Linters / formatting (push) Successful in 1m4s
Python Linters / mypy (push) Successful in 1m2s
Python Linters / pylint (push) Successful in 1m9s
REUSE Compliance / reuse (push) Successful in 10s
Selftests / test-sync (push) Successful in 56s
Selftests / test-build-install (push) Successful in 1m2s
2025-06-11 00:06:02 +00:00
0b441a1acc Merge pull request 'chore(deps): update dependency mypy to v1.16.0' (#39) from renovate/all-dev-dependencies into main
All checks were successful
Python Linters / formatting (push) Successful in 1m3s
Python Linters / mypy (push) Successful in 1m2s
Python Linters / pylint (push) Successful in 1m8s
REUSE Compliance / reuse (push) Successful in 18s
Selftests / test-sync (push) Successful in 1m1s
Selftests / test-build-install (push) Successful in 1m9s
Reviewed-on: #39
2025-06-02 21:40:21 +02:00
874e41a093 chore(deps): update dependency mypy to v1.16.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 38s
Python Linters / pylint (pull_request) Successful in 39s
Python Linters / mypy (pull_request) Successful in 37s
REUSE Compliance / reuse (pull_request) Successful in 19s
Selftests / test-sync (pull_request) Successful in 1m5s
Selftests / test-build-install (pull_request) Successful in 1m16s
2025-06-02 00:05:37 +00:00
5aab0cf71c chore(deps): update dependency bump-my-version to v1.1.4
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 37s
Python Linters / mypy (pull_request) Successful in 35s
Python Linters / formatting (pull_request) Successful in 39s
REUSE Compliance / reuse (pull_request) Successful in 13s
Selftests / test-sync (pull_request) Successful in 58s
Selftests / test-build-install (pull_request) Successful in 1m26s
Python Linters / mypy (push) Successful in 1m2s
Python Linters / pylint (push) Successful in 1m14s
REUSE Compliance / reuse (push) Successful in 10s
Python Linters / formatting (push) Successful in 1m29s
Selftests / test-sync (push) Successful in 56s
Selftests / test-build-install (push) Successful in 1m7s
2025-05-25 00:05:49 +00:00
6b78b28526 chore(deps): update dependency bump-my-version to v1.1.3
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 39s
Python Linters / formatting (pull_request) Successful in 38s
Python Linters / mypy (pull_request) Successful in 36s
REUSE Compliance / reuse (pull_request) Successful in 14s
Selftests / test-sync (pull_request) Successful in 1m0s
Selftests / test-build-install (pull_request) Successful in 1m31s
Python Linters / formatting (push) Successful in 1m10s
Python Linters / pylint (push) Successful in 1m16s
REUSE Compliance / reuse (push) Successful in 8s
Python Linters / mypy (push) Successful in 1m28s
Selftests / test-sync (push) Successful in 59s
Selftests / test-build-install (push) Successful in 1m7s
2025-05-21 00:05:50 +00:00
7437d7c2e5 chore(deps): update dependency pylint to v3.3.7
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 32s
Python Linters / pylint (pull_request) Successful in 35s
Python Linters / mypy (pull_request) Successful in 34s
REUSE Compliance / reuse (pull_request) Successful in 16s
Selftests / test-sync (pull_request) Successful in 57s
Selftests / test-build-install (pull_request) Successful in 1m7s
Python Linters / pylint (push) Successful in 38s
Python Linters / formatting (push) Successful in 40s
REUSE Compliance / reuse (push) Successful in 8s
Python Linters / mypy (push) Successful in 33s
Selftests / test-build-install (push) Successful in 31s
Selftests / test-sync (push) Successful in 1m4s
2025-05-08 00:05:32 +00:00
43dd03df3a chore(deps): update dependency bump-my-version to v1.1.2
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 33s
Python Linters / pylint (pull_request) Successful in 36s
REUSE Compliance / reuse (pull_request) Successful in 17s
Python Linters / mypy (pull_request) Successful in 1m22s
Selftests / test-sync (pull_request) Successful in 1m0s
Selftests / test-build-install (pull_request) Successful in 1m17s
Python Linters / formatting (push) Successful in 1m1s
Python Linters / pylint (push) Successful in 1m7s
REUSE Compliance / reuse (push) Successful in 16s
Python Linters / mypy (push) Successful in 1m31s
Selftests / test-sync (push) Successful in 55s
Selftests / test-build-install (push) Successful in 1m2s
2025-04-16 00:06:38 +00:00
99edf04456 chore(deps): update all-dev-dependencies
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 36s
Python Linters / formatting (pull_request) Successful in 36s
REUSE Compliance / reuse (pull_request) Successful in 6s
Python Linters / mypy (pull_request) Successful in 32s
Selftests / test-build-install (pull_request) Successful in 37s
Selftests / test-sync (pull_request) Successful in 50s
REUSE Compliance / reuse (push) Successful in 11s
Python Linters / mypy (push) Successful in 1m2s
Python Linters / pylint (push) Successful in 1m11s
Python Linters / formatting (push) Successful in 1m14s
Selftests / test-sync (push) Successful in 52s
Selftests / test-build-install (push) Successful in 1m6s
2025-03-24 21:57:11 +00:00
ad310c1627 chore(deps): update https://github.com/jrubics/poetry-publish action to v2.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 37s
REUSE Compliance / reuse (pull_request) Successful in 8s
Python Linters / formatting (pull_request) Successful in 34s
Python Linters / mypy (pull_request) Successful in 33s
Selftests / test-build-install (pull_request) Successful in 36s
Selftests / test-sync (pull_request) Successful in 57s
Python Linters / formatting (push) Successful in 35s
Python Linters / pylint (push) Successful in 38s
Python Linters / mypy (push) Successful in 37s
REUSE Compliance / reuse (push) Successful in 8s
Selftests / test-build-install (push) Successful in 34s
Selftests / test-sync (push) Successful in 56s
2025-03-24 21:51:54 +00:00
a1523ad9fc chore(deps): update all-dev-dependencies
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 34s
Python Linters / pylint (pull_request) Successful in 36s
REUSE Compliance / reuse (pull_request) Successful in 9s
Python Linters / mypy (pull_request) Successful in 35s
Selftests / test-build-install (pull_request) Successful in 37s
Selftests / test-sync (pull_request) Successful in 56s
Python Linters / formatting (push) Successful in 34s
Python Linters / mypy (push) Successful in 37s
Python Linters / pylint (push) Successful in 39s
REUSE Compliance / reuse (push) Successful in 8s
Selftests / test-build-install (push) Successful in 37s
Selftests / test-sync (push) Successful in 59s
2025-03-24 21:46:02 +00:00
b95e3172f4 renovate: group dev dependencies
All checks were successful
Python Linters / formatting (push) Successful in 35s
Python Linters / pylint (push) Successful in 37s
Python Linters / mypy (push) Successful in 35s
REUSE Compliance / reuse (push) Successful in 7s
Selftests / test-build-install (push) Successful in 31s
Selftests / test-sync (push) Successful in 50s
2025-03-24 22:42:32 +01:00
cab888fae4 fix(deps): update dependency pyyaml to v6.0.2
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / formatting (pull_request) Successful in 35s
Python Linters / pylint (pull_request) Successful in 38s
Python Linters / mypy (pull_request) Successful in 36s
REUSE Compliance / reuse (pull_request) Successful in 8s
Selftests / test-build-install (pull_request) Successful in 35s
Selftests / test-sync (pull_request) Successful in 57s
Python Linters / formatting (push) Successful in 35s
Python Linters / pylint (push) Successful in 38s
Python Linters / mypy (push) Successful in 36s
REUSE Compliance / reuse (push) Successful in 8s
Selftests / test-build-install (push) Successful in 36s
Selftests / test-sync (push) Successful in 58s
2025-03-24 21:16:13 +00:00
80eb37d8ed renovate: add automerge
All checks were successful
REUSE Compliance / reuse (push) Successful in 15s
Python Linters / formatting (push) Successful in 36s
Python Linters / pylint (push) Successful in 38s
Python Linters / mypy (push) Successful in 38s
Selftests / test-build-install (push) Successful in 1m8s
Selftests / test-sync (push) Successful in 53s
2025-03-24 22:10:53 +01:00
bea16d9b67 Bump version: 0.2.1 → 0.2.2
All checks were successful
Python package / build (push) Successful in 1m14s
Python Linters / pylint (push) Successful in 43s
Python Linters / formatting (push) Successful in 37s
Python Linters / mypy (push) Successful in 41s
Selftests / test-build-install (push) Successful in 40s
Selftests / test-sync (push) Successful in 1m2s
REUSE Compliance / reuse (push) Successful in 19s
2025-01-12 21:25:37 +01:00
f9e46060cf Revert "update release workflow to be based on releases"
Some checks failed
Python Linters / formatting (push) Waiting to run
Python Linters / mypy (push) Waiting to run
REUSE Compliance / reuse (push) Waiting to run
Selftests / test-build-install (push) Waiting to run
Selftests / test-sync (push) Waiting to run
Python Linters / pylint (push) Has been cancelled
This reverts commit be86ebad40.

This isn't possible with act
2025-01-12 21:24:57 +01:00
b250c89d38 Bump version: 0.2.0 → 0.2.1
All checks were successful
Python Linters / pylint (push) Successful in 40s
Python Linters / formatting (push) Successful in 36s
Python Linters / mypy (push) Successful in 38s
REUSE Compliance / reuse (push) Successful in 8s
Selftests / test-build-install (push) Successful in 42s
Selftests / test-sync (push) Successful in 1m3s
2025-01-12 21:17:45 +01:00
9a598a799d Merge pull request 'Update release workflow' (#26) from release-workflow into main
Some checks are pending
Python Linters / pylint (push) Waiting to run
Python Linters / formatting (push) Waiting to run
Python Linters / mypy (push) Waiting to run
REUSE Compliance / reuse (push) Waiting to run
Selftests / test-build-install (push) Waiting to run
Selftests / test-sync (push) Waiting to run
Reviewed-on: #26
2025-01-12 21:17:35 +01:00
be86ebad40 update release workflow to be based on releases
All checks were successful
Python Linters / pylint (pull_request) Successful in 45s
Python Linters / formatting (pull_request) Successful in 37s
Python Linters / mypy (pull_request) Successful in 38s
REUSE Compliance / reuse (pull_request) Successful in 9s
Selftests / test-build-install (pull_request) Successful in 40s
Selftests / test-sync (pull_request) Successful in 1m2s
2025-01-12 21:15:46 +01:00
a61f197da9 add bump-my-version 2025-01-12 21:15:25 +01:00
6ed3e30f56 fix poetry install in ubuntu 24.04
All checks were successful
Python Linters / pylint (push) Successful in 40s
Python Linters / formatting (push) Successful in 37s
Python Linters / mypy (push) Successful in 37s
REUSE Compliance / reuse (push) Successful in 9s
Selftests / test-build-install (push) Successful in 40s
Selftests / test-sync (push) Successful in 1m4s
2025-01-12 21:06:39 +01:00
a613879338 make log file destination configurable 2025-01-12 21:06:39 +01:00
78b9e3fd15 Merge pull request 'chore(deps): update fsfe/reuse-action action to v5' (#24) from renovate/fsfe-reuse-action-5.x into main
All checks were successful
Python Linters / pylint (push) Successful in 48s
Python Linters / formatting (push) Successful in 51s
Python Linters / mypy (push) Successful in 55s
REUSE Compliance / reuse (push) Successful in 16s
Selftests / test-build-install (push) Successful in 53s
Selftests / test-sync (push) Successful in 1m20s
Reviewed-on: #24
2024-12-16 11:09:46 +01:00
d47ea047b9 chore(deps): update fsfe/reuse-action action to v5
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 45s
Python Linters / formatting (pull_request) Successful in 53s
Python Linters / mypy (pull_request) Successful in 56s
REUSE Compliance / reuse (pull_request) Successful in 28s
Selftests / test-build-install (pull_request) Successful in 54s
Selftests / test-sync (pull_request) Successful in 1m29s
2024-12-16 10:03:00 +00:00
7f82643a25 Merge pull request 'chore(deps): update fsfe/reuse-action action to v4' (#22) from renovate/fsfe-reuse-action-4.x into main
All checks were successful
Python Linters / formatting (push) Successful in 1m17s
Python Linters / pylint (push) Successful in 1m26s
REUSE Compliance / reuse (push) Successful in 24s
Python Linters / mypy (push) Successful in 44s
Selftests / test-build-install (push) Successful in 45s
Selftests / test-sync (push) Successful in 1m5s
Reviewed-on: #22
2024-07-08 13:09:07 +02:00
f88df253e5 chore(deps): update fsfe/reuse-action action to v4
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Python Linters / pylint (pull_request) Successful in 1m17s
Python Linters / formatting (pull_request) Successful in 26s
Python Linters / mypy (pull_request) Successful in 28s
REUSE Compliance / reuse (pull_request) Successful in 18s
Selftests / test-build-install (pull_request) Successful in 42s
Selftests / test-sync (pull_request) Successful in 1m25s
2024-07-06 22:03:59 +00:00
e68ef71536 Merge pull request 'chore(deps): update dependency pylint to v3.1.0' (#16) from renovate/pylint-3.x-lockfile into main
All checks were successful
Python Linters / formatting (push) Successful in 46s
Python Linters / pylint (push) Successful in 54s
REUSE Compliance / reuse (push) Successful in 11s
Python Linters / mypy (push) Successful in 47s
Selftests / test-build-install (push) Successful in 45s
Selftests / test-sync (push) Successful in 57s
Reviewed-on: #16
2024-03-01 13:42:41 +01:00
3c9130be14 Merge branch 'main' into renovate/pylint-3.x-lockfile
All checks were successful
Python Linters / formatting (pull_request) Successful in 54s
Python Linters / pylint (pull_request) Successful in 1m4s
REUSE Compliance / reuse (pull_request) Successful in 12s
Python Linters / mypy (pull_request) Successful in 52s
Selftests / test-build-install (pull_request) Successful in 50s
Selftests / test-sync (pull_request) Successful in 1m0s
2024-03-01 13:37:39 +01:00
90966e0c89 Merge pull request 'chore(deps): update fsfe/reuse-action action to v3' (#17) from renovate/fsfe-reuse-action-3.x into main
All checks were successful
Python Linters / formatting (push) Successful in 1m34s
Python Linters / pylint (push) Successful in 1m45s
REUSE Compliance / reuse (push) Successful in 25s
Python Linters / mypy (push) Successful in 46s
Selftests / test-build-install (push) Successful in 54s
Selftests / test-sync (push) Successful in 1m34s
Reviewed-on: #17
2024-03-01 13:27:48 +01:00
7002577290 chore(deps): update fsfe/reuse-action action to v3
All checks were successful
Python Linters / pylint (pull_request) Successful in 1m26s
Python Linters / formatting (pull_request) Successful in 38s
REUSE Compliance / reuse (pull_request) Successful in 26s
Python Linters / mypy (pull_request) Successful in 53s
Selftests / test-build-install (pull_request) Successful in 51s
Selftests / test-sync (pull_request) Successful in 1m35s
2024-02-27 23:02:11 +00:00
5d22f31c19 chore(deps): update dependency pylint to v3.1.0
Some checks failed
Python Linters / pylint (pull_request) Failing after 22s
Python Linters / formatting (pull_request) Failing after 33s
Python Linters / mypy (pull_request) Failing after 36s
REUSE Compliance / reuse (pull_request) Successful in 22s
Selftests / test-build-install (pull_request) Failing after 33s
Selftests / test-sync (pull_request) Failing after 36s
2024-02-25 23:03:15 +00:00
ffa853cb2a Merge pull request 'chore(deps): update dependency black to v24.2.0' (#15) from renovate/black-24.x-lockfile into main
All checks were successful
Python Linters / formatting (push) Successful in 1m30s
Python Linters / pylint (push) Successful in 1m41s
REUSE Compliance / reuse (push) Successful in 22s
Python Linters / mypy (push) Successful in 51s
Selftests / test-build-install (push) Successful in 47s
Selftests / test-sync (push) Successful in 1m6s
Reviewed-on: #15
2024-02-17 09:19:43 +01:00
c152bccd81 chore(deps): update dependency black to v24.2.0
All checks were successful
Python Linters / pylint (pull_request) Successful in 36s
Python Linters / formatting (pull_request) Successful in 45s
Python Linters / mypy (pull_request) Successful in 49s
REUSE Compliance / reuse (pull_request) Successful in 9s
Selftests / test-build-install (pull_request) Successful in 47s
Selftests / test-sync (pull_request) Successful in 1m29s
2024-02-12 23:02:34 +00:00
83a64a3c63 Merge pull request 'chore(deps): update jrubics/poetry-publish action to v2' (#14) from renovate/jrubics-poetry-publish-2.x into main
All checks were successful
Python Linters / pylint (push) Successful in 1m4s
Python Linters / formatting (push) Successful in 56s
Python Linters / mypy (push) Successful in 59s
REUSE Compliance / reuse (push) Successful in 10s
Selftests / test-build-install (push) Successful in 53s
Selftests / test-sync (push) Successful in 1m17s
Reviewed-on: #14
2024-02-09 09:46:14 +01:00
75fee2d622 chore(deps): update jrubics/poetry-publish action to v2
All checks were successful
Python Linters / pylint (pull_request) Successful in 1m0s
Python Linters / formatting (pull_request) Successful in 50s
Python Linters / mypy (pull_request) Successful in 50s
REUSE Compliance / reuse (pull_request) Successful in 20s
Selftests / test-build-install (pull_request) Successful in 53s
Selftests / test-sync (pull_request) Successful in 1m12s
2024-02-08 23:04:26 +00:00
8bcadaab3f Merge pull request 'chore(deps): update dependency black to v24.1.1' (#13) from renovate/black-24.x-lockfile into main
All checks were successful
Python Linters / pylint (push) Successful in 1m5s
Python Linters / formatting (push) Successful in 53s
Python Linters / mypy (push) Successful in 55s
REUSE Compliance / reuse (push) Successful in 11s
Selftests / test-build-install (push) Successful in 53s
Selftests / test-sync (push) Successful in 1m17s
Reviewed-on: #13
2024-01-29 16:32:12 +01:00
73ac8287dc chore(deps): update dependency black to v24.1.1
All checks were successful
Python Linters / pylint (pull_request) Successful in 39s
Python Linters / formatting (pull_request) Successful in 46s
REUSE Compliance / reuse (pull_request) Successful in 10s
Python Linters / mypy (pull_request) Successful in 50s
Selftests / test-build-install (pull_request) Successful in 46s
Selftests / test-sync (pull_request) Successful in 1m9s
2024-01-28 23:02:49 +00:00
d7b517dcfd Merge pull request 'chore(deps): update dependency black to v24' (#12) from renovate/black-24.x into main
All checks were successful
Python Linters / pylint (push) Successful in 1m0s
Python Linters / formatting (push) Successful in 50s
Python Linters / mypy (push) Successful in 52s
REUSE Compliance / reuse (push) Successful in 10s
Selftests / test-build-install (push) Successful in 49s
Selftests / test-sync (push) Successful in 1m19s
Reviewed-on: #12
2024-01-27 12:13:55 +01:00
408be1f7a5 chore(deps): update dependency black to v24
All checks were successful
Python Linters / pylint (pull_request) Successful in 39s
Python Linters / formatting (pull_request) Successful in 45s
Python Linters / mypy (pull_request) Successful in 48s
REUSE Compliance / reuse (pull_request) Successful in 9s
Selftests / test-build-install (pull_request) Successful in 43s
Selftests / test-sync (pull_request) Successful in 1m16s
2024-01-26 23:02:51 +00:00
9da3e2437a Merge pull request 'chore(deps): update actions/checkout action to v4' (#11) from renovate/actions-checkout-4.x into main
All checks were successful
Python Linters / formatting (push) Successful in 1m33s
Python Linters / pylint (push) Successful in 1m45s
REUSE Compliance / reuse (push) Successful in 22s
Python Linters / mypy (push) Successful in 53s
Selftests / test-build-install (push) Successful in 52s
Selftests / test-sync (push) Successful in 1m7s
Reviewed-on: #11
2024-01-17 19:49:50 +01:00
4c334858b2 chore(deps): update actions/checkout action to v4
All checks were successful
Python Linters / pylint (pull_request) Successful in 1m21s
Python Linters / formatting (pull_request) Successful in 26s
Python Linters / mypy (pull_request) Successful in 44s
REUSE Compliance / reuse (pull_request) Successful in 9s
Selftests / test-build-install (pull_request) Successful in 46s
Selftests / test-sync (pull_request) Successful in 1m19s
2024-01-16 23:00:41 +00:00
bca361ab95 release version 0.2.0
All checks were successful
Python Linters / formatting (push) Successful in 51s
Python Linters / pylint (push) Successful in 1m0s
REUSE Compliance / reuse (push) Successful in 10s
Python Linters / mypy (push) Successful in 54s
Selftests / test-build-install (push) Successful in 52s
Selftests / test-sync (push) Successful in 1m37s
Python package / build (push) Successful in 1m29s
2024-01-16 17:03:01 +01:00
400db96e3e Merge pull request 'CI tests and publishing' (#10) from ci-test into main
All checks were successful
Python Linters / formatting (push) Successful in 52s
Python Linters / pylint (push) Successful in 1m3s
REUSE Compliance / reuse (push) Successful in 10s
Python Linters / mypy (push) Successful in 57s
Selftests / test-build-install (push) Successful in 55s
Selftests / test-sync (push) Successful in 59s
Reviewed-on: #10
2024-01-16 16:54:02 +01:00
4250475933 add version command
All checks were successful
Python Linters / formatting (pull_request) Successful in 1m17s
Python Linters / mypy (pull_request) Successful in 1m24s
Python Linters / pylint (pull_request) Successful in 1m31s
REUSE Compliance / reuse (pull_request) Successful in 15s
Selftests / test-build-install (pull_request) Successful in 54s
Selftests / test-sync (pull_request) Successful in 1m16s
2024-01-16 16:47:19 +01:00
60455082c2 fix pylint by igoring some errors 2024-01-16 16:47:19 +01:00
86a64570c5 add CI tests and publishing workflows 2024-01-16 16:47:19 +01:00
6d62bcf3ab fix REUSE compliance 2024-01-15 17:22:26 +01:00
7783f88f0e Merge pull request 'chore(deps): update dependency pylint to v3' (#9) from renovate/pylint-3.x into main
Reviewed-on: #9
2024-01-15 17:08:27 +01:00
7ca9442dca chore(deps): update dependency pylint to v3 2024-01-15 16:06:14 +00:00
2c7fd637ff Merge pull request 'chore(deps): update dependency mypy to v1.8.0' (#8) from renovate/mypy-1.x-lockfile into main
Reviewed-on: #8
2024-01-15 17:04:34 +01:00
07550ed290 Merge pull request 'chore(deps): update dependency isort to v5.13.2' (#7) from renovate/isort-5.x-lockfile into main
Reviewed-on: #7
2024-01-15 17:04:28 +01:00
8d9ae25b26 Merge pull request 'chore(deps): update dependency black to v23.12.1' (#5) from renovate/black-23.x-lockfile into main
Reviewed-on: #5
2024-01-15 17:04:20 +01:00
9f4ff81133 Merge pull request 'chore(deps): update dependency pylint to v2.17.7' (#4) from renovate/pylint-2.x-lockfile into main
Reviewed-on: #4
2024-01-15 17:04:13 +01:00
c5e6238e77 chore(deps): update dependency mypy to v1.8.0 2024-01-15 16:02:59 +00:00
7644910bf1 chore(deps): update dependency isort to v5.13.2 2024-01-15 16:02:49 +00:00
a4c701df0d chore(deps): update dependency black to v23.12.1 2024-01-15 15:59:58 +00:00
539f961f4c chore(deps): update dependency pylint to v2.17.7 2024-01-15 15:59:48 +00:00
c1baccee23 enable renovate for repository 2024-01-15 16:57:37 +01:00
7806c859fc add pypi badges 2023-09-22 11:33:47 +02:00
523f23d301 update README 2023-09-22 11:30:16 +02:00
c730a98168 fix black 2023-09-22 09:54:32 +02:00
c3b1d69416 fix REUSE compliance 2023-09-22 09:52:21 +02:00
a87045e3c6 update documentation 2023-09-22 09:52:07 +02:00
e5b1022e0b ignore dist dir and configuration file 2023-09-22 09:47:30 +02:00
cfed5c4807 convert to poetry project, fix mypy issues 2023-09-21 17:23:14 +02:00
8c54fd318a make final log message contain total duration and size for whole run 2023-06-09 10:18:41 +02:00
22f5c05d92 fix formatting 2023-06-09 10:18:14 +02:00
721d96101f show size and duration after sync 2023-06-09 10:07:05 +02:00
e061c160fd add REUSE API badge 2023-06-09 09:14:42 +02:00
19 changed files with 1487 additions and 51 deletions

View File

@@ -0,0 +1,21 @@
# SPDX-FileCopyrightText: 2023 DB Systel GmbH
#
# SPDX-License-Identifier: Apache-2.0
name: "Reusable Poetry build workflow"
inputs:
poetry_install_args:
default: ""
description: "Value for additional poetry install arguments"
required: false
runs:
using: "composite"
steps:
- name: Add pipx to PATH
run: echo "/root/.local/bin" >> ${GITHUB_PATH}
- name: Install poetry
run: pipx install poetry
- name: Install poetry package
run: poetry install --no-interaction ${{ inputs.poetry_install_args }}
shell: bash

View File

@@ -0,0 +1,41 @@
# SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
#
# SPDX-License-Identifier: Apache-2.0
name: Python Linters
on:
push:
branches:
- main
pull_request:
jobs:
pylint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install dependencies
uses: ./.gitea/actions/poetrybuild
- name: Lint with pylint
run: poetry run pylint seafile_mirror
formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install dependencies
uses: ./.gitea/actions/poetrybuild
- name: Test formatting with isort and black
run: |
poetry run isort --check seafile_mirror/
poetry run black .
mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install dependencies
uses: ./.gitea/actions/poetrybuild
- name: Test typing with mypy
run: poetry run mypy

View File

@@ -0,0 +1,18 @@
# SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
#
# SPDX-License-Identifier: Apache-2.0
name: Python package
on:
push:
tags:
- "v*.*.*"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Build and publish to PyPI
uses: https://github.com/JRubics/poetry-publish@v2.1
with:
pypi_token: ${{ secrets.PYPI_TOKEN }}

View File

@@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
#
# SPDX-License-Identifier: Apache-2.0
name: REUSE Compliance
on:
push:
branches:
- main
pull_request:
jobs:
reuse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Check REUSE Compliance
uses: https://github.com/fsfe/reuse-action@v6

View File

@@ -0,0 +1,59 @@
# SPDX-FileCopyrightText: 2023 DB Systel GmbH
# SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
#
# SPDX-License-Identifier: Apache-2.0
name: Selftests
on:
push:
branches:
- main
pull_request:
jobs:
# Test building the package and installing it via pip3
test-build-install:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v6
- name: Add pipx to PATH
run: echo "/root/.local/bin" >> ${GITHUB_PATH}
- name: Install poetry
run: pipx install poetry
- name: Build package
run: poetry build
- name: Install package
run: pip3 install dist/seafile_mirror-*.tar.gz
- name: Run package
run: |
seafile-mirror --version
seafile-mirror --help
# Run tool and sync a test library
test-sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install dependencies
uses: ./.gitea/actions/poetrybuild
# using minimal set of dependencies
with:
poetry_install_args: "--without dev"
- name: Install seaf-cli
run: |
apt-get update
apt-get install -y seafile-cli
- name: Configure seaf-cli and start daemon
run: |
seaf-cli init -d /tmp
seaf-cli start
- name: Fill configuration for test library
run: |
sed -i "s|__seafile_server__|${{ secrets.SEAFILE_SERVER }}|" tests/seafile_mirror.conf.yaml
sed -i "s|__seafile_user__|${{ secrets.SEAFILE_USER }}|" tests/seafile_mirror.conf.yaml
sed -i "s|__seafile_pass__|${{ secrets.SEAFILE_PASS }}|" tests/seafile_mirror.conf.yaml
- name: Sync the library
run: poetry run seafile-mirror -c tests -v
- name: Attempt to find expected string in library
run: grep "__ci_test_expect__" tests/ci-test/testfile.txt

4
.gitignore vendored
View File

@@ -2,6 +2,10 @@
#
# SPDX-License-Identifier: Apache-2.0
dist/
venv/
.seafile_mirror.db.json
/seafile_mirror.conf.yaml
__pycache__/
*.log
tests/ci-test/

View File

@@ -6,6 +6,10 @@ SPDX-License-Identifier: Apache-2.0
# Seafile Mirror
[![REUSE status](https://api.reuse.software/badge/src.mehl.mx/mxmehl/seafile-mirror)](https://api.reuse.software/info/src.mehl.mx/mxmehl/seafile-mirror)
[![The latest version of reuse can be found on PyPI.](https://img.shields.io/pypi/v/seafile-mirror.svg)](https://pypi.org/project/seafile-mirror/)
[![Information on what versions of Python the tool supports can be found on PyPI.](https://img.shields.io/pypi/pyversions/seafile-mirror.svg)](https://pypi.org/project/seafile-mirror/)
A Python tool to handle clean read-only (re-)syncs of
[Seafile](https://www.seafile.com) libraries with the intention to mirror them.
@@ -39,30 +43,47 @@ Seafile servers!
## Install
The tool depends on the following applications:
* `Python 3` and its library `yaml`
* [`seafile-cli`](https://help.seafile.com/syncing_client/linux-cli/), available e.g. in [Debian](https://packages.debian.org/bullseye/seafile-cli)
* `Python 3`
* [`seafile-cli`](https://help.seafile.com/syncing_client/linux-cli/), available
e.g. in [Debian](https://packages.debian.org/bullseye/seafile-cli)
You can execute the tool with `python3 seafile_mirror.py`. The `--help` flag
informs you about the required and available commands.
You can install the latest release via `pip3 install seafile-mirror`.
The tool is executable by `seafile-mirror`. The `--help` flag informs you about
the required and available commands.
There is also an [Ansible
role](https://src.mehl.mx/mxmehl/seafile-mirror-ansible) that takes care of
installing the tool, setting up a systemd service, and running it daily.
installing the tool via `pipx`, setting up a systemd service, and running it
daily.
To keep the Seafile daemon that is required for `seafile-cli` running in the background, check out this [exemplary systemd service](examples/seaf-daemon.service).
To keep the Seafile daemon that is required for `seafile-cli` running in the
background, check out this [exemplary systemd
service](examples/seaf-daemon.service).
## Configuration
Configuration is done in a YAML file called `seafile_mirror.conf.yaml`. You can find an example [here](examples/seafile_mirror.conf.yaml).
Configuration is done in a YAML file called `seafile_mirror.conf.yaml`. You can
find an example [here](examples/seafile_mirror.conf.yaml).
If that configuration file resides in the same location as the `seafile_mirror.py` file you are running, you should provide `--configdir ./`.
If that configuration file resides in the same location your current working
directory, you should provide `--configdir ./`.
## Logging and caching
The tool creates `seafile_mirror.log` in addition to the log to the standard
output. With `-v` you can print DEBUG messages that will help you in case of
problems.
output in the configuration directory. With `-v` you can print DEBUG messages
that will help you in case of problems.
It also caches the current status of synced libraries and their latest full
download in the file `.seafile_mirror.db.json`. Do not delete this file unless
you don't mind that the tool will re-sync all libraries in the next run.
## Contribute and Development
Contributions are welcome! The development is easiest with `poetry`: `poetry
install` and `poetry run seafile-mirror` will get you started.
## License
Apache-2.0, Copyright Max Mehl

View File

@@ -1,3 +0,0 @@
# SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
#
# SPDX-License-Identifier: Apache-2.0

1114
poetry.lock generated Normal file

File diff suppressed because it is too large Load Diff

3
poetry.lock.license Normal file
View File

@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
SPDX-License-Identifier: Apache-2.0

57
pyproject.toml Normal file
View File

@@ -0,0 +1,57 @@
# SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
#
# SPDX-License-Identifier: Apache-2.0
[tool.poetry]
name = "seafile-mirror"
version = "0.2.2"
description = "Handle clean read-only (re-)syncs of Seafile libraries to mirror them"
authors = ["Max Mehl <mail@mehl.mx>"]
license = "Apache-2.0"
readme = "README.md"
repository = "https://src.mehl.mx/mxmehl/seafile-mirror"
packages = [{ include = "seafile_mirror" }]
[tool.poetry.scripts]
seafile-mirror = 'seafile_mirror.seafile_mirror:main'
[tool.poetry.dependencies]
python = "^3.10"
pyyaml = "^6.0.1"
[tool.poetry.group.dev.dependencies]
pylint = "^4.0.0"
isort = "^8.0.0"
black = "^26.0.0"
mypy = "^1.5.1"
pylama = "^8.4.1"
types-pyyaml = "^6.0.12.11"
bump-my-version = "^1.0.0"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
# FORMATTING settings
[tool.isort]
profile = "black"
[tool.black]
line-length = 100
# MYPY settings
[tool.mypy]
files = ["seafile_mirror/*.py"]
# Bump-My-Version
[tool.bumpversion]
commit = true
tag = true
allow_dirty = false
tag_name = "v{new_version}"
[[tool.bumpversion.files]]
filename = "pyproject.toml"
regex = true
search = "^version = \"{current_version}\""
replace = "version = \"{new_version}\""

18
renovate.json5 Normal file
View File

@@ -0,0 +1,18 @@
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
extends: ["local>renovate-bot/renovate-config"],
"packageRules": [
// Group and merge all dev dependencies, even major versions
{
"matchDepTypes": ["dev"],
"groupName": "all-dev-dependencies",
"automerge": true
},
// Merge all other patch and minor dependencies
{
"matchUpdateTypes": ["minor", "patch"],
"matchCurrentVersion": "!/^0/",
"automerge": true
}
]
}

3
renovate.json5.license Normal file
View File

@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
SPDX-License-Identifier: Apache-2.0

10
seafile_mirror/__init__.py Executable file
View File

@@ -0,0 +1,10 @@
# SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
#
# SPDX-License-Identifier: Apache-2.0
"""Global init file"""
from importlib.metadata import version
__version__ = version("seafile-mirror")

View File

@@ -43,9 +43,7 @@ def db_update(dbdict, libid, **kwargs):
if libid not in dbdict:
dbdict[libid] = {}
for key, value in kwargs.items():
logging.debug(
"Updating '%s' of library '%s' in in-memory cache dictionary", key, libid
)
logging.debug("Updating '%s' of library '%s' in in-memory cache dictionary", key, libid)
dbdict[libid][key] = value
db_write(dbdict)

View File

@@ -39,3 +39,14 @@ def findstring(text, string):
def countlines(string: str) -> int:
"""Count number of lines in a variable"""
return len(string.splitlines())
def convert_bytes(size):
"""Convert bytes to KB, MB etc depending on size"""
power = 1024
level = 0
labels = {0: "B", 1: "KB", 2: "MB", 3: "GB", 4: "TB"}
while size > power:
size /= power
level += 1
return f"{round(size, 2)} {labels[level]}"

View File

@@ -10,7 +10,7 @@ import subprocess
import sys
from time import sleep
from .cachedb import db_get_library_key, db_update
from ._cachedb import db_get_library_key, db_update
# Constants
# Seafile CLI command
@@ -38,7 +38,7 @@ def sf_runcmd(auth: list, *arguments: str) -> str:
# check for errors
if ret.returncode != 0:
logging.error("The command '%s' returned an error: %s", ret.args, ret.stderr)
return False
return ""
return ret.stdout.decode("UTF-8")
@@ -50,20 +50,20 @@ def sf_parse(output: str, fromcommand: str) -> list:
for lib in output.splitlines()[1:]:
# If list, split is by " ", and structure is name,id,dir
if fromcommand == "list":
lib = [x.strip() for x in lib.split(" ")]
lib = {"name": lib[0], "id": lib[1], "dir": lib[2]}
libs.append(lib)
lib_info = [x.strip() for x in lib.split(" ")]
lib_dict = {"name": lib_info[0], "id": lib_info[1], "dir": lib_info[2]}
libs.append(lib_dict)
# If status, split is by "\t", and structure is name,status,progress
elif fromcommand == "status":
lib_tmp = [x.strip() for x in lib.split("\t")]
lib = {"name": lib_tmp[0], "status": lib_tmp[1]}
lib_dict = {"name": lib_tmp[0], "status": lib_tmp[1]}
# Add progress if it exists
try:
lib["progress"] = lib_tmp[2]
lib_dict["progress"] = lib_tmp[2]
except IndexError:
lib["progress"] = None
lib_dict["progress"] = ""
libs.append(lib)
libs.append(lib_dict)
return libs
@@ -71,8 +71,8 @@ def sf_parse(output: str, fromcommand: str) -> list:
def sf_getstatus(libname: str) -> dict:
"""Return the current status of a library (name, status, progress)"""
# Get output of `status` and parse it
libsstatus = sf_runcmd(None, "status")
libsstatus = sf_parse(libsstatus, "status")
libsstatus_cmd = sf_runcmd([], "status")
libsstatus = sf_parse(libsstatus_cmd, "status")
# In the list of statuses, get the one for the requested library. None if no match
status = next((item for item in libsstatus if item["name"] == libname), None)
@@ -140,10 +140,10 @@ def sf_desync_all(cache):
sys.exit(1)
def sf_waitforsynced(libname) -> int:
def sf_waitforsynced(libname) -> float:
"""Regularly check status of the library that started to sync"""
libsynced = False
syncwaitmins = 0
syncwaitmins: float = 0
nostatus, nostatus_limit = 0, 10
while libsynced is not True:
libstatus = sf_getstatus(libname)
@@ -183,8 +183,8 @@ def sf_waitforsynced(libname) -> int:
libname,
nostatus_limit,
)
sf_runcmd(None, "stop")
sf_runcmd(None, "start")
sf_runcmd([], "stop")
sf_runcmd([], "start")
# If library not synced yet or no status available, wait
if not libsynced:

View File

@@ -14,9 +14,10 @@ from time import sleep
import yaml
from functions.cachedb import db_read
from functions.helpers import findstring, get_lock
from functions.seafile import (
from . import __version__
from ._cachedb import db_read
from ._helpers import convert_bytes, findstring, get_lock
from ._seafile import (
sf_bump_cache_status,
sf_desync_all,
sf_lastsync_old_enough,
@@ -26,6 +27,11 @@ from functions.seafile import (
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("-c", "--configdir", required=True, help="The config directory")
parser.add_argument(
"-l",
"--logfile",
help="The path to the logfile. Default: <configdir>/seafile_mirror.log",
)
parser.add_argument(
"-d",
"--dry",
@@ -48,10 +54,21 @@ parser.add_argument(
default=False,
help="Print and log DEBUG messages",
)
parser.add_argument("--version", action="version", version="%(prog)s " + __version__)
def main():
def main(): # pylint: disable=too-many-locals, too-many-statements, too-many-branches
"""Main function"""
args = parser.parse_args()
# Set files depending on configdir
configdir = args.configdir.rstrip("/") + "/"
configfile = configdir + "seafile_mirror.conf.yaml"
cachefile = configdir + ".seafile_mirror.db.json"
if args.logfile:
logfile = args.logfile
else:
logfile = configdir + "seafile_mirror.log"
# Logging
log = logging.getLogger()
logging.basicConfig(
@@ -86,7 +103,7 @@ def main():
sf_desync_all(cache)
# Create list of libraries we handle(d) for final output
libsdone = []
libsdone = {"libs": [], "bytes": 0, "time": 0}
# Go through users in config
for access in config:
@@ -114,16 +131,12 @@ def main():
libid = lib["id"]
# Set resync interval if there is a lib-specific setting. Otherwise default
libresyncinterval = (
lib["resync_interval_days"]
if "resync_interval_days" in lib
else resyncinterval
lib["resync_interval_days"] if "resync_interval_days" in lib else resyncinterval
)
# Check if last sync of library is older than resync_interval_days
if sf_lastsync_old_enough(cache, libid, args.force, libresyncinterval):
logging.info(
"Starting to re-sync library %s (%s) to %s", libname, libid, libdir
)
logging.info("Starting to re-sync library %s (%s) to %s", libname, libid, libdir)
else:
logging.info(
"Local mirror of library %s (%s) at %s is still recent enough. Skipping it.",
@@ -183,22 +196,33 @@ def main():
)
sf_runcmd(None, "desync", "-d", libdir)
# Get size of directory (libdir) in bytes
# Note: this is not fully equivalent with what `du` would show. It's
# caused by the fact that `du` considers filesystem block sizes
libdirsize = sum(f.stat().st_size for f in libdir.glob("**/*") if f.is_file())
# Update libsdone and cache
libsdone.append(libname)
libsdone["libs"].append(libname)
libsdone["bytes"] += libdirsize
libsdone["time"] += syncduration
sf_bump_cache_status(cache, libid, status="synced", duration=syncduration)
logging.info(
"Library %s (%s) has been re-synced to %s", libname, libid, libdir
"Library %s (%s) has been re-synced to %s. Duration: %s minutes. Size: %s",
libname,
libid,
libdir,
round(syncduration),
convert_bytes(libdirsize),
)
logging.info("Fully re-synced the following libraries: %s", ", ".join(libsdone))
logging.info(
"Fully re-synced the following libraries: %s. Total duration: %s minutes. Total size: %s",
", ".join(libsdone["libs"]),
round(libsdone["time"]),
convert_bytes(libsdone["bytes"]),
)
if __name__ == "__main__":
args = parser.parse_args()
# Set files depending on configdir
configdir = args.configdir.rstrip("/") + "/"
configfile = configdir + "seafile_mirror.conf.yaml"
cachefile = configdir + ".seafile_mirror.db.json"
logfile = configdir + "seafile_mirror.log"
main()

View File

@@ -0,0 +1,18 @@
# SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
#
# SPDX-License-Identifier: Apache-2.0
# Configuration file for seafile-mirror which will be filled in and applied in
# the CI test
- server: __seafile_server__
user: __seafile_user__
password: __seafile_pass__
# The default resync interval
resync_interval_days: 7
# Define the libraries which shall be synced
libs:
- name: ci-test
# ID of the Seafile library (can be seen in the web UI)
id: 558667f5-cee2-443d-8f8e-668e70a23e9f
# local directory where the mirror shall be created
dir: tests/ci-test