Padrino

Padrino 0.16.0 release

We are pleased to announce the official release of Padrino 0.16.0, the first major release in several years. This release was made possible by the contributions of @achiurizo, @olleolleolle, @crashtech, and many others.

Padrino 0.16.0 primarily modernizes the framework to ensure compatibility with the latest versions of Ruby, Sinatra, and Rack. We've shared more details about this release below.

Changes

  • NEW #2308, #2310 Code modernization. Codebase is now passing Rubocop (11 offenses only) and generator's templates are using modern syntax (@crashtech)
  • FIX #2306 Specs are now passing for Ruby 3.4 (@crashtech)
  • NEW #2306 Added what HTTP Server to use as an option when generating a new project (@crashtech)
  • FIX #2306 Added the HTTP Server to Gemfile as Ruby 3.0 removed WEBrick from the standard library (@crashtech)
  • FIX #2306 Patch Padrino.core by filtering any 'coreext/kernelrequire' (common pattern for gems that override Kernel#require) from caller entries (@crashtech)
  • FIX #2294 Make detect_rack_handler compatible with Rack 3 (@osbre)
  • FIX #2292 Fixes to README and cleanup (@olleolleolle)
  • FIX #2290 Fixes nil error with latest Rack (@nesquena)
  • FIX #2287 Bump to rack ~>3 and add rack to gemspec (@achirizo)
  • FIX #2286 Bump moneta to 1.6 (@achirizo)
  • FIX #2282 Remove FakeWeb, use Webmock (@achiurizo)
  • NEW #2279 Initial Rubocop setup (@achiurizo)
  • FIX #2277 Upgrade deprecations and support Ruby 3.2 (@achiurizo)
  • FIX #2276 Rename MiniTest to Minitest (@kevin-j-m)

New dependencies versions

Padrino v0.16 now requires Ruby >= 2.7.8. This change aligns us with Sinatra ~> 4.0, which we have also changed in this release. Consequently, this upgrade also requires an upgrade to Rack >= 3.0. These updates ensure that Padrino applications are running on secure, modern foundations and can leverage the latest performance improvements and features available from its dependencies.

HTTP Server Configuration

This is the only breaking change in this release.

WEBrick has been removed from the Ruby Standard Library as of Ruby 3.0. This means that applications relying on the default HTTP server will encounter issues when running on Ruby versions 3.0 and above. To upgrade properly, Padrino now requires developers to explicitly specify their preferred HTTP server in the Gemfile. If your application does not have a manual HTTP server defined, add gem 'webrick' to your Gemfile.

When creating a new Padrino application, you can choose a HTTP server with the --server (-s) option. The full set of options are: thin, puma, spider-gazelle, mongrel, trinidad (JRuby), and webrick (default).

Codebase Updates for Ruby 3.4

We have performed a comprehensive refactoring of the codebase. Both the internal Padrino code and the code generated by our scaffolding tools have been updated to align with the syntax and best practices of Ruby 3.4. This ensures a cleaner, more efficient codebase and provides a better developer experience when working with generated files.

Contribute

Please report any issues you encounter with this release! We are working very actively on Padrino and want to make the framework as stable and reliable as possible. That concludes the changelog for this release. As always if you want to keep up with Padrino updates, be sure to follow us on twitter: @padrinorb, join us on IRC at “#padrino” on freenode, open an issue, or discuss on gitter.


comments powered by Disqus