Skip to content

Harden the Activity data contract before automatic merges #284

Description

@mmcky

Part of #271 (Phase 3).

Why. From QuantEcon/reports-activity#91's first live run, the reporter's daily PRs merge without review, so the website's data check becomes the only gate on what reaches quantecon.org. On 2026-09-29 the maintainer settled the contract those PRs must meet (recorded on #271). Today the check misses two failures: an overwritten data file (in a test, the entry count fell from 40 to 37 and the check still passed), and the same release or PR appearing in two files. The README also still says files are named by run date.

Work.

  • File naming. In README's "Activity data" section and the comment in _layouts/activity.html: files are _data/activity/<day>-<stream>.yml for the UTC day covered, and a re-run only appends new entries after the existing ones.
  • The book type. Add book to the README's data format, and add "updates to existing books" to Activity's definition. Accept the type in .github/scripts/check-activity-data.rb. The definition change is for John to see, since the definitions were approved in Approve the News and Activity stream definitions #272.
  • A stricter data check in check-activity-data.rb: fail when a release URL or a PR URL appears twice across files, and, on pull requests, when an existing entry is changed or removed.
  • A safeguard for the reporter's PRs in .github/workflows/build.yml: a first step, before ruby/setup-ruby, that fails any PR authored by the reporter's bot (user ID 294005175) if it changes anything other than new or appended _data/activity/*.yml files. Add permissions: contents: read to the workflow. Keep the job named build: that is the required status check.

This must merge before QuantEcon/reports-activity#91 goes live.

Acceptance criteria

  • README and the layout comment describe day-named, append-only files, and the book type.
  • The data check passes on main's data, and fails, naming the file, on: a changed or removed existing entry; a release URL or PR URL repeated across files; a type other than release, lectures, translation or book.
  • A PR from the reporter's bot that changes any other file fails build; PRs from anyone else are unaffected.
  • The required check is still named build, and a normalised build diff shows no visible change to the site.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions