Personal tools
You are here: Home Development Development Information Participation and getting the Plone code from SVN - help Plone improve!
Document Actions

Participation and getting the Plone code from SVN - help Plone improve!

by Alexander Limi last modified August 3, 2008 - 09:34

From time to time, especially in the weeks leading up to a release, the Plone Community arranges so-called "Bug Days". These days focus on identifying and fixing bugs and other issues with the Plone core, and is an excellent chance to get to know both Plone and its developers better. And no matter what your current skill level is - from totally new to Plone to experienced Plone developer - you can make a difference!

You will require a few components to make your system up to date and ensure that you are a productive Bug Day participant.

Important: Please note that migrating between arbitrary SVN checkouts is not supported, so under no condition put your site on an SVN checkout version of Plone. Stick to the official releases if you have a production site, and anticipate some effort migrating to new versions.

IRC setup

The most important thing is to get your IRC setup working, so we can talk to you in real time. Of course it's possible to participate via mailing lists or by responding in the Collector, but this is less than ideal, and much more efficient in real-time IRC.

Details of setup and software can be found on the Plone IRC Chat page.

All work happens in the #bugday channel, but if you get as far as to get on the #plone channel, we will guide you from there. Just state that you're there for helping out with the bug day. :)

Don't worry if the below seems a bit daunting - if you log on to IRC as detailed above, we can walk you through it.

Dependencies for your Development Environment

At any given time, the Plone community aims to maintain the last 2 major releases of the Plone codebase. Currently, this includes Plone 3.0.x and Plone 2.5.x. Because the development community mostly uses zc.buildout (more on that later), the only upfront dependencies are the following:

 

Getting the code

An in development version of Plone 3.0.x and 2.5.x can be easily retrieved and managed with zc.buildout recipes. A fantastic introduction to the topic of zc.buildout can be found in the Managing projects with zc.buildout tutorial. Many Plone contributors have adopted this approach because it's easy to communicate a consistent setup process that tends to be reliable.

Both the Plone 3.0.x and 2.5.x codebase can be retrieved via a zc.buildout configuration.

Setting up a Plone 3.1.x development instance is as easy as typing:

  • svn co https://svn.plone.org/svn/plone/buildouts/plone-coredev/branches/3.1/ ./plone31devel
  • ... wait for a bunch of code to be checked out via Plone's subversion repository ...
  • change directories into your buildout checkout with: cd ./plone31devel
  • python bootstrap.py (where "python" is your python 2.4 binary)
  • bin/buildout -v
  • start your new instance with ./bin/instance fg

Running tests

The short explanation is to choose a product or package you'd like to test, say "CMFPlone" and type the following from your buildout directory:
./bin/instance test -s Products.CMFPlone

The full explanation for running and writing tests is of course in the excellent Testing in Plone tutorial.

Updating your Buildout and Examining your Modifications

At any point in time, you can get the latest code for your chosen Plone development bundle by typing cd /path/to/buildout; svn up;

If you are making modifications to the Plone code, they are almost certainly being made to the Zope 2 products or packages that makeup Plone. By navigating to the "products" or "src" directories at the root of your buildout, you can use your chosen subversion (read more about Plone's use of subversion) client to examine your modifications against the code repository.

Next Steps

You can find the latest categorized bugs by going to the page of categorized bugs for 3.x.

  • Ask the bug day coordinator for a bug to test or fix.
  • Or announce a bug you are intrested in on the channel to ensure no one is working on it. Then fix it.

Once you fix it you can issue a svn diff command in the folder and paste the diff into the collector and notify the plone-dev list and/or the bug day coordinator.

Fix Another Bug

There are always more bugs. Please fix as many as possible and rack up those karma points!

The Plone Team


For any issues with the web site functionality, please file a ticket.

Please consult the policy on plone.org content if you want your content published on this site.

Servers and hosting by