Skip to content

Commit e331515

Browse files
committed
Add GitHub community standards, issue/PR templates, and labels
1 parent 9006cea commit e331515

11 files changed

Lines changed: 304 additions & 0 deletions

File tree

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Bug report
2+
description: Something is broken or not working as expected
3+
title: "[Bug]: "
4+
labels:
5+
- bug
6+
body:
7+
- type: textarea
8+
id: issue
9+
attributes:
10+
label: What is the issue?
11+
description: Describe the bug clearly. Include backend (Celery / Dramatiq / Arq), versions, and error message if any.
12+
placeholder: |
13+
e.g. process_order.delay(OrderCreate(...)) raises TypeError on Celery 5.6...
14+
validations:
15+
required: true
16+
17+
- type: textarea
18+
id: decision
19+
attributes:
20+
label: Expected behavior / decision
21+
description: What should happen instead? What outcome do you want?
22+
placeholder: |
23+
e.g. delay() should accept the model without model_dump()
24+
validations:
25+
required: true
26+
27+
- type: textarea
28+
id: reproduce
29+
attributes:
30+
label: Steps to reproduce (optional)
31+
placeholder: Minimal code or commands to reproduce
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: false
2+
contact_links:
3+
- name: Documentation
4+
url: https://queuebridge.readthedocs.io
5+
about: Read the docs before opening an issue
6+
- name: PyPI
7+
url: https://pypi.org/project/queuebridge/
8+
about: Install the latest release
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Feature request
2+
description: Suggest an improvement or new capability
3+
title: "[Feature]: "
4+
labels:
5+
- enhancement
6+
body:
7+
- type: textarea
8+
id: issue
9+
attributes:
10+
label: What is the issue or idea?
11+
description: What problem are you solving? Which backend?
12+
placeholder: |
13+
e.g. Support allowed_modules filter on register_queuebridge...
14+
validations:
15+
required: true
16+
17+
- type: textarea
18+
id: decision
19+
attributes:
20+
label: Proposed decision / outcome
21+
description: What should we build or decide? Keep it concrete.
22+
placeholder: |
23+
e.g. Add allowed_modules=("myapp.",) parameter, document in security page
24+
validations:
25+
required: true
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Question
2+
description: Ask a question about usage or docs
3+
title: "[Question]: "
4+
labels:
5+
- question
6+
body:
7+
- type: textarea
8+
id: issue
9+
attributes:
10+
label: What is your question?
11+
description: What are you trying to do?
12+
validations:
13+
required: true
14+
15+
- type: textarea
16+
id: decision
17+
attributes:
18+
label: What answer or decision do you need?
19+
description: e.g. "Should I use typed_result or pydantic=True alone?"
20+
validations:
21+
required: true

‎.github/labels.yml‎

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# GitHub labels for queuebridge
2+
# Synced by .github/workflows/sync-labels.yml
3+
4+
- name: bug
5+
color: d73a4a
6+
description: Something isn't working
7+
8+
- name: enhancement
9+
color: a2eeef
10+
description: New feature or improvement
11+
12+
- name: documentation
13+
color: 0075ca
14+
description: Docs, README, or Read the Docs
15+
16+
- name: good first issue
17+
color: 7057ff
18+
description: Good for newcomers
19+
20+
- name: help wanted
21+
color: 008672
22+
description: Extra attention needed
23+
24+
- name: question
25+
color: d876e3
26+
description: Question or discussion
27+
28+
- name: celery
29+
color: 378805
30+
description: Celery backend
31+
32+
- name: dramatiq
33+
color: e99695
34+
description: Dramatiq backend
35+
36+
- name: arq
37+
color: bfd4f2
38+
description: Arq backend
39+
40+
- name: pydantic
41+
color: c5def5
42+
description: Pydantic models or validation
43+
44+
- name: codec
45+
color: fef2c0
46+
description: Core encode/decode wire format
47+
48+
- name: ci
49+
color: 1d76db
50+
description: CI, GitHub Actions, or release
51+
52+
- name: wontfix
53+
color: ffffff
54+
description: Will not be addressed
55+
56+
- name: duplicate
57+
color: cfd3d7
58+
description: Duplicate issue or PR

