roadmap-cli 1.0.0__py3-none-any.whl
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.
- CHANGELOG.md +146 -0
- LICENSE.md +21 -0
- docs/NAMING_CONVENTIONS.md +188 -0
- docs/developer_notes/ARCHITECTURE.md +411 -0
- docs/developer_notes/FUTURE_FEATURES.md +302 -0
- docs/developer_notes/INTEGRATION_TEST_GUIDE.md +586 -0
- docs/developer_notes/SECURITY.md +265 -0
- docs/developer_notes/TEST_ORGANIZATION.md +151 -0
- docs/user_guide/FAQ.md +373 -0
- docs/user_guide/INSTALLATION.md +268 -0
- docs/user_guide/QUICK_START.md +245 -0
- docs/user_guide/WORKFLOWS.md +296 -0
- docs/user_guide/logging-guide.md +456 -0
- roadmap/__init__.py +32 -0
- roadmap/adapters/__init__.py +0 -0
- roadmap/adapters/cli/__init__.py +210 -0
- roadmap/adapters/cli/analysis/__init__.py +5 -0
- roadmap/adapters/cli/analysis/commands.py +303 -0
- roadmap/adapters/cli/analysis/presenter.py +125 -0
- roadmap/adapters/cli/archive_utils.py +86 -0
- roadmap/adapters/cli/cli_confirmations.py +74 -0
- roadmap/adapters/cli/cli_error_handlers.py +142 -0
- roadmap/adapters/cli/cli_validators.py +39 -0
- roadmap/adapters/cli/comment/__init__.py +5 -0
- roadmap/adapters/cli/comment/commands.py +106 -0
- roadmap/adapters/cli/config/__init__.py +5 -0
- roadmap/adapters/cli/config/commands.py +188 -0
- roadmap/adapters/cli/core.py +26 -0
- roadmap/adapters/cli/crud/__init__.py +47 -0
- roadmap/adapters/cli/crud/base_archive.py +208 -0
- roadmap/adapters/cli/crud/base_create.py +154 -0
- roadmap/adapters/cli/crud/base_delete.py +145 -0
- roadmap/adapters/cli/crud/base_restore.py +219 -0
- roadmap/adapters/cli/crud/base_update.py +186 -0
- roadmap/adapters/cli/crud/crud_helpers.py +206 -0
- roadmap/adapters/cli/crud/crud_utils.py +152 -0
- roadmap/adapters/cli/crud/entity_builders.py +370 -0
- roadmap/adapters/cli/data/__init__.py +8 -0
- roadmap/adapters/cli/data/commands.py +149 -0
- roadmap/adapters/cli/decorators.py +211 -0
- roadmap/adapters/cli/dtos/__init__.py +154 -0
- roadmap/adapters/cli/exception_handler.py +109 -0
- roadmap/adapters/cli/git/__init__.py +8 -0
- roadmap/adapters/cli/git/commands.py +358 -0
- roadmap/adapters/cli/git/hooks_config.py +270 -0
- roadmap/adapters/cli/git/status_display.py +158 -0
- roadmap/adapters/cli/health/__init__.py +8 -0
- roadmap/adapters/cli/health/enhancer.py +226 -0
- roadmap/adapters/cli/health/fixer.py +287 -0
- roadmap/adapters/cli/health/fixers/__init__.py +10 -0
- roadmap/adapters/cli/health/fixers/corrupted_comments_fixer.py +224 -0
- roadmap/adapters/cli/health/fixers/data_integrity_fixer.py +122 -0
- roadmap/adapters/cli/health/fixers/duplicate_issues_fixer.py +130 -0
- roadmap/adapters/cli/health/fixers/folder_structure_fixer.py +110 -0
- roadmap/adapters/cli/health/fixers/milestone_name_normalization_fixer.py +167 -0
- roadmap/adapters/cli/health/fixers/milestone_naming_compliance_fixer.py +227 -0
- roadmap/adapters/cli/health/fixers/milestone_validation_fixer.py +188 -0
- roadmap/adapters/cli/health/fixers/old_backups_fixer.py +134 -0
- roadmap/adapters/cli/health/fixers/orphaned_issues_fixer.py +238 -0
- roadmap/adapters/cli/health/formatter.py +249 -0
- roadmap/adapters/cli/health/formatters.py +423 -0
- roadmap/adapters/cli/health/scan.py +255 -0
- roadmap/adapters/cli/helpers.py +109 -0
- roadmap/adapters/cli/init/__init__.py +5 -0
- roadmap/adapters/cli/init/commands.py +454 -0
- roadmap/adapters/cli/init.py +9 -0
- roadmap/adapters/cli/issues/__init__.py +73 -0
- roadmap/adapters/cli/issues/archive.py +137 -0
- roadmap/adapters/cli/issues/archive_class.py +234 -0
- roadmap/adapters/cli/issues/block.py +39 -0
- roadmap/adapters/cli/issues/close.py +177 -0
- roadmap/adapters/cli/issues/comment.py +175 -0
- roadmap/adapters/cli/issues/create.py +162 -0
- roadmap/adapters/cli/issues/delete.py +31 -0
- roadmap/adapters/cli/issues/deps.py +57 -0
- roadmap/adapters/cli/issues/issue_status_helpers.py +111 -0
- roadmap/adapters/cli/issues/link.py +184 -0
- roadmap/adapters/cli/issues/list.py +371 -0
- roadmap/adapters/cli/issues/lookup.py +96 -0
- roadmap/adapters/cli/issues/progress.py +99 -0
- roadmap/adapters/cli/issues/restore.py +96 -0
- roadmap/adapters/cli/issues/restore_class.py +57 -0
- roadmap/adapters/cli/issues/start.py +165 -0
- roadmap/adapters/cli/issues/sync.py +241 -0
- roadmap/adapters/cli/issues/sync_status.py +378 -0
- roadmap/adapters/cli/issues/unblock.py +43 -0
- roadmap/adapters/cli/issues/unlink.py +103 -0
- roadmap/adapters/cli/issues/update.py +120 -0
- roadmap/adapters/cli/issues/view.py +33 -0
- roadmap/adapters/cli/layout.py +212 -0
- roadmap/adapters/cli/mappers.py +194 -0
- roadmap/adapters/cli/milestones/__init__.py +52 -0
- roadmap/adapters/cli/milestones/archive.py +125 -0
- roadmap/adapters/cli/milestones/archive_class.py +118 -0
- roadmap/adapters/cli/milestones/assign.py +59 -0
- roadmap/adapters/cli/milestones/close.py +197 -0
- roadmap/adapters/cli/milestones/create.py +88 -0
- roadmap/adapters/cli/milestones/delete.py +27 -0
- roadmap/adapters/cli/milestones/kanban.py +123 -0
- roadmap/adapters/cli/milestones/list.py +87 -0
- roadmap/adapters/cli/milestones/recalculate.py +79 -0
- roadmap/adapters/cli/milestones/restore.py +87 -0
- roadmap/adapters/cli/milestones/restore_class.py +88 -0
- roadmap/adapters/cli/milestones/update.py +57 -0
- roadmap/adapters/cli/milestones/view.py +143 -0
- roadmap/adapters/cli/output_manager.py +330 -0
- roadmap/adapters/cli/presentation/base_presenter.py +121 -0
- roadmap/adapters/cli/presentation/cleanup_presenter.py +235 -0
- roadmap/adapters/cli/presentation/core_initialization_presenter.py +277 -0
- roadmap/adapters/cli/presentation/crud_presenter.py +174 -0
- roadmap/adapters/cli/presentation/daily_summary_presenter.py +256 -0
- roadmap/adapters/cli/presentation/issue_presenter.py +259 -0
- roadmap/adapters/cli/presentation/milestone_list_presenter.py +135 -0
- roadmap/adapters/cli/presentation/milestone_presenter.py +282 -0
- roadmap/adapters/cli/presentation/project_presenter.py +233 -0
- roadmap/adapters/cli/presentation/project_status_presenter.py +187 -0
- roadmap/adapters/cli/presentation/table_builders.py +95 -0
- roadmap/adapters/cli/projects/__init__.py +42 -0
- roadmap/adapters/cli/projects/archive.py +123 -0
- roadmap/adapters/cli/projects/archive_class.py +83 -0
- roadmap/adapters/cli/projects/close.py +120 -0
- roadmap/adapters/cli/projects/create.py +50 -0
- roadmap/adapters/cli/projects/delete.py +27 -0
- roadmap/adapters/cli/projects/list.py +217 -0
- roadmap/adapters/cli/projects/restore.py +87 -0
- roadmap/adapters/cli/projects/restore_class.py +56 -0
- roadmap/adapters/cli/projects/update.py +57 -0
- roadmap/adapters/cli/projects/view.py +132 -0
- roadmap/adapters/cli/services/__init__.py +1 -0
- roadmap/adapters/cli/services/daily_summary_service.py +260 -0
- roadmap/adapters/cli/services/export_manager.py +268 -0
- roadmap/adapters/cli/services/milestone_list_service.py +261 -0
- roadmap/adapters/cli/services/project_initialization_service.py +29 -0
- roadmap/adapters/cli/services/project_status_service.py +269 -0
- roadmap/adapters/cli/status.py +372 -0
- roadmap/adapters/cli/styling.py +21 -0
- roadmap/adapters/cli/today.py +52 -0
- roadmap/adapters/cli/utils.py +11 -0
- roadmap/adapters/git/__init__.py +0 -0
- roadmap/adapters/git/git.py +208 -0
- roadmap/adapters/git/git_branch_manager.py +385 -0
- roadmap/adapters/git/git_command_executor.py +56 -0
- roadmap/adapters/git/git_commit_analyzer.py +329 -0
- roadmap/adapters/git/git_hooks.py +22 -0
- roadmap/adapters/git/git_hooks_manager.py +452 -0
- roadmap/adapters/git/git_hooks_manager.py.bak +574 -0
- roadmap/adapters/git/git_repository_info.py +65 -0
- roadmap/adapters/git/hook_installer.py +101 -0
- roadmap/adapters/git/hook_registry.py +86 -0
- roadmap/adapters/git/hook_script_generator.py +58 -0
- roadmap/adapters/git/workflow_automation.py +268 -0
- roadmap/adapters/github/__init__.py +0 -0
- roadmap/adapters/github/github.py +261 -0
- roadmap/adapters/github/handlers/__init__.py +17 -0
- roadmap/adapters/github/handlers/base.py +115 -0
- roadmap/adapters/github/handlers/collaborators.py +149 -0
- roadmap/adapters/github/handlers/comments.py +113 -0
- roadmap/adapters/github/handlers/issues.py +115 -0
- roadmap/adapters/github/handlers/labels.py +155 -0
- roadmap/adapters/github/handlers/milestones.py +96 -0
- roadmap/adapters/persistence/__init__.py +36 -0
- roadmap/adapters/persistence/conflict_resolver.py +176 -0
- roadmap/adapters/persistence/database_manager.py +322 -0
- roadmap/adapters/persistence/entity_sync_coordinators.py +372 -0
- roadmap/adapters/persistence/file_locking.py +319 -0
- roadmap/adapters/persistence/file_parser.py +77 -0
- roadmap/adapters/persistence/file_synchronizer.py +102 -0
- roadmap/adapters/persistence/focused_managers.py +140 -0
- roadmap/adapters/persistence/parser/__init__.py +20 -0
- roadmap/adapters/persistence/parser/frontmatter.py +79 -0
- roadmap/adapters/persistence/parser/issue.py +195 -0
- roadmap/adapters/persistence/parser/milestone.py +133 -0
- roadmap/adapters/persistence/parser/project.py +106 -0
- roadmap/adapters/persistence/persistence.py +278 -0
- roadmap/adapters/persistence/repositories/__init__.py +13 -0
- roadmap/adapters/persistence/repositories/issue_repository.py +157 -0
- roadmap/adapters/persistence/repositories/milestone_repository.py +136 -0
- roadmap/adapters/persistence/repositories/project_repository.py +164 -0
- roadmap/adapters/persistence/repositories/sync_state_repository.py +66 -0
- roadmap/adapters/persistence/storage/__init__.py +36 -0
- roadmap/adapters/persistence/storage/conflicts.py +94 -0
- roadmap/adapters/persistence/storage/connection_manager.py +79 -0
- roadmap/adapters/persistence/storage/issue_storage.py +89 -0
- roadmap/adapters/persistence/storage/milestone_storage.py +80 -0
- roadmap/adapters/persistence/storage/project_storage.py +102 -0
- roadmap/adapters/persistence/storage/queries.py +210 -0
- roadmap/adapters/persistence/storage/state_manager.py +316 -0
- roadmap/adapters/persistence/storage/sync_state_storage.py +207 -0
- roadmap/adapters/persistence/sync_orchestrator.py +230 -0
- roadmap/adapters/persistence/sync_state_tracker.py +84 -0
- roadmap/adapters/persistence/yaml_repositories.py +631 -0
- roadmap/common/__init__.py +317 -0
- roadmap/common/cache.py +209 -0
- roadmap/common/cli_errors.py +150 -0
- roadmap/common/cli_helpers.py +392 -0
- roadmap/common/cli_models.py +105 -0
- roadmap/common/config_loader.py +261 -0
- roadmap/common/config_manager.py +164 -0
- roadmap/common/config_models.py +136 -0
- roadmap/common/config_schema.py +144 -0
- roadmap/common/console.py +189 -0
- roadmap/common/constants.py +126 -0
- roadmap/common/datetime_parser.py +308 -0
- roadmap/common/decorators.py +180 -0
- roadmap/common/error_formatter.py +89 -0
- roadmap/common/errors/__init__.py +143 -0
- roadmap/common/errors/error_base.py +63 -0
- roadmap/common/errors/error_file.py +74 -0
- roadmap/common/errors/error_git.py +52 -0
- roadmap/common/errors/error_handler.py +157 -0
- roadmap/common/errors/error_network.py +68 -0
- roadmap/common/errors/error_security.py +57 -0
- roadmap/common/errors/error_standards.py +557 -0
- roadmap/common/errors/error_validation.py +82 -0
- roadmap/common/errors/exceptions.py +315 -0
- roadmap/common/file_utils.py +389 -0
- roadmap/common/logging.py +440 -0
- roadmap/common/logging_utils.py +208 -0
- roadmap/common/metrics.py +161 -0
- roadmap/common/output_formatter.py +405 -0
- roadmap/common/output_models.py +372 -0
- roadmap/common/path_utils.py +38 -0
- roadmap/common/performance.py +219 -0
- roadmap/common/profiling.py +288 -0
- roadmap/common/progress.py +363 -0
- roadmap/common/retry.py +288 -0
- roadmap/common/security/__init__.py +53 -0
- roadmap/common/security/exceptions.py +13 -0
- roadmap/common/security/export_cleanup.py +79 -0
- roadmap/common/security/file_operations.py +104 -0
- roadmap/common/security/filename_sanitization.py +54 -0
- roadmap/common/security/logging.py +77 -0
- roadmap/common/security/path_validation.py +137 -0
- roadmap/common/security/temp_files.py +41 -0
- roadmap/common/status_style_manager.py +114 -0
- roadmap/common/status_utils.py +129 -0
- roadmap/common/timezone_utils.py +467 -0
- roadmap/common/update_constants.py +13 -0
- roadmap/common/validation/__init__.py +37 -0
- roadmap/common/validation/field_validator.py +92 -0
- roadmap/common/validation/result.py +29 -0
- roadmap/common/validation/roadmap_validator.py +302 -0
- roadmap/common/validation/schema_validator.py +31 -0
- roadmap/common/validation/validators.py +50 -0
- roadmap/core/__init__.py +0 -0
- roadmap/core/domain/__init__.py +31 -0
- roadmap/core/domain/comment.py +24 -0
- roadmap/core/domain/health.py +15 -0
- roadmap/core/domain/issue.py +202 -0
- roadmap/core/domain/milestone.py +172 -0
- roadmap/core/domain/project.py +130 -0
- roadmap/core/interfaces/__init__.py +86 -0
- roadmap/core/interfaces/state_managers.py +111 -0
- roadmap/core/models.py +113 -0
- roadmap/core/repositories.py +179 -0
- roadmap/core/services/__init__.py +36 -0
- roadmap/core/services/assignee_validation_service.py +310 -0
- roadmap/core/services/backup_cleanup_service.py +198 -0
- roadmap/core/services/base_validator.py +127 -0
- roadmap/core/services/comment_service.py +213 -0
- roadmap/core/services/configuration_service.py +81 -0
- roadmap/core/services/critical_path_calculator.py +418 -0
- roadmap/core/services/data_integrity_validator_service.py +85 -0
- roadmap/core/services/dependency_analyzer.py +359 -0
- roadmap/core/services/entity_health_scanner.py +526 -0
- roadmap/core/services/file_repair_service.py +186 -0
- roadmap/core/services/git_hook_auto_sync_service.py +371 -0
- roadmap/core/services/github_config_validator.py +146 -0
- roadmap/core/services/github_conflict_detector.py +177 -0
- roadmap/core/services/github_integration_service.py +344 -0
- roadmap/core/services/github_issue_client.py +235 -0
- roadmap/core/services/github_sync_orchestrator.py +362 -0
- roadmap/core/services/health_check_service.py +155 -0
- roadmap/core/services/infrastructure_validator_service.py +319 -0
- roadmap/core/services/initialization/__init__.py +19 -0
- roadmap/core/services/initialization/utils.py +82 -0
- roadmap/core/services/initialization/validator.py +74 -0
- roadmap/core/services/initialization/workflow.py +170 -0
- roadmap/core/services/initialization_service.py +107 -0
- roadmap/core/services/issue_creation_service.py +267 -0
- roadmap/core/services/issue_helpers/__init__.py +17 -0
- roadmap/core/services/issue_helpers/issue_filters.py +269 -0
- roadmap/core/services/issue_service.py +500 -0
- roadmap/core/services/issue_update_service.py +148 -0
- roadmap/core/services/milestone_service.py +402 -0
- roadmap/core/services/project_init/__init__.py +22 -0
- roadmap/core/services/project_init/context_detection.py +126 -0
- roadmap/core/services/project_init/creation.py +72 -0
- roadmap/core/services/project_init/detection.py +40 -0
- roadmap/core/services/project_init/template.py +218 -0
- roadmap/core/services/project_service.py +420 -0
- roadmap/core/services/project_status_service.py +105 -0
- roadmap/core/services/start_issue_service.py +165 -0
- roadmap/core/services/sync_metadata_service.py +232 -0
- roadmap/core/services/sync_report.py +125 -0
- roadmap/core/services/validators/__init__.py +26 -0
- roadmap/core/services/validators/_utils.py +20 -0
- roadmap/core/services/validators/archivable_issues_validator.py +71 -0
- roadmap/core/services/validators/archivable_milestones_validator.py +69 -0
- roadmap/core/services/validators/backup_validator.py +89 -0
- roadmap/core/services/validators/data_integrity_validator.py +80 -0
- roadmap/core/services/validators/duplicate_issues_validator.py +75 -0
- roadmap/core/services/validators/duplicate_milestones_validator.py +126 -0
- roadmap/core/services/validators/folder_structure_validator.py +152 -0
- roadmap/core/services/validators/health_status_utils.py +28 -0
- roadmap/core/services/validators/milestone_naming_validator.py +146 -0
- roadmap/core/services/validators/orphaned_issues_validator.py +140 -0
- roadmap/core/services/validators/orphaned_milestones_validator.py +83 -0
- roadmap/domain/repositories/__init__.py +20 -0
- roadmap/domain/repositories/issue_repository.py +59 -0
- roadmap/domain/repositories/milestone_repository.py +59 -0
- roadmap/domain/repositories/project_repository.py +58 -0
- roadmap/infrastructure/__init__.py +0 -0
- roadmap/infrastructure/coordinator_params.py +82 -0
- roadmap/infrastructure/core.py +357 -0
- roadmap/infrastructure/file_enumeration.py +207 -0
- roadmap/infrastructure/git_coordinator.py +101 -0
- roadmap/infrastructure/git_integration_ops.py +235 -0
- roadmap/infrastructure/github/__init__.py +5 -0
- roadmap/infrastructure/github/setup.py +375 -0
- roadmap/infrastructure/github_validator.py +86 -0
- roadmap/infrastructure/health.py +422 -0
- roadmap/infrastructure/health_formatter.py +71 -0
- roadmap/infrastructure/initialization.py +309 -0
- roadmap/infrastructure/issue_coordinator.py +142 -0
- roadmap/infrastructure/issue_operations.py +445 -0
- roadmap/infrastructure/logging/__init__.py +51 -0
- roadmap/infrastructure/logging/audit_logging.py +5 -0
- roadmap/infrastructure/logging/decorators.py +272 -0
- roadmap/infrastructure/logging/error_logging.py +217 -0
- roadmap/infrastructure/logging/performance_tracking.py +261 -0
- roadmap/infrastructure/maintenance/__init__.py +5 -0
- roadmap/infrastructure/maintenance/cleanup.py +485 -0
- roadmap/infrastructure/milestone_consistency_validator.py +94 -0
- roadmap/infrastructure/milestone_coordinator.py +132 -0
- roadmap/infrastructure/milestone_operations.py +191 -0
- roadmap/infrastructure/project_coordinator.py +113 -0
- roadmap/infrastructure/project_operations.py +144 -0
- roadmap/infrastructure/security/__init__.py +0 -0
- roadmap/infrastructure/security/credentials.py +388 -0
- roadmap/infrastructure/team_coordinator.py +107 -0
- roadmap/infrastructure/user_operations.py +134 -0
- roadmap/infrastructure/validation_coordinator.py +44 -0
- roadmap/settings.py +321 -0
- roadmap/shared/__init__.py +40 -0
- roadmap/shared/formatters/__init__.py +30 -0
- roadmap/shared/formatters/base_table_formatter.py +103 -0
- roadmap/shared/formatters/export/__init__.py +7 -0
- roadmap/shared/formatters/export/issue_exporter.py +99 -0
- roadmap/shared/formatters/kanban/__init__.py +9 -0
- roadmap/shared/formatters/kanban/layout.py +43 -0
- roadmap/shared/formatters/kanban/organizer.py +83 -0
- roadmap/shared/formatters/output/__init__.py +15 -0
- roadmap/shared/formatters/tables/__init__.py +11 -0
- roadmap/shared/formatters/tables/column_factory.py +312 -0
- roadmap/shared/formatters/tables/issue_table.py +274 -0
- roadmap/shared/formatters/tables/milestone_table.py +247 -0
- roadmap/shared/formatters/tables/project_table.py +191 -0
- roadmap/shared/formatters/text/__init__.py +57 -0
- roadmap/shared/formatters/text/basic.py +223 -0
- roadmap/shared/formatters/text/display.py +44 -0
- roadmap/shared/formatters/text/duration.py +38 -0
- roadmap/shared/formatters/text/operations.py +329 -0
- roadmap/shared/formatters/text/status_badges.py +59 -0
- roadmap/shared/instrumentation.py +100 -0
- roadmap/shared/observability.py +76 -0
- roadmap/shared/otel_init.py +87 -0
- roadmap/templates/github_workflows/ci-cd-roadmap.yml +241 -0
- roadmap/templates/github_workflows/issue-lifecycle.yml +236 -0
- roadmap/templates/github_workflows/roadmap-integration.yml +137 -0
- roadmap/templates/github_workflows/roadmap-starter.yml +59 -0
- roadmap/version.py +354 -0
- roadmap_cli-1.0.0.dist-info/LICENSE.md +21 -0
- roadmap_cli-1.0.0.dist-info/METADATA +413 -0
- roadmap_cli-1.0.0.dist-info/RECORD +377 -0
- roadmap_cli-1.0.0.dist-info/WHEEL +4 -0
- roadmap_cli-1.0.0.dist-info/entry_points.txt +3 -0
CHANGELOG.md
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the Roadmap CLI 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
|
+
## [1.0.0] - 2024-10-11
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
#### 🚀 **Core Features**
|
|
13
|
+
|
|
14
|
+
- **Project Management System**: Complete CLI tool for roadmap creation and management
|
|
15
|
+
- **Issue Tracking**: Create, update, and manage project issues with rich metadata
|
|
16
|
+
- **Milestone Management**: Define and track project milestones with due dates and progress
|
|
17
|
+
- **Status Management**: Comprehensive status tracking (todo, in-progress, blocked, review, done)
|
|
18
|
+
- **Priority System**: High, medium, low priority assignment and filtering
|
|
19
|
+
|
|
20
|
+
#### 📊 **Data Visualization & Analytics**
|
|
21
|
+
|
|
22
|
+
- **Interactive Charts**: Status distribution (pie, donut, bar charts) with Plotly.js
|
|
23
|
+
- **Burndown Charts**: Sprint/milestone progress tracking with ideal vs actual burndown
|
|
24
|
+
- **Velocity Charts**: Team productivity trends with configurable time periods (daily, weekly, monthly)
|
|
25
|
+
- **Milestone Progress**: Visual progress tracking across all project milestones
|
|
26
|
+
- **Team Workload Analysis**: Workload distribution and capacity planning charts
|
|
27
|
+
- **Stakeholder Dashboard**: Executive-ready comprehensive dashboard with all metrics
|
|
28
|
+
- **Multiple Output Formats**: HTML (interactive), PNG (static), SVG (vector) support
|
|
29
|
+
- **Professional Styling**: Enterprise-ready charts with consistent branding
|
|
30
|
+
|
|
31
|
+
#### 🔧 **Enhanced Persistence & Data Management**
|
|
32
|
+
|
|
33
|
+
- **Advanced YAML Validation**: Comprehensive syntax and schema validation with Pydantic
|
|
34
|
+
- **Backup & Recovery System**: Automatic timestamped backups before any modifications
|
|
35
|
+
- **File Locking Mechanism**: Concurrent access protection for multi-user environments
|
|
36
|
+
- **Bulk Operations**: Directory-wide validation, updates, and batch processing
|
|
37
|
+
- **Schema Migration**: Tools for updating roadmap formats and maintaining compatibility
|
|
38
|
+
- **Data Export**: CSV and Excel export capabilities with comprehensive analytics
|
|
39
|
+
|
|
40
|
+
#### 🚀 **GitHub Integration**
|
|
41
|
+
|
|
42
|
+
- **Two-way Synchronization**: Push/pull issues and milestones to/from GitHub repositories
|
|
43
|
+
- **High-Performance Sync**: 40x performance improvement processing 100+ items in seconds
|
|
44
|
+
- **Intelligent Caching**: Smart API response caching with TTL to minimize rate limits
|
|
45
|
+
- **Batch Processing**: Parallel processing with configurable workers and batch sizes
|
|
46
|
+
- **Comprehensive Error Handling**: Graceful handling of network issues and API limits
|
|
47
|
+
- **OAuth Authentication**: Secure GitHub integration with token management
|
|
48
|
+
|
|
49
|
+
#### 🔒 **Enterprise Security**
|
|
50
|
+
|
|
51
|
+
- **Comprehensive Security Module**: Enterprise-grade security implementation
|
|
52
|
+
- **Secure File Operations**: Path validation, sanitization, and secure file handling
|
|
53
|
+
- **Security Logging**: Detailed audit trails for all security-related operations
|
|
54
|
+
- **Input Validation**: Protection against path traversal and injection attacks
|
|
55
|
+
- **Credential Management**: Secure storage and handling of API tokens and credentials
|
|
56
|
+
- **Permission Validation**: File and directory permission checks and enforcement
|
|
57
|
+
|
|
58
|
+
#### 📚 **Documentation & Developer Experience**
|
|
59
|
+
|
|
60
|
+
- **Comprehensive Documentation**: Complete user guides, API reference, and feature showcase
|
|
61
|
+
- **Automated CLI Reference**: Auto-generated command documentation with examples
|
|
62
|
+
- **MkDocs Integration**: Professional documentation site with search and navigation
|
|
63
|
+
- **Sphinx Support**: API documentation generation for developers
|
|
64
|
+
- **Interactive Examples**: Comprehensive demo scripts showcasing all features
|
|
65
|
+
- **Installation Guides**: Multiple installation methods (PyPI, source, development)
|
|
66
|
+
|
|
67
|
+
#### 🧪 **Quality Assurance**
|
|
68
|
+
|
|
69
|
+
- **Comprehensive Test Suite**: 87% test coverage with pytest
|
|
70
|
+
- **Performance Testing**: Benchmarks and performance regression detection
|
|
71
|
+
- **Code Quality Tools**: Black formatting, isort imports, flake8 linting, mypy type checking
|
|
72
|
+
- **Pre-commit Hooks**: Automated code quality checks and formatting
|
|
73
|
+
- **Continuous Integration**: Automated testing and validation pipelines
|
|
74
|
+
|
|
75
|
+
### Technical Implementation
|
|
76
|
+
|
|
77
|
+
#### **Architecture**
|
|
78
|
+
|
|
79
|
+
- **Modular Design**: Clean separation of concerns with focused modules
|
|
80
|
+
- **Plugin Architecture**: Extensible design supporting future enhancements
|
|
81
|
+
- **Type Safety**: Full type hints with mypy validation throughout codebase
|
|
82
|
+
- **Error Handling**: Comprehensive error handling with informative user messages
|
|
83
|
+
- **Performance Optimization**: Efficient algorithms and caching for large datasets
|
|
84
|
+
|
|
85
|
+
#### **Dependencies**
|
|
86
|
+
|
|
87
|
+
- **Core**: Click (CLI), Rich (terminal UI), Pydantic (validation), PyYAML (data)
|
|
88
|
+
- **GitHub**: Requests (HTTP), Python-dotenv (config), Keyring (credentials)
|
|
89
|
+
- **Analytics**: Pandas (data analysis), OpenPyXL (Excel export)
|
|
90
|
+
- **Visualization**: Matplotlib (static charts), Plotly (interactive), Seaborn (styling)
|
|
91
|
+
- **Development**: Pytest (testing), Sphinx/MkDocs (documentation), Black/isort (formatting)
|
|
92
|
+
|
|
93
|
+
#### **Compatibility**
|
|
94
|
+
|
|
95
|
+
- **Python Versions**: 3.10, 3.11, 3.12 support
|
|
96
|
+
- **Operating Systems**: Windows, macOS, Linux cross-platform compatibility
|
|
97
|
+
- **GitHub**: Full GitHub API v4 support with GraphQL integration
|
|
98
|
+
- **Export Formats**: YAML, CSV, Excel, PNG, SVG, HTML output support
|
|
99
|
+
|
|
100
|
+
### Performance Metrics
|
|
101
|
+
|
|
102
|
+
- **Sync Performance**: 40x improvement - 100 issues in ~3 seconds vs ~120 seconds
|
|
103
|
+
- **Memory Efficiency**: Optimized for large datasets (1000+ issues)
|
|
104
|
+
- **Test Coverage**: 87% code coverage with comprehensive test suite
|
|
105
|
+
- **Documentation Coverage**: 100% API documentation with examples
|
|
106
|
+
- **Security Rating**: A- grade enterprise security implementation
|
|
107
|
+
|
|
108
|
+
### Use Cases
|
|
109
|
+
|
|
110
|
+
#### **Project Managers**
|
|
111
|
+
|
|
112
|
+
- Sprint planning and tracking with burndown charts
|
|
113
|
+
- Stakeholder reporting with comprehensive dashboards
|
|
114
|
+
- Resource allocation with team workload analysis
|
|
115
|
+
- Milestone tracking with visual progress indicators
|
|
116
|
+
|
|
117
|
+
#### **Development Teams**
|
|
118
|
+
|
|
119
|
+
- Agile workflow management with GitHub integration
|
|
120
|
+
- Performance tracking with velocity charts
|
|
121
|
+
- Issue management with priority and status tracking
|
|
122
|
+
- Collaboration with multi-user safe operations
|
|
123
|
+
|
|
124
|
+
#### **Executives & Stakeholders**
|
|
125
|
+
|
|
126
|
+
- High-level project overviews with executive dashboards
|
|
127
|
+
- Progress reporting with visual charts and metrics
|
|
128
|
+
- Risk identification with blocked issue tracking
|
|
129
|
+
- Resource planning with team capacity analysis
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## [Unreleased]
|
|
134
|
+
|
|
135
|
+
### Planned Features
|
|
136
|
+
|
|
137
|
+
- **Real-time Collaboration**: WebSocket-based real-time updates
|
|
138
|
+
- **Custom Chart Types**: User-configurable chart templates
|
|
139
|
+
- **Advanced Filtering**: Complex query language for data analysis
|
|
140
|
+
- **Integration Plugins**: Jira, Azure DevOps, GitLab integration
|
|
141
|
+
- **Mobile Support**: Responsive web dashboard for mobile devices
|
|
142
|
+
- **AI Insights**: Machine learning-based project predictions and recommendations
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
For more detailed information about features and usage, see the [documentation](https://roadmap-cli.readthedocs.io).
|
LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Shane M. Wilkins
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Milestone Naming Conventions
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This document defines the naming conventions for milestones in the Roadmap project. Clear, consistent naming prevents errors, confusion, and makes the CLI tool more reliable.
|
|
6
|
+
|
|
7
|
+
## Problem: Why Naming Conventions Matter
|
|
8
|
+
|
|
9
|
+
The roadmap system stores:
|
|
10
|
+
|
|
11
|
+
1. **Milestone display names** - Used by humans (e.g., "v0-8-0", "Sprint 1")
|
|
12
|
+
2. **Safe milestone filenames** - Used by the filesystem (e.g., "v0-8-0", "sprint-1")
|
|
13
|
+
|
|
14
|
+
**The Problem:** When display names don't follow a consistent pattern, they get converted to different safe names, causing:
|
|
15
|
+
|
|
16
|
+
- Issues assigned to "v.0.8.0" but file is "v0-8-0.md" → **CLI lookup fails**
|
|
17
|
+
- Issues with "Future (Post-v1.0)" but folder is "future-post-v10" → **Mismatches**
|
|
18
|
+
- Multiple display names for same version → **Confusion**
|
|
19
|
+
|
|
20
|
+
## Solution: Unified Naming
|
|
21
|
+
|
|
22
|
+
**The Rule:** Use the safe name directly as the display name.
|
|
23
|
+
|
|
24
|
+
This means:
|
|
25
|
+
|
|
26
|
+
- **NO conversion needed** (display name = filesystem name)
|
|
27
|
+
- **NO confusion** (what you see is what you get)
|
|
28
|
+
- **NO lookup failures** (names always match)
|
|
29
|
+
|
|
30
|
+
## Approved Naming Patterns
|
|
31
|
+
|
|
32
|
+
### 1. Version Releases
|
|
33
|
+
|
|
34
|
+
**Pattern:** `v{major}-{minor}-{patch}` (hyphens, no ambiguity)
|
|
35
|
+
|
|
36
|
+
**Examples:**
|
|
37
|
+
|
|
38
|
+
- ✅ `v0-7-0` (for v0.7.0 release)
|
|
39
|
+
- ✅ `v0-8-0` (for v0.8.0 release)
|
|
40
|
+
- ✅ `v1-0-0` (for v1.0.0 release)
|
|
41
|
+
- ✅ `v2-0-0` (for v2.0.0 release)
|
|
42
|
+
|
|
43
|
+
**Why:** Hyphens are filesystem-safe and unambiguous. `v100` could mean v1.0.0 or v10.0, so we use `v1-0-0` instead.
|
|
44
|
+
|
|
45
|
+
### 2. Sprint-Based Development
|
|
46
|
+
|
|
47
|
+
**Pattern:** `sprint-{identifier}` (lowercase, hyphen-separated)
|
|
48
|
+
|
|
49
|
+
**Examples:**
|
|
50
|
+
|
|
51
|
+
- ✅ `sprint-1` (first sprint)
|
|
52
|
+
- ✅ `sprint-q1-2025` (Q1 2025 sprint)
|
|
53
|
+
- ✅ `sprint-january` (named sprint)
|
|
54
|
+
|
|
55
|
+
**Why:** Hyphens are safe for filenames and are convention in web development.
|
|
56
|
+
|
|
57
|
+
### 3. Development Phases
|
|
58
|
+
|
|
59
|
+
**Pattern:** `phase-{identifier}` (lowercase, hyphen-separated)
|
|
60
|
+
|
|
61
|
+
**Examples:**
|
|
62
|
+
|
|
63
|
+
- ✅ `phase-alpha`
|
|
64
|
+
- ✅ `phase-beta`
|
|
65
|
+
- ✅ `phase-1`
|
|
66
|
+
- ✅ `phase-mvp`
|
|
67
|
+
|
|
68
|
+
### 4. Release Planning
|
|
69
|
+
|
|
70
|
+
**Pattern:** `release-{identifier}` (lowercase, hyphen-separated)
|
|
71
|
+
|
|
72
|
+
**Examples:**
|
|
73
|
+
|
|
74
|
+
- ✅ `release-dec-2025` (specific month)
|
|
75
|
+
- ✅ `release-2025-q2` (specific quarter)
|
|
76
|
+
- ✅ `release-holiday` (named release)
|
|
77
|
+
|
|
78
|
+
### 5. Special Collections
|
|
79
|
+
|
|
80
|
+
**Pattern:** `{descriptor}` (lowercase, hyphen-separated)
|
|
81
|
+
|
|
82
|
+
**Examples:**
|
|
83
|
+
|
|
84
|
+
- ✅ `backlog` (unscheduled work)
|
|
85
|
+
- ✅ `future-post-v1-0` (far future work)
|
|
86
|
+
- ✅ `experimental` (experimental features)
|
|
87
|
+
- ✅ `deprecated` (deprecated features)
|
|
88
|
+
|
|
89
|
+
## Character Rules
|
|
90
|
+
|
|
91
|
+
### Allowed Characters
|
|
92
|
+
|
|
93
|
+
- **Alphanumeric:** a-z, A-Z, 0-9
|
|
94
|
+
- **Separators:** hyphens (`-`), underscores (`_`), dots (`.`) - but use sparingly
|
|
95
|
+
- **Length:** 1-100 characters
|
|
96
|
+
|
|
97
|
+
### Forbidden Characters
|
|
98
|
+
|
|
99
|
+
- ❌ Spaces (use hyphens instead)
|
|
100
|
+
- ❌ Parentheses (e.g., "Future (Post-v1.0)")
|
|
101
|
+
- ❌ Dots (except in version patterns like "v1.0.0" in display names, but NOT in filenames)
|
|
102
|
+
- ❌ Forward/backward slashes
|
|
103
|
+
- ❌ Special symbols (@, #, $, %, &, etc.)
|
|
104
|
+
|
|
105
|
+
### Invalid Examples
|
|
106
|
+
|
|
107
|
+
- ❌ `v.0.8.0` (dots in filename)
|
|
108
|
+
- ❌ `Future (Post-v1.0)` (parentheses)
|
|
109
|
+
- ❌ `Q1/2025` (forward slash)
|
|
110
|
+
- ❌ `Sprint #1` (hash symbol)
|
|
111
|
+
- ❌ `v0_8_0` (underscores for version numbers)
|
|
112
|
+
|
|
113
|
+
## Migration Guide
|
|
114
|
+
|
|
115
|
+
### If You See Display Names Like...
|
|
116
|
+
|
|
117
|
+
| Display Name | Should Be | Action |
|
|
118
|
+
| --- | --- | --- |
|
|
119
|
+
| `v.0.7.0` | `v0-7-0` | Update issue metadata |
|
|
120
|
+
| `v.0.8.0` | `v0-8-0` | Update issue metadata |
|
|
121
|
+
| `v.0.9.0` | `v0-9-0` | Update issue metadata |
|
|
122
|
+
| `v.1.0.0` | `v1-0-0` | Update issue metadata |
|
|
123
|
+
| `Future (Post-v1.0)` | `future-post-v10` | Update issue metadata |
|
|
124
|
+
| `Development` | `backlog` | Update issue metadata |
|
|
125
|
+
| (empty string) | `backlog` | Update issue metadata |
|
|
126
|
+
|
|
127
|
+
### Automated Fix
|
|
128
|
+
|
|
129
|
+
Run the health check to automatically convert all non-compliant names:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
roadmap health fix --fix-type milestone_naming_compliance
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
This will:
|
|
136
|
+
|
|
137
|
+
1. **Scan** all issues for non-compliant milestone names
|
|
138
|
+
2. **Convert** display names to safe equivalents
|
|
139
|
+
3. **Update** issue metadata automatically
|
|
140
|
+
|
|
141
|
+
## Why These Rules?
|
|
142
|
+
|
|
143
|
+
1. **Filesystem Compatibility:** Safe names work with any filesystem (Windows, Mac, Linux)
|
|
144
|
+
2. **URI Compatibility:** Names are URL-safe without encoding
|
|
145
|
+
3. **CLI Simplicity:** No conversion confusion - what you type is what you get
|
|
146
|
+
4. **Git Friendliness:** Works perfectly with Git without special escaping
|
|
147
|
+
5. **Human Readability:** Clear at a glance what the milestone represents
|
|
148
|
+
|
|
149
|
+
## Creating New Milestones
|
|
150
|
+
|
|
151
|
+
When creating a new milestone, use the `roadmap milestone create` command. It will:
|
|
152
|
+
|
|
153
|
+
1. ✅ **Validate** your name against these conventions
|
|
154
|
+
2. ✅ **Suggest** the safe filename version
|
|
155
|
+
3. ✅ **Create** both the display name and file correctly
|
|
156
|
+
|
|
157
|
+
Example:
|
|
158
|
+
```bash
|
|
159
|
+
roadmap milestone create "v0-8-0" --description "Version 0.8.0 release"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
The system will:
|
|
163
|
+
|
|
164
|
+
- Use `v0-8-0` as the display name
|
|
165
|
+
- Create file as `v0-8-0.md`
|
|
166
|
+
- Warn if names don't match these conventions
|
|
167
|
+
|
|
168
|
+
## Questions?
|
|
169
|
+
|
|
170
|
+
If you have questions about milestone naming, check:
|
|
171
|
+
|
|
172
|
+
- `.roadmap/milestones/` - See actual milestone file names
|
|
173
|
+
- `roadmap milestone list` - See all current milestones
|
|
174
|
+
- `.roadmap/issues/` - See issue organizations by milestone
|
|
175
|
+
|
|
176
|
+
## Current Compliant Milestones
|
|
177
|
+
|
|
178
|
+
- ✅ `backlog` - Unscheduled work
|
|
179
|
+
- ✅ `v0-7-0` - Version 0.7.0
|
|
180
|
+
- ✅ `v0-8-0` - Version 0.8.0
|
|
181
|
+
- ✅ `v0-9-0` - Version 0.9.0
|
|
182
|
+
- ✅ `v1-0-0` - Version 1.0.0
|
|
183
|
+
- ✅ `future-post-v1-0` - Future work beyond v1.0
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
**Last Updated:** December 26, 2024
|
|
188
|
+
**Version:** 1.0
|