Audit and fix gitlab-rails dependencies for Ruby 3.1/3.2 compat
We audited Audit and fix gitlab-rails dependencies for Rub... (&8845 - closed) gems for Ruby 3.0 support and require a similar audit process for Ruby 3.1 and 3.2
Our current tentative timeline targets are:
- Initial audit complete by 2023-09-01
- Any follow up actions for 3.1 completed by 2023-10-01
What to do
EMs I would appreciate you help in finding Engineers who can help identify and audit Gems related to your teams for Ruby 3.1/3.2 compatibility. Thank you!
Instructions
Some guidelines for how to use the gem audit sheet below.
Note that the sheet uses color formatting to easily spot problems. Some columns require you to put in Y
or N
for this to work.
Process
- Focus on gems first that you have expertise in. If your group owns the area in which this gem is used, fill in
Category/owner
and any other blank rows (version used, use case, etc). - Assign yourself to any gem you're looking at using the last column. You can
@
-autocomplete your GApps user. - Link the gem name in the 1st column to the code or project repository for easy reference.
-
When your review is complete, mark the
Review complete
column withY
so it turns from red to green. Done here means you are done performing the review; it does not mean the issues you may have found are fixed. -
If you found problems, set the
Action required
column toY
if you think we must act on these issues, orN
otherwise. You can also set it to?
to indicate you are unsure about it. Use theComments/actions
column to suggest follow-ups. Prefer to link to GitLab issues here instead of writing walls of text. Use your best judgment to suggest solutions, keeping in mind that this is all done on a best-effort basis. We should focus on high-severity problems. It could be OK to just document edge-case issues for now. - You can use ruby-audit to help pull the correct gem source code for your testing. Also consider contributing to the project to further automate ruby audits.
- For the EMs, please check the box next to your name in the Manager sign off section once your team has done 1) auditing the gems your team owns and 2) creating follow-up issues when seeing Ruby 3.1/3.2 compatibility issue with those gems.
-
IMPORTANT: Should you resolve any issues you found, e.g. by updating a gem to a newer version or submitting code fixes, please update the entire row to reflect the new state and toggle
Action required
toN
since otherwise it is unclear whether follow-up work is complete or ongoing.
Considerations
- We will roll out 3.1 first, but are looking to document both 3.1 and 3.2 issues
- Think about use cases that may not be well-covered with automated tests we already run. An example could be edge cases that only trigger with specific data being used.
- Pay special attention to gems that use C-extensions. These talk to internal MRI APIs that may change across major Ruby releases.
- Browse the gem's issue tracker for any signs of Ruby 3 incompatibilities.
- Check whether the gem is running CI builds against Ruby 3.1/3.2 already.
Teams
-
Pipeline Execution: @carolinesimpson -
Pipeline Authoring: @marknuzzo -
Pipeline Security: @shampton / @morefice -
Verify Runner: @nicolewilliams -
Monitor Observability: @nicholasklick -
Monitor Respond: @francoisrose -
Container Registry: @crystalpoole -
Package Registry: @crystalpoole -
Deploy: Environments: @nmezzopera -
Authentication & Authorization: @adil.farrukh -
Manage Foundation: @samdbeckham -
Import and Integrate: @wortschi -
Govern Compliance: @nrosandich -
Plan Project Management: @donaldcook -
Plan Optimize: @blabuschagne -
Plan Product Planning: @kushalpandya -
Analyze Product Analytics: @dennis -
Govern Threat Insights: @nmccorrison -
Growth Acquisition and Activation: @kniechajewicz -
Data Science Anti-Abuse: @jayswain -
Govern Security Policies: @alan -
Secure Dynamic Analysis: @twoodham -
Secure Static Analysis: @amarpatel -
Secure Composition Analysis: @gonzoyumo -
Applied Machine Learning: @mray2020 -
Application Performance: @pjphillips -
Global Search: @changzhengliu -
Distribution: @twk3 -
Geo: @juan-silva -
Database: @alexives -
Tenant Scale: @arturoherrero -
Gitaly: @andrashorvath -
Create ide: @oregand -
Create Source Code: @sean_carroll -
Code Review: @mnohr -
Fulfillment Utilization: @csouthard -
Fulfillment Platform: @jameslopez -
Fulfillment Purchase: @shreyasagarwal -
Fulfillment Provision: @isandin -
Secure Automation: @agroleau
Edited by Jay