‎.github/pull_request_template.md‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
## Title
2+
3+
<!-- Short summary, e.g. "Fix Celery serializer for nested UUID fields" -->
4+
5+
## Description
6+
7+
<!-- What does this PR do and why? -->
8+
9+
## Related issue
10+
11+
<!-- Link issue if any, e.g. Fixes #123 -->
12+
13+
## Checklist
14+
15+
- [ ] Tests pass locally (`pytest`)
16+
- [ ] `ruff check .` and `mypy src` pass (if code changed)
17+
- [ ] Docs updated (if public API or behavior changed)

‎.github/workflows/sync-labels.yml‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Sync labels
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- .github/labels.yml
8+
- .github/workflows/sync-labels.yml
9+
workflow_dispatch:
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
sync:
16+
runs-on: ubuntu-latest
17+
permissions:
18+
issues: write
19+
steps:
20+
- uses: actions/checkout@v4
21+
- uses: micnncim/action-label-syncer@v1
22+
with:
23+
labels: .github/labels.yml
24+
repo-token: ${{ secrets.GITHUB_TOKEN }}
25+
delete-labels: false

‎CODE_OF_CONDUCT.md‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We pledge to make participation in queuebridge a harassment-free experience for everyone.
6+
7+
## Our Standards
8+
9+
Examples of behavior that contributes to a positive environment:
10+
11+
* Using welcoming and inclusive language
12+
* Being respectful of differing viewpoints and experiences
13+
* Gracefully accepting constructive criticism
14+
* Focusing on what is best for the community
15+
16+
Examples of unacceptable behavior:
17+
18+
* Trolling, insulting/derogatory comments, and personal or political attacks
19+
* Public or private harassment
20+
* Publishing others' private information without permission
21+
22+
## Enforcement
23+
24+
Report unacceptable behavior to the maintainers via GitHub Issues or by contacting the repository owner.
25+
26+
Maintainers may remove, edit, or reject comments, commits, issues, and other contributions that are not aligned with this Code of Conduct.
27+
28+
## Attribution
29+
30+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1.

‎CONTRIBUTING.md‎

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Contributing to queuebridge
2+
3+
Thanks for helping improve queuebridge!
4+
5+
## Quick start
6+
7+
1. Fork the repo and create a branch from `main`
8+
2. Install dev dependencies: `pip install -e ".[all,dev,docs]"`
9+
3. Make your changes
10+
4. Run checks:
11+
12+
```bash
13+
ruff check .
14+
mypy src
15+
pytest
16+
```
17+
18+
5. Open a pull request using the PR template
19+
20+
## What to contribute
21+
22+
* Bug fixes
23+
* Documentation improvements ([docs](https://queuebridge.readthedocs.io))
24+
* Tests for edge cases
25+
* Backend adapter improvements (Celery, Dramatiq, Arq)
26+
27+
## Pull requests
28+
29+
* Keep PRs focused (one concern per PR)
30+
* Add tests when fixing bugs or adding behavior
31+
* Update docs if you change public API
32+
* Follow existing code style (ruff, mypy strict)
33+
34+
## Issues
35+
36+
Before opening a PR for a large change, open an issue to discuss it.
37+
38+
Use the issue templates. Keep it simple: **what the issue is** and **what decision or outcome you want**.
39+
40+
## Labels
41+
42+
Look for [`good first issue`](https://github.com/false200/queuebridge/labels/good%20first%20issue) if you are new to the project.
43+
44+
## Code of Conduct
45+
46+
This project follows the [Code of Conduct](CODE_OF_CONDUCT.md).

‎README.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,3 +310,10 @@ Deserialization resolves types by fully-qualified name (`import_fqn`). **Only de
310310
## License
311311

312312
MIT. See [LICENSE](LICENSE).
313+
314+
## Community
315+
316+
* [Contributing](CONTRIBUTING.md)
317+
* [Code of Conduct](CODE_OF_CONDUCT.md)
318+
* [Security policy](SECURITY.md)
319+
* [Documentation](https://queuebridge.readthedocs.io)

0 commit comments

Comments
 (0)