Blame
| 6f02e7 | Samuli Seppänen | 2025-01-29 06:40:08 | 1 | # Development/testing issues |
| 2 | ||||
| 3 | ## [Beaker test framework](https://fedorahosted.org/beaker) |
|||
| 4 | ||||
| 5 | Should we start configuring a dedicated testing framework for OpenVPN? This idea will be presented by _mattock_. |
|||
| 6 | ||||
| 7 | - **Rationale** |
|||
| 8 | - Would allow testing that OpenVPN works on a large number of predefined platforms and configurations. |
|||
| 9 | - Replaces part of the manual testing effort by testing the external behavior of the application automatically. |
|||
| 10 | - Would allow spotting bugs early. |
|||
| 11 | ||||
| 12 | - **Implementation ideas** |
|||
| 13 | - Beaker could perhaps be made to simulate poor connections for testing purposes. If not, there are plenty of tools and services available for this purpose (see full chatlog). |
|||
| 14 | ||||
| 15 | - **Limitations** |
|||
| 16 | - Only tests for external behavior of the application. |
|||
| 17 | - Does not replace human testing for those classes of problems which are difficult/impossible to test programmatically. |
|||
| 18 | ||||
| 19 | ## Continuous integration server |
|||
| 20 | ||||
| 21 | Should we build a continuous integration (CI) / automated release management server? This idea will be presented by _mattock_. |
|||
| 22 | ||||
| 23 | - **Rationale** |
|||
| 24 | - Would allow spotting build problems early on by building "allmerged" and reporting developers of build problems. |
|||
| 25 | - Would reduce developer frustration. |
|||
| 26 | - Would allow automated packaging of OpenVPN-testing for various platforms and publishing those on a web server. |
|||
| 27 | - The above would translate to increased use of OpenVPN-testing, leading to earlier bug reports and would thus make the release process (new code -> acceptance to testing -> acceptance to stable -> release) faster. |
|||
| 28 | - Could also allow centralized automated searching of code problems. |
|||
| 29 | ||||
| 30 | - **Implementation ideas** |
|||
| 31 | - Developers could be notified of problems using email. |
|||
| 32 | - The OpenVPN project has a license to [Coverity](http://www.coverity.com/) service. As this service has an API, Coverity code analysis could be integrated into the CI server. |
|||
| 33 | ||||
| 34 | - **Limitations** |
|||
| 35 | - Does not replace human testing. |
|||
| 36 | - Only tests the build process (and possibly code problems). |
|||
| 37 | ||||
| 38 | ## Developer bounties |
|||
| 39 | ||||
| 40 | Should we have a bounty system for writing missing features? Similar systems are in use by several other projects, e.g. freeswitch, pfSense, and Funambol. This idea will be presented by _ecrist_. |
|||
| 41 | ||||
| 42 | - **Rationale** |
|||
| 43 | - Would allow users to prioritize feature additions through compensation. |
|||
| 44 | - Would help achieve greater interest of developers in users' requests and needs. |
|||
| 45 | ||||
| 46 | - **Implementation ideas** |
|||
| 47 | - Bounty funds would be set up and maintained by a non-developer (ecrist?) and held. This assures payment upon completion and assures the feature is completed before bounty is paid. |
|||
| 48 | - Multiple users could fund a bounty for intensive feature additions which may warrant higher payouts. |
|||
| 49 | - Developers set up accounts and 'claim' tasks. |
|||
| 50 | - After a specific timeout, a task becomes available to another user, unless progress can be shown. |
|||
| 51 | - Payment could be divided into multiple phases to motivate developers to maintain the code they've written. For example: |
|||
| 52 | - 50% payout for a commit to the main tree. |
|||
| 53 | - 25% upon release in production (provided bugs are fixed/etc). |
|||
| 54 | - 25% 6 months after release (provided bugs are fixed/etc). |
|||
| 55 | - The above would also guarantee the quality of the code. |
|||
| 56 | - Handling monetary transactions: |
|||
| 57 | - Could be handled through an external foundation/organization (e.g., [SPI](http://www.spi-inc.org/projects)). |
|||
| 58 | - We could establish our own foundation for this purpose. |
|||
| 59 | - Licensing and copyright: |
|||
| 60 | - Developer would have to use the BSD license for the bounty features. |
|||
| 61 | - This would allow the project to relicense the code under GPLv2 (while mentioning the original author). |
|||
| 62 | - This would allow both developer (payee) and payer to use the code any way they wish. |
