Since April 2012, MapServer's source code and documentation are under GitHub control (https://github.com/MapServer). In the past, MapServer has also used Subversion and CVS for version control.
Several sub-projects are used on GitHub, to separate files for the MapServer source, or documentation, for example. Here are a list of the important sub-projects:
/MapServer: MapServer source
/MapServer-documentation: Documentation files, stored as restructured text files.
/mapcache: MapCache source, used for tile caching.
/tinyows: TinyOWS source, used for WFS transaction support (online editing of features).
/msautotest: msautotest files, used for automatically verifying source changes.
/basemaps: basemaps files, used to generate mapfiles from OpenStreetMap data.
/ms-ogc-workshop: OGC Workshop files, an excellent resource for learning OGC standards (WMS/WFS/WCS/SOS) with MapServer.
Code Developer's GitHub Access¶
GitHub access is mostly intended for use by developers, but users can also access the MapServer source between releases as it is being developed. GitHub access is only recommended for those who need the absolute latest and greatest code, if they are not afraid of getting their hands dirty building the source. The GitHub repository does not contain GD or any of the support libraries, and it requires flex and bison to build it. Building MapScript will also require SWIG be installed on your machine. Here's how to access the source:
Create a free personal account at GitHub
See GitHub's help guidelines to install Git locally
Issue git clone firstname.lastname@example.org:MapServer/MapServer.git to check out a copy of the current source/main into your working directory.
Information about supporting libraries and how to compile MapServer from source can be found in the Compiling on Unix or Compiling on Win32.
How to Obtain Commit/Push Access¶
If you find yourself submitting a lot of push requests to GitHub, or you would like to be an active developer that picks up the maintenance of a portion of MapServer, contact Steve Lime, one of the other developers, or send a message to the MapServer-dev Mailing Lists. To obtain GitHub commit/push access, an individual must:
demonstrate expertise about a specific area
be willing to put more time into the project than just the short term (dumping code into the project and providing no way to maintain it is almost as bad as having no code at all)
be active instead of casual about the project.
election of Subversion committers is covered in RFC 7.2: MapServer Commit Management
the main Issue Tracker for the MapServer source is found at: https://github.com/MapServer/MapServer/issues
the Issue Tracker for documentation is found within the MapServer-documentation sub-project at: https://github.com/MapServer/MapServer-documentation/issues