Skip to content

Instantly share code, notes, and snippets.

@ixti
Created September 3, 2019 21:57
Show Gist options
  • Save ixti/686e481c5787a65ff473ec8350a55807 to your computer and use it in GitHub Desktop.
Save ixti/686e481c5787a65ff473ec8350a55807 to your computer and use it in GitHub Desktop.
Brain-damaged "see changes on releases page" idiocy to changelog converter for mongo ruby driver
# frozen_string_literal: true
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "http"
end
gh_project = "mongodb/mongo-ruby-driver"
gem_name = "mongo"
min_version = Gem::Version.new("2.6.2")
################################################################################
versions = HTTP.get("https://rubygems.org/api/v1/versions/#{gem_name}.json")
.parse(:json).map { |data| Gem::Version.new(data.fetch("number")) }
.select { |version| min_version < version }.sort
HTTP.persistent("https://api.github.com") do |http|
versions.reverse_each do |version|
data = http.get("https://api.github.com/repos/#{gh_project}/releases/tags/v#{version}").parse(:json)
begin
puts <<~MARKDOWN
## v#{version}
*Release Notes: #{data.fetch 'html_url'}*
MARKDOWN
rescue
require "yaml"
puts YAML.dump data
raise
end
puts "\n\n"
puts data.fetch("body").delete("\r")
puts "\n\n"
end
end
@ixti
Copy link
Author

ixti commented Sep 3, 2019

Mongo Ruby Driver Changelog

v2.10.1

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.10.1

This patch release in 2.10 series improves diagnostics provided by the driver when operations fail on servers or due to network issues. The following tickets have been fixed:

v2.10.0

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.10.0

This feature release provides support for MongoDB server 4.2 features. The following issues have been addressed since the 2.10.0.rc0 release:

For complete list of changes since driver version 2.9, please refer to 2.10.0.rc0 release notes.

v2.10.0.rc0

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.10.0.rc0

This is a preview of 2.10.0 release, incorporating the following major new features:

The following minor improvements were made:

The following bugs have been fixed:

v2.9.1

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.9.1

This bug fix release in the 2.9 series fixes one additional issue discovered since 2.9.1.rc0 release:

v2.9.1.rc0

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.9.1.rc0

This patch release in the 2.9 series fixes two issues:

v2.9.0

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.9.0

This release of the Ruby driver adds the following major features:

  • A rewrite of the connection pool code with improved monitoring, compliant with CMAP specification
  • A modern retryable reads implementation compliant with cross-driver retryable reads specification, enabled by default
  • Modern retryable writes are enabled by default
  • Legacy retryable writes can be disabled in most cases
  • Ability to specify multiple root certificates to the driver
  • Ability to pass private key and certificate to driver via URI options

This release also officially deprecates support for Ruby versions less than 2.3. This release and version 2.10.0 will continue supporting Ruby 1.9-2.2, and versions 2.11.0 and newer will require at least Ruby 2.3.

Please review 2.9.0.rc0 and 2.9.0.rc1 for detailed lists of changes made. This release has one change since 2.9.0.rc1 to add retryReads URI option, which was unintentionally omitted in the initial implementation of retryable reads.

v2.9.0.rc1

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.9.0.rc1

This is a second release candidate for the upcoming 2.9.0 release which primarily improves TLS certificate and private key handling in various environments. The following notable tickets have been resolved:

We expect to release 2.9.0 final in about 1-2 weeks.

v2.9.0.rc0

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.9.0.rc0

This is a preview of the 2.9.0 release, featuring the following major improvements/changes:

The following minor improvements/changes were also made:

We expect to release 2.9.0 final in about 2 weeks.

v2.8.0

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.8.0

This feature release of the Ruby driver improves connection- and authentication- related diagnostics as well as streamlines handshake and authentication code.

The following issue has been fixed since 2.8.0.rc0:

Please review 2.8.0.rc0 release notes for the full list of changes.

v2.8.0.rc0

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.8.0.rc0

This release builds on the 2.7.1 release by improving connection- and authentication-related diagnostics as well as streamlining handshake and authentication code.

The following notable tickets have been closed:

We expect to release 2.8.0 final in about two weeks.

v2.7.2

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.7.2

This is a maintenance release in the 2.7.x series. It fixes one issue in 2.7.1 potentially affecting applications' test suites:

v2.7.1

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.7.1

This release is a maintenance release in the 2.7.x series. It primarily improves server monitoring and server selection diagnostics, as well as the convenient transaction API.

The following notable tickets have been closed:

v2.7.0

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.7.0

This feature release of the Ruby driver features an improved SDAM implementation, unified URI options and a preview of the convenient API for transactions.

Please refer to release notes for 2.7.0.rc0 for the complete list of new features and changes.

2.7.0 fixes the following issue identified during the RC process:

v2.7.0.rc0

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.7.0.rc0

This preview of the upcoming 2.7.0 feature release of the Ruby driver has the following major new features:

  • RUBY-1431 SDAM and Server Selection Spec Compliance. Large portions of SDAM code have been rewritten to bring the driver in compliance with published MongoDB driver specifications. No changes to applications using MongoDB are required, however applications should see the following benefits:
    • Faster server selection (including during failover in replica sets)
    • Faster client initialization
    • Better concurrency as more I/O is now done in background threads
    • Improved logging and diagnostics of server discovery, topology changes and removal of servers from topology
    • Better resiliency to connection and authentication errors
    • SDAM events are now published in a more consistent manner
    • Monitoring connections no longer authenticate, lessening load on the cluster
    • Topology and server description objects are no longer mutated in place, simplifying change tracking for applications/APM implementors
    • Locks have been added to synchronize topology updates
    • It is possible to wait for background monitoring threads to terminate when closing the client
  • RUBY-1559 Unified URI Options. This adds support for a multitude of options in MongoDB URIs to the driver, in a way consistent with other MongoDB-maintained drivers.
  • RUBY-1574 Convenient API for Transactions. This adds a with_transaction method to session objects to provide an easier way to retry operations in a transaction until they commit successfully.

The following minor improvements have also been made:

The following bugs have been fixed:

As well, a number of improvements have been made to tutorial and API documentation of the driver. Full list of fixed issues may be found here.

This version of the driver has been tested with Ruby 2.6.

Lacking major issues we expect to release 2.7.0 final in about a week.

v2.6.4

Release Notes: https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.6.4

This patch level release of the ruby driver has the following significant changes:

Improvements:

RUBY-1470 Enable SNI on jruby where possible
RUBY-1651 Backport sdam logging improvements to 2.6

Bugs fixed:

RUBY-1433 OperationError#code not set on duplicate key error
RUBY-1550 Error::Parser fails to correctly handle writeErrors
RUBY-1507 isMaster response changing causes nil reference in the session pool

Version 2.6.3 was skipped due to a certificate issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment