We have improved our ideas about the architecture of new language analyzers we might build into our search/extra and search/extra-analysis projects. Using sub-modules allows us to have one project with shared resources, while building separate plugin releases (as independent .zip files) for deployment. We get the reduced complexity of having fewer projects to maintain, without the added complexity of having to carefully keep track of which version of the parent project we've deployed and whether it contains the new features the updated config code expects. We refactored search/extra and search/extra-analysis-slovak this way before it was deployed.
For search/extra-analysis (which will spawn search/extra-analysis-serbian), it's a little more complex because it's already been deployed for Serbian-language projects. We should figure out the upgrade path before enabling it for Croatian and others (T192395), to make sure we aren't creating extra headaches for ourselves.
Sub-tasks will include:
* refactoring Serbian extra-analysis plugin into the extra-analysis-serbian submodule
* deploying extra-analysis-serbian
* updating the Serbian config to look for extra-analysis-serbian instead of extra-analysis
* re-indexing Serbian-language wikis. (Probably. It's not clear whether we need to do a full re-index or just switch over the config, since the analysis results will be the same before and after. It may just be easier to re-index because all the necessary bookkeeping is taken care of by that process.)
* undeploying extra-analysis