Updating Nokogiri, like any other gem in a Ruby application, should be done carefully to ensure compatibility with your application's codebase as well as with other gems you may be using. Here are the steps you should follow to update Nokogiri safely:
Check the Changelog: Before updating, check the Nokogiri changelog for any breaking changes or important updates that you should be aware of. This can inform you about the necessary changes you might need to make to your code.
Update Your Gemfile: Specify the desired version of Nokogiri in your Gemfile. It's generally a good practice to update to the latest stable version unless you have a specific reason not to. For example:
gem 'nokogiri', '~> 1.13.0'
The ~>
(twiddle-wakka) operator will update Nokogiri to the latest patch version within the specified minor version.
Run Bundle Update: Run
bundle update nokogiri
in your terminal. This command will update Nokogiri and its dependencies. If you have other dependencies that require a specific version of Nokogiri, Bundler will attempt to find a version that satisfies all dependencies.Run Your Test Suite: After updating, run your test suite to ensure that your application still works as expected. If you don't have a test suite, manually test the parts of your application that use Nokogiri.
Read the Documentation: If you encounter any issues, read the Nokogiri documentation for changes in the API that may affect your code. Update your code accordingly.
Check Other Dependencies: Make sure that other gems that depend on Nokogiri are also compatible with the updated version. You can use
bundle outdated
to see which gems are outdated andbundle show
to see which gems depend on Nokogiri.Consider Using Bundler-audit: Use the
bundler-audit
gem to scan your Gemfile.lock for known vulnerabilities. Install it withgem install bundler-audit
and runbundler-audit check
.Commit Changes: Once you've successfully updated Nokogiri and ensured that your application works correctly, commit the changes to your
Gemfile
andGemfile.lock
.
Here's how you generally update Nokogiri and run bundler-audit
:
# Update Nokogiri
bundle update nokogiri
# Install bundler-audit if you haven't already
gem install bundler-audit
# Check for known vulnerabilities
bundler-audit check
Remember:
- Stick to semantic versioning. Update major versions with caution as they may introduce breaking changes.
- If you're updating Nokogiri due to a security vulnerability, prioritize the update and take the necessary steps to ensure your application is secure.
- If you're working on a team or on a project with a deployment pipeline, ensure that your updates work in your staging/testing environment before deploying to production.
Compatibility is not just about the code—it's also about ensuring that your production systems (like servers or containers) have the necessary system libraries that Nokogiri depends on, such as libxml2
and libxslt
. If you're updating to a version with updated native extensions, you might need to install or update these libraries on your systems.