If you're new to open source, the Open Source Guides is a good place to learn about how things usually work. Here are some especially helpful guides for folks just getting started:
archival is intentionally a very small tool, but since it runs in lots of different environments (OSs, WASM, CI), and has an ecosystem of sites and hosts, there's plenty of ways it can be improved. Here are some of the ones we focus on.
- Build things with it - archival makes different choices about data, which means there are always new and interesting ways to use it. If you find your use case isn't smooth, reach out or file an issue.
- Check out the open issues to see if anything looks fun to fix. We use the tag good first issue to indicate ones that are good for folks who haven't contributed yet.
- Join the discord and ask questions, get the latest updates, and chat with us about your projects.
The editor and documentation sites are also open source, and while the editor is our product, it's also an example of how to build complex things with archival. If you find issues in either, please file an issue or a PR!
The public issue tracker is here on github - when reporting an issue, please do your best to put it in the right repo - for instance, if you're experiencing issues with the editor, file it in the editor repo. For template issues, use the template repo. For documentation issues, use the documentation repo.
To work on the archival library, all you need is the rust toolchain:
https://doc.rust-lang.org/cargo/getting-started/installation.html
Then, you can clone this repo and develop it using cargo
.
While we're still young, just ask for help on discord - at a high level, the main thing to be aware of is that archival is cross-compiled into binaries for every major OS, mobile OSes, and WASM - so it's important to run the tests and pay attention to which features your code will run under.
To assist in avoiding finding about issues before breaking in CI, add a pre-commit hook:
echo "./pre-commit.sh" > .git/hooks/pre-commit
Fork the repository and create your branch from main
. If you've never sent a GitHub pull request before, you can learn how from this free video series.
archival uses a vanilla cargo setup for tests, and all tests can be run with ./test.sh
in the root of the repo.
archival uses clippy
with default settings as the linter. See docs:
https://doc.rust-lang.org/stable/clippy/installation.html
By contributing to archival, you agree that your contributions will be licensed under its Unlicense.