Skip to content

Commit 3a3ff9b

Browse files
committed
Add information on how to contribute
- Added CONTRIBUTING.md - Added reference to CONTRIBUTING.md in readme.md - Added PR template
1 parent 3353e37 commit 3a3ff9b

4 files changed

Lines changed: 166 additions & 9 deletions

File tree

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
## Description
2+
3+
Please describe what this PR changes and why.
4+
5+
## Problem Statement
6+
7+
What concrete issue does this PR address?
8+
9+
- [ ] Reproducible test case included
10+
- [ ] Compiler / sanitizer evidence provided
11+
- [ ] Verified incorrect behavior shown in code
12+
- [ ] Reference to external technical source (if applicable)
13+
14+
If none apply, the PR may be closed without review.
15+
16+
## Verification
17+
18+
How was the issue verified?
19+
20+
- [ ] Locally reproducible
21+
- [ ] Unit test added/updated
22+
- [ ] Static analysis / sanitizer output
23+
- [ ] Other (please specify)
24+
25+
## Type of Change
26+
27+
Please select the type of change:
28+
29+
- [ ] Bug Fix (requires verifiable evidence)
30+
- [ ] Feature / Enhancement (new functionality)
31+
- [ ] Refactor (no behavior change)
32+
- [ ] Documentation
33+
- [ ] Other (please describe)
34+
35+
## Problem / Motivation
36+
37+
For Bug Fixes:
38+
- What is the observed issue?
39+
40+
For Features:
41+
- What functionality is being added and why?
42+
43+
For Refactors:
44+
- What is being improved internally and why?
45+
46+
## Checklist
47+
48+
- [ ] I have independently verified the issue
49+
- [ ] I am not submitting unverified or speculative changes
50+
- [ ] I understand that AI-assisted changes must be reviewed by a human before submission
51+

.github/workflows/build.yml

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,22 @@ on:
1515

1616
env:
1717
AMALGAMATION: amalgamation
18-
SQLITE_PATH: sqlite3
19-
LIBICU_PATH: icu_precompiled
18+
ARCHIVES: archives
19+
SQLITE_PATH: sqlite3
20+
LIBICU_PATH: icu_precompiled
2021

2122
jobs:
2223

2324
build-windows:
2425
runs-on: windows-2022
2526
env:
2627
MODE: ${{ github.event.inputs.mode }}
27-
strategy:
28-
fail-fast: false
29-
matrix:
30-
platform:
31-
- win32
32-
- win64
28+
# strategy:
29+
# fail-fast: false
30+
# matrix:
31+
# platform:
32+
# - win32
33+
# - win64
3334

3435
steps:
3536

@@ -138,6 +139,16 @@ jobs:
138139
python ../scripts/amalgamate.py -v yes -c ../scripts/shell3mc.c.json -s ../src
139140
dir
140141
142+
- name: Create ZIP
143+
shell: pwsh
144+
run: |
145+
Compress-Archive -Path "build/package/*" -DestinationPath "build/artifact.zip"
146+
147+
- name: Upload artifact
148+
uses: actions/upload-artifact@v4
149+
with:
150+
name: build-artifact
151+
path: build/artifact.zip
141152
build-linux:
142153
runs-on: ubuntu-24.04
143154
env:

CONTRIBUTING.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Contributing Guidelines
2+
3+
We welcome contributions. To ensure efficient and meaningful review, the following minimum requirements apply.
4+
5+
---
6+
7+
## 1. Change Type & Verifiable Statement
8+
9+
Every pull request must clearly declare its type and provide appropriate justification.
10+
11+
### Supported PR Types
12+
13+
- **Bug Fix**
14+
A PR that fixes a reproducible and verifiable issue.
15+
16+
- **Feature / Enhancement**
17+
A PR that introduces new functionality or improves existing behavior without fixing a bug.
18+
19+
- **Refactor**
20+
A PR that changes internal implementation without changing external behavior.
21+
22+
- **Documentation**
23+
A PR that only affects documentation.
24+
25+
- **Other**
26+
For changes that do not fit the categories above (must be explained clearly).
27+
28+
---
29+
30+
### 1a. Requirements for Bug Fixes
31+
32+
Bug-fix PRs must include **verifiable evidence of the issue**, such as:
33+
34+
- a reproducible test case
35+
- compiler or sanitizer output (e.g. ASan, UBSan)
36+
- clearly demonstrable incorrect behavior in the existing code
37+
- or a reliable technical reference
38+
39+
Speculative statements (e.g. “might be unsafe”, “could be NULL”) are not sufficient without proof.
40+
41+
---
42+
43+
### 1b. Requirements for Features
44+
45+
Feature PRs must include a clear description of:
46+
47+
- what new functionality is introduced
48+
- why the change is useful
49+
- how the behavior changes for users or callers
50+
51+
If applicable, feature PRs should also include tests or usage examples.
52+
53+
---
54+
55+
### 1c. Requirements for Refactoring
56+
57+
Refactoring PRs must ensure:
58+
59+
- no change in external behavior unless explicitly stated
60+
- justification for structural changes (readability, performance, maintainability, etc.)
61+
- tests remain valid or are updated accordingly
62+
63+
---
64+
65+
## 2. Human Review Required
66+
67+
Automatically generated or assisted changes (including AI-assisted contributions) must be **reviewed and validated by a real person before submission**.
68+
69+
The contributor is responsible for ensuring that:
70+
71+
- the proposed change is technically correct
72+
- the issue description has been independently verified
73+
- the change is not based on speculation or unverified assumptions
74+
75+
---
76+
77+
## 3. No Substantive Value → No Merge
78+
79+
Pull requests that:
80+
81+
- only contain cosmetic or non-functional changes
82+
- address issues that are not demonstrably valid
83+
- or do not provide a verifiable improvement
84+
85+
may be closed without further discussion.
86+
87+
---
88+
89+
## 4. Review Policy
90+
91+
PRs that do not meet the above requirements may be **closed without entering a full review cycle**, in order to protect maintainers’ time and keep the project maintainable.

readme.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,14 @@ The code was mainly developed under Windows, but was tested under Linux as well.
1717

1818
For further version information please consult the [CHANGELOG](CHANGELOG.md).
1919

20-
## How to participate
20+
## How to participate and/or contribute
2121

2222
**Help in testing and discussing further development will be _highly_ appreciated**. Please use the [issue tracker](https://github.com/utelle/SQLite3MultipleCiphers/issues) to give feedback, report problems, or to discuss ideas.
2323

24+
Before opening a pull request, please read our [Contributing Guidelines](CONTRIBUTING.md).
25+
26+
PRs that do not include a verifiable problem statement or human-validated changes may be closed without review.
27+
2428
## Documentation
2529

2630
Documentation of the currently supported cipher schemes and the C and SQL interfaces is provided on the [SQLite3 Multiple Ciphers website](https://utelle.github.io/SQLite3MultipleCiphers/).

0 commit comments

Comments
 (0)