backdrop-ops / contrib

Apply to join the contributed code developer team.
23 stars 16 forks source link
backdrop backdropcms

Backdrop Contributed Project Group Application

Join the growing Backdrop contributor community at https://github.com/backdrop-contrib.

To apply, create a request as an issue in this queue: https://github.com/backdrop-ops/contrib/issues/new

If you have started writing or porting a project for Backdrop, please include a link to the module, theme, or layout. If you have posted the code under your own GitHub account you will be able to easily transfer the entire repository to live under https://github.com/backdrop-contrib/[your_project_name] after joining the Backdrop Contributed Project Group.

Benefits of joining:

Requirements to join:

Rejected applications:

New Project Checklist

All projects must meet these minimum requirements.

Backdrop Contributed Project Agreement

By joining the Backdrop Contributed Project Group (Backdrop Contrib, for short) you agree to the following:

  1. You will not push changes to a repository for which you are not a current maintainer (even though joining the Backdrop Contrib group will grant you access to push to any project within).

  2. You must agree to license your code contributions as GPLv2 or later.

  3. Any project you create or maintain must include a copy of the GPL-2.0 LICENSE.txt file in the root of your repository. The GPLv2 license applies to all code that directly interacts with parts of Backdrop licensed as GPLv2 or later. See the Backdrop License FAQ for a more detailed explanation.

  4. You must confirm that you have the right to distribute any additional code, libraries, images, fonts or other assets written or created by any third party with code licensed as GPLv2 or later.

  5. Any project you create or maintain must include a README.md file containing at the least the following:

    1. A description of the project
    2. Basic documentation
    3. License information for the project (GPL-2.0)
    4. License information for any additional assets (SIL OFL fonts, CC-SA images, etc)
    5. A list of the current maintainers for the Backdrop project
    6. Credits acknowledging past maintainers for the Backdrop or Drupal projects

    You may use this example README.md to get started.

  6. You will work with the Backdrop Security Team to address any vulnerabilities in any project you create or maintain, if necessary.

  7. Any project you create or maintain will have the GitHub issue tracker enabled for official communication.

  8. If any of the above requirements are not met, your access to the Backdrop Contrib group -- including all projects and even those that you may have originally authored -- may be revoked.

  9. If your project becomes abandoned and you do not respond to an issue to grant a new maintainer within 2 weeks, your project may be modified by a Backdrop Contrib Administrator to add a new maintainer, without your explicit consent.

Additional Notes For Non-coders

  1. If an applicant is not (yet) a coder but would still like access to the contrib group (for example, for updating documentation or managing issue queues) the applicant must get at least one recommendation from another person who already has commit access to the contrib group.

  2. Any non-coder applicant still agrees to the same contributed project author agreement as coders (above).

  3. Any non-coder applicant needs to additionally promise that should they ever wish to author new code in the Backdrop contrib group, they will also undergo the same code spot-check process a new contributor needs to undergo at the time they add the code.

What To Do After Your Application Is Accepted

When you are ready:

  1. Clean up your code so it's ready for community collaboration.

  2. If you started your project with a title like "backdrop-port-of-xyz", change the name of the project to exactly match the Drupal project (e.g. "xyz").

  3. Transfer the project to the backdrop-contrib organization following the steps mentioned in this post.

    1. After clicking 'I understand, transfer this repository', you'll be shown the 'Team Access' screen where you choose who will have access to this repo. Tick 'Authors' and 'Security' and 'Bug Squad' then click 'Transfer'.
    2. Visit the repository's new page, and go to 'Settings'.
    3. Click 'Collaborators & teams' in the left menu.
    4. Under 'Teams', set 'Authors' to Triage, 'Security' to Admin and 'Bug Squad' to Write.
  4. If your repository has a 'master' branch, you'll need to create a new '1.x-1.x' branch to replace it:

    1. Create the new '1.x-1.x' branch
      git checkout master
      git pull origin master
      git checkout -b 1.x-1.x
      git push origin 1.x-1.x
    2. Go to 'Settings' in the GitHib repo and click 'Branches' in the left menu.
    3. Change the default branch from 'master' to '1.x-1.x'.
    4. Delete the 'master' branch git push origin --delete master
  5. Make sure you are subscribed to notifications for the project's issues. The GitHub issue queue is where all the communication for your project happens, and when new issues are created, you need to know about them and respond in a timely manner otherwise your project might be considered abandoned following the procedure listed below.

  6. If your project is a port of a Drupal project, it is a best practice to subscribe to the issue queue on drupal.org. That way you can be updated when issues are fixed. You can then decide if you want any of those commits in your project. Similarly, if you fix bugs or or add new features, please consider letting the maintainer(s) of the original project know about it. It would be even better to post a patch in the Drupal queue for them to review. If you have found a security issue that applies to both, please try to coordinate the release of the fix with the maintainers of the original project through non-public channels so that potential attackers do not take advantage of either Backdrop or Drupal sites.

Releases

The module, theme and layout releases on Backdropcms.org rely on GitHub releases. Before creating a GitHub release, you must first add git tag. The format for the tag should be "1.x-1.0.0". "1.x-1.0.0-alpha1" or "1.x-1.0.0--beta1" can also be used to indicate a project is not yet stable and should be used with caution.

The most common order of operations is as follows:

  1. Add a tag using git tag 1.x-1.0.0
  2. Push the tag up to the contrib repository.
  3. Visit the page for the tag in GitHub and create a release from that page.
  4. Wait. This process can take anywhere 5 seconds to 5 minutes.
  5. Refresh the GitHub release page. You should see a "Download XYZ" link appear.

If successful, your project should appear on the modules, themes or layouts listing pages on BackdropCMS.org.

If there was an error during the packaging process, an error message from the packager will be attached instead.

Security Releases

You will need to work with the Backdrop Security Team in order to make a security release for your project. Please contact security@backdropcms.org to begin this process. Please see the Security Release Documentation for more details.

Abandoned Projects

You may apply to adopt an abandoned project. The procedure is as follows:

  1. If you haven't already, please join the Backdrop Contrib group by submitting an application (see above).

  2. File an issue with the current project requesting to help maintain the project.

    • If written permission is granted by a current maintainer, create a PR that adds your name to the README.md file in the list of maintainers.
    • If a current maintainer does not respond within 2 weeks, create an issue in this repository to take over the project. Please include a link to the issue you filed with the abandoned project.
  3. After confirming the project has been abandoned, a Backdrop Contrib administrator will add your name to the list of maintainers in that project's README.md file.

  4. You may now maintain the project directly as though given permission by the project maintainers, and likewise now grant permission to others to maintain the project.