Tuleap is a Free and Open Source software developed since 2001 under GPLv2 license. Contributions are welcomed, on Tuleap Core, on plugins, in documentation, etc.
Development of a Tuleap extension, outside of the main development tree is hard and you are likely to shoot yourself in the foot if you do so. The main reason is that Tuleap internal API is not guaranteed, it can change at any moment for any reasons.
REST API & Webhooks, on the other hand are very carefully maintained and we ensure, as much as possible the backward compatibility. We (the core team) strongly recommend to look this way for your developments.
This guide will gives you the insights to start your contributions to Tuleap:
- Setting up your environment
- Push your code for review to integrators
- Understand Tuleap internals
You can also find help for your dev related questions on the chat in the #general channel.
Documentation of a living tool is hard to achieve and, in case of doubts, the source code is always the reference.
When working with sources, you must look closely to Architecture Decision Records that will give insights on the evolutions of the code base and what is expected / current norm.
The following picture is a very high-level view of Tuleap Architecture. The main information to keep in mind:
- Historically, Tuleap was a monolith. A plugin system was introduced to bring composability.
- Tuleap Core corresponds to
- The central concepts of Tuleap: User, Projects, Services, Groups, Permissions, ... management
- The site wide features: site administration, help, welcome page, etc
- The shared libs (internal Framework)
- The historical/legacy services. Those will eventually be deleted or converted into plugins.
- Tuleap Plugins can provide features like
- a Service like Tracker, Kanban, TestManagement, ...
- or be transversal like LDAP, OpendIDConnect, ...
Source: Tuleap Architecture.drawio
You can also have a look at a more infra oriented diagram. This diagram is extracted from a more complete presentation on Requests Lifecycle.