@@ -36,11 +36,17 @@ function generateTableRow(
36
36
const backports = prReleaseVersions ?. backports ;
37
37
if ( backports ) allVersions . push ( ...backports ) ;
38
38
39
- // Sort by major version number e.g. 30.0.0 -> 30 in descending order i.e. 30, 29 , ...
40
- allVersions . sort ( ( a , b ) => Number ( b . split ( '.' ) [ 0 ] ) - Number ( a . split ( '.' ) [ 0 ] ) ) ;
39
+ // Sort by major version number e.g. 30.0.0 -> 30 in ascending order i.e. 29, 30 , ...
40
+ allVersions . sort ( ( a , b ) => Number ( a . split ( '.' ) [ 0 ] ) - Number ( b . split ( '.' ) [ 0 ] ) ) ;
41
41
42
- const formattedVersions = allVersions . map ( ( version ) => {
43
- return (
42
+ const formattedVersions : JSX . Element [ ] = [ ] ;
43
+
44
+ for ( const version of allVersions ) {
45
+ const [ , minor , patch ] = version . split ( '.' ) ;
46
+ const isBackportMajor =
47
+ release !== version && minor === '0' && patch === '0' ;
48
+
49
+ const formattedVersion = (
44
50
< a
45
51
key = { version }
46
52
href = { change [ 'pr-url' ] }
@@ -49,12 +55,20 @@ function generateTableRow(
49
55
>
50
56
{ /* Semver shenanigans, feature backported to both ^7.1.0 and ^6.3.0 would not be present in 7.0.0 */ }
51
57
< pre >
52
- { release === version ? '>=' : '^' }
58
+ { release === version || isBackportMajor ? '>=' : '^' }
53
59
{ version }
54
60
</ pre >
55
61
</ a >
56
62
) ;
57
- } ) ;
63
+
64
+ formattedVersions . push ( formattedVersion ) ;
65
+
66
+ // If backport is a major (i.e. >=x.0.0), no need to include the release or any other backports
67
+ if ( isBackportMajor ) break ;
68
+ }
69
+
70
+ // Reverse the order of the versions so that the latest version is first i.e. 30, 29, ...
71
+ formattedVersions . reverse ( ) ;
58
72
59
73
let changesJsx : JSX . Element | undefined ;
60
74
0 commit comments