Skip to content

Commit b049511

Browse files
committed
Updated Contributing
1 parent cd57912 commit b049511

File tree

2 files changed

+103
-103
lines changed

2 files changed

+103
-103
lines changed

CONTRIBUTING.md

Lines changed: 95 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,84 @@
11
# Contributing to EFx
22

3-
Thank you for your interest in contributing!
3+
[![PRs Welcome](https://img.shields.io/badge/PullRequest-welcome-brightgreen.svg?style=flat-square)]()
4+
5+
Thank you for your interest in contributing!
46
Any help — from filing a bug report to implementing new tags — makes EFx better.
57

68
---
79

8-
## Principles
10+
## 🧭 Principles
911

10-
* **Safety & compatibility.** Avoid breaking public APIs unless agreed upon in advance.
11-
* **Code style.** Follow `cargo fmt` and ensure `clippy` passes without warnings.
12-
* **Tests.** Any logic change should come with tests (`cargo test`, doctests, compile-fail tests).
12+
* **Safety & compatibility.** Avoid breaking public APIs unless discussed in advance.
13+
* **Code style.** Follow `cargo fmt`; ensure `clippy` passes without warnings.
14+
* **Tests.** Any logic change should include tests (`cargo test`, doctests, compile-fail tests).
1315
* **Docs.** Public APIs, new tags, and attributes must be documented.
1416
* **Performance.** Avoid regressions; add profiling notes if relevant.
1517

1618
---
1719

18-
## Filing Issues
20+
## 🐞 Filing Issues
1921

2022
Before opening a new issue:
2123

2224
1. **Search existing issues** to avoid duplicates.
23-
2. Prepare a **minimal reproducible example** (short `efx! { ... }` snippet, log, or screenshot).
25+
2. Prepare a **minimal reproducible example** — short `efx! { ... }` snippet, log, or screenshot.
26+
3. For new features, provide a **short rationale** or reference an RFC.
2427

25-
**Template for issues:**
28+
**Issue template:**
2629

27-
* **Type:** bug / feature / docs / question
28-
* **Expected behavior:**
29-
* **Actual behavior:**
30-
* **Reproduction:** code or steps
31-
* **Versions:** `rustc --version`, EFx crate versions
32-
* **Platform:** OS/architecture
30+
* **Type:** bug / feature / docs / question
31+
* **Expected behavior:**
32+
* **Actual behavior:**
33+
* **Reproduction:** code or steps
34+
* **Versions:** `rustc --version`, EFx crate versions
35+
* **Platform:** OS/architecture
3336
* **Additional info:** backtrace, perf data, etc.
3437

38+
> 💡 *Tip:* issues labeled `good first issue` are designed for first-time contributors.
39+
40+
---
41+
42+
## 🧩 Workflow Overview
43+
44+
### 1. Pick or propose an issue
45+
46+
* **Claim an issue:** comment “I’d like to take this” (optionally with a short plan/ETA).
47+
The maintainer will assign it to you.
48+
* **Propose a new issue:** open a ticket as described above.
49+
If relevant, start from the roadmap RFC:
50+
[`EFX-0001`](efx/docs/rfcs/EFX-0001-roadmap-0.5-0.7.md).
51+
3552
---
3653

37-
## Submitting Pull Requests
54+
### 2. Fork & branch
55+
56+
Fork the repository and create a **feature branch from `main`**:
3857

39-
1. **Fork** and create a branch:
58+
```bash
59+
git checkout main
60+
git pull
61+
git checkout -b feat/short-topic
62+
````
4063

41-
* `feat/<feature>` — new functionality
42-
* `fix/<bug>` — bugfix
43-
* `docs/<topic>` — docs only
44-
* `chore/<topic>` — maintenance
45-
2. Make your changes and ensure **all tests pass**.
46-
3. Update **docs** and **CHANGELOG.md** if behavior is user-visible.
47-
4. Run local checks (see below).
48-
5. Open a PR with:
64+
Keep your branch focused on **one issue**.
4965

50-
* **Title:** short and clear
51-
* **Description:** what/why, how tested, API impact
52-
* Link to relevant **issue or RFC**
66+
Branch naming convention:
5367

54-
Small follow-up commits for review fixes are welcome.
68+
| Type | Example | Purpose |
69+
|----------|-----------------------|---------------------------|
70+
| `feat/` | `feat/button-rounded` | New feature or tag |
71+
| `fix/` | `fix/text-alignment` | Bugfix |
72+
| `docs/` | `docs/taglist-update` | Documentation |
73+
| `chore/` | `chore/ci-cache` | Maintenance or CI updates |
5574

5675
---
5776

58-
## Pre-PR Checklist
77+
### 3. Implement with tests & docs
78+
79+
Make your changes and ensure **all tests and examples build**.
80+
81+
Local checks:
5982

6083
```bash
6184
# formatting
@@ -64,43 +87,72 @@ cargo fmt --all -- --check
6487
# linting
6588
cargo clippy --all-targets --all-features -D warnings
6689
67-
# tests (unit, doctests, compile-fail)
90+
# tests
6891
cargo test --workspace
6992
70-
# docs build
93+
# docs
7194
cargo doc --workspace --no-deps
7295
```
7396

74-
You can also check examples manually:
97+
Examples (build-only; GUI run is not required):
7598

7699
```bash
77-
cargo run -p efx-sandbox
78-
cargo run -p efx --example eframe_demo
100+
cargo build -p efx --example eframe_demo --locked
101+
rustup target add wasm32-unknown-unknown
102+
cargo build -p efx --example eframe_demo --target wasm32-unknown-unknown --locked
79103
```
80104

81105
---
82106

83-
## Commit Messages
107+
### 4. Open a Pull Request
108+
109+
* Target the **next release branch** (e.g. `v0.6`, `v0.7`).
110+
If the issue has a **milestone**, use the branch named after it.
111+
* Link the issue (e.g. `Closes #123`) and fill in the PR checklist.
84112

85-
Use [Conventional Commits](https://www.conventionalcommits.org/):
113+
**PR checklist:**
114+
115+
* [ ] References related issue / RFC section when behavior changes
116+
* [ ] CI is green (workspace + examples + wasm32 build)
117+
* [ ] Tests/docs updated where applicable
118+
* [ ] No unrelated changes
119+
120+
**PR title examples (Conventional Commits):**
86121

87122
```
88123
feat(button): add rounding attribute
89124
fix(core): correct parsing of numeric attribute
90125
docs: update intro example
91126
```
92127
128+
Small review-fix commits are welcome.
129+
130+
---
131+
132+
### 5. Reviews & merge
133+
134+
* Review comments should be addressed promptly.
135+
* Smaller, focused PRs get merged faster.
136+
* If you go silent for **7 days**, the issue may be unassigned to keep momentum (you can re-claim it anytime).
137+
138+
---
139+
140+
## 🧪 Versioning
141+
142+
We follow **Semantic Versioning (SemVer)**.
143+
Breaking changes require prior discussion in an issue or RFC.
144+
All user-facing changes must be added to `CHANGELOG.md` under **Unreleased**.
145+
93146
---
94147
95-
## Versioning
148+
## ⚖️ License
96149
97-
We follow **SemVer**.
98-
Breaking changes require discussion in an issue/RFC.
99-
All user-facing changes should be added to `CHANGELOG.md` under **Unreleased**.
150+
By submitting a contribution, you agree that your work is licensed under the same terms as EFx —
151+
[MIT or Apache-2.0](efx/LICENSE).
100152
101153
---
102154
103-
## License
155+
## 💬 Contact
104156
105-
By submitting a contribution, you agree that your work is licensed under the same terms as EFx
106-
([MIT OR Apache-2.0](efx/LICENSE)).
157+
Questions, clarifications, or coordination requests:
158+

README.md

Lines changed: 8 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![EFX — Rust templating for egui/eframe](efx/docs/efx_cover.png)
1+
![EFX — Rust templating for egui/eframe](https://github.com/ZhukMax/efx/raw/main/efx/docs/efx_cover.png)
22

33
# EFx
44
[![Crates.io](https://img.shields.io/crates/v/efx.svg?color=green)](https://crates.io/crates/efx)
@@ -37,7 +37,7 @@ use efx::efx; // the macro
3737
---
3838

3939
### Documentation
40-
You can see on web page https://docs.rs/efx/latest/efx/ or in files:
40+
You can see on web page https://docs.rs/efx or in files:
4141

4242
- [Introduction](efx/docs/intro.md) ([🇫🇷 fr](efx/docs/fr/intro.md))
4343
- [Tags](efx/docs/tags.md) ([🇫🇷 fr](efx/docs/fr/tags.md))
@@ -176,65 +176,13 @@ Use the example in `examples/winit_wgpu_min.rs` as a starting point.
176176

177177
---
178178

179-
### Contributing
179+
### 🤝 Contributing
180180

181-
[![PRs Welcome](https://img.shields.io/badge/PullRequest-welcome-brightgreen.svg?style=flat-square)]()
182-
183-
**Thanks for considering a contribution!** Please follow this lightweight workflow:
184-
185-
#### 1) Pick or propose an issue
186-
187-
* **Claim an issue:** comment “I’d like to take this” (optionally add a brief plan/ETA).
188-
The maintainer will assign it to you.
189-
* **Propose a new issue:** open a ticket with a minimal reproducible example (for bugs) or a short rationale (for features).
190-
Start with the roadmap RFC: [EFX-0001](efx/docs/rfcs/EFX-0001-roadmap-0.5-0.7.md).
191-
192-
> Tip: issues labeled `good first issue` are designed for first-time contributors.
193-
194-
#### 2) Fork & branch
195-
196-
* Fork the repository and create a **feature branch from `main`**:
197-
198-
```bash
199-
git checkout main
200-
git pull
201-
git checkout -b feat/short-topic
202-
```
203-
* Keep your branch focused on **one issue**.
204-
205-
#### 3) Implement with tests & docs
206-
207-
* Make the change and add tests/docs where it makes sense.
208-
* Local checks (examples build-only; no GUI run is required):
209-
210-
```bash
211-
cargo fmt --all
212-
cargo clippy --all-targets -- -D warnings
213-
cargo build --workspace --locked
214-
cargo build -p efx --example eframe_demo --locked
215-
rustup target add wasm32-unknown-unknown
216-
cargo build -p efx --example eframe_demo --target wasm32-unknown-unknown --locked
217-
```
218-
219-
#### 4) Open a Pull Request
220-
221-
* Target the **next release branch** (e.g., `v0.6`, `v0.7`).
222-
If the issue has a **milestone**, use the branch named after that milestone.
223-
* Link the issue (e.g., “Closes #123”) and fill the checklist below.
224-
225-
**PR checklist**
226-
227-
* [ ] References the related issue / RFC section when behavior changes.
228-
* [ ] CI is green (workspace build, examples, wasm32 build-only).
229-
* [ ] Tests/docs updated where applicable.
230-
* [ ] No unrelated changes.
231-
232-
#### 5) Reviews & merge
233-
234-
* Address review comments; small, focused PRs get merged faster.
235-
* If you go silent for **7 days**, the issue may be unassigned to keep momentum (you can re-claim it anytime).
236-
237-
**Questions?** Reach out at [[email protected]](mailto:[email protected]).
181+
We welcome contributions from the community!
182+
Please read our [Contributing Guide](./CONTRIBUTING.md) for details on:
183+
- branching and PR rules,
184+
- issue creation and discussion process,
185+
- coding conventions and CI requirements.
238186

239187
---
240188

0 commit comments

Comments
 (0)