docs: link to 'hacking' guidelines in README; document project license
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I6caae0f7de73aa02150b48a3d7d8dcd06a6a6964
This commit is contained in:
parent
00bab69598
commit
d61b5d32d1
3 changed files with 66 additions and 35 deletions
32
docs/HACKING.md
Normal file
32
docs/HACKING.md
Normal file
|
|
@ -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 <component>`. 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.
|
||||
|
|
@ -201,8 +201,11 @@ and design.
|
|||
## Storage Backends
|
||||
|
||||
Two storage backends are supported. For convenience, SQLite is the default
|
||||
backend out of the box but for production deployments you may choose to prefer
|
||||
PostgreSQL.
|
||||
backend out of the box but for production deployments, with improved search and
|
||||
scaling capabilities you may choose to prefer PostgreSQL. Both backends are
|
||||
considered first-class citizens, and will be developed as such going further. If
|
||||
your needs for Pinakes are modest, or if you are simply testing it out, SQLite
|
||||
is the recommended database.
|
||||
|
||||
### **SQLite** (default)
|
||||
|
||||
|
|
@ -211,6 +214,34 @@ guarantees FTS5 availability.
|
|||
|
||||
### **PostgreSQL**
|
||||
|
||||
[pg_trgm]: https://www.postgresql.org/docs/current/pgtrgm.html
|
||||
|
||||
Native async with connection pooling (deadpool-postgres). Uses tsvector with
|
||||
weighted columns for full-text search and pg_trgm for fuzzy matching. Requires
|
||||
weighted columns for full-text search and [pg_trgm] for fuzzy matching. Requires
|
||||
the `pg_trgm` extension.
|
||||
|
||||
## Contributing
|
||||
|
||||
[HACKING document]: ./HACKING.md
|
||||
|
||||
Pinakes, despite all the work going into it, is still in an early beta. Some of
|
||||
the features still lack the polish they deserve and there _may_ be breaking
|
||||
changes to the UI, databases, and the APIs. You may find a comprehensive
|
||||
introduction to developing Pinakes in the [HACKING document].
|
||||
|
||||
It is generally advisable that you familiarize yourself with the codebase before
|
||||
proposing or contributing changes. Pinakes consists of _many_ moving parts, and
|
||||
it is better for the contributor experience to approach issues slowly and
|
||||
discuss them beforehand.
|
||||
|
||||
## License
|
||||
|
||||
<!-- markdownlint-disable MD059 -->
|
||||
|
||||
[here]: https://interoperable-europe.ec.europa.eu/sites/default/files/custom-page/attachment/eupl_v1.2_en.pdf
|
||||
|
||||
This project is made available under European Union Public Licence (EUPL)
|
||||
version 1.2. See [LICENSE](LICENSE) for more details on the exact conditions. An
|
||||
online copy is provided [here].
|
||||
|
||||
<!-- markdownlint-enable MD059 -->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue