Unverified Commit b9d5923a authored by Russell Cohen's avatar Russell Cohen Committed by GitHub
Browse files

Release 0.3.0 / 0.33.0 (#974)

* Fixup changelog generation

* Delete superceded changlog guidance

* Update changelogs

* Bump version numbers
parent b9eebd93
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
<!-- Do not manually edit this file, use `update-changelogs` -->
v0.33.0 (December 15th, 2021)
=============================
**Breaking Changes:**
- ⚠ (smithy-rs#930) Runtime crates no longer have default features. You must now specify the features that you want when you add a dependency to your `Cargo.toml`.

    **Upgrade guide**

    | before                          | after |
    |---------------------------------|-------|
    | `aws-smithy-async = "VERSION"`  | `aws-smithy-async = { version = "VERSION", features = ["rt-tokio"] }` |
    | `aws-smithy-client = "VERSION"` | `aws-smithy-client = { version = "VERSION", features = ["client-hyper", "rustls", "rt-tokio"] }` |
    | `aws-smithy-http = "VERSION"`   | `aws-smithy-http = { version = "VERSION", features = ["rt-tokio"] }` |
- ⚠ (smithy-rs#940) `aws_smithy_client::Client::https()` has been renamed to `dyn_https()`.
    This is to clearly distinguish it from `rustls` and `native_tls` which do not use a boxed connector.

**New this release:**
- 🎉 (smithy-rs#922, smithy-rs#914) Add changelog automation to sdk-lints
- 🐛 (aws-sdk-rust#317, smithy-rs#907) Removed spamming log message when a client was used without a sleep implementation, and
    improved context and call to action in logged messages around missing sleep implementations.
- (smithy-rs#923) Use provided `sleep_impl` for retries instead of using Tokio directly.
- (smithy-rs#920) Fix typos in module documentation for generated crates
- 🐛 (aws-sdk-rust#301, smithy-rs#892) Avoid serializing repetitive `xmlns` attributes in generated XML serializers.
- 🐛 (smithy-rs#953, aws-sdk-rust#331) Fixed a bug where certain characters caused a panic during URI encoding.



v0.32.0 (December 2nd, 2021)
=======================

+0 −159
Original line number Diff line number Diff line
@@ -10,162 +10,3 @@
# references = ["smithy-rs#920"]
# meta = { "breaking" = false, "tada" = false, "bug" = false }
# author = "rcoh"

[[aws-sdk-rust]]
message = "A bug that occurred when signing certain query strings has been fixed"
references = ["aws-sdk-rust#330"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "Velfi"

[[aws-sdk-rust]]
message = "Fix incorrect argument order in the builder for `LazyCachingCredentialsProvider`"
references = ["smithy-rs#949"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "a-xp"

[[aws-sdk-rust]]
message = """
`aws-config` will now work as intended for users that want to use `native-tls` instead of `rustls`. Previously, it was
difficult to ensure that `rustls` was not in use. Also, there is now an example of how to use `native-tls` and a test
that ensures `rustls` is not in the dependency tree
"""
references = ["aws-sdk-rust#304"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "Velfi"

[[aws-sdk-rust]]
message = """
Removed inaccurate log message when a client was used without a sleep implementation, and
improved context and call to action in logged messages around missing sleep implementations.
"""
references = ["aws-sdk-rust#317", "smithy-rs#907"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "jdisanti"

[[smithy-rs]]
message = """
Removed spamming log message when a client was used without a sleep implementation, and
improved context and call to action in logged messages around missing sleep implementations.
"""
references = ["aws-sdk-rust#317", "smithy-rs#907"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "jdisanti"

[[aws-sdk-rust]]
message = '''
If you directly depend on AWS or Smithy runtime crates _(e.g., AWS crates not named `aws-config` or prefixed with `aws-sdk-`)_,
the formerly default features from those crates must now be explicitly set in your `Cargo.toml`.


**Upgrade guide**

| before                          | after |
|---------------------------------|-------|
| `aws-smithy-async = "VERSION"`  | `aws-smithy-async = { version = "VERSION", features = ["rt-tokio"] }` |
| `aws-smithy-client = "VERSION"` | `aws-smithy-client = { version = "VERSION", features = ["client-hyper", "rustls", "rt-tokio"] }` |
| `aws-smithy-http = "VERSION"`   | `aws-smithy-http = { version = "VERSION", features = ["rt-tokio"] }` |
'''
references = ["smithy-rs#930"]
meta = { "breaking" = true, "tada" = false, "bug" = false }
author = "Velfi"

[[smithy-rs]]
message = '''
Runtime crates no longer have default features. You must now specify the features that you want when you add a dependency to your `Cargo.toml`.

**Upgrade guide**

| before                          | after |
|---------------------------------|-------|
| `aws-smithy-async = "VERSION"`  | `aws-smithy-async = { version = "VERSION", features = ["rt-tokio"] }` |
| `aws-smithy-client = "VERSION"` | `aws-smithy-client = { version = "VERSION", features = ["client-hyper", "rustls", "rt-tokio"] }` |
| `aws-smithy-http = "VERSION"`   | `aws-smithy-http = { version = "VERSION", features = ["rt-tokio"] }` |
'''
references = ["smithy-rs#930"]
meta = { "breaking" = true, "tada" = false, "bug" = false }
author = "Velfi"

[[aws-sdk-rust]]
message = "Use provided `sleep_impl` for retries instead of using Tokio directly."
references = ["smithy-rs#923"]
meta = { "breaking" = false, "tada" = false, "bug" = false }
author = "rcoh"

[[smithy-rs]]
message = "Use provided `sleep_impl` for retries instead of using Tokio directly."
references = ["smithy-rs#923"]
meta = { "breaking" = false, "tada" = false, "bug" = false }
author = "rcoh"

[[aws-sdk-rust]]
message = "Fix typos in module documentation for generated crates"
references = ["smithy-rs#920"]
meta = { "breaking" = false, "tada" = false, "bug" = false }
author = "rcoh"

[[smithy-rs]]
message = "Fix typos in module documentation for generated crates"
references = ["smithy-rs#920"]
meta = { "breaking" = false, "tada" = false, "bug" = false }
author = "rcoh"

[[smithy-rs]]
message = "Avoid serializing repetitive `xmlns` attributes in generated XML serializers."
references = ["aws-sdk-rust#301", "smithy-rs#892"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "rcoh"

[[aws-sdk-rust]]
message = "Avoid serializing repetitive `xmlns` attributes when serializing XML. This reduces the length of serialized requests and should improve compatibility with localstack."
references = ["aws-sdk-rust#301", "smithy-rs#892"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "rcoh"

[[smithy-rs]]
message = "Add changelog automation to sdk-lints"
references = ["smithy-rs#922", "smithy-rs#914"]
meta = { "breaking" = false, "tada" = true, "bug" = false }
author = "rcoh"

[[aws-sdk-rust]]
message = """
`aws_hyper::Client` which was just a re-export of `aws_smithy_types::Client` with generics set has been removed. If you used
`aws_hyper::Client` or `aws_hyper::Client::https()` you can update your code to use `aws_smithy_client::Builder::https()`. Other
usage examples can be found on the [aws_hyper docs](https://docs.rs/aws-hyper).

**Note**: `aws-hyper` will be removed in a coming release and `AwsMiddleware` will be migrated elsewhere.
"""
meta = { "breaking" = true, "tada" = false, "bug" = false }
author = "rcoh"
references = ["smithy-rs#940"]

[[smithy-rs]]
message = """`aws_smithy_client::Client::https()` has been renamed to `dyn_https()`.
This is to clearly distinguish it from `rustls` and `native_tls` which do not use a boxed connector."""
meta = { "breaking" = true, "tada" = false, "bug" = false }
author = "rcoh"
references = ["smithy-rs#940"]

[[aws-sdk-rust]]
message = "The features `aws-hyper/rustls` and `aws-hyper/native-tls` have been removed. If you were using these, use the identical features on `aws-smithy-client`."
meta = { "breaking" = true, "tada" = false, "bug" = false }
references = ["smithy-rs#947"]
author = "rcoh"

[[aws-sdk-rust]]
message = "Fixed a bug where certain characters caused a panic during URI encoding."
meta = { "breaking" = false, "tada" = false, "bug" = true }
references = ["smithy-rs#953", "aws-sdk-rust#331"]
author = "rcoh"

[[smithy-rs]]
message = "Fixed a bug where certain characters caused a panic during URI encoding."
meta = { "breaking" = false, "tada" = false, "bug" = true }
references = ["smithy-rs#953", "aws-sdk-rust#331"]
author = "rcoh"

[[aws-sdk-rust]]
message = "`aws-hyper::AwsMiddleware` is now generated into generated service clients directly. If you used `aws_hyper::Middleware`, use <service>::middleware::DefaultMiddleware` instead."
meta = { "breaking" = false, "tada" = false, "bug" = false }
references = ["smithy-rs#959", "smithy-rs#934"]
author = "rcoh"
+36 −0
Original line number Diff line number Diff line
<!-- Do not manually edit this file, use `update-changelogs` -->
v0.3.0 (December 15th, 2021)
============================
**Breaking Changes:**
- ⚠ (smithy-rs#930) If you directly depend on AWS or Smithy runtime crates _(e.g., AWS crates not named `aws-config` or prefixed with `aws-sdk-`)_,
    the formerly default features from those crates must now be explicitly set in your `Cargo.toml`.

    **Upgrade guide**

    | before                          | after |
    |---------------------------------|-------|
    | `aws-smithy-async = "VERSION"`  | `aws-smithy-async = { version = "VERSION", features = ["rt-tokio"] }` |
    | `aws-smithy-client = "VERSION"` | `aws-smithy-client = { version = "VERSION", features = ["client-hyper", "rustls", "rt-tokio"] }` |
    | `aws-smithy-http = "VERSION"`   | `aws-smithy-http = { version = "VERSION", features = ["rt-tokio"] }` |
- ⚠ (smithy-rs#940) `aws_hyper::Client` which was just a re-export of `aws_smithy_types::Client` with generics set has been removed. If you used
    `aws_hyper::Client` or `aws_hyper::Client::https()` you can update your code to use `aws_smithy_client::Builder::https()`.
- ⚠ (smithy-rs#947) The features `aws-hyper/rustls` and `aws-hyper/native-tls` have been removed. If you were using these, use the identical features on `aws-smithy-client`.
- ⚠ (smithy-rs#959, smithy-rs#934) `aws-hyper::AwsMiddleware` is now generated into generated service clients directly. If you used `aws_hyper::Middleware`, use <service>::middleware::DefaultMiddleware` instead.

**New this release:**
- 🐛 (aws-sdk-rust#330) A bug that occurred when signing certain query strings has been fixed
- 🐛 (smithy-rs#949, @a-xp) Fix incorrect argument order in the builder for `LazyCachingCredentialsProvider`
- 🐛 (aws-sdk-rust#304) `aws-config` will now work as intended for users that want to use `native-tls` instead of `rustls`. Previously, it was
    difficult to ensure that `rustls` was not in use. Also, there is now an example of how to use `native-tls` and a test
    that ensures `rustls` is not in the dependency tree
- 🐛 (aws-sdk-rust#317, smithy-rs#907) Removed inaccurate log message when a client was used without a sleep implementation, and
    improved context and call to action in logged messages around missing sleep implementations.
- (smithy-rs#923) Use provided `sleep_impl` for retries instead of using Tokio directly.
- (smithy-rs#920) Fix typos in module documentation for generated crates
- 🐛 (aws-sdk-rust#301, smithy-rs#892) Avoid serializing repetitive `xmlns` attributes when serializing XML. This reduces the length of serialized requests and should improve compatibility with localstack.
- 🐛 (smithy-rs#953, aws-sdk-rust#331) Fixed a bug where certain characters caused a panic during URI encoding.

**Contributors**
Thank you for your contributions! ❤
- @a-xp (smithy-rs#949)


v0.2.0 (December 2nd, 2021)
===========================

+2 −2
Original line number Diff line number Diff line
@@ -5,10 +5,10 @@

# Version number to use for the generated SDK
# Note: these must always be full 3-segment semver versions
aws.sdk.version=0.2.0
aws.sdk.version=0.3.0

# Version number to use for the generated runtime crates
smithy.rs.runtime.crate.version=0.32.0
smithy.rs.runtime.crate.version=0.33.0

kotlin.code.style=official

+73 −42
Original line number Diff line number Diff line
@@ -5,7 +5,6 @@

use anyhow::{bail, Context, Result};
use serde::Deserialize;
use std::collections::HashSet;
use std::fmt::Write;
use std::path::Path;
use std::process::Command;
@@ -66,17 +65,29 @@ impl ChangelogEntry {
        if !maintainers().contains(&self.author.to_ascii_lowercase().as_str()) {
            references.push(format!("@{}", self.author.to_ascii_lowercase()));
        };
        if !references.is_empty() {
            write!(meta, "({}) ", references.join(", ")).unwrap();
        }
        write!(
            &mut out,
            "- {meta}{message}",
            meta = meta,
            message = self.message,
            message = indented_message(&self.message),
        )
        .unwrap();
        if !references.is_empty() {
            write!(out, " ({})", references.join(", ")).unwrap();
    }
}

fn indented_message(message: &str) -> String {
    let mut out = String::new();
    for (idx, line) in message.lines().enumerate() {
        if idx > 0 {
            out.push('\n');
            out.push_str("    ");
        }
        out.push_str(line);
    }
    out
}

#[derive(Deserialize)]
@@ -159,7 +170,8 @@ pub(crate) fn update_changelogs(
}

/// Convert a list of changelog entries into markdown
fn render(entries: Vec<ChangelogEntry>, version: &str, date: &str) -> String {
fn render(mut entries: Vec<ChangelogEntry>, version: &str, date: &str) -> String {
    entries.sort_by_key(|ent| !ent.meta.tada);
    let mut out = String::new();
    let header = format!("{version} ({date})", version = version, date = date);
    out.push_str(&header);
@@ -190,16 +202,18 @@ fn render(entries: Vec<ChangelogEntry>, version: &str, date: &str) -> String {
        out.push('\n');
    }

    let external_contribs = entries
    let mut external_contribs = entries
        .iter()
        .map(|entry| entry.author.to_ascii_lowercase())
        .filter(|author| !maintainers().contains(&author.as_str()))
        .collect::<HashSet<_>>();
        .collect::<Vec<_>>();
    external_contribs.sort();
    external_contribs.dedup();
    if !external_contribs.is_empty() {
        out.push_str("**Contributors**\nThank you for your contributions! ❤\n");
        out.push_str("**Contributors**\nThank you for your contributions! ❤\n");
        for contributor_handle in external_contribs {
            // retrieve all contributions this author made
            let contribution_references = entries
            let mut contribution_references = entries
                .iter()
                .filter(|entry| {
                    entry
@@ -208,6 +222,8 @@ fn render(entries: Vec<ChangelogEntry>, version: &str, date: &str) -> String {
                })
                .flat_map(|entry| entry.references.iter().map(|it| it.as_str()))
                .collect::<Vec<_>>();
            contribution_references.sort();
            contribution_references.dedup();
            let contribution_references = contribution_references.as_slice().join(", ");
            out.push_str("- @");
            out.push_str(&contributor_handle);
@@ -307,6 +323,17 @@ mod test {
author = "external-contrib"
message = "I made a change to update the code generator"
meta = { breaking = false, tada = true, bug = false }
references = ["smithy-rs#446"]

[[smithy-rs]]
author = "external-contrib"
message = """
I made a change to update the code generator

**Update guide:**
blah blah
"""
meta = { breaking = false, tada = true, bug = false }
references = ["smithy-rs#446"]
        "#;
        let changelog: Changelog = toml::from_str(changelog_toml).expect("valid changelog");
@@ -316,16 +343,20 @@ mod test {
v0.3.0 (January 4th, 2022)
==========================
**Breaking Changes:**
- ⚠ I made a major change to update the code generator (smithy-rs#445)
- ⚠ (smithy-rs#445) I made a major change to update the code generator

**New this release:**
- 🎉 I made a change to update the code generator (smithy-rs#446, @external-contrib)
- I made a minor change (@another-contrib)
- 🎉 (smithy-rs#446, @external-contrib) I made a change to update the code generator
- 🎉 (smithy-rs#446, @external-contrib) I made a change to update the code generator

    **Update guide:**
    blah blah
- (@another-contrib) I made a minor change

**Contributors**
Thank you for your contributions! ❤️
- @external-contrib (smithy-rs#446)
Thank you for your contributions! ❤
- @another-contrib
- @external-contrib (smithy-rs#446)
"#
        .trim_start();
        assert_eq!(expected, rendered);