Skip to content

Commit 76d95e1

Browse files
committed
merge
2 parents 5008387 + e4bc905 commit 76d95e1

File tree

643 files changed

+34462
-14213
lines changed

Some content is hidden

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

643 files changed

+34462
-14213
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/cold-chairs-tease.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"@db-ux/core-foundations": patch
3+
"@db-ux/core-components": patch
4+
"@db-ux/agent-cli": patch
5+
---
6+
7+
chore: update instructions files for better copilot outputs
8+
fix: add some missing variables

.changeset/config.json

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
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": [
22+
"scripts",
23+
"@db-ux/docs",
24+
"@db-ux/e2e",
25+
"angular-showcase",
26+
"angular-ssr-showcase",
27+
"next-showcase",
28+
"nuxt-showcase",
29+
"patternhub",
30+
"react-showcase",
31+
"stencil-showcase",
32+
"vue-showcase"
33+
],
34+
"linked": [],
35+
"access": "public",
36+
"baseBranch": "origin/main",
37+
"updateInternalDependencies": "patch"
38+
}

.config/.jscpd.json

Lines changed: 4 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",
@@ -46,6 +47,8 @@
4647
"packages/foundations/assets/icons/functional/fonts/**",
4748
"packages/foundations/assets/icons/fonts/**",
4849
"packages/foundations/dev",
50+
"packages/migration/test/**/has-changes.txt",
51+
"packages/migration/test/**/no-change.txt",
4952
"showcases/**/results/**",
5053
"showcases/angular-showcase/.angular/cache",
5154
"showcases/angular-showcase/.angular/cache/**",
@@ -61,5 +64,6 @@
6164
"showcases/shared/*.json",
6265
"showcases/vue-showcase/src/components/form/Form.vue"
6366
],
67+
"ignorePattern": ["<option value=\"test5\">Test5</option>"],
6468
"absolute": true
6569
}

.config/.lintstagedrc.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,12 @@ export default {
88
'stylelint.config.*': 'stylelint --validate --allow-empty-input',
99
// And elsewhere we don't, compare to https://github.com/stylelint/stylelint/pull/8009
1010
'*.{css,scss}': 'stylelint --fix --allow-empty-input --no-validate',
11-
'*.{js,ts,tsx,jsx,mjs,cjs}': 'xo --fix'
11+
'*.{js,ts,tsx,jsx,mjs,cjs}': 'xo --fix',
12+
// ensure that security vulnerabilities are fixed before committing - we need to skip `dev` for the moment as there are some unsolveable conflicts
13+
'package-lock.json': 'npm audit fix --omit=dev',
14+
// ensure that lock file is up to date
15+
'**/package.json': [
16+
() => 'npm install --package-lock-only --ignore-scripts',
17+
'npx npm-package-json-lint'
18+
],
1219
};

.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

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ body:
99
value: |
1010
Thank you for taking the time to fill out this bug report! Feedback from the community is highly valuable to us, as it helps improve our work and benefits all users. 🙂
1111
12-
We would be more than happy if you could share a URL if the problem occurs in our [documentation](https://design-system.deutschebahn.com/core-web/), or at least some code. Even better would be a [working example on StackBlitz or CodeSandbox](https://design-system.deutschebahn.com/core-web/version/latest/foundations/playgrounds). Please keep in mind not to share any internal information or data this way. This includes internal URLs. Only use sample material.
12+
We would be more than happy if you could share a URL if the problem occurs in our [documentation](https://design-system.deutschebahn.com/core-web/), or at least some code. Even better would be a [working example on StackBlitz or CodeSandbox](https://design-system.deutschebahn.com/core-web/version/latest/foundations/playgrounds).
13+
14+
⚠️ **Please keep in mind to use anonymous sample material:**
15+
- **Do not share any personal data (e.g., names, email addresses, customer data)**
16+
- **Do not attach any confidential company information**
17+
- **Do not upload full-screen product screenshots**
18+
- **Do not share internal URLs.**
1319
1420
- type: checkboxes
1521
id: component
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
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 to use anonymous sample material:**
12+
- **Do not share any personal data (e.g., names, email addresses, customer data)**
13+
- **Do not attach any confidential company information**
14+
- **Do not upload full-screen product screenshots**
15+
- **Do not share internal URLs.**
16+
17+
- type: input
18+
id: model-used
19+
attributes:
20+
label: 🤖 Model you used
21+
description: Which model (if any) did you follow or reference from the documentation?
22+
placeholder: e.g. GPT-4o, Claude 2, Custom LLM, etc.
23+
validations:
24+
required: false
25+
26+
- type: textarea
27+
id: prompt-used
28+
attributes:
29+
label: 💬 Prompt or usage example
30+
description: Share the exact or approximate prompt or example you tried using, based on the documentation.
31+
placeholder: Copy/paste or summarize the input/prompt you used.
32+
validations:
33+
required: false
34+
35+
- type: textarea
36+
id: issue-description
37+
attributes:
38+
label: ❗ What didn’t work as expected?
39+
description: Describe what was confusing, broken, or didn’t meet your expectations. Be as detailed as possible.
40+
placeholder: Include any error messages, mismatches, unexpected behaviors, or missing context.
41+
validations:
42+
required: true
43+
44+
- type: textarea
45+
id: expected-behavior
46+
attributes:
47+
label: ✅ What did you expect instead?
48+
description: What outcome were you hoping for or expecting based on the instructions provided?
49+
placeholder: Describe the result you thought you’d get.
50+
validations:
51+
required: false
52+
53+
- type: textarea
54+
id: suggestions
55+
attributes:
56+
label: 💡 Suggestions for improvement
57+
description: How could we make the documentation clearer, more accurate, or more helpful?
58+
placeholder: e.g. "Add a note about prompt structure", "Link to working examples", etc.
59+
validations:
60+
required: false
61+
62+
- type: dropdown
63+
id: ide
64+
attributes:
65+
label: 📝 Which IDE did you use?
66+
description: Please provide information on the IDE you've used.
67+
options:
68+
- Visual Studio Code
69+
- IntelliJ
70+
- Others (please provide more information in another field)
71+
validations:
72+
required: false
73+
74+
- type: dropdown
75+
id: clarity-rating
76+
attributes:
77+
label: 📝 How clear was the documentation?
78+
description: Rate how easy it was to follow the instructions.
79+
options:
80+
- 1 - Very unclear
81+
- 2 - Somewhat unclear
82+
- 3 - Neutral
83+
- 4 - Mostly clear
84+
- 5 - Very clear
85+
validations:
86+
required: false
87+
88+
- type: input
89+
id: link-or-context
90+
attributes:
91+
label: 🔗 Context (optional)
92+
description: If you're referencing a specific section or line in the documentation, include a link or brief context.
93+
placeholder: e.g. Line 32 in .github/copilot-instructions.md or a permalink to the file
94+
validations:
95+
required: false
96+
97+
- type: dropdown
98+
id: businessunit
99+
attributes:
100+
label: Which DB business unit do you work for?
101+
options:
102+
- DB Systel GmbH (please name your customer below)
103+
- DB Fernverkehr AG
104+
- DB Regio AG
105+
- DB InfraGO AG
106+
- DB Cargo AG
107+
- DB Konzern
108+
- DB Vertrieb GmbH
109+
- DB Energie
110+
- DB Connect
111+
- other (please specify below)
112+
validations:
113+
required: false
114+
115+
- type: input
116+
id: businessunit2
117+
attributes:
118+
label: ”DB Systel” please enter your customer / ”other” please enter your area or business unit.
119+
validations:
120+
required: false
121+
122+
- type: input
123+
id: project
124+
attributes:
125+
label: What project are you working on?
126+
validations:
127+
required: false

0 commit comments

Comments
 (0)