Skip to content

Commit

Permalink
docs(versioning): split to seperate pages and add open issues (#28314)
Browse files Browse the repository at this point in the history
  • Loading branch information
viceice committed Apr 11, 2024
1 parent d29079c commit f7ca230
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 20 deletions.
7 changes: 7 additions & 0 deletions docs/usage/modules/versioning/.pages
@@ -0,0 +1,7 @@
title: Versionings
nav:
- Introduction: index.md
- ...
collapse_single_pages: true
order: asc
sort_type: natural
File renamed without changes.
2 changes: 1 addition & 1 deletion lib/modules/manager/batect/readme.md
Expand Up @@ -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.
2 changes: 1 addition & 1 deletion lib/modules/manager/dockerfile/readme.md
Expand Up @@ -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.
4 changes: 3 additions & 1 deletion tools/docs/github-query-items.ts
Expand Up @@ -36,6 +36,7 @@ export interface RenovateOpenItems {
managers: OpenItems;
platforms: OpenItems;
datasources: OpenItems;
versionings: OpenItems;
}

export type OpenItems = Record<string, Items | undefined>;
Expand Down Expand Up @@ -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;
Expand All @@ -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: {} };
}
}

Expand Down
2 changes: 1 addition & 1 deletion tools/docs/index.ts
Expand Up @@ -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');
Expand Down
58 changes: 42 additions & 16 deletions 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;
Expand All @@ -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);
}

0 comments on commit f7ca230

Please sign in to comment.