RailsConf 2023 - Building Ruby Head for your Rails App by Maple Ong

Learn to build, upgrade and customize Ruby for your Rails app, improving performance, security, and control over the build process.

Key takeaways
  • Building Ruby head provides a smaller surface area for security vulnerabilities, as it’s a more recent and frequently updated version of Ruby.
  • Installing Ruby head can be done with a single command, sudo make install, which compiles and installs Ruby from source.
  • Compiling Ruby from source allows for more control over the build process and customizations.
  • Using a package manager like Homebrew or Mac OS to install Ruby head is not recommended as it can lead to version conflicts and unexpected behavior.
  • Gradual upgrades to Ruby head can be achieved by building a pipeline that compiles and installs Ruby head, then installs dependencies and runs tests.
  • Docker images can be used to build and test Ruby head, allowing for easier deployment and management of Ruby applications.
  • Ruby head can be used to upgrade gems and dependencies, reducing the risk of compatibility issues and making it easier to keep up with the latest features and security patches.
  • JEMALOC is a memory allocation library that can be used with Ruby head to improve performance and reduce memory leaks.
  • Preloading JEMALOC can help to prevent memory allocation failures and improve the overall performance of Ruby applications.
  • Ruby head can be built locally using the ruby-build package, which provides a simple way to build and install Ruby head.
  • Upgrading to Ruby head can improve the performance and security of Ruby applications, but it requires careful planning and testing to ensure compatibility with existing dependencies and codebases.
  • Ruby head is the development version of Ruby, and it’s regularly updated with new features, security patches, and performance improvements.
  • Building Ruby head locally allows for more control over the build process and customizations, but it can be time-consuming and requires technical expertise.