Pydio is open source software, and the code is published under the AGPLv3 License. As such, the code is publicly available on GitHub, and forking is particularly recommended! Still, contribution must be done following some guidelines.
Please read before contributing
Pydio currently does not impose some PSR norm for the PHP coding. Still, every contribution will be reviewed very carefully, and we want to draw your attention on the following
- If you are fixing a simple bug, through some kind of one-line commit, please test the changes you made in many contexts. With modularity, comes the variety of situation in which Pydio can be deployed, and as such, having a working patch for a given set of plugins do not necessarily means it will be working well when switching to other plugins. E.g. switching between DB-based & Serial-based configs storage, testing with various workspaces access drivers, etc...
- If you want to provide a brand new feature, the very first step will be to understand the plugin architecture, and the events that are triggered to "communicate" between them. That way, for most feature, you should be able to provide a unique self-containing plugin with all necessary data. When accepted, plugins will first be published as "contributed" plugins, from the website and not directly available in the core package. If the feature is successful, plugins may integrate the core at one point.
- Take me to the developer guide!
GH organization & Pull Requests
The code is located at https://github.com/pydio/. From here, you can fork to write your own plugins or provide bug fixes. The pydio-core project is organized to use the develop branch by default. Make sure to fork and submit PR on this branch only. Once you are happy with your code, please use the now standard Github "Pull Request" mechanism to submit your changes. If you are not familiar with git, reading https://help.github.com/articles/using-pull-requests is a good start.
Pydio versions numbering
The version numbering is fairly simple. Based on the Major.Branch.Minor, all even branches are considered stable (2.2, 2.4, 3.0.1, 3.0.2, etc.) and all odd branches are considered development branches.