Contributing to RWTS™
Proposals are wanted. Patches are not. This page explains both, and how to send the first one.
Propose a Change
If you are implementing RWTS and the standard does not cover what you need, that is the most useful thing you can tell us. A missing equipment type, an alarm code with no entry, a device behavior the specification leaves undefined — send it.
What helps most:
- The problem, not the fix — what you were trying to do and where the specification stopped short
- The equipment or deployment it applies to, so the change lands in the right family
- A failing case or example message if you have one
- The version and profile you are implementing
Every proposal gets read. Adopted proposals are credited by name in the public changelog unless you ask otherwise.
Why We Don’t Accept Code
EPU does not accept pull requests or code contributions to the Python reference library, and does not accept drafted specification text. Saying so plainly is better than a silent policy, so here is the reasoning.
It keeps the reference library dual-licensed. The library is offered under AGPL-3.0-only and, separately, under a commercial license for vendors who cannot accept copyleft. That second option only exists while EPU holds all copyright in the code. A single outside contribution without a written release would end it permanently, because relicensing would require that contributor’s agreement forever after.
Ideas are not copyrightable. Expression is. Describe a problem and the behavior you need, and we can implement it freely with no claim attached. Paste a working snippet that gets used as written, and that snippet is your copyrighted expression entering the codebase unlicensed. The policy exists to keep that line clean, in both directions.
It is how standards normally work. Published standards evolve by proposal and comment with an editor doing the writing, not by merge. The same applies to the specification text itself: an adopted proposal is rewritten by EPU before it becomes normative.
If code is the clearest way to describe what you mean, send it and say so. We will either build an independent version from your description without working from your code, or ask you for a short written release.
What This Does Not Restrict
None of the above limits what you may do with RWTS. The specification is openly licensed and free to implement in any product, including proprietary firmware. You may fork the reference library under AGPL and take it wherever you like. You do not need permission, an agreement, or a conversation with us to build on the standard.
This page is about what comes back to the canonical specification and the canonical library, and nothing else.
Propose a Change to RWTS™
A new equipment type, a new alarm code, a behavior the standard does not cover yet.
Join the Early Access Waitlist
Get the RWTS™ specification, GitHub link, and Python reference library the moment they go public.