Skip to content

[GH-7316] Prepare Rubyzen for public release#25

Merged
Stelios Frantzeskakis (steliosfran) merged 4 commits into
mainfrom
7316-prepare-rubyzen-for-public-release
May 14, 2026
Merged

[GH-7316] Prepare Rubyzen for public release#25
Stelios Frantzeskakis (steliosfran) merged 4 commits into
mainfrom
7316-prepare-rubyzen-for-public-release

Conversation

@steliosfran
Copy link
Copy Markdown
Collaborator

@steliosfran Stelios Frantzeskakis (steliosfran) commented May 14, 2026

What changed and why

Checklist

  • Tests are added or updated for the changes
  • bundle exec rspec spec/ passes locally
[GH-7316] Prepare Rubyzen for public release

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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 to gemspec.
  • Replaces env-var-based configuration with Rubyzen.configure { |c| c.paths = ... } plus auto-discovery of app/ lib/ src/ spec/.
  • Renames matchers to zen_empty, zen_true, zen_false and removes the previous expect override + 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.

Comment thread spec/configuration_spec.rb
Comment thread lib/rubyzen.rb
Comment thread lib/rubyzen.rb
Comment thread spec/project_spec.rb
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

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@v5 may not be a valid release tag (the widely used stable major is @v4). If v5 isn’t available, this workflow will fail to run; consider pinning to actions/checkout@v4 (or a specific commit SHA) unless you’ve confirmed v5 exists.
      - name: Checkout code
        uses: actions/checkout@v5

Comment thread lib/rubyzen.rb
Copilot AI review requested due to automatic review settings May 14, 2026 22:12
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 70 out of 72 changed files in this pull request and generated 2 comments.

Comment thread lib/rubyzen.rb
Comment thread lib/rubyzen.rb
@steliosfran Stelios Frantzeskakis (steliosfran) merged commit 2fe727a into main May 14, 2026
7 checks passed
@steliosfran Stelios Frantzeskakis (steliosfran) deleted the 7316-prepare-rubyzen-for-public-release branch May 14, 2026 22:19
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.

3 participants