Skip to content

Commit b20322b

Browse files
authored
Replace duplicate files with symlinks. (#20)
Cutting down sync issues.
1 parent 08f3599 commit b20322b

7 files changed

Lines changed: 106 additions & 296 deletions

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Changelog
2+
3+
## [Unreleased]
4+
5+
### Added
6+
7+
* `--crates <main|aux|all>` option to the `clippy` command. ([#18] by [@xStrom])
8+
9+
### Changed
10+
11+
* `ci` `clippy` now uses `--crates all` by default and does two separate checks with `--crates main` and `--crates aux` in extended mode. ([#18] by [@xStrom])
12+
13+
## [0.1.0] - 2026-01-31
14+
15+
### Added
16+
17+
* `clippy` command to easily run `cargo clippy --workspace --all-features --locked`. ([#2] by [@xStrom])
18+
* `format` command to easily run `cargo fmt --all`. ([#3] by [@xStrom])
19+
* `ci` command to easily run `format` and `clippy` in strict verification mode. ([#5] by [@xStrom])
20+
21+
[@xStrom]: https://github.com/xStrom
22+
23+
[#2]: https://github.com/Nevermore/prep/pull/2
24+
[#3]: https://github.com/Nevermore/prep/pull/3
25+
[#5]: https://github.com/Nevermore/prep/pull/5
26+
[#18]: https://github.com/Nevermore/prep/pull/18
27+
28+
[Unreleased]: https://github.com/Nevermore/prep/compare/v0.1.0...HEAD
29+
[0.1.0]: https://github.com/Nevermore/prep/compare/v0.0.0...v0.1.0

README.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

README.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<div align="center">
2+
3+
# Prep
4+
5+
**Prepare Rust projects for greatness**
6+
7+
[![Latest published version.](https://img.shields.io/crates/v/prep.svg)](https://crates.io/crates/prep)
8+
[![Dependency staleness status.](https://deps.rs/crate/prep/latest/status.svg)](https://deps.rs/crate/prep)
9+
[![Apache 2.0 or MIT license.](https://img.shields.io/badge/license-Apache--2.0_OR_MIT-blue.svg)](#license)
10+
11+
</div>
12+
13+
Prep is a cross-platform CLI tool that provides Rust workspace verification in a single short command.
14+
You can just invoke `prep ci` and if the checks succeed then you can rest easy knowing that your PR won't fail CI.
15+
16+
The latest version is [0.1.0] which was published on 2026-01-31.
17+
You can read about the changes in the [changelog].
18+
19+
## Motivation
20+
21+
Rust projects tend to have a wide variety of fairly complicated verification steps in CI.
22+
These steps help ensure that the project stays consistent and keeps working in various scenarios.
23+
24+
However, these CI steps are either written as GitHub Action YAML files or as Bash scripts.
25+
Running GitHub Actions requires a rather heavyweight Docker image, which expects a Unix userland, just like Bash scripts.
26+
Additionally, they target ephemeral VMs, so they do a lot of tooling setup that isn't efficient for a local machine.
27+
All of that meaning that you're really out of luck on Windows and even on Unix it's going to be needlessly cumbersome.
28+
29+
So you need to analyze the specifics of a project's CI and craft custom local scripts to emulate the CI steps.
30+
That, or you just manually invoke a few Cargo commands and hope for the best, leading to frequent CI failures on your PRs.
31+
Which sucks because CI tends to run at a lot slower speed than your local machine, especially due to cold build cache.
32+
33+
## Prep to the rescue
34+
35+
Before opening a PR you can just run `prep ci` locally and verify that everything matches CI expectations.
36+
Because Prep aims for a rather robust set of verifications this will be beneficial even when the project still uses custom CI scripts.
37+
However, for best results the project itself should run `prep ci` in its CI instead of custom scripts.
38+
That way the only problems that remain uncaught locally are platform specific, which the CI will catch with its multi-platform job matrix.
39+
40+
## Installation
41+
42+
```sh
43+
cargo install prep --locked
44+
```
45+
46+
## Usage
47+
48+
```
49+
Usage: prep [command] [options]
50+
51+
Commands:
52+
ci Verify for CI.
53+
clp clippy Analyze with Clippy.
54+
fmt format Format with rustfmt.
55+
help Print help for the provided command.
56+
57+
Options:
58+
-h --help Print help for the provided command.
59+
-V --version Print version information.
60+
```
61+
62+
## License
63+
64+
Licensed under either of
65+
66+
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or <http://www.apache.org/licenses/LICENSE-2.0>)
67+
- MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)
68+
69+
at your option.
70+
71+
[0.1.0]: https://github.com/Nevermore/prep/releases/tag/v0.1.0
72+
[changelog]: prep/CHANGELOG.md

prep/AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../AUTHORS

prep/CHANGELOG.md

Lines changed: 0 additions & 29 deletions
This file was deleted.

prep/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../CHANGELOG.md

prep/LICENSE-APACHE

Lines changed: 0 additions & 176 deletions
This file was deleted.

prep/LICENSE-APACHE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../LICENSE-APACHE

prep/LICENSE-MIT

Lines changed: 0 additions & 18 deletions
This file was deleted.

prep/LICENSE-MIT

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../LICENSE-MIT

0 commit comments

Comments
 (0)