Skip to content

Commit 4ee3f81

Browse files
committed
docs: improve documentation and developer onboarding
1 parent 8091c84 commit 4ee3f81

10 files changed

Lines changed: 909 additions & 187 deletions

File tree

CHANGELOG.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,27 @@ This project follows a simple versioning strategy:
88
- fixes → patch
99

1010
---
11-
## v0.2.0
11+
## [v0.2.1]
12+
13+
### Added
14+
- Add full documentation for template engine:
15+
- architecture
16+
- AST
17+
- rendering
18+
- syntax
19+
- roadmap
20+
- Add CONTRIBUTING.md with contribution guidelines
21+
- Add SECURITY.md with vulnerability reporting policy
22+
- Add CODE_OF_CONDUCT.md
23+
24+
### Changed
25+
- Improve README with clear usage examples and positioning
26+
- Refine documentation structure for better developer experience
27+
28+
### Notes
29+
This release focuses on documentation, clarity, and onboarding experience.
30+
31+
## [v0.2.0]
1232

1333
### Added
1434
- Add CMakePresets.json for unified configure/build/test workflows (Ninja + MSVC)

CODE_OF_CONDUCT.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# Vix.cpp Code of Conduct
2+
3+
## Our Commitment
4+
5+
We are committed to fostering a welcoming, inclusive, and professional community around **Vix.cpp**.
6+
7+
We want this project to be a place where developers from all backgrounds can collaborate, learn, and build high-quality software together, free from harassment or discrimination.
8+
9+
We pledge to make participation in this project a harassment-free experience for everyone, regardless of:
10+
11+
- age, body size, disability, ethnicity, nationality
12+
- gender identity or expression
13+
- level of experience or education
14+
- personal appearance
15+
- race, religion, sexual identity, or orientation
16+
17+
---
18+
19+
## Our Standards
20+
21+
### Expected Behavior
22+
23+
Contributors are expected to:
24+
25+
- Be respectful, professional, and constructive in all interactions
26+
- Provide feedback focused on ideas and code, not individuals
27+
- Welcome newcomers and support less experienced contributors
28+
- Respect differing viewpoints and experiences
29+
- Give proper credit for others’ work and ideas
30+
- Act in the best interest of the project and its community
31+
32+
### Unacceptable Behavior
33+
34+
The following behaviors are not tolerated:
35+
36+
- Sexualized language, imagery, or unwelcome advances
37+
- Trolling, insulting, or derogatory comments
38+
- Harassment, intimidation, or threats (public or private)
39+
- Publishing private information about others without explicit permission
40+
- Any conduct that would reasonably be considered inappropriate in a professional environment
41+
42+
---
43+
44+
## Enforcement Responsibilities
45+
46+
Project maintainers are responsible for clarifying and enforcing this Code of Conduct.
47+
48+
They may remove, edit, or reject comments, commits, issues, pull requests, or other contributions that violate these standards.
49+
50+
Maintainers may also temporarily or permanently ban contributors whose behavior they deem harmful, abusive, or disruptive.
51+
52+
---
53+
54+
## Scope
55+
56+
This Code of Conduct applies within all project spaces, including but not limited to:
57+
58+
- GitHub issues, pull requests, discussions, and code reviews
59+
- Official communication channels related to Vix.cpp
60+
61+
It also applies when an individual is representing the project in public spaces, such as:
62+
63+
- Using official project communication channels
64+
- Representing Vix.cpp at events, conferences, or online discussions
65+
66+
---
67+
68+
## Enforcement
69+
70+
If you experience or witness behavior that violates this Code of Conduct, please report it by contacting:
71+
72+
**Email:** gaspardkirira@outlook.com
73+
74+
All reports will be reviewed promptly and handled with discretion.
75+
Project maintainers are committed to respecting the privacy and safety of everyone involved.
76+
77+
---
78+
79+
## Enforcement Guidelines
80+
81+
When determining appropriate consequences, maintainers will consider the context, severity, and history of the behavior.
82+
83+
### 1. Correction
84+
85+
**Impact:** Minor unprofessional or inappropriate behavior.
86+
**Consequence:** Private clarification and guidance on expected conduct.
87+
88+
### 2. Warning
89+
90+
**Impact:** Repeated minor violations or a single significant incident.
91+
**Consequence:** Formal warning and possible temporary limitations on participation.
92+
93+
### 3. Temporary Ban
94+
95+
**Impact:** Serious or repeated violations of community standards.
96+
**Consequence:** Temporary suspension from participation in project spaces.
97+
98+
### 4. Permanent Ban
99+
100+
**Impact:** Sustained pattern of abusive, hostile, or harmful behavior.
101+
**Consequence:** Permanent removal from all project-related spaces.
102+
103+
---
104+
105+
## Attribution
106+
107+
This Code of Conduct is adapted from the
108+
[Contributor Covenant, version 2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html).
109+
110+
For additional information, see:
111+
https://www.contributor-covenant.org/faq
112+
113+
---
114+
115+
## Summary
116+
117+
All contributors are expected to act with professionalism, respect, and integrity.
118+
119+
By participating in **Vix.cpp**, you help build not only high-performance software, but also a healthy and collaborative community.

