Skip to content

Conversation

@perryqh
Copy link
Contributor

@perryqh perryqh commented Aug 21, 2025

This pull request introduces several improvements and new features to the code ownership infrastructure, focusing on performance, usability, and maintainability. The most significant changes include a new bulk ownership lookup API for files, enhanced documentation and parameterization for ownership queries, workflow optimizations for CI/CD, and dependency updates for the Rust backend. These changes make ownership queries faster and more flexible, improve the artifact publishing and release process, and add more robust validation and error handling.

Features & API Improvements

  • Added bulk ownership lookup: Implemented teams_for_files in the Rust extension and exposed teams_for_files_from_codeowners in Ruby, allowing efficient ownership queries for multiple files at once. This is significantly faster than querying files individually. [1] [2] [3]
  • Enhanced for_file API: Added from_codeowners and allow_raise parameters to for_file, enabling users to choose lookup strategy and error handling behavior. Documentation was expanded with examples and usage notes. [1] [2]
  • Improved verbose ownership reporting: The CLI and API now provide detailed ownership reasons for files, and internal code uses stricter error handling for missing ownership. [1] [2]

CI/CD & Workflow Optimizations

  • Refactored CD workflow: Switched to workflow_call trigger, improved artifact retention, cache isolation, and added platform-specific gem smoke tests. The release step now generates detailed notes and only publishes new versions. [1] [2] [3]
  • Updated platform exclusions: Added more unsupported platforms to the build matrix for clarity and reliability.
  • Improved CI matrix: Added explicit Rust toolchain selection and disabled cargo cache for more predictable builds.

Dependency Updates

  • Updated codeowners-rs dependency: Upgraded to version v0.2.17 for bug fixes and new features.

Documentation & Validation

  • Expanded documentation: All public methods now have thorough documentation, usage examples, and notes on performance and error handling. [1] [2]
  • Improved validation: The validation API is now more robust, with autocorrect and staging options, and clearer error reporting for misconfigurations.

References: [1] [2] [3] [4] [5]Incorporates https://github.com/rubyatscale/codeowners-rs/releases/tag/v0.2.15 for finding teams from an array of files.

This is an optimization for when callers have a large number of files for which they need to know the owning teams.

@github-project-automation github-project-automation bot moved this to Triage in Modularity Aug 21, 2025
@perryqh perryqh force-pushed the ph.team-names-for-files branch 2 times, most recently from 1fb6627 to edde479 Compare August 21, 2025 19:28
Copy link

@conniellim conniellim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@perryqh perryqh changed the title Team names for files Teams for file paths Aug 21, 2025
@perryqh perryqh force-pushed the ph.team-names-for-files branch 2 times, most recently from eb28093 to c3bfe31 Compare August 22, 2025 16:53
@perryqh perryqh marked this pull request as draft August 23, 2025 20:16
@perryqh perryqh force-pushed the ph.team-names-for-files branch 2 times, most recently from e66839f to 8fddb42 Compare August 26, 2025 02:21
@perryqh perryqh force-pushed the ph.team-names-for-files branch from 8fddb42 to 014d4a7 Compare August 28, 2025 19:27
@perryqh perryqh marked this pull request as ready for review August 28, 2025 19:27
@perryqh perryqh force-pushed the ph.team-names-for-files branch 2 times, most recently from 90974a8 to 13a9e49 Compare August 29, 2025 14:00
@perryqh perryqh force-pushed the ph.team-names-for-files branch 2 times, most recently from 2a69a8d to 2940be3 Compare August 30, 2025 22:05
@perryqh perryqh force-pushed the ph.team-names-for-files branch from 2940be3 to 2480661 Compare August 31, 2025 18:10
name: CD

on:
workflow_call:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Manual kickoff (for now).

Copy link

@hellosweta hellosweta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome thanks for tackling this

@perryqh perryqh merged commit 53af0e8 into main Sep 4, 2025
9 checks passed
@perryqh perryqh deleted the ph.team-names-for-files branch September 4, 2025 19:51
@github-project-automation github-project-automation bot moved this from Triage to Done in Modularity Sep 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants