- Overview
- Requesting a new project space
- Migrating an existing project from Github
- Creating the project space
Overview
Developers are encouraged to use https://lab.civicrm.org/extensions/[ext-name]
as a place to publish the code for their extension. This provides a central repository, which at some point may become the canonical space for all official CiviCRM extensions (they can still be hosted on github, but should be mirrored there too).
This document outlines the specific steps for initially adding the extension to CiviCRM extension directory. For more information on how to create CiviCRM extensions, see: https://docs.civicrm.org/dev/en/latest/extensions/
Requesting a new project space
- Create an account on civicrm.org
- Request the "blog and extension" permission on Mattermost (you can ask in the Extensions Mattermost channel, ping @bgm if no one answers)
- For transparency, please do not ask in private.
- Once you have the "blog and extension" permission, you can select Add an extension to this directory from the main directory page, or by going to "My Account", then clicking on the "Participate" menu, then "Add an Extension".
Migrating an existing project from Github
This only relevant if your project already has issues and pull-requests and you wish to keep the history.
- Migrate the project first into your personal Gitlab space, then
- Request that it be moved to the extensions group (you can ask in the Extensions Mattermost channel, ping @bgm if no one answers).
See: import-from-github for the full procedure.
Creating the project space
(for those with admin permissions)
- Ensure that the name does not have any known namespace or other conflicts with other known extensions (check the extension directory under https://civicrm.org/extensions).
- Ensure that the request is from a known maintainer of the extension.
- Create a new project under
/extensions
- Extension paths must use the short form, ex:
myextension
and notorg.civicrm.myextension
.
- Extension paths must use the short form, ex:
- Add the author of the request as the maintainer of the project (under project Settings > Members)
- Setup a webhook on new tags (c.f. extdir's code).