Many have asked, and we have answered: we’ve moved all of the bundled Confluence macros into the DevNet Subversion Repository for your hacking pleasure.
Although you wouldn’t necessarily know it at first glance, a great deal of functionality in Confluence is actually implemented through plugins. Important things like panels, tasklists, galleries and page-children. And dozens more.
Now the investment in that plugin architecture is going to pay off: the Developer Network will be able to add the many requested features that we haven’t had the bandwidth to tackle. And they may be able to use these plugins as the basis of innovative functionality that we haven’t even imagined. And it can all happen at a much faster rate than the Atlassian developers could ever manage alone.
We highly encourage you to jump in and make improvements where you see a need. Here’s how things will work:
- We’ve tagged the plugins as they were released in 2.1.1.
- Everyone will be able to check out the plugin sourcecode to modify as you wish for your own installations (Commerical users already had this capability through the standard Atlassian source license.)
- Everyone will also able to check out the new-and-improved plugins committed by our Developer Network — plugins that will have more functionality than we ship in the standard Confluence distribution.
- Those of you with Subversion write-access are encouraged to make changes on the development trunk, making additions and improvements as you see fit. (Although in general, it would be good to discuss major changes and improvements with the community before diving in.)
- At various intervals (not every plugin and not every release, but as frequently as we can) we will test, tag and release the community-improved versions of the plugins into the standard Confluence distribution.
- You can help improve the chances of getting your changes included in the standard distribution by writing excellent documentation and thorough tests for your changes.
- Of course, we’ll continue to do some of our own development on these plugins as we go forward, but we’ll be using the same SVN repository you will.
A few notes
- Many of these plugins still inherit from the old Radeox rendering engine, rather than Atlassian’s swanky-cool, new v2 Rendering Engine. We intend to update them all soon.
However, if you’re looking at these plugins as templates to write your own, be sure to copy the ones that descend from
AbstractHtmlGeneratingMacro. And if you’re going to do any major work on one of the old Radeox plugins, we’d recommend that you try to update it to the new rendering engine first. It should be reasonably easy.
- As of Confluence 2.1.3, these plugins are still part of the source tree and distribution. If you try to use these plugins in a stock Confluence installation they will conflict with the plugins already there and cause badness.
If you want to modify and use these plugins, please rename them before attempting to deploy them. For example, change the plugin key from ‘tasklist’ to ‘tasklist2’.
In the furture, we will remove these plugins from the core Confluence source and include them as libraries instead. Once that has happened you’ll be able to more easily replace a distributed plugin with your customized version.
One of the reasons that I am excited to work at Atlassian is our commitment to openness — in ways that go far beyond the source code. I’m excited because of the community that has been built around Atlassian’s products and by the way that we strive to interact with that community: openly, honestly and transparently. I’m convinced that it’s the right thing to do. It makes our users’ lives easier and it makes us more efficient. It’s one of those happy occurrences when social and financial benefits align. I’m thrilled to be able to further that commitment to openness a little bit today. Happy coding.
If you’d like to start hacking on the bundled plugins but don’t have Subversion access, contact me.