Skip to content

Demo Application and MonoRepo - #207

Merged
devsetgo merged 4 commits into
mainfrom
dev
Aug 9, 2026
Merged

Demo Application and MonoRepo#207
devsetgo merged 4 commits into
mainfrom
dev

Conversation

@devsetgo

@devsetgo devsetgo commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Motivation and Rationale

This pull request consolidates the demo application and its release process into the monorepo, as part of the ongoing monorepo rollout. The motivation is to simplify release orchestration, reduce maintenance overhead, and ensure the demo app is always aligned with the main package. This change also improves privacy defaults and developer clarity for analytics, requirements, and packaging.

Key Improvements

  • Demo App Consolidation: The standalone demo-pydantic-schemaforms repository is deprecated. All demo runtime code, requirements, and Dockerfile are now under demo_app/ in the main repository, with no history preservation required.
  • Manual Release Orchestration: The Makefile now provides explicit, manual release targets for every step (prepare, docs, package, demo image, verification, etc.), replacing the previous, more tightly-coupled GitHub Actions workflow. This increases transparency and control over the release process.
  • Requirements and Packaging: The demo container now installs the published package version (not editable installs) and uses a dedicated requirements file, ensuring clean and reproducible demo builds.
  • Privacy-First Analytics Defaults: Analytics and user/IP tracking are now disabled by default in the demo app. All related middleware, resources, and dashboard endpoints are gated behind explicit flags, improving privacy and compliance.
  • Documentation: The main README now clearly instructs users about the need for the email extra when using email-related field types, reducing confusion and installation friction.
  • Release Validation: Added stricter version alignment checks between all relevant files and dry-run verification for image targets.
  • Operator Guidance: A clear checkpoint and next-steps checklist is included for ongoing rollout work and operator clarity.

Why This Improves the Project

  • Reduces duplication and maintenance effort by centralizing demo code.
  • Makes the release process more reliable, auditable, and developer-friendly.
  • Improves user privacy and makes analytics opt-in by default.
  • Clarifies installation instructions and reduces friction for new users.
  • Lays the groundwork for further improvements in demo analytics and release automation.

This PR is a major step in completing the monorepo demo/app consolidation and modernizing our release and privacy practices.

devsetgo and others added 4 commits August 8, 2026 01:57
…t too

Adds an "email" extra (pyproject.toml) pinning the same email-validator
dependency as the existing "email-dns" extra, which is kept as an alias.
"email" mirrors pydantic's own `pip install pydantic[email]` naming and is
the name error messages/docs now point to first.

Documents a finding from testing this: Pydantic's own EmailStr -- not just
DeliverableEmailStr/check_deliverability -- requires email-validator just to
*define* a model field with that type, not only to validate a value. A
FormModel with an EmailStr field raises ImportError at class-definition time
without it. Since EmailStr is this library's own recommended type for email
fields throughout the README/docs/AI instructions, that makes the extra a
practical requirement for most real usage, not just the DNS-check feature.
Added a callout for this in README.md's Install section, validation_guide.md,
and the packaged AI-assistant instructions (next to the main worked example,
where an assistant is most likely to generate an EmailStr field).

Also updates EmailDeliverabilityRule/DeliverableEmailStr's docstrings and
ImportError message, and FormBuilder.email_input()'s docstring, to point to
[email] while keeping the [email-dns] substring in the ImportError text for
backward compatibility with the existing regex-matching test.

Added a packaging regression test asserting pyproject.toml keeps both
extras declared and pointing at the same dependency.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions github-actions Bot added dependencies library and asset dependencies docs chore labels Aug 9, 2026
@sonarqubecloud

sonarqubecloud Bot commented Aug 9, 2026

Copy link
Copy Markdown

@devsetgo devsetgo changed the title Dev Demo Application and MonoRepo Aug 9, 2026
@devsetgo
devsetgo merged commit 937ed1c into main Aug 9, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore dependencies library and asset dependencies docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant