Skip to content

Commit b742e83

Browse files
sdetweilkhasselKristjanESPERANTOryan-d-williamsrejas
authored
Release 2.34.0 (#3999)
Thanks to: @Blackspirits, @Crazylegstoo, @jarnoml, @jboucly, @JHWelch, @khassel, @KristjanESPERANTO, @rejas, @sdetweil, @xsorifc28 ⚠️ This release needs nodejs version >=22.21.1 <23 || >=24 [Compare to previous Release v2.33.0](v2.33.0...develop) [core] Prepare Release 2.34.0 (#3998) dependency update + adjust Playwright setup + fix linter issue (#3994) demo with gif (#3995) [core] fix: allow browser globals in config files (#3992) [core] fix: restore --ozone-platform=wayland flag for reliable Wayland support (#3989) [core] auto create release notes with every push on develop (#3985) [core] chore: simplify Wayland start script (#3974) [gitignore] restore the old Git behavior for the default modules (#3968) [core] configure cspell to check default modules only and fix typos (#3955) [gitignore] restoring the old Git behavior for the CSS directory (#3954) feat(core): add server:watch script with automatic restart on file changes (#3920) [check_config] refactor: improve error handling (#3927) refactor: replace express-ipfilter with lightweight custom middleware (#3917) refactor: replace module-alias dependency with internal alias resolver (#3893) [dependencies] [chore] update dependencies and min. node version (#3986) [core] bump dependencies into december (#3982) Bump actions/checkout from 5 to 6 (#3972) Update deps, unpin parse5 (#3934) [core] Update deps and pin jsdom to v27.0.0 (#3925) chore: update dependencies (#3921) update deps, exclude node v23 (#3916) remove eslint warnings, add npm publish process to Collaboration.md (#3913) feat: add ESlint rule no-sparse-arrays for config check (#3911) chore: bump dependencies into october (#3909) [logging] logger: add calling filename as prefix on server side (#3926) [logger] Add prefixes to most Log messages (#3923) [modules/alert] Add new pt and pt-BR translations for Alert module and update global PT strings (#3965) [modules/calendar] add checksum to test whether calendar event list changed (#3988) [calendar] fix: prevent excessive fetching on client reload and refactor calendarfetcherutils.js (#3976) [calendar] refactor: migrate CalendarFetcher to ES6 class and improve error handling (#3959) [calendar] Show repeatingCountTitle only if yearDiff > 0 (#3949) [tests] suppress debug logs in CI environment + improve calendar symbol test stability (#3941) [calendar] chore: remove requiresVersion: "2.1.0" (#3932) [calendar] test: remove "Recurring event per timezone" test (#3929) [modules/compliments] [compliments] refactor: optimize loadComplimentFile method and add unit tests (#3969) fix: set compliments remote file minimum delay to 15 minutes (#3970) [compliments] fix: duplicate query param "?" in compliments module refresh url (#3967) [modules/newsfeed] [newsfeed] fix header layout issue (#3946) [modules/weather] [weatherprovider] update subclass language use override (#3914) [weather] fix wind-icon not showing in pirateweather (#3957) [weather] add error handling to weather fetch functions, including cors (#3791) remove deprecated ukmetoffice datapoint provider, cleanup .gitignore (#3952) fixes problems with daylight-saving-time in weather provider openmeteo (#3931) Fix for envcanada Provider to use updated Env Canada URL (#3919) [weather] feat: add configurable forecast date format option (#3918) [testing] testing: update "Enforce Pull-Request Rules" workflow (#3987) [core] refactor: replace XMLHttpRequest with fetch and migrate e2e tests to Playwright (#3950) [test] replace node-libgpiod with serialport in electron-rebuild workflow (#3945) [ci] Add concurrency to automated tests workflow to cancel outdated runs (#3943) [tests] migrate from jest to vitest (#3940) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Karsten Hassel <hassel@gmx.de> Co-authored-by: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com> Co-authored-by: Ryan Williams <65094007+ryan-d-williams@users.noreply.github.com> Co-authored-by: Veeck <github@veeck.de> Co-authored-by: Bugsounet - Cédric <github@bugsounet.fr> Co-authored-by: Marc Landis <dirk.rettschlag@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: HeikoGr <20295490+HeikoGr@users.noreply.github.com> Co-authored-by: Pedro Lamas <pedrolamas@gmail.com> Co-authored-by: veeck <gitkraken@veeck.de> Co-authored-by: Magnus <34011212+MagMar94@users.noreply.github.com> Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com> Co-authored-by: DevIncomin <56730075+Developer-Incoming@users.noreply.github.com> Co-authored-by: Nathan <n8nyoung@gmail.com> Co-authored-by: mixasgr <mixasgr@users.noreply.github.com> Co-authored-by: Savvas Adamtziloglou <savvas-gr@greeklug.gr> Co-authored-by: Konstantinos <geraki@gmail.com> Co-authored-by: OWL4C <124401812+OWL4C@users.noreply.github.com> Co-authored-by: BugHaver <43462320+bughaver@users.noreply.github.com> Co-authored-by: BugHaver <43462320+lsaadeh@users.noreply.github.com> Co-authored-by: Koen Konst <koenspero@gmail.com> Co-authored-by: Koen Konst <c.h.konst@avisi.nl> Co-authored-by: dathbe <github@beffa.us> Co-authored-by: Marcel <m-idler@users.noreply.github.com> Co-authored-by: Kevin G. <crazylegstoo@gmail.com> Co-authored-by: Jboucly <33218155+jboucly@users.noreply.github.com> Co-authored-by: Jboucly <contact@jboucly.fr> Co-authored-by: Jarno <54169345+jarnoml@users.noreply.github.com> Co-authored-by: Jordan Welch <JordanHWelch@gmail.com> Co-authored-by: Blackspirits <blackspirits@gmail.com> Co-authored-by: Samed Ozdemir <samed@xsor.io>
1 parent b0c5924 commit b742e83

File tree

114 files changed

+6729
-7129
lines changed

Some content is hidden

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

114 files changed

+6729
-7129
lines changed

.github/CONTRIBUTING.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,19 @@ To run markdownlint, use `node --run lint:markdown`.
3030

3131
## Testing
3232

33-
We use [Jest](https://jestjs.io) for JavaScript testing.
33+
We use [Vitest](https://vitest.dev) for JavaScript testing.
3434

3535
To run all tests, use `node --run test`.
3636

37-
The specific test commands are defined in `package.json`.
38-
So you can also run the specific tests with other commands, e.g. `node --run test:unit` or `npx jest tests/e2e/env_spec.js`.
37+
The `package.json` scripts expose finer-grained test commands:
38+
39+
- `test:unit` – run unit tests only
40+
- `test:e2e` – execute browser-driven end-to-end tests
41+
- `test:electron` – launch the Electron-based regression suite
42+
- `test:coverage` – collect coverage while running every suite
43+
- `test:watch` – keep Vitest in watch mode for fast local feedback
44+
- `test:ui` – open the Vitest UI dashboard (needs OS file-watch support enabled)
45+
- `test:calendar` – run the legacy calendar debug helper
46+
- `test:css`, `test:markdown`, `test:prettier`, `test:spelling`, `test:js` – lint-only scripts that enforce formatting, spelling, markdown style, and ESLint.
47+
48+
You can invoke any script with `node --run <script>` (or `npm run <script>`). Individual files can still be targeted directly, e.g. `npx vitest run tests/e2e/env_spec.js`.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Hello and thank you for wanting to contribute to the MagicMirror² project!
22

3-
**Please make sure that you have followed these 4 rules before submitting your Pull Request:**
3+
**Please make sure that you have followed these 3 rules before submitting your Pull Request:**
44

55
> 1. Base your pull requests against the `develop` branch.
66
> 2. Include these infos in the description:
@@ -12,8 +12,6 @@ Hello and thank you for wanting to contribute to the MagicMirror² project!
1212
>
1313
> 3. Please run `node --run lint:prettier` before submitting so that
1414
> style issues are fixed.
15-
> 4. Don't forget to add an entry about your changes to
16-
> the CHANGELOG.md file.
1715
1816
**Note**: Sometimes the development moves very fast. It is highly
1917
recommended that you update your branch of `develop` before creating a

.github/dependabot.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ updates:
66
interval: "weekly"
77
target-branch: "develop"
88
labels:
9-
- "Skip Changelog"
109
- "dependencies"
1110

1211
- package-ecosystem: "npm"
@@ -15,6 +14,5 @@ updates:
1514
interval: "monthly"
1615
target-branch: "develop"
1716
labels:
18-
- "Skip Changelog"
1917
- "dependencies"
2018
- "javascript"

.github/workflows/automated-tests.yaml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,19 @@ on:
1212
permissions:
1313
contents: read
1414

15+
concurrency:
16+
group: ${{ github.workflow }}-${{ github.ref }}
17+
cancel-in-progress: true
18+
1519
jobs:
1620
code-style-check:
1721
runs-on: ubuntu-latest
1822
timeout-minutes: 15
1923
steps:
2024
- name: "Checkout code"
21-
uses: actions/checkout@v5
25+
uses: actions/checkout@v6
2226
- name: "Use Node.js"
23-
uses: actions/setup-node@v5
27+
uses: actions/setup-node@v6
2428
with:
2529
node-version: lts/*
2630
cache: "npm"
@@ -38,23 +42,26 @@ jobs:
3842
timeout-minutes: 30
3943
strategy:
4044
matrix:
41-
node-version: [22.18.0, 22.x, 24.x]
45+
node-version: [22.21.1, 22.x, 24.x]
4246
steps:
4347
- name: Install electron dependencies and labwc
4448
run: |
4549
sudo apt-get update
4650
sudo apt-get install -y libnss3 libasound2t64 labwc
4751
- name: "Checkout code"
48-
uses: actions/checkout@v5
52+
uses: actions/checkout@v6
4953
- name: "Use Node.js ${{ matrix.node-version }}"
50-
uses: actions/setup-node@v5
54+
uses: actions/setup-node@v6
5155
with:
5256
node-version: ${{ matrix.node-version }}
5357
check-latest: true
5458
cache: "npm"
5559
- name: "Install MagicMirror²"
5660
run: |
5761
node --run install-mm:dev
62+
- name: "Install Playwright browsers"
63+
run: |
64+
npx playwright install --with-deps chromium
5865
- name: "Prepare environment for tests"
5966
run: |
6067
# Fix chrome-sandbox permissions:

.github/workflows/dep-review.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ jobs:
1313
runs-on: ubuntu-latest
1414
steps:
1515
- name: "Checkout code"
16-
uses: actions/checkout@v5
16+
uses: actions/checkout@v6
1717
- name: "Dependency Review"
1818
uses: actions/dependency-review-action@v4

.github/workflows/electron-rebuild.yaml

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,21 @@ jobs:
88
runs-on: ubuntu-latest
99
strategy:
1010
matrix:
11-
node-version: [22.18.0, 22.x, 24.x]
11+
node-version: [22.21.1, 22.x, 24.x]
1212
steps:
1313
- name: Checkout code
14-
uses: actions/checkout@v5
14+
uses: actions/checkout@v6
1515
- name: "Use Node.js ${{ matrix.node-version }}"
16-
uses: actions/setup-node@v5
16+
uses: actions/setup-node@v6
1717
with:
1818
node-version: ${{ matrix.node-version }}
1919
check-latest: true
2020
- name: Install MagicMirror
2121
run: node --run install-mm
2222
- name: Install @electron/rebuild
2323
run: npm install @electron/rebuild
24-
- name: Install node-libgpiod deps
25-
run: |
26-
sudo apt-get update
27-
sudo apt-get install gpiod libgpiod2 libgpiod-dev
28-
- name: Install test library (node-libgpiod) to be rebuilded
29-
run: npm install node-libgpiod
24+
- name: Install test library (serialport) to be rebuilt
25+
run: npm install serialport
3026
- name: Run electron-rebuild
3127
run: npx electron-rebuild
3228
continue-on-error: false
Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
1-
# This workflow enforces on every pull request:
2-
# - the update of our CHANGELOG.md file, see: https://github.com/dangoslen/changelog-enforcer
3-
# - that the PR is not based against master, taken from https://github.com/oppia/oppia-android/pull/2832/files
1+
# This workflow enforces on every pull request that the PR is not based against master,
2+
# taken from https://github.com/oppia/oppia-android/blob/develop/.github/workflows/static_checks.yml
43

54
name: "Enforce Pull-Request Rules"
65

76
on:
8-
pull_request_target:
9-
types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled]
7+
pull_request:
8+
push:
9+
branches-ignore:
10+
- develop
11+
- master
1012

1113
jobs:
1214
check:
1315
runs-on: ubuntu-latest
16+
if: github.event_name == 'pull_request'
1417
timeout-minutes: 10
1518
steps:
16-
- name: "Enforce changelog"
17-
uses: dangoslen/changelog-enforcer@v3
18-
with:
19-
changeLogPath: "CHANGELOG.md"
20-
skipLabels: "Skip Changelog"
21-
- name: "Enforce develop branch"
22-
if: ${{ github.event.pull_request.base.ref == 'master' && !contains(github.event.pull_request.labels.*.name, 'mastermerge') }}
19+
- name: "Branch is not based on develop"
20+
if: ${{ github.base_ref != 'develop' && !contains(github.event.pull_request.labels.*.name, 'mastermerge') }}
2321
run: |
24-
echo "This PR is based against the master branch and not a release or hotfix."
25-
echo "Please don't do this. Switch the branch to 'develop'."
22+
echo "Current base branch: $BASE_BRANCH"
23+
echo "Note: PRs should only ever be merged into develop so please rebase your branch on develop and try again."
2624
exit 1
2725
env:
28-
BASE_BRANCH: ${{ github.event.pull_request.base.ref }}
26+
BASE_BRANCH: ${{ github.base_ref }}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# This workflow writes a draft release on GitHub named `unreleased` after every push on develop
2+
3+
name: "Create Release Notes"
4+
5+
on:
6+
push:
7+
branches: [develop]
8+
9+
permissions:
10+
contents: write
11+
12+
concurrency:
13+
group: ${{ github.workflow }}-${{ github.ref }}
14+
cancel-in-progress: true
15+
16+
jobs:
17+
release-notes:
18+
runs-on: ubuntu-latest
19+
timeout-minutes: 15
20+
steps:
21+
- name: "Checkout code"
22+
uses: actions/checkout@v6
23+
with:
24+
fetch-depth: "0"
25+
- name: "Use Node.js"
26+
uses: actions/setup-node@v6
27+
with:
28+
node-version: lts/*
29+
cache: "npm"
30+
- name: "Create Markdown content"
31+
run: |
32+
export GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}
33+
node js/releasenotes.js

.github/workflows/spellcheck.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ jobs:
1515
runs-on: ubuntu-latest
1616
steps:
1717
- name: Checkout code
18-
uses: actions/checkout@v5
18+
uses: actions/checkout@v6
1919
with:
2020
ref: develop
2121
- name: Set up Node.js
22-
uses: actions/setup-node@v5
22+
uses: actions/setup-node@v6
2323
with:
2424
node-version: lts/*
2525
check-latest: true

.gitignore

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ lib-cov
99
coverage
1010
.lock-wscript
1111
build/Release
12-
/node_modules/**/*
13-
!/tests/node_modules/**/*
12+
node_modules
1413
jspm_modules
1514
.npm
1615
.node_repl_history
@@ -56,21 +55,19 @@ Temporary Items
5655
.Trash-*
5756

5857
# Ignore all modules except the default modules.
59-
/modules/**
58+
/modules/*
6059
!/modules/default
61-
!/modules/default/**
62-
!/modules/README.md**
6360

6461
# Ignore changes to the custom css files but keep the sample and main.
6562
/css/*
6663
!/css/custom.css.sample
64+
!/css/font-awesome.css
6765
!/css/main.css
6866
!/css/roboto.css
69-
!/css/font-awesome.css
7067

7168
# Ignore users config file but keep the sample.
72-
/config/*
73-
!/config/config.js.sample
69+
config
70+
!config/config.js.sample
7471

7572
# Vim
7673
## swap
@@ -88,3 +85,6 @@ js/positions.js
8885
# Ignore lock files other than package-lock.json
8986
pnpm-lock.yaml
9087
yarn.lock
88+
89+
# Vitest temporary test files
90+
tests/**/.tmp/

0 commit comments

Comments
 (0)