Skip to content

Commit 6c4fdf9

Browse files
committed
git commit -m "feat: Add comprehensive CI/CD and project documentation
- Add CI workflow with testing, linting, and multi-platform builds - Add security audit checks with cargo-audit - Add CONTRIBUTING.md with development guidelines - Add CHANGELOG.md tracking project changes - Add issue and PR templates for structured contributions - Enhance README with CI badges and contribution links - Test on stable and beta Rust versions - Verify MSRV (Rust 1.70+) - Build verification on Linux and macOS
1 parent 55876f0 commit 6c4fdf9

File tree

17 files changed

+1868
-2
lines changed

17 files changed

+1868
-2
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug or unexpected behavior
4+
title: '[BUG] '
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Description
10+
11+
<!-- A clear and concise description of the bug -->
12+
13+
## Steps to Reproduce
14+
15+
1.
16+
2.
17+
3.
18+
19+
## Expected Behavior
20+
21+
<!-- What you expected to happen -->
22+
23+
## Actual Behavior
24+
25+
<!-- What actually happened -->
26+
27+
## Environment
28+
29+
- **void-box version**: <!-- e.g., 0.1.0 -->
30+
- **Rust version**: <!-- Run: rustc --version -->
31+
- **Operating System**: <!-- e.g., Ubuntu 22.04, macOS 14.1 -->
32+
- **Kernel version** (if using KVM): <!-- Run: uname -r -->
33+
- **KVM available**: <!-- Yes/No -->
34+
35+
## Code Sample
36+
37+
<!-- If applicable, provide a minimal code sample that reproduces the issue -->
38+
39+
```rust
40+
// Your code here
41+
```
42+
43+
## Error Output
44+
45+
<!-- If applicable, paste the error output or stack trace -->
46+
47+
```
48+
Error output here
49+
```
50+
51+
## Logs
52+
53+
<!-- If applicable, include relevant logs (with RUST_LOG=debug) -->
54+
55+
```
56+
Logs here
57+
```
58+
59+
## Additional Context
60+
61+
<!-- Any other context about the problem -->
62+
63+
## Possible Solution
64+
65+
<!-- If you have suggestions on how to fix the bug -->

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: true
2+
contact_links:
3+
- name: Question or Discussion
4+
url: https://github.com/the-void-ia/void-box/discussions
5+
about: Ask questions or discuss ideas in GitHub Discussions
6+
- name: Documentation
7+
url: https://github.com/the-void-ia/void-box#documentation
8+
about: Check the documentation for guides and examples
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
name: Feature Request
3+
about: Suggest a new feature or enhancement
4+
title: '[FEATURE] '
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## Feature Description
10+
11+
<!-- A clear and concise description of the feature you'd like to see -->
12+
13+
## Motivation
14+
15+
<!-- Why is this feature needed? What problem does it solve? -->
16+
17+
## Proposed Solution
18+
19+
<!-- How would you like this feature to work? -->
20+
21+
## Alternatives Considered
22+
23+
<!-- Have you considered any alternative solutions or features? -->
24+
25+
## Use Case
26+
27+
<!-- Describe a specific use case for this feature -->
28+
29+
```rust
30+
// Example of how you'd like to use this feature
31+
```
32+
33+
## Additional Context
34+
35+
<!-- Any other context, screenshots, or examples -->
36+
37+
## Implementation Ideas
38+
39+
<!-- If you have ideas about how to implement this, share them here -->
40+
41+
## Related Issues
42+
43+
<!-- Link any related issues or discussions -->

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
## Description
2+
3+
<!-- Provide a brief description of the changes in this PR -->
4+
5+
## Type of Change
6+
7+
<!-- Mark the relevant option with an "x" -->
8+
9+
- [ ] Bug fix (non-breaking change which fixes an issue)
10+
- [ ] New feature (non-breaking change which adds functionality)
11+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
12+
- [ ] Documentation update
13+
- [ ] Code refactoring
14+
- [ ] Performance improvement
15+
- [ ] Test addition or update
16+
17+
## Related Issues
18+
19+
<!-- Link any related issues here using #issue-number -->
20+
21+
Fixes #
22+
Related to #
23+
24+
## Changes Made
25+
26+
<!-- List the main changes made in this PR -->
27+
28+
-
29+
-
30+
-
31+
32+
## Testing
33+
34+
<!-- Describe the tests you ran to verify your changes -->
35+
36+
- [ ] All existing tests pass (`cargo test --workspace`)
37+
- [ ] Added new tests for the changes
38+
- [ ] Tested manually with mock sandbox
39+
- [ ] Tested manually with KVM sandbox (if applicable)
40+
- [ ] Verified examples still work
41+
42+
### Test Commands Run
43+
44+
```bash
45+
# Add the commands you ran to test
46+
47+
```
48+
49+
## Documentation
50+
51+
- [ ] Updated inline code documentation
52+
- [ ] Updated README.md (if user-facing changes)
53+
- [ ] Updated CHANGELOG.md
54+
- [ ] Added/updated examples (if applicable)
55+
56+
## Code Quality
57+
58+
- [ ] Code follows project style guidelines (`cargo fmt`)
59+
- [ ] No clippy warnings (`cargo clippy --workspace --all-targets`)
60+
- [ ] Documentation builds without warnings (`cargo doc --no-deps`)
61+
- [ ] All files have appropriate licensing headers (if applicable)
62+
63+
## Screenshots (if applicable)
64+
65+
<!-- Add screenshots or terminal output if relevant -->
66+
67+
## Checklist
68+
69+
- [ ] My code follows the project's coding standards
70+
- [ ] I have performed a self-review of my code
71+
- [ ] I have commented my code, particularly in hard-to-understand areas
72+
- [ ] I have made corresponding changes to the documentation
73+
- [ ] My changes generate no new warnings
74+
- [ ] I have added tests that prove my fix is effective or that my feature works
75+
- [ ] New and existing unit tests pass locally with my changes
76+
77+
## Additional Notes
78+
79+
<!-- Add any additional context or notes for reviewers -->

