dw-0
8b9d172805
test: suppress logger output globally during tests
...
Add an autouse fixture in kiauh/conftest.py that patches Logger methods
so tests produce clean, assertion-focused output.
2026-07-11 00:27:03 +02:00
dw-0
6aa170fd68
feat(tests): add pluggable subprocess and filesystem backends
...
Introduce core.backends with CommandRunner and FilesystemBackend protocols plus
default subprocess/local filesystem implementations.
Add fake backends in tests.helpers.fake_backends for isolated unit tests.
2026-07-11 00:26:59 +02:00
dw-0
861cb2bff4
chore: add pytest-cov and CI workflow
...
Add GitHub Actions workflow for running tests with coverage on Python 3.8 and 3.11.
Configure pytest-cov, coverage thresholds and expand testpaths in pyproject.toml.
Update .gitignore for .ruff_cache, .mypy_cache, *.egg-info and .coverage.
2026-07-11 00:26:49 +02:00
dw-0
7b5522ac94
feat(tests): add unit tests for shared utilities
2026-07-04 12:58:20 +02:00
dw-0
77d6c87aa0
refactor(readme): update section titles and improve table formatting
2026-06-29 22:20:55 +02:00
dw-0
b893ff14f7
chore(readme): remove jetbrains as sponsor
2026-06-29 21:36:58 +02:00
dw-0
43b0994ac5
fix(README_zh): correct Fluidd logo image path in documentation
2026-06-29 21:31:55 +02:00
dw-0
040edc1d4f
chore: remove AGENTS.md
2026-06-28 12:50:59 +02:00
dw-0
647a7d9400
feat: add initial AGENTS.md
2026-04-20 21:49:46 +02:00
dw-0
2175bd55f9
refactor: integrate simple_config_parser as internal module
2026-04-19 15:48:06 +02:00
dw-0 and GitHub
2f41e52189
fix(core): refresh system package list in update menu after update ( #791 )
2026-04-19 12:21:17 +02:00
dw-0 and GitHub
1f9d4c823a
fix(settings_menu): fix regression by checking for the correct condition ( #773 )
2026-01-31 11:13:37 +01:00
dw-0
c8df9427b3
fix(backup): improve reusability of backup service and enhance file handling
...
- Refactor `BackupService` instance management for better reuse across methods.
- Avoid redundant file backups by checking for existing files.
- Enhance directory backup logic to handle nested files and directories more efficiently.
- Standardize timestamp initialization for consistent time-based backup operations.
2026-01-31 10:59:53 +01:00
dw-0
6c9a78496a
fix(client_utils): ensure proper type conversion and hints for improved safety
...
- Standardize `str()` wrapping for color-applied strings in various returns.
- Refine type hints for better code clarity and robustness.
- Add null checks for port inputs to prevent potential errors.
2026-01-18 15:58:25 +01:00
dw-0
123ccde378
fix(core): standardize handling of None values for repo and version fields
...
- Improve local and remote version comparison by replacing default placeholders with None.
- Update repo and branch logic to handle None values consistently.
- Refactor type hints for better readability and accuracy.
2026-01-18 15:49:48 +01:00
dw-0 and GitHub
45fde808d2
fix(update_menu): refresh component status after updates ( #764 )
...
fix(update_menu): refresh component status after updates to ensure consistency
2026-01-18 14:53:04 +01:00
dw-0 and GitHub
8ba134f574
fix(ui): handle missing or empty local version values and standardize defaults ( #763 )
2026-01-18 14:18:27 +01:00
dw-0
657d919378
chore: extend copyright year to 2026 in all headers
2026-01-11 09:37:17 +01:00
dw-0
e9459bd68e
fix(backup): correct backup folder path display in menu
2025-11-09 11:58:03 +01:00
dw-0
ee460663c9
fix(spoolman): ensure proper file handling when adding Spoolman entry
2025-10-28 12:12:36 +01:00
dw-0
6f0e0146ef
fix(client): improve version retrieval logic and handle JSON errors
2025-10-27 19:00:08 +01:00
dw-0
229f317025
fix(backup): do not create redundant subdirectory on single file backup
2025-10-27 09:47:09 +01:00
dw-0
48c0ae7227
fix(backup): allow reusing existing backup directory and enhance copy options
2025-10-27 09:30:33 +01:00
dw-0 and GitHub
9c7b5fcb10
fix: update scp submodule so duplicate sections are preserved while editing configs ( #738 )
...
* fix: improve repository parsing logic to handle empty lines and comments more effectively
* fix: update scp submodule so duplicate sections are preserved while editing configs (#735 )
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from f5eee99..5bc9e0a
5bc9e0a docs: update README
394dd7b refactor!: improve parsing and writing for config (#5 )
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: 5bc9e0a50947f1be2f4877a10ab3a632774f82ea
* fix(logging): change warning to error message for config creation failure
* fix(config): improve readability by using descriptive variable names for options
(cherry picked from commit ae0a6b697e )
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from 5bc9e0a..eef8861
eef8861 refactor: update type hint for fallback parameter to Any
5d04325 Revert "chore: use Optional instead of | and None instead of _UNSET"
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: eef8861f126ddf84012ac8bed77b467926016d3e
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from eef8861..9c89612
9c89612 fix: correct assignment of raw value in option handling
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: 9c896124cf624e25410714649d306001250482f1
* fix: remove unnecessary whitespace in trusted_clients formatting
2025-10-26 22:03:26 +01:00
dw-0 and GitHub
191bdd4874
Revert "fix: update scp submodule so duplicate sections are preserved… ( #737 )
...
Revert "fix: update scp submodule so duplicate sections are preserved while editing configs (#735 )"
This reverts commit ae0a6b697e .
2025-10-26 18:58:33 +01:00
dw-0 and GitHub
ae0a6b697e
fix: update scp submodule so duplicate sections are preserved while editing configs ( #735 )
...
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from f5eee99..5bc9e0a
5bc9e0a docs: update README
394dd7b refactor!: improve parsing and writing for config (#5 )
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: 5bc9e0a50947f1be2f4877a10ab3a632774f82ea
* fix(logging): change warning to error message for config creation failure
* fix(config): improve readability by using descriptive variable names for options
2025-10-26 16:28:33 +01:00
dw-0
b6521fd721
fix(ui): replace top_border and bottom_border functions with inline echo statements for dialogs
2025-10-15 17:05:18 +02:00
dw-0
62b0f4f0f5
chore(deps): replace pyright with mypy in dev requirements
2025-10-13 21:54:35 +02:00
dw-0
fa9a032aad
docs(changelog): update changelog for KIAUH v6 release
2025-10-12 20:37:26 +02:00
dw-0
5241d9c21f
fix: update README images and paths, add new assets to docs/assets folder
2025-10-12 20:37:19 +02:00
dw-0
31150c98e2
fix: implement custom version parsing for tag sorting
2025-10-11 16:56:02 +02:00
dw-0 and GitHub
3317114780
refactor(kiauh): remove legacy scripts, configurations, and assets af… ( #729 )
...
refactor(kiauh): remove legacy scripts, configurations, and assets after migration to Python-based KIAUH v6
2025-10-11 16:38:08 +02:00
dw-0
8851bd68f8
feat(ui): update messaging for KIAUH v6 to reflect RC.2 status and encourage migration from v5
2025-10-05 17:20:30 +02:00
dw-0
9168ad88a6
refactor(backup): migrate backup_printer_config_dir to BackupService and update references accordingly
2025-09-30 21:11:48 +02:00
dw-0
03c0d46a2e
feat(backup): add fallback to search printer data directories in home directory if no instances found
2025-09-30 20:59:04 +02:00
dw-0
8a8afc60ee
feat(backup): integrate backup functionality into multiple extensions and config management
2025-09-30 20:36:42 +02:00
dw-0
5b68710b23
feat(backup): add specific backup methods for Klipper and Moonraker configs
2025-09-29 21:21:55 +02:00
dw-0
6cee0252ee
feat(moonraker): sync moonraker changes to SysDepsParser
...
https://github.com/Arksine/moonraker/commit/206fd4828d34aae5fd6aa95f8dfb31eb1fbb7df1
https://github.com/Arksine/moonraker/commit/72b89d905ee66b621ea3c4c633541e181822b448
2025-09-29 20:29:38 +02:00
dw-0
aff63665de
refactor: replace backup_manager with backup_service
2025-09-28 16:14:58 +02:00
dw-0
1ed1e0fc4c
chore(dev): replace pyright with mypy and configure mypy rules
2025-09-27 22:44:03 +02:00
dw-0
81ac102644
fix(v5): add back example file for custom Klipper repository management
2025-09-20 15:17:37 +02:00
dw-0 and GitHub
89b48168f4
fix: do not drop SAVE_CONFIG block when editing and writing config files ( #723 )
...
Squashed 'kiauh/core/submodules/simple_config_parser/' changes from 4a6e5f2..f5eee99
f5eee99 feat: add support for parsing and handling `SAVE_CONFIG` blocks (#4 )
8170583 refactor(api)!: `getval` now returns a string, `getvals` returns list of strings
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: f5eee99b0f04717c6bbf30c1256d70ad019223d5
2025-09-06 13:12:20 +02:00
dw-0
12919c7140
feat(extension): add website and repo metadata for extensions, update links formatting in menu
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-08-30 22:02:12 +02:00
dw-0
e590f668e6
fix(common): return default version if no tags exist in get_kiauh_version
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-08-28 18:28:40 +02:00
dw-0 and GitHub
afdde34721
feat(core): add repository management to settings ( #718 )
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-08-28 16:22:02 +02:00
dw-0 and GitHub
393dd1d5bf
feat(extension): add OctoPrint installer ( #716 )
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-08-28 16:21:42 +02:00
dw-0
8170057434
fix(moonraker): correctly patch trusted_clients options
...
fixes #711 #709
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-08-03 10:07:13 +02:00
dw-0 and GitHub
f95d2586bf
fix(webclient): add config.json to moonraker persistent files ( #699 )
...
fixes #694
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-06-28 10:12:28 +02:00
dw-0 and GitHub
f5141e7eff
fix(mainsail): check for json configured as instanceDB ( #698 )
...
fix(mainsail): check for json configures as instanceDB
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-06-27 22:37:44 +02:00
dw-0 and GitHub
33113e72e9
fix: exception raised on pip warning ( #688 )
...
pip seems to write to stderr on warnings, caused by retries. even if the process exits with 0.
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-05-31 17:44:02 +02:00
dw-0 and GitHub
6f59fd06aa
fix: do not upgrade pip before installing packages ( #680 )
...
pip 25 seems to introduce some compatibility issues.
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-05-02 20:08:32 +02:00
dw-0
56ea43ccb6
refactor: improve typesafety KiauhSettings
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-04-14 21:19:38 +02:00
dw-0
25e22c993f
chore(scp): update SimpleConfigParser
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-04-14 21:15:12 +02:00
dw-0
ead521b377
refactor: replace mypy with pyright
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-04-14 21:07:56 +02:00
dw-0
3c952ccc12
refactor: use sane fallbacks on missing kiauh config options
...
for some options a warning is print if the fallback is used
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-04-12 15:12:11 +02:00
dw-0
c8f713c00e
fix: no validation of optional_speedups option
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-04-12 00:36:34 +02:00
dw-0 and GitHub
c91816d13f
feat(extension): add Spoolman Docker installer ( #669 )
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-03-30 17:57:46 +02:00
dw-0
1a6f06eaf2
refactor(moonraker): move setup functions into MoonrakerSetupService
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-03-29 23:00:06 +01:00
dw-0
ea8621af0c
refactor(git_utils): remove unnecessary url parameter in git_pull_wrapper
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-03-29 16:49:08 +01:00
dw-0 and GitHub
88742ab496
feat: allow configuration of multiple repos in kiauh.cfg ( #668 )
...
* remove existing simple_config_parser directory
* Squashed 'kiauh/core/submodules/simple_config_parser/' content from commit da22e6a
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: da22e6ad9ca4bc121c39dc3bc6c63175a72e78a2
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from da22e6a..9ae5749
9ae5749 fix: comment out file writing in test
1ac4e3d refactor: improve section writing
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: 9ae574930dfe82107a3712c7c72b3aa777588996
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from 9ae5749..53e8408
53e8408 fix: do not add a blank line before writing a section header
dc77569 test: add test for removing option before writing
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: 53e840853f12318dcac68196fb74c1843cb75808
* Squashed 'kiauh/core/submodules/simple_config_parser/' changes from 53e8408..4a6e5f2
4a6e5f2 refactor: full rework of the internal storage of the parsed config
git-subtree-dir: kiauh/core/submodules/simple_config_parser
git-subtree-split: 4a6e5f23cb1f298f0a3efbf042186b16c91763c7
* refactor!: switching repos now offers list of repositories to choose from
this rework aligns more with the feature provided in kiauh v5.
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
---------
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-03-29 16:18:20 +01:00
dw-0
b99e6612e2
feat(ci): add automated release workflow for fast-forward and tagging
...
Adds a new GitHub Actions workflow that:
- Fast-forwards master branch from develop
- Creates and pushes a new release tag
- Requires manual trigger with tag name input
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-03-19 21:43:09 +01:00
dw-0 and dw-0
cf4e915430
cicd: restrict worflow runs to develop branch
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-03-13 18:26:23 +01:00
dw-0 and dw-0
8f436646cd
cicd: add action for fast-forward check and merge ( #660 )
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-03-09 12:45:46 +01:00
dw-0 and dw-0
760f131d1c
fix(klipper): handle file access exception for dietpi version file ( #658 )
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-03-09 08:32:14 +01:00
dw-0 and dw-0
41804f0eaa
style: ruff format
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-03-09 08:32:14 +01:00
dw-0 and dw-0
d3c9bcc38c
refactor(klipper): move setup functions into KlipperSetupService
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-03-09 08:32:14 +01:00
dw-0 and dw-0
7fc36f3e68
feat(moonraker): display moonraker ip address after install
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-03-08 11:41:29 +01:00
dw-0 and GitHub
9e0a8a0081
Release v5.1.3
...
Release v5.1.3
2025-02-23 12:42:44 +01:00
dw-0 and GitHub
6082528628
Merge pull request #648 from Arksine/dev-v5-moonraker-deps-fix
...
fix: add support for Moonraker's dependency requirement specifiers to V5
2025-02-23 12:32:17 +01:00
dw-0 and GitHub
7e8f1f3d81
Release v6.0.0-alpha.16
...
Merge develop into master (Release v6.0.0-alpha.16)
2025-02-22 16:25:49 +01:00
dw-0 and GitHub
234cf2c751
chore(copyright): update year ( #645 )
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-02-22 16:21:34 +01:00
dw-0 and GitHub
3bc98eed13
fix(moonraker): adapt to new moonraker system_dependency.json syntax ( #644 )
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-02-22 16:19:00 +01:00
dw-0 and GitHub
777f5e45e7
master -> develop
...
master -> develop
2025-02-20 21:00:21 +01:00
dw-0 and GitHub
5c219ec544
master -> develop ( #635 )
2025-02-15 11:26:04 +01:00
dw-0
70055e891e
Release v6.0.0-alpha.15
2025-02-15 11:17:54 +01:00
dw-0
e3a0a9dec0
Release v6.0.0-alpha.15
...
fixes #632
2025-02-15 11:15:45 +01:00
dw-0 and GitHub
1cf81377ee
Release v6.0.0-alpha.14
...
fixes #632
2025-02-15 11:11:04 +01:00
dw-0 and GitHub
aa4ea99c5c
fix(moonraker): use os-release file to get distro info ( #633 )
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-02-15 11:09:32 +01:00
dw-0 and GitHub
0becf9d574
Release v6.0.0-alpha.14
...
fixes #607
fixes #615
fixes #618
fixes #619
fixes #620
fixes #623
fixes #627
2025-02-09 21:15:42 +01:00
dw-0 and GitHub
ed1bfcdeb4
fix(moonraker): correctly install ubuntu 24.10 dependencies ( #630 )
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-02-09 21:12:59 +01:00
dw-0 and GitHub
033916216c
refactor: skip build firmware dependency screen if all are met ( #629 )
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-02-09 17:04:46 +01:00
dw-0 and GitHub
2a08e3eb15
refactor: omit port 80 for IP in success message after webclient installation ( #618 )
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-01-18 17:38:40 +01:00
dw-0 and GitHub
a2a3e92b50
refactor: remove BASE_USER argument from crowsnest install command ( #617 )
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-01-18 17:38:00 +01:00
dw-0 and GitHub
a58288e7e3
Release v6.0.0-alpha.13
...
Merge develop into master (Release v6.0.0-alpha.13)
2025-01-03 22:13:12 +01:00
dw-0 and GitHub
3852464ab7
fix: use raw strings for regex parameter in get_string_input ( #612 )
...
fixes #602
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2025-01-03 22:10:39 +01:00
dw-0
4ae5a37ec6
fix: most recent tag not shown correctly in main menu
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-11-24 21:43:10 +01:00
dw-0
935f81aab6
fix: backup fails in case of dangling symlink
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-11-24 21:26:12 +01:00
dw-0
91cba3637e
readme: update README.md
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-11-23 21:12:35 +01:00
dw-0
3fc190ff25
fix: actually raise exception on empty config value
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-11-10 21:15:08 +01:00
dw-0
6ff45aab41
refactor: implement basic input validation for repo switch feature
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-11-10 20:58:37 +01:00
dw-0
b9c9feef3c
refactor: clone repo in repo switch routine only if there is already a repo present
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-11-10 20:14:47 +01:00
dw-0
d37d047aaa
refactor: fallback to config settings for repos in settings menu
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-11-10 19:56:47 +01:00
dw-0
a3fb57aee3
refactor: return - if branch cannot be read
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-11-10 19:54:26 +01:00
dw-0
8aee23830a
feat: implement completion message for webclient config remove process
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-10-27 22:31:43 +01:00
dw-0
dd14de9a41
fix: test if checks is empty
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-10-27 22:31:43 +01:00
dw-0
1ca1e8ff6f
feat: rework completion message for webclient remove process
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-10-27 22:31:43 +01:00
dw-0
12127efa21
fix: remove extra newline
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-10-27 22:31:43 +01:00
dw-0
66a5cdf9b1
feat: implement completion message for webclient remove process
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-10-27 22:31:37 +01:00
dw-0
9b1aba207c
feat: implement completion message for klipper remove process
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-10-27 22:30:54 +01:00
dw-0
e274e3c00d
refactor: add defaults to Message and center property
...
Signed-off-by: Dominik Willner <th33xitus@gmail.com >
2024-10-27 10:57:47 +01:00