plane-compose 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 (126) hide show
  1. plane_compose-0.1.0/.gitignore +45 -0
  2. plane_compose-0.1.0/CHANGELOG.md +66 -0
  3. plane_compose-0.1.0/LICENSE.txt +664 -0
  4. plane_compose-0.1.0/PKG-INFO +526 -0
  5. plane_compose-0.1.0/README.md +482 -0
  6. plane_compose-0.1.0/docs/INSTALL.md +233 -0
  7. plane_compose-0.1.0/docs/README.md +75 -0
  8. plane_compose-0.1.0/docs/WORK_ITEM_FIELDS.md +418 -0
  9. plane_compose-0.1.0/docs/architecture.md +394 -0
  10. plane_compose-0.1.0/docs/automations/README.md +699 -0
  11. plane_compose-0.1.0/docs/automations/examples.md +507 -0
  12. plane_compose-0.1.0/docs/automations/quick-reference.md +224 -0
  13. plane_compose-0.1.0/docs/development.md +466 -0
  14. plane_compose-0.1.0/docs/examples.md +640 -0
  15. plane_compose-0.1.0/docs/troubleshooting.md +677 -0
  16. plane_compose-0.1.0/examples/README.md +73 -0
  17. plane_compose-0.1.0/examples/automations/auto-assign.yaml +47 -0
  18. plane_compose-0.1.0/examples/automations/blocker-alert.yaml +24 -0
  19. plane_compose-0.1.0/examples/automations/due-date-sla.yaml +35 -0
  20. plane_compose-0.1.0/examples/automations/escalation.yaml +20 -0
  21. plane_compose-0.1.0/examples/automations/notify-on-done.yaml +24 -0
  22. plane_compose-0.1.0/examples/automations/pr-linked.yaml +22 -0
  23. plane_compose-0.1.0/examples/automations/scripts/escalation.ts +139 -0
  24. plane_compose-0.1.0/examples/automations/scripts/example.ts +75 -0
  25. plane_compose-0.1.0/examples/automations/scripts/ml-categorize.ts +51 -0
  26. plane_compose-0.1.0/examples/automations/scripts/smart-labeler.ts +118 -0
  27. plane_compose-0.1.0/examples/automations/scripts/stale-check.ts +92 -0
  28. plane_compose-0.1.0/examples/automations/scripts/types.ts +233 -0
  29. plane_compose-0.1.0/examples/automations/smart-labeler.yaml +13 -0
  30. plane_compose-0.1.0/examples/automations/stale-check.yaml +21 -0
  31. plane_compose-0.1.0/examples/automations/triage.yaml +48 -0
  32. plane_compose-0.1.0/examples/automations/welcome-assignee.yaml +24 -0
  33. plane_compose-0.1.0/examples/hello/.gitignore +1 -0
  34. plane_compose-0.1.0/examples/hello/.plane/remote/items.yaml +45 -0
  35. plane_compose-0.1.0/examples/hello/.plane/state.json +26 -0
  36. plane_compose-0.1.0/examples/hello/automations/assign-by-label.yaml +22 -0
  37. plane_compose-0.1.0/examples/hello/automations/auto-assign.yaml +47 -0
  38. plane_compose-0.1.0/examples/hello/automations/blocker-alert.yaml +24 -0
  39. plane_compose-0.1.0/examples/hello/automations/docs/assign-by-label.html +265 -0
  40. plane_compose-0.1.0/examples/hello/automations/docs/auto-assign-by-team.html +271 -0
  41. plane_compose-0.1.0/examples/hello/automations/docs/blocker-alert.html +263 -0
  42. plane_compose-0.1.0/examples/hello/automations/docs/bug-triage.html +271 -0
  43. plane_compose-0.1.0/examples/hello/automations/docs/index.html +235 -0
  44. plane_compose-0.1.0/examples/hello/automations/docs/ml-categorize.html +258 -0
  45. plane_compose-0.1.0/examples/hello/automations/docs/notify-on-done.html +261 -0
  46. plane_compose-0.1.0/examples/hello/automations/docs/pr-linked.html +260 -0
  47. plane_compose-0.1.0/examples/hello/automations/docs/sla-due-dates.html +261 -0
  48. plane_compose-0.1.0/examples/hello/automations/docs/sla-escalation.html +258 -0
  49. plane_compose-0.1.0/examples/hello/automations/docs/smart-labeler.html +252 -0
  50. plane_compose-0.1.0/examples/hello/automations/docs/stale-check.html +258 -0
  51. plane_compose-0.1.0/examples/hello/automations/docs/welcome-assignee.html +251 -0
  52. plane_compose-0.1.0/examples/hello/automations/due-date-sla.yaml +35 -0
  53. plane_compose-0.1.0/examples/hello/automations/escalation.yaml +20 -0
  54. plane_compose-0.1.0/examples/hello/automations/ml-categorize.yaml +9 -0
  55. plane_compose-0.1.0/examples/hello/automations/notify-on-done.yaml +24 -0
  56. plane_compose-0.1.0/examples/hello/automations/pr-linked.yaml +22 -0
  57. plane_compose-0.1.0/examples/hello/automations/scripts/escalation.ts +139 -0
  58. plane_compose-0.1.0/examples/hello/automations/scripts/example.ts +75 -0
  59. plane_compose-0.1.0/examples/hello/automations/scripts/ml-categorize.ts +51 -0
  60. plane_compose-0.1.0/examples/hello/automations/scripts/smart-labeler.ts +118 -0
  61. plane_compose-0.1.0/examples/hello/automations/scripts/stale-check.ts +92 -0
  62. plane_compose-0.1.0/examples/hello/automations/scripts/types.ts +233 -0
  63. plane_compose-0.1.0/examples/hello/automations/smart-labeler.yaml +13 -0
  64. plane_compose-0.1.0/examples/hello/automations/stale-check.yaml +21 -0
  65. plane_compose-0.1.0/examples/hello/automations/triage.yaml +48 -0
  66. plane_compose-0.1.0/examples/hello/automations/welcome-assignee.yaml +24 -0
  67. plane_compose-0.1.0/examples/hello/plane.yaml +8 -0
  68. plane_compose-0.1.0/examples/hello/schema/labels.yaml +1 -0
  69. plane_compose-0.1.0/examples/hello/schema/types.yaml +52 -0
  70. plane_compose-0.1.0/examples/hello/schema/workflows.yaml +21 -0
  71. plane_compose-0.1.0/examples/hello/work/inbox.yaml +5 -0
  72. plane_compose-0.1.0/examples/hello/work/test.yaml +28 -0
  73. plane_compose-0.1.0/pyproject.toml +83 -0
  74. plane_compose-0.1.0/src/planecompose/__init__.py +2 -0
  75. plane_compose-0.1.0/src/planecompose/automations/__init__.py +25 -0
  76. plane_compose-0.1.0/src/planecompose/automations/actions.py +277 -0
  77. plane_compose-0.1.0/src/planecompose/automations/engine.py +435 -0
  78. plane_compose-0.1.0/src/planecompose/automations/evaluator.py +500 -0
  79. plane_compose-0.1.0/src/planecompose/automations/models.py +283 -0
  80. plane_compose-0.1.0/src/planecompose/automations/parser.py +175 -0
  81. plane_compose-0.1.0/src/planecompose/automations/runner.py +288 -0
  82. plane_compose-0.1.0/src/planecompose/automations/visualizer.py +675 -0
  83. plane_compose-0.1.0/src/planecompose/backend/__init__.py +1 -0
  84. plane_compose-0.1.0/src/planecompose/backend/base.py +59 -0
  85. plane_compose-0.1.0/src/planecompose/backend/plane.py +1277 -0
  86. plane_compose-0.1.0/src/planecompose/cli/__init__.py +1 -0
  87. plane_compose-0.1.0/src/planecompose/cli/auth.py +93 -0
  88. plane_compose-0.1.0/src/planecompose/cli/automations.py +838 -0
  89. plane_compose-0.1.0/src/planecompose/cli/clone.py +487 -0
  90. plane_compose-0.1.0/src/planecompose/cli/init.py +181 -0
  91. plane_compose-0.1.0/src/planecompose/cli/pull.py +373 -0
  92. plane_compose-0.1.0/src/planecompose/cli/push.py +343 -0
  93. plane_compose-0.1.0/src/planecompose/cli/rate_stats.py +74 -0
  94. plane_compose-0.1.0/src/planecompose/cli/root.py +77 -0
  95. plane_compose-0.1.0/src/planecompose/cli/schema.py +795 -0
  96. plane_compose-0.1.0/src/planecompose/cli/status.py +122 -0
  97. plane_compose-0.1.0/src/planecompose/config/__init__.py +1 -0
  98. plane_compose-0.1.0/src/planecompose/config/context.py +119 -0
  99. plane_compose-0.1.0/src/planecompose/config/settings.py +119 -0
  100. plane_compose-0.1.0/src/planecompose/core/__init__.py +1 -0
  101. plane_compose-0.1.0/src/planecompose/core/models.py +139 -0
  102. plane_compose-0.1.0/src/planecompose/diff/__init__.py +1 -0
  103. plane_compose-0.1.0/src/planecompose/exceptions.py +171 -0
  104. plane_compose-0.1.0/src/planecompose/main.py +5 -0
  105. plane_compose-0.1.0/src/planecompose/parser/__init__.py +1 -0
  106. plane_compose-0.1.0/src/planecompose/parser/labels_yaml.py +37 -0
  107. plane_compose-0.1.0/src/planecompose/parser/plane_yaml.py +24 -0
  108. plane_compose-0.1.0/src/planecompose/parser/types_yaml.py +86 -0
  109. plane_compose-0.1.0/src/planecompose/parser/work_yaml.py +84 -0
  110. plane_compose-0.1.0/src/planecompose/parser/workflows_yaml.py +36 -0
  111. plane_compose-0.1.0/src/planecompose/sync/__init__.py +1 -0
  112. plane_compose-0.1.0/src/planecompose/utils/__init__.py +1 -0
  113. plane_compose-0.1.0/src/planecompose/utils/errors.py +224 -0
  114. plane_compose-0.1.0/src/planecompose/utils/http_client.py +92 -0
  115. plane_compose-0.1.0/src/planecompose/utils/logger.py +102 -0
  116. plane_compose-0.1.0/src/planecompose/utils/project.py +162 -0
  117. plane_compose-0.1.0/src/planecompose/utils/rate_limit.py +116 -0
  118. plane_compose-0.1.0/src/planecompose/utils/work_items.py +62 -0
  119. plane_compose-0.1.0/src/planecompose/validation/__init__.py +1 -0
  120. plane_compose-0.1.0/tests/__init__.py +2 -0
  121. plane_compose-0.1.0/tests/conftest.py +311 -0
  122. plane_compose-0.1.0/tests/test_cli.py +263 -0
  123. plane_compose-0.1.0/tests/test_models.py +194 -0
  124. plane_compose-0.1.0/tests/test_parsers.py +255 -0
  125. plane_compose-0.1.0/tests/test_performance.py +293 -0
  126. plane_compose-0.1.0/tests/test_utils.py +176 -0
