Skip to content

Commit db88af4

Browse files
committed
docs: Update contribution guidelines
Signed-off-by: Thomas Vitale <ThomasVitale@users.noreply.github.com>
1 parent 5341393 commit db88af4

7 files changed

Lines changed: 54 additions & 112 deletions

File tree

.github/ISSUE_TEMPLATE/00-bug-report.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ body:
4444
id: "what-steps-taken"
4545
attributes:
4646
label: "What steps did you take"
47-
description: "A clear and concise description steps that can be used to reproduce the problem."
47+
description: "A clear and concise description of steps that can be used to reproduce the problem."
4848
validations:
4949
required: true
5050
- type: "textarea"
@@ -82,7 +82,7 @@ body:
8282
options:
8383
- label: "I assert that this is a bug and not a support request. If you need assistance, please use [GitHub Discussions](https://github.com/arconia-io/arconia/discussions)."
8484
required: true
85-
- label: "I assert that this is not a [duplicate of an existing issue](https://github.com/arconia-io/arconia/issues). "
85+
- label: "I assert that this is not a [duplicate of an existing issue](https://github.com/arconia-io/arconia/issues)."
8686
required: true
8787
- label: "I assert that I have read the [Arconia Code of Conduct](https://github.com/arconia-io/arconia/blob/main/CODE_OF_CONDUCT.md) and agree to abide by it."
8888
required: true

.github/ISSUE_TEMPLATE/10-dev-service-request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ body:
3939
options:
4040
- label: "I assert that this Dev Service does not yet exist in an [open pull request](https://github.com/arconia-io/arconia/pulls)."
4141
required: true
42-
- label: "I assert that this is not a [duplicate of an existing issue](https://github.com/arconia-io/arconia/issues). "
42+
- label: "I assert that this is not a [duplicate of an existing issue](https://github.com/arconia-io/arconia/issues)."
4343
required: true
4444
- label: "I assert that I have read the [Arconia Code of Conduct](https://github.com/arconia-io/arconia/blob/main/CODE_OF_CONDUCT.md) and agree to abide by it."
4545
required: true

.github/ISSUE_TEMPLATE/90-feature-request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ body:
4040
options:
4141
- label: "I assert that this is a feature request and not a support request. If you need assistance, please use [GitHub Discussions](https://github.com/arconia-io/arconia/discussions)."
4242
required: true
43-
- label: "I assert that this is not a [duplicate of an existing issue](https://github.com/arconia-io/arconia/issues). "
43+
- label: "I assert that this is not a [duplicate of an existing issue](https://github.com/arconia-io/arconia/issues)."
4444
required: true
4545
- label: "I assert that I have read the [Arconia Code of Conduct](https://github.com/arconia-io/arconia/blob/main/CODE_OF_CONDUCT.md) and agree to abide by it."
4646
required: true

.github/ISSUE_TEMPLATE/95-other.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,17 @@ body:
1111
placeholder: Describe your issue here...
1212
validations:
1313
required: true
14+
- type: "checkboxes"
15+
id: "sanity-check"
16+
attributes:
17+
label: "I assert that this issue is relevant for Arconia"
18+
options:
19+
- label: "I assert that this is not a [duplicate of an existing issue](https://github.com/arconia-io/arconia/issues)."
20+
required: true
21+
- label: "I assert that I have read the [Arconia Code of Conduct](https://github.com/arconia-io/arconia/blob/main/CODE_OF_CONDUCT.md) and agree to abide by it."
22+
required: true
23+
- type: "markdown"
24+
attributes:
25+
value: |
26+
Thank you for helping improve Arconia!
27+
---

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
_Thank you for helping improve Arconia and take time to contribute this pull request!_
22