.github/workflows/ci.yml

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ master, main ]
6+
pull_request:
7+
branches: [ master, main ]
8+
9+
env:
10+
CARGO_TERM_COLOR: always
11+
RUST_BACKTRACE: 1
12+
13+
jobs:
14+
test:
15+
name: Test
16+
runs-on: ubuntu-latest
17+
strategy:
18+
matrix:
19+
rust: [stable, beta]
20+
21+
steps:
22+
- uses: actions/checkout@v4
23+
24+
- name: Install Rust ${{ matrix.rust }}
25+
uses: dtolnay/rust-toolchain@master
26+
with:
27+
toolchain: ${{ matrix.rust }}
28+
components: rustfmt, clippy
29+
30+
- name: Cache cargo registry
31+
uses: actions/cache@v4
32+
with:
33+
path: ~/.cargo/registry
34+
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
35+
36+
- name: Cache cargo index
37+
uses: actions/cache@v4
38+
with:
39+
path: ~/.cargo/git
40+
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
41+
42+
- name: Cache cargo build
43+
uses: actions/cache@v4
44+
with:
45+
path: target
46+
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
47+
48+
- name: Run tests
49+
run: cargo test --workspace --all-features --verbose
50+
51+
- name: Run doc tests
52+
run: cargo test --doc --workspace --all-features
53+
54+
lint:
55+
name: Lint
56+
runs-on: ubuntu-latest
57+
58+
steps:
59+
- uses: actions/checkout@v4
60+
61+
- name: Install Rust stable
62+
uses: dtolnay/rust-toolchain@stable
63+
with:
64+
components: rustfmt, clippy
65+
66+
- name: Check formatting
67+
run: cargo fmt --all -- --check
68+
69+
- name: Run clippy
70+
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
71+
72+
build:
73+
name: Build
74+
runs-on: ${{ matrix.os }}
75+
strategy:
76+
matrix:
77+
os: [ubuntu-latest, macos-latest]
78+
rust: [stable]
79+
80+
steps:
81+
- uses: actions/checkout@v4
82+
83+
- name: Install Rust ${{ matrix.rust }}
84+
uses: dtolnay/rust-toolchain@master
85+
with:
86+
toolchain: ${{ matrix.rust }}
87+
88+
- name: Build library
89+
run: cargo build --release --lib
90+
91+
- name: Build CLI
92+
run: cargo build --release --bin voidbox
93+
94+
- name: Build examples
95+
run: cargo build --release --examples
96+
97+
docs:
98+
name: Documentation
99+
runs-on: ubuntu-latest
100+
101+
steps:
102+
- uses: actions/checkout@v4
103+
104+
- name: Install Rust stable
105+
uses: dtolnay/rust-toolchain@stable
106+
107+
- name: Build documentation
108+
run: cargo doc --no-deps --all-features
109+
env:
110+
RUSTDOCFLAGS: -D warnings
111+
112+
msrv:
113+
name: Minimum Supported Rust Version
114+
runs-on: ubuntu-latest
115+
116+
steps:
117+
- uses: actions/checkout@v4
118+
119+
- name: Install Rust 1.70
120+
uses: dtolnay/rust-toolchain@master
121+
with:
122+
toolchain: "1.70"
123+
124+
- name: Check build with MSRV
125+
run: cargo build --workspace --all-features
126+
127+
security:
128+
name: Security Audit
129+
runs-on: ubuntu-latest
130+
131+
steps:
132+
- uses: actions/checkout@v4
133+
134+
- name: Run security audit
135+
uses: rustsec/audit-check@v1
136+
with:
137+
token: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)