Skip to content

Commit 60fe83b

Browse files
authored
Merge pull request #1843 from rabbitmq/more-improvements-to-release-info
More improvements to release information
2 parents c3b9143 + 86e2aec commit 60fe83b

File tree

7 files changed

+119
-82
lines changed

7 files changed

+119
-82
lines changed

docusaurus.config.js

+23-14
Original file line numberDiff line numberDiff line change
@@ -39,53 +39,62 @@ const config = {
3939
},
4040

4141
customFields: {
42-
releases: {
42+
releaseBranches: {
4343
rabbitmq: {
4444
// RabbitMQ releases per version declared in Docusaurus ('Next' for the
4545
// future docs).
4646
'Next': {
47-
//version: '3.13.0',
4847
// package_revs: {
4948
// 'debian': '1',
5049
// 'rpm-el8': '1',
5150
// 'rpm-suse': '1',
5251
// }
5352
},
5453
'3.13': {
55-
version: '3.13.0',
56-
links: [
54+
releases: [
5755
{
58-
label: "Annoucement",
59-
url: "/blog/2024/03/11/rabbitmq-3.13.0-announcement"
56+
version: '3.13.0',
57+
release_date: "2024-02-22",
58+
links: [
59+
{
60+
label: "Announcement",
61+
url: "/blog/2024/03/11/rabbitmq-3.13.0-announcement"
62+
},
63+
],
6064
},
6165
],
62-
first_release: "2024-02-22",
6366
end_of_community_support: "2025-03-01",
6467
end_of_commercial_support: "2025-09-01",
6568
},
6669
'3.12': {
67-
version: '3.12.13',
68-
first_release: "2023-06-02",
70+
releases: [
71+
{version: '3.12.13', release_date: "2024-02-16", },
72+
{version: '3.12.0', release_date: "2023-06-02", },
73+
],
6974
end_of_community_support: "2024-06-30",
7075
end_of_commercial_support: "2024-12-31",
7176
},
7277
'3.11': {
73-
version: '3.11.28',
74-
first_release: "2022-09-28",
78+
releases: [
79+
{version: '3.11.28', release_date: "2023-12-22", },
80+
{version: '3.11.0', release_date: "2022-09-28", },
81+
],
7582
end_of_community_support: "2023-12-31",
7683
end_of_commercial_support: "2024-07-31",
7784
},
7885
'3.10': {
79-
version: '3.10.25',
80-
first_release: "2022-05-03",
86+
releases: [
87+
{version: '3.10.25', release_date: "2023-07-18", },
88+
{version: '3.10.0', release_date: "2022-05-03", },
89+
],
8190
end_of_community_support: "2022-05-03",
8291
end_of_commercial_support: "2023-12-31",
8392
},
8493
},
8594

8695
// Client releases.
8796
java: '5.20.0',
88-
dotnot: '6.6.0',
97+
dotnet: '6.6.0',
8998
},
9099
},
91100

release-information/index.md

+2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ the release notes of the target release.
3434

3535
<RabbitMQServerReleaseInfoTable/>
3636

37+
:::note
3738
Older releases that are not in this table are unsupported.
39+
:::
3840

3941
## Support Policy {#support-policy}
4042

src/components/DotNetClient/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
55
function getActualVersion() {
66
const {
77
siteConfig: {
8-
customFields: {releases},
8+
customFields: {releaseBranches},
99
},
1010
} = useDocusaurusContext();
1111

12-
const version = releases['dotnet'];
12+
const version = releaseBranches['dotnet'];
1313
return version;
1414
}
1515

src/components/JavaClient/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
55
function getActualVersion() {
66
const {
77
siteConfig: {
8-
customFields: {releases},
8+
customFields: {releaseBranches},
99
},
1010
} = useDocusaurusContext();
1111

12-
const version = releases['java'];
12+
const version = releaseBranches['java'];
1313
return version;
1414
}
1515

src/components/RabbitMQServer/index.js

+11-14
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react';
22

3-
import { getReleaseInfo } from '@site/src/components/RabbitMQServerReleaseInfo';
3+
import { getLatestRelease, getLatestVersion } from '@site/src/components/RabbitMQServerReleaseInfo';
44
import { useActiveVersion } from '@docusaurus/plugin-content-docs/client';
55

66
function getBranchOrDefault({ branch } = { branch: undefined }) {
@@ -11,23 +11,20 @@ function getBranchOrDefault({ branch } = { branch: undefined }) {
1111
return branch;
1212
}
1313

14-
function getActualVersion(props) {
15-
const releases = getReleaseInfo();
14+
function getLatestVersionForCurrentBranch(props) {
1615
const branch = getBranchOrDefault(props);
17-
18-
const version = releases[branch].version;
16+
const version = getLatestVersion(branch);
1917
return version;
2018
}
2119

2220
function getPackageRevision(props) {
23-
const releases = getReleaseInfo();
2421
const branch = getBranchOrDefault(props);
22+
const release = getLatestRelease(branch);
23+
const { packageType } = props;
2524

2625
var package_rev;
27-
if ('package_revs' in releases[branch] &&
28-
packageType in releases[branch]['package_revs']) {
29-
const { packageType } = props;
30-
package_rev = releases[branch]['package_revs'][packageType];
26+
if ('package_revs' in release && packageType in release['package_revs']) {
27+
package_rev = release['package_revs'][packageType];
3128
} else {
3229
package_rev = '1';
3330
}
@@ -40,19 +37,19 @@ export function RabbitMQServerProductName() {
4037
}
4138

4239
export function RabbitMQServerVersion(props = {}) {
43-
const version = getActualVersion(props);
40+
const version = getLatestVersionForCurrentBranch(props);
4441
return version;
4542
}
4643

4744
export function RabbitMQServerGitTag(props = {}) {
48-
const version = getActualVersion(props);
45+
const version = getLatestVersionForCurrentBranch(props);
4946
const tag = `v${version}`;
5047
return tag;
5148
}
5249

5350
export function RabbitMQServerPackageURL(props) {
5451
const { packageType } = props;
55-
const version = getActualVersion(props);
52+
const version = getLatestVersionForCurrentBranch(props);
5653
const tag = RabbitMQServerGitTag();
5754
const baseUrl = `https://github.com/rabbitmq/rabbitmq-server/releases/download/${tag}`;
5855
switch (packageType) {
@@ -100,7 +97,7 @@ export function RabbitMQServerPackageFilename(props) {
10097
}
10198

10299
export function RabbitMQServerPackageGenUnixDir(props = {}) {
103-
const version = getActualVersion(props);
100+
const version = getLatestVersionForCurrentBranch(props);
104101
const dir = `rabbitmq_${version}`;
105102
return dir;
106103
}

src/components/RabbitMQServerReleaseInfo/index.js

+53-37
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,65 @@ import React from 'react';
22

33
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
44

5-
export function getReleaseInfo() {
5+
export function getReleaseBranches() {
66
const {
77
siteConfig: {
88
customFields: {
9-
releases: {
10-
rabbitmq: releases
9+
releaseBranches: {
10+
rabbitmq: releaseBranches
1111
},
1212
},
1313
},
1414
} = useDocusaurusContext();
1515

16-
return releases;
16+
return releaseBranches;
17+
}
18+
19+
export function getReleaseBranch(branch) {
20+
const releaseBranches = getReleaseBranches();
21+
const releaseBranch = releaseBranches[branch];
22+
return releaseBranch;
23+
}
24+
25+
export function getLatestRelease(branch) {
26+
const releaseBranch = getReleaseBranch(branch);
27+
const release = releaseBranch.releases[0];
28+
return release;
29+
}
30+
31+
export function getLatestVersion(branch) {
32+
const release = getLatestRelease(branch);
33+
return release.version;
1734
}
1835

1936
export function RabbitMQServerReleaseInfoTable() {
20-
const releases = getReleaseInfo();
37+
const releaseBranches = getReleaseBranches();
2138

2239
const now = Date.now();
2340
const dateOptions = { year: 'numeric', month: 'short', day: 'numeric' };
2441

2542
var sawLatestRelease = false;
2643

2744
var rows = [];
28-
for (const series in releases) {
29-
if (series == 'Next') {
45+
for (const branch in releaseBranches) {
46+
if (branch == 'Next') {
3047
continue;
3148
}
3249

33-
const release = releases[series];
50+
const releaseBranch = releaseBranches[branch];
51+
const releases = releaseBranch.releases;
52+
const lastRelease = releases[0];
3453

35-
const isReleased = typeof release.first_release !== 'undefined';
54+
const isReleased = typeof lastRelease.release_date !== 'undefined';
3655

3756
var links;
3857
if (isReleased) {
3958
links = [{
4059
label: "Release Notes",
41-
url: `https://github.com/rabbitmq/rabbitmq-server/releases/tag/v${release.version}`
60+
url: `https://github.com/rabbitmq/rabbitmq-server/releases/tag/v${lastRelease.version}`
4261
}];
43-
if (release.links) {
44-
links = links.concat(release.links);
62+
if (lastRelease.links) {
63+
links = links.concat(lastRelease.links);
4564
}
4665

4766
links = (
@@ -56,20 +75,21 @@ export function RabbitMQServerReleaseInfoTable() {
5675
links = <></>
5776
}
5877

78+
const initialRelease = releases[releases.length - 1];
5979
var initialReleaseDate;
60-
if (release.first_release) {
61-
const date = new Date(release.first_release);
80+
if (initialRelease.release_date) {
81+
const date = new Date(initialRelease.release_date);
6282
initialReleaseDate = date.toLocaleDateString("en-GB", dateOptions);
6383
} else {
6484
initialReleaseDate = <></>;
6585
}
6686

6787
var endOfSupportDates = [];
68-
if (release.end_of_community_support) {
69-
endOfSupportDates.push(release.end_of_community_support);
88+
if (releaseBranch.end_of_community_support) {
89+
endOfSupportDates.push(releaseBranch.end_of_community_support);
7090
}
71-
if (release.end_of_commercial_support) {
72-
endOfSupportDates.push(release.end_of_commercial_support);
91+
if (releaseBranch.end_of_commercial_support) {
92+
endOfSupportDates.push(releaseBranch.end_of_commercial_support);
7393
}
7494

7595
endOfSupportDates = endOfSupportDates.map(function(rawDate) {
@@ -100,8 +120,8 @@ export function RabbitMQServerReleaseInfoTable() {
100120

101121
rows.push(
102122
<tr className={latestReleaseClass}>
103-
<td class="release-series">{series}</td>
104-
<td class="release-patch">{release.version || "-"}</td>
123+
<td class="release-branch">{branch}</td>
124+
<td class="release-version">{lastRelease.version || "-"}</td>
105125
<td class="release-links">{links}</td>
106126
<td class="release-date">{initialReleaseDate}</td>
107127
{endOfSupportDates}
@@ -113,27 +133,23 @@ export function RabbitMQServerReleaseInfoTable() {
113133
<div className="release-information">
114134
<table>
115135
<tr>
116-
<th rowspan="2">Ver.</th>
117-
<th rowspan="2">Latest Rel.</th>
118-
<th rowspan="2">Links</th>
119-
<th rowspan="2">Initial Release</th>
120-
<th colspan="2">End of Support</th>
121-
</tr>
122-
<tr>
123-
<th>Community</th>
124-
<th>Ext. Commercial</th>
136+
<th>Release</th>
137+
<th colspan="2">Latest Patch</th>
138+
<th>Date of First Release</th>
139+
<th>End of Community Support</th>
140+
<th>End of Extended Commercial Support</th>
125141
</tr>
126-
<tr></tr>
127142

128143
{rows}
129144

130145
</table>
131-
<p><strong>Legend:</strong></p>
132-
<ul className="release-legend">
133-
<li className="supported-releaase latest-release">Latest release, fully supported</li>
134-
<li className="supported-release">Older release, still supported but upgrade is recommended</li>
135-
<li className="unsupported-release">Old release, unsupported</li>
136-
{/*<li className="unsupported-release future-release">Future version, unsupported</li>*/}
137-
</ul>
146+
147+
<strong>Legend:</strong>
148+
<dl className="release-legend">
149+
<dt className="supported-releaase latest-release"></dt><dd>Latest release, fully supported</dd>
150+
<dt className="supported-release"></dt><dd>Older release, still supported but upgrade is recommended</dd>
151+
<dt className="unsupported-release"></dt><dd>Old release, unsupported</dd>
152+
{/*<dt className="unsupported-release future-release"></dt><dd>Future version, unsupported</dd>*/}
153+
</dl>
138154
</div>);
139155
}

0 commit comments

Comments
 (0)