Upgrading excon 0.112 to 1
Breaking0.112.0 → 1.10.0Breaking2Security2Platform2Deprecated1New7Changed19Fixed13Other18
Fetching 29 releases from GitHub…26 / 29
BreakingUpgrade verdict
2 breaking changes and 2 platform requirement changes and 2 security fixes.
In plain terms
- Requests no longer include the default port (such as 80 or 443) in the URL unless you opt in.
- The package no longer includes its internal test server files, so anything relying on them must provide its own.
- On Ruby 4.0 and newer, the library now loads a different built-in file so it keeps working.
- You may need a newer Ruby to use this version.
Must act Top 5 of 7 that need code or config changes
Ruby requirement changed in 1.7.0: >= 2.7.0 → >= 3.3.0.
What you must change
Breaking2
Drops default ports from request URLs by default.
Moves internal test servers out of the gem so
excon/test/server is no longer shipped.excon/test/serverSecurity2
Closes security issues around headers and redirect following.
Excon does not redact additional sensitive/risky headers when following redirects
Moderate · CVSS 6.5Platform2
Changes the cgi require to cgi/escape for Ruby 4.0 and later.
cgicgi/escapeBumps the minimum required Ruby version.
Deprecations to plan for
Deprecated1
Deprecates omit_default_port and adds the include_default_port option.
omit_default_portinclude_default_portAPI changes
Generated by DepDelta from published Ruby source. Not mixed with prose notes.
- removed:
module Test - changed:
method Utils.binary_encode(_) → static method Utils.binary_encode(_) - changed:
method Utils.connection_uri(_ = …) → static method Utils.connection_uri(_ = …) - changed:
method Utils.escape_uri(_) → static method Utils.escape_uri(_) - changed:
method Utils.headers_hash_to_s(_) → static method Utils.headers_hash_to_s(_) - changed:
method Utils.port_string(_) → static method Utils.port_string(_) - changed:
method Utils.query_string(_) → static method Utils.query_string(_) - changed:
method Utils.redact(_) → static method Utils.redact(_) - changed:
method Utils.request_uri(_) → static method Utils.request_uri(_) - changed:
method Utils.split_header_value(_) → static method Utils.split_header_value(_) - changed:
method Utils.unescape_form(_) → static method Utils.unescape_form(_) - changed:
method Utils.unescape_uri(_) → static method Utils.unescape_uri(_) - added:
class ResolverFactory - added:
class SOCKS5SSLSocket < SSLSocket - added:
class SOCKS5Socket < Socket - added:
const SOCKS5.MAX_HOSTNAME_LENGTH - added:
const SOCKS5.SOCKS5_ATYP_DOMAIN - added:
const SOCKS5.SOCKS5_ATYP_IPV4 - added:
const SOCKS5.SOCKS5_ATYP_IPV6 - added:
const SOCKS5.SOCKS5_AUTH_USERNAME_PASSWORD - added:
const SOCKS5.SOCKS5_CMD_CONNECT - added:
const SOCKS5.SOCKS5_ERRORS - added:
const SOCKS5.SOCKS5_NO_ACCEPTABLE_AUTH - added:
const SOCKS5.SOCKS5_NO_AUTH - added:
const SOCKS5.SOCKS5_RESERVED - added:
const SOCKS5.SOCKS5_SUCCESS - added:
const SOCKS5.SOCKS5_VERSION - added:
constructor SOCKS5SSLSocket(_ = …) - added:
constructor SOCKS5Socket(_ = …) - added:
module SOCKS5 - added:
static method ResolverFactory.create_resolver() - added:
static method Utils.default_port?(_)
- added:
class InvalidParameter < Error
- added:
module StderrLogger - added:
static method StderrLogger.info(_)
- removed:
class CaptureCookies < Excon::Middleware::Base - removed:
method CaptureCookies.extract_cookies_from_set_cookie(_) - removed:
method CaptureCookies.get_header(_, _) - removed:
method CaptureCookies.response_call(_) - added:
const RedirectFollower.CONTENT_HEADERS - added:
const RedirectFollower.REDACTION_HEADERS
- removed:
class Server - removed:
const Server.INSTANCE_REQUIRES - removed:
constructor Server(_) - removed:
method Server.dump_errors() - removed:
method Server.elapsed_time() - removed:
method Server.open_process(*) - removed:
method Server.stop() - removed:
module Plugin - removed:
property Server.app: accessor - removed:
property Server.bind: accessor - removed:
property Server.error: accessor - removed:
property Server.pid: accessor - removed:
property Server.read: accessor - removed:
property Server.server: accessor - removed:
property Server.started_at: accessor - removed:
property Server.timeout: accessor - removed:
property Server.write: accessor
- removed:
module Server
- removed:
method Exec.start(_ = …) - removed:
method Puma.start(_ = …, _ = …) - removed:
method Unicorn.start(_ = …, _ = …) - removed:
method Webrick.start(_ = …, _ = …) - removed:
module Exec - removed:
module Puma - removed:
module Unicorn - removed:
module Webrick