Skip to content

Conversation

ezhang6811
Copy link
Contributor

@ezhang6811 ezhang6811 commented Sep 23, 2025

Issue #, if available:

Description of changes:
Add a workflow nightly-build.yml with following actions:

  • creates or checks out existing nightly-dependency-updates branch
  • checks for newest versions of dependencies in opentelemetry-python and opentelemetry-python-contrib, bumps versions if applicable, and creates/updates PR
  • search for releases with breaking changes in release notes, and links in the PR
  • runs main build checks on the branch, publishes a failure metric based on the outcome.

Example nightly build PR: #484

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

@ezhang6811 ezhang6811 requested a review from a team as a code owner September 23, 2025 01:59
@ezhang6811 ezhang6811 added the skip changelog doesn't need a CHANGELOG entry label Sep 23, 2025
@ezhang6811
Copy link
Contributor Author

I just realized: I updated main build so that it also triggers when pushes are made to the nightly-dependency-updates branch so that updates to the nightly build PR can trigger main build again. If this is the case, do we even need to run main build in the nightly build workflow itself, or is that redundant?

Copy link
Contributor

@thpierce thpierce left a comment

Choose a reason for hiding this comment

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

Not a complete review, just some initial thoughts.

fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}

- name: Check if nightly branch already exists
Copy link
Contributor

Choose a reason for hiding this comment

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

If there is a branch but there is also a new update (e.g. main is on 0.0.0, the branch is on 0.1.0, and the upstream is 0.2.0) we should overwrite the branch with the new update (0.2.0). OR why don't we create a new branch per version? updates/v<x.y.z>

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Updated to overwrite the same branch. There probably wouldn't be huge utility to separate branches per version if we want to stay up to date with the latest.

Copy link
Contributor

Choose a reason for hiding this comment

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

Only concern is if we are trying to make a release work and a new one comes out - it can overwrite our work.

- main
- "release/v*"
- ci-workflow
- nightly-dependency-updates
Copy link
Contributor

Choose a reason for hiding this comment

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

Remove this, manually running it from nightly build is better.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Let's discuss how manual changes would be applied to resolve breaking changes. IMO we would need this to automatically retrigger main build once we push fixes to the nightly build branch.

Copy link
Contributor

Choose a reason for hiding this comment

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

IMO, nightly build runs nightly or on-demand, which is sufficient.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed. user workflow is now: open PR, refer to breaking changes if applicable, make/push fixes to branch, and re-run nightly build workflow to run main build again

dependencies = [
"opentelemetry-api == 1.33.1",
"opentelemetry-sdk == 1.33.1",
"opentelemetry-exporter-otlp == 1.33.1",
Copy link
Contributor

Choose a reason for hiding this comment

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

?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

added during test run, out of scope. removed


import requests

# Dependencies that use the first version number (opentelemetry-python)
Copy link
Contributor

Choose a reason for hiding this comment

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

Don't love the duplication.

]


def get_latest_version(package_name):
Copy link
Contributor

Choose a reason for hiding this comment

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

Hmm not sure I strictly agree with this. What if we checked out https://github.com/open-telemetry/opentelemetry-python-* at the latest aligned version and pulled data from package? Just a thought.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

this is only used for the two packages that don't follow the upstream python or python-contrib versioning. The version file in those packages is one minor version ahead of what's released. (i.e. opentelemetry-sdk-extension-aws latest version is 2.1.0, but its version file uses 2.2.0-dev0)

Copy link
Contributor

Choose a reason for hiding this comment

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

Hm ok - just trying to keep it simple & consistent. It would be easier to maintain if we just had one process for all of these dependencies, rather than a bunch of different processes that we have to untangle.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
skip changelog doesn't need a CHANGELOG entry
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants