Skip to content

fix: validate native ISO date-times - #3520

Merged
schani merged 2 commits into
fix/swift-lowercase-rfc3339from
fix/php-invalid-date-time
Sep 8, 2026
Merged

fix: validate native ISO date-times#3520
schani merged 2 commits into
fix/swift-lowercase-rfc3339from
fix/php-invalid-date-time

Conversation

@schani

@schani schani commented Sep 7, 2026

Copy link
Copy Markdown
Member

PHP accepted impossible calendar dates; Objective-C and C++ also accepted malformed RFC 3339 timestamps. PHP now checks parser warnings, while Objective-C and C++ validate the full timestamp and calendar date.

date-time.12.fail.date-time.json adds this PR's regression coverage: all three renderers accepted month zero before the fix and reject it afterward.

Depends on #3515. Shared calendar and fractional cases remain in the following Swift PRs after every affected backend supports them.

Production diff: PHP 8 lines, Objective-C 5, C++ 2; 15 total.

Validation: build, lint, and the date-time schema pass for 18 available backends: JavaScript, PropTypes, TypeScript, Zod, Effect, Go, Python, Dart, Swift, Objective-C, PHP, C++, Java, Rust, Kotlin, Kotlin/Jackson, Scala 3, and Scala 3/upickle. C# could not run locally because only .NET 10 is installed and the fixture targets .NET 8.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

Generated-output differences

94 files differ — 94 modified, 0 new, 0 deleted
609 changed lines — +480 / −129

Open the generated-output report →

@schani
schani force-pushed the agent/javascript-prototype-map branch from d7cb7d8 to 7ec5b2c Compare September 7, 2026 17:55
@schani
schani force-pushed the fix/php-invalid-date-time branch from 650da46 to a6a5f5a Compare September 7, 2026 18:00
@schani
schani changed the base branch from agent/javascript-prototype-map to fix/swift-lowercase-rfc3339 September 7, 2026 18:00
@schani
schani force-pushed the fix/swift-lowercase-rfc3339 branch from c74b8d4 to 5261688 Compare September 7, 2026 18:02
@schani
schani force-pushed the fix/php-invalid-date-time branch from a6a5f5a to f5f8445 Compare September 7, 2026 18:02
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

Generated-output differences

94 files differ — 94 modified, 0 new, 0 deleted
609 changed lines — +480 / −129

Open the generated-output report →

@schani

schani commented Sep 8, 2026

Copy link
Copy Markdown
Member Author

No tests!?!?!?!

@schani

schani commented Sep 8, 2026

Copy link
Copy Markdown
Member Author

date-time.12.fail.date-time.json now belongs to this PR. Its month-zero timestamp was accepted by PHP, Objective-C, and C++ before these changes; all three reject it after the fix. The focused date-time schema passes across 18 available backends.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Generated-output differences

94 files differ — 94 modified, 0 new, 0 deleted
609 changed lines — +480 / −129

Open the generated-output report →

@schani
schani merged commit c07cb7d into fix/swift-lowercase-rfc3339 Sep 8, 2026
35 checks passed
@schani
schani deleted the fix/php-invalid-date-time branch September 8, 2026 02:45
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