Everyone is welcome to contribute to the Ruby Ethereum gem. It is more than six years old and had seen many maintainers come and go.
Current maintainers:
To propose a change, fix, or new feature, create an issue or comment on an existing issue to see if anyone else has an opinion on it or is eventually already working on it
The general workflow looks roughly like this:
- Discuss it
- Fork it
- Improve it
- Test it
- Document it
- Submit it
We use the Ruby formatter rufo
to ensure consistent formatting across
the code base.
Simply run rufo .
before comitting your changes.
We use behaviour-driven development and this codebase is at least 100% unit tested. We use RSpec to run the spec tests.
The full Ethereum test-suite is available in fixtures/ethereum/tests
.
Run git submodule update --init --recursive
to fetch it.
If your tests are failing make sure you pulled the ethereum/tests
submodule and run a local geth node in background with
geth --dev --http --ipcpath /tmp/geth.ipc
as we are running some tests
against a local live node.
Other static test data is available in fixtures/
We use the Ruby documentation tool Yard.
The code base is 100% API documented.
More involved documentation, tutorials, and usage examples should go into the wiki.