From 24e6a21c9185dae7c42ba0cfa0af51a819081bc3 Mon Sep 17 00:00:00 2001 From: Karli Mess Date: Fri, 7 Aug 2026 10:41:14 -0700 Subject: [PATCH 1/2] chore: contributor templates (issue forms, PR template, CoC, README) --- .github/ISSUE_TEMPLATE/bug_report.yml | 66 ++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 ++ .github/ISSUE_TEMPLATE/feature_request.yml | 38 +++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 29 ++++++++ CODE_OF_CONDUCT.md | 78 ++++++++++++++++++++++ README.md | 11 +++ 6 files changed, 227 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 CODE_OF_CONDUCT.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..19d30cb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,66 @@ +name: Bug report +description: Something broke or behaved in a way you didn't expect +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for reporting. A rough description and the command you ran is plenty — we can dig from there. + - type: textarea + id: what-happened + attributes: + label: What happened + description: What did you expect to happen, and what happened instead? + validations: + required: true + - type: textarea + id: command + attributes: + label: Command you ran + description: The exact command(s), if there was one. + render: shell + validations: + required: false + - type: input + id: tycoon-version + attributes: + label: tycoon version + description: Output of `tycoon --version` + placeholder: "0.1.11" + validations: + required: true + - type: input + id: python-version + attributes: + label: Python version + placeholder: "3.12" + validations: + required: true + - type: dropdown + id: os + attributes: + label: Operating system + options: + - macOS + - Linux + - Windows (WSL) + - Windows (native) + - Other + validations: + required: true + - type: textarea + id: stack + attributes: + label: Stack config + description: The `stack:` block from your `tycoon.yml`, if relevant (ingestion / warehouse / bi / orchestrator). + render: yaml + validations: + required: false + - type: textarea + id: logs + attributes: + label: Logs or error output + description: Paste any error output. It will be formatted as code. + render: shell + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..4c6a3c9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Questions & discussion + url: https://github.com/Database-Tycoon/tycoon-cli/discussions + about: Have a question, want setup help, or want to share what you're building? Start a discussion — we read every post. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..ec1981b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,38 @@ +name: Feature request +description: Suggest an idea or improvement +labels: ["enhancement"] +body: + - type: textarea + id: problem + attributes: + label: What's the problem? + description: What are you trying to do, and where does tycoon get in the way today? + validations: + required: true + - type: textarea + id: solution + attributes: + label: What would you like to see? + description: A rough idea is fine — no need for a full design. + validations: + required: true + - type: dropdown + id: area + attributes: + label: Which part of tycoon? + options: + - "tycoon init (scaffolding / stack config)" + - "data sources (ingestion / dlt)" + - "data transform (dbt)" + - "data analyze (Rill / dashboards)" + - "data history / status (observability)" + - "Not sure / other" + validations: + required: false + - type: textarea + id: alternatives + attributes: + label: Anything you've tried or considered? + description: Workarounds, other tools, alternatives you weighed. Optional. + validations: + required: false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..4df9c6c --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,29 @@ + + +## What this does + + + +## Linked issue + +Closes # + +## Type of change + +- [ ] Bug fix +- [ ] New feature +- [ ] Docs +- [ ] Refactor / internal +- [ ] Other: + +## Checklist + +- [ ] `pre-commit run --all-files` passes +- [ ] Tests pass locally, and the offline `csv-import` pipeline still runs end to end (this is the CI gate — if it breaks, the release is blocked) +- [ ] Added or updated tests where it made sense +- [ ] Updated `CHANGELOG.md` if this is user-facing +- [ ] Updated docs / README if behavior or commands changed + +## Notes for reviewers + + diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..4cc79af --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,78 @@ +# Code of Conduct + +Database Tycoon is a small team, and this is a public project. It only works +if people feel comfortable showing up: asking a basic question, filing a rough +bug, disagreeing about a design. This document is the short version of how we +keep it that way. It applies to everyone who shows up in an issue, a pull +request, or a discussion. + +## What we expect + +Assume the person on the other end is smart and acting in good faith, even when +they're new, even when they're wrong. Be direct about the work without being +sharp with the person. Concretely, that means: + +* Give feedback on the code, the idea, or the decision — not the human. +* Take disagreement as normal. Explain your reasoning; accept that someone + might explain theirs back. +* When you're wrong, say so and move on. Nobody here is keeping score. +* Make room for people who know less than you do. You were there once. + +## What we won't accept + +* Harassment of any kind, public or private. +* Sexualized language, imagery, or attention. +* Personal, political, or identity-based attacks — insults or dismissiveness + aimed at who someone is rather than what they said. +* Trolling, deliberate derailing, or sustained disruption. +* Publishing someone's private information without their explicit permission. +* Anything else that a reasonable person would read as harassment in a + professional setting. + +This applies 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, caste, color, religion, or sexual orientation. + +## Where this applies + +Everywhere the project lives — issues, pull requests, discussions, commit +history — and anywhere someone is representing the project in public, like an +official account or an event. + +## Reporting + +If something crosses a line, tell us. Email info@databasetycoon.com with what +happened. You don't need to have it perfectly documented; send a rough account +and we'll take it from there. + +We'll look into every report promptly and fairly, and we'll keep the reporter's +identity private. Reporting something in good faith will never count against +you, full stop. + +## What happens after a report + +Maintainers are responsible for enforcing this, and we'll match the response to +what actually happened: + +1. **A quiet word.** For a one-off — language or behavior that was out of line + but not serious — a private note explaining what was wrong and why. Sometimes + with a request to apologize. +2. **A warning.** For a clearer violation or a repeat: a warning, plus a period + of no interaction with the people involved, across project spaces and + outside them. Ignoring that leads to a ban. +3. **A temporary ban.** For a serious violation or sustained bad behavior: time + away from all project interaction. Breaking the terms of the ban makes it + permanent. +4. **A permanent ban.** For a pattern of violations, harassment of an + individual, or hostility toward a group. + +We'll explain our reasoning when it makes sense to, and we'll act consistently +whether the person involved is a first-time contributor or a maintainer. + +## Attribution + +Adapted from the [Contributor Covenant](https://www.contributor-covenant.org), +version 2.1. The enforcement tiers draw on Mozilla's code of conduct +enforcement ladder. For common questions, see the Contributor Covenant +[FAQ](https://www.contributor-covenant.org/faq). diff --git a/README.md b/README.md index d108036..fe1a1d0 100644 --- a/README.md +++ b/README.md @@ -189,3 +189,14 @@ tycoon data query --db .tycoon/metadata.duckdb \ ``` The metadata DB is disposable — delete `.tycoon/metadata.duckdb` to reset history. + +## Contributing + +tycoon is open source and still early, which means feedback right now has an +outsized effect on where it goes. However you want to jump in: + +- **Hit a bug or want a feature?** Open an [issue](https://github.com/Database-Tycoon/tycoon-cli/issues) — there's a short form for each. +- **Got a question, or want to show what you're building?** Start a [discussion](https://github.com/Database-Tycoon/tycoon-cli/discussions). Nothing's too small. +- **Want to work on the code?** [CONTRIBUTING.md](CONTRIBUTING.md) covers dev setup, what CI expects, and the repo conventions. + +Everyone taking part is expected to follow our [Code of Conduct](CODE_OF_CONDUCT.md). \ No newline at end of file From 6c36a2d7480fc099dd175c720372a2c54efca518 Mon Sep 17 00:00:00 2001 From: Karli Mess Date: Fri, 7 Aug 2026 11:24:16 -0700 Subject: [PATCH 2/2] fix: restore trailing newline in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fe1a1d0..da4ce20 100644 --- a/README.md +++ b/README.md @@ -199,4 +199,4 @@ outsized effect on where it goes. However you want to jump in: - **Got a question, or want to show what you're building?** Start a [discussion](https://github.com/Database-Tycoon/tycoon-cli/discussions). Nothing's too small. - **Want to work on the code?** [CONTRIBUTING.md](CONTRIBUTING.md) covers dev setup, what CI expects, and the repo conventions. -Everyone taking part is expected to follow our [Code of Conduct](CODE_OF_CONDUCT.md). \ No newline at end of file +Everyone taking part is expected to follow our [Code of Conduct](CODE_OF_CONDUCT.md).