Skip to content

Latest commit

 

History

History
346 lines (229 loc) · 18.8 KB

CONTRIBUTING.md

File metadata and controls

346 lines (229 loc) · 18.8 KB

Contributing to debugger

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!

Table of Contents

What is the Firefox Debugger?

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.

About Us

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.

Mozilla Team

Jason Harald Yulia Victoria David

@jasonlaster

@digitarald

@codehag

@violasong

@darkwing

❤️ Community Team ❤️

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.

How Can I Contribute?

There are lots of ways to contribute to debugger!

Report Bugs 🐛

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.

Suggest Enhancements 🆕

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.

Write and Proofread Documentation 📖

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.

Give a Talk 💬

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.

Write a Blog Post ✏️

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:

Organize a Meetup 🍺

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 🏃

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.

Your First Code Contribution

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

Coding Standards

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:

Development Guide 💻

Go to Local Development to learn about:

Terminology

Debugging Firefox

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.

Issues

Pull Requests

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:

Maintainer Tips

Helping maintain a project is the best way to contribute to its overall health. Here are some notes on how we work.

Debugging Tips

Pro Tips for Contributors

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 /claiming 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.

Project Overview

debugger

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

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.

Get Involved with Firefox Devtools

If you're looking to work directly on the DevTools project, you can find more information on the Firefox Devtools' Getting in Touch page.

Talks and Videos about debugger

Joining Mozilla

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.