Skip to content

HOLD: @common-grants/core v0.4.0 release#976

Draft
widal001 wants to merge 4 commits into
mainfrom
HOLD-core-v0.4.0
Draft

HOLD: @common-grants/core v0.4.0 release#976
widal001 wants to merge 4 commits into
mainfrom
HOLD-core-v0.4.0

Conversation

@widal001

@widal001 widal001 commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

Collects changes we're queuing for the v0.4.0 release of the @common-grants/core library

  • Fixes #[issue number]
  • Time to review: [xx] minutes

Changes proposed

What was added, updated, or removed in this PR.

Context for reviewers

Testing instructions, background context, more in-depth details of the implementation, and anything else you'd like to call out or ask reviewers. Explain how the changes were verified.

Additional information

Screenshots, GIF demos, code examples or output to help show the changes working as expected.

* feat(core): add boolean and integer comparison filter models

Add BooleanComparisonFilter (eq/neq against a boolean) and
IntegerComparisonFilter (comparison + equivalence operators against an
integer), exported via filters/index.tsp at protocol v0.3.0.

Refs #895.

* docs: correct changeset — comparison filters emit to JSON Schema only

Filter models aren't route-referenced, so the openapi3 emitter omits them;
only the json-schema emitter outputs them. The changeset claimed both.

* fix(core): version new comparison filters at v0.4

v0.3 is already published, so BooleanComparisonFilter and
IntegerComparisonFilter first ship in v0.4. Add v0_4 to the Versions
enum and retag both models; correct the changeset to match.

* chore: remove accidentally committed .venv and gitignore it

The lib/python-sdk/.venv virtualenv (1,039 files) was swept in by an
overly broad git add. Untrack it and add .venv/ to the python-sdk
.gitignore so it can't recur.
@github-actions github-actions Bot added core Issues related to @common-grants/core library python Issue or PR related to Python tooling sdk Issue or PR related to our SDKs typescript Issue or PR related to TypeScript tooling py-sdk Related to Python SDK labels Jul 3, 2026
@github-actions github-actions Bot added the website Issues related to the website label Jul 6, 2026
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

🚀 Website Preview Deployed!

Preview your changes at: https://cg-pr-976.billy-daly.workers.dev

This preview will be automatically deleted when the PR is closed.

* chore(website): upgrade to Astro 7 (Starlight 0.41, @astrojs/react 6)

* feat(website): add ID registry catalog (lib, components, pages)

* refactor(website): group catalogs in sidebar and header nav

* docs(website): Update ADR-0023 with new registry code

Switches to `<schema>:<scope>:<prop>` format, like `org:us:ein` to match
the ID registry catalog

* feat(website): add code to registry search fields

The RegistryCard search tags only included the registry.code segments,
which meant that searches for the full code didn't return a match.
We fix this by replacing the segments with the full code (org:us:ein),
which still matches searches that contain only the segments (ein).
@github-actions github-actions Bot added the dependencies Pull requests that update a dependency file label Jul 7, 2026
* feat(core): add Identifier and SystemId models

Add the Identifier and SystemId field models, the IdentifierT
template they instantiate, and the Identifiers collection.
Tighten the employerTaxId, samUEI, and duns scalars to their
registry-specific formats.

* refactor!(core): replace org IDs with collection

Remove the ein, uei, and duns fields from OrganizationBase and
add an identifiers collection (OrgIds) built from the OrgIdEin,
OrgIdUei, and OrgIdDuns registry-specific models.

BREAKING CHANGE: OrganizationBase.ein, uei, and duns are removed
in favor of the identifiers collection.

* fix(website): apply removed fields in versioning

The per-version schema reconstruction now strips fields whose
@removed version is at or before the target version, not just
fields added after it. Without this, v0.4 OrganizationBase kept
the removed ein/uei/duns fields.

* docs(governance): trim Identifier.registry in ADR

Rename IdentifierCollection to Identifiers and
OrgIdentifierCollection to OrgIds in ADR-0023 to match the
implemented models.

* feat(website): document org identifiers

Add the Identifiers field page (Identifier, SystemId, Identifiers)
and per-identifier sections (OrgIds, OrgIdEin, OrgIdUei, OrgIdDuns)
on the Organization model page.

* refactor(website): map questions/forms to org IDs

Repoint the question-bank and SF-424 form mappings from the
removed org ein/uei/duns fields to the identifiers collection
(organizations.primary.identifiers.org:us:ein.id, etc.).

* chore(website): regenerate schemas for v0.4 IDs

Regenerate the published JSON schemas for the identifier models
and the updated OrganizationBase.

* refactor(core): simplify Identifier model

Removes a few fields like `verifiedAt`, `uri`, `registry.schema` etc. to
prevent us from prematurely adding props that we wind up removing later.
Also makes all of the props in this model optional.

* docs(website): fix duplicate wording in ADR-0023

Refers to `IdentifierCollection` as a "field" instead of a "collection"
to avoid repetition.

* fix(changelog): dedupe added/removed versions for template instantiations

A model or property defined via `is`/`extends` on a versioned base inherits
the base's `@added`/`@removed` decorators in addition to its own, so
`getAddedOnVersions`/`getRemovedOnVersions` can report the same version 
more than once. This produced duplicate "Added X model" changelog entries 
for the identifier template instantiations (Identifier, SystemId, OrgIdEin, OrgIdUei,
OrgIdDuns).

Collapse duplicate versions before logging model/property additions and
removals, since an entity can only be added or removed once per version.

* docs(website): fix stale TypeSpec line ranges

The `refactor(core): simplify Identifier model` change and the org-identifier
additions shifted line numbers in identifier.tsp, organization.tsp, types.tsp,
and filters/numeric.tsp, but the doc frontmatter ranges were not updated, so
several TypeSpec tabs rendered the wrong model or truncated code.

Realign every affected range to its declaration (doc comment through closing
line): identifier/SystemId/IdentifierCollection, OrgSocialLinks, the string,
date, and numeric scalars, and the number range/array filters.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Issues related to @common-grants/core library dependencies Pull requests that update a dependency file DO NOT MERGE py-sdk Related to Python SDK python Issue or PR related to Python tooling sdk Issue or PR related to our SDKs typescript Issue or PR related to TypeScript tooling website Issues related to the website

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants