GitHub Issues For Noir-lang's TODOs & FIXMEs
Hey guys! Let's dive into something super important for keeping the Noir-lang project ship-shape: creating GitHub issues for all those sneaky TODO and FIXME comments hidden in the codebase. You know, those little notes we leave ourselves (and others) about things that need fixing or features that need building? Right now, we've got a situation where some of these gems are, well, a bit lost in the shuffle. This article will walk you through why this matters, what we can do about it, and how it’ll help us build an even better Noir-lang.
The Problem: Untracked Technical Debt
So, here's the deal: The Noir-lang codebase, like many awesome projects, has a bunch of TODO and FIXME comments scattered around. The thing is, many of these are like little breadcrumbs pointing to important work that needs to get done. Think of them as hidden technical debt—things that, if left unattended, can slow us down, cause bugs, and generally make life harder down the road. Currently, there are at least 26 TODO or FIXME comments in the codebase. While some are already linked to existing issues (kudos to those who are on top of it!), a bunch are just hanging out there, unloved and unassigned. This means these tasks are invisible to project management tools, hard to find for new contributors, and easy to forget about. It's like having a to-do list that's only in your head—not super effective, right?
For example, take a peek at some of the untracked TODOs we've spotted:
tooling/nargo/src/package.rs: "TODO: This should be configurable..."compiler/wasm/src/noir/dependencies/github-dependency-resolver.ts: "TODO accept ssh urls?" and "TODO github authentication?"examples/prove_and_verify/prove_and_verify.sh: "TODO:bbshould createproofsdirectory..."
These are just a few examples, but they give you a taste of the kind of stuff we're missing. It's like having a treasure map but not marking the "X" on the spot.
The Current Behavior: Lost in the Code
Right now, these actionable items and potential improvements are stuck in code comments. This means they suffer from a few key issues:
- Invisible to project management: They don't show up in our issue trackers, so they’re out of sight, out of mind.
 - Hard to discover: New contributors (and even existing ones!) might not know these tasks exist.
 - Difficult to prioritize: Without an issue, it's hard to gauge the importance of the task.
 - Easy to forget: Let's be real, it's easy to scroll past a comment and never look back.
 
Basically, the current system isn't optimized for getting things done. We want to be proactive about tackling these tasks, not just hoping they magically get addressed. We need to create GitHub issues for untracked TODO and FIXME comments.
The Expected Behavior: Issues Galore!
What we want is for every actionable TODO and FIXME comment to have its own corresponding GitHub issue. This would ensure:
- Tracked and visible: The tasks are on our radar and in our issue tracker.
 - Properly prioritized: We can rank the tasks based on importance.
 - Assigned to contributors: We can assign ownership and get work moving.
 - Eventually addressed: These tasks don't get lost in the digital ether.
 
It's all about making these tasks actionable. When we convert these comments into issues, they become real, trackable work items that we can assign, discuss, and ultimately, close.
The Impact: Better Project Management and Contribution
Implementing this will have some serious positive effects on the Noir-lang project, improving everything from project transparency to new contributor onboarding. It will also reduce technical debt and allow for better project management:
- Improves project transparency: Everyone can see what needs to be done.
 - Helps with task prioritization: We can decide which tasks are most important.
 - Makes it easier for new contributors to find work: They'll have a clear list of things to tackle.
 - Reduces technical debt: We'll be actively addressing potential problems.
 - Better project management: Clearer workflows and more efficient organization.
 
Essentially, this is about making our project more open, organized, and collaborative. By turning comments into issues, we're making it easier for everyone to contribute and keeping the project moving forward.
Suggested Fix: Issue Creation and CI Checks
So, what's the plan? Here's how we can fix this and keep it fixed:
- Full Audit: We need a thorough search of all 
TODOandFIXMEcomments in the repository. This is where the search results link comes in handy! We'll go through the results to make sure we don't miss anything. We can make a list of them and open them as GitHub issues. - Create GitHub Issues: For every relevant comment that doesn't have a tracking issue, we'll create a new GitHub issue. Be sure to link the issue to the exact code location.
 - Link to Code Location: In the issue, we'll include the file and line number where the comment lives. This makes it super easy for anyone to jump in and start working on it.
 - CI Check (Optional, but awesome): Consider adding a check to our continuous integration (CI) pipeline. This check would make sure that any new 
TODOcomments are always accompanied by an issue number. This would help us prevent the problem from reoccurring, ensuring all future issues are tracked. 
That's it, guys! It may seem like a lot of work at first, but trust me, it will improve the quality of the project. It will be worth the effort to keep things organized. Let's get those issues created and keep the project thriving!