Description
Introduce the ability to assign weights to issues, allowing teams to prioritize and allocate work based on effort. This feature would enhance project management capabilities by enabling better planning and tracking within projects.
Currently, Gitea issues lack the ability to assign weight or effort to an issue. This limitation makes it difficult for teams to:
- Estimate the time and effort needed to complete different tasks.
- Balance workload distribution across team members and milestones.
Mentions:
- Introduction of burndown charts on milestones #10440
- Issue Weight #19001
- [feature request] Scrum in gitea #16572
Proposed Solution:
Add an opt-in feature to Gitea Issues allowing users to assign a weight to each issue. This weight would represent the effort of the issue. Key features of this proposal include:
-
Adding Opt-in Configuration Option
The following configuration options will control the weight feature, allowing users to opt into using weighted issues.ENABLE_ISSUE_WEIGHT: false # Enable/Disable weight feature DEFAULT_ENABLE_ISSUE_WEIGHT: true # Default enable/disable weight feature during repository creation
-
Adding Weight to Issues:
Users can assign weights to issues directly upon creation from the issue sidebar. This allows quick assignment of effort to tasks without navigating away from the issue creation page. -
Editing Weights:
Weights can be updated at any point during issue edits, with the weight field being easily accessible from the sidebar in the issue details view. -
Weight Change Tracking:
Automatic comments are generated for weight-related changes, documenting the addition, modification, or removal of weights. -
Milestone Weight Progress:
Milestones display total weight for all associated issues. Progress bars are based on the sum of weights rather than just issue counts, providing a clearer view of the actual effort remaining. -
Project Board Integration:
On project boards, issues display their weight, and columns show the total weight of issues within them, allowing teams to balance workloads effectively. Filters help further refine issue distribution across the board.
I made a basic proof of concept, visible here, to get familiar with the codebase and assess the complexity of implementing the necessary changes.