Skip to content

Commit

Permalink
add contributing guide
Browse files Browse the repository at this point in the history
  • Loading branch information
dgllghr committed Jan 31, 2024
1 parent 831a837 commit 0d59644
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 3 deletions.
28 changes: 28 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
Thank you for your interest in contributing to stanchion!

One of the easiest ways you can contribute to stanchion is to star the project and share it with others. Having users is the best way for a project like stanchion to grow.

Another great way to help is to test stanchion. Stanchion benefits from being tested across a large number of environments and use cases, so if you have an idea of how you might want to use stanchion, please try it out and file issues for any bugs, difficulties, or missing features you come across. This will help prioritize the roadmap and get stanchion production ready for your use case.

Please also file issues for any ideas or questions you have for or about the project.

Stanchion is a young project and isn't ready for code contributions for new features from the community, yet. However, the following code contributions are all very welcome:

* Bug fixes
* Additional tests
* Performance optimizations
* Code cleanups

## Edit Code

You will need to [install Zig (master)](https://ziglang.org/learn/getting-started/#installing-zig) and clone the `stanchion` repository. Then clone the stanchion repo and run `zig build test` to ensure zig is installed and stanchion compiles.

For Zig editor and tool support, see [Zig Tools](https://ziglang.org/learn/tools/).

When making changes to stanchion, there are a few commands that are useful for testing and debugging purposes:

* [zig build test]: run unit tests
* [zig build itest]: run integration tests
* [zig build ext]: build the runtime loadable extension as a dynamic library which can be found in the `zig-out/lib` folder

Once your changes are ready, open a pull requests against the stanchion GitHub repository.
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Stanchion is an ideal fit for analytical queries and wide tables because it only

## Example

Download the prebuilt dynamic library for your platform or [build from source](#Build).
Download the prebuilt dynamic library for your platform from a Release or [build from source](#Build).

```sql
.load /path/to/libstanchion
Expand Down Expand Up @@ -168,15 +168,15 @@ This is something that stanchion would like to support, but it may be difficult

A high level roadmap (only roughly ordered) of upcoming features:

- [ ] Table renaming
- [ ] Rename table
- [ ] Optimize table
- [ ] Concurrency safety and testing
- [ ] More encodings: RLE, Dictionary, Chimp, etc.
- [ ] Byte level lossless compression (e.g. zstd)
- [ ] Function that converts SQLite native table to stanchion table
- [ ] Publish benchmarks against SQLite, DuckDB, and chDB
- [ ] `DELETE` & `UPDATE`
- [ ] Configuration parameters and tuning
- [ ] Publish benchmarks against SQLite, DuckDB, and chDB
- [ ] Guide for using stanchion within iOS and Android apps
- [ ] Schema changes (not natively support by SQLite virtual tables)
- [ ] List data type
Expand All @@ -202,3 +202,7 @@ When a query filters on sort key columns, Stanchion applies that filter to the p
### Row group index

The row group index is a native, row-oriented SQLite table that indexes the row groups by the starting (min) sort key of each row group. When a query filters on sort key columns, Stanchion applies that filter to the primary index to restrict which row groups are accessed. Filtering by sort key is the only indexing mechanism currently supported by Stanchion.

## Contributing

See [CONTRIBUTING.md](.github/CONTRIBUTING.md)

0 comments on commit 0d59644

Please sign in to comment.