Participation and getting the Plone code from SVN - help Plone improve!
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:
- A subversion client
- Download Python 2.4.3 if you don't have it already, and do
./configure; make; make install - Download the Python Imaging Library (PIL) and once downloaded, do
python setup.py installwhere "python" is the location of your Python 2.4.3 binary.
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