19 KiB
19 KiB
Release History
1.4.0-beta.1 (Unreleased)
Features Added
Breaking Changes
Bugs Fixed
Other Changes
1.3.1 (2021-11-05)
Bugs Fixed
- Fixed linking error when Azure SDK is being built as DLL.
1.3.0 (2021-11-04)
Features Added
- Add
NoSignaloption to theCurlTransportAdapter. - Add
ConnectionTimeoutoption to theCurlTransportAdapter.
Bugs Fixed
2848 Update the libcurl transport adapter to work with HTTP/1.1 only.
Other Changes
- Updated
base64implementation to remove external dependency. - Updated
Uuidimplementation for Linux to remove external dependency.
1.2.1 (2021-09-02)
Bugs Fixed
- 2785 Fix to build on g++ 5.5.
Other Changes
- Fixed compilation error on POSIX platforms where OpenSSL was not available.
- Support CMake version 3.12
1.2.0 (2021-08-05)
Features Added
- Added
Azure::Core::IO::ProgressBodyStreamtype that wraps an existing BodyStream based type stream and reports progress via callback when the stream position is updated.
Bugs Fixed
- 2647 Make the curl transport adapter to check the connection close header.
- 2474 Fix compiling with MSVC and
/analyze. - Make WinHTTP transport adapter to NOT use SSL/TLS for unsecured HTTP connections.
Other Changes
- Updated source code to build with Clang 11. (A community contribution, courtesy of davidchisnall)
Acknowledgments
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- David Chisnall (GitHub)
1.1.0 (2021-07-02)
Bugs Fixed
- Fixed a memory leak issue in
Base64Encode(). (A community contribution, courtesy of jorgen)
Other Changes
- Made internal-only changes to support the Azure Key Vault client library.
Acknowledgments
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Jorgen Lind (GitHub)
1.0.0 (2021-06-04)
Bug Fixes
- Make
RequestFailedExceptioncopiable so it can be propagated across thread. - By default, add
x-ms-request-idheader to the allow list of headers to log.
1.0.0-beta.9 (2021-05-18)
New Features
- Added
Azure::PagedResponse<T>.
Breaking Changes
- Added
finalspecifier to classes and structures that are are not expected to be inheritable at the moment. - Removed
Context::GetApplicationContext()in favor of a new static data memberContext::ApplicationContext. - Renamed
Request::IsDownloadViaStream()toShouldBufferResponse(). - Removed the
Azure::Core::Http::Requestctor overload that takes both abodyStreamand abufferedDownloadboolean since it is not useful. - Changed integer size parameters for buffers from
int64_ttosize_tin various places such asAzure::Core::IO::BodyStream::Read()APIs. - Removed the
Azure::Core::Diagnostics::Logger::Listenertypedef.
Bug Fixes
- Do not re-use a libcurl connection to same host but different port.
- Fixed curl transport issue to avoid crash at exit when curl connection pool cleanup thread is running.
- Ensure uniqueness of
Azure::Core::Uuidon POSIX platforms.
Other Changes and Improvements
- Modified precondition validation of function arguments to now result in assert failures rather than throwing an exception.
- Remove exposing windows.h header from our public headers.
- Improved performance of the WinHTTP transport layer on Windows for uploading large payloads.
1.0.0-beta.8 (2021-04-07)
New Features
- Added
Azure::Core::Url::GetScheme(). - Added
Azure::Core::Context::TryGetValue(). - Added
Azure::Core::Context::GetDeadline(). - Added
Azure::Core::Credentials::TokenCredentialOptions. - Added useful fields to the
Azure::Core::RequestFailedExceptionclass such asStatusCode,ReasonPhrase, and theRawResponse, for better diagnosis of errors.
Breaking Changes
- Simplified the
Response<T>API surface to expose two public fields with direct access:T Valueand aunique_ptrto anAzure::Core::Http::RawResponse. - Renamed
Azure::Nullable<T>::GetValue()toValue(). - Removed from
Azure::Core::Http::Request:SetUploadChunkSize().GetHTTPMessagePreBody().GetUploadChunkSize().GetHeadersAsString().
- Changes to
Azure::Core::Http::RawResponse:- Removed
SetHeader(std::string const& header) - Removed
SetHeader(uint8_t const* const first, uint8_t const* const last). - Removed
GetMajorVersion(). - Removed
GetMinorVersion(). - Renamed
GetBodyStream()toExtractBodyStream().
- Removed
- Changes to
Azure::Core::Context:- Removed
Get()andHasKey()in favor of a new methodTryGetValue(). - Changed input parameter type of
WithDeadline()toAzure::DateTime.
- Removed
- Removed
Azure::Core::PackageVersion. - Removed from
Azure::Core::Http::Policiesnamespace:HttpPolicyOrder,TransportPolicy,RetryPolicy,RequestIdPolicy,TelemetryPolicy,BearerTokenAuthenticationPolicy,LogPolicy. - Removed
AppendQueryParameters(),GetUrlWithoutQuery()andGetUrlAuthorityWithScheme()fromAzure::Core::Url. - Changed the
Azure::Core::Http::HttpMethodregular enum into an extensible enum class and removed theHttpMethodToString()helper method. - Introduced
Azure::Core::Context::Keyclass which takes place ofstd::stringused forAzure::Core::Contextkeys previously. - Changed the casing of
SSLin API names toSsl:- Renamed type
Azure::Core::Http::CurlTransportSSLOptionstoCurlTransportSslOptions. - Renamed member
Azure::Core::Http::CurlTransportOptions::SSLOptionstoSslOptions. - Renamed member
Azure::Core::Http::CurlTransportOptions::SSLVerifyPeertoSslVerifyPeer.
- Renamed type
Other Changes and Improvements
- Moved
Azure::Core::Http::Requestto its own header file fromhttp.hpptoinc/azure/core/http/raw_response.hpp. - Moved
Azure::Core::Http::HttpStatusCodeto its own header file fromhttp.hpptoinc/azure/core/http/http_status_code.hpp.
1.0.0-beta.7 (2021-03-11)
New Features
- Added
HttpPolicyOrderfor adding custom Http policies to SDK clients. - Added
Azure::Core::Operation<T>::GetRawResponse(). - Added
Azure::Core::PackageVersion. - Added support for logging to console when
AZURE_LOG_LEVELenvironment variable is set.
Breaking Changes
- Changes to
Azure::Corenamespace:- Removed
Response<void>,ValueBase, andContextValue. - Removed
Context::operator[],Get()introduced instead. - Renamed
Uuid::GetUuidString()toToString(). - Changed return type of
Operation<T>::Poll()fromstd::unique_ptr<RawResponse>toRawResponse const&. - Moved
GetApplicationContext()toContext::GetApplicationContext() - Moved the
Base64Encode()andBase64Decode()functions to be static members of aConvertclass. - Moved
Loggingnamespace entities toDiagnostics::Loggerclass. - Moved
AccessToken,TokenCredential, andAuthenticationExceptiontoCredentialsnamespace. - Moved
Contextto be the last parameter for consistency, instead of first in various azure-core types. For example:BodyStream::Read(uint8_t* buffer, int64_t count, Context const& context)BodyStream::ReadToEnd(BodyStream& body, Context const& context)HttpPolicy::Send(Request& request, NextHttpPolicy policy, Context const& context)Operation<T>::PollUntilDone(std::chrono::milliseconds period, Context& context)TokenCredential::GetToken(Http::TokenRequestOptions const& tokenRequestOptions, Context const& context)
- Moved from
Azure::CoretoAzurenamespace:Response<T>,ETag, andNullable<T>.- Split
RequestConditionsintoMatchConditionsandModifiedConditions. - Renamed
DateTime::GetString()toToString(), and removedDateTime::GetRfc3339String().
- Removed
- Changes to
Azure::Core::Httpnamespace:- Removed
HttpPipeline,TransportKind,NullBodyStream, andLimitBodyStream. - Removed
Request::StartTry(). - Removed
InvalidHeaderExceptionand throwstd::invalid_argumentif the user provides invalid header arguments. - Renamed
CurlTransportSSLOptions::NoRevoketoEnableCertificateRevocationListCheck. - Renamed
RangetoHttpRange. - Renamed
TokenRequestOptionstoTokenRequestContext, and moved it toAzure::Core::Credentialsnamespace. - Moved
UrltoAzure::Corenamespace. RequestandRawResponse:- Renamed
AddHeader()toSetHeader(). - Introduced
Azure::Core::CaseInsensitiveMapwhich is now used to store headers.
- Renamed
BodyStreamand the types that derive from it:- Moved to
Azure::Core::IOnamespace. - Changed the static methods
BodyStream::ReadToCount()andBodyStream::ReadToEnd()into instance methods. - Changed the constructor of
FileBodyStreamto accept a file name directly and take ownership of opening/closing the file, instead of accepting a file descriptor, offset, and length.
- Moved to
- HTTP policies and their options:
- Moved to
Policiesnamespace. - Renamed
TransportPolicyOptionstoTransportOptions. - Renamed
TelemetryPolicyOptionstoTelemetryOptions. - Changed type of
RetryOptions::StatusCodesfromstd::vectortostd::set. - Renamed
LoggingPolicytoLogPolicy, and introducedLogOptionsas mandatory parameter for the constructor.
- Moved to
- Removed
- Moved header files:
- Renamed
azure/core/credentials.hpptoazure/core/credentials/credentials.hpp. - Renamed
azure/core/logger.hpptoazure/core/diagnostics/logger.hpp. - Renamed
azure/core/http/body_stream.hpptoazure/core/io/body_stream.hpp. - Renamed
azure/core/http/policy.hpptoazure/core/http/policies/policy.hpp. - Renamed
azure/core/http/curl/curl.hpptoazure/core/http/curl_transport.hpp. - Renamed
azure/core/http/winhttp/win_http_client.hpptoazure/core/http/win_http_transport.hpp.
- Renamed
Bug Fixes
- Make sure to rewind the body stream at the start of each request retry attempt, including the first.
- Connection pool resets when all connections are closed.
- Fix
Azure::Contextto supportstd::unique_ptr. - Throw
std::runtime_errorfromResponse<T>::GetRawResponse()if the response was already extracted.
1.0.0-beta.6 (2021-02-09)
New Features
- Added support for HTTP conditional requests
MatchConditionsandRequestConditions. - Added the
Hashbase class and MD5 hashing APIs to theAzure::Core::Cryptographynamespace available fromazure/core/cryptography/hash.hpp.
Breaking Changes
- Removed
Context::CancelWhen(). - Removed
LogClassificationand related functionality, addedLogLevelinstead.
Bug Fixes
- Fixed computation of the token expiration time in
BearerTokenAuthenticationPolicy. (A community contribution, courtesy of sjoubert) - Fixed
Retry-AfterHTTP header to be treated as case-insensitive. (A community contribution, courtesy of sjoubert) - Fixed compilation dependency issue for MacOS when consuming the SDK from VcPkg.
- Fixed support for sending requests to endpoints with a custom port within the url on Windows when using the WinHttp transport.
Acknowledgments
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Sylvain Joubert (GitHub)
1.0.0-beta.5 (2021-02-02)
New Features
- Added support for HTTP validators
ETag.
Breaking Changes
- Make
ToLower()andLocaleInvariantCaseInsensitiveEqual()internal by moving them fromAzure::Core::StringstoAzure::Core::Internal::Strings. BearerTokenAuthenticationPolicyconstructor takesTokenRequestOptionsstruct instead of scopes vector.TokenRequestOptionsstruct has scopes vector as data member.TokenCredential::GetToken()takesTokenRequestOptionsinstead of scopes vector.
Bug Fixes
- Fixed the parsing of the last chunk of a chunked response when using the curl transport adapter.
- Fixed reading the value from
retry-afterheader inRetryPolicy. - Fix link errors when producing a DLL and add UWP compilation support.
- Do not pass a placeholder user-agent string as a fallback when using WinHttp.
- Initialize local variables in implementation to fix warning within release builds on Linux.
1.0.0-beta.4 (2021-01-13)
New Features
- Added a WinHTTP-based
HttpTransportcalledWinHttpTransportand use that as the defaultTransportPolicyOptions.Transporton Windows when sending and receiving requests and responses over the wire. - Added
Rangetype toAzure::Core::Httpnamespace. - Added support for long-running operations with
Operation<T>. - Added support for setting a custom transport adapter by implementing the method
std::shared_ptr<HttpTransport> ::AzureSdkGetCustomHttpTransport(). - Added interoperability between
std::chrono::system_clocktypes andDateTime. - Added default constructor to
DateTimeand support for dates since 0001. - Added Base64 encoding and decoding utility APIs to the
Azure::Corenamespace available fromazure/core/base64.hpp. - Added
Http::Response<void>template specialization. - Added
GetHeadersAsString()on theAzure::Core::Http::Requestclass. - Added a
platform.hppheader file for defining commonly used OS-specific#defineconstants. - Added
IsCancelled()on theAzure::Core::Contextclass.
Breaking Changes
- Removed
DateTime::operator Duration(),DateTime::Durationtypedef andDateTime::Now(). - Moved
Azure::Core::BearerTokenAuthenticationPolicy, defined inazure/core/credentials.hpptoAzure::Core::Httpnamespace inazure/core/http/policy.hppheader. - Changed type of
Token::ExpiresOntoDateTime. - Renamed exception
OperationCanceledExceptiontoOperationCancelledExceptionandThrowIfCanceled()toThrowIfCancelled()on theContextclass. - Moved
Azure::Core::Version, defined inazure/core/version.hppto theAzure::Core::Detailsnamespace. - Changed
Azure::Core::AuthenticationExceptionto derive fromstd::exceptioninstead ofstd::runtime_error. - Changed the
BodyStream::ReadAPI from being a pure virtual function to non-virtual. - Removed
CurlConnection,CurlConnectionPool,CurlSession, andCurlNetworkConnectionby making headers meant as implementation, private. - Removed option
AllowBeastfromCurlTransportSSLOptionsinCurlTransportOptions. - Changed default option
NoRevokefromCurlTransportSSLOptionsfor theCurlTransportOptionstotrue. This disables the revocation list checking by default.
Bug Fixes
- Fixed the Curl transport adapter connection pooling when setting options.
- Fixed setting up the default transport adapter.
- Fixed linker error of missing pthread on Linux.
- Initialize class data members to avoid MSVC warning.
- Throw
Azure::Core::Http::TransportExceptionifcurl_easy_init()returns a null handle. (A community contribution, courtesy of ku-sourav)
Other Changes and Improvements
- Added support for distributing the C++ SDK as a source package via vcpkg.
- Fixed installation error when the SDK is being installed under a non-standard prefix. (A community contribution, courtesy of juchem)
- Fixed linker error when pthread is missing on Linux. (A community contribution, courtesy of lordgamez)
Acknowledgments
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
1.0.0-beta.3 (2020-11-11)
New Features
- Added
strings.hppwithAzure::Core::Strings::LocaleInvariantCaseInsensitiveEqualandAzure::Core::Strings::ToLower. - Added
GetPort()toUrl. - Added
TransportPolicyOptions. - Added
TelemetryPolicyOptions. - Added
RequestFailedExceptionderiving fromstd::runtime_error. - Added
CurlTransportOptionsfor theCurlTransport. - Added
DateTimesupporting dates since 1601. - Added
OperationCanceledException. - Added
EncodeandDecodetoUrl.
Breaking Changes
- Removed
azure.hpp. - Removed macro
AZURE_UNREFERENCED_PARAMETER. - Bump CMake version from 3.12 to 3.13.
- Bump libcurl version from 7.4 to 7.44.
- Moved
ClientSecretCredentialandEnvironmentCredentialto the Identity library. Urlclass changes:AppendPathnow does not encode the input by default.- Signature updated for
SetHost,SetPathandAppendPath. - Removed
SetFragment. - Renamed
AppendQueriestoAppendQueryParameters. - Renamed
AppendQuerytoAppendQueryParameter. - Renamed
RemoveQuerytoRemoveQueryParameter. - Renamed
GetQuerytoGetQueryParameters.
Bug Fixes
- Prevent pipeline of length zero to be created.
- Avoid re-using a connection when a request to upload data fails while using the
CurlTransport. - Add entropy to
Uuidgeneration.
Other Changes and Improvements
- Add high-level and simplified core.hpp file for simpler include experience for customers.
- Add code coverage using gcov with gcc.
- Update SDK-defined exception types to be classes instead of structs.
- Updated
TransportExceptionandInvalidHeaderExceptionto derive fromRequestFailedException. - Vcpkg dependency version updated to 2020.11.
- Make libcurl network requests cancelable by Context::Cancel().
- Validate HTTP headers for invalid characters.
- Calling
Cancel()from context now throwsOperationCanceledException.
1.0.0-beta.2 (2020-10-09)
Breaking Changes
- Throw Azure::Http::TransportException if creating new connection fails.
- Response objects store Nullable<T>.
Bug Fixes
- Switched to a more stable wait on sockets to address connection timeouts.
- Replace
Nullable(const T&)withNullable(T)to avoid extra copy when initialized with an rvalue.
Other Changes and Improvements
- Improved performance on windows when using libcurl.
- Pinned the version of package dependencies.
- Added NOTICE.txt for 3rd party dependencies.
- Added build instructions for running tests. (A community contribution, courtesy of ku-sourav)
- Updated vcpkg build instructions. (A community contribution, courtesy of ku-sourav)
Acknowledgments
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
ku-sourav(GitHub)
1.0.0-beta.1 (2020-09-09)
- Initial release