Skip to content

ROR 1.29.0 release#91

Merged
coutoPL merged 2 commits into
masterfrom
release/1.29.0
Apr 9, 2021
Merged

ROR 1.29.0 release#91
coutoPL merged 2 commits into
masterfrom
release/1.29.0

Conversation

@coutoPL
Copy link
Copy Markdown
Collaborator

@coutoPL coutoPL commented Apr 8, 2021

No description provided.

@coutoPL coutoPL requested a review from sscarduzio April 8, 2021 20:45
@coutoPL coutoPL merged commit 759567b into master Apr 9, 2021
@coutoPL coutoPL deleted the release/1.29.0 branch April 9, 2021 13:38
ton77v added a commit that referenced this pull request May 13, 2026
…315)

* feat(changelog): Phase 3 — Issue Forms, render workflow, structured webhook

Companion to beshu-tech/ror-api#86 + #91. After this lands + the prereq repo
settings are applied, the form-driven changelog flow is live end-to-end.

ADD .github/ISSUE_TEMPLATE/changelog-entry.yml + config.yml
  2-field form (version + freeform notes). Each line: <type> (<comp>) <text>.
  Label 'changelog-entry' applied; blank issues disabled.

ADD .github/workflows/maintainer_gate.yml
  Closes + locks changelog issues filed by non-OWNER/MEMBER/COLLABORATOR.
  ~10-30s public window accepted (per prior agreement).

ADD .github/workflows/changelog_form.yml
  On issues [opened, edited] with 'changelog-entry' label:
    1. Parse form body
    2. Map types + canonical components (es/kbn/eck, combinable | / & 'and')
    3. Validate version semver
    4. Write changelog/<version>.yaml + open/refresh PR via peter-evans
    5. Auto-rename issue title, comment PR link, close issue
  Reads .github/changelog-config.yml -> auto_merge toggle. Default false.

ADD .github/workflows/render_changelog.yml
  On push to master OR PR touching changelog/*.yaml:
    - ajv schema validation
    - filename ↔ inner version match check
    - On push only: render changelog.md from YAMLs (semver.rcompare sort),
      commit + push back to master

ADD .github/schemas/changelog-entry.schema.json
  Required: version (semver+pre-release), release_date (date), entries (>=1).
  Per-entry: type enum (new/fix/security/warning/enhancement),
             components array (es/kbn/eck), text (>=1),
             optional components_raw (preserves original separator for
             hash parity with ror-api stored LLM descriptions).

ADD .github/changelog-config.yml
  Single source for form behavior. Starts with auto_merge: false — team
  reviews each PR manually for first weeks; PR-flip to true once trusted.

MODIFY .github/workflows/changelog_watch.yml
  Now fires on push touching changelog/*.yaml (not changelog.md — that's
  now an auto-gen mirror). Per-version event-typed POST to ror-api:
    {event: version_added|modified|deleted, version: X.Y.Z, yaml: <content>}
  Bot-pushed changelog.md regens don't trigger watch (paths filter excludes).
  Legacy diff payload dropped on this side (ror-api fallback kept for 1
  week per Phase 4 cleanup plan).

* fix(ci): tolerate legacy entries — schema accepts components_raw alone + improved migration

CI was failing on 1.26.0.yaml (and other pre-1.30 versions): empty 'entries:'
because ror-api's parse_version_details breaks on the blank line right after
the version header that older entries have.

Fixes:
1. Migration script: tolerant bullet extraction (skip blank lines between
   header and bullets) — pulls 971 entries from 518 previously.
2. Schema: 'components' now optional when 'components_raw' is present.
   Required for new form-driven entries (form action always emits components);
   legacy migration entries with non-canonical strings (KBN ENT, PRO/Enterprise,
   etc.) emit components_raw only and pass.
3. Schema: type can be any string, not just the canonical 5. Pre-1.30
   entries had freeform type labels that don't map cleanly.

Hash parity: 64/66 versions still match (was 66/66 with the smaller dataset).
The 2 that don't (1.26.0, 1.35.0) had backslash-escaped parens that produce
different normalized strings post-unescape — acceptable trade-off, costs ~2
LLM re-runs on next sync, much better than 60+ missing entries.

Edge cases (183, mostly KBN ENT / Enterprise / PRO product variants)
emitted with components_raw verbatim + manual-review comment block.

* fix(ci): regex tolerates emoji-before-bold + missing parens; never emit empty text/components_raw

Updates 1.26.0.yaml + 1.35.0.yaml to parse the previously-unparseable legacy bullets
('emoji**Type**', no '(component)' at all). Truly unparseable entries fall back to
components_raw='unparsed' + text=original-bullet so schema passes.

* review: address @coutoPL comments

- schema: drop null from entries.type, restore minItems: 1. After parser fixes
  in migration script, no YAML produces null entries; allowing null was dead
  code that would have masked future bugs (render JS crashes on null anyway).
- changelog-config.yml: auto_merge true -> false. Ship as false per the file's
  own rollout comment — team manually reviews PRs first releases, then PR-flips.
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.

2 participants