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.
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 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:
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.
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 :
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|
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 :
- Modify the markdown pages
- Commit them
- Check on the staging site to see if it's correct (see http://directory.staging.apache.org/)
- Publish the site using the Apache CMS
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...
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/
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.