dependabot[bot] opened a new pull request, #3348: URL: https://github.com/apache/arrow-rs/pull/3348
Updates the requirements on [aws-config](https://github.com/awslabs/smithy-rs) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/awslabs/smithy-rs/blob/main/CHANGELOG.md">aws-config's changelog</a>.</em></p> <blockquote> <!-- raw HTML omitted --> <h1>December 12th, 2022</h1> <p><strong>Breaking Changes:</strong></p> <ul> <li> <p>β π (all, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/1938">smithy-rs#1938</a>, <a href="https://github.com/jjantdev"><code>@βjjantdev</code></a>) Upgrade Rust MSRV to 1.62.1</p> </li> <li> <p>β π (server, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/1199">smithy-rs#1199</a>, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/1342">smithy-rs#1342</a>, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/1401">smithy-rs#1401</a>, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/1998">smithy-rs#1998</a>, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/2005">smithy-rs#2005</a>, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/2028">smithy-rs#2028</a>, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/2034">smithy-rs#2034</a>, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/2036">smithy-rs#2036</a>) <a href="https://awslabs.github.io/smithy/2.0/spec/constraint-traits.html">Constraint traits</a> in server SDKs are beginning to be supported. The following are now supported:</p> <ul> <li>The <code>length</code> trait on <code>string</code> shapes.</li> <li>The <code>length</code> trait on <code>map</code> shapes.</li> <li>The <code>length</code> trait on <code>list</code> shapes.</li> <li>The <code>range</code> trait on <code>byte</code> shapes.</li> <li>The <code>range</code> trait on <code>short</code> shapes.</li> <li>The <code>range</code> trait on <code>integer</code> shapes.</li> <li>The <code>range</code> trait on <code>long</code> shapes.</li> <li>The <code>pattern</code> trait on <code>string</code> shapes.</li> </ul> <p>Upon receiving a request that violates the modeled constraints, the server SDK will reject it with a message indicating why.</p> <p>Unsupported (constraint trait, target shape) combinations will now fail at code generation time, whereas previously they were just ignored. This is a breaking change to raise awareness in service owners of their server SDKs behaving differently than what was modeled. To continue generating a server SDK with unsupported constraint traits, set <code>codegenConfig.ignoreUnsupportedConstraints</code> to <code>true</code> in your <code>smithy-build.json</code>.</p> </li> <li> <p>β π (server, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/1342">smithy-rs#1342</a>, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/1119">smithy-rs#1119</a>) Server SDKs now generate "constrained types" for constrained shapes. Constrained types are <a href="https://rust-unofficial.github.io/patterns/patterns/behavioural/newtype.html">newtypes</a> that encapsulate the modeled constraints. They constitute a <a href="https://www.lpalmieri.com/posts/2020-12-11-zero-to-production-6-domain-modelling/">widespread pattern to guarantee domain invariants</a> and promote correctness in your business logic. So, for example, the model:</p> <pre lang="smithy"><code>@length(min: 1, max: 69) string NiceString </code></pre> <p>will now render a <code>struct NiceString(String)</code>. Instantiating a <code>NiceString</code> is a fallible operation:</p> <pre lang="rust"><code>let data: String = ... ; let nice_string = NiceString::try_from(data).expect("data is not nice"); </code></pre> <p>A failed attempt to instantiate a constrained type will yield a <code>ConstraintViolation</code> error type you may want to handle. This type's API is subject to change.</p> <p>Constrained types <em>guarantee</em>, by virtue of the type system, that your service's operation outputs adhere to the modeled constraints. To learn more about the motivation for constrained types and how they work, see <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/pull/1199">the RFC</a>.</p> <p>If you'd like to opt-out of generating constrained types, you can set <code>codegenConfig.publicConstrainedTypes</code> to <code>false</code>. Note that if you do, the generated server SDK will still honor your operation input's modeled constraints upon receiving a request, but will not help you in writing business logic code that adheres to the constraints, and <em>will not prevent you from returning responses containing operation outputs that violate said constraints</em>.</p> </li> <li> <p>πβ π (server, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/1714">smithy-rs#1714</a>, <a href="https://github-redirect.dependabot.com/awslabs/smithy-rs/issues/1342">smithy-rs#1342</a>) Structure builders in server SDKs have undergone significant changes.</p> <p>The API surface has been reduced. It is now simpler and closely follows what you would get when using the <a href="https://docs.rs/derive_builder/latest/derive_builder/"><code>derive_builder</code></a> crate:</p> <ol> <li>Builders no longer have <code>set_*</code> methods taking in <code>Option<T></code>. You must use the unprefixed method, named exactly after the structure's field name, and taking in a value <em>whose type matches exactly that of the structure's field</em>.</li> <li>Builders no longer have convenience methods to pass in an element for a field whose type is a vector or a map. You must pass in the entire contents of the collection up front.</li> <li>Builders no longer implement <a href="https://doc.rust-lang.org/std/cmp/trait.PartialEq.html"><code>PartialEq</code></a>.</li> </ol> <p>Bug fixes:</p> <ol start="4"> <li>Builders now always fail to build if a value for a <code>required</code> member is not provided. Previously, builders were falling back to a default value (e.g. <code>""</code> for <code>String</code>s) for some shapes. This was a bug.</li> </ol> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/awslabs/smithy-rs/commits">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
