1.6 KiB
Easy-RSA 3 Hacking Guide
This is a brief document aimed at programmers looking to improve on the existing codebase.
Compatibility
The easyrsa code is written in POSIX shell (and any cases where it is not is
considered a bug to be fixed.) The only exceptions are the local keyword and
the construct export FOO=baz, both well-supported.
As such, modifications to the code should also be POSIX; platform-specific code
should be placed under the distro/ dir and listed by target platform.
Coding conventions
While there aren't strict syntax standards associated with the project, please follow the existing format and flow when possible; however, specific exceptions can be made if there is a significant reason or benefit.
Do try to:
- Keep variables locally-scoped when possible
- Comment sections of code for readability
- Use the conventions for prefixes on global variables
Keeping code, docs, and examples in sync
Changes that adjust, add, or remove features should have relevant docs, help output, and examples updated at the same time.
Release versioning
A point-release bump (eg: 3.0 to 3.1) is required when the frontend interface changes in a non-backwards compatible way. Always assume someone has an automated process that relies on the current functionality for official (non-beta, non-rc) releases. A possible exception exists for bugfixes that do break backwards-compatibility; caution is to be used in such cases.
The addition of a new command may or may not require a point-release depending on the significance of the feature; the same holds true for additional optional arguments to commands.