CONTRIBUTING.md

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
# Contributing to Vix Template Engine
2+
3+
Thank you for your interest in contributing.
4+
5+
This project focuses on performance, clarity, and deterministic behavior. Contributions should follow these principles.
6+
7+
---
8+
9+
## Philosophy
10+
11+
Before contributing, understand the core goals:
12+
13+
- deterministic behavior
14+
- minimal design
15+
- no hidden state
16+
- performance-first mindset
17+
18+
If your change adds complexity, it must bring clear value.
19+
20+
---
21+
22+
## Getting Started
23+
24+
### 1. Fork the repository
25+
26+
```bash
27+
git clone https://github.com/vixcpp/template.git
28+
cd template
29+
```
30+
31+
### 2. Create a branch
32+
33+
```bash
34+
git checkout -b feature/my-feature
35+
```
36+
37+
### 3. Build the project
38+
39+
```bash
40+
cmake --preset dev-ninja
41+
cmake --build --preset build-ninja
42+
```
43+
44+
### 4. Run tests
45+
46+
```bash
47+
ctest --preset test-ninja
48+
```
49+
50+
---
51+
52+
## Code Guidelines
53+
54+
### C++ Standards
55+
56+
- Use modern C++ (C++20)
57+
- Prefer RAII
58+
- Avoid raw pointers unless necessary
59+
- Use `std::unique_ptr` for ownership
60+
- Avoid unnecessary allocations
61+
62+
### Style
63+
64+
- Clear and explicit code
65+
- Small, focused functions
66+
- No hidden behavior
67+
- Avoid magic
68+
69+
### Naming
70+
71+
- Use English names
72+
- Be descriptive and consistent
73+
74+
---
75+
76+
## Architecture Rules
77+
78+
Do not break core guarantees:
79+
80+
- AST must remain deterministic
81+
- Renderer must remain stateless
82+
- No I/O inside rendering
83+
- No global mutable state
84+
85+
---
86+
87+
## Tests
88+
89+
All changes must include tests when relevant.
90+
91+
- Add tests in `tests/`
92+
- Keep tests deterministic
93+
- Avoid external dependencies
94+
95+
---
96+
97+
## Benchmarks
98+
99+
If your change impacts performance:
100+
101+
- update benchmarks in `benchmarks/`
102+
- explain performance impact in PR
103+
104+
---
105+
106+
## Commit Messages
107+
108+
Use clear messages:
109+
110+
```bash
111+
feat(parser): add filter node support
112+
fix(renderer): avoid unnecessary allocations
113+
refactor(cache): use shared template handles
114+
```
115+
116+
---
117+
118+
## Pull Requests
119+
120+
Before opening a PR:
121+
122+
- ensure project builds
123+
- ensure tests pass
124+
- keep PR focused (one change = one PR)
125+
- describe clearly what you changed and why
126+
127+
---
128+
129+
## What Not to Do
130+
131+
- do not introduce heavy dependencies
132+
- do not add magic behavior
133+
- do not break deterministic design
134+
- do not add features without discussion (for large changes)
135+
136+
---
137+
138+
## Discussions
139+
140+
For large features:
141+
142+
- open an issue first
143+
- discuss design before implementation
144+
145+
---
146+
147+
## Summary
148+
149+
Good contributions are:
150+
151+
- simple
152+
- explicit
153+
- fast
154+
- aligned with architecture
155+
156+
---
157+
158+
Thanks for contributing to Vix Template Engine 🚀
159+

0 commit comments

Comments
 (0)