Skip to content

Instantly share code, notes, and snippets.

@luceos
Last active December 23, 2015 10:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save luceos/1b1b91c259f3122fff7d to your computer and use it in GitHub Desktop.
Save luceos/1b1b91c259f3122fff7d to your computer and use it in GitHub Desktop.
friends of flarum

:name

:name is a collaboration of Flarum extension developers, who want to share their experiences to help others at building Flarum extensions and improve the documentation from an outsider viewpoint.

Our checklist

In order to provide quality extensions and snippets, we follow this checklist as closely as possible;

  • Namespaces consist of the :name vendor and a unique package name prefixed by flarum: :name/flarum-package-name.
  • Packages are hosted on Github and registered on Packagist, making it easily available through Composer.
  • Our coding style prefers PSR-2 and requires proper documentation of the code using PHPDoc.
  • Use semantic versioning for your package.
  • The directory layout is combining PSR-4 with some additions:
    • assets/ : files that need to be publicly available after installation.
    • js/ : frontend (javascript) files used in your extension, compiled using gulp.
      • js/admin : in case you have admin interface changes.
      • js/forum : in case you have forum interface changes.
    • locale/ : the translation files for your extension.
    • migrations/ : the extension database mutations.
    • src/ : the php files for your package, using the PSR-4 standard.
    • tests/ : unit tests using PHPUnit to validate the functionality of your code.
    • bootstrap.php : is used to hook into Flarum.
    • changelog.md : a history of the recent changes to the package per version.
    • license.md : the MIT license with your name at the top.
    • readme.md : explain what the package is about, how to install, use and provide some useful links, see the example of the PHP league.

Our rules

We prefer to have as few rules as possible, if in doubt talk to the other group members;

  • Use branches and pull requests to contribute to packages of others in the group.
  • Adding an Extension allows other members of :name to change it.
  • Proposed Extensions need a majority vote of the group.

Joining

Apart from being able to collaborate on any Extension using the Github contributing ecosystem, we do allow developers to join our group. To keep communication practical and organization flat, we require a majority of the votes from the :name group members.

Contact

You can reach members of the :name group on Gitter chat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment