# 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.