@@ -0,0 +1,45 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ *.egg-info/
20
+ .installed.cfg
21
+ *.egg
22
+
23
+ # Virtual Environment
24
+ venv/
25
+ .venv*/
26
+ env/
27
+ ENV/
28
+
29
+ # IDE
30
+ .vscode/
31
+ .idea/
32
+ *.swp
33
+ *.swo
34
+ *~
35
+
36
+ # Testing
37
+ .pytest_cache/
38
+ .coverage
39
+ htmlcov/
40
+
41
+ # Test project
42
+ test-project/
43
+
44
+ .DS_Store
45
+
@@ -0,0 +1,66 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.1.0] - 2025-12-15
9
+
10
+ ### Added
11
+ - Initial release of Plane Compose
12
+ - **Core Features:**
13
+ - Local-first workflow with YAML-based project definitions
14
+ - Bidirectional sync between local files and Plane platform
15
+ - Auto-create projects during schema push
16
+ - Secure API key authentication
17
+ - Beautiful CLI with Rich terminal UI
18
+
19
+ - **Schema Management:**
20
+ - Work item types with custom properties
21
+ - Workflow definitions with states and transitions
22
+ - Label management with groups and colors
23
+ - Schema validation and push commands
24
+
25
+ - **Work Item Management:**
26
+ - Collaborative mode (`plane push`) - additive-only, team-friendly
27
+ - Declarative mode (`plane apply`) - domain-scoped single source of truth
28
+ - Intelligent content-based change detection
29
+ - Stable ID support via user-defined IDs or content hashing
30
+ - State tracking with `.plane/state.json`
31
+
32
+ - **CLI Commands:**
33
+ - `plane init` - Initialize new project structure
34
+ - `plane auth login/logout/whoami` - Authentication management
35
+ - `plane schema validate/push` - Schema operations
36
+ - `plane push/pull/sync` - Work item synchronization
37
+ - `plane apply` - Declarative sync with delete support
38
+ - `plane clone` - Clone existing projects from Plane
39
+ - `plane status` - Show sync status
40
+ - `plane rate stats/reset` - Rate limit monitoring
41
+
42
+ - **Advanced Features:**
43
+ - Built-in rate limiting (50 req/min by default)
44
+ - Respects Plane API rate limits with automatic throttling
45
+ - Debug mode with comprehensive logging
46
+ - Environment variable configuration support
47
+ - Project cloning with schema and work items
48
+ - Dry-run support for preview before changes
49
+
50
+ - **Documentation:**
51
+ - Comprehensive README with quick start guide
52
+ - Architecture documentation
53
+ - Development guide
54
+ - Troubleshooting guide
55
+ - Example workflows and patterns
56
+
57
+ ### Technical Details
58
+ - Python 3.10+ support
59
+ - Built with Typer, Rich, Pydantic, and Plane SDK
60
+ - Clean architecture with separation of concerns
61
+ - Full test coverage with pytest
62
+ - Type hints throughout codebase
63
+ - Formatted with Black, linted with Ruff
64
+
65
+ [0.1.0]: https://github.com/makeplane/compose/releases/tag/v0.1.0
66
+