Skip to content

Commit ea07523

Browse files
committed
Add GitHub community and maintenance files
1 parent 390d93e commit ea07523

10 files changed

Lines changed: 299 additions & 1 deletion

File tree

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
name: Bug report
3+
about: Report a reproducible problem in the runner, examples, reports, or dashboards.
4+
title: "Bug: "
5+
labels: bug
6+
assignees: ""
7+
---
8+
9+
## Summary
10+
11+
What happened?
12+
13+
## Steps To Reproduce
14+
15+
1.
16+
2.
17+
3.
18+
19+
## Expected Behavior
20+
21+
What did you expect to happen?
22+
23+
## Actual Behavior
24+
25+
What happened instead?
26+
27+
## Environment
28+
29+
- OS:
30+
- .NET SDK:
31+
- Docker runtime:
32+
- ScenarioBench commit:
33+
34+
## Logs Or Artifacts
35+
36+
Paste relevant CLI output, `comparison.md`, or Grafana/InfluxDB details.
37+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
name: Feature request
3+
about: Suggest an improvement or new capability.
4+
title: "Feature: "
5+
labels: enhancement
6+
assignees: ""
7+
---
8+
9+
## Summary
10+
11+
What should ScenarioBench support?
12+
13+
## Use Case
14+
15+
Why is this useful?
16+
17+
## Proposed Shape
18+
19+
Describe the config, command, report, dashboard, or workflow you expect.
20+
21+
## Alternatives Considered
22+
23+
What other approaches did you consider?
24+
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
name: Scenario request
3+
about: Propose a benchmark scenario or workload profile.
4+
title: "Scenario: "
5+
labels: scenario
6+
assignees: ""
7+
---
8+
9+
## Scenario Goal
10+
11+
What behavior should this benchmark exercise?
12+
13+
## Target Shape
14+
15+
- Target type: local / Docker / stage / other
16+
- Endpoint or workflow:
17+
- Expected success criteria:
18+
19+
## Load Profile
20+
21+
- Rate:
22+
- Duration:
23+
- Warmup:
24+
- Ramp/stress/spike/soak needs:
25+
26+
## Validation
27+
28+
What should be checked after the run?
29+

.github/pull_request_template.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
## Summary
2+
3+
Describe the change.
4+
5+
## Changes
6+
7+
-
8+
9+
## Verification
10+
11+
Commands run:
12+
13+
```bash
14+
15+
```
16+
17+
## Notes / Limitations
18+
19+
Anything reviewers should know?
20+

.github/workflows/ci.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
11+
jobs:
12+
build:
13+
name: Build
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
20+
- name: Setup .NET
21+
uses: actions/setup-dotnet@v4
22+
with:
23+
dotnet-version: "10.0.x"
24+
25+
- name: Restore
26+
run: dotnet restore ScenarioBench.sln
27+
28+
- name: Build
29+
run: dotnet build ScenarioBench.sln --no-restore -m:1 -v:minimal
30+

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,8 @@ nunit-*.xml
7070
!.env.example
7171

7272
# Rider/ReSharper user settings
73-
*.DotSettings.user
73+
*.DotSettings.user
74+
75+
# Local AI handoff/context files
76+
AI_CONTEXT.md
77+
AI_*_CONTEXT.md

CONTRIBUTING.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Contributing
2+
3+
Thanks for considering a contribution to ScenarioBench.
4+
5+
This project is early, so small focused pull requests are easier to review than
6+
large redesigns.
7+
8+
## Development Setup
9+
10+
Requirements:
11+
12+
- .NET 10 SDK
13+
- Docker-compatible runtime, for example OrbStack or Docker Desktop
14+
15+
Build:
16+
17+
```bash
18+
dotnet restore ScenarioBench.sln
19+
dotnet build ScenarioBench.sln --no-restore -m:1 -v:minimal
20+
```
21+
22+
Run the demo:
23+
24+
```bash
25+
docker compose -f examples/docker-compose.observability.yml up -d
26+
docker compose -f examples/docker-compose.demo.yml up -d --build
27+
28+
dotnet run --project src/ScenarioBench.Cli -- \
29+
--config examples/http-smoke.json \
30+
--infra-config examples/infra/influxdb.json
31+
```
32+
33+
## Pull Requests
34+
35+
Before opening a PR:
36+
37+
- keep the change focused;
38+
- update docs when workflow/config changes;
39+
- include verification commands in the PR description;
40+
- avoid committing local artifacts, secrets, IDE files, or private target details.
41+
42+
## Public Repo Boundary
43+
44+
This repository must stay generic and public-safe.
45+
46+
Do not add:
47+
48+
- private endpoints;
49+
- auth secrets or tokens;
50+
- private database schemas;
51+
- real production payloads;
52+
- company-specific infrastructure details.
53+
54+
Project-specific adapters and sensitive benchmark scenarios should live in a
55+
private repository.
56+

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,3 +331,11 @@ details, or real Unicorn payloads.
331331

332332
Unicorn-specific scenarios, auth, seed data, Docker overrides, and audit
333333
validation belong in a future private scenario adapter repository.
334+
335+
## Contributing
336+
337+
See [CONTRIBUTING.md](CONTRIBUTING.md) for local setup and pull request
338+
guidelines.
339+
340+
For repository labels, issue style, and maintainer workflow, see
341+
[docs/MAINTAINER_GUIDE.md](docs/MAINTAINER_GUIDE.md).

SECURITY.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
ScenarioBench is pre-1.0. Security fixes are handled on the `main` branch.
6+
7+
## Reporting A Vulnerability
8+
9+
Please do not open a public issue for secrets, credential leaks, or exploitable
10+
security problems.
11+
12+
Open a private security advisory on GitHub if available, or contact the
13+
maintainer directly.
14+
15+
## Public Repo Boundary
16+
17+
Do not include secrets, private endpoints, auth flows, real payloads, database
18+
schemas, or operational details in public issues, pull requests, examples, or
19+
documentation.
20+

docs/MAINTAINER_GUIDE.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Maintainer Guide
2+
3+
This guide is for maintaining the public GitHub repository.
4+
5+
## Suggested Labels
6+
7+
Create these labels in GitHub:
8+
9+
| Label | Purpose |
10+
| --- | --- |
11+
| `bug` | Something is broken. |
12+
| `enhancement` | New feature or improvement. |
13+
| `docs` | Documentation work. |
14+
| `scenario` | Benchmark scenario or workload work. |
15+
| `observability` | Grafana, InfluxDB, metrics, dashboards. |
16+
| `runner` | CLI, config parsing, NBomber execution. |
17+
| `docker` | Docker/Compose target or stack changes. |
18+
| `good first issue` | Small scoped issue for new contributors. |
19+
| `help wanted` | Maintainer wants outside input. |
20+
| `question` | Needs clarification or discussion. |
21+
22+
## Suggested Milestones
23+
24+
Initial milestones:
25+
26+
- `MVP`
27+
- `Serious Benchmarking`
28+
- `Observability`
29+
- `Scenario Packs`
30+
- `Docs`
31+
32+
## Issue Style
33+
34+
Good issues should include:
35+
36+
- what is needed;
37+
- why it matters;
38+
- expected behavior;
39+
- rough implementation notes if known;
40+
- verification criteria.
41+
42+
Example:
43+
44+
```md
45+
## Goal
46+
47+
Add ramping load profile support to benchmark config.
48+
49+
## Why
50+
51+
Baseline runs need constant load, but stress tests need increasing load.
52+
53+
## Acceptance Criteria
54+
55+
- Config supports constant and ramping profiles.
56+
- README includes an example.
57+
- Existing http-smoke config still works.
58+
- `dotnet build ScenarioBench.sln --no-restore -m:1 -v:minimal` passes.
59+
```
60+
61+
## Pull Request Review
62+
63+
Review priority:
64+
65+
1. Correctness and reproducibility.
66+
2. Public repo safety.
67+
3. Clear config/report behavior.
68+
4. Docs and examples.
69+
5. Code style.
70+

0 commit comments

Comments
 (0)