Skip to content

feat(changelog): Enable viewing commit history between two widgets stable releases#661

Open
vivekv1504 wants to merge 18 commits intowebex:nextfrom
vivekv1504:changelog-widget-update
Open

feat(changelog): Enable viewing commit history between two widgets stable releases#661
vivekv1504 wants to merge 18 commits intowebex:nextfrom
vivekv1504:changelog-widget-update

Conversation

@vivekv1504
Copy link
Copy Markdown
Contributor

@vivekv1504 vivekv1504 commented Mar 24, 2026

COMPLETES #< SPARK-772395 >

vidcast :-https://app.vidcast.io/share/51651bfb-b37f-4863-acbc-931cdeb46e93

This pull request addresses

This pull request addresses:
The Webex Widgets Changelog portal had no way to view the commit history of a specific package between two Widgets stable releases. When a user wanted to know what changed in, say, @webex/cc-widgets between 1.28.0-next.5 and 1.28.2-next.7, they had to manually open each version log file and scan through commits — across multiple intermediate stable versions (1.28.0, 1.28.1, 1.28.2) — with no tooling to aggregate them.

by making the following changes

Identifies all stable versions that sit between a user-selected base version (stableA) and target version (stableB) using semver-aware sorting
Fetches each intermediate stable's log file in sequence, reusing already-loaded changelogs for stableA and stableB
Applies position-based rules for which pre-release entries to include per stable:
start — from the user's base pre-release (e.g. 1.28.0-next.5) through all remaining pre-releases of that stable
middle — skips the exact stable entry (e.g. 1.28.1); collects ALL pre-releases of that intermediate stable
end — from next.1 up to the user's target pre-release (e.g. 1.28.2-next.7) inclusive
only — when both versions fall within the same stable file, collects the range within that single file
Renders results in a table with short-linked commit hash (linked to GitHub), commit message (with PR number auto-linked), and the pre-release version the commit belongs to
Displays a summary of how many commits were collected between the two selected versions.

Change Type

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Tooling change
  • Internal code refactor

The following scenarios were tested

  • The testing is done with the amplify link
    < ENUMERATE TESTS PERFORMED, WHETHER MANUAL OR AUTOMATED >

The GAI Coding Policy And Copyright Annotation Best Practices

  • GAI was not used (or, no additional notation is required)
  • Code was generated entirely by GAI
  • GAI was used to create a draft that was subsequently customized or modified
  • Coder created a draft manually that was non-substantively modified by GAI (e.g., refactoring was performed by GAI on manually written code)
  • Tool used for AI assistance (GitHub Copilot / Other - specify)
    • Github Copilot
    • Other -cursor
  • This PR is related to
    • Feature
    • Defect fix
    • Tech Debt
    • Automation

Checklist before merging

  • I have not skipped any automated checks
  • All existing and new tests passed
  • I have updated the testing document
  • I have tested the functionality with amplify link

Make sure to have followed the contributing guidelines before submitting.

@vivekv1504 vivekv1504 requested a review from a team as a code owner March 24, 2026 09:36
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c4d5b3ca08

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +1412 to +1416
try {
const commits = await collectCommitsAcrossStables(
enhancedParams.packageName,
enhancedParams.stableA,
enhancedParams.stableB,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P0 Badge Reintroduce removed comparison URL helper functions

This edit removes the old standard-comparison loader block (handleComparisonURLParams / loadStandardComparisonFromURL), but initializeComparisonMode still calls both functions later in app.js. On a normal page load where no enhanced params are present, that path throws a ReferenceError and halts comparison-mode initialization, so legacy ?compare= / ?versionA=&versionB= links stop working entirely.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

upadate with code changes.
loadStandardComparisonFromURL actaually this is for full version comparison url params ,forgot to remove that code .

Comment on lines +157 to +161
<<<<<<< HEAD
<label for="comparison-package-select">Package for comparison:</label>
<select id="comparison-package-select" class="full-width">
<option value="">Select a package for comparison</option>
=======
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Remove unresolved merge markers from comparison form

The HTML still contains Git conflict markers (<<<<<<<, =======, >>>>>>>) in the package selector block, which leaves conflicting duplicate markup in the live page. This creates malformed/ambiguous DOM around the comparison package select and can break or confuse selector behavior in the comparison UI.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

removed merge conflicts markers

@aws-amplify-us-east-2
Copy link
Copy Markdown

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-661.d1b38q61t1z947.amplifyapp.com

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

if (comparisonViewBtn) comparisonViewBtn.addEventListener('click', switchToComparisonViewMode);

P1 Badge Restore comparison view handler before wiring click listener

setupComparisonEventListeners still binds the comparison toggle button to switchToComparisonViewMode, but that function was removed in this commit. When initialization reaches this line, JavaScript throws a ReferenceError, which aborts the rest of listener registration (version/package/pre-release selectors, submit, clear, and copy-link handlers), so comparison mode becomes non-functional on load.

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +1145 to +1146
const numA = parseInt(versionASpecific.match(/\.(\d+)$/)?.[1] || '0', 10);
const numB = parseInt(versionBSpecific.match(/\.(\d+)$/)?.[1] || '0', 10);
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Compare same-stable selections using prerelease semantics

The same-stable validation compares trailing numeric segments for both selected versions, but exact stable versions (for example 1.28.2) also match this regex and produce 2 from the patch part. That makes valid flows like base 1.28.2-ccwidgets.7 to target (Stable) 1.28.2 fail with “base pre-release must be older,” even though stable should be treated as newer than any prerelease in that train.

Useful? React with 👍 / 👎.

@Shreyas281299 Shreyas281299 added the validated Indicates that the PR is ready for actions label Mar 25, 2026
<div class="form-row" id="comparison-package-row" style="display: none;">
<div class="form-group">
<label for="comparison-package-select">Package (optional for full comparison):</label>
<<<<<<< HEAD
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[Critical — Merge Conflict] This line introduces an unresolved merge conflict marker (<<<<<<< HEAD) into the HTML. No matching ======= or >>>>>>> markers appear in the diff, meaning the conflict was partially resolved but this opening marker was left behind. It will render as raw text in the browser, breaking the UI layout. Please resolve this conflict — choose between "Package for comparison:" and "Package (optional for full comparison):" — and remove the marker.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

clear the unresolved conflicts marker in html file

* Walk every stable between stableA..stableB,
* fetch each log file, and collect deduplicated commits.
*/
const collectCommitsAcrossStables = async (packageName, stableA, stableB, versionA, versionB) => {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[Medium — Missing Cache Reuse] This function re-fetches every stable version's changelog via fetch(path), including stableA and stableB, even though comparisonState.cachedChangelogA/B already holds them from handleStableVersionChange. The PR description states "reusing already-loaded changelogs for stableA and stableB" but the implementation doesn't do this.

Suggestion: Pass cachedChangelogA and cachedChangelogB as parameters (or access from comparisonState), and skip fetching when stable === stableA or stable === stableB.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I agree with these it is refetching even though holds the cachedata from handleStableVersionChange ,and changes to code
if (stable === stableA && comparisonState.cachedChangelogA ) { changelog = comparisonState.cachedChangelogA; } else if (stable === stableB && comparisonState.cachedChangelogB) { changelog = comparisonState.cachedChangelogB; } else {


let changelog;
try {
const res = await fetch(path);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[Medium — Silent Error Swallowing] The fetch call doesn't check res.ok before calling res.json(). The old code that was removed had if (!res.ok) throw new Error(...). The bare catch { continue; } prevents crashes but makes failures completely silent — a failed fetch for an intermediate version silently skips commits with no indication to the user or developer.

Suggestion: Add if (!res.ok) check and at minimum console.warn when a stable version's changelog fails to load, so failures are diagnosable.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

add condition for checking the fetch changelog data
if (!res.ok) { throw new Error(Failed to fetch changelog for stable ${stable}); }


// Skip single-view URL handling if comparison parameters are present
if (
queryParams.has('compare') ||
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[Medium — ?compare= URL Regression] This early return guard still checks queryParams.has('compare'), but handleComparisonURLParams (which processed ?compare= URLs) and loadStandardComparisonFromURL were both deleted. Visiting ?compare=1.27.0vs1.28.0 will now: (1) skip single-view form population because of this early return, (2) NOT load comparison mode because the handler is gone. Result: a blank page.

Suggestion: Either remove queryParams.has('compare') from this guard since it's no longer handled, or add a minimal fallback that redirects or shows a message that the old URL format is no longer supported.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

removing the compare queryParam that is not useful

if (!isPreRelease(v, stableVersion)) return false;
const tag = getPreReleaseTag(v, stableVersion);
const num = getPreReleaseNum(v);
const afterStart = tag === tagA ? num >= numA : false;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[Medium — Cross-Tag Pre-release Returns Zero Commits] When position === 'only' (stableA === stableB) and the two pre-release versions have different tags (e.g., 1.28.0-next.5 vs 1.28.0-ccwidgets.3), this filter requires BOTH afterStart and beforeEnd to be true. Since tag === tagA and tag === tagB can't both be true when tags differ, no commits are ever returned — silent data loss. Additionally, validateComparisonInputs only compares numeric suffixes without checking tag equality, so this scenario passes validation.

Suggestion: Either handle cross-tag (use : true instead of : false to include other tags' pre-releases), or add validation in validateComparisonInputs to require matching pre-release tags.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

replace the true instead of false


// Update DOM
comparisonResults.innerHTML = html;
comparisonResults.innerHTML += html;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[Low — Fragile Render Order] Changed from innerHTML = html to innerHTML += html. This works correctly because both call sites call renderCommitHistory first (which resets the container), but this implicit contract is fragile and undocumented. Consider adding a comment explaining the required render order, or building both HTML sections and setting innerHTML once.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Adding comment for detail information



Handlebars.registerHelper('math', function (index, offset) {
return index + offset;//
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[Low — Trailing Empty Comment] return index + offset;// has a trailing empty comment that looks like a development leftover. Also, the two extra blank lines above this helper definition are unnecessary. Minor cleanup.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

clear the extra empty lines and romoved the empty trailling comments

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cc692efdc2

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +225 to +226
isExactStable(versionA) && isExactStable(versionB)
? []
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Collect middle prereleases for stable boundary ranges

When both selected boundary versions are exact stables (for example comparing (Stable) 1.28.0 to (Stable) 1.28.2), this branch returns an empty list for every middle stable. That drops all intermediate prerelease commits from the commit-history output, so the new “between stable releases” view can return materially incomplete results for a common comparison flow.

Useful? React with 👍 / 👎.

Comment on lines +1201 to +1202
} catch {
continue;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Surface changelog fetch failures during aggregation

If any stable changelog fetch fails, the empty catch silently skips that stable and continues rendering results. This produces partial commit histories without any warning to the user, which can misstate what changed when a log file is missing or temporarily unavailable.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor

@riteshfyi riteshfyi Mar 26, 2026

Choose a reason for hiding this comment

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

Good Point, take a look at this. refer to the other comment at this part.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

In catch block is silently skips the error instead of this add the warn console log .

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e8151ddcab

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

}

// If same stable and both pre-releases selected, base must be older
if (stableA === stableB && versionASpecific && versionBSpecific) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Validate same-stable ranges when one side is implicit stable

This same-stable ordering guard only runs when both pre-release selectors are filled, so a comparison like base=1.28.2 (left selector blank, which defaults to stable) and target=1.28.2-next.5 bypasses validation even though the base is newer than the target. Because handleComparisonSubmit falls back blank selectors to the stable version, this allows inverted ranges to execute and return misleading commit history instead of rejecting the input.

Useful? React with 👍 / 👎.

const tagB = getPreReleaseTag(versionB, stableVersion);
const numB = getPreReleaseNum(versionB);
versionsToUse = all.filter((v) => {
if (!isPreRelease(v, stableVersion)) return false;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Include stable endpoint in prerelease-to-stable same-file ranges

In the 'only' branch (same stable file), this filter unconditionally excludes non-prerelease entries. When users compare from a prerelease to the stable endpoint (e.g. base=1.28.2-next.5, target left blank so it defaults to 1.28.2), the stable release entry is never included, so the reported commit history is incomplete and misses the final stable commit.

Useful? React with 👍 / 👎.

@riteshfyi
Copy link
Copy Markdown
Contributor

riteshfyi commented Mar 26, 2026

the PR mentions "Displays a summary of how many commits were collected and which stable log files were traversed".
i don't see any code related to the display of stable log files traversed.
either update description or add to code , if the above is the intended behaviour


let comparisonMode = false;
/* ============================================
UI HELPER FUNCTIONS
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we remove this comment? as the ui helper method are no longer there in the code

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

removed that UI helpers commented lines

Comment on lines +1201 to +1202
} catch {
continue;
Copy link
Copy Markdown
Contributor

@riteshfyi riteshfyi Mar 26, 2026

Choose a reason for hiding this comment

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

Good Point, take a look at this. refer to the other comment at this part.

}
} else if (position === 'middle') {
versionsToUse =
isExactStable(versionA) && isExactStable(versionB)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

for scenaro like like v1.28.1 to v1.28.2 , it gets [] ? is this actually how it should work?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

presently there is no stable versions in log files for the future ,new versions are coming with stable versions included it is used
if (versionA === stableVersion) { versionsToUse = all.filter((v)=>isPreRelease(v,stableVersion)); }
updated code

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e8151ddcab

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +227 to +231
: all.filter((v) => {
if (!isPreRelease(v, stableVersion)) return false;
if (!targetTag) return true;
return getPreReleaseTag(v, stableVersion) === targetTag;
});
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Include all prerelease tags for middle stable ranges

The middle-range branch contradicts the stated rule in this file ('middle' → ALL pre-releases) by filtering intermediate stables to a single targetTag. When a package has multiple prerelease tracks in the intermediate stable (for example next and beta), commits from the non-selected tag are dropped, so the generated cross-stable history is incomplete.

Useful? React with 👍 / 👎.

Comment on lines +270 to +272
const afterStart = tag === tagA ? num >= numA : true;
const beforeEnd = tag === tagB ? num <= numB : true;
return afterStart && beforeEnd;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Exclude unrelated prerelease tags in same-stable ranges

In the 'only' branch, afterStart and beforeEnd default to true for versions whose tag is neither tagA nor tagB, so unrelated prerelease tracks are included in the result set. This inflates commit history for same-stable comparisons by pulling commits outside the requested version interval.

Useful? React with 👍 / 👎.

Comment on lines +1145 to +1148
const numA = parseInt(versionASpecific.match(/\.(\d+)$/)?.[1] || '0', 10);
const numB = parseInt(versionBSpecific.match(/\.(\d+)$/)?.[1] || '0', 10);
if (numA > numB) {
alert('Base pre-release version must be older than target pre-release version');
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Reject same-stable stable→prerelease reverse ranges

The same-stable validation compares only the numeric suffix, so a base exact stable version (parsed as 0) and a target prerelease (e.g. .5) passes validation even though stable is chronologically newer. That allows reverse ranges to execute and produces misleading commit-history output instead of blocking invalid input.

Useful? React with 👍 / 👎.

@vivekv1504
Copy link
Copy Markdown
Contributor Author

the PR mentions "Displays a summary of how many commits were collected and which stable log files were traversed". i don't see any code related to the display of stable log files traversed. either update description or add to code , if the above is the intended behaviour

I seen the issue is previous code is there stable group but intensionally i am removed that code then i forgot to update the PR description

…improving error handling in collectCommitsAcrossStables function
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3f90949a7f

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +210 to +211
if (versionA === stableVersion) {
versionsToUse = all.filter((v)=>isPreRelease(v,stableVersion));
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Exclude base-train prereleases for stable start boundary

In collectCommitsFromStable, the 'start' branch treats an exact-stable base (versionA === stableVersion) as “include all prereleases,” so ranges like base 1.28.0 → target 1.28.2-next.7 pull in 1.28.0-* commits that happened before the chosen base boundary. This produces inflated and misleading commit history for common stable-to-later comparisons.

Useful? React with 👍 / 👎.

Comment on lines +233 to +234
if (versionB === stableVersion) {
versionsToUse = [stableVersion];
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Include end-train prereleases when target is exact stable

The 'end' branch currently returns only [stableVersion] when versionB is an exact stable. For comparisons ending at a stable release (for example 1.28.0-next.51.28.2), this drops all 1.28.2-* prerelease commits that occur between the selected bounds, so the generated commit history is materially incomplete.

Useful? React with 👍 / 👎.

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

Labels

validated Indicates that the PR is ready for actions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants