Starting with v2.0.0, all notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
Following the release of version 5.0.2 on October 13, 2023, an automated changelog has been implemented, this document is an archived copy of the previous changelog
- Correct a Digest call making this thread-safe and allowing for concurrent r10k deploys. Thanks to @cmd-ntrf for fixing it and to @baurmatt for tracking it down in the first place.
- Update README to reflect accurate Ruby requirement and
faraday
gem dependency
- Ruby 3.2 support.
- LRU caching for HTTP response caching.
- Raise a ModuleNotFound error instead of just nil when a module is not found.
- Add upload method functionality.
- Allows the user to search by an array of endorsements.
- Breaking: The
puppet_forge
gem now requires at least Ruby 2.6.0 - Update
faraday
gem to 2.x series
- Allow requests to follow redirects
- Remove the
gettext-setup
gem dependency, which was unused
- Update
PuppetForge::Connection.authorization
so that it prepends the requiredBearer
string automatically to values that look like Forge API keys. This won't affect values that already includeBearer
.
- Breaking: The
puppet_forge
gem now requires at least Ruby 2.4.0. - Update
faraday
andfaraday_middleware
gem dependencies to 1.x series. - Update optional
typhoeus
dependency to>= 1.4
to maintain compatibility withfaraday
.
- Update the forge API url to
forgeapi.puppet.com
(instead of using the older puppetlabs.com domain). - Allow versions of the
faraday_middleware
dependency up to 0.15.
- Allow versions of faraday up to 0.18
- Catch and handle the new
Faraday::TimeoutError
s which are occasionally surfaced by the the typheous adapter with more recent verions of libcurl, and log them the same way thatFaraday::ConnectionFailed
errors are already logged.
- Allow for using
faraday_middleware
versions in the 0.13.x series.
- Fixed an issue where proxy configurations were being ignored by expanding the range of acceptable versions of the
faraday
gem dependency and specifically excluding the version that was ignoring proxy configuration options.
- Updated
PuppetForge::V3::Release#verify
method to usefile_sha256
checksum from Forge API when available. - Added an
allow_md5
param toPuppetForge::V3::Release#verify
method to control whether or not fallback to MD5 checksum will be allowed in cases where SHA-256 checksum is not available.
- Loosened dependency on
faraday
andfaraday_middleware
gems to include recent releases.
Created PuppetForge::Util class with a single method, version_valid?, in order to drop the r10k dependency on semantic_puppet.
- Updated dependency on
semantic_puppet
to~> 1.0
.
- Fixed an issue when attempting to assign a non-String value to
PuppetForge.host
.
- (FORGE-338) Fixed an issue where
V3::Release.download_url
returned an incorrect value whenPuppetForge.host
included a path prefix. (Thanks to Jainish Shah for the report and initial fix proposal.)
- PuppetForge::Connection now has .accept_language and .accept_language= class methods providing a way to set the 'Accept-Language' header for outbound requests.
- Fixed an issue that was preventing PuppetForge.host from honoring any given path prefix.
- Upgraded gettext-setup dependency to 0.11 release.
- Externalized all user facing strings with gettext to support future localization work.
- Fixed an issue where certain types of connection failures raised a spurious "method missing" error instead of the underlying exception.
- When setting PuppetForge::Connection.proxy, an empty string will now be treated as nil. If no proxy has yet been configured, setting to an empty string will have no effect. If a proxy has already been configured, setting to nil will unset the existing value.
- puppet_forge's optional dependency on Typhoeus now searches for a gem matching '~> 1.0.1' so it will pick up more recent versions. NOTE: This means if you have a version of Typhoeus installed that is less than 1.0.1, puppet_forge will no longer use the Typhoeus adapter and will fall back to Ruby's Net::HTTP library.
- PuppetForge::Connection now has .proxy and .proxy= class methods providing a more reliable way of configuring an HTTP proxy.
- Cached connection objects will now be automatically discarded when proxy or authorization config has changed.
- Bug in usage of minitar filenames led to ignored tar files with tar file length of >100 chars.
- PuppetForge::V3::Release.download will now use the "file_uri" field of the Release API response to calculate the URI to download from. (Thanks to ericparton for the contribution.)
- Runtime dependency on "faraday_middleware" gem updated to allow 0.10.x releases.
- Bug in error message around missing release on forge caused inappropriate error.
- PuppetForge::ReleaseForbidden added to acknowledge 403 status returned from release download request
- PuppetForge::V3::Release can now verify the md5, unpack, and install a release tarball.
- PuppetForge::Middleware::SymbolifyJson to change Faraday response hash keys into symbols.
- PuppetForge::V3::Metadata to represent a release's metadata as an object.
- PuppetForge::Connection to provide Faraday connections.
- Failed API requests, such as those for a module that doesn't exist, throw a Faraday::ResourceNotFound error.
- API requests are sent through Faraday directly rather than through Her.
- PuppetForge::V3::Base#where and PuppetForge::V3::Base#all now send an API request immediately and return a paginated collection.
- Dependency on Her (also removes dependency on ActiveSupport).