As an example of open source software (OSS), the Firefox Debugger is dependent not only on Mozilla, but on the hard work and contributions of developers like you.
To learn more about contributing on GitHub, click here.
As a contributor, the code you write and the decisions you make can have a huge impact on the development of this project.
We've written this document to help streamline the contribution process, so you can more easily find all of the information you need.
Lastly, thanks for contributing! We know your time is valuable, so we appreciate that you've chosen to spend it here with us, working on the Firefox Debugger together!
- How Can I Contribute?
- Getting Started
- Project Overview
- debugger
- Firefox DevTools
- Get Involved with Firefox DevTools
- About Us
The Firefox Debugger is a web application interface for JavaScript debugging, designed for browsers and JS environments. It is built using React and Redux, and designed to work with Firefox and Chrome debugging protocols.
debugger is an open source Mozilla Firefox Developer Tools project. Our goal is to work with the community to build a universal JavaScript debugger for modern times.
We strive for collaboration with mutual respect for each other. Mozilla also has a set of participation guidelines which goes into greater detail specific to Mozilla employees and contributors.
Jason | Harald | Yulia | Victoria | David |
---|---|---|---|---|
@jasonlaster |
@digitarald |
@codehag |
@violasong |
@darkwing |
Our Community Team is a group of dedicated and talented people who contribute much-needed maintainer and leadership skills to the debugger project. They care deeply about the success of everyone who gets involved. To learn more about the roles of the Community Team members, and the ways they can support your success, checkout our Community Team Page!
You can also find them on the #community-team Slack channel.
There are lots of ways to contribute to debugger!
If you find an issue with the code, please file an issue. We'll do our best to review the issue and respond in a timely manner.
Issues related to bugs will be tagged with the bug label.
We are actively investigating ways of supporting enhancement requests in the project, so these instructions are subject to change. For now, please create an issue, and we will attempt to respond as quickly as possible.
Issues related to enhancements will be tagged with the enhancement label.
Documentation is as important as code. As such, we need your help to maintain clear and usable documentation throughout the repository. If you find an error in this document, or in other project documentation, please file an issue.
Issues related to documentation will be tagged with the docs label.
If you're into public speaking, you can also choose to give a talk or speech about the Firefox debugger, or on related topics.
In our opinion, the best thing about giving a talk on debugger is that you can demo debugging the debugger and watch a roomful of minds explode!
The best talks can be as simple as walking through how the debugger works and how to add a small feature. For the audience in the room, this will likely be the first time they've seen the internals of a developer tool.
Of course, feel free to ask questions in Slack or share talk slides or videos in our #talks
channel.
Another way to contribute to debugger is to write about it online, either on your own blog or on publishing platforms like Medium.
Writing about DevTools is the best way to dispel the myth that what we do here is magic. Additionally, it's a great way to share what you learn and articulate your passion for DevTools or debugger.
Good writing builds understanding, which fits our primary goal: to help developers understand that they can improve their own development environments.
The blog posts you write can either be technical ("How x works") or narrative ("How we built x") in scope.
Whichever you choose, it is important that your article helps people feel welcome to join and contribute to debugger.
If you would like to write a post, and have relevant questions for the team, feel free to ask one of us in Slack.
Don't forget to share what you've written in Slack, as well!
Here are some example blog posts about debugger:
- Search Boxes, by Jason Laster
- How the Debugger Got into the Flow, by Jason Laster
- On the Road to Better Sourcemaps in the Firefox Developer Tools, by James Long
- Implementing a Stepping Debugger in JavaScript, by James Long
Open source workshops are a great way to bring people together and contribute. The best thing about workshops is that they are a great way for newcomers to make their first pull request. They're also a lot of fun!
There have been four workshops so far. Two in New York, USA; one in Tel Aviv, Israel; and one in Vancouver, Canada.
The workshops have helped close to a hundred people get started working on debugger. In all cases, the workshops were organized in collaboration with a local meetup group that was interested in promoting open source software.
Feel free to reach out to us on Slack if you're interested in organizing a meetup. Here is a guide, and an example document. Amit Zur's Goodness Squad is also a must-read on the subject of coding meetups.
Give a talk or write a blog post, and help others get started in open source. Very few developers know that the Firefox Debugger is a web application. It's a lot of fun to hear the amazing tools others want to build once they learn that they can!
Getting started on an open source project is like starting a new job. Expect to spend the first days or weeks learning the codebase and meeting the team.
The best thing to do first is to answer specific questions like, "How are sources shown on the left?" Here is a guided activity to help you get started.
It's also helpful to think about who is working on the debugger, and what team members you might want to ask for help early on. We are lucky to have a great number of dedicated, friendly contributors here.
If you're looking for a good issue to begin working on, you can look through the 👋 good first issue and 👋 help wanted issues.
These issues should be well documented.
To begin your work, make sure you follow these steps:
- Fork this project
- Create a branch to start your work, using
git checkout -b your-feature-name
- Make your changes (either on GitHub or in your chosen code editor)
- Stage your commit, using
git add your-modified-file
- Commit your work, using
git commit -m 'your commit message'
- Start a pull request on GitHub
When making code contributions, there is one golden rule you should follow:
Be consistent with the rest of the code in the file
As debugger is part of FireFox DevTools, our code follows Mozilla's DevTools coding standards for Javascript.
You can earn more about these coding standards at the following links:
Go to Local Development to learn about:
At some point, you'll want to debug Firefox to see your changes in the DevTools Panel or inspect the debugger server.
Here's a guide to help you get started.
- Issue Titles
- Issue Descriptions
- Claiming Issues
- Labels
- Available Issues
- Triaging
- Issue Organization
- Community Friendly
Working on your first Pull Request? You can learn how from this free series How to Contribute to an Open Source Project on GitHub.
Go to Pull Requests to learn about:
Helping maintain a project is the best way to contribute to its overall health. Here are some notes on how we work.
- Triaging Issues
- Making Bugs Actionable
- Closing Stale Issues
- Making Issues Available
- Following up on In Progress work
- Adding a Patch
- Pushing to a Branch
Here are some tips from our contributors that you may find useful:
-
Manage your time wisely - It's easy to get overwhelmed by a million tasks at once. Avoid this by only
/claim
ing one issue at a time, and working on that issue until it is completed. There will always be more available issues in the future. -
Communicate early and often - If you have questions, ask them. If you have comments, make them. Share your work and your progress often, and our team of contributors will operate much more smoothly as a result.
-
Set Realistic Goals - It takes time, effort, and energy to write good code. It takes even more of all that to properly research bugs, plan new product features, and test the code you've written. As such, it's important that you don't take on more work than you can handle. Instead, focus on landing the smallest possible contributions, piece by piece.
-
Advocate for Open Source at Work - Though you can certainly contribute to open source software (OSS) for fun, you may be able to benefit from it professionally, as well. Consider talking with your manager about open source time at work.
There are several reasons why this makes sense for your employer:
- Expertise - Teams benefit from having a resident expert on debugging or other developer tools.
- Marketing - Your manager can market their team as OSS-friendly to candidates and other employees.
- Career Development - The skills you learn in OSS translate to your own growth as a developer.
- Sponsoring - Your team benefits from having quality OSS tools. Sponsoring your OSS time is a great way to give back to the community.
The debugger project is a JavaScript debugger built from the ground up using modern web application technologies. It is designed primarily for debugging Firefox but also for debugging in other environments like Chrome, or Node.
Firefox Devtools is the larger umbrella initiative that encompasses debugger and several other DevTools projects. The Firefox DevTools project claims its origin from a demo for a Mozilla work week in Orlando, FL, USA (December 2015), where the team worked under a tight deadline to provide a proof of concept of the Firefox developer tools running in pure HTML, even outside of Firefox. The code for that demo can be found on GitHub under @joewalker/devtools.html.
Since that original demo, the Firefox Devtools project has progressed quite a bit. To learn more about it, please read the devtools.html proposal document and take a look at the devtools.html meta bug for tracking progress.
Currently, the DevTools project ships developer tools for both Firefox and Firefox Developer Edition.
If you're looking to work directly on the DevTools project, you can find more information on the Firefox Devtools' Getting in Touch page.
Mozilla has hired (and continues to hire) many people from within the open source community, bringing contributors directly into the team; however, contribution is not necessarily a path to employment. Our internal hiring criteria are about more than just contributions; we are also looking at a number of other factors that create a diverse and healthy team.
Ask- Take a look at the current openings at Mozilla Jobs to see if there is a position that is a good fit for you. If you’re interested in a job with Mozilla, feel free to ask employees what it’s like to work here. However, employees can’t help you get hired outside of being a referral for you.
Referrals- If you’ve been making reasonable and regular contributions to the project, we’d be happy to be a reference for you. We can make internal referrals to Mozilla, or act as your reference to other companies. Please be considerate when making this request, we are happy to help you and want to see you find a job you want but can’t do this for everyone who contributes.