Skip to content

Remove unreleased dependency tags when library is shipped #45427

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

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

alzimmermsft
Copy link
Member

@alzimmermsft alzimmermsft commented May 21, 2025

Description

Fixes #42114

Changes to update_versions.py and utils.py to better handle unreleased_ dependencies. The following changes were made:

  • If a library has the same dependency and current version listed, an error will be raised if an unreleased_ dependency exists. Having the same version should only happen when a library has not shipped at least once yet.
  • If an auto increment version run is happening and the unreleased_ version matches the dependency version of the library all references of the unreleased version will be removed.

All SDK Contribution checklist:

  • The pull request does not introduce [breaking changes]
  • CHANGELOG is updated for new features, bug fixes or other significant changes.
  • I have read the contribution guidelines.

General Guidelines and Best Practices

  • Title of the pull request is clear and informative.
  • There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

  • Pull request includes test coverage for the included changes.

@alzimmermsft alzimmermsft self-assigned this May 21, 2025
@Copilot Copilot AI review requested due to automatic review settings May 21, 2025 18:20
@alzimmermsft alzimmermsft added the EngSys This issue is impacting the engineering system. label May 21, 2025
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR removes outdated unreleased_ dependency tags once a library ships and enforces consistency checks for unreleased versions.

  • Updated Maven POMs to drop unreleased_ markers in version-update comments.
  • Removed stale entries from the version client file.
  • Enhanced utils.py with stricter validation and automatic removal of matching unreleased tags on version increment.
  • Adjusted update_versions.py for proper path handling and replacement of unreleased dependency markers.

Reviewed Changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.

Show a summary per file
File Description
sdk/keyvault-v2/azure-security-keyvault-secrets/pom.xml dropped unreleased_ prefix in x-version-update comment
sdk/keyvault-v2/azure-security-keyvault-keys/pom.xml dropped unreleased_ prefix in x-version-update comment
sdk/keyvault-v2/azure-security-keyvault-certificates/pom.xml dropped unreleased_ prefix in x-version-update comment
sdk/keyvault-v2/azure-security-keyvault-administration/pom.xml dropped unreleased_ prefix in x-version-update comment
sdk/identity-v2/azure-identity/pom.xml dropped unreleased_ prefix in x-version-update comment
eng/versioning/version_client.txt removed two unreleased_ entries for shipped libraries
eng/versioning/utils.py added unreleased version checks and removal logic
eng/versioning/update_versions.py improved file path resolution and dependency replacement
Comments suppressed due to low confidence (3)

eng/versioning/utils.py:193

  • [nitpick] Variable tempName uses camelCase; rename to temp_name to follow Python's snake_case naming convention.
tempName = module.name

eng/versioning/update_versions.py:60

  • The code uses os.path functions but os is not imported. Add import os at the top of this file to avoid NameError.
print('processing: ' + os.path.normpath(target_file))

eng/versioning/utils.py:112

  • [nitpick] Use is not None instead of != None for clearer intent and Pythonic style (e.g., if self.external_dependency is not None:).
if self.external_dependency != None:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
EngSys This issue is impacting the engineering system.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Tooling needs to handle unreleased dependency version tags better
1 participant