CodeVetter · Repo Unpack · Contributor handoff
SeaQL/sea-orm
Begin with manifests, the library exports, and the exact feature-specific implementation involved in the task. Tests and CI were inspected, not executed, and this bounded brief supplies no passing validation result. Future authorized edits should respect generation boundaries, isolated database targets, and distinct contracts for schema sync, nested persistence, and authorization.
- Read Cargo.toml, src/lib.rs, CLAUDE.md, and CONTRIBUTING.md first: the repository explicitly documents SeaORM 2.0 model relations, typed COLUMN access, builder-style ActiveModels, and changed raw execution APIs.
- Choose package-specific checks: CONTRIBUTING documents cargo test --workspace and a separate CLI manifest command; CI additionally defines separate migration checks. These commands were inspected, not executed, and require separate execution authorization in a read-only investigation.
- For live database validation, select the appropriate driver/runtime features and an isolated target: documented integration commands depend on DATABASE_URL, and common setup issues DROP DATABASE and CREATE DATABASE statements.
- Before modifying persistence, read ActiveModelTrait together with insert execution and generated ActiveModelEx actions; preserve primary-key branching, lifecycle hooks, RETURNING fallback lookup, and relation-before/after transaction ordering.
- Treat generation fixtures as behavior specifications: writer tests compare expected token streams, rustfmt excludes tests_cfg, and experimental regeneration preservation has exclusions and fallback writes that must be reviewed before use.
- Check synchronous parity for shared ORM changes, but do not casually run make-sync.sh: the script deletes mirror trees and transforms async source/tests, and sea-orm-sync has a separate workspace and dependency boundary.
- Preserve capability limits: schema sync adds missing objects and leaves mismatches untouched, nested relation mutation is experimental, Replace can delete omitted children, and restricted connections reject raw SQL while auditing structured statements.
- Review example behavior before reusing it in applications: Actix handlers unwrap query parsing and expect database success, and Rocket run_migrations discards migration errors. Example compilation or generic CI definitions do not establish request-path correctness or successful startup migrations.