Work Packages & Workflows
A Work Package is the atomic unit of work in OpenProject Laravel. Work packages generalize tasks, user stories, software bugs, features, and milestones into a flexible, stateful workflow system.
1. Work Package Types
| Type | Purpose | Behavior |
|---|---|---|
| Task | Standard operational work, development tasks, technical chores | Has start date, due date, estimation, and spent time. |
| Bug | Defect reports, security fixes, regression issues | Prioritized by severity, lifecycle tracked until resolved. |
| Feature | High-level user story or capability | Aggregates subtasks and deliverables. |
| Milestone | Key schedule deliverable or sprint freeze | Represents a point in time (start_date == due_date). |
2. Work Package Status Lifecycles
stateDiagram-v2
[*] --> New: Created
New --> In_Progress: Picked up by Developer
In_Progress --> In_Review: Pull Request Opened
In_Review --> Resolved: Review Approved & Merged
Resolved --> Closed: Verified in Production
In_Review --> In_Progress: Changes Requested
New --> Rejected: Duplicate / Invalid
Status Meanings
- New: Task has been created and placed in the project backlog.
- In Progress: An assignee is actively working or coding.
- In Review: Ready for code review, QA testing, or design validation.
- Resolved: Successfully tested and merged.
- Closed: Concluded and locked. Automatically sets progress (
done_ratio) to 100%.
3. Prioritization Matrix
- Low: Non-blocking improvements or aesthetic enhancements.
- Normal: Standard sprint commitments.
- High: Urgent customer deliverables or sprint-blockers.
- Urgent: Critical bugs impacting current releases.
- Immediate: Production outage or zero-day security vulnerabilities.
4. Time Tracking & Estimates
Every work package tracks:
- Estimated Hours: Target budgeted time for the task.
- Spent Time: Sum of logged hours contributed by team members.
- Progress (
done_ratio): Value from 0% to 100% reflecting actual completion.