Skip to content

Commit 7425503

Browse files
committed
Add security and license auditing guidelines to CONTRIBUTING.md; update allowed licenses in deny.toml
1 parent 3a45091 commit 7425503

2 files changed

Lines changed: 49 additions & 1 deletion

File tree

CONTRIBUTING.md

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,16 @@ AimDB is an async, in-memory database designed for real-time data synchronizatio
4949
- `make doc` - Generate and open documentation
5050
- `make clean` - Clean build artifacts
5151

52+
### Security and License Auditing
53+
54+
AimDB uses `cargo deny` for dependency auditing:
55+
56+
```bash
57+
cargo deny check # Full audit (advisories, licenses, bans)
58+
cargo deny check licenses # License compliance only
59+
cargo deny check advisories # Security advisories only
60+
```
61+
5262
## Code Standards
5363

5464
### Rust Guidelines
@@ -170,7 +180,12 @@ cargo test test_name --all-features
170180
make test
171181
```
172182

173-
3. **Check documentation:**
183+
3. **Check license compliance:**
184+
```bash
185+
cargo deny check # Verify dependencies meet license requirements
186+
```
187+
188+
4. **Check documentation:**
174189
```bash
175190
make doc
176191
```
@@ -229,6 +244,38 @@ examples/quickstart/ # Demo application
229244
- **Discussions**: Use GitHub discussions for general questions
230245
- **Code Review**: All PRs require review before merging
231246

247+
## License Compliance
248+
249+
### Dependency Licensing
250+
251+
AimDB follows a permissive licensing strategy compatible with commercial use. The project accepts dependencies with these licenses:
252+
253+
- **Primary**: MIT, Apache-2.0 (preferred for new dependencies)
254+
- **Compatible**: BSD-2-Clause, BSD-3-Clause, ISC
255+
- **Unicode Data**: Unicode-3.0, Unicode-DFS-2016 (for Unicode processing crates)
256+
257+
### Adding Dependencies
258+
259+
Before adding new dependencies:
260+
261+
1. **Check the license** with `cargo deny check`
262+
2. **Ensure compatibility** with our allowed licenses in `deny.toml`
263+
3. **Avoid copyleft licenses** (GPL, LGPL, etc.) that could restrict commercial use
264+
4. **Document the rationale** for any new license additions in your PR
265+
266+
If you need to add a dependency with a new license:
267+
- Verify it's OSI-approved and business-friendly
268+
- Update `deny.toml` to include the new license
269+
- Explain the necessity in your PR description
270+
271+
### License Audit
272+
273+
Run license checks as part of development:
274+
```bash
275+
cargo deny check licenses # Check license compliance
276+
make check # Includes all development checks
277+
```
278+
232279
## Code of Conduct
233280

234281
Please be respectful and constructive in all interactions. We're building this project together and want everyone to feel welcome to contribute.

deny.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ allow = [
77
"BSD-3-Clause",
88
"ISC",
99
"Unicode-DFS-2016",
10+
"Unicode-3.0",
1011
]
1112

1213
confidence-threshold = 0.8

0 commit comments

Comments
 (0)