Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
89 lines (67 sloc) 3.35 KB

How to Contribute

Welcome, and thanks for considering contributing! In order to make our review/development process easier, we have some guidelines to help you figure out how to contribute to Affiliates.

Reporting Issues

We use Bugzilla to track issues and bugs for Firefox Affiliates. Any issues with the website should be filed under the Firefox Affiliates product.

Terminology

Mothership
The main portion of the Affiliates website, accessible at https://affiliates.mozilla.org.
Social Integration / Facebook App
Facebook app implemented in the `facebook` Django app that links with the mothership for certain stats.
Banner
An image link, text link, or other type of link that users can generate using Affiliates.

Development Guidelines

  • Servers pull code from master. Development should happen in feature branches and pull requests should merge back to master except in special cases.
  • Python code should be covered by unit tests. JavaScript code is covered by either end-to-end tests or by manual testing.
  • Python code should follow Mozilla's general Webdev guidelines. The same goes for our JavaScript guidelines and CSS guidelines.
    • As allowed by PEP8, we use 99-characters-per-line for Python code and 72-characters-per-line for documentation/comments. Feel free to break these guidelines for readability if necessary.
  • Affiliates is based on Playdoh. The Playdoh Documentation explain the features of Playdoh and how to develop a site based on it.

Adding a Library

Due to licensing and deployment constraints, adding a library to Affiliates requires a few things:

  1. Add the library to the requirements files in the requirements folder. prod.txt is for libraries required in production, dev.txt is for libraries required for local development or running tests, and compiled.txt is for libraries that need to be compiled.

  2. If the library isn't compiled, install it in vendor-local using the following Pip command (assuming we want to install the chocobo library from PyPI):

    pip install --no-install --build=vendor-local/packages -I chocobo
  3. Add the path to your newly installed package to vendor-local/vendor.pth. For example, if it was installed in vendor-local/packages/chocobo, you'd add the line pacakages/chocobo to vendor.pth.

Note: Keep the installation changes in a separate commit from the rest of your work to make code review easier.

Additional Resources

You can’t perform that action at this time.