diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7779003..878f433 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,6 +14,12 @@ on: repository_dispatch: types: [ do-release ] +# Least-privilege ceiling for the called rubygems-release.yml: its release job +# needs contents:write (git tag push) and id-token:write (OIDC Trusted Publishing). +permissions: + contents: write + id-token: write + jobs: release: uses: metanorma/ci/.github/workflows/rubygems-release.yml@main diff --git a/.rubocop.yml b/.rubocop.yml index 06e60f1..372b21e 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,13 +1,31 @@ # Auto-generated by Cimas: Do not edit it manually! # See https://github.com/metanorma/cimas inherit_from: - - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml + - https://raw.githubusercontent.com/riboseinc/oss-guides/main/ci/rubocop.yml + # .rubocop_todo.yml MUST be the last entry. inherit_from is last-wins: + # if listed before oss-guides, the shared config's stricter Metrics/ + # (MethodLength, BlockLength, etc.) rules override the todo's per-file + # grandfathering, and the todo becomes inert on those cops. Empirically + # verified on suma 2026-07-06: with todo listed first, 34 Metrics/* offenses + # remained; moved last, cleared. Every gem in the metanorma-org fleet + # already ships a `.rubocop_todo.yml` on its live tree (audited 2026-07-06, + # 54/54 have it), so this reference is safe to emit unconditionally. + - .rubocop_todo.yml + +# Rubocop plugins enabled centrally so every metanorma-org gem picks them up +# on cimas sync — best practice belongs at the shared-template layer, not +# per-repo. Per ronaldtse feedback on metanorma/ci#332. +plugins: + - rubocop-rspec + - rubocop-performance + - rubocop-rake # local repo-specific modifications # ... -Style/MultilineMethodCallIndentation: - EnforcedStyle: aligned - AllCops: - TargetRubyVersion: 3.1 + # 3.3 matches the org-wide minimum being pushed via #274 (Raise minimum + # Ruby version to 3.3 due to EOL of 3.2 on 2026-03-31). Was 3.4 before + # this commit — 3.4 was above the org's stated minimum and would have + # applied Rubocop rules that fail-close on gems still targeting 3.3. + TargetRubyVersion: 3.3