Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: "🐞 Bug report"
description: "Report a reproducible problem with the library"
type: Bug
labels:
- status:needs-triage

body:
- type: markdown
attributes:
value: |
**Thanks for taking the time to file a bug!**
Please complete **all required sections**—incomplete reports will be sent back for more information.

- type: checkboxes
id: confirmations
attributes:
label: "Before submitting"
options:
- label: "I'm using the **latest released** version of the library"
required: true
- label: "I've searched [open issues](issues?q=is%3Aissue%20state%3Aopen%20type%3ABug) and found no duplicate"
required: true

- type: textarea
id: description
attributes:
label: "Describe the bug, tell us what went wrong"
placeholder: "A clear and concise description of what went wrong. What did you expect to happen vs. what actually happened."
validations:
required: true

- type: textarea
id: reproduction
attributes:
label: "Reproduction snippet"
description: "How can we reproduce the bug?"
placeholder: |
Provide the cli command that reproduces the bug:
```bash
# paste command here
```
or the smallest possible script that reproduces the bug:
```python
# paste code here
```
validations:
required: false

- type: input
id: lib_version
attributes:
label: "Library version"
placeholder: "e.g. 1.4.2"
validations:
required: true

- type: input
id: python_version
attributes:
label: "Python version"
placeholder: "e.g. 3.12.0"
validations:
required: true

- type: input
id: os
attributes:
label: "Operating system"
placeholder: "e.g. Ubuntu 22.04 LTS / MacOS 14.3"
validations:
required: false

- type: textarea
id: logs
attributes:
label: "Stack trace / error output"
description: "Paste any relevant logs here."
render: shell
validations:
required: false

- type: textarea
id: extra
attributes:
label: "Additional context & screenshots"
placeholder: "Anything else that might help us debug."
validations:
required: false

- type: dropdown
id: contribution
attributes:
label: Would you like to help fix this issue?
description: We welcome contributions and can provide guidance for first-time contributors!
options:
- "Not at this time"
- "Yes, I'd like to contribute"
validations:
required: true
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: 💬 Ask a question
url: https://github.com/Pipelex/kajson/discussions
about: "Please start a Discussion instead of filing a blank issue."
56 changes: 56 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: "✨ Feature request"
description: "Suggest an idea or improvement for the library"
type: Feature
labels:
- status:needs-triage

body:
- type: markdown
attributes:
value: |
**Thanks for contributing an idea!**
Please fill in the sections below so we can understand and prioritise your request.

- type: checkboxes
id: confirmations
attributes:
label: "Before submitting"
options:
- label: "I've searched [open issues](issues?q=is%3Aissue%20state%3Aopen%20type%3AFeature) and found no similar request"
required: true
- label: "I'm willing to start a discussion or contribute code"
required: false

- type: textarea
id: problem
attributes:
label: "Problem / motivation"
placeholder: "What problem does this feature solve? Who is affected and why?"
validations:
required: true

- type: textarea
id: proposal
attributes:
label: "Proposed solution"
placeholder: "Describe the feature you'd like to see."
validations:
required: false

- type: textarea
id: alternatives
attributes:
label: "Alternatives considered"
placeholder: "Any work-arounds you've tried or other approaches you considered."
validations:
required: false

- type: dropdown
id: contribution
attributes:
label: Would you like to help implement this feature?
options:
- "Not at this time"
- "Yes, I'd like to contribute"
validations:
required: false
50 changes: 50 additions & 0 deletions .github/ISSUE_TEMPLATE/general.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: "📝 General issue"
description: "Use this for questions, docs tweaks, refactors, or anything that isn't a Bug or Feature request."
type: Task
labels:
- status:needs-triage

body:
- type: markdown
attributes:
value: |
**Thanks for opening an issue!**
This form is for ideas or tasks that don't fit the Bug or Feature templates.

- type: checkboxes
id: confirmations
attributes:
label: "Before submitting"
options:
- label: "I've checked [open issues](issues?q=is%3Aissue%20state%3Aopen) and found no similar item"
required: true
- label: "It's not really a bug report or a feature request"
required: false

