{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":127570559,"defaultBranch":"master","name":"SpanJson","ownerLogin":"Tornhoof","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-03-31T20:55:22.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7989549?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1722283441.0","currentOid":""},"activityList":{"items":[{"before":"baf131e6996fadfc494c0a85396c61d03896f8ea","after":null,"ref":"refs/heads/DateOnly","pushedAt":"2024-07-29T20:04:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"}},{"before":"07dcf2f77ccd5ba464625cfd4869aa42e7c228d2","after":"31dbec11de376c0f2f00e914bfa19483340834bf","ref":"refs/heads/master","pushedAt":"2024-07-29T20:03:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":"Date only Release Prep (#211)\n\n* formatting\r\n\r\n* prep for release","shortMessageHtmlLink":"Date only Release Prep (#211)"}},{"before":null,"after":"baf131e6996fadfc494c0a85396c61d03896f8ea","ref":"refs/heads/DateOnly","pushedAt":"2024-07-29T19:50:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":"prep for release","shortMessageHtmlLink":"prep for release"}},{"before":"ea89dcf5ad6ce04bcf1048ac57cf2a6fdc893ba6","after":"07dcf2f77ccd5ba464625cfd4869aa42e7c228d2","ref":"refs/heads/master","pushedAt":"2024-07-29T18:08:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":"Add support for DateOnly and TimeOnly (#210)\n\n* Add `DateOnly` and `TimeOnly` to `.tt` files.\r\n\r\n* Add `DateOnly` and `TimeOnly` to `README.md`; wrap things in grave accents; formatting/verbiage tweaks.\r\n\r\n* Use `net6.0;net8.0` in `SpanJson.Shared.csproj` instead of `netstandard2.0` because all other projects are using it; update `ModelBenchmark.tt` to use `net6.0` as it's the least common denominator; do not use `ReferenceEquals` in `TrueEquals` to avoid compiler error: `error CA2013: Do not pass an argument with value type 'T?' to 'ReferenceEquals'. Due to value boxing, this call to 'ReferenceEquals' can return an unexpected result. Consider using 'Equals' instead, or pass reference type arguments if you intend to use 'ReferenceEquals'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2013)`\r\n\r\n* Make `ExtensionMethods` equality comparisons more consistent and leverage `is null`/`is not null` to avoid calls to operator overload methods.\r\n\r\n* Rename `bytesConsumed` => `charsConsumed` where appropriate.\r\n\r\n* Add constants for `MaxDateOnlyLength` and `MaxTimeOnlyLength`; group date-time constants by moving `MaxGuidLength` above them; fix `MaxTimeSpanLength` (likely considered `TimeSpan.MaxValue` the longest whereas `MinValue` also has the negative sign); fix `MaxGuidLength` (uncertain where 42 came from but all documentation I've come across and experiments I've done suggest 40 is the actual max); move `MaxVersionLength` down as the other constants are more about the library than data types.\r\n\r\n* Scaffolding in `JsonReader` for reading `DateOnly` and `TimeOnly`; note that `DateOnly` does not bother tracking `bytesConsumed` or `charsConsumed` because there is only one valid format whereas `TimeOnly` will support truncating seconds and fractional seconds.\r\n\r\n* Implement `DateTimeParser.TryParse(Date|Time)Only` for both `ReadOnlySpan` and `ReadOnlySpan`.\r\n\r\n* When parsing `DateTime(Offset)?`s, add additional validation: months can't be 13+, days-of-months can't be 32+, hours can't be 24+; and fix validation for minutes & seconds: they can't be 60+.\r\n\r\n* Simplify construction of `ExpressionTreeFixture`; make eligible methods `static`; use collection expressions for initialization.\r\n\r\n* Regroup value fixtures in `ExpressionTreeFixture` so more-alike things are closer together.\r\n\r\n* Add `DateOnlyFixture`, `TimeOnlyFixture`, and register in `ExpressionTreeFixture`'s value fixtures.\r\n\r\n* Revert using collection expressions for initialization because that requires using a newer ``, which then results in a handful of (legitimate) compiler errors.\r\n\r\n* Rewrite `TryParseTimeOnly` so it's processed in reverse to reduce the number of `source.Length` checks; fix copy-paste variable name (`charsConsumed` => `bytesConsumed`).\r\n\r\n* Implement `DateTimeFormatter.TryFormat` for `(Date|Time)Only` for both `Span` and `Span`; remove superfluous comments about what `JsonSharedConstant.Max...Length` means as `JsonSharedConstant` has its own comments describing how the maximum lengths were derived.\r\n\r\n* Add `(Date|Time)Only` to `DynamicTypeConverter.BuildDelegates()`\r\n\r\n* I guess ISO 8601 was amended in October 2022 to re-allow `24` in the hour to refer to the instant at the end of a calendar day and hence some unit tests started failing; let's make this a bit more strict and prohibit any non-zero value after the hour and prove that we prohibit it by adding additional `[InlineData]` to the test, and updating the test to not assert things if we're expecting failure.\r\n\r\n* Add tests for `DateOnly`; DRY test code.\r\n\r\n* Add tests for `TimeOnly`; fix bug with invalid range checking (was checking that the hour couldn't be above 12 instead of 23 because Copilot suggested bad things); fix name for `goto` label (`InvalidDate` => `InvalidTime`).\r\n\r\n* Whitespace","shortMessageHtmlLink":"Add support for DateOnly and TimeOnly (#210)"}},{"before":"cacc73a0c43e92a2c8ed31cb0cc4d7f8e8526e82","after":null,"ref":"refs/heads/dependabot/nuget/SpanJson.Benchmarks/Newtonsoft.Json-13.0.2","pushedAt":"2024-05-31T10:08:53.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"3320c083dfdea2c720bccdb6106163105428e263","after":null,"ref":"refs/heads/FixDocPath","pushedAt":"2024-05-23T22:30:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"}},{"before":"42f6b53b252e3c3014c9e68316dbd3271e732533","after":"ea89dcf5ad6ce04bcf1048ac57cf2a6fdc893ba6","ref":"refs/heads/master","pushedAt":"2024-05-23T22:30:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":"fix path (#207)","shortMessageHtmlLink":"fix path (#207)"}},{"before":null,"after":"3320c083dfdea2c720bccdb6106163105428e263","ref":"refs/heads/FixDocPath","pushedAt":"2024-05-23T22:30:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":"fix path","shortMessageHtmlLink":"fix path"}},{"before":"a66e55425c57e8922a9e1e50a618a88155bf8182","after":null,"ref":"refs/heads/SeveralIssues","pushedAt":"2024-05-23T22:27:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"}},{"before":"bb6e28cc7bbf80bd301be1d6930a63a2d3ebc846","after":"42f6b53b252e3c3014c9e68316dbd3271e732533","ref":"refs/heads/master","pushedAt":"2024-05-23T22:27:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":".NET 8 (#206)\n\n* .NET 8\r\nfix #202\r\nfix #203","shortMessageHtmlLink":".NET 8 (#206)"}},{"before":"db72d7a98f8126337877c0c037c43ce0233d8dbd","after":"a66e55425c57e8922a9e1e50a618a88155bf8182","ref":"refs/heads/SeveralIssues","pushedAt":"2024-05-23T22:24:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":"nuget updates","shortMessageHtmlLink":"nuget updates"}},{"before":"9384a4c4030f8f72fa4a935b11675610f5eef4f8","after":"db72d7a98f8126337877c0c037c43ce0233d8dbd","ref":"refs/heads/SeveralIssues","pushedAt":"2024-05-23T22:16:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":"pipeline for .net 8","shortMessageHtmlLink":"pipeline for .net 8"}},{"before":null,"after":"9384a4c4030f8f72fa4a935b11675610f5eef4f8","ref":"refs/heads/SeveralIssues","pushedAt":"2024-05-23T22:13:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":".NET 8\nfix #202\nfix #203","shortMessageHtmlLink":".NET 8"}},{"before":"3849bc28847e2e3ec6d2474283f512a3315b42ae","after":"bb6e28cc7bbf80bd301be1d6930a63a2d3ebc846","ref":"refs/heads/master","pushedAt":"2024-05-23T22:01:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":"Allow serialization of classes without default constructors or [JsonConstructor] (#205)\n\n* Can now serialize classes without default constructors -- it no longer fails due to the deserializer not finding one; instead the deserializer compiles a delegate that throws an exception at deserialization time, instead of eagerly at creation time.","shortMessageHtmlLink":"Allow serialization of classes without default constructors or [JsonC…"}},{"before":"2ad8495cf84f2e4e854a889e5735e42dff93ce92","after":null,"ref":"refs/heads/JsonDictionaryExtension","pushedAt":"2023-07-13T06:42:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"}},{"before":"88a4b08a6e14305e2a60f7fdd42f2febd18db3e2","after":"3849bc28847e2e3ec6d2474283f512a3315b42ae","ref":"refs/heads/master","pushedAt":"2023-07-13T06:42:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":"Properly check duplicate camel casing (#195)\n\n* properly check duplicate camel casing","shortMessageHtmlLink":"Properly check duplicate camel casing (#195)"}},{"before":"a9884ebd6ed5f5183545d5d07ffb7aafafaa2f2f","after":"2ad8495cf84f2e4e854a889e5735e42dff93ce92","ref":"refs/heads/JsonDictionaryExtension","pushedAt":"2023-07-13T06:39:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":"increment version","shortMessageHtmlLink":"increment version"}},{"before":null,"after":"a9884ebd6ed5f5183545d5d07ffb7aafafaa2f2f","ref":"refs/heads/JsonDictionaryExtension","pushedAt":"2023-07-13T06:37:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Tornhoof","name":"Stefan","path":"/Tornhoof","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7989549?s=80&v=4"},"commit":{"message":"properly check duplicate camel casing","shortMessageHtmlLink":"properly check duplicate camel casing"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEjEj5DAA","startCursor":null,"endCursor":null}},"title":"Activity · Tornhoof/SpanJson"}