Skip to content

Commit c8b5de9

Browse files
dpezelymadninja
andauthored
Guide for contributors (#208)
Co-authored-by: Marc Nijdam <[email protected]>
1 parent 675b0a7 commit c8b5de9

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,17 @@
22
![rust workflow](https://github.com/helium/proto/actions/workflows/rust.yml/badge.svg)
33
![node.js workflow](https://github.com/helium/proto/actions/workflows/node.yml/badge.svg)
44
![erlang workflow](https://github.com/helium/proto/actions/workflows/erlang.yml/badge.svg)
5+
6+
## Contributing
7+
8+
- Avoid `float` in Protobufs because representations differ across hardware architectures
9+
+ There are many floating point representations from IEEE, plus others
10+
+ i.e., some range of interior digits are random per float spec
11+
- Frequency should use `uint32` and should be in Hz
12+
- rssi or signal is always negative, thus use `sint32` and is in deci-dbm (aka `ddbm`) which is `dbm * 10`
13+
- snr is signal-to-noise ratio and should be `uint32`
14+
- Fetch and share time in nanos, then truncate to appropriate granularity as needed
15+
+ e.g., get from OS in nanos
16+
- Reject any PR unless units are documented inline within Protobuf definition
17+
- Document units of fields
18+
- When exceptions to the above occur, please explain *why* within comments

0 commit comments

Comments
 (0)