Developers, you'll want to bookmark this page.
A new "point" release of jEdit is scheduled to come out every year or so. A "pre" is released a few months before that to allow for testing, updating international strings, and other general kinds of polishing off, although translators are encouraged to test the latest daily builds.
Want to join us? Help Wanted!
Becoming a jEdit developer
Core Development Road Map contains a road map of what needs to be done, and who is paying attention to what in the core.
Most of our code is managed using an open-source tool called Subversion. It is recommended you learn the basics of this tool, to help you keep up to date on the latest changes from other developers, as well as to generate patches against specific file revisions.
Slava is no longer actively involved in development, and many other plugin authors have also left the community and are not maintaining their plugins. Some plugins have a new maintainer, others have been replaced by newer plugins. Once you become a developer, we can always use help by closing some of these open issues. You can make comments on them, or if you want to assign yourself tracker items, feel free.
Inclusion in the jEdit "development team" is informal and open to anyone. You can "join" simply by subscribing to the jEdit-devel and jEdit-users mailing lists. Your level and focus of involvement is entirely up to you. For active developers, it is also highly recommended you join jedit-commits which includes commit logs on the subversion repository. Watching this list allows you to see clearly who are the active developers, and precisely what they are working on.
Membership in the jEdit SourceForge project is granted on an as-needed basis. If you join the jEdit mailing lists, participate, and end up working on one or more plugins (either your own, or existing ones), then you can ask one of the administrators of the project for access to the CVS or SVN repository. If you still find yourself with inadquate permissions to do your work, ask one of the project administrators for the permissions you need. This includes access to statistics, databases, etc.
Are you a Drupal expert?
jEdit's community site is far out of date and needs some love. If you are a Drupal developer and don't mind the challenge of upgrading a 10+ year old system, that would be much appreciated! Please ask to join or even administer the jEdit community project.
Now that jEdit supports localization, it is easy to add a translation file for jEdit or any of the plugins for any other language. If you want to submit translation files to jEdit, or update existing ones, you can submit patches to the proper patches tracker or ask for commit permissions if you plan to do a lot of them.
Writing/updating edit modes
Writing syntax highlighting modes is covered in detail in the jEdit user's guide. If you want your mode to be included with jEdit, send it along with a mode catalog entry, and an attached example file (for exotic languages) containing a code snippet in that language for testing, to the jedit patches tracker.
Macro development is covered in the jEdit user's guide. Macros should only be used for simple tasks; more complicated features should be coded as plugins. If you want your macro to be included with jEdit, send it to jedit-devel or the jedit patches tracker.
Plugin development is covered in the jEdit user's guide, but the information there only scratches the surface, since plugins can do anything any Java program can. You can learn more by looking at the sourcecode of another plugin which does something similar to what you want.
Once your plugin is in a minimally useful state, send a message to the jEdit-users mailing list with a short summary of your plugin, and possibly a download link. Remember to release early and often - feedback at early stages of development is always a good thing.
Fixing plugin or core bugs
Even if you can't fix a bug yourself, you can still help in its eventual resolution by adding useful comments or metadata to the existing tracker items. If you want to help in categorizing or closing bugs, just ask for tracker admin permissions from one of the existing project admins.
If you want to make changes to existing plugins, or jEdit itself, make sure that you are working on the latest released (i.e. development) versions. Until you are ready to commit directly, you can submit your patches via the jedit patches or plugin patches trackers, as an attachment or a comment in the actual tracker item. After you have submitted a few patches, you can ask for permission to commit directly.
Creating and submitting Patches
We prefer patches which are generated against the latest "trunk" in subversion. By checking out a copy of the source and making changes to your local copy, you can create a patch by simply typing svn diff, (or cvs diff, if it's in CVS) from the root directory of your project. This command will give you context, as well as version numbers for all differences between your versions and the versions you checked out from the repository. Redirect this command to a file and attach it with proper documentation to a patches tracker item.
Adding plugins to the Subversion or Git repository
To get an account on the sourceforge jedit project, first you need a SourceForge user account.
Once you feel your plugin is reasonably complete (this should be determined partly by feedback you get during the development process), you can post your submission on the submissions tracker. At this point, it will become a candidate for release on plugin central. See this page to find out how.
Special thanks to sourceforge.net for hosting and providing for free, the SVN, GIT, wiki, web hosting, file releasing, and bugtracking services we've needed to collaborate with each other for over 10 years of jEdit's development.
Thanks to the Giant Java Tree, which hosted the jEdit CVS and web site for the first 3 years of jEdit's development.
Thanks to all of the volunteers who have added their own personal touch and helped make this program and its related services what they are.
Questions? Ask on the jedit-devel mailing list.