Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
It's no secret that the upgrade to Ruby 2.7 is difficult — fixing the keyword argument, URI, and other deprecation warnings can feel overwhelming, tedious, and never ending. We experienced this first-hand at GitHub; we fixed over 11k+ warnings, sent patches to 15+ gems, upgraded 30+ gems, and replaced abandoned gems. In this talk we’ll look at our custom monkey patch for capturing warnings, how we divided work among teams, and the keys to a successful Ruby 2.7 upgrade. We’ll explore why upgrading is important and take a dive into Ruby 2.7’s notable performance improvements. Eileen M. Uchitelle Eileen Uchitelle is a Staff Software Engineer on the Ruby Architecture Team at GitHub and a member of the Rails Core team. She's an avid contributor to open source focusing on the Ruby on Rails framework and its dependencies. Eileen is passionate about scalability, performance, and making open source communities more sustainable and welcoming.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In this video titled 'Upgrading GitHub to Ruby 2.7', Eileen M. Uchitelle, a Staff Software Engineer at GitHub, discusses the complexities and strategies associated with upgrading from Ruby 2.6 to Ruby 2.7. The session highlights several key points: - **The Challenge of Upgrading**: The transition to Ruby 2.7 involved addressing over 11,000 warnings in GitHub's codebase, emphasizing that the upgrade process can be overwhelming but is not inherently high risk. - **Importance of Upgrading**: Eileen explains that keeping applications updated prevents technical debt, enhances performance, and contributes to a more stable and scalable system. - **Major Deprecations**: Key deprecations in Ruby 2.7 include changes to positional and keyword arguments and URI methods. Eileen elaborates on how to resolve these warnings, offering practical coding examples. - **Custom Tools and Processes**: To streamline the upgrade, GitHub developed a custom monkey patch for the warning module, which allowed for better tracking and management of warnings. She also discusses a dual boot process that enables testing of different Ruby versions concurrently, reducing merge conflicts and risk during the upgrade. - **Collaboration and Delegation**: The process involved collaboration across teams, allowing them to fix the numerous warnings efficiently. GitHub also sent upstream patches for external gems encountered during the upgrade instead of forking them. - **Deployment Strategy**: Eileen outlines careful deployment strategies, including a phased rollout to monitor for issues in production while emphasizing the importance of testing in a staging environment before the final upgrade. - **Performance Improvements**: Post-upgrade, significant performance enhancements were reported, including a reduction in application boot time and decreased object allocation, which can contribute to overall application efficiency. - **Future-Proofing Ruby**: Eileen concludes by encouraging open-source contributions to improve Ruby for everyone, emphasizing the need for continuous upgrading and the collaborative nature of the Ruby community. The session underscores the notion that while upgrades may pose challenges, they are essential for the long-term viability and performance of applications, especially at scale like GitHub.
Suggest modifications
Cancel