The Sling SVN repository hosts a large number of Maven projects ( 291 as of April the 9th 2015 ). These are organised into logical sub-trees, e.g.
- bundles - for various bundles which are deployed in a Sling instance, such as the Sling Engine, various out-of-the-box Servlets, Authentication, etc
- installer - the Sling Installer
- launchpad - the Sling Launchpad and supporting projects
- performance - performance test framework and different performance benchmakrs
- testing - Sling Testing Tools
- tooling - various tooling projects, such as Maven plug-ins, IDE support, etc
Outside of these, two top-level folders have special meaning: 'contrib' and 'samples'.
Contrib modules are maintained on a ad hoc basis, but it's fine to let them rot for a while if nobody's interested at the moment. Moving something outside of contrib requires having several committers willing to support it (so that collectively we provide good support) and good test coverage as an objective measurement of the code's quality.
Sample modules also have a similar maintenance policy, but they are there for demonstrative reasons so they're not expected to be reusable and of wider interest like the modules in contrib.
The contrib and sample directories have their own launchpads, and modules from those directories should not be included into the 'main' launchpad. It's also not recommended have non-contrib,non-samples modules depends on ones from contrib or samples, as the result is not guaranteed to be maintained.
See also dev@sling - / and /contrib, what goes where and when is stuff 'promoted' and 'demoted'