Sources

Sources for the Apache Directory projects are currently managed through Subversion, except for Fortress Core which is git base. For each project you can find a detailed description how to checkout and build the source on the project documentation. This page is just a short overview.

Subversion

Web Access to Subversion

If you just want to browse the source code, you can use the web interface to Subversion. This is current at all times.

Web access to Git

If you just want to browse the source code, you can use the web interface to Git. This is current at all times.

Normal Subversion/Git Access

Anyone can check code out of Subversion. You only need to specify a username and password in order to update the Subversion repository, and only Directory committers have the permissions to do that. We run Subversion and Git over standard HTTP/HTTPS, so hopefully you won't have problems with intervening firewalls.

Check out from Subversion or Git

Again, anyone can do this. Use a command like:

svn checkout http://svn.apache.org/repos/asf/directory/apacheds/trunk-with-dependencies

or for Fortress :

git clone http://git-wip-us.apache.org/repos/asf/directory-fortress-core.git fortress

to check out the current version of the server, for instance.

The following table displays the URL of each project, and the URL where you can find information about how to build each project.

Subproject / Documentation SVN URL
ApacheDS 1.0 (not maintained) http://svn.apache.org/repos/asf/directory/apacheds/tags/1.0.2/
ApacheDS 2.0 (trunk) http://svn.apache.org/repos/asf/directory/apacheds/trunk-with-dependencies/
Apache Directory Studio http://svn.apache.org/repos/asf/directory/studio/trunk/
Apache LDAP API http://svn.apache.org/repos/asf/directory/shared/trunk/
Apache Mavibot http://svn.apache.org/repos/asf/directory/mavibot/trunk/
Apache eSCIMo http://svn.apache.org/repos/asf/directory/escimo/trunk/
Apache Fortress Core http://git-wip-us.apache.org/repos/asf/directory-fortress-core.git
Apache Fortress Realm http://git-wip-us.apache.org/repos/asf/directory-fortress-realm.git
Apache Fortress EnMasse (REST API) http://git-wip-us.apache.org/repos/asf/directory-fortress-enmasse.git
Apache Fortress Commander (Web UI) http://git-wip-us.apache.org/repos/asf/directory-fortress-commander.git
Apache Directory Site http://svn.apache.org/repos/asf/directory/site/trunk/

Commit Changes to Subversion

Any Directory committer should have a shell account on svn.apache.org. Before you can commit, you'll need to set a Subversion password for yourself. To do that, log in to svn.apache.org and run the command svnpasswd.

Once your password is set, you can use a command like this to commit:

svn commit

If Subversion can't figure out your username, you can tell it explicitly:

svn --username you commit

Subversion will prompt you for a password, and once you enter it once, it will remember it for you. Note this is the password you configured with svnpasswd, not your shell or other password.

For committers to be able to commit modification, they should have had checked out the project files using **https** instead of **http**.

Commit changes to Git

Any Directory committer should have a shell account on git-wip-us.apache.org.

You can use a command like this to push your changes to the repository :

git push
For committers to be able to commit modification, they should have had checked out the project files using **https** instead of **http**.

Read Only Git Repositories

There are also read only git repositories, which are mirroring the subversion repositories.

Subproject GIT URL GIT URL (HTTP)
Apache Directory Clients git://git.apache.org/directory-clients.git http://git.apache.org/directory-clients.git
Apache Directory Daemon git://git.apache.org/directory-daemon.git http://git.apache.org/directory-daemon.git
Apache Directory Installers git://git.apache.org/directory-installers.git http://git.apache.org/directory-installers.git
Apache Directory Project git://git.apache.org/directory-project.git http://git.apache.org/directory-project.git
Apache Directory Samples git://git.apache.org/directory-samples.git http://git.apache.org/directory-samples.git
Apache Directory Server git://git.apache.org/directory-server.git http://git.apache.org/directory-server.git
Apache Directory Shared git://git.apache.org/directory-shared.git http://git.apache.org/directory-shared.git
Apache Directory Skins git://git.apache.org/directory-skins.git http://git.apache.org/directory-skins.git
Apache Directory Studio Plugin git://git.apache.org/directory-studio-plugin.git http://git.apache.org/directory-studio-plugin.git
Apache Directory Studio git://git.apache.org/directory-studio.git http://git.apache.org/directory-studio.git

Web Site

The Web site itself is stored in a repository and can be updated easily. Let's see how it works.

What is important here is that the pages are written using Markdown. Once a page has been modified, it can be committed, which will generate the static pages on a staging web site. When everything is checked and sounds correct, the staging site can be published on the production site, which will be pushed to the mirrors every hour. Here is the process :

Repository

All the web site can be fetched at https://svn.apache.org/repos/asf/directory/site/trunk/. Be sure to use https in order to be able to commit your changes...

Structure

The following structure is used :

cgi-bin

content
  |
  +-- apacheds
  |
  +-- api
  .
  .
  +-- (common pages)

lib
  |
  +-- path.pm
  |
  +-- view.pm

templates
  |
  +-- apacheds
  |
  +-- api
  .
  .
  +-- studio
  |
  +-- (index.html, etc)

Usually, you won't have to change the templates and lib section (except when cutting a release). Most of ypur updates will impact the content/ pages.

Publishing the web site

You have to install the CMS bookmarklet for that. Then simply open the directory web site and click on the bookmarklet, enter your apache credentials (you have to be a committer) and click on the 'Publish' button.

The best way to undertand how to use the CMS system is to follow this video.