diff --git a/HACKING.md b/HACKING.md new file mode 100644 index 0000000..5f5bafb --- /dev/null +++ b/HACKING.md @@ -0,0 +1,32 @@ +# Hacking Pinakes + +Pinakes is a lot of things. One of the things it aims to be is _complete_. To be +complete in features, to be complete in documentation and to be complete in +hackability. This document covers, very comprehensively, how you may: + +- Build Pinakes +- Develop Pinakes +- Contribute to Pinakes + +for developers as well as: + +- Distribute Pinakes + +for Pinakes maintainers and packagers. + +## Building Pinakes + +Pinakes is built with Rust (nightly edition) and various crates. The most +_notable_ crate among those is Dioxus, which provides its own toolkit. The UI +for Pinakes is usually _not_ built with the Dioxus CLI but instead with +`cargo build`. This also applies to distributable build results. + +[Direnv]: https://direnv.net + +To build Pinakes, simply pick the components you want and build them with +`cargo build --release --package `. A Nix shell is provided for +reproducible developer environments and you may obtain all build dependencies by +simply running `nix develop` or `direnv allow` if you use [Direnv]. Nix is a +cross-platform build tool and works on most Linux distributions as well as +Darwin. While distro-specific package managers _might_ work, Nix is the only +supported one.