Skip to content

Conversation

itsvshreyas
Copy link

Summary

This PR addresses issue #1594 by automatically adding links to relevant upstream OpenTelemetry project release notes when chart versions are bumped. This enhancement eliminates the need for users to manually search for upstream release notes when planning upgrades.

Changes Made

  • Modified .github/workflows/release.yaml: Added automated step to enhance release notes with upstream project links
  • Added .github/scripts/generate-release-notes.sh: New script that generates enhanced release notes with appropriate upstream links based on chart type
  • Added .github/cr.yaml: Configuration file for chart-releaser with enhanced settings

How it Works

  1. Automatic Detection: The workflow detects newly created releases within 5 minutes of creation
  2. Enhanced Notes Generation: A custom script generates enhanced release notes with upstream links
  3. Automatic Updates: The workflow updates release notes using GitHub CLI

Chart Support

The enhancement intelligently handles different chart types:

  • opentelemetry-collector: Links to Collector + Collector Contrib releases
  • opentelemetry-operator: Links to Operator releases
  • opentelemetry-demo: Links to Demo releases
  • opentelemetry-target-allocator: Links to Operator releases (TA is part of Operator)
  • Other charts: Generic upstream message

Example Enhancement

For an opentelemetry-collector v0.127.1 release with app version 0.128.0, users will now see:

## Upstream Release Notes

For detailed information about the changes in this release, please refer to the upstream OpenTelemetry project release notes:

- [OpenTelemetry Collector v0.128.0](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.128.0)
- [OpenTelemetry Collector Contrib v0.128.0](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.128.0)

@itsvshreyas
Copy link
Author

Hi @TylerHelmuth , Thanks for all the feedback!

I've addressed all the comments locally:

  • Reverted action versions back to digest values (lines 20, 30, 43)
  • Moved bash code to separate script file (line 50+)
  • Removed unnecessary documentation files (CHANGES_SUMMARY.md, ENHANCED_RELEASE_NOTES.md, CONTRIBUTION_README.md)

All changes are ready in my local repository and I'll be pushing them very soon. The PR will be much cleaner and focused only on the functional changes needed for the enhancement.

@itsvshreyas
Copy link
Author

Hi @TylerHelmuth , Could you please check now? I have synced all my changes.

@TylerHelmuth
Copy link
Member

@itsvshreyas can you test this implementation in a fork so we can see the release action run? You may need to update some CI to be based on your fork instead of the open-telemetry org.

@itsvshreyas
Copy link
Author

itsvshreyas commented Aug 14, 2025

Hi @TylerHelmuth , These new changes are for my testing. I will be forking that and will share the release notes getting updated in a while. Once tested will remove test-release.yaml file. Thanks!

@itsvshreyas
Copy link
Author

itsvshreyas commented Aug 14, 2025

@itsvshreyas
Copy link
Author

Hi @TylerHelmuth , Could you please let me know the links shared above are fine? If yes, then I will prune those additional changes which were made for testing purpose and then this should be good for final review.

@TylerHelmuth
Copy link
Member

@itsvshreyas thanks for testing, those release notes look good. You can remove the testing changes.

@itsvshreyas
Copy link
Author

Hi @TylerHelmuth , Removed the test file. This should be good for your review now. Thanks!

Comment on lines 53 to 54
chmod +x .github/scripts/generate-release-notes.sh
chmod +x .github/scripts/enhance-release-notes.sh
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see 2 scripts but only 1 being invoked

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

enhance-release-notes.sh calls generate-release-notes.sh at line number 15 of enhance-release-notes.sh. So both scripts are required. I will remove these two lines as they already have chmod +x permissions.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TylerHelmuth , Removed chmod +x. That is in place now.

CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
CR_GENERATE_RELEASE_NOTES: true

- name: Enhance release notes with upstream links
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In our repo every commit to main results in a chart release. Most of these commits are not appVersion bumps to match the upstream release artifacts. For releases that are not related to an upstream release, what will this change do?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Current Behavior for Non-Upstream Releases:

For commits that don't involve appVersion bumps (e.g., documentation updates, chart configuration changes, dependency updates), our enhancement script will:

  1. Still run and detect the new chart release
  2. Generate release notes that reference the current (unchanged) appVersion
  3. Add upstream links pointing to the existing upstream version

Example Scenario:

# Chart changes from:
Chart.yaml: version: 0.47.1 → 0.47.2 (documentation fix)
Chart.yaml: appVersion: "0.119.0" (unchanged)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IDK if always linking to the upstream changelogs is useful. @open-telemetry/helm-approvers what do you think?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please let me know how it has to be done. I can make appropriate changes for the same. Maybe if others have any other opinion?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is useful especially as it was requested by another user

Copy link
Member

@dmitryax dmitryax Oct 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the linking is useful once the application image is bumped. Otherwise, I'd suggest just skipping this step, if there is no image upgrade.

Also, please move this step to the end of the job so it it fails it doesn't disrupt the release

@itsvshreyas
Copy link
Author

Hi @TylerHelmuth , Suggested changes are in place.

@itsvshreyas
Copy link
Author

Hi @open-telemetry/helm-approvers, could you please look into our conversation and let us know if we are good with this approach or do we need any alternate solution? Thanks!

Copy link
Contributor

github-actions bot commented Sep 8, 2025

This PR was marked stale due to lack of activity. It will be closed in 14 days.

@github-actions github-actions bot added the Stale label Sep 8, 2025
@itsvshreyas
Copy link
Author

Hi @open-telemetry/helm-approvers, could you please look into our conversation and let us know if we are good with this approach or do we need any alternate solution? Thanks!

@itsvshreyas
Copy link
Author

itsvshreyas commented Sep 11, 2025

Hi @TylerHelmuth , This PR has gone for stale. I don't see any reviews happening. Do you want me to go with the change? Also is it possible to remove the stale?

@github-actions github-actions bot removed the Stale label Sep 12, 2025
@itsvshreyas
Copy link
Author

Hi @TylerHelmuth , This PR has gone for stale. I don't see any reviews happening. Do you want me to go with the change? Also is it possible to remove the stale?

---
$enhanced_notes"
else
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should not be the case. If no existing notes found, something is wrong. Probably better to fail instead

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @dmitryax , Corrected this.

"opentelemetry-collector")
echo "## Upstream Release Notes"
echo ""
echo "For detailed information about the changes in this release, please refer to the upstream OpenTelemetry project release notes:"
Copy link
Member

@dmitryax dmitryax Oct 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These lines are duplicated for every option, so they can be moved out of the case statement. Also, the wording seems too verbose without providing much value

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @dmitryax , Corrected this.

# Add links to upstream release notes based on chart type
case "$chart_name" in
"opentelemetry-collector")
echo "## Upstream Release Notes"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upstream sounds a bit confusing... What about?

OpenTelemetry Collector v${app_version} release notes

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @dmitryax , Corrected this.

CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
CR_GENERATE_RELEASE_NOTES: true

- name: Enhance release notes with upstream links
Copy link
Member

@dmitryax dmitryax Oct 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the linking is useful once the application image is bumped. Otherwise, I'd suggest just skipping this step, if there is no image upgrade.

Also, please move this step to the end of the job so it it fails it doesn't disrupt the release

… to end

- Add logic to detect appVersion changes and only enhance when components are upgraded
- Move enhancement step to end of workflow to prevent disrupting releases if it fails
- Update section header from 'Upstream' to 'OpenTelemetry Release Notes' for clarity
- Remove code duplication and verbose text in release notes generation
- Add CR_GENERATE_RELEASE_NOTES environment variable back to workflow
- Fix trailing whitespace issues

Addresses reviewer feedback and ensures enhancement only runs when meaningful to users.

Signed-off-by: Venkata Shreyas Kabekkodu <venkatashreyas.kabekkodu@fmr.com>
- Add chart-releaser configuration with automatic release notes generation
- Restore missing config parameter in release workflow
- Ensure chart-releaser can properly generate baseline release notes

Required for the release notes enhancement feature to work correctly.

Signed-off-by: Venkata Shreyas Kabekkodu <venkatashreyas.kabekkodu@fmr.com>
@itsvshreyas
Copy link
Author

Hi @dmitryax , I making all those changes.

@kayhern kayhern force-pushed the feature/work-on-1594 branch from 136ecf0 to a7ef418 Compare October 9, 2025 14:00
@itsvshreyas
Copy link
Author

Hi @dmitryax , Could you please verify the PR now? I have made all those changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants