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 &quot;constrained types&quot; 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(&quot;data is not 
nice&quot;);
   </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&lt;T&gt;</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>&quot;&quot;</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]

Reply via email to