Skip to content

Commit b000442

Browse files
committed
Community Standards
1 parent 716a41b commit b000442

File tree

6 files changed

+336
-0
lines changed

6 files changed

+336
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Bug Report
2+
description: Report a bug in the Berlioz Framework
3+
labels: ["bug"]
4+
body:
5+
- type: dropdown
6+
id: package
7+
attributes:
8+
label: Package
9+
description: Which package is affected?
10+
options:
11+
- berlioz/core
12+
- berlioz/config
13+
- berlioz/service-container
14+
- berlioz/event-manager
15+
- berlioz/router
16+
- berlioz/http-core
17+
- berlioz/http-message
18+
- berlioz/http-client
19+
- berlioz/cli-core
20+
- berlioz/mailer
21+
- berlioz/form
22+
- berlioz/flash-bag
23+
- berlioz/html-selector
24+
- berlioz/queue-manager
25+
- berlioz/twig-package
26+
- berlioz/hector-package
27+
- berlioz/queue-manager-package
28+
- Other / Not sure
29+
validations:
30+
required: true
31+
32+
- type: input
33+
id: version
34+
attributes:
35+
label: Version
36+
description: Which version of Berlioz are you using?
37+
placeholder: "e.g. 3.0.0"
38+
validations:
39+
required: true
40+
41+
- type: textarea
42+
id: description
43+
attributes:
44+
label: Description
45+
description: A clear description of the bug.
46+
placeholder: What happened? What did you expect to happen?
47+
validations:
48+
required: true
49+
50+
- type: textarea
51+
id: reproduction
52+
attributes:
53+
label: Steps to reproduce
54+
description: How can we reproduce this bug?
55+
placeholder: |
56+
1. ...
57+
2. ...
58+
3. ...
59+
validations:
60+
required: true
61+
62+
- type: input
63+
id: php-version
64+
attributes:
65+
label: PHP version
66+
placeholder: "e.g. 8.2.15"
67+
validations:
68+
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: false
2+
contact_links:
3+
- name: Security vulnerability
4+
url: https://github.com/BerliozFramework/Berlioz/security/advisories/new
5+
about: Please report security vulnerabilities through GitHub Security Advisories.
6+
- name: Documentation
7+
url: https://getberlioz.com
8+
about: Check the documentation before opening an issue.
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Feature Request
2+
description: Suggest a new feature or improvement
3+
labels: ["enhancement"]
4+
body:
5+
- type: textarea
6+
id: problem
7+
attributes:
8+
label: Problem
9+
description: What problem are you trying to solve?
10+
placeholder: I'm frustrated when...
11+
validations:
12+
required: true
13+
14+
- type: textarea
15+
id: solution
16+
attributes:
17+
label: Proposed solution
18+
description: How would you like this to work?
19+
validations:
20+
required: true
21+
22+
- type: textarea
23+
id: alternatives
24+
attributes:
25+
label: Alternatives considered
26+
description: Any alternative solutions or workarounds you've considered?
27+
validations:
28+
required: false
29+
30+
- type: dropdown
31+
id: package
32+
attributes:
33+
label: Related package
34+
description: Which package is this related to?
35+
options:
36+
- berlioz/core
37+
- berlioz/config
38+
- berlioz/service-container
39+
- berlioz/event-manager
40+
- berlioz/router
41+
- berlioz/http-core
42+
- berlioz/http-message
43+
- berlioz/http-client
44+
- berlioz/cli-core
45+
- berlioz/mailer
46+
- berlioz/form
47+
- berlioz/flash-bag
48+
- berlioz/html-selector
49+
- berlioz/queue-manager
50+
- berlioz/twig-package
51+
- berlioz/hector-package
52+
- berlioz/queue-manager-package
53+
- Other / Not sure
54+
validations:
55+
required: false

.github/pull_request_template.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
## Description
2+
3+
<!-- What does this PR do? Why is it needed? -->
4+
5+
## Related issue
6+
7+
<!-- Link to the issue this PR addresses, e.g. Fixes #123 -->
8+
9+
## Checklist
10+
11+
- [ ] Tests added or updated
12+
- [ ] All tests pass (`vendor/bin/phpunit`)

CONTRIBUTING.md

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
# Contributing to Berlioz Framework
2+
3+
First off, thank you for considering contributing to the Berlioz Framework! Every contribution helps make Berlioz
4+
better for everyone.
5+
6+
## Monorepo
7+
8+
This repository is a **monorepo** that contains all official Berlioz packages. Sub-repositories (e.g.
9+
`berlioz/core`, `berlioz/router`, etc.) are **read-only mirrors** that are synchronized automatically.
10+
11+
**All contributions (bug reports, feature requests, pull requests) must be made on this repository.**
12+
13+
## Reporting bugs
14+
15+
Before opening a new issue, please check if a similar issue already exists.
16+
17+
When reporting a bug, please include:
18+
19+
- The PHP version you are using.
20+
- The Berlioz version (or commit hash).
21+
- A clear description of the expected behavior and what actually happened.
22+
- Steps to reproduce the issue, ideally with a minimal code example.
23+
24+
## Suggesting features
25+
26+
Feature requests are welcome. Open an issue with the `enhancement` label and describe:
27+
28+
- The problem you are trying to solve.
29+
- How you envision the solution.
30+
- Any alternatives you have considered.
31+
32+
## Pull requests
33+
34+
### Getting started
35+
36+
1. **Fork** the repository and clone your fork locally.
37+
2. Install dependencies:
38+
```bash
39+
composer install
40+
```
41+
3. Create a **new branch** from `main`:
42+
```bash
43+
git checkout -b my-feature
44+
```
45+
46+
### Coding standards
47+
48+
- PHP code must follow **PSR-12** coding style.
49+
- Use `declare(strict_types=1);` in every PHP file.
50+
- Indentation: 4 spaces for PHP files, 2 spaces for other files (see `.editorconfig`).
51+
- Maximum line length: 120 characters for PHP files.
52+
- Import classes with `use` statements; do not use fully qualified names in code.
53+
54+
### Tests
55+
56+
All changes must be covered by tests. The project uses **PHPUnit 11**.
57+
58+
```bash
59+
# Run the full test suite
60+
vendor/bin/phpunit
61+
62+
# Run tests for a specific package
63+
vendor/bin/phpunit --testsuite "Berlioz Router test suite"
64+
```
65+
66+
Make sure all tests pass before submitting your pull request:
67+
68+
```bash
69+
vendor/bin/phpunit --coverage-text
70+
```
71+
72+
### Static analysis
73+
74+
The project uses **Rector** for automated code quality checks:
75+
76+
```bash
77+
# Check for issues (dry run)
78+
vendor/bin/rector --dry-run
79+
80+
# Apply fixes
81+
vendor/bin/rector
82+
```
83+
84+
### Commit messages
85+
86+
- Use clear, descriptive commit messages.
87+
- Start with a short summary (max 72 characters).
88+
- Use the imperative mood ("Add feature", not "Added feature").
89+
- Reference related issues when applicable (e.g. `Fix #42`).
90+
91+
### Submitting
92+
93+
1. Make sure the test suite passes.
94+
2. Push your branch to your fork.
95+
3. Open a **pull request** against the `main` branch of this repository.
96+
4. Describe your changes clearly in the pull request description.
97+
5. Be prepared to address feedback during code review.
98+
99+
## Development setup
100+
101+
### Requirements
102+
103+
- PHP >= 8.2
104+
- Extensions: `fileinfo`, `intl`, `mbstring`, `xml`
105+
- Composer v2
106+
107+
### Optional extensions
108+
109+
Some packages require additional extensions for their full test suite:
110+
111+
- `yaml` -- Config YAML adapter
112+
- `amqp` -- Queue Manager AMQP driver
113+
- `redis` -- Queue Manager Redis driver
114+
- `curl` -- HTTP Client CURL adapter
115+
116+
## Code of conduct
117+
118+
Please be respectful and constructive in all interactions. We are committed to providing a welcoming and inclusive
119+
experience for everyone.
120+
121+
## Questions?
122+
123+
If you have any questions, feel free to open an issue or reach out via the project website at
124+
[getberlioz.com](https://getberlioz.com).

SECURITY.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Security Policy
2+
3+
## Supported versions
4+
5+
| Version | Supported |
6+
|---------|--------------------|
7+
| 3.x | Yes |
8+
| < 3.0 | No |
9+
10+
## Reporting a vulnerability
11+
12+
If you discover a security vulnerability within the Berlioz Framework, **please do not open a public issue**.
13+
14+
Instead, please use GitHub's built-in vulnerability reporting:
15+
16+
1. Go to the [**Security** tab](https://github.com/BerliozFramework/Berlioz/security) of this repository.
17+
2. Click **"Report a vulnerability"**.
18+
3. Fill in the advisory form with as much detail as possible.
19+
20+
When reporting, please include:
21+
22+
- A clear description of the vulnerability.
23+
- Steps to reproduce the issue or a proof of concept.
24+
- The affected package(s) and version(s).
25+
- The potential impact of the vulnerability.
26+
27+
## What to expect
28+
29+
- You will receive an acknowledgment within **48 hours**.
30+
- We will collaborate with you directly in the GitHub Security Advisory to understand and verify the issue.
31+
- A fix will be prepared and released as soon as possible, depending on the severity.
32+
- You will be credited in the release notes (unless you prefer to remain anonymous).
33+
34+
## Disclosure policy
35+
36+
We follow a **coordinated disclosure** process:
37+
38+
1. The vulnerability is reported privately.
39+
2. We confirm the issue and develop a fix.
40+
3. A new release is published with the fix.
41+
4. The vulnerability is publicly disclosed after the fix is available.
42+
43+
We ask that you **do not publicly disclose the vulnerability** until a fix has been released.
44+
45+
## Scope
46+
47+
This security policy covers all packages maintained in this monorepo:
48+
49+
- `berlioz/core`
50+
- `berlioz/config`
51+
- `berlioz/service-container`
52+
- `berlioz/event-manager`
53+
- `berlioz/router`
54+
- `berlioz/http-core`
55+
- `berlioz/http-message`
56+
- `berlioz/http-client`
57+
- `berlioz/cli-core`
58+
- `berlioz/mailer`
59+
- `berlioz/form`
60+
- `berlioz/flash-bag`
61+
- `berlioz/html-selector`
62+
- `berlioz/queue-manager`
63+
- `berlioz/twig-package`
64+
- `berlioz/hector-package`
65+
- `berlioz/queue-manager-package`
66+
67+
## Thank you
68+
69+
We appreciate your help in keeping the Berlioz Framework and its users safe.

0 commit comments

Comments
 (0)