Skip to content

Commit 4b4a595

Browse files
rejasKristjanESPERANTObughaverkhasselMagMar94
authored
Release 2.37.0 (#4194)
## Release Notes Thanks to: @angeldeejay, @egeekial, @khassel, @KristjanESPERANTO, @MikeBishop, @rejas > ⚠️ This release needs nodejs version >=22.21.1 <23 || >=24 (no change to previous release) [Compare to previous Release v2.36.0](v2.36.0...develop) ### [core] - Prepare Release 2.37.0 (#4193) - fix(electron): map IPv6 :: wildcard to localhost (#4188) - refactor(main): modernize DOM update flow with async/await (#4186) - refactor(main): simplify _updateDom with async/await (#4185) - fix(security): prevent unauthorized secret expansion in socket payloads (#4184) - refactor(main): simplify updateDomWithContent async flow (#4182) - fix: modules losing data after HTTP 304 responses (#4180) - chore: add missing core defaults (#4181) - fix(server): enforce ipWhitelist for Socket.IO too (#4169) - feat(systeminfo): include Git hash and branch in system information log (#4167) - feat(electron): support object-based electronSwitches (#4161) - systeminformation thread not ending: move error handling from utils to app (#4160) - fix systeminformation thread not ending (#4155) - refactor: use ES module imports in browser core (#4158) - refactor(core): remove old Object.assign polyfill (#4157) - refactor: rewrite Module as an ES6 class (#4151) - refactor: rewrite NodeHelper as an ES6 class (#4147) - update eletron to v42 (#4144) - refactor(utils): drop ajv dependency (#4142) - fix(systeminformation): output right 'used node' version (from parent process) (#4141) - fix: skip postinstall git clean when not in a git repository (#4139) - Remove unnecessary conditionals and fix falsy property check in imperial conversion (#4135) - update version in package.json ### [dependencies] - update dependencies (#4191) - Bump actions/checkout from 6 to 7 (#4190) - chore: update dependencies and adjust import path for SunCalc (#4189) - update dependencies incl. electron and revert yauzl-electron-install-fix (#4183) - update dependencies, add electron fix in package.json (#4175) - chore: update dependencies (#4162) - Bump actions/dependency-review-action from 4 to 5 (#4152) - Unify linting: replace Stylelint and markdownlint with ESLint (#4148) - update dependencies and workflows to node v26 (#4140) ### [modules/alert] - CodeQL cleanup for alerts #18, #19, #20 (#4153) - fix: resolve CodeQL alerts #24 and #26 (#4145) - fix(electron): resolve CodeQL alerts #22 and #25 in electron.js (#4136) ### [modules/calendar] - perf(calendar): pre-filter ICS data before parsing (#4168) - perf(calendar): use async ICS parsing to avoid blocking event loop (#4143) ### [modules/newsfeed] - [newsfeed] add allowBasicHtmlTags option for basic emphasis (#4176) ### [modules/updatenotification] - fix(updatenotification): don't spawn a child process when running under PM2 (#4166) - fix(updatenotification): use process.argv[0] as restart binary (#4163) - fix(updatenotification): preserve start mode on restart (#4156) - fix(updatenotification): fix ref diff parsing for fetch --dry-run (#4138) - refactor(updatenotification): replace pm2 usage with node logic (#4134) ### [modules/weather] - feat(weather): add Buienradar provider (#4164) ### [testing] - remove warning in unit tests (for nodejs >= v25) (#4149) - polish HTTP 304 docs/test/handling (#4129) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Kristjan ESPERANTO <35647502+KristjanESPERANTO@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: Karsten Hassel <hassel@gmx.de> Co-authored-by: Magnus <34011212+MagMar94@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: Bugsounet - Cédric <github@bugsounet.fr> Co-authored-by: dathbe <github@beffa.us> Co-authored-by: veeck <gitkraken@veeck.de> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Marcel <m-idler@users.noreply.github.com> Co-authored-by: sam detweiler <sdetweil@gmail.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> Co-authored-by: in-voker <58696565+in-voker@users.noreply.github.com> Co-authored-by: Andrés Vanegas Jiménez <142350+angeldeejay@users.noreply.github.com> Co-authored-by: cgillinger <christian.gillinger@gmail.com> Co-authored-by: Sonny B <43247590+sonnyb9@users.noreply.github.com> Co-authored-by: sonnyb9 <sonnyb9@users.noreply.github.com> Co-authored-by: Morgan McBee <egeekial@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Mike Bishop <mbishop@evequefou.be>
1 parent fb41d24 commit 4b4a595

78 files changed

Lines changed: 5165 additions & 6200 deletions

File tree

Some content is hidden

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

.github/CONTRIBUTING.md

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,10 @@ We hold our code to standard, and these standards are documented below.
88

99
We use [prettier](https://prettier.io/) for automatic formatting a lot all our files. The configuration is in our `prettier.config.mjs` file.
1010

11-
To run prettier, use `node --run lint:prettier`.
11+
And we use [ESLint](https://eslint.org) to lint our JavaScript, Markdown, and CSS files. The configuration is in our `eslint.config.mjs` file.
1212

13-
### JavaScript: Run ESLint
14-
15-
We use [ESLint](https://eslint.org) to lint our JavaScript files. The configuration is in our `eslint.config.mjs` file.
16-
17-
To run ESLint, use `node --run lint:js`.
18-
19-
### CSS: Run StyleLint
20-
21-
We use [StyleLint](https://stylelint.io) to lint our CSS. The configuration is in our `stylelint.config.mjs` file.
22-
23-
To run StyleLint, use `node --run lint:css`.
24-
25-
### Markdown: Run markdownlint
26-
27-
We use [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) to lint our markdown files. The configuration is in our `.markdownlint.json` file.
28-
29-
To run markdownlint, use `node --run lint:markdown`.
13+
To check for formatting and linting errors, use `node --run test:lint`
14+
To fix formatting and linting errors, use `node --run lint:fix`.
3015

3116
## Testing
3217

@@ -43,6 +28,7 @@ The `package.json` scripts expose finer-grained test commands:
4328
- `test:watch` – keep Vitest in watch mode for fast local feedback
4429
- `test:ui` – open the Vitest UI dashboard (needs OS file-watch support enabled)
4530
- `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.
31+
- `test:lint` – run linter and formatter checks
32+
- `test:spelling` – run the spell checker
4733

4834
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 & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Hello and thank you for wanting to contribute to the MagicMirror² project!
1010
> - What does the pull request accomplish? Use a list if needed.
1111
> - If it includes major visual changes please add screenshots.
1212
>
13-
> 3. Please run `node --run lint:prettier` before submitting so that
13+
> 3. Please run `node --run lint:fix` before submitting so that
1414
> style issues are fixed.
1515
1616
**Note**: Sometimes the development moves very fast. It is highly

.github/workflows/automated-tests.yaml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
timeout-minutes: 15
2323
steps:
2424
- name: "Checkout code"
25-
uses: actions/checkout@v6
25+
uses: actions/checkout@v7
2626
- name: "Use Node.js"
2727
uses: actions/setup-node@v6
2828
with:
@@ -33,23 +33,20 @@ jobs:
3333
node --run install-mm:dev
3434
- name: "Run linter tests"
3535
run: |
36-
node --run test:prettier
37-
node --run test:js
38-
node --run test:css
39-
node --run test:markdown
36+
node --run test:lint
4037
test:
4138
runs-on: ubuntu-24.04
4239
timeout-minutes: 30
4340
strategy:
4441
matrix:
45-
node-version: [22.x, 24.x, 25.x]
42+
node-version: [22.x, 24.x, 26.x]
4643
steps:
4744
- name: Install electron dependencies and labwc
4845
run: |
4946
sudo apt-get update
5047
sudo apt-get install -y libnss3 libasound2t64 labwc
5148
- name: "Checkout code"
52-
uses: actions/checkout@v6
49+
uses: actions/checkout@v7
5350
- name: "Use Node.js ${{ matrix.node-version }}"
5451
uses: actions/setup-node@v6
5552
with:
@@ -64,9 +61,8 @@ jobs:
6461
npx playwright install --with-deps chromium
6562
- name: "Prepare environment for tests"
6663
run: |
67-
# Fix chrome-sandbox permissions:
68-
sudo chown root:root ./node_modules/electron/dist/chrome-sandbox
69-
sudo chmod 4755 ./node_modules/electron/dist/chrome-sandbox
64+
# Download electron binary
65+
npx install-electron
7066
# Start labwc
7167
WLR_BACKENDS=headless WLR_LIBINPUT_NO_DEVICES=1 WLR_RENDERER=pixman labwc &
7268
touch config/custom.css

.github/workflows/codeql.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
language: [actions, javascript-typescript]
2424

2525
steps:
26-
- uses: actions/checkout@v6
26+
- uses: actions/checkout@v7
2727

2828
- uses: github/codeql-action/init@v4
2929
with:

.github/workflows/dep-review.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ jobs:
1313
runs-on: ubuntu-slim
1414
steps:
1515
- name: "Checkout code"
16-
uses: actions/checkout@v6
16+
uses: actions/checkout@v7
1717
- name: "Dependency Review"
18-
uses: actions/dependency-review-action@v4
18+
uses: actions/dependency-review-action@v5

.github/workflows/electron-rebuild.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ jobs:
1111
runs-on: ubuntu-slim
1212
strategy:
1313
matrix:
14-
node-version: [22.x, 24.x, 25.x]
14+
node-version: [22.x, 24.x, 26.x]
1515
steps:
1616
- name: Checkout code
17-
uses: actions/checkout@v6
17+
uses: actions/checkout@v7
1818
- name: "Use Node.js ${{ matrix.node-version }}"
1919
uses: actions/setup-node@v6
2020
with:

.github/workflows/release-notes.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
timeout-minutes: 15
2020
steps:
2121
- name: "Checkout code"
22-
uses: actions/checkout@v6
22+
uses: actions/checkout@v7
2323
with:
2424
fetch-depth: "0"
2525
- name: "Use Node.js"

.github/workflows/spellcheck.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-slim
1616
steps:
1717
- name: Checkout code
18-
uses: actions/checkout@v6
18+
uses: actions/checkout@v7
1919
with:
2020
ref: develop
2121
- name: Set up Node.js

.markdownlint.json

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

cspell.config.json

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
"armv",
1414
"ashishtank",
1515
"autoplay",
16+
"Autorestart",
1617
"avghumidity",
1718
"avgtemp",
18-
"Autorestart",
1919
"beada",
2020
"Behaviour",
2121
"Beschreibung",
@@ -32,6 +32,7 @@
3232
"btoconnor",
3333
"bughaver",
3434
"bugsounet",
35+
"buienradar",
3536
"buxxi",
3637
"byday",
3738
"calcage",
@@ -183,8 +184,8 @@
183184
"Lightspeed",
184185
"loadingcircle",
185186
"locationforecast",
186-
"logg",
187187
"lockstring",
188+
"logg",
188189
"lstrip",
189190
"Luciella",
190191
"luxon",
@@ -201,8 +202,8 @@
201202
"Meteo",
202203
"michaelteeuw",
203204
"michmich",
204-
"mintemp",
205205
"Midori",
206+
"mintemp",
206207
"mirontoli",
207208
"MISSINGLANG",
208209
"mixasgr",
@@ -220,8 +221,8 @@
220221
"NEWSFEED",
221222
"newsfeedfetcher",
222223
"newsfetcher",
223-
"newyear",
224224
"newsitems",
225+
"newyear",
225226
"nextdaysrelative",
226227
"nfogal",
227228
"njwilliams",
@@ -256,12 +257,13 @@
256257
"pubdate",
257258
"radokristof",
258259
"rajniszp",
260+
"RDATE",
259261
"rebuilded",
260262
"Reis",
261263
"rejas",
262264
"relativehumidity",
263-
"resultstring",
264265
"Resig",
266+
"resultstring",
265267
"roboto",
266268
"rohitdharavath",
267269
"Rosso",
@@ -290,7 +292,6 @@
290292
"sthuber",
291293
"Stieber",
292294
"strinner",
293-
"stylelintrc",
294295
"sunaction",
295296
"suncalc",
296297
"suntimes",
@@ -302,8 +303,8 @@
302303
"Teil",
303304
"TESTMODE",
304305
"testpass",
305-
"testuser",
306306
"teststring",
307+
"testuser",
307308
"thomasrockhu",
308309
"thumbslider",
309310
"timeformat",
@@ -324,12 +325,12 @@
324325
"updatenotification",
325326
"uxdt",
326327
"Vaice",
328+
"VCALENDAR",
327329
"veeck",
328330
"verjaardag",
329331
"VEVENT",
330332
"vgtu",
331333
"Vitest",
332-
"VCALENDAR",
333334
"Voelt",
334335
"Vorberechnung",
335336
"vppencilsharpener",

0 commit comments

Comments
 (0)