Add README docs on contributing for #165

This commit is contained in:
David Dworken 2024-02-03 18:17:39 -08:00
parent 95743a6a07
commit 8c07f63744
No known key found for this signature in database

View File

@ -220,6 +220,20 @@ See [hiSHtory: Cross-device Encrypted Syncing Design](https://blog.daviddworken.
* You can delete items from your history as needed. * You can delete items from your history as needed.
* If you go offline, you'll have an offline copy of your history. And once you come back online, syncing will transparently resume. * If you go offline, you'll have an offline copy of your history. And once you come back online, syncing will transparently resume.
## Contributing
Contributions are extremely welcome! I appreciate all contributions in terms of both issues (please let me know about any bugs you find!) and PRs.
If you're making code contributions, check out `make help` for some information on some useful commands. Namely, note that my general dev workflow consists of:
* Make some local changes (e.g. to fix a bug or add a new feature)
* Run `make local-install` to build and install your local version (note that this won't mess up your current hishtory DB!)
* ... Repeat until you're happy with your change ...
* Write some tests for your change. Unit tests are great, but we also have a large number of integration tests in `client_test.go`
* Note that the hishtory tests are quite thorough, so running them locally is quite time consuming (and some of them only work on Github Actions). Instead, I recommend using `make ftest` (see `make help` for information on this) to run the specific tests that you're adding/changing.
* Open a PR on Github! Once you open the PR, I'll take a look and will trigger Github Actions to run all the tests which will ensure that your change doesn't lead to any reggressions.
* Merge the PR! :tada:
## Security ## Security
`hishtory` is a CLI tool written in Go and uses AES-GCM for end-to-end encrypting your history entries and syncing them. The binary is reproducibly built and [SLSA Level 3](https://slsa.dev/) to make it easy to verify you're getting the code contained in this repository. `hishtory` is a CLI tool written in Go and uses AES-GCM for end-to-end encrypting your history entries and syncing them. The binary is reproducibly built and [SLSA Level 3](https://slsa.dev/) to make it easy to verify you're getting the code contained in this repository.