You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: finalize README and CONTRIBUTING for initial release
This commit restores the final, polished versions of README.md and CONTRIBUTING.md that were lost after a previous git rebase was aborted.
Includes the 'Why Privlog?', 'Quick Example', and 'Status' sections in the README, as well as the 'Development Setup' and 'Contribution Guidelines' in CONTRIBUTING.md.
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+58-5Lines changed: 58 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,41 @@
1
1
# Contributing to Privlog
2
2
3
-
This guide is for developers who want to contribute to the `privlog` project. It explains the project's architecture and where key logic lives.
3
+
Thank you for your interest in contributing to Privlog.
4
+
5
+
This guide explains the project's architecture, development workflow, and where key logic lives.
6
+
7
+
---
8
+
9
+
## 1. Project Purpose
10
+
11
+
Privlog is a privacy-aware linter for Python. The command-line interface is implemented using Typer, while the analysis engine combines Semgrep rules with a Python AST-based scanner.
This installs Privlog in editable mode so code changes immediately affect the CLI.
8
30
9
-
-**`privlog`** is a privacy-aware linter for Python that uses a Typer CLI. Its analysis is powered by a hybrid engine combining pattern-based Semgrep rules with a high-precision, language-aware AST-based scanner.
31
+
You can verify the installation by running a scan on the project itself:
32
+
```bash
33
+
privlog .
34
+
```
10
35
11
36
---
12
37
13
-
## 2. Key files and modules
38
+
## 3. Key files and modules
14
39
15
40
-`pyproject.toml`
16
41
-**Purpose:** Defines project metadata, dependencies, and the `privlog` entry point. It is also the location for user-defined configuration under the `[tool.privlog]` section.
@@ -22,7 +47,7 @@ This guide is for developers who want to contribute to the `privlog` project. It
22
47
- The main Python package directory.
23
48
24
49
-`privlog/cli.py`
25
-
-**Purpose:** The main entry point for the CLI application.
50
+
-**Purpose:** The main Typer entry point for the CLI application.
26
51
-**Responsibilities:** Defines commands and arguments using Typer. Implements the `--warnings`/`-w` flag and filters findings based on severity.
27
52
28
53
-`privlog/runner.py`
@@ -55,3 +80,31 @@ This guide is for developers who want to contribute to the `privlog` project. It
55
80
-`privlog/rules/privlog.yml`
56
81
-**Purpose:** The core Semgrep ruleset, which complements the AST checker.
57
82
-**Responsibilities:** Defines rules for detecting PII, secrets, and unsafe logging patterns.
83
+
84
+
---
85
+
86
+
## 4. Contribution Guidelines
87
+
88
+
When contributing code:
89
+
90
+
- Keep the CLI interface stable
91
+
- Maintain clear error messages and finding codes
92
+
- Prefer AST-based detection when accuracy matters
93
+
- Keep rules deterministic and easy to understand
94
+
95
+
Before submitting a pull request:
96
+
97
+
- Ensure the CLI runs correctly
98
+
- Verify that findings behave as expected
99
+
- Update documentation if behavior changes
100
+
101
+
### Submitting Pull Requests
102
+
103
+
1. Fork the repository.
104
+
2. Create a feature branch (`git checkout -b feature/AmazingFeature`).
105
+
3. Make your changes.
106
+
4. Commit your changes (`git commit -m 'Add some AmazingFeature'`).
107
+
5. Push to the branch (`git push origin feature/AmazingFeature`).
108
+
6. Open a new Pull Request.
109
+
110
+
Clear explanations and examples are always appreciated.
0 commit comments