Skip to content

Add editorconfig, PR/issue templates, and a vcrpy integration test - #585

Merged
turbomam merged 2 commits into
mainfrom
cleanup/best-practice-scaffolding-583
Jul 21, 2026
Merged

Add editorconfig, PR/issue templates, and a vcrpy integration test#585
turbomam merged 2 commits into
mainfrom
cleanup/best-practice-scaffolding-583

Conversation

@turbomam

@turbomam turbomam commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Addresses

the .editorconfig, template, and integration-test items. The heavier items on that checklist (AGENTS.md/.claude drop-in, Claude CI workflows, justfile, spell/yaml lint, zenodo/citation, mkdocs) stay open.

  • .editorconfig: adopted from ai4curation/github-ai-integrations, with a Makefile tabs rule and a TSV whitespace rule so ROBOT templates are left untouched.
  • PR template and issue templates (bug_report, term_request, chooser config.yml) that encode our posting norms: say why not what, keep bodies short, put long logs in a <details> block or turbomam/issue-attachments.
  • Integration test for assess-ontology-by-api-search: exercises the real OLS4 search endpoint through a recorded vcrpy cassette, so CI replays deterministically with no network. Marked integration (deselect with -m 'not integration'). Registers the integration marker in [tool.pytest.ini_options] and adds vcrpy to the test extra. BioPortal needs an API key, so only OLS4 is covered here; re-record with VCR_RECORD=1 uv run pytest tests/test_assess_ontology_integration.py.

Verified: full pytest (39 pass; the integration test replays offline in 0.2s), -m 'not integration' deselects cleanly, ruff check, ruff format --check, import check.

)

Scaffolding metpo was missing versus the BBOP github-repo-skill standard:

- .editorconfig adopted from ai4curation/github-ai-integrations, plus a
  Makefile tabs rule and a TSV whitespace rule for ROBOT templates.
- PR template and issue templates (bug_report, term_request, chooser config)
  encoding our posting norms: say why not what, keep bodies short, long logs
  in <details> or turbomam/issue-attachments.
- Integration test for assess-ontology-by-api-search: exercises the real OLS4
  search endpoint through a recorded vcrpy cassette so CI replays with no
  network. Marked 'integration' (deselect with -m 'not integration');
  registers the marker and adds vcrpy to the test extra. OLS4 only; BioPortal
  needs a key.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 21, 2026 17:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds repository scaffolding (editor config + GitHub templates) and introduces a deterministic integration test that exercises the real OLS4 API via a recorded vcrpy cassette, aligning with the Issue #583 checklist.

Changes:

  • Add .editorconfig to standardize formatting while preserving Makefile tabs and ROBOT TSV whitespace.
  • Add PR template and GitHub issue templates (bug report + term/modeling request + chooser config).
  • Add an integration test for assess-ontology-by-api-search using vcrpy, plus pytest marker registration and dependency updates.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.editorconfig Establishes cross-editor formatting rules with exceptions for Makefiles and TSV templates.
.github/pull_request_template.md Adds a lightweight PR template emphasizing “why” and reviewer notes.
.github/ISSUE_TEMPLATE/bug_report.md Adds a structured bug report template with brevity guidance.
.github/ISSUE_TEMPLATE/term_request.md Adds a structured term/modeling request template.
.github/ISSUE_TEMPLATE/config.yml Configures issue template chooser and a contributing-guide link.
pyproject.toml Adds vcrpy to the test extra and registers the integration pytest marker.
uv.lock Locks vcrpy and updates the test extra resolution accordingly.
tests/test_assess_ontology_integration.py Adds an OLS4 integration test that replays from a vcrpy cassette.
tests/cassettes/ols_search_mesophilic.yaml Adds the recorded OLS4 search cassette used by the integration test.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tests/test_assess_ontology_integration.py Outdated
record_mode 'once' only records when the cassette is absent, so the documented
VCR_RECORD=1 re-record command would not refresh an existing cassette. Use
'all' when VCR_RECORD is set so it overwrites; still 'none' (replay-only) in CI.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@turbomam

Copy link
Copy Markdown
Contributor Author

Thanks @copilot, good catch. Fixed in b60026a: record_mode is now all when VCR_RECORD is set so the documented re-record command actually overwrites the cassette (verified it does), and stays none (replay-only) in CI.

@turbomam
turbomam merged commit 4ab73c7 into main Jul 21, 2026
16 checks passed
@turbomam
turbomam deleted the cleanup/best-practice-scaffolding-583 branch July 21, 2026 18:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants