Skip to content

Commit eaaf4e4

Browse files
authored
Merge pull request #306 from OpenElements/next-js-migration
Next js migration
2 parents 53e4589 + 9d02335 commit eaaf4e4

File tree

1,248 files changed

+28636
-32608
lines changed

Some content is hidden

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

1,248 files changed

+28636
-32608
lines changed

.github/FIRST_TIMER_GUIDE.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
### Welcome, and thanks for taking this issue
2+
3+
- Setup: install dependencies and confirm local build/test commands run successfully.
4+
- Run locally: use the project run/dev script from `package.json`.
5+
- Lint and test before pushing.
6+
- Branch naming: use a focused branch like `fix/issue-<number>-short-summary` or `feat/issue-<number>-short-summary`.
7+
- Commit messages: keep them concise and imperative (example: `fix(ui): handle empty state`).
8+
- Open a draft PR early if your approach or scope may need maintainer feedback.
9+
- Link your PR to the issue using `fixes #<issue-number>` (or `closes` / `resolves`).
10+
- While active, post `/working` on the issue to signal progress.
11+
- If blocked or no longer available, post `/unassign` so others can continue.
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: 🐛 Bug Report
2+
description: Report a bug or issue
3+
labels: ["bug", "triage"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: Thanks for reporting a bug! Please fill out the details below.
8+
9+
- type: textarea
10+
id: description
11+
attributes:
12+
label: Description
13+
description: Describe the bug clearly
14+
placeholder: What went wrong?
15+
validations:
16+
required: true
17+
18+
- type: textarea
19+
id: steps
20+
attributes:
21+
label: Steps to Reproduce
22+
description: How do we reproduce the issue?
23+
placeholder: |
24+
1. Go to '...'
25+
2. Click on '...'
26+
3. See the error
27+
validations:
28+
required: true
29+
30+
- type: textarea
31+
id: expected
32+
attributes:
33+
label: Expected Behavior
34+
description: What should happen?
35+
placeholder: describe expected behavior
36+
validations:
37+
required: true
38+
39+
- type: textarea
40+
id: environment
41+
attributes:
42+
label: Environment
43+
description: Browser, OS, Node version, or other relevant info
44+
placeholder: |
45+
- OS: macOS 14.1
46+
- Browser: Chrome 120
47+
- Node: 20.10
48+
validations:
49+
required: false
50+
51+
- type: textarea
52+
id: logs
53+
attributes:
54+
label: Error Logs or Screenshots
55+
description: Paste any error messages or attach screenshots
56+
placeholder: Errors, stack traces, or screenshots
57+
validations:
58+
required: false
59+
60+
- type: checkboxes
61+
id: checklist
62+
attributes:
63+
label: Checklist
64+
options:
65+
- label: I have searched existing issues
66+
required: true
67+
- label: I have provided a clear description
68+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Documentation
4+
url: https://github.com/orgs/open-elements/discussions
5+
about: Questions about usage or architecture
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: ✨ Feature Request
2+
description: Suggest an idea or enhancement
3+
labels: ["enhancement", "triage"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: We'd love to hear your ideas! Please describe the feature you'd like to see.
8+
9+
- type: textarea
10+
id: problem
11+
attributes:
12+
label: Problem Statement
13+
description: Describe the problem or use case
14+
placeholder: "Is your request related to a problem? Ex. I'm frustrated when..."
15+
validations:
16+
required: true
17+
18+
- type: textarea
19+
id: solution
20+
attributes:
21+
label: Proposed Solution
22+
description: Describe the solution you'd like
23+
placeholder: How should this feature work?
24+
validations:
25+
required: true
26+
27+
- type: textarea
28+
id: alternatives
29+
attributes:
30+
label: Alternatives Considered
31+
description: Other options you've explored
32+
placeholder: Any other approaches?
33+
validations:
34+
required: false
35+
36+
- type: textarea
37+
id: context
38+
attributes:
39+
label: Additional Context
40+
description: Any other relevant information
41+
placeholder: Screenshots, examples, links, etc.
42+
validations:
43+
required: false
44+
45+
- type: checkboxes
46+
id: checklist
47+
attributes:
48+
label: Checklist
49+
options:
50+
- label: I have searched existing issues and discussions
51+
required: true
52+
- label: This request aligns with project goals
53+
required: false

.github/pull_request_template.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
## Description
2+
Brief description of changes made in this PR.
3+
4+
## Type of Change
5+
- [ ] 🐛 Bug fix
6+
- [ ] ✨ New feature
7+
- [ ] 📝 Documentation update
8+
- [ ] 🎨 Style/formatting
9+
- [ ] ♻️ Refactor
10+
- [ ] 🔧 Configuration
11+
- [ ] ⚡ Performance
12+
- [ ] 🧪 Tests
13+
- [ ] 🔐 Security
14+
15+
## Related Issue(s)
16+
Closes #ISSUE_NUMBER
17+
18+
## Changes Made
19+
- Change 1
20+
- Change 2
21+
- Change 3
22+
23+
## How to Test
24+
1. Step 1
25+
2. Step 2
26+
3. Verify the expected behavior
27+
28+
## Checklist
29+
- [ ] Code follows project style guidelines
30+
- [ ] Self-review conducted
31+
- [ ] Comments added for complex logic
32+
- [ ] Documentation updated (if needed)
33+
- [ ] No new warnings generated
34+
- [ ] Tests added/updated (if applicable)
35+
- [ ] All tests passing locally

.github/reviewers.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"default_reviewers": [],
3+
"path_reviewers": [
4+
{
5+
"glob": "/**",
6+
"reviewers": [
7+
"danielmarv",
8+
"hendrikebbers",
9+
"Jexsie",
10+
"sebtiem",
11+
"Ndacyayisenga-droid"
12+
]
13+
},
14+
{
15+
"glob": ".github/**",
16+
"reviewers": [
17+
"danielmarv",
18+
"hendrikebbers",
19+
"Jexsie",
20+
"sebtiem",
21+
"Ndacyayisenga-droid"
22+
]
23+
},
24+
{
25+
"glob": "docs/**",
26+
"reviewers": [
27+
"danielmarv",
28+
"hendrikebbers",
29+
"Jexsie",
30+
"sebtiem",
31+
"Ndacyayisenga-droid"
32+
]
33+
}
34+
]
35+
}

.github/workflows/ci.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: ["main"]
6+
pull_request:
7+
branches: ["main"]
8+
workflow_dispatch: {}
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
14+
permissions:
15+
contents: read
16+
pull-requests: write
17+
18+
jobs:
19+
build-and-test:
20+
runs-on: ubuntu-latest
21+
22+
steps:
23+
- name: Harden Runner
24+
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
25+
with:
26+
egress-policy: audit
27+
28+
- name: Checkout repository
29+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
30+
31+
- name: Setup Node.js
32+
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
33+
with:
34+
node-version: 20
35+
36+
- name: Setup pnpm
37+
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
38+
with:
39+
version: 10
40+
run_install: false
41+
42+
- name: Get pnpm store directory
43+
id: pnpm-cache
44+
shell: bash
45+
run: |
46+
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
47+
48+
- name: Setup pnpm cache
49+
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
50+
with:
51+
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
52+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
53+
restore-keys: |
54+
${{ runner.os }}-pnpm-store-
55+
56+
- name: Install dependencies
57+
run: pnpm install --frozen-lockfile
58+
59+
- name: Run lint check
60+
run: pnpm lint
61+
62+
- name: Build Next.js application
63+
run: pnpm build
64+
env:
65+
NEXT_TELEMETRY_DISABLED: 1

.github/workflows/e2e-tests.yml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: E2E Tests
2+
3+
on:
4+
push:
5+
branches: [main, next-js-migration]
6+
pull_request:
7+
branches: [main, next-js-migration]
8+
9+
jobs:
10+
test:
11+
timeout-minutes: 15
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v4
17+
18+
- name: Setup Node.js
19+
uses: actions/setup-node@v4
20+
with:
21+
node-version: '20'
22+
23+
- name: Setup pnpm
24+
uses: pnpm/action-setup@v4
25+
with:
26+
version: 8
27+
28+
- name: Get pnpm store directory
29+
shell: bash
30+
run: |
31+
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
32+
33+
- name: Setup pnpm cache
34+
uses: actions/cache@v4
35+
with:
36+
path: ${{ env.STORE_PATH }}
37+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
38+
restore-keys: |
39+
${{ runner.os }}-pnpm-store-
40+
41+
- name: Install dependencies
42+
run: pnpm install --no-frozen-lockfile
43+
44+
- name: Install Playwright browsers
45+
run: pnpm exec playwright install --with-deps chromium
46+
47+
- name: Run E2E tests
48+
run: pnpm test:e2e
49+
50+
- name: Upload test results
51+
if: failure()
52+
uses: actions/upload-artifact@v4
53+
with:
54+
name: playwright-report
55+
path: playwright-report/
56+
retention-days: 7
57+
58+
- name: Upload test traces
59+
if: failure()
60+
uses: actions/upload-artifact@v4
61+
with:
62+
name: playwright-traces
63+
path: test-results/
64+
retention-days: 7

0 commit comments

Comments
 (0)