- type: textarea
id: summary
attributes:
label: "What would you like to discuss or change?"
placeholder: |
A clear, concise description of the question, enhancement, refactor, or documentation update.
validations:
required: true

- type: textarea
id: context
attributes:
label: "Relevant context (optional)"
placeholder: |
Links, screenshots, or any additional details that will help us understand.
validations:
required: false

- type: dropdown
id: contribution
attributes:
label: Would you like to help drive or implement this?
options:
- "Not at this time"
- "Yes, I'd like to contribute"
validations:
required: false
97 changes: 97 additions & 0 deletions .github/kajson_labels.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
[
{
"name": "priority:P0",
"color": "B60205",
"description": "Critical — stop the line"
},
{
"name": "priority:P1",
"color": "D93F0B",
"description": "High priority"
},
{
"name": "priority:P2",
"color": "E36209",
"description": "Normal priority"
},
{
"name": "priority:P3",
"color": "FBCA04",
"description": "Low priority"
},
{
"name": "status:needs-triage",
"color": "A2BFFC",
"description": "Awaiting triage"
},
{
"name": "status:needs-info",
"color": "1E90FF",
"description": "Needs more information"
},
{
"name": "status:blocked",
"color": "004385",
"description": "Work is blocked"
},
{
"name": "status:in-progress",
"color": "0969DA",
"description": "Currently being worked on"
},
{
"name": "status:review",
"color": "6CA4F8",
"description": "Awaiting code review"
},
{
"name": "status:done",
"color": "14866D",
"description": "Completed / merged"
},
{
"name": "status:duplicate",
"color": "6F42C1",
"description": "May close as soon as it's verified."
},
{
"name": "status:not-planned",
"color": "6A737D",
"description": "Signals a likely won't-fix before formal closure."
},
{
"name": "status:invalid",
"color": "E4E669",
"description": "Needs more info or out of scope."
},
{
"name": "area:core",
"color": "005630",
"description": "Core library logic"
},
{
"name": "area:examples",
"color": "005630",
"description": "Examples"
},
{
"name": "area:docs",
"color": "28A745",
"description": "Documentation"
},
{
"name": "area:tests",
"color": "7FDA9E",
"description": "Unit / integration / e2e tests"
},
{
"name": "good first issue",
"color": "FFD33D",
"description": "Great for new contributors"
},
{
"name": "help wanted",
"color": "FFEA7F",
"description": "Maintainers would love help"
}
]
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,4 @@ jobs:
run: uv pip install -e ".[docs]"

- name: Deploy documentation
run: make doc-deploy
run: make docs-deploy
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Changelog

## Unreleased

### 🚀 New Features

- **GitHub Issue Templates**: Added bug report, feature request, and general issue templates to GitHub repository for better issue management
- **API Documentation**: Added KajsonManager API reference documentation (Issue #26)

### 📝 Changes

- **Makefile Updates**: Renamed 'doc' targets to 'docs', including 'docs-check' and 'docs-deploy' for better consistency
- **UniversalJSONEncoder Cleanup**: Removed unused logger from UniversalJSONEncoder class (Issue #27)
- **Performance Fix**: In json_encoder.py, in _get_type_module(), the regex compilation should be at the module level (#28)

### 🔒 Security

- **Documentation**: Added security considerations section to README regarding deserializing untrusted JSON data

## [v0.3.1] - 2025-07-10

- Fix documentation URL in `pyproject.toml`
Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ make cov # Run tests with coverage
make cm # Run tests with coverage and missing lines

# Documentation
make doc # Serve documentation locally with mkdocs
make doc-check # Check documentation build
make doc-deploy # Deploy documentation to GitHub Pages
make dosc # Serve documentation locally with mkdocs
make docs-check # Check documentation build
make docs-deploy # Deploy documentation to GitHub Pages

# Cleanup
make cleanall # Remove all derived files and virtual env
Expand Down
Loading