Thank you for taking the time to read this.
The first way to show support is to star our repos :).
Loco is a community driven project. We welcome you to participate, contribute and together build a productivity-first web and api framework in Rust.
This project is follows Code of Conduct. By participating, you are expected to uphold this code.
If you have a question to ask, feel free to open an new discussion. There are no dumb questions.
Feature requests from anyone is definitely welcomed! You can open an issue. When you can, illustrate a feature with code, simulated console output, and "make believe" console interactions, so we know what you want and what you expect.
Awesome! The best way to support us is to recommend it to your classmates/colleagues/friends, write blog posts and tutorials on our projects and help out other users in the community.
We are always looking for long-term contributors. If you want to commit longer-term to Loco's open source effort, definitely talk with us!
- From time to time we will make issues clear for newcomers with
mentoring
andgood-first-issue
- If no issue exist, just open an issue and ask how to help
Our testing grounds is examples/demo which is pointing to the latest local loco
framework. You can use it to test out an actual app, using a locally modified loco
.
We use rustfmt
/cargo fmt
. A few code style options are set in the .rustfmt.toml file, and some of them are not stable yet and require a nightly version of rustfmt.
If you're using rustup, the nightly version of rustfmt can be installed by doing the following:
rustup component add rustfmt --toolchain nightly
And then format your code by running:
cargo +nightly fmt
Just clone the project and run cargo test
.
You can see how we test in .github/workflows
To update/create a snapshots we are using insta. all you need to do is install insta (cargo install cargo-insta) and run the following command:
cargo insta test --review
In case of cli changes we snapshot the binary commands. in case of changes run the following command yo update the CLI snapshot
LOCO_CI_MODE=true TRYCMD=overwrite cargo test
The documentation consists of two main components:
- The loco.rs website with its source code available here.
- RustDocs.
To reduce duplication in documentation and examples, we use snipdoc. As part of our CI process, we ensure that the documentation remains consistent.
Updating the Documentation
To run the documentation site locally, we use zola so you'll need to install it. The documentation site works with zola version 0.19.2
and since zola still has breaking changes, we make no guarantees about other versions.
Running the local preview
cd docs-site
npm run serve
orzola serve
The most recommended and straightforward method to contribute changes to the project involves forking it on GitHub and subsequently initiating a pull request to propose the integration of your modifications into our repository.
Changes a starters project are not recommended. read more here
- References to any bugs fixed by the change
- Informative notes for the reviewer, aiding their comprehension of the necessity for the change or providing insights on how to conduct a more effective review.
- A clear explanation of how you tested your changes.
- be based on the master branch
- adhere to the code style
- Successfully passes the test suite