Skip to content

Railstart 0.5.0 - #34

Merged
dpaluy merged 6 commits into
masterfrom
agent/ruby-4-railstart-hardening
Jul 11, 2026
Merged

Railstart 0.5.0#34
dpaluy merged 6 commits into
masterfrom
agent/ruby-4-railstart-hardening

Conversation

@dpaluy

@dpaluy dpaluy commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • Railstart 0.5.0 and update the changelog/version metadata
  • pin local development and release workflows to Ruby 4.0.5
  • preserve the existing Ruby 3.4 and 4.0 CI matrix entries and add exact Ruby 4.0.5 coverage
  • update Minitest to 6.0.6, Rake to 13.4.2, RuboCop to 1.88.2, and YARD to 0.9.44
  • fix the shipped CSS none choice and API-only preset to emit --skip-css
  • execute rails new with an argument vector instead of a shell-interpreted command string
  • strengthen config validation for duplicate IDs, defaults, flags, dependencies, conditions, and template variables
  • make railstart init generate minimal overrides instead of freezing the full shipped schema
  • expand CI to cover tests, lint, docs, packaging, executable smoke checks, and real Rails CLI contracts

Why

The API-only preset generated --css=none, which Rails rejects. Existing unit coverage used a hand-built fixture and did not exercise the shipped YAML. The generator also passed user-influenced values through a shell command string, and configuration validation allowed malformed values to fail late.

The previous CI workflow ran only the default test task, so it missed RuboCop failures, documentation dependency problems, packaging warnings, and invalid shipped preset commands.

Ruby compatibility

The gem continues to support Ruby 3.2 and newer. RuboCop continues to target Ruby 3.2 syntax.

Development and release use exact Ruby 4.0.5. CI retains the existing Ruby 3.4 and 4.0 entries and adds exact Ruby 4.0.5 coverage.

Dependency updates

This release incorporates the open gem update PRs:

  • Minitest 6.0.3 to 6.0.6
  • Rake 13.3.1 to 13.4.2
  • RuboCop 1.86.1 to 1.88.2, one patch newer than the original 1.88.1 Dependabot PR
  • YARD 0.9.38 to 0.9.44

The separate actions/checkout v5 to v7 major update remains out of scope.

Closes #25
Closes #26
Closes #29
Closes #33

Impact

Existing user configuration remains layered by ID. New railstart init output is deliberately minimal so later built-in choices and flags continue to flow through upgrades.

The changelog, version constant, and lockfile are synchronized to 0.5.0.

Validation

  • Ruby 4.0.5, bundle exec rake test: 67 runs, 197 assertions, 0 failures, 0 errors, 1 intentional opt-in skip
  • Ruby 3.4.5 test suite: 67 runs, 197 assertions, 0 failures, 0 errors, 1 intentional opt-in skip
  • bundle exec rubocop: 23 files inspected, no offenses
  • RAILS_CONTRACT=1 bundle exec ruby -Itest test/rails_cli_contract_test.rb: 1 run, 4 assertions, 0 failures
  • bundle exec rake yard: successful with warnings treated as failures
  • ruby -c exe/railstart: syntax OK
  • bundle exec exe/railstart version: Railstart v0.5.0
  • gem build railstart.gemspec: successfully built railstart-0.5.0.gem without file-permission warnings

@dpaluy
dpaluy marked this pull request as ready for review July 11, 2026 18:28
@dpaluy
dpaluy force-pushed the agent/ruby-4-railstart-hardening branch from b240660 to ffa3bfd Compare July 11, 2026 18:29
@dpaluy
dpaluy force-pushed the agent/ruby-4-railstart-hardening branch from ffa3bfd to 40f6911 Compare July 11, 2026 18:30
@dpaluy dpaluy changed the title Require Ruby 4.0.5 and harden Railstart generation Add Ruby 4.0.5 coverage and harden Railstart generation Jul 11, 2026
@dpaluy dpaluy changed the title Add Ruby 4.0.5 coverage and harden Railstart generation Prepare Railstart 0.5.0 Jul 11, 2026
@dpaluy dpaluy changed the title Prepare Railstart 0.5.0 Railstart 0.5.0 Jul 11, 2026
@dpaluy
dpaluy merged commit 4af5ac5 into master Jul 11, 2026
3 checks passed
@dpaluy
dpaluy deleted the agent/ruby-4-railstart-hardening branch July 11, 2026 18:48
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.

1 participant