Help on getting started as a developer
Developers don't just write code. Translators are also developers, as are documentation authors, skin designers - anyone who contributes to a release package is a developer. This is the starting point for the documentation that is useful mainly to developers.
You can tell when you are in a developer documentation topic because it will have the DNA logo you can see above. You can see a list of the developer documentation pages used day-to-day in the developer's bible
There are two types of developer; core
developers, who are brave/stupid enough to make changes in the core, and extension
developers, infinitely more sensible people who work on the edges, producing plugins, skins and other types of extensions.
At this point you are recommended to review the technical overview
before proceeding any further. That should help you decide what sort of developer you are.
If you see yourself as an extension developer, and are in a hurry to get started, then read the Extension Developer Guide
Core developers have to work in the subversion
repository, and many extension developers choose to work in Subversion as well, as it's much safer and more... well, community-minded. You don't have
to use the repository if you are developing an extension, but you are strongly
recommended to do so. HowToStartExtensionDevelopmentInSubversion
has a detailed guide explicitly for extension authors.
The topic SubversionBasedInstall
describes how you can checkout the code (core and extensions) from Subversion and install it (pseudo-install) so you both develop and test on a subversion checkout. If you want to be a developer getting a pseudo-installed Foswiki working is one of the first things you want to do.
We do most development on the subversion trunk
- extensions and core together in the same repository. Anyone wishing to check in has to get added to the list of people allowed to do so. Unfortunately we have to do this, because of the risk of vandalism. However the process is very simple:
- Read DeveloperResponsibilities to fully understand what you are getting into.
- Read the CopyrightAndLicense if you have questions about the licenses that apply to Foswiki, and how they might read onto your work.
- Create a topic in this web called "YourWikiNameWouldLikeToCheckIn" using the form on RequestAccessToSubversion. In this topic, describe who you are, a little bit about your background, and what you think you can contribute.
- Your topic will be acknowledged. There's usually then a one-week wait to give existing developers a chance to review the request.
- Existing developers have the right to veto anyone being granted access, but they won't do this unless they have a very strong reason.
- Checkin rights can be granted by any existing authorised checker-inner (see RingOfTrust), but they can't just add their friends - they must go through the process, or they risk losing their own check-in rights.
Even before you get checkin rights, you can check out the subversion repository and start developing. See the SvnRepository
to understand how the subversion branches are used to develop different Foswiki releases.
is an important tool used in Foswiki development, especially for extensions (plugins, skins etc) developers; you should read up about it. UnitTests
describes how to start writing Foswiki unit test cases.
- All developers, core and extensions, are recommended to subscribe to WebNotify, in order to be notified automatically when something changes in the Development web.
- You should subscribe to the MailingLists for checkin notifications and occasional conversations among developers.
- We have one IRC channel: #foswiki carries general discussions, and is often the best place to get support (see Internet Relay Chat for more info).
- Requirements, proposals and bugs are tracked in the Tasks web
If you have been given write access to the subversion
repository, you should use the same login and password as your foswiki.org login.
Getting a Foswiki development environment up and running quickly
| Get a subversion checkout as described in SvnRepository
svn checkout http://svn.foswiki.org/trunk foswiki
| Enter the foswiki core directory
| Install the default and development extensions
./pseudo-install.pl -A developer
| Run the test lighttpd webserver. You need to have lighttpd installed
| Browse to the web-based Foswiki configuration tool at http://localhost:8080/bin/configure, open the "General Path settings" section and set
| Just hit "Next" (or manually adjust other configuration options), choose a password for your test environment and confirm the configuration change.
| Browse to your fresh working copy of Foswiki at http://localhost:8080/