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
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Default reviewer for every path in the repository.
* @Wahbeh-Mohammad
66 changes: 66 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Bug report
description: Something in a dexpace gem behaves differently from its documentation or a requirement.
title: "bug: "
labels: ["type:bug"]
body:
- type: markdown
attributes:
value: |
Thanks for reporting. **Security vulnerabilities do not belong here** — follow SECURITY.md
and report them privately instead.
- type: dropdown
id: gem
attributes:
label: Affected gem
multiple: true
options:
- dexpace-core
- dexpace-transport-net_http
- dexpace-transport-async_http
- dexpace-serde-json
- dexpace-async-thread
- dexpace-conformance
validations:
required: true
- type: input
id: revision
attributes:
label: Revision
description: Nothing is published yet, so give the commit SHA you reproduced against.
placeholder: 91d48c5
validations:
required: true
- type: input
id: ruby
attributes:
label: Ruby version
description: The output of `ruby -v`. Supported Ruby is 3.2–4.0 (3.3+ for dexpace-transport-async_http).
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: What happened
description: What you did, what you expected, and what happened instead.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Minimal reproduction
description: The smallest script or test that shows it. Redact any credential.
render: ruby
validations:
required: true
- type: input
id: requirements
attributes:
label: Requirement IDs
description: >-
The docs/product-spec/ requirement(s) the behaviour violates, if you know them
(for example HTTP-7, RETRY-13). Appendix C is the index.
- type: textarea
id: context
attributes:
label: Anything else
description: Logs (redacted), the transport and executor in use, the dependency versions.
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Report a security vulnerability
url: https://github.com/dexpace/ruby-sdk/blob/main/SECURITY.md
about: Please report vulnerabilities privately, as SECURITY.md describes — never in a public issue.
- name: Release status
url: https://github.com/dexpace/ruby-sdk/blob/main/docs/first-release.md
about: What remains before the first publish, what v1 ships without, and the post-release triggers.
55 changes: 55 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Feature or requirement request
description: Propose a feature, a new adapter, or a change against a spec requirement.
title: "feat: "
labels: ["type:feature"]
body:
- type: markdown
attributes:
value: |
The SDK is **an HTTP-client toolkit, not an HTTP client**, and its work is spec-driven:
every behaviour traces to a numbered requirement in `docs/product-spec/`. A request that names
the requirement it adds to, changes or finds missing is the easiest one to act on.
- type: dropdown
id: kind
attributes:
label: Kind of request
options:
- A new capability within an existing gem
- A new adapter gem (transport, codec, executor, instrumentation)
- A requirement the implementation does not satisfy (a spec gap)
- A change to a requirement or to a documented deviation
- Something else
validations:
required: true
- type: dropdown
id: gem
attributes:
label: Gem
multiple: true
options:
- dexpace-core
- dexpace-transport-net_http
- dexpace-transport-async_http
- dexpace-serde-json
- dexpace-async-thread
- dexpace-conformance
- a new gem
- type: input
id: requirements
attributes:
label: Requirement IDs
description: The requirement(s) this touches, for example PAGE-19 or SSE-11. Leave empty if none exists yet.
- type: textarea
id: problem
attributes:
label: The problem
description: What you are building and what the SDK makes hard or impossible today.
validations:
required: true
- type: textarea
id: proposal
attributes:
label: The proposal
description: What you would like, and the alternatives you considered.
validations:
required: true
25 changes: 25 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## What and why

<!-- One concern per pull request. What changes, and why. Link the issue: "Closes #…". -->

## Requirements

<!-- The docs/product-spec/ requirement IDs this satisfies, changes or touches (e.g. HTTP-7, RETRY-13),
and where each is cited: the test file's header comment, the branch it forced. "None" for a
change no requirement governs (tooling, docs). -->

## Verification

<!-- What you ran and on which Ruby. Tick what applies. -->

- [ ] `bundle exec rake` — all twenty-four gates — green on Ruby ____
- [ ] A test that failed before this change and passes after it (for a fix or a behaviour change)
- [ ] `sig/` updated beside `lib/`, and the runtime surface snapshot regenerated deliberately if the public surface changed
- [ ] `ruby .claude/skills/housekeeping/probe.rb` exits 0 (for a change under `docs/`, `CLAUDE.md` or a README)

## Records

- [ ] A deviation from the reference contract is recorded in the owning Deviation Ledger and `docs/deviations.md`, or there is none
- [ ] Release work this uncovers or closes is recorded in `docs/first-release.md`, or there is none
- [ ] The checklist, the as-built page under `docs/sdk-documentation/` and the gem README still describe the code
- [ ] Nothing under `docs/product-spec/` or `docs/sdk-design-ruby/` was edited (frozen to routine work)
Loading
Loading