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.
- plane_compose-0.1.0/.gitignore +45 -0
- plane_compose-0.1.0/CHANGELOG.md +66 -0
- plane_compose-0.1.0/LICENSE.txt +664 -0
- plane_compose-0.1.0/PKG-INFO +526 -0
- plane_compose-0.1.0/README.md +482 -0
- plane_compose-0.1.0/docs/INSTALL.md +233 -0
- plane_compose-0.1.0/docs/README.md +75 -0
- plane_compose-0.1.0/docs/WORK_ITEM_FIELDS.md +418 -0
- plane_compose-0.1.0/docs/architecture.md +394 -0
- plane_compose-0.1.0/docs/automations/README.md +699 -0
- plane_compose-0.1.0/docs/automations/examples.md +507 -0
- plane_compose-0.1.0/docs/automations/quick-reference.md +224 -0
- plane_compose-0.1.0/docs/development.md +466 -0
- plane_compose-0.1.0/docs/examples.md +640 -0
- plane_compose-0.1.0/docs/troubleshooting.md +677 -0
- plane_compose-0.1.0/examples/README.md +73 -0
- plane_compose-0.1.0/examples/automations/auto-assign.yaml +47 -0
- plane_compose-0.1.0/examples/automations/blocker-alert.yaml +24 -0
- plane_compose-0.1.0/examples/automations/due-date-sla.yaml +35 -0
- plane_compose-0.1.0/examples/automations/escalation.yaml +20 -0
- plane_compose-0.1.0/examples/automations/notify-on-done.yaml +24 -0
- plane_compose-0.1.0/examples/automations/pr-linked.yaml +22 -0
- plane_compose-0.1.0/examples/automations/scripts/escalation.ts +139 -0
- plane_compose-0.1.0/examples/automations/scripts/example.ts +75 -0
- plane_compose-0.1.0/examples/automations/scripts/ml-categorize.ts +51 -0
- plane_compose-0.1.0/examples/automations/scripts/smart-labeler.ts +118 -0
- plane_compose-0.1.0/examples/automations/scripts/stale-check.ts +92 -0
- plane_compose-0.1.0/examples/automations/scripts/types.ts +233 -0
- plane_compose-0.1.0/examples/automations/smart-labeler.yaml +13 -0
- plane_compose-0.1.0/examples/automations/stale-check.yaml +21 -0
- plane_compose-0.1.0/examples/automations/triage.yaml +48 -0
- plane_compose-0.1.0/examples/automations/welcome-assignee.yaml +24 -0
- plane_compose-0.1.0/examples/hello/.gitignore +1 -0
- plane_compose-0.1.0/examples/hello/.plane/remote/items.yaml +45 -0
- plane_compose-0.1.0/examples/hello/.plane/state.json +26 -0
- plane_compose-0.1.0/examples/hello/automations/assign-by-label.yaml +22 -0
- plane_compose-0.1.0/examples/hello/automations/auto-assign.yaml +47 -0
- plane_compose-0.1.0/examples/hello/automations/blocker-alert.yaml +24 -0
- plane_compose-0.1.0/examples/hello/automations/docs/assign-by-label.html +265 -0
- plane_compose-0.1.0/examples/hello/automations/docs/auto-assign-by-team.html +271 -0
- plane_compose-0.1.0/examples/hello/automations/docs/blocker-alert.html +263 -0
- plane_compose-0.1.0/examples/hello/automations/docs/bug-triage.html +271 -0
- plane_compose-0.1.0/examples/hello/automations/docs/index.html +235 -0
- plane_compose-0.1.0/examples/hello/automations/docs/ml-categorize.html +258 -0
- plane_compose-0.1.0/examples/hello/automations/docs/notify-on-done.html +261 -0
- plane_compose-0.1.0/examples/hello/automations/docs/pr-linked.html +260 -0
- plane_compose-0.1.0/examples/hello/automations/docs/sla-due-dates.html +261 -0
- plane_compose-0.1.0/examples/hello/automations/docs/sla-escalation.html +258 -0
- plane_compose-0.1.0/examples/hello/automations/docs/smart-labeler.html +252 -0
- plane_compose-0.1.0/examples/hello/automations/docs/stale-check.html +258 -0
- plane_compose-0.1.0/examples/hello/automations/docs/welcome-assignee.html +251 -0
- plane_compose-0.1.0/examples/hello/automations/due-date-sla.yaml +35 -0
- plane_compose-0.1.0/examples/hello/automations/escalation.yaml +20 -0
- plane_compose-0.1.0/examples/hello/automations/ml-categorize.yaml +9 -0
- plane_compose-0.1.0/examples/hello/automations/notify-on-done.yaml +24 -0
- plane_compose-0.1.0/examples/hello/automations/pr-linked.yaml +22 -0
- plane_compose-0.1.0/examples/hello/automations/scripts/escalation.ts +139 -0
- plane_compose-0.1.0/examples/hello/automations/scripts/example.ts +75 -0
- plane_compose-0.1.0/examples/hello/automations/scripts/ml-categorize.ts +51 -0
- plane_compose-0.1.0/examples/hello/automations/scripts/smart-labeler.ts +118 -0
- plane_compose-0.1.0/examples/hello/automations/scripts/stale-check.ts +92 -0
- plane_compose-0.1.0/examples/hello/automations/scripts/types.ts +233 -0
- plane_compose-0.1.0/examples/hello/automations/smart-labeler.yaml +13 -0
- plane_compose-0.1.0/examples/hello/automations/stale-check.yaml +21 -0
- plane_compose-0.1.0/examples/hello/automations/triage.yaml +48 -0
- plane_compose-0.1.0/examples/hello/automations/welcome-assignee.yaml +24 -0
- plane_compose-0.1.0/examples/hello/plane.yaml +8 -0
- plane_compose-0.1.0/examples/hello/schema/labels.yaml +1 -0
- plane_compose-0.1.0/examples/hello/schema/types.yaml +52 -0
- plane_compose-0.1.0/examples/hello/schema/workflows.yaml +21 -0
- plane_compose-0.1.0/examples/hello/work/inbox.yaml +5 -0
- plane_compose-0.1.0/examples/hello/work/test.yaml +28 -0
- plane_compose-0.1.0/pyproject.toml +83 -0
- plane_compose-0.1.0/src/planecompose/__init__.py +2 -0
- plane_compose-0.1.0/src/planecompose/automations/__init__.py +25 -0
- plane_compose-0.1.0/src/planecompose/automations/actions.py +277 -0
- plane_compose-0.1.0/src/planecompose/automations/engine.py +435 -0
- plane_compose-0.1.0/src/planecompose/automations/evaluator.py +500 -0
- plane_compose-0.1.0/src/planecompose/automations/models.py +283 -0
- plane_compose-0.1.0/src/planecompose/automations/parser.py +175 -0
- plane_compose-0.1.0/src/planecompose/automations/runner.py +288 -0
- plane_compose-0.1.0/src/planecompose/automations/visualizer.py +675 -0
- plane_compose-0.1.0/src/planecompose/backend/__init__.py +1 -0
- plane_compose-0.1.0/src/planecompose/backend/base.py +59 -0
- plane_compose-0.1.0/src/planecompose/backend/plane.py +1277 -0
- plane_compose-0.1.0/src/planecompose/cli/__init__.py +1 -0
- plane_compose-0.1.0/src/planecompose/cli/auth.py +93 -0
- plane_compose-0.1.0/src/planecompose/cli/automations.py +838 -0
- plane_compose-0.1.0/src/planecompose/cli/clone.py +487 -0
- plane_compose-0.1.0/src/planecompose/cli/init.py +181 -0
- plane_compose-0.1.0/src/planecompose/cli/pull.py +373 -0
- plane_compose-0.1.0/src/planecompose/cli/push.py +343 -0
- plane_compose-0.1.0/src/planecompose/cli/rate_stats.py +74 -0
- plane_compose-0.1.0/src/planecompose/cli/root.py +77 -0
- plane_compose-0.1.0/src/planecompose/cli/schema.py +795 -0
- plane_compose-0.1.0/src/planecompose/cli/status.py +122 -0
- plane_compose-0.1.0/src/planecompose/config/__init__.py +1 -0
- plane_compose-0.1.0/src/planecompose/config/context.py +119 -0
- plane_compose-0.1.0/src/planecompose/config/settings.py +119 -0
- plane_compose-0.1.0/src/planecompose/core/__init__.py +1 -0
- plane_compose-0.1.0/src/planecompose/core/models.py +139 -0
- plane_compose-0.1.0/src/planecompose/diff/__init__.py +1 -0
- plane_compose-0.1.0/src/planecompose/exceptions.py +171 -0
- plane_compose-0.1.0/src/planecompose/main.py +5 -0
- plane_compose-0.1.0/src/planecompose/parser/__init__.py +1 -0
- plane_compose-0.1.0/src/planecompose/parser/labels_yaml.py +37 -0
- plane_compose-0.1.0/src/planecompose/parser/plane_yaml.py +24 -0
- plane_compose-0.1.0/src/planecompose/parser/types_yaml.py +86 -0
- plane_compose-0.1.0/src/planecompose/parser/work_yaml.py +84 -0
- plane_compose-0.1.0/src/planecompose/parser/workflows_yaml.py +36 -0
- plane_compose-0.1.0/src/planecompose/sync/__init__.py +1 -0
- plane_compose-0.1.0/src/planecompose/utils/__init__.py +1 -0
- plane_compose-0.1.0/src/planecompose/utils/errors.py +224 -0
- plane_compose-0.1.0/src/planecompose/utils/http_client.py +92 -0
- plane_compose-0.1.0/src/planecompose/utils/logger.py +102 -0
- plane_compose-0.1.0/src/planecompose/utils/project.py +162 -0
- plane_compose-0.1.0/src/planecompose/utils/rate_limit.py +116 -0
- plane_compose-0.1.0/src/planecompose/utils/work_items.py +62 -0
- plane_compose-0.1.0/src/planecompose/validation/__init__.py +1 -0
- plane_compose-0.1.0/tests/__init__.py +2 -0
- plane_compose-0.1.0/tests/conftest.py +311 -0
- plane_compose-0.1.0/tests/test_cli.py +263 -0
- plane_compose-0.1.0/tests/test_models.py +194 -0
- plane_compose-0.1.0/tests/test_parsers.py +255 -0
- plane_compose-0.1.0/tests/test_performance.py +293 -0
- 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
|
+
|