Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new subcommands to changelogger for supporting file-per-change changelog #3771

Merged
merged 11 commits into from
Jul 31, 2024

Conversation

ysaito1001
Copy link
Contributor

@ysaito1001 ysaito1001 commented Jul 19, 2024

Motivation and Context

Adds new subcommands --new and --ls to changelogger

Description

This is part 2 in a series of PRs supporting file-per-change changelog. This PR just adds utilities for humans and does NOT impact the current dev workflow, smithy-rs CI, or our release pipeline.

A subcommand --new

We can use this subcommand when creating a new changelog entry markdown file. An example usage:

$ changelogger new -t client -t aws-sdk-rust -r smithy-rs#1234 -a someone --bug-fix -m "Some changelog" \
# for long flags, replace -t with --applies-to, -r with --references, -a with --authors, and -m with --message \
# also remember to escape with \ when including backticks in the message at command line, e.g. \`pub\`

The following changelog entry has been written to "/Users/ysaito1001/src/smithy-rs/.changelog/5745197.md":
---
applies_to:
- aws-sdk-rust
- client
authors:
- someone
references:
- smithy-rs#1234
breaking: false
new_feature: false
bug_fix: true
---
Some changelog

The following CLI arguments are "logically" required

  • --applies-to
  • --ref
  • --author
  • --message

If any of the above is not passed a value at command line, then an editor is opened for further edit (which editor to open can be configured per the edit crate).

Note that the YAML syntax above is different from the single line array syntax proposed in the RFC. This is due to a limitation in serde-yaml (which has been archived unfortunately), but the multi-line values are still a valid YAML syntax and, most importantly, rendering changelong entries will continue working. For now, I won't post-process from the multi-line values syntax to the single line array syntax. One can work around this by handwriting a changelog entry Markdown file in smithy-rs/.changelog without using this subcommand.

A subcommand --ls

This subcommand will render a preview of changelog entries stored in smithy-rs/.changelog and print it to the standard output. Example usages (using the entry created at 5745197.md above):

$ changelogger ls -c smithy-rs \
# for long flag, replace -c with --change-set

Next changelog preview for smithy-rs
=====================================
**New this release:**
- :bug: (client, [smithy-rs#1234](https://github.com/smithy-lang/smithy-rs/issues/1234), @someone) Some changelog

**Contributors**
Thank you for your contributions! ❤
- @someone ([smithy-rs#1234](https://github.com/smithy-lang/smithy-rs/issues/1234))
$ changelogger ls -c aws-sdk \
# for long flag, replace -c with --change-set

Next changelog preview for aws-sdk-rust
========================================
**New this release:**
- :bug: ([smithy-rs#1234](https://github.com/smithy-lang/smithy-rs/issues/1234), @someone) Some changelog

**Contributors**
Thank you for your contributions! ❤
- @someone ([smithy-rs#1234](https://github.com/smithy-lang/smithy-rs/issues/1234))

Testing

  • Existing tests in CI
  • Basic unit tests for subcommands

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Copy link

A new generated diff is ready to view.

  • No codegen difference in the AWS SDK
  • No codegen difference in the Client Test
  • No codegen difference in the Server Test
  • No codegen difference in the Server Test Python
  • No codegen difference in the Server Test Typescript

A new doc preview is ready to view.

Copy link

A new generated diff is ready to view.

  • No codegen difference in the AWS SDK
  • No codegen difference in the Client Test
  • No codegen difference in the Server Test
  • No codegen difference in the Server Test Python
  • No codegen difference in the Server Test Typescript

A new doc preview is ready to view.

tools/ci-build/changelogger/src/new_entry.rs Outdated Show resolved Hide resolved
tools/ci-build/changelogger/src/main.rs Outdated Show resolved Hide resolved
tools/ci-build/changelogger/src/new.rs Outdated Show resolved Hide resolved
tools/ci-build/changelogger/src/ls.rs Show resolved Hide resolved
tools/ci-build/smithy-rs-tool-common/src/changelog.rs Outdated Show resolved Hide resolved
tools/ci-build/changelogger/src/new.rs Show resolved Hide resolved
@ysaito1001 ysaito1001 enabled auto-merge July 31, 2024 21:05
@ysaito1001 ysaito1001 added this pull request to the merge queue Jul 31, 2024
Merged via the queue into main with commit 63753f3 Jul 31, 2024
43 of 44 checks passed
@ysaito1001 ysaito1001 deleted the ysaito/add-new-subcommands-to-changelogger branch July 31, 2024 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants