12 KiB
12 KiB
Release History
1.0.0-beta.8 (Unreleased)
Breaking Changes
- Simplified the
Response<T>API surface to expose two public fields with direct access:T Valueand aunique_ptrto anAzure::Core::Http::RawResponse. - Removed from
Azure::Core::Http::Request:SetUploadChunkSize.GetHTTPMessagePreBody.GetUploadChunkSize.
- Removed from
Azure::Core::Http::RawResponse:SetHeader(std::string const& header)SetHeader(uint8_t const* const first, uint8_t const* const last).GetMajorVersion.GetMinorVersion.
- Renamed
Azure::Nullable<T>::GetValue()toValue(). - Changes to
Azure::Core::Context:- Renamed
Get()toGetValue(). - Changed input parameter type of
WithDeadline()toAzure::DateTime.
- Renamed
- Removed
Azure::Core::PackageVersion. - Removed from
Azure::Core::Http::Policiesnamespace:HttpPolicyOrder,TransportPolicy,RetryPolicy,RequestIdPolicy,TelemetryPolicy,BearerTokenAuthenticationPolicy,LogPolicy. - Renamed
Azure::Core::Http::RawResponse::GetBodyStream()toExtractBodyStream(). - Introduced
Azure::Core::Context::Keyclass which takes place ofstd::stringused forAzure::Core::Contextkeys previously.
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. - Added
Azure::Core::Context::GetDeadline().
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. - 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.
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.
Other changes and Improvements
- Added support for distributing the C++ SDK as a source package via vcpkg.
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.
1.0.0-beta.1 (2020-09-09)
- Initial release