Naming strategy change for contrib projects

Hi devs,

We have an issue with XWiki Contrib (XWiki.org) with the case of repos containing several types of maven modules. Several committers have started the usage of using names without prefixes. Examples: mediawki, confluence, jira, latex, markdown, etc.

FTR, this was briefly discussed at [xwiki-devs] [Brainstorming] Contrib naming considerations - Vincent Massol - org.xwiki.devs - MarkMail but with not enough answers (and it was only a brainstorming).

In addition, there’s also the problem of starting a repo with a single module that later becomes more complex and requires additional Maven modules. This forces us to perform a GitHub rename (luckily GH supports this) but it also has consequences on the artifactId which is supposed to match the directory name (see Development Practices - XWiki).

Thus this VOTE is about making it extra simple and simply naming the contrib repo after their name without using any prefix (or suffix) to indicate the type of extension it is.

== Choosing the name ==

When picking the GitHub name please use a single word (e.g. ##forum##). However, sometimes that is not descriptive enough, so you can either use multiple words next to each other (e.g. ##filemanager##) if that makes sense and looks natural enough or, if not, you should separate the words with a dash (e.g. ##multiselect-suggest##). Whatever you decide, please try to keep it as short and descriptive as possible.

Try to avoid using names that would not work well if some new Maven modules need to be added in the future (e.g. avoid using ##figure-macro## since there could be new modules added that wouldn't be macros, such as API, Application (XAR) or other module types. In short, this means having a "business" name, not related to the extension type.

If there's already a repo with the name you want to use, consider adding your code as a sub-module if it fits the same domain and can be released together (same release lifecycle). If it doesn't fit, use a different name (adding a qualifier or a different name altogether).

Special cases:

* ##icon-themes##. This is a reserved name and it's also the name of a [[special repository containing all Icon Themes>>https://github.com/xwiki-contrib/icon-themes]]. If you want to contribute a new Icon theme, you should add a new ##icon-theme-<yyy>## directory in this repository. We release all Icon Themes together with the same version as we consider them too small to be released separately.
* ##color-themes##. This is a reserved name and it's also the name of a [[special repository containing all Color Themes>>https://github.com/xwiki-contrib/color-themes]]. If you want to contribute a new Color theme, you should add a new ##color-theme-<yyy>## directory in this repository. We release all Color Themes together with the same version as we consider them too small to be released separately.

//Hint//: When in doubt, have a look at [[existing repository names>>https://github.com/xwiki-contrib]] for inspiration but only for repos created after the 2023-05-10 since the naming strategy was changed at that date!

Always avoid using the ##xwiki-## prefix since this one is used by XWiki GitHub organization repositories (i.e. Core modules). You should also avoid using it as a suffix since all Contrib projects are related to XWiki.

TBH I don’t remember why we started using prefixes with the extension type (I probably suggested it a long time ago) but it seems it was a bad idea after all. It certainly helps when filtering projects in GH but I don’t think I’ve ever needed to use that in practice in all these years so I’d the need is not there.

I propose that we don’t do anything for existing repos since it would also mean changing the artifactId and that’s too complex.

Here’s my +1

Thanks

+1

+1

Thanks,
Marius

+1 Thanks

ok so 4 +1, no 0 and no -1, the vote is passed. I’ll document it.

Doc updated at XWiki Contrib (XWiki.org)