The Fedora software is completely developed and maintained by the user community. The project receives technical and organizational stewardship from DuraSpace, but the implementation of Fedora comes completely from the shared contributions of the community. No dedicated development staff implements Fedora.
There is, nevertheless, a coordinated process for engaging in Fedora development. If you have any interest in becoming more familiar with the inner workings of the Fedora software, you are welcomed and encouraged to join the process – Java skills not required!
The calendar is divided into six-month phases (Jan - June and July - Dec). We try to establish the community developer commitments prior to the start of the coming phase. Each phase is then sub-divided into two-week sprints. Development takes place in units of "sprints", and the expectation is that developers who are contributing to a given sprint have support from their respective institutions to have full focus on Fedora development during the sprint.
During a development phase, sprints are collaboratively scheduled between developers and the Fedora technical lead, to best identify a time when all developers can participate in a sprint.
For a developer who is new to the project, we have found that it usually takes a full sprint to become acquainted with the codebase, related tooling, documentation, and the project processes. In order for the investment in time to be mutually beneficial, we request that each developer commit to at least three sprints in his or her first year (more are encouraged!) of participation as a sprint contributor. Additionally, it is recommended that new team members schedule their first two sprints to be consecutive: the first to acclimate to the project, and the immediate second to excel.
It should also be noted that if an institution contributes one or more developers to the project over the course of the year cumulatively totalling 50% of an FTE, that institution is invited to join the Fedora advisory team†.
† An invitation is also offered to institutions contributing at the "gold level" of DuraSpace membership.
Fedora is the reference implementation of the Fedora API Specification. Its development, therefore, is informed by the specification, which in turn is an expression of a number of community defined use cases for a content repository designed for durable access to data.
Each Fedora release is accompanied by a one-click installer, so use cases can be tested and validated easily in a desktop environment. There is an API Test Suite created to ensure conformance with the Fedora API Specification and, therefore, one means to test the Fedora software, though there are a myriad of ways to test the software.
If you have an interest in the Fedora API Specification and/or resulting software, please join the testing and validation effort. You can leave feedback as a comment on the relevant wiki page, and/or contact the Fedora Product Manager, David Wilcox, directly with your feedback.
Guide for New Developers