From 11840df7951591483d3e88b6cf4d9f7f2b302aec Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 28 May 2026 20:20:04 +0000 Subject: [PATCH 1/2] Initial plan From 897cb5f8aaa56dde29310a4e39298405f7251fc7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 28 May 2026 20:28:33 +0000 Subject: [PATCH 2/2] Add community boilerplate and CI templates --- .github/ISSUE_TEMPLATE/bug_report.md | 32 ++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 22 ++++++++ .github/pull_request_template.md | 21 ++++++++ .github/workflows/ci.yml | 42 +++++++++++++++ CHANGELOG.md | 11 ++++ CODE_OF_CONDUCT.md | 64 +++++++++++++++++++++++ CONTRIBUTING.md | 57 ++++++++++++++++++++ SECURITY.md | 14 +++++ 8 files changed, 263 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/ci.yml create mode 100644 CHANGELOG.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 SECURITY.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..d8f240e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,32 @@ +--- +name: Bug report +about: Report a reproducible problem in dsagt +title: "[Bug]: " +labels: bug +assignees: "" +--- + +## Summary +A clear and concise description of the bug. + +## Environment +- OS: +- Python version: +- dsagt version/commit: + +## Steps to Reproduce +1. +2. +3. + +## Expected Behavior +What you expected to happen. + +## Actual Behavior +What happened instead. + +## Logs / Traceback +Paste relevant logs, tracebacks, or screenshots. + +## Additional Context +Anything else that may help reproduce or debug the issue. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..641352c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,22 @@ +--- +name: Feature request +about: Suggest an idea or improvement for dsagt +title: "[Feature]: " +labels: enhancement +assignees: "" +--- + +## Problem Statement +Is your feature request related to a problem? Describe it. + +## Proposed Solution +Describe the change you want to see. + +## Alternatives Considered +Describe any alternative solutions or features you've considered. + +## Use Case / Impact +Who benefits and how? + +## Additional Context +Links, mockups, examples, or related issues. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..f780956 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,21 @@ +## Summary +Describe the change and why it is needed. + +## Related Issue +Closes # + +## Type of Change +- [ ] Bug fix +- [ ] New feature +- [ ] Documentation update +- [ ] Refactor / maintenance + +## Validation +- [ ] Local linting completed +- [ ] Relevant tests added/updated +- [ ] Relevant tests passed + +## Checklist +- [ ] I followed repository contribution guidance +- [ ] I updated docs where needed +- [ ] I confirmed no secrets or credentials were added diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1d92ded --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,42 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +permissions: + contents: read + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + - name: Install ruff + run: python -m pip install --upgrade pip ruff + - name: Lint + run: python -m ruff check src tests --select E9,F63,F7,F82 + + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.12", "3.13"] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install -e . + python -m pip install pytest + - name: Run tests (non-integration) + run: python -m pytest -m "not integration" -q diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..7f7b66a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,11 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added +- Repository boilerplate community files and contribution templates. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..adeb837 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,64 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, +and learning from the experience +- Focusing on what is best not just for us as individuals, but for the overall +community + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery, and sexual attention or advances +of any kind +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email address, +without their explicit permission +- Other conduct which could reasonably be considered inappropriate in a +professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the project maintainers. + +All complaints will be reviewed and investigated promptly and fairly. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. + +[homepage]: https://www.contributor-covenant.org diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..00ec8b1 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,57 @@ +# Contributing to dsagt + +Thanks for your interest in contributing to dsagt. + +## Getting Started + +1. Fork the repository and create a feature branch from `main`. +2. Set up your environment and install dependencies. +3. Run tests and linting locally before opening a pull request. + +See [developer.md](./developer.md) for project-specific developer workflows. + +## Development Workflow + +- Keep pull requests focused and small. +- Prefer clear commit messages that explain intent. +- Update documentation when behavior changes. + +## Testing + +Run non-integration tests before submitting: + +```bash +uv run python -m pytest -m "not integration" +``` + +Integration tests require `.env` configuration, as documented in [developer.md](./developer.md). + +## Linting + +Use ruff for lint checks: + +```bash +python -m ruff check src tests --select E9,F63,F7,F82 +``` + +## Pull Requests + +When opening a PR: + +- Explain what changed and why. +- Link the related issue(s). +- Include test evidence for the changed behavior. + +## AI/LLM-Assisted Contributions + +AI tools are welcome for drafting code and docs, but contributors remain responsible for correctness and security. + +Please ensure: + +- Generated changes are reviewed and understood before submission. +- Outputs are validated with local linting/tests. +- No secrets, proprietary data, or sensitive information are included in prompts or commits. + +## Code of Conduct + +By participating, you agree to follow the project's [Code of Conduct](./CODE_OF_CONDUCT.md). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..76c2f6e --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,14 @@ +# Security Policy + +## Reporting a Vulnerability + +If you discover a security vulnerability, please report it privately to the maintainers. + +- **Do not** open public GitHub issues for security vulnerabilities. +- Include steps to reproduce, impact, and any suggested remediation. + +The maintainers will acknowledge receipt and work on a fix as quickly as possible. + +## Supported Versions + +Security fixes are generally applied to the latest development line.