chore: task mgmt
This commit is contained in:
@@ -1,89 +1,72 @@
|
||||
# Task ID: 41
|
||||
# Title: Implement GitHub Actions CI Workflow for Task Master
|
||||
# Title: Implement Visual Task Dependency Graph in Terminal
|
||||
# Status: pending
|
||||
# Dependencies: None
|
||||
# Priority: high
|
||||
# Description: Create a streamlined CI workflow file (ci.yml) that efficiently tests the Task Master codebase using GitHub Actions.
|
||||
# Priority: medium
|
||||
# Description: Create a feature that renders task dependencies as a visual graph using ASCII/Unicode characters in the terminal, with color-coded nodes representing tasks and connecting lines showing dependency relationships.
|
||||
# Details:
|
||||
Create a GitHub Actions workflow file at `.github/workflows/ci.yml` with the following specifications:
|
||||
This implementation should include:
|
||||
|
||||
1. Configure the workflow to trigger on:
|
||||
- Push events to any branch
|
||||
- Pull request events targeting any branch
|
||||
1. Create a new command `graph` or `visualize` that displays the dependency graph.
|
||||
|
||||
2. Core workflow configuration:
|
||||
- Use Ubuntu latest as the primary testing environment
|
||||
- Use Node.js 20.x (LTS) for consistency with the project
|
||||
- Focus on single environment for speed and simplicity
|
||||
2. Design an ASCII/Unicode-based graph rendering system that:
|
||||
- Represents each task as a node with its ID and abbreviated title
|
||||
- Shows dependencies as directional lines between nodes (→, ↑, ↓, etc.)
|
||||
- Uses color coding for different task statuses (e.g., green for completed, yellow for in-progress, red for blocked)
|
||||
- Handles complex dependency chains with proper spacing and alignment
|
||||
|
||||
3. Configure workflow steps to:
|
||||
- Checkout the repository using actions/checkout@v4
|
||||
- Set up Node.js using actions/setup-node@v4 with npm caching
|
||||
- Install dependencies with 'npm ci'
|
||||
- Run tests with 'npm run test:coverage'
|
||||
3. Implement layout algorithms to:
|
||||
- Minimize crossing lines for better readability
|
||||
- Properly space nodes to avoid overlapping
|
||||
- Support both vertical and horizontal graph orientations (as a configurable option)
|
||||
|
||||
4. Implement efficient caching:
|
||||
- Cache node_modules using actions/cache@v4
|
||||
- Use package-lock.json hash for cache key
|
||||
- Implement proper cache restoration keys
|
||||
4. Add detection and highlighting of circular dependencies with a distinct color/pattern
|
||||
|
||||
5. Ensure proper timeouts:
|
||||
- 2 minutes for dependency installation
|
||||
- Appropriate timeout for test execution
|
||||
5. Include a legend explaining the color coding and symbols used
|
||||
|
||||
6. Artifact handling:
|
||||
- Upload test results and coverage reports
|
||||
- Use consistent naming for artifacts
|
||||
- Retain artifacts for 30 days
|
||||
6. Ensure the graph is responsive to terminal width, with options to:
|
||||
- Automatically scale to fit the current terminal size
|
||||
- Allow zooming in/out of specific sections for large graphs
|
||||
- Support pagination or scrolling for very large dependency networks
|
||||
|
||||
7. Add options to filter the graph by:
|
||||
- Specific task IDs or ranges
|
||||
- Task status
|
||||
- Dependency depth (e.g., show only direct dependencies or N levels deep)
|
||||
|
||||
8. Ensure accessibility by using distinct patterns in addition to colors for users with color vision deficiencies
|
||||
|
||||
9. Optimize performance for projects with many tasks and complex dependency relationships
|
||||
|
||||
# Test Strategy:
|
||||
To verify correct implementation of the GitHub Actions CI workflow:
|
||||
1. Unit Tests:
|
||||
- Test the graph generation algorithm with various dependency structures
|
||||
- Verify correct node placement and connection rendering
|
||||
- Test circular dependency detection
|
||||
- Verify color coding matches task statuses
|
||||
|
||||
1. Manual verification:
|
||||
- Check that the file is correctly placed at `.github/workflows/ci.yml`
|
||||
- Verify the YAML syntax is valid
|
||||
- Confirm all required configurations are present
|
||||
2. Integration Tests:
|
||||
- Test the command with projects of varying sizes (small, medium, large)
|
||||
- Verify correct handling of different terminal sizes
|
||||
- Test all filtering options
|
||||
|
||||
2. Functional testing:
|
||||
- Push a commit to verify the workflow triggers
|
||||
- Create a PR to verify the workflow runs on pull requests
|
||||
- Verify test coverage reports are generated and uploaded
|
||||
- Confirm caching is working effectively
|
||||
3. Visual Verification:
|
||||
- Create test cases with predefined dependency structures and verify the visual output matches expected patterns
|
||||
- Test with terminals of different sizes, including very narrow terminals
|
||||
- Verify readability of complex graphs
|
||||
|
||||
3. Performance testing:
|
||||
- Verify cache hits reduce installation time
|
||||
- Confirm workflow completes within expected timeframe
|
||||
- Check artifact upload and download speeds
|
||||
4. Edge Cases:
|
||||
- Test with no dependencies (single nodes only)
|
||||
- Test with circular dependencies
|
||||
- Test with very deep dependency chains
|
||||
- Test with wide dependency networks (many parallel tasks)
|
||||
- Test with the maximum supported number of tasks
|
||||
|
||||
# Subtasks:
|
||||
## 1. Create Basic GitHub Actions Workflow [pending]
|
||||
### Dependencies: None
|
||||
### Description: Set up the foundational GitHub Actions workflow file with proper triggers and Node.js setup
|
||||
### Details:
|
||||
1. Create `.github/workflows/ci.yml`
|
||||
2. Configure workflow name and triggers
|
||||
3. Set up Ubuntu runner and Node.js 20.x
|
||||
4. Implement checkout and Node.js setup actions
|
||||
5. Configure npm caching
|
||||
6. Test basic workflow functionality
|
||||
|
||||
## 2. Implement Test and Coverage Steps [pending]
|
||||
### Dependencies: 41.1
|
||||
### Description: Add test execution and coverage reporting to the workflow
|
||||
### Details:
|
||||
1. Add dependency installation with proper timeout
|
||||
2. Configure test execution with coverage
|
||||
3. Set up test results and coverage artifacts
|
||||
4. Verify artifact upload functionality
|
||||
5. Test the complete workflow
|
||||
|
||||
## 3. Optimize Workflow Performance [pending]
|
||||
### Dependencies: 41.1, 41.2
|
||||
### Description: Implement caching and performance optimizations
|
||||
### Details:
|
||||
1. Set up node_modules caching
|
||||
2. Configure cache key strategy
|
||||
3. Implement proper timeout values
|
||||
4. Test caching effectiveness
|
||||
5. Document performance improvements
|
||||
5. Usability Testing:
|
||||
- Have team members use the feature and provide feedback on readability and usefulness
|
||||
- Test in different terminal emulators to ensure compatibility
|
||||
- Verify the feature works in terminals with limited color support
|
||||
|
||||
6. Performance Testing:
|
||||
- Measure rendering time for large projects
|
||||
- Ensure reasonable performance with 100+ interconnected tasks
|
||||
|
||||
Reference in New Issue
Block a user