wdsync 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. wdsync-0.1.0/.gitignore +11 -0
  2. wdsync-0.1.0/.pre-commit-config.yaml +19 -0
  3. wdsync-0.1.0/.wdsync.example +3 -0
  4. wdsync-0.1.0/CHANGELOG.md +48 -0
  5. wdsync-0.1.0/LICENSE +676 -0
  6. wdsync-0.1.0/PKG-INFO +193 -0
  7. wdsync-0.1.0/README.md +166 -0
  8. wdsync-0.1.0/SETUP.md +141 -0
  9. wdsync-0.1.0/docs/DEVELOPER_SETUP.md +149 -0
  10. wdsync-0.1.0/docs/IN_DEVELOPMENT.md +378 -0
  11. wdsync-0.1.0/pyproject.toml +100 -0
  12. wdsync-0.1.0/scripts/bash/wdsync +12 -0
  13. wdsync-0.1.0/scripts/bash/wdsync-init +12 -0
  14. wdsync-0.1.0/scripts/fish/wdsync-init.fish +10 -0
  15. wdsync-0.1.0/scripts/fish/wdsync.fish +10 -0
  16. wdsync-0.1.0/src/wdsync/__init__.py +3 -0
  17. wdsync-0.1.0/src/wdsync/__main__.py +4 -0
  18. wdsync-0.1.0/src/wdsync/cli.py +170 -0
  19. wdsync-0.1.0/src/wdsync/config.py +156 -0
  20. wdsync-0.1.0/src/wdsync/doctor.py +106 -0
  21. wdsync-0.1.0/src/wdsync/exceptions.py +58 -0
  22. wdsync-0.1.0/src/wdsync/formatters.py +157 -0
  23. wdsync-0.1.0/src/wdsync/git_dest.py +40 -0
  24. wdsync-0.1.0/src/wdsync/git_source.py +33 -0
  25. wdsync-0.1.0/src/wdsync/models.py +188 -0
  26. wdsync-0.1.0/src/wdsync/path_utils.py +76 -0
  27. wdsync-0.1.0/src/wdsync/planner.py +46 -0
  28. wdsync-0.1.0/src/wdsync/runner.py +91 -0
  29. wdsync-0.1.0/src/wdsync/shell.py +106 -0
  30. wdsync-0.1.0/src/wdsync/status_parser.py +83 -0
  31. wdsync-0.1.0/src/wdsync/sync.py +47 -0
  32. wdsync-0.1.0/tests/conftest.py +83 -0
  33. wdsync-0.1.0/tests/fixtures/.gitkeep +1 -0
  34. wdsync-0.1.0/tests/test_cli.py +480 -0
  35. wdsync-0.1.0/tests/test_config.py +274 -0
  36. wdsync-0.1.0/tests/test_doctor.py +235 -0
  37. wdsync-0.1.0/tests/test_formatters.py +141 -0
  38. wdsync-0.1.0/tests/test_git_dest.py +32 -0
  39. wdsync-0.1.0/tests/test_git_source.py +41 -0
  40. wdsync-0.1.0/tests/test_integration.py +95 -0
  41. wdsync-0.1.0/tests/test_labels.py +20 -0
  42. wdsync-0.1.0/tests/test_main.py +14 -0
  43. wdsync-0.1.0/tests/test_path_utils.py +103 -0
  44. wdsync-0.1.0/tests/test_runner.py +68 -0
  45. wdsync-0.1.0/tests/test_shell.py +135 -0
  46. wdsync-0.1.0/tests/test_status_parser.py +60 -0
  47. wdsync-0.1.0/uv.lock +544 -0
@@ -0,0 +1,11 @@
1
+ .venv/
2
+ .pytest_cache/
3
+ .ruff_cache/
4
+ .pyright/
5
+ .coverage
6
+ htmlcov/
7
+ build/
8
+ dist/
9
+ __pycache__/
10
+ *.pyc
11
+ .wdsync
@@ -0,0 +1,19 @@
1
+ repos:
2
+ - repo: local
3
+ hooks:
4
+ - id: ruff-check
5
+ name: ruff check
6
+ entry: uv run ruff check --fix
7
+ language: system
8
+ files: ^(pyproject\.toml|src/.*\.py|tests/.*\.py)$
9
+ - id: ruff-format
10
+ name: ruff format
11
+ entry: uv run ruff format
12
+ language: system
13
+ files: ^(src/.*\.py|tests/.*\.py)$
14
+ - id: pyright
15
+ name: pyright
16
+ entry: uv run pyright
17
+ language: system
18
+ pass_filenames: false
19
+ files: ^(pyproject\.toml|src/.*\.py|tests/.*\.py)$
@@ -0,0 +1,3 @@
1
+ # Windows source repo mirrored into this WSL repo
2
+ # Used by the wdsync Python CLI
3
+ SRC=/mnt/c/Users/YourName/path/to/WindowsRepo
@@ -0,0 +1,48 @@
1
+ # Changelog
2
+
3
+ All notable changes to `wdsync` will be documented in this file.
4
+
5
+ The format is based on Keep a Changelog, and this project aims to follow
6
+ Semantic Versioning once formal releases begin.
7
+
8
+ ## [0.1.0] - 2026-03-20
9
+
10
+ ### Added
11
+
12
+ - Rebuilt `wdsync` as a Python 3.11+ CLI package with a `src/` layout and a
13
+ `wdsync` console entry point.
14
+ - Added Typer-based commands for `preview`, `sync`, `init`, `doctor`, and
15
+ `shell install`.
16
+ - Added `python -m wdsync` support through `__main__.py`.
17
+ - Added `uv`-based project management with dev tooling for Ruff, Pyright, and
18
+ pytest.
19
+ - Added built-in coverage reporting for the default `uv run pytest` workflow
20
+ through `pytest-cov` and `coverage.py` configuration in `pyproject.toml`.
21
+ - Added a repository `.pre-commit-config.yaml` that runs `ruff check --fix`,
22
+ `ruff format`, and `pyright` before commits.
23
+ - Added typed domain models, centralized subprocess execution, structured
24
+ formatters, and JSON output for `preview`, `sync`, and `doctor`.
25
+ - Added optional shell integration for bash, fish, and zsh with auto-detection
26
+ and shell-specific install behavior.
27
+ - Added unit and integration tests covering config loading, status parsing,
28
+ planner behavior, CLI dispatch, sync execution, and doctor checks.
29
+
30
+ ### Changed
31
+
32
+ - Moved the core implementation out of shell scripts and into a modular Python
33
+ package.
34
+ - Made the CLI binary-first and shell-agnostic for normal usage.
35
+ - Updated the project workflow to use `uv sync --dev`, `uv run pytest`,
36
+ `uv run ruff check .`, and `uv run pyright`.
37
+ - Updated repository documentation to reflect the Python CLI baseline and the
38
+ v1 feature set.
39
+
40
+ ### Fixed
41
+
42
+ - Corrected Git porcelain v1 `-z` rename and copy parsing.
43
+ - Expanded untracked directories to leaf files by reading source status with
44
+ `--untracked-files=all`.
45
+ - Prevented deleted source files from breaking sync by previewing them but
46
+ skipping them during `rsync`.
47
+ - Preserved the low-friction `.wdsync` workflow while making the internal
48
+ implementation typed, testable, and modular.