Prepare 2.3.0 and fix release QA findings - #68
Conversation
Synchronize the gem and library versions for the discovery, JSON Feed, normalized entry, and parser improvements merged since 2.2.0. Group the release notes under Unreleased until the publication date is known. Refresh the package descriptions and remove the stale hardcoded gem date. Add a concise overview of the 2.3.0 features to the README.
Greptile SummaryPrepares the 2.3.0 release and addresses the five release-QA failure families.
Confidence Score: 5/5The current revision appears safe to merge, with the release-QA fixes preserving established error contracts and adding focused regression coverage. No actionable new defect or repository-rule violation remains; bodyless responses are normalized consistently, invalid discovery inputs are rejected before HTTP access, malformed dates remain inspectable as normalization issues, and invalid JSON encoding or non-finite numbers are rejected before data exposure. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Feed input] --> B{Input type}
B -->|Website URL| C[Discovery and HTTP policy checks]
C --> D[Normalize absent response body]
D --> E[Feed or HTML detection]
B -->|JSON Feed| F[Validate UTF-8]
F --> G[Parse JSON]
G --> H[Reject non-finite numbers]
H --> I[Validate feed structure]
I --> J[Normalize entries]
J --> K[Validate RFC 3339 and Gregorian dates]
K --> L[Expose normalized feed]
Reviews (2): Last reviewed commit: "fix: address release QA failures" | Re-trigger Greptile |
Handle bodyless HTTP responses and reject non-string discovery inputs with library errors instead of runtime exceptions. Validate JSON input encoding and finite numeric values before exposing raw data. This prevents invalid strings, numeric ID collisions, and serialization failures. Enforce RFC 3339 clock and offset ranges and use Gregorian dates consistently. Add regressions for all five bug families found during exploratory QA and document the corrected behavior for 2.3.0. See #68
|
@greptileai Please review current head |
|
Hound is applying defaults that conflict with |
Prepare 2.3.0 for website discovery, normalized entries, JSON Feed parsing, and the parser fixes merged in #62–#67. The release QA pass found five additional bug families; this PR fixes them and adds permanent regressions.
Both version declarations now report
2.3.0. The README includes release highlights, the package description reflects current capabilities, and the stale hardcoded gem date is removed. Existing release notes and the new fixes are grouped underUnreleased→2.3.0.QA findings fixed
fetch/discoverNoMethodErrorduring HTTPS normalizationPolicyErrorbefore HTTPnildate andinvalid_dateissue, retaining the original valueSimpleRSSErrorbefore exposing dataInfinity; extension serialization can failTimestamp validation also uses the Gregorian calendar consistently, accepting historical dates skipped by Ruby's default calendar cutover and rejecting Julian-only leap dates. Clock/offset ranges follow RFC 3339.
For example, malformed dates remain inspectable without becoming misleading timestamps:
Validation
The five bug families were reproduced before their fixes. Raw RSS/Atom entity preservation was compared with 2.2.0 and confirmed as existing behavior; normalized fields decode those entities correctly. No further failures remained in the scenarios exercised.
Publication
When publishing, promote the staged notes to
## 2.3.0 - YYYY-MM-DDusing the actual publication date, leave an empty## Unreleasedsection, and tagv2.3.0on the release commit. The existing tag workflow runs CI, publishes the gem, and creates the GitHub Release. The changelog remains undated here because repository instructions reserve release dates for publication.