3+
_Please ensure the PR title follows [Conventional Commits](https://www.conventionalcommits.org/) format (e.g. `feat(core): Add new feature`)._
4+
35
## Description
46

57
_Please include a summary of the change and which issue is fixed. If the issue doesn't exist, please create one._

CONTRIBUTING.md

Lines changed: 34 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1,164 +1,90 @@
11
# Contributing to Arconia
22

3-
Thank you for considering contributing to Arconia! We appreciate your time and effort in helping make the project better. These guidelines aim to streamline the contribution process, ensure clarity in communication, and align your efforts with the project's goals.
4-
5-
Arconia is an open-source project that welcomes contributions from everyone. Whether it's reporting bugs, suggesting features, improving documentation, or submitting code changes via pull requests, your input is valuable. Please follow these guidelines to ensure a smooth and efficient collaboration.
6-
7-
## Table of Contents
8-
9-
- [Ground Rules](#ground-rules)
10-
- [Getting Started: Prerequisites](#getting-started-prerequisites)
11-
- [Contribution Workflow: Issues and Pull Requests](#contribution-workflow-issues-and-pull-requests)
12-
- [Reporting Bugs and Suggesting Features](#reporting-bugs-and-suggesting-features)
13-
- [Asking Support Questions](#asking-support-questions)
14-
- [Reporting Security Vulnerabilities](#reporting-security-vulnerabilities)
15-
- [Development Guidelines](#development-guidelines)
16-
- [Code Style](#code-style)
17-
- [Commit Messages](#commit-messages)
18-
- [Signing Commits](#signing-commits)
19-
- [Developer Certificate of Origin (DCO) Sign-off](#developer-certificate-of-origin-dco-sign-off)
20-
- [Code of Conduct](#code-of-conduct)
3+
Thank you for your interest in contributing! Whether it's reporting bugs, suggesting features, improving documentation, or submitting code, your input is welcome and valued.
214

225
## Ground Rules
236

24-
* **Be Respectful**. Interact politely and respectfully with everyone in the community. Adhere to the [Arconia Code of Conduct](CODE_OF_CONDUCT.md).
25-
* **Discuss First**. For any non-trivial changes (more than fixing a typo), **please open a [GitHub Issue](https://github.com/arconia-io/arconia/issues/new/choose) first.** Discuss your proposed changes and get feedback before starting work. This prevents wasted effort and ensures alignment. Failure to do so might result in your pull request being rejected.
26-
* **Use Discussions for Questions**. For general questions or help, please use [GitHub Discussions](https://github.com/arconia-io/arconia/discussions).
27-
* **Focused Pull Requests**. Keep each pull request focused on a single issue or feature. Link the PR to the corresponding issue (e.g., `Fixes #123` or `Closes gh-XXXX` in the PR description).
28-
29-
## Getting Started: Prerequisites
7+
* **Be Respectful.** Adhere to the [Code of Conduct](CODE_OF_CONDUCT.md).
8+
* **Discuss First.** For non-trivial changes, [open an issue](https://github.com/arconia-io/arconia/issues/new/choose) before starting work. PRs without a prior discussion may be rejected.
9+
* **Use Discussions for Questions.** The issue tracker is not for support questions. Use [GitHub Discussions](https://github.com/arconia-io/arconia/discussions) instead.
10+
* **Focused PRs.** Each pull request should address a single issue or feature, linked to the corresponding issue (e.g., `Fixes #123`).
11+
* **Security Vulnerabilities.** Report them responsibly via the [Security Policy](SECURITY.md). Do **not** open a public issue.
3012

31-
Before you start contributing code, ensure you have:
13+
## Prerequisites
3214

33-
* Java 21 or later installed.
15+
* Java 21+ installed.
3416
* A container runtime compatible with Testcontainers (e.g., [Podman Desktop](https://podman-desktop.io), [Docker Desktop](https://www.docker.com/products/docker-desktop/)).
3517

36-
## Contribution Workflow: Issues and Pull Requests
18+
## Contribution Workflow
3719

38-
Contributions are made via GitHub Pull Requests. Here’s the typical workflow:
39-
40-
1. **Find or Create an Issue**. Ensure a [GitHub Issue](https://github.com/arconia-io/arconia/issues) exists for the bug or feature you want to address. If not, create one to discuss the change first (see [Ground Rules](#ground-rules)).
41-
2. **Fork and Clone**. Fork the `arconia-io/arconia` repository on GitHub and clone your fork locally:
20+
1. **Find or create an issue.** Ensure a [GitHub Issue](https://github.com/arconia-io/arconia/issues) exists for the change you want to make.
21+
2. **Fork and clone** the repository:
4222
```shell
4323
git clone https://github.com/<your-username>/arconia.git
4424
cd arconia
4525
```
46-
3. **Create a Branch**. Create a descriptive branch for your changes off the `main` branch:
26+
3. **Create a branch** off `main`:
4727
```shell
48-
git checkout -b my-descriptive-feature-branch main
28+
git checkout -b my-feature-branch main
4929
```
50-
4. **Implement Changes**. Make your code changes. Follow the [Code Style](#code-style) guidelines.
51-
5. **Add Tests**. Write unit or integration tests covering your changes.
52-
6. **Update Documentation**. If necessary, update documentation in the `docs/` directory.
53-
7. **Build and Test Locally**. Ensure everything builds and all tests pass:
30+
4. **Implement your changes.** Follow the [code style](#code-style) guidelines, add tests, and update documentation in `docs/` if needed.
31+
5. **Build and test locally:**
5432
```shell
5533
./gradlew build
5634
```
57-
* **Commit Changes**. Commit your work using descriptive messages that follow the [Commit Messages](#commit-messages) format. Crucially, ensure your commits are signed off (see [Signing Commits](#signing-commits)).
35+
6. **Commit** using [Conventional Commits](#commit-messages) format with a [DCO sign-off](#dco-sign-off):
5836
```shell
59-
git add .
60-
git commit -s -m "feat(core): Implement the new feature"
37+
git commit -s -m "feat(core): Add new feature"
6138
```
62-
9. **Keep Branch Updated**. Before pushing, and periodically during development, update your branch with the latest changes from the upstream `main` branch using rebase (NEVER merge):
39+
7. **Keep your branch updated** via rebase (never merge):
6340
```shell
64-
# Add upstream remote if you haven't already
65-
git remote add upstream https://github.com/arconia-io/arconia.git
66-
67-
# Fetch latest changes and rebase your branch
6841
git fetch upstream
6942
git rebase upstream/main
70-
# Resolve any conflicts if they occur
7143
```
72-
10. **Push to Your Fork**. Push your branch to your fork. Use `--force-with-lease` if you rebased or amended commits:
73-
```shell
74-
git push origin my-descriptive-feature-branch --force-with-lease
75-
```
76-
11. **Open a Pull Request**.
77-
* Navigate to the `arconia-io/arconia` repository on GitHub.
78-
* Click "New pull request" and choose to compare across forks, selecting your fork and branch.
79-
* Target the `main` branch of `arconia-io/arconia`.
80-
* Ensure the PR title follows the [Commit Messages](#commit-messages) format.
81-
* Fill out the pull request template, clearly describing the changes and linking the related issue (e.g., `Fixes #123`).
82-
12. **Code Review:** Project maintainers will review your PR. Address any feedback by making changes on your branch, committing them (signed-off), and pushing again. The PR will update automatically.
83-
13. **Merge**. Once the PR is approved and all checks pass, a maintainer will merge it. Congratulations and thank you for your contribution!
44+
8. **Push and open a PR** targeting `main`. Ensure the PR title follows [Conventional Commits](#commit-messages) format and fill out the PR template.
45+
9. **Address review feedback.** Maintainers will review your PR. Push additional signed-off commits as needed.
8446

8547
## Reporting Bugs and Suggesting Features
8648

87-
Use our [GitHub Issues](https://github.com/arconia-io/arconia/issues/new/choose) page to report bugs or suggest features, selecting the appropriate template:
49+
Use [GitHub Issues](https://github.com/arconia-io/arconia/issues/new/choose) with the appropriate template:
8850

8951
* **Bugs:** Use the **"Bug: Generic"** template.
9052
* **Features:** Use the **"Request: Feature"** template.
9153
* **Dev Services:** Use the **"Request: Dev Service"** template.
9254

93-
Before submitting:
94-
95-
1. Search existing issues to avoid duplicates.
96-
2. For bugs, ensure it's reproducible with the latest version.
97-
3. Provide clear descriptions and follow the template instructions.
98-
4. Remember to discuss significant changes *before* starting implementation (see [Ground Rules](#ground-rules)).
99-
100-
## Asking Support Questions
101-
102-
Please **do not** use the issue tracker for support questions. Use [GitHub Discussions](https://github.com/arconia-io/arconia/discussions) instead.
103-
104-
## Reporting Security Vulnerabilities
105-
106-
If you discover a security vulnerability, report it responsibly by following the instructions in our [Security Policy](SECURITY.md). **Do NOT open a public issue or disclose it publicly.**
55+
Before submitting, search existing issues to avoid duplicates and ensure bugs are reproducible with the latest version.
10756

10857
## Development Guidelines
10958

11059
### Code Style
11160

112-
* The project uses [.editorconfig](/.editorconfig) to define basic code formatting. Please ensure your editor respects this file.
113-
* Use explicit imports; avoid wildcard (`*`) imports.
114-
* Follow the existing sorting order when adding items to lists (usually alphabetical).
61+
* The project uses [.editorconfig](/.editorconfig) for formatting. Ensure your editor respects it.
62+
* Use explicit imports (no wildcards).
63+
* Follow existing alphabetical sorting conventions.
11564

11665
### Commit Messages
11766

118-
We follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification for PR titles and commit messages. This aids automated releases and improves history readability.
67+
We follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for both commit messages and PR titles.
11968

120-
Format:
12169
```
12270
<type>[optional scope]: <description>
123-
124-
[optional body]
125-
126-
[optional footer(s)]
12771
```
12872

129-
* **Types**: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `build`, `ci`, `chore`, `revert`, `deps`.
130-
* **Scopes** (optional, relate to project modules): `core`, `dev`, `k8s`, `multitenancy`, `otel`. Do not include a scope if the change doesn't relate to one of these modules.
131-
* **Description**: Use present tense ("Add feature", not "Added feature") and imperative mood ("Move cursor", not "Moves cursor").
132-
* **Breaking Changes**: Indicate breaking changes with `BREAKING CHANGE:` in the footer or by appending `!` after the type/scope (e.g., `feat(core)!:`).
73+
* **Types:** `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `build`, `ci`, `chore`, `revert`, `deps`.
74+
* **Scopes** (optional, relate to project modules): `core`, `dev`, `k8s`, `multitenancy`, `otel`. Omit scope if the change doesn't relate to one of these modules.
75+
* **Style:** Present tense, imperative mood (e.g., "Add feature", not "Added feature").
76+
* **Breaking changes:** Append `!` after the type/scope (e.g., `feat(core)!:`) or add `BREAKING CHANGE:` in the footer.
13377
13478
Example: `fix(dev): Correct handling of container startup timeout`
13579
136-
The Pull Request title *must* also follow this convention.
137-
138-
### Signing Commits
139-
140-
All commits contributed to Arconia must be **signed-off**, attesting to the [Developer Certificate of Origin (DCO)](#developer-certificate-of-origin-dco-sign-off).
141-
142-
Commits lacking sign-off will block merging.
143-
144-
#### Developer Certificate of Origin (DCO) Sign-off
145-
146-
The DCO certifies you have the right to submit your contribution.
80+
### DCO Sign-off
14781
148-
The easiest way to sign-off a commit is using the `-s` flag:
82+
All commits must include a [Developer Certificate of Origin](dco.txt) sign-off. Commits without it will block merging.
14983
15084
```shell
85+
# Sign-off a new commit
15186
git commit -s -m "Your commit message"
152-
```
153-
154-
To add a sign-off to your *last* commit if you forgot:
15587
156-
```shell
88+
# Add sign-off to the last commit
15789
git commit --amend -s --no-edit
15890
```
159-
160-
For older commits, use interactive rebase (`git rebase -i`).
161-
162-
## Code of Conduct
163-
164-
All participants in the Arconia community are expected to adhere to our [Code of Conduct](CODE_OF_CONDUCT.md). Please read it to understand the expected standards of behavior. Treat everyone with respect and kindness.

0 commit comments

Comments
 (0)