Skip to content

Commit 0b0520b

Browse files
authored
Merge branch 'main' into fix-4893-dbtabs
2 parents f26b8c1 + 95540ee commit 0b0520b

File tree

533 files changed

+23143
-6572
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

533 files changed

+23143
-6572
lines changed

.changeset/README.md

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# 🚢 Release Workflow with Changesets
2+
3+
This document describes how we use [Changesets](https://github.com/changesets/changesets) in our daily development workflow to manage versions, changelogs, and releases in this monorepo.
4+
5+
---
6+
7+
## 📖 What are Changesets?
8+
9+
A **changeset** is a small Markdown file committed alongside your code changes. It records:
10+
11+
- Which packages are affected
12+
- What type of version bump they require (`patch`, `minor`, `major`)
13+
- A short description that will appear in the changelog
14+
15+
By collecting these small pieces of information, we can automatically generate:
16+
17+
- Version bumps in `package.json`
18+
- Updated `CHANGELOG.md` entries
19+
- Release PRs and npm publishes
20+
- [GitHub Releases](https://github.com/db-ux-design-system/core-web/releases)
21+
22+
---
23+
24+
## 🛠 Workflow
25+
26+
### 1. After making a change → add a changeset
27+
28+
Run:
29+
30+
```bash
31+
npx changeset
32+
```
33+
34+
You’ll be prompted to:
35+
36+
- Select affected packages
37+
- Choose the bump/release type (patch, minor, major)
38+
- Provide a short summary for the changelog
39+
40+
This creates a file like `.changeset/abcd123.md`.
41+
👉 Commit this file as part of your PR.
42+
43+
### 2. Open a Pull Request
44+
45+
- Every PR that changes published code must include a changeset file.
46+
- CI will verify the existence of at least one changeset when necessary.
47+
48+
### 3. Release PRs
49+
50+
When PRs are merged into `main` branch, the Release workflow will:
51+
52+
- Collect pending changesets
53+
- Open (or update) a Release PR called “Version Packages”
54+
- Run `changeset version` to bump versions and update changelogs
55+
56+
This PR should be reviewed like any other:
57+
58+
- Check the versions are correct
59+
- Review the generated changelogs
60+
61+
Once everything looks good, merge the Release PR.
62+
63+
### 4. Publishing
64+
65+
After the Release PR is merged into `main` branch:
66+
67+
- CI will build the packages (`./build-outputs/`)
68+
- Publish new versions to npm with the tag `latest`
69+
- Create a [GitHub Release](https://github.com/db-ux-design-system/core-web/releases)
70+
71+
You don’t have to run anything manually, it’s handled by CI.
72+
73+
---
74+
75+
## ✅ Best Practices
76+
77+
- **Always add a changeset**
78+
79+
If your code change affects published packages, create a changeset.
80+
81+
No changeset → no version bump → no release.
82+
83+
- **Choose the correct bump type**
84+
- patch: bugfix, no API or HTML changes
85+
- minor: new features, changes in inner component markup or behavior, backwards-compatible
86+
- major: breaking changes (e.g. removed props, changed APIs)
87+
88+
- **Write user-friendly summaries**
89+
90+
The text you provide will be copied into the `CHANGELOG.md`. Keep it concise and helpful.
91+
92+
- **One changeset per PR**
93+
94+
Usually you only need one. If a PR touches multiple packages with different bump types, a single changeset can cover them all.
95+
96+
- **Baseline snapshots**
97+
98+
ARIA snapshots by Playwright help detect markup changes. If they change, prefer minor instead of patch.
99+
And please mention those HTML changes within the `CHANGELOG.md` or of necessary (like bigger changes) in a [migration guide](https://github.com/db-ux-design-system/core-web/tree/main/docs/migration).
100+
101+
- **Avoid manual version bumps**
102+
103+
Never edit `package.json` `version` field by hand. Changesets handles this automatically.
104+
105+
---
106+
107+
## 🚧 Pre-Releases
108+
109+
We handle pre-releases without changesets.
110+
Instead, create a new [GitHub release](https://github.com/db-ux-design-system/core-web/releases/new)
111+
with a tag like `1.2.3-next0` and the CI will pick it up and publish it to npm with the tag `next`.
112+
113+
114+
---
115+
116+
117+
## 🔑 Cheatsheet
118+
119+
```bash
120+
# Initialize Changesets (only once per repo)
121+
npx changeset init
122+
123+
# Create a new changeset
124+
npx changeset
125+
126+
# Show pending releases
127+
npx changeset status --verbose
128+
129+
# Apply version bumps and changelogs
130+
npx changeset version
131+
132+
# Pre-release mode
133+
npx changeset pre enter next # enter prerelease
134+
npx changeset pre exit # exit prerelease
135+
```
136+
137+
---
138+
139+
## 📂 File Overview
140+
141+
- `.changeset/` → contains pending changesets (`.md` files)
142+
- `package.json` → versions are updated automatically in this file
143+
- `CHANGELOG.md` → updated by changeset version
144+
- `.github/workflows/changesets-release-pr.yml` → automation for Release PRs & publishing
145+
- `.github/workflows/pull-request-snapshot-diff.yml` → validates changes in PNG/YML snapshots and enforces at least a MINOR bump
146+
- `scripts/github/publish-npm.js` → custom publish script (packs & publishes built outputs)

.changeset/config.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"$schema": "https://unpkg.com/@changesets/config/schema.json",
3+
"changelog": [
4+
"scripts/github/changesets/create-changelog.js",
5+
{ "owner": "db-ux-design-system", "repo": "core-web" }
6+
],
7+
"commit": false,
8+
"fixed": [
9+
[
10+
"@db-ux/core-foundations",
11+
"@db-ux/core-components",
12+
"@db-ux/react-core-components",
13+
"@db-ux/ngx-core-components",
14+
"@db-ux/v-core-components",
15+
"@db-ux/wc-core-components",
16+
"@db-ux/core-stylelint",
17+
"@db-ux/core-migration",
18+
"@db-ux/agent-cli"
19+
]
20+
],
21+
"ignore": ["scripts"],
22+
"linked": [],
23+
"access": "public",
24+
"baseBranch": "origin/main",
25+
"updateInternalDependencies": "patch"
26+
}

.changeset/eleven-balloons-whisper.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/old-wings-appear.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/plenty-adults-unite.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.config/.jscpd.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"**/.next/**",
1313
"**/.nuxt/**",
1414
"**/.output/**",
15+
"**/agent/**",
1516
"**/.vscode/**",
1617
"**/*-example/index.html",
1718
"**/*-showcase/index.html",
@@ -61,5 +62,6 @@
6162
"showcases/shared/*.json",
6263
"showcases/vue-showcase/src/components/form/Form.vue"
6364
],
65+
"ignorePattern": ["<option value=\"test5\">Test5</option>"],
6466
"absolute": true
6567
}

.config/.lintstagedrc.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,8 @@ export default {
1212
// ensure that security vulnerabilities are fixed before committing - we need to skip `dev` for the moment as there are some unsolveable conflicts
1313
'package-lock.json': 'npm audit fix --omit=dev',
1414
// ensure that lock file is up to date
15-
'**/package.json': () => 'npm install --package-lock-only --ignore-scripts',
15+
'**/package.json': [
16+
() => 'npm install --package-lock-only --ignore-scripts',
17+
'npx npm-package-json-lint'
18+
],
1619
};

.config/.markdown-lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ MD026:
3232
MD029: false # Ordered list item prefix
3333
MD030: false
3434
MD033:
35-
allowed_elements: [br]
35+
allowed_elements: [br, details, summary]
3636
MD036: false # Emphasis used instead of a heading
3737
MD041: false # h1 first line is not working in this monorepo
3838
MD049: false # emphasis-style Emphasis style should be consistent
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
name: 📄 GitHub Copilot Instructions feedback
2+
description: Share feedback about the .github/copilot-instructions.md documentation (model choice, prompt results, clarity, etc.).
3+
title: "[GitHub Copilot Instructions feedback]: "
4+
labels: [📕documentation, 💡copilot]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to share your feedback! This form is to help us improve the `.github/copilot-instructions.md` documentation provided in the design system by using the [`@db-ux/agent-cli`](https://www.npmjs.com/package/@db-ux/agent-cli) node package.
10+
11+
Please keep in mind not to share any internal information or data this way. This includes internal URLs. Only use sample material.
12+
13+
- type: input
14+
id: model-used
15+
attributes:
16+
label: 🤖 Model you used
17+
description: Which model (if any) did you follow or reference from the documentation?
18+
placeholder: e.g. GPT-4o, Claude 2, Custom LLM, etc.
19+
validations:
20+
required: false
21+
22+
- type: textarea
23+
id: prompt-used
24+
attributes:
25+
label: 💬 Prompt or usage example
26+
description: Share the exact or approximate prompt or example you tried using, based on the documentation.
27+
placeholder: Copy/paste or summarize the input/prompt you used.
28+
validations:
29+
required: false
30+
31+
- type: textarea
32+
id: issue-description
33+
attributes:
34+
label: ❗ What didn’t work as expected?
35+
description: Describe what was confusing, broken, or didn’t meet your expectations. Be as detailed as possible.
36+
placeholder: Include any error messages, mismatches, unexpected behaviors, or missing context.
37+
validations:
38+
required: true
39+
40+
- type: textarea
41+
id: expected-behavior
42+
attributes:
43+
label: ✅ What did you expect instead?
44+
description: What outcome were you hoping for or expecting based on the instructions provided?
45+
placeholder: Describe the result you thought you’d get.
46+
validations:
47+
required: false
48+
49+
- type: textarea
50+
id: suggestions
51+
attributes:
52+
label: 💡 Suggestions for improvement
53+
description: How could we make the documentation clearer, more accurate, or more helpful?
54+
placeholder: e.g. "Add a note about prompt structure", "Link to working examples", etc.
55+
validations:
56+
required: false
57+
58+
- type: dropdown
59+
id: ide
60+
attributes:
61+
label: 📝 Which IDE did you use?
62+
description: Please provide information on the IDE you've used.
63+
options:
64+
- Visual Studio Code
65+
- IntelliJ
66+
- Others (please provide more information in another field)
67+
validations:
68+
required: false
69+
70+
- type: dropdown
71+
id: clarity-rating
72+
attributes:
73+
label: 📝 How clear was the documentation?
74+
description: Rate how easy it was to follow the instructions.
75+
options:
76+
- 1 - Very unclear
77+
- 2 - Somewhat unclear
78+
- 3 - Neutral
79+
- 4 - Mostly clear
80+
- 5 - Very clear
81+
validations:
82+
required: false
83+
84+
- type: input
85+
id: link-or-context
86+
attributes:
87+
label: 🔗 Context (optional)
88+
description: If you're referencing a specific section or line in the documentation, include a link or brief context.
89+
placeholder: e.g. Line 32 in .github/copilot-instructions.md or a permalink to the file
90+
validations:
91+
required: false
92+
93+
- type: dropdown
94+
id: businessunit
95+
attributes:
96+
label: Which DB business unit do you work for?
97+
options:
98+
- DB Systel GmbH (please name your customer below)
99+
- DB Fernverkehr AG
100+
- DB Regio AG
101+
- DB InfraGO AG
102+
- DB Cargo AG
103+
- DB Konzern
104+
- DB Vertrieb GmbH
105+
- DB Energie
106+
- DB Connect
107+
- other (please specify below)
108+
validations:
109+
required: false
110+
111+
- type: input
112+
id: businessunit2
113+
attributes:
114+
label: ”DB Systel” please enter your customer / ”other” please enter your area or business unit.
115+
validations:
116+
required: false
117+
118+
- type: input
119+
id: project
120+
attributes:
121+
label: What project are you working on?
122+
validations:
123+
required: false

.github/actions/cancel-workflow/action.yml

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)