# Current development repositories 

## Main development repositories (!GitHub)

After OpenVPN 2.3-alpha1 several major changes were introduced in OpenVPN project structure, e.g. splitting several large chunks of code away from the main development tree into their own subprojects under the [OpenVPN organization](https://github.com/OpenVPN) in [GitHub](https://github.com) (adapted from [http://thread.gmane.org/gmane.network.openvpn.devel/6280/focus=6297 here]):

 * [openvpn](https://github.com/OpenVPN/openvpn): a standard open source project, autotools-based build system and like any other project it's buildsystem only builds itself.
 * [openvpn-gui](https://github.com/OpenVPN/openvpn-gui): a graphical frontend for OpenVPN running on Windows
 * [openvpn-build](https://github.com/OpenVPN/openvpn-build): a separate project to build openvpn in various of configurations. This project is divided into the following components:
   * *generic*: a generic build using cross compiler, included the complete dependencies.
   * *msvc*: a MSVC build using Microsoft specific *msbuild* system. (NOTE: not actively maintained)
   * *windows-nsis*: the Windows installer generator that uses the generic component to build using mingw cross compiler, then package the output using NSIS.
 * [tap-windows](https://github.com/OpenVPN/tap-windows): the Windows TAP driver (NDIS 5 version), which is also useful outside OpenVPN
 * [tap-windows6](https://github.com/OpenVPN/tap-windows6): the Windows TAP driver (NDIS 6 version), which is also useful outside OpenVPN
 * [easy-rsa](https://github.com/OpenVPN/easy-rsa): scripts for generating SSL certificates for use with OpenVPN (or for other purposes)
 * [openvpn-windows-test](https://github.com/OpenVPN/openvpn-windows-test): Powershells scripts for automating testing of OpenVPN on Windows.
Mirrors of most of these !GitHub repositories are available in [http://sourceforge.net/p/openvpn/_list/git?source=navbar SourceForge.net].

## Branches and tags in openvpn.git 

The branches found in the openvpn.git repository are:

      ```
      master            -- The main development branch.  * All new patches should be based on this branch *
      release/2.1       -- Everything related to the OpenVPN version 2.1 releases
      release/2.2       -- Everything related to the OpenVPN version 2.2 releases
      release/2.3       -- Everything related to the OpenVPN version 2.3 releases
      release/2.4       -- Everything related to the OpenVPN version 2.4 releases
      release/2.5       -- Everything related to the OpenVPN version 2.5 releases
      release/2.6       -- Everything related to the OpenVPN version 2.6 releases
      ```

Release branches do not have any active development and only bug fixes are typically applied to these branches after the release. A new release branch is created for each major release (2.x).  All bug fixes should be developed against the master branch, and where it is decided to include such fixes in a minor release (2.1.x, 2.2.x, etc), it will be cherry-picked from the master branch and into the suitable release branches.

All major and minor releases are also [http://www.kernel.org/pub/software/scm/git/docs/git-tag.html tagged], and tags can be inspected by using the following git commands:

      ```
      $ git tag -l               # Lists all tags
      $ git tag -v <tag name>    # Verifies a signed tag
      $ git show <tag name>      # Shows the tag message and the commit the tag points at
      ```

For details about the development process look [here](/DeveloperDocumentation).

# Obsolete repositories 

## James' SVN repository

James Yonan used to host his own SVN repository at *openvpn.net*, but it was taken offline in late 2013 / early 2014 and replaced with James' own openvpn.git repo on !GitHub.

## Old CVS repository 

For the historians among us there's the old CVS tree, which has been made available as an inactive git tree. This tree can be browsed [http://openvpn.git.sourceforge.net/git/gitweb.cgi?p=openvpn/openvpn-historical-cvs.git here] or downloaded locally:

      ```
      git clone git://openvpn.git.sourceforge.net/gitroot/openvpn/openvpn-historical-cvs.git
      ```

Note that *no new development* happens in this tree.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9