[GH-7316] Prepare Rubyzen for public release#25
Merged
Stelios Frantzeskakis (steliosfran) merged 4 commits intoMay 14, 2026
Merged
Conversation
Copilot started reviewing on behalf of
Stelios Frantzeskakis (steliosfran)
May 14, 2026 21:22
View session
There was a problem hiding this comment.
Pull request overview
This PR prepares Rubyzen for a public gem release by formalizing packaging (gemspec/Gemfile), simplifying configuration via auto-discovery, and renaming custom RSpec matchers to avoid collisions with built-in RSpec matchers.
Changes:
- Introduces
rubyzen.gemspec+lib/rubyzen/version.rb, and switches Gemfile togemspec. - Replaces env-var-based configuration with
Rubyzen.configure { |c| c.paths = ... }plus auto-discovery ofapp/ lib/ src/ spec/. - Renames matchers to
zen_empty,zen_true,zen_falseand removes the previousexpectoverride + deprecated matcher.
Reviewed changes
Copilot reviewed 70 out of 72 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| spec/rspec/rspec_config_spec.rb | Removes expect-override coverage (file deleted) |
| spec/project_spec.rb | Adds Project path error tests |
| spec/matchers/zen_true_matcher_spec.rb | Updates matcher spec to zen_true |
| spec/matchers/zen_false_matcher_spec.rb | Updates matcher spec to zen_false |
| spec/matchers/zen_empty_matcher_spec.rb | Updates matcher spec to zen_empty |
| spec/matchers/be_empty_with_exceptions_matcher_spec.rb | Removes deprecated matcher spec (file deleted) |
| spec/declarations/method_declaration_spec.rb | Updates empty assertion to zen_empty |
| spec/declarations/file_declaration_spec.rb | Updates empty assertion to zen_empty |
| spec/declarations/call_site_declaration_spec.rb | Updates empty assertion to zen_empty |
| spec/configuration_spec.rb | Adds auto-discovery + DSL config tests |
| spec/collections/rescues_collection_spec.rb | Updates empty assertion to zen_empty |
| spec/collections/raises_collection_spec.rb | Updates empty assertion to zen_empty |
| sample_project/spec/tests/no_hardcoded_coordinates_in_factories_lint_spec.rb | Updates matcher to zen_false |
| sample_project/spec/tests/limit_let_block_size_lint_spec.rb | Updates matcher to zen_false |
| sample_project/spec/spec_helper.rb | Removes pry; fixes context + paths |
| sample_project/spec/services/include_remote_addr_in_calls_to_deliver_lint_spec.rb | Updates matcher to zen_empty |
| sample_project/spec/requests/validate_required_profile_id_lint_spec.rb | Updates matcher to zen_true |
| sample_project/spec/repos/repos_lint_spec.rb | Updates matcher to zen_true |
| sample_project/spec/presenters/do_not_depend_on_repositories_lint_spec.rb | Updates matcher to zen_false |
| sample_project/spec/modules/module_file_path_consistency_lint_spec.rb | Updates matcher to zen_true |
| sample_project/spec/models/no_requires_in_models_lint_spec.rb | Updates matcher to zen_empty |
| sample_project/spec/models/no_questions_in_models_lint_spec.rb | Updates matcher to zen_empty |
| sample_project/spec/models/no_complex_logic_in_models_lint_spec.rb | Updates matcher to zen_empty |
| sample_project/spec/logger/logger_info_calls_include_details_lint_spec.rb | Updates matcher + trims comments |
| sample_project/spec/exceptions/no_generic_error_lint_spec.rb | Updates matcher to zen_empty |
| sample_project/spec/database/do_not_call_active_record_models_outside_repos_lint_spec.rb | Updates matcher + trims comments |
| sample_project/spec/controllers/no_if_statements_in_controllers_lint_spec.rb | Updates matchers to zen_* |
| sample_project/spec/controllers/controllers_must_have_tests_lint_spec.rb | Updates matcher to zen_empty |
| sample_project/spec/controllers/controller_number_of_lines_limits_lint_spec.rb | Updates matcher to zen_empty |
| sample_project/spec/constants/no_top_level_constants_lint_spec.rb | Updates matcher to zen_false |
| sample_project/spec/attributes/no_public_attr_writer_in_models_lint_spec.rb | Updates matcher to zen_false |
| rubyzen.gemspec | Adds gem specification for release |
| README.md | Updates setup/config/docs for release |
| lib/rubyzen/version.rb | Adds gem version constant |
| lib/rubyzen/rspec/rspec_config.rb | Removes expect override (file deleted) |
| lib/rubyzen/providers/requires_provider.rb | Removes manual requires (Zeitwerk) |
| lib/rubyzen/providers/attributes_provider.rb | Removes manual requires (Zeitwerk) |
| lib/rubyzen/project.rb | Expands paths + validates existence |
| lib/rubyzen/matchers/zen_true_matcher.rb | Renames matcher definition + docs |
| lib/rubyzen/matchers/zen_false_matcher.rb | Renames matcher definition + docs |
| lib/rubyzen/matchers/zen_empty_matcher.rb | Renames matcher definition + docs |
| lib/rubyzen/matchers/be_empty_with_exceptions_matcher.rb | Removes deprecated matcher (file deleted) |
| lib/rubyzen/declarations/require_declaration.rb | Removes manual requires (Zeitwerk) |
| lib/rubyzen/declarations/constant_declaration.rb | Removes manual requires (Zeitwerk) |
| lib/rubyzen/declarations/attribute_declaration.rb | Removes manual requires (Zeitwerk) |
| lib/rubyzen/collections/requires_collection.rb | Updates docs; removes manual requires |
| lib/rubyzen/collections/raises_collection.rb | Updates docs to zen_empty |
| lib/rubyzen/collections/modules_collection.rb | Removes manual requires (Zeitwerk) |
| lib/rubyzen/collections/methods_collection.rb | Removes manual requires (Zeitwerk) |
| lib/rubyzen/collections/constants_collection.rb | Removes manual requires (Zeitwerk) |
| lib/rubyzen/collections/classes_collection.rb | Updates docs to zen_empty |
| lib/rubyzen/collections/call_site_collection.rb | Updates docs to zen_empty |
| lib/rubyzen/collections/attributes_collection.rb | Updates docs; removes manual requires |
| lib/rubyzen.rb | Adds errors, configuration DSL, auto-discovery, matcher loads |
| Gemfile.lock | Switches to path gem rubyzen! |
| Gemfile | Uses gemspec + dev deps only |
| CONTRIBUTING.md | Adds contributing guide |
| CODE_OF_CONDUCT.md | Adds code of conduct |
| CLAUDE.md | Updates docs for new matchers/config |
| action.yml | Removes composite action (file deleted) |
| ACTION_README.md | Removes action docs (file deleted) |
| .github/workflows/tests.yml | Adds Ruby version matrix |
| .github/PULL_REQUEST_TEMPLATE.md | Adds PR template |
| .github/ISSUE_TEMPLATE/feature_request.md | Adds feature request template |
| .github/ISSUE_TEMPLATE/bug_report.md | Adds bug report template |
| .devcontainer/README.md | Removes devcontainer docs (file deleted) |
| .devcontainer/devcontainer.json | Removes devcontainer config (file deleted) |
| .claude/skills/write-lint-rule/SKILL.md | Updates docs for zen_* matchers |
| .claude/skills/run-tests/SKILL.md | Updates docs for zen_* matchers |
| .claude/skills/run-lint-rules/SKILL.md | Updates docs for new project setup |
| .claude/skills/add-rubyzen-tests/SKILL.md | Updates docs/examples to zen_empty |
Comments suppressed due to low confidence (1)
spec/project_spec.rb:66
- Same portability/flakiness concern as above: the array includes a hard-coded
/non/existent/path. Prefer a generated non-existent temp path so the spec is deterministic across environments.
Copilot started reviewing on behalf of
Stelios Frantzeskakis (steliosfran)
May 14, 2026 21:35
View session
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 70 out of 72 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
.github/workflows/tests.yml:16
actions/checkout@v5may not be a valid release tag (the widely used stable major is@v4). Ifv5isn’t available, this workflow will fail to run; consider pinning toactions/checkout@v4(or a specific commit SHA) unless you’ve confirmedv5exists.
- name: Checkout code
uses: actions/checkout@v5
Eric Silverberg (esilverberg)
approved these changes
May 14, 2026
Copilot started reviewing on behalf of
Stelios Frantzeskakis (steliosfran)
May 14, 2026 22:12
View session
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed and why
Checklist
bundle exec rspec spec/passes locally[GH-7316] Prepare Rubyzen for public release