Apache™ FOP Development: General Information
Introduction
These pages contain information that should be helpful for those developing Apache™ FOP. This certainly includes programmers, but may also include those contributing to the project in other ways.
For basic and user information on FOP, please visit the Apache™ FOP homepage.
Topics
Development
The main development happens on "FOP Main".
https://github.com/apache/xmlgraphics-fop.git
Getting Involved
Understand Apache Roles
Review the Apache Project Roles and Responsibilities document for an understanding of the various roles of contributors within the community.
How you can help
There are many different ways that you can help with FOP development. The following is a non-exhaustive list of ways that non-programmers can help. Remember that an hour spent on the tasks below is an hour that a programmer can devote to fixing bugs or adding features instead:
-
Answer questions on the fop-user mailing list.
-
Contribute examples that are useful to other users.
-
Contribute test cases.
-
Submit well-written feature requests.
-
Submit well-written bug reports.
-
Review open issues to see if you have any insight into them that might help a programmer solve the problem faster. Add comments and test cases as appropriate.
-
Test newly-closed issues to make sure they are truly closed.
-
Submit patches to the documentation.
Of course, we're glad to have programmers help as well. Here are some additional tasks that would require programming ability:
-
Fixing bugs.
-
Implementing new features.
Understand FOP-related standards
At the moment FOP is mainly a tool to render XSL-FO files to pdf. Therefore if you want to contribute to FOP you should become familiar with these standards. You can find links at Specifications.
Review the Developer Documentation
Understand FOP's Design
The design for FOP is specified under the Design section. This is where the information on how FOP is developed and designed internally will be kept.
Another place where we write design documentation is the FOP Wiki.
Subscribe to the fop-dev Mailing List
Use this forum to discuss topics related to FOP development, including patch submissions, bug reports, and design issues. Please do not use it for XML support, XSLT support, XSL-FO support, or even FOP support. Appropriate mailing lists for these topics can be found on the FOP Mailing List page.
-
To review the archives, you have several options:
-
The Mailing list ARChives (MARC) at the AIMS group (search).
-
The GMANE archive.
-
The Nabble archive.
-
The MarkMail archive.
-
Before posting questions to any list, see " General Information ".
-
See Apache XML Graphics Mailing Lists for detailed subscription information.
-
To subscribe (digest only): Send email to fop-dev-digest-subscribe@xmlgraphics.apache.org.
-
To subscribe fully: Send email to fop-dev-subscribe@xmlgraphics.apache.org.
-
For standard help: Send email to fop-dev-help@xmlgraphics.apache.org.
-
To unsubscribe: Send email to fop-dev-unsubscribe@xmlgraphics.apache.org.
Subscribe to the fop-commits Mailing List
When changes are committed to the code repository, a record of the diffs is emailed to the fop-cvs mailing list. FOP developers are encouraged to subscribe to this list because it helps in following the progress of the project.
-
To review the archives, you have several options:
-
The Mailing list ARChives (MARC) at the AIMS group (search).
-
The GMANE archive.
-
The MarkMail archive.
-
Subscribe by sending an email to fop-commits-subscribe@xmlgraphics.apache.org.
Download and Use the Developers' Code Using Git
Between releases the newest code can be accessed via Git. To do this you need to install a Git client on your computer, if it is not already there. An explanation how to connect to the FOP source repository can be found at http://xmlgraphics.apache.org/repo.html. More information can be found on the Tools page.
Submitting Patches
If you have useful changes to source code (bugfixes or enhancements), test files, or documentation that you would like to contribute to the project, please do the following:
-
If your changes include source code, make sure that it does not break FOP (i.e. make sure that FOP still compiles with your changes).
-
If your changes include test files, review the Testing page.
-
Create a patch file for the differences to be applied to the existing code.
-
Create a new Jira issue for the patch. Include the text "[PATCH]" at the beginning of the description. Attach the patch file to the issue.
One of the committers will test your patch and consider its implications for the project. They will then either commit it to the repository or explain on the issue why they did not. Depending on the work load and skill-sets of the various committers, it may take some time before a a submitted patch is addressed.