Skip to content

Commit 83edd84

Browse files
authored
ci: improve pr/issue quality (#755)
1 parent 2cc0797 commit 83edd84

File tree

9 files changed

+279
-111
lines changed

9 files changed

+279
-111
lines changed

.coderabbit.yaml

Lines changed: 26 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,144 +1,60 @@
11
language: en-US
2-
tone_instructions: ''
3-
early_access: true
4-
enable_free_tier: true
2+
53
reviews:
6-
profile: assertive
7-
request_changes_workflow: false
8-
high_level_summary: true
9-
high_level_summary_instructions: ''
4+
# Review style + summary placement
5+
profile: chill
106
high_level_summary_placeholder: "<!-- coderabbit-summary -->"
11-
high_level_summary_in_walkthrough: false
12-
auto_title_placeholder: ''
13-
auto_title_instructions: ''
14-
review_status: true
15-
commit_status: true
16-
fail_commit_status: false
177
collapse_walkthrough: true
8+
9+
# Noise reduction (these default to true; we explicitly turn them off)
1810
changed_files_summary: false
1911
sequence_diagrams: false
2012
estimate_code_review_effort: false
21-
assess_linked_issues: true
22-
related_issues: true
23-
related_prs: true
13+
related_issues: false
14+
related_prs: false
2415
suggested_labels: false
25-
labeling_instructions: []
26-
auto_apply_labels: false
27-
suggested_reviewers: true
28-
auto_assign_reviewers: false
16+
suggested_reviewers: false
2917
in_progress_fortune: false
3018
poem: false
31-
path_filters: []
32-
path_instructions: []
33-
abort_on_close: true
34-
disable_cache: false
19+
enable_prompt_for_ai_agents: false
20+
21+
# Auto-review behavior
3522
auto_review:
36-
enabled: true
23+
drafts: true
3724
auto_incremental_review: true
38-
ignore_title_keywords: []
39-
labels: []
40-
drafts: false
4125
base_branches: [".*"]
42-
ignore_usernames: []
26+
27+
# Don’t auto-generate docstrings/tests (reduce chatter)
4328
finishing_touches:
4429
docstrings:
4530
enabled: false
4631
unit_tests:
47-
enabled: true
32+
enabled: false
33+
34+
# Don’t block merges on “process checks” (keep friction low)
4835
pre_merge_checks:
4936
docstrings:
5037
mode: off
51-
threshold: 80
5238
title:
5339
mode: off
54-
requirements: ''
5540
description:
5641
mode: off
5742
issue_assessment:
58-
mode: warning
59-
custom_checks: []
43+
mode: off
44+
45+
# Lightweight, high-signal tools for this repo
6046
tools:
61-
# Audited languages: Rust, Shell, TypeScript/JavaScript, Protobuf, Markdown, YAML, TOML, Makefile.
62-
ast-grep:
63-
rule_dirs: []
64-
util_dirs: []
65-
essential_rules: true
66-
packages: []
67-
shellcheck:
68-
enabled: true
6947
markdownlint:
7048
enabled: true
71-
github-checks:
72-
enabled: false
73-
timeout_ms: 90000
74-
languagetool:
75-
enabled: true
76-
enabled_rules: []
77-
disabled_rules: []
78-
enabled_categories: []
79-
disabled_categories: []
80-
enabled_only: false
81-
level: default
82-
biome:
83-
enabled: true
84-
yamllint:
85-
enabled: true
86-
gitleaks:
87-
enabled: true
88-
eslint:
89-
enabled: true
90-
buf:
91-
enabled: true
92-
actionlint:
93-
enabled: true
9449
semgrep:
9550
enabled: true
96-
clippy:
97-
enabled: true
98-
oxc:
99-
enabled: true
100-
dotenvLint:
101-
enabled: true
102-
checkmake:
103-
enabled: true
104-
osvScanner:
105-
enabled: true
51+
10652
chat:
53+
# We leave emoji/ASCII art, but no auto-replies
10754
art: true
108-
auto_reply: true
109-
integrations:
110-
jira:
111-
usage: auto
112-
linear:
113-
usage: auto
55+
auto_reply: false
56+
11457
knowledge_base:
115-
opt_out: false
58+
# Avoid web-search commentary in reviews
11659
web_search:
117-
enabled: true
118-
code_guidelines:
119-
enabled: true
120-
filePatterns: []
121-
learnings:
122-
scope: auto
123-
issues:
124-
scope: auto
125-
jira:
126-
usage: auto
127-
project_keys: []
128-
linear:
129-
usage: auto
130-
team_keys: []
131-
pull_requests:
132-
scope: auto
133-
mcp:
134-
usage: auto
135-
disabled_servers: []
136-
code_generation:
137-
docstrings:
138-
language: en-US
139-
path_instructions: []
140-
unit_tests:
141-
path_instructions: []
142-
issue_enrichment:
143-
planning:
144-
enabled: true
60+
enabled: false

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Bug
2+
description: Something is broken or incorrect
3+
title: "bug: "
4+
labels: ["bug"]
5+
body:
6+
- type: textarea
7+
id: report
8+
attributes:
9+
label: Report
10+
description: What happened + expected + minimal repro (in one block). Link logs if big.
11+
placeholder: |
12+
What happened:
13+
Expected:
14+
Repro:
15+
Logs/links:
16+
validations:
17+
required: true
18+
19+
- type: input
20+
id: version
21+
attributes:
22+
label: Commit / version
23+
placeholder: "git sha / tag"
24+
validations:
25+
required: true
26+
27+
- type: input
28+
id: env
29+
attributes:
30+
label: Environment
31+
placeholder: "OS/arch + how you run it (docker/native) + anything relevant"
32+
validations:
33+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: true
2+
contact_links:
3+
- name: Discussions
4+
url: https://github.com/magicblock-labs/magicblock-validator/discussions
5+
about: Q&A / ideas
6+
- name: Security
7+
url: https://github.com/magicblock-labs/magicblock-validator/security/policy
8+
about: Report privately

.github/ISSUE_TEMPLATE/docs.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Docs
2+
description: Docs missing, unclear, or wrong
3+
title: "docs: "
4+
labels: ["documentation"]
5+
body:
6+
- type: textarea
7+
id: docs
8+
attributes:
9+
label: Change
10+
description: Where + what to change.
11+
placeholder: |
12+
Location (file/URL):
13+
What’s wrong:
14+
Suggested change:
15+
validations:
16+
required: true

.github/ISSUE_TEMPLATE/feature.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Feature
2+
description: New capability or improvement
3+
title: "feat: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: textarea
7+
id: request
8+
attributes:
9+
label: Request
10+
description: Problem + proposal + acceptance criteria (keep it short).
11+
placeholder: |
12+
Problem:
13+
Proposal:
14+
Acceptance criteria:
15+
validations:
16+
required: true

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<!--
2+
PR title must match:
3+
type(scope): summary
4+
Types: feat|fix|docs|chore|refactor|test|perf|ci|build
5+
Examples:
6+
fix: avoid panic on empty slot
7+
feat(rpc): add getFoo endpoint
8+
-->
9+
10+
## Summary
11+
-
12+
13+
## Compatibility
14+
- [ ] No breaking changes
15+
- [ ] Config change (describe):
16+
- [ ] Migration needed (describe):
17+
18+
## Testing
19+
- [ ] tests (or explain)
20+
21+
## Checklist
22+
- [ ] docs updated (if needed)
23+
- [ ] linked issue: #

.github/workflows/ci-fmt.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ on:
1212

1313
jobs:
1414
run_make_ci_format:
15-
if: github.event.pull_request.draft == false
1615
runs-on: ubuntu-latest
1716
steps:
1817
- name: Checkout this magicblock-validator

CONTRIBUTING.md

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# Contributing to magicblock-validator
2+
3+
Thanks for contributing. This repository implements a high-performance, long-running solana execution engine.
4+
Correctness, determinism, and operational safety matter more than velocity.
5+
6+
Please keep contributions **small, explicit, and reviewable**.
7+
8+
---
9+
10+
## Scope & Philosophy
11+
12+
- Prefer **minimal changes** over broad refactors.
13+
- Avoid speculative abstractions.
14+
- Treat config, CLI flags, and on-disk formats as **public interfaces**.
15+
- Backward compatibility is the default.
16+
17+
If you are unsure whether a change belongs here, start a **Discussion**.
18+
19+
---
20+
21+
## Pull Requests
22+
23+
24+
### Title format
25+
PR titles must follow:
26+
27+
type(scope): short summary
28+
29+
Where:
30+
- `type``feat | fix | docs | chore | refactor | test | perf | ci | build`
31+
- `scope` is optional
32+
- use lowercase, no trailing period
33+
34+
Examples:
35+
- `fix: prevent panic on empty slot`
36+
- `feat(rpc): add account snapshot endpoint`
37+
38+
The PR title becomes the commit title when merged.
39+
40+
---
41+
42+
### Compatibility & Safety
43+
44+
Explicitly call out any of the following in the PR description:
45+
- config changes
46+
- migrations (disk, state, network, protocol)
47+
- behavior changes affecting operators
48+
49+
If none apply, mark the change as **non-breaking**.
50+
51+
---
52+
53+
### Testing
54+
55+
- Changes affecting correctness, consensus, or state handling **must** be tested.
56+
- Small refactors may rely on existing coverage; explain why if no new tests are added.
57+
- Performance-sensitive changes should include rationale or benchmarks where relevant.
58+
59+
---
60+
61+
## Commits
62+
63+
- Keep commits focused.
64+
- Avoid drive-by formatting or unrelated cleanups.
65+
- Squash merges are used; intermediate commit messages are not critical.
66+
67+
---
68+
69+
## Code Style
70+
71+
- Follow existing patterns.
72+
- Prefer explicitness over cleverness.
73+
- Avoid macros or unsafe code unless there is a clear, documented need.
74+
- Performance optimizations should be obvious and justified.
75+
76+
---
77+
78+
## Configs & Interfaces
79+
80+
Assume that:
81+
- config files
82+
- CLI flags
83+
- RPC / API surfaces
84+
- on-disk formats
85+
86+
are relied upon by external operators.
87+
88+
Changes here require:
89+
- documentation updates
90+
- compatibility notes in the PR
91+
- clear migration paths if breaking
92+
93+
---
94+
95+
## Security
96+
97+
If you believe you’ve found a security issue, **do not open a public issue**.
98+
Use the repository’s security policy instead.
99+
100+
---
101+
102+
## Questions & Ideas
103+
104+
- Use **Issues** for concrete, actionable work.
105+
- Use **Discussions** for design questions, ideas, or uncertain proposals.
106+
107+
---
108+
109+
Thanks for helping keep the codebase fast, predictable, and boring in the best way.

0 commit comments

Comments
 (0)