Skip to content

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.

  • 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.
Top 5 of 7 that need code or config changes

Ruby requirement changed in 1.7.0: >= 2.7.0 → >= 3.3.0.

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/server
Security2
Closes security issues around headers and redirect following.
Excon does not redact additional sensitive/risky headers when following redirects
Moderate · CVSS 6.5
Platform2
Changes the cgi require to cgi/escape for Ruby 4.0 and later.
cgicgi/escape
Bumps the minimum required Ruby version.
Deprecated1
Deprecates omit_default_port and adds the include_default_port option.
omit_default_portinclude_default_port

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