Skip to content

refactor(changelog): simplify logic for get_oldest_and_newest_rev #1539

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 2 commits into
base: v4-9-0-test
Choose a base branch
from

Conversation

bearomorphism
Copy link
Contributor

@bearomorphism bearomorphism commented Jun 12, 2025

Description

  • Refactor get_oldest_and_newest_rev
  • Since we only use the latest element of the result of get_smart_range, I believe we can replace it with a simpler function.
  • The implementation of the function get_next_tag_name_after_version is based on an assumption that "all GitTags are unique". If the oldest tag's name is the input version, then it returns None. The behavior aligns with "Return None for oldest_rev if the oldest tag is the last tag in the list and matches the requested oldest tag"

Checklist

Code Changes

  • Add test cases to all the changes you introduce
  • Run poetry all locally to ensure this change passes linter check and tests
  • Manually test the changes:
    • Verify the feature/bug fix works as expected in real-world scenarios
    • Test edge cases and error conditions
    • Ensure backward compatibility is maintained
    • Document any manual testing steps performed
  • Update the documentation for the changes

Copy link

codecov bot commented Jun 12, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Please upload report for BASE (v4-9-0-test@6b4f8b0). Learn more about missing BASE report.

Additional details and impacted files
@@              Coverage Diff               @@
##             v4-9-0-test    #1539   +/-   ##
==============================================
  Coverage               ?   97.92%           
==============================================
  Files                  ?       58           
  Lines                  ?     2694           
  Branches               ?        0           
==============================================
  Hits                   ?     2638           
  Misses                 ?       56           
  Partials               ?        0           
Flag Coverage Δ
unittests 97.92% <100.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@bearomorphism bearomorphism marked this pull request as ready for review June 12, 2025 09:32
@Lee-W Lee-W added this to the 4.9.0 milestone Jun 12, 2025
raise NoCommitsFoundError(f"Could not find a valid revision range. {version=}")


# TODO: unused, deprecate this?
def get_smart_tag_range(
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not sure if removing the function is a breaking change.

@bearomorphism bearomorphism force-pushed the get_oldest_and_newest_rev branch from 0b7774c to 7316c2f Compare June 13, 2025 03:02
Comment on lines +285 to +291
def get_next_tag_name_after_version(tags: Iterable[GitTag], version: str) -> str | None:
a, b = tee(chain((tag.name for tag in tags), [None]))
next(b, None)
try:
return next(y for x, y in zip(a, b) if x == version)
except StopIteration:
raise NoCommitsFoundError(f"Could not find a valid revision range. {version=}")
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks @gbaian10 for reminding me here we don't have to use a while loop.

@bearomorphism bearomorphism force-pushed the get_oldest_and_newest_rev branch from 7316c2f to 1d9f4ab Compare June 13, 2025 05:42
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.

2 participants