From f7ca230b79f5cdf8c03c047f8c44967c13b51b3a Mon Sep 17 00:00:00 2001 From: Michael Kriese <michael.kriese@visualon.de> Date: Thu, 11 Apr 2024 13:00:47 +0200 Subject: [PATCH] docs(versioning): split to seperate pages and add open issues (#28314) --- docs/usage/modules/versioning/.pages | 7 +++ .../{versioning.md => versioning/index.md} | 0 lib/modules/manager/batect/readme.md | 2 +- lib/modules/manager/dockerfile/readme.md | 2 +- tools/docs/github-query-items.ts | 4 +- tools/docs/index.ts | 2 +- tools/docs/versioning.ts | 58 ++++++++++++++----- 7 files changed, 55 insertions(+), 20 deletions(-) create mode 100644 docs/usage/modules/versioning/.pages rename docs/usage/modules/{versioning.md => versioning/index.md} (100%) diff --git a/docs/usage/modules/versioning/.pages b/docs/usage/modules/versioning/.pages new file mode 100644 index 0000000000..4a59c0f2ed --- /dev/null +++ b/docs/usage/modules/versioning/.pages @@ -0,0 +1,7 @@ +title: Versionings +nav: + - Introduction: index.md + - ... +collapse_single_pages: true +order: asc +sort_type: natural diff --git a/docs/usage/modules/versioning.md b/docs/usage/modules/versioning/index.md similarity index 100% rename from docs/usage/modules/versioning.md rename to docs/usage/modules/versioning/index.md diff --git a/lib/modules/manager/batect/readme.md b/lib/modules/manager/batect/readme.md index 6c16968630..93c1abad59 100644 --- a/lib/modules/manager/batect/readme.md +++ b/lib/modules/manager/batect/readme.md @@ -28,6 +28,6 @@ For example: ### Bundle versioning -This manager assumes that any bundles referenced use tags for versioning, and that these tags use [SemVer](../../versioning.md#semantic-versioning). +This manager assumes that any bundles referenced use tags for versioning, and that these tags use [SemVer](../../versioning/semver.md). The implementation of SemVer is strict - versions must follow the `X.Y.Z` or `vX.Y.Z` format. Versions that don't match this format (eg. `X.Y`) will be ignored. diff --git a/lib/modules/manager/dockerfile/readme.md b/lib/modules/manager/dockerfile/readme.md index 4a46c99549..f2ed0e24bb 100644 --- a/lib/modules/manager/dockerfile/readme.md +++ b/lib/modules/manager/dockerfile/readme.md @@ -19,4 +19,4 @@ For example, if you know that an image follows SemVer, you can tell Renovate to } ``` -Read [Renovate's Docker Versioning](../../versioning.md#docker-versioning) docs to learn more. +Read [Renovate's Docker Versioning](../../versioning/docker.md) docs to learn more. diff --git a/tools/docs/github-query-items.ts b/tools/docs/github-query-items.ts index 5aeb4e282b..60bb203e9c 100644 --- a/tools/docs/github-query-items.ts +++ b/tools/docs/github-query-items.ts @@ -36,6 +36,7 @@ export interface RenovateOpenItems { managers: OpenItems; platforms: OpenItems; datasources: OpenItems; + versionings: OpenItems; } export type OpenItems = Record<string, Items | undefined>; @@ -63,6 +64,7 @@ export async function getOpenGitHubItems(): Promise<RenovateOpenItems> { managers: extractIssues(rawItems, 'manager:'), platforms: extractIssues(rawItems, 'platform:'), datasources: extractIssues(rawItems, 'datasource:'), + versionings: extractIssues(rawItems, 'versioning:'), }; return renovateOpenItems; @@ -71,7 +73,7 @@ export async function getOpenGitHubItems(): Promise<RenovateOpenItems> { if (process.env.CI) { throw err; } - return { managers: {}, platforms: {}, datasources: {} }; + return { managers: {}, platforms: {}, datasources: {}, versionings: {} }; } } diff --git a/tools/docs/index.ts b/tools/docs/index.ts index 577f0d6e9e..737138b108 100644 --- a/tools/docs/index.ts +++ b/tools/docs/index.ts @@ -32,7 +32,7 @@ export async function generateDocs(): Promise<void> { // versionings logger.info('* versionings'); - await generateVersioning(dist); + await generateVersioning(dist, openItems.versionings); // datasources logger.info('* datasources'); diff --git a/tools/docs/versioning.ts b/tools/docs/versioning.ts index 4eb85beb5b..eb379f357b 100644 --- a/tools/docs/versioning.ts +++ b/tools/docs/versioning.ts @@ -1,6 +1,16 @@ +import { codeBlock } from 'common-tags'; import { getVersioningList } from '../../lib/modules/versioning'; import { readFile, updateFile } from '../utils'; -import { formatDescription, formatUrls, replaceContent } from './utils'; +import { + type OpenItems, + generateFeatureAndBugMarkdown, +} from './github-query-items'; +import { + formatDescription, + formatUrls, + getModuleLink, + replaceContent, +} from './utils'; type Versioning = { id: string; @@ -10,35 +20,51 @@ type Versioning = { supportedRangeStrategies?: string[]; }; -export async function generateVersioning(dist: string): Promise<void> { +export async function generateVersioning( + dist: string, + versioningIssuesMap: OpenItems, +): Promise<void> { const versioningList = getVersioningList(); - let versioningContent = - '\nSupported values for `versioning` are: ' + - versioningList.map((v) => `\`${v}\``).join(', ') + - '.\n\n'; + let versioningContent = '\nSupported values for `versioning` are:\n\n'; for (const versioning of versioningList) { const definition = (await import( `../../lib/modules/versioning/${versioning}` )) as Versioning; const { id, displayName, urls, supportsRanges, supportedRangeStrategies } = definition; - versioningContent += `\n### ${displayName} Versioning\n\n`; - versioningContent += `**Identifier**: \`${id}\`\n\n`; - versioningContent += formatUrls(urls); - versioningContent += `**Ranges/Constraints:**\n\n`; + versioningContent += `* ${getModuleLink( + versioning, + `\`${versioning}\``, + )}\n`; + let md = codeBlock` + --- + title: ${displayName} + edit_url: https://github.com/renovatebot/renovate/edit/main/lib/modules/versioning/${versioning}/readme.md + --- + + # ${displayName} Versioning + `; + md += '\n\n'; + md += `**Identifier**: \`${id}\`\n\n`; + md += formatUrls(urls); + md += `**Ranges/Constraints:**\n\n`; if (supportsRanges) { - versioningContent += `✅ Ranges are supported.\n\nValid \`rangeStrategy\` values are: ${( + md += `✅ Ranges are supported.\n\nValid \`rangeStrategy\` values are: ${( supportedRangeStrategies ?? [] ) .map((strategy: string) => `\`${strategy}\``) .join(', ')}\n\n`; } else { - versioningContent += `⌠No range support.\n\n`; + md += `⌠No range support.\n\n`; } - versioningContent += await formatDescription('versioning', versioning); - versioningContent += `\n----\n\n`; + md += await formatDescription('versioning', versioning); + md += `\n----\n\n`; + md += generateFeatureAndBugMarkdown(versioningIssuesMap, versioning); + + await updateFile(`${dist}/modules/versioning/${versioning}/index.md`, md); } - let indexContent = await readFile(`docs/usage/modules/versioning.md`); + + let indexContent = await readFile(`docs/usage/modules/versioning/index.md`); indexContent = replaceContent(indexContent, versioningContent); - await updateFile(`${dist}/modules/versioning.md`, indexContent); + await updateFile(`${dist}/modules/versioning/index.md`, indexContent); } -- GitLab