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 developers 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 git
repository, and many extension developers choose to work in git 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. HowToStartExtensionDevelopmentInGit
has a detailed guide explicitly for extension authors.
The topic GitBasedInstall
describes how you can checkout the code (core and extensions) from git and install it (pseudo-install) so you both develop and test on a git 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 git master
branch of the distro repository
- default extensions and core together in the same repository. Anyone wishing to check in has to get added to the list of Core developers. 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 an account on https://github.com/ If possible use the same email address you used when registering on http://foswiki.org, And/or use your name in the github registration in a form that can be converted to your WikiName. When you author a change on github, we'll use your github email & user name to match up on foswiki.org for the task update.
- Create a topic in this web called "YourWikiNameWouldLikeToCheckIn" using the form on RequestAccessToGit. 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 git repository and start developing. Just fork the foswiki repository and submit pull requests to the Foswiki developers. See the GitRepository
to understand how the git 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 git
repository, you should login to github using your github account and use those credentials to push to the foswiki repository.
Getting a Foswiki development environment up and running quickly
| Get a git checkout as described in GitRepository
git clone https://github.com/foswiki/repro 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/