-
Notifications
You must be signed in to change notification settings - Fork 7
Closed
Labels
prio:lowLow priorityLow prioritystatus:doneTask completed successfullyTask completed successfullytype:docsImprovements or additions to documentationImprovements or additions to documentation
Milestone
Description
Feature description
To provide contributors and users with a clear, visual, and up-to-date overview of Atta's development status and priorities, the project's README file should include a dynamic roadmap. This roadmap will be rendered as SVG images generated automatically based on the state of GitHub issues (which represent features/tasks). ImPlot3D is a good inspiration for this :)
The proposed system involves:
- GitHub Actions Workflow: Triggered by events like issue creation/updates, comment additions, label changes, or potentially pushes to linked branches.
- Python Script: Executed by the workflow, this script will use the GitHub API to fetch data for relevant issues (e.g., issues with specific labels like 'feature-request' or 'roadmap').
- SVG Generation: The script will parse issue data (title, labels for status/type/priority, task list checkboxes for progress, reactions, commenters for participants, linked branch info for commits/diff stats) and generate informative SVG "cards" for each feature.
- Clickable SVGs: The generated SVGs will be interactive. Clicking on a feature card could link directly to the corresponding GitHub issue. Clicking on specific elements (like the task list) could potentially link to a filtered view (e.g., via a simple redirection service hosted at
atta.brenocq.com
). - Detached Branch Deployment: The generated SVG files will be committed and pushed to a dedicated, detached branch (e.g.,
roadmap-svgs
). The main README file will embed these SVGs using standard image links pointing to the raw files on this detached branch. This allows the roadmap in the main branch's README to update automatically whenever the SVGs are regenerated, without cluttering the main branch history with SVG updates.
This system will ensure the README always reflects the current state of development features tracked in GitHub issues.
Tasks
- Design the specific structure and style for the SVG roadmap cards
- Develop a Python script to get issue information
- Authenticate with the GitHub API
- Get the number of issues per status tag
- Fetch pinned issues
- Fetch the latest updated issues
- List issue labels
- Remove tag from issue name
- Get issue type
- Get reactions
- Get comments
- Get contributors
- Get linked PR
- Get linked branch
- Get commit count
- Get line additions
- Get line deletions
- Get files changed
- Get last comment information
- Develop a Python script to generate status cards
- Setup light-dark mode
- Retrieve status card data
- Card border
- Number of issues
- Tag
- Develop a Python script to generate issue cards
- Setup light-dark mode
- Retrieve issue card data
- Card border
- Issue icon (issue/bug)
- Issue title
- Issue number
- Issue tags
- Pinned issue icon
- Bottom-left description
- Deletions
- Additions
- Commits
- Linked branch/PR
- Contributors
- Comments
- Reactions
- Task progress
- Create the GitHub Actions workflow:
- Define appropriate triggers (issue events, comments, labels, potentially schedule).
- Set up Python environment and install dependencies.
- Execute the Python generation script.
- Commit and push the generated SVG files to the detached branch.
- Update the main
README.md
file to embed the generated SVG images using links to the detached branch. - Set up the redirection service (e.g., at
redirect.brenocq.com
) to handle clicks within the SVGs and redirect to appropriate GitHub URLs. - Test thoroughly with various issue states, updates, and edge cases.
brenocqbrenocqbrenocq
Metadata
Metadata
Assignees
Labels
prio:lowLow priorityLow prioritystatus:doneTask completed successfullyTask completed successfullytype:docsImprovements or additions to documentationImprovements or additions to documentation
Projects
Status
Done