[[TOC(inline, depth=1)]] = Participating the the development process = == Volunteer tasks == There are a number of tasks in Trac that [report:20 we need help with]. They are a mix of testing, development, packaging and documentation tasks, and you do not need to be a developer to tackle many of them. == Writing code == All generally useful additions and fixes to OpenVPN are most welcome. See [wiki:DeveloperDocumentation developer documentation] for more information. == Participating in the ACK system == All code that goes into OpenVPN goes through a [wiki:DeveloperDocumentation review process]. Both ''developers'' and ''non-developers'' are encouraged to take part in this process. == Testing and reporting bugs == Testing is a big part of software development. If you want an easy way to help, you can test that latest and greatest version of OpenVPN works correctly. Testing helps making sure each release is rock-solid, as well as pushing out new releases as quickly as possible. For details, see [wiki:TesterDocumentation tester documentation]. If you think you've found a bug in OpenVPN, please check if it's been [report:6 reported earlier]. If not, file new bug report using this service (Trac). If you have encountered a bug that has been reported earlier, you can still help by making the existing report more precise by adding more information. == Translating the GUI == OpenVPN 2.3-alpha1 and later come with a [https://github.com/OpenVPN/openvpn-gui/ new OpenVPN-GUI] for Windows. It has been translated to some languages, but many more are missing. If you want to publish your own translation, please [wiki:GettingHelp#OpenVPNOSSdevelopersupport contact the OpenVPN developers]. == Making feature requests == It's always good if a project has ideas where to proceed. There a couple of ways to get your ideas out there: * [https://sourceforge.net/mail/?group_id=48978 openvpn-users mailinglist] * [https://forums.openvpn.net/wishlist-f10.html Post to the forums] * [https://community.openvpn.net/openvpn/newticket File a feature request to Trac] Posting to the mailing list or to the forums allows you to discuss the request with others. If your feature turns out to be something that other people want, too, it's more likely to get implemented sooner or later. "Drive-by" feature requests filed to Trac are not encouraged, as they make follow-up discussion and questions more difficult for everybody. == Packaging == Installing OpenVPN from source is fairly trivial on *NIX computers. However, keeping OpenVPN updated manually is pretty annoying. It helps a lot if users can use pre-built packages (e.g. deb, rpm, exe) for their platform. This is especially true with Windows, where setting up the OpenVPN build environment is more painful than on other platforms. If your operating system does not have a package (or port) for OpenVPN, you can help by creating one. Even if such a package exists, it's likely it's pretty old. In this case you can help by generating newer packages, e.g. from Git sources and publishing those. This helps people use the latest and greatest versions of OpenVPN as easily as possible. Take a look [#Testingandreportingbugs here] to see why this is important. == Setting up buildslaves == The OpenVPN project uses [http://trac.buildbot.net/ Buildbot] to ensure that commits to the Git repository don't break the builds on any platforms. If you have spare servers/VMs, you can provide a buildslave for your platform of choice. Look [wiki:SettingUpBuildslave here] for details. = Helping other users = == Writing documentation == All OSS projects need good documentation. The natural place for most documentation is this Trac wiki: just remember that you need to register first. If you want to improve the man-page or other documentation bundled with OpenVPN, follow the procedure outlined in [wiki:DeveloperDocumentation developer documentation]. Alternatively you can just let developers know of the issue and let them fix it. == Helping other users == If you're a user and wish to help the OpenVPN project, you can do so in many ways. For example, you can answer to questions sent to our [wiki:GettingHelp support channels]. Being responsive and helpful to newbies is important for the project in the long run: after all, part of them will in time become core contributors. If the same questions get asked over and over again, consider writing a FAQ entry or an article to this Wiki. In the long run this saves everybody's time. == Spreading the word == OpenVPN needs visibility like all OSS projects. Increased visibility means more downloads and more downloads mean more developers and contributions. There are many ways visibility of a project can be increased. You can write articles or blog about OpenVPN. Telling other users about OpenVPN on discussion forums and mailing lists is also valuable, especially on high-profile sites. Just remember not to spam. == Moderating OpenVPN forums == The [https://forums.openvpn.net/forum-website-support-f30.html OpenVPN forums] always needs moderators. If you've done forum moderation in the past, or wish to learn, [https://forums.openvpn.net/topic19671.html contact] the forum maintainer. You're more likely to be chosen if you're already active on the forums. = Contributing to other OpenVPN-related projects = There is a large ecosystem of projects around OpenVPN, as can be seen [wiki:RelatedProjects here]. Even if your skills are not very useful within the core project, you may be able to help the projects around OpenVPN. For example, you could help with ''graphics'' or ''translation'' in the widely used [https://github.com/OpenVPN/openvpn-gui/ OpenVPN GUI] project.