Skip to content

chore: add standard ParadeDB ORM repository scaffolding - #34

Merged
philippemnoel merged 2 commits into
mainfrom
chore/repo-scaffolding
May 12, 2026
Merged

chore: add standard ParadeDB ORM repository scaffolding#34
philippemnoel merged 2 commits into
mainfrom
chore/repo-scaffolding

Conversation

@philippemnoel

@philippemnoel philippemnoel commented May 12, 2026

Copy link
Copy Markdown
Member

Summary

Brings efcore-paradedb in line with django-paradedb, sqlalchemy-paradedb, and rails-paradedb so all ParadeDB ORMs share the same workflows, templates, and contributor docs. The repo was imported from a community contributor (nandor23/EFCore.ParadeDB.PgSearch) and was missing most of this scaffolding.

.github/ metadata

  • CODEOWNERS, FUNDING.yml
  • dependabot.yml (covers github-actions and nuget ecosystems)
  • PULL_REQUEST_TEMPLATE.md
  • ISSUE_TEMPLATE/{bug_report,feature_request,config}.yml — bug report tailored for .NET (asks for .NET / EF Core / Npgsql / ParadeDB.EntityFrameworkCore versions)

Lint workflows (carried over verbatim from sibling ORMs)

  • check-typo.yml (codespell)
  • lint-bash.yml (beautysh + strict-mode + ShellCheck)
  • lint-format.yml (CRLF / trailing whitespace / EOF newline)
  • lint-markdown.yml (markdownlint + Prettier)
  • lint-yaml.yml (Prettier)
  • lint-pr-title.yml (Conventional Commits)
  • assign-github-issue.yml (/take self-assignment)

Release workflow

Replaces the existing publish.yml (tag-push auto-publish) with release.yml that matches the other ORMs:

  • workflow_dispatch with version, beta, and confirmation inputs
  • Validates version format, ensures v<version> tag and GitHub release don't already exist
  • Packs ParadeDB.EntityFrameworkCore.<version>.nupkg, publishes to NuGet using PGSEARCH_API_KEY (existing secret name preserved), and creates a GitHub release with the package attached

CI (ci.yml) enhancements

  • Adds concurrency group and workflow_dispatch trigger
  • Adds a lint job running dotnet csharpier check . and a dotnet build -warnaserror to guard formatting and warning regressions
  • Existing .NET 8/9/10 unit + integration matrix preserved untouched

Root config

  • codecov.yml, .codespellignore, .codespellrc
  • .markdownlint.yaml, .prettierrc, .prettierignore
  • .pre-commit-config.yaml (standard hooks + codespell + markdownlint + local dotnet csharpier check)

Docs

  • CONTRIBUTING.md (.NET-adapted), RELEASE.md, CHANGELOG.md (Keep a Changelog, empty Unreleased)
  • CLAUDE.md + AGENTS.md symlink
  • README.md and NUGET-README.md: fix badge/URL references from nandor23/EFCore.ParadeDB.PgSearch to paradedb/efcore-paradedb and ParadeDB.EntityFrameworkCore (current NuGet package id); ran Prettier to satisfy the new lint-markdown workflow

Test plan

  • CI passes — including all newly-added lint workflows on this PR itself
  • lint job: dotnet csharpier check . reports no formatting drift
  • lint-pr-title passes (this PR title uses chore: conventional prefix)
  • Confirm PGSEARCH_API_KEY secret name still matches what's configured on the repo (no change from previous workflow)
  • After merge, smoke-test the release workflow via workflow_dispatch on a dry version, or wait until the next real release

Bring efcore-paradedb in line with django-paradedb, sqlalchemy-paradedb,
and rails-paradedb so contributors and maintainers can rely on the same
workflows, templates, and documentation conventions across all
ParadeDB ORMs.

Adds:

- .github metadata: CODEOWNERS, FUNDING.yml, dependabot.yml (nuget +
  github-actions), PR template, ISSUE_TEMPLATE (bug/feature/config).
- Lint workflows: check-typo (codespell), lint-bash, lint-format,
  lint-markdown, lint-yaml, lint-pr-title (conventional commits),
  assign-github-issue (/take command).
- Release workflow: replaces tag-push publish.yml with manual
  workflow_dispatch release.yml that validates version format, ensures
  the tag/release doesn't already exist, packs the NuGet package,
  publishes to NuGet (PGSEARCH_API_KEY), and creates the GitHub release.
- CI: adds concurrency, workflow_dispatch, and a lint job running
  csharpier check and warnaserror build alongside the existing matrix.
- Root configs: codecov.yml, .codespellignore/.codespellrc,
  .markdownlint.yaml, .prettierrc/.prettierignore,
  .pre-commit-config.yaml.
- Docs: CONTRIBUTING.md, RELEASE.md, CHANGELOG.md (Keep a Changelog),
  CLAUDE.md + AGENTS.md symlink.
- README and NUGET-README: fix badge/URL references from the original
  nandor23/EFCore.ParadeDB.PgSearch upstream to paradedb/efcore-paradedb
  and ParadeDB.EntityFrameworkCore (current NuGet package id);
  reformat with Prettier so the new lint-markdown workflow passes.
- Strip trailing whitespace from four pre-existing files
  (three .csproj files, one test .cs file).
- Drop trailing colon from "Translates to:" heading in
  NUGET-README.md to satisfy markdownlint MD026.
- Add "shouldbe" to .codespellignore: ShouldBe is the
  Shouldly assertion library's fluent method name
  (.ShouldBe(...)), used throughout the test suite, not a
  typo for "should be".
@philippemnoel
philippemnoel merged commit ec32b06 into main May 12, 2026
10 checks passed
@philippemnoel
philippemnoel deleted the chore/repo-scaffolding branch May 12, 2026 23:34
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.

1 participant