How the Rust Project Tracks and Reports Goal Progress: A Step-by-Step Guide
Introduction
Every six months, the Rust Project sets a collection of Project Goals to guide development efforts. For the 2025H2 period (ending April 2026), 41 goals were pursued, with 13 designated as Flagship Goals. This guide walks you through the process the Rust team uses to define, monitor, and report on these goals, based on the real practices visible in their public updates. By understanding these steps, you can apply similar tracking methods to your own open-source or collaborative projects.

What You Need
Before you start, ensure you have the following:
- Access to a public issue tracker (like GitHub Issues) – the Rust Project uses tracking issues for each goal.
- Familiarity with your project’s roadmap – know your high-level objectives for the period.
- A list of champions and contributors – key people assigned to drive each goal.
- Consistent communication channels – e.g., mailing lists, Zulip, or comment threads for progress updates.
- A template for status updates – to standardize how progress is reported (e.g., “Status: Continued” or “Completed”).
Step-by-Step Process
Step 1: Define the Goals and Distinguish Flagship Goals
Begin by brainstorming and documenting every goal your project wants to achieve during the upcoming period. For the Rust Project, this resulted in 41 Project Goals. From these, identify the most impactful ones as Flagship Goals (13 in the 2025H2 cycle). These flagship goals receive extra emphasis and regular public updates.
Example: In Rust’s case, flagship goals included “Flexible, fast(er) compilation” and “Higher-level Rust.”
Step 2: Create a Tracking Issue for Each Goal
For every goal (especially flagships), open a dedicated tracking issue on your issue tracker. This issue will serve as the central repository for all updates, discussions, and milestone tracking. In Rust, each goal has its own tracking issue where champions post progress comments with timestamps (e.g., “Frank King — comment from 2026-02-26”).
Tip: Use a consistent label (e.g., “Project Goal 2025H2”) to make filtering easy.
Step 3: Assign Champions and People Involved
Each goal needs a champion (or multiple champions) responsible for driving it forward. The Rust Project often lists champions as “People involved” – for example, “Frank King” with champion roles in compiler and lang teams. Also note any additional contributors. This accountability ensures progress doesn’t stall.
Step 4: Monitor Progress with Regular Updates
Champions should post periodic updates in the tracking issue. These updates can include:
- Design work completed (e.g., “design and implement the borrow checking algorithms”).
- Pull requests merged or opened (e.g., “Merged Implement coercions between &pin …”).
- Reviews or refactoring done.
- Any blockers or next steps.
Example from Rust: Frank King’s update on February 26, 2026, describes local design work, review of a Drop::pin_drop PR, and review of a coercion implementation.
Step 5: Compile Curated Updates for End-of-Period Reports
At the conclusion of the goal period (e.g., April 2026 for 2025H2), synthesize all tracking issue updates into a single public post. The Rust Project creates curated updates that summarize progress for each goal, including a final status label like “Continued” (meaning work carries into the next period). Include a Table of Contents to help readers navigate. The original post listed many goals under categories like “Flagship: Beyond the &” and “Other goal updates.”
Step 6: Determine Final Status and Next Steps
For each goal, decide whether it has:
- Completed – fully achieved.
- Continued – progress made but work continues into the next period.
- Deprioritized – no longer active.
In the Rust update, many goals (like “Continue Experimentation with Pin Ergonomics”) show “Status: Continued,” indicating they remain active for the 2026 period.
Step 7: Transition Goals to the Next Cycle
After reporting, carry forward continued goals into the new period. Update tracking issues with new milestones and deadlines. For the Rust Project, goals that are “Continued” become part of the 2026 goal set. Communicate clearly to the community which goals are moving forward.
Tips for Success
- Use anchor links in your report for easy navigation – e.g., link to each goal’s tracking issue or to sections like Step 1 above.
- Involve the community – thank contributors (as Rust did with “Thanks to everyone who contributed! <3”). This builds goodwill and encourages future participation.
- Keep updates detailed but readable – include specific actions (e.g., “Opened draft PR”) rather than vague statements.
- Standardize status labels – use consistent wording like “Continued” or “Completed” to make scanning easy.
- Publicize the report widely – post on the project blog, social media, and relevant forums to maximize reach.
By following these seven steps, any open-source project can adapt the Rust Project’s goal-tracking methodology. The key is transparency, regular updates, and clear communication of status and next steps.
Related Articles
- Create a Chatbot for Spotify Ads Management Using Claude Code Plugins
- Mastering GDB's Source-Tracking Breakpoints: A Complete Guide
- How to Join the Python Security Response Team: A Complete Guide
- Go 1.26: Key Features and Updates in Q&A
- 10 Ways Claude Code’s Persistent Memory Supercharges Your Development Workflow
- Boosting Go Performance with Stack-Allocated Slices
- 8 Key Changes in the Latest Updates to A2UI and Flutter's GenUI Package
- The Leader's Guide to Building Trust in a World of Information Overload