Skip to content

Commit 94c3c69

Browse files
khasselMichMichKristjanESPERANTOdependabot[bot]crazyscot
authored
Release 2.29.0 (#3568)
## [2.29.0] - 2024-10-01 Thanks to: @bugsounet, @dkallen78, @jargordon, @khassel, @KristjanESPERANTO, @MarcLandis, @rejas, @ryan-d-williams, @sdetweil, @skpanagiotis. > ⚠️ This release needs nodejs version `v20` or `v22`, minimum version is `v20.9.0` ### Added - [compliments] Added support for cron type date/time format entries mm hh DD MM dow (minutes/hours/days/months and day of week) see https://crontab.cronhub.io for construction (#3481) - [core] Check config at every start of MagicMirror² (#3450) - [core] Add spelling check (cspell): `npm run test:spelling` and handle spelling issues (#3544) - [core] removed `config.paths.vendor` (could not work because `vendor` is hardcoded in `index.html`), renamed `config.paths.modules` to `config.foreignModulesDir`, added variable `MM_CUSTOMCSS_FILE` which - if set - overrides `config.customCss`, added variable `MM_MODULES_DIR` which - if set - overrides `config.foreignModulesDir`, added test for `MM_MODULES_DIR` (#3530) - [core] elements are now removed from `index.html` when loading script or stylesheet files fails - [core] Added `MODULE_DOM_UPDATED` notification each time the DOM is re-rendered via `updateDom` (#3534) - [tests] added minimal needed node version to tests (currently v20.9.0) to avoid releases with wrong node version info - [tests] Added `node-libgpiod` library to electron-rebuild tests (#3563) ### Removed - [core] removed installer only files (#3492) - [core] removed raspberry object from systeminformation (#3505) - [linter] removed `eslint-plugin-import`, because it doesn't support ESLint v9. We will reenter it later when it does. - [tests] removed `onoff` library from electron-rebuild tests (#3563) ### Updated - [weather] Updated `apiVersion` default from 2.5 to 3.0 (#3424) - [core] Updated dependencies including stylistic-eslint - [core] nail down `node-ical` version to `0.18.0` with exception `allow-ghsas: GHSA-8hc4-vh64-cxmj` in `dep-review.yaml` (which should removed after next `node-ical` update) - [core] Updated SocketIO catch all to new API - [core] Allow custom modules positions by scanning index.html for the defined regions, instead of hard coded (PR #3518 fixes issue #3504) - [core] Detail optimizations in `config_check.js` - [core] Updated minimal needed node version in `package.json` (currently v20.9.0) (#3559) and except for v21 (no security updates) (#3561) - [linter] Switch to ESLint v9 and flat config and replace `eslint-plugin-unicorn` by `@eslint/js` - [core] fix discovering module positions twice after #3450 ### Fixed - Fixed `checks` badge in README.md - [weather] Fixed issue with the UK Met Office provider following a change in their API paths and header info. - [core] add check for node_helper loading for multiple instances of same module (#3502) - [weather] Fixed issue for respecting unit config on broadcasted notifications - [tests] Fixes calendar test by moving it from e2e to electron with fixed date (#3532) - [calendar] fixed sliceMultiDayEvents getting wrong count and displaying incorrect entries, Europe/Berlin (#3542) - [tests] ignore `js/positions.js` when linting (this file is created at runtime) - [calendar] fixed sliceMultiDayEvents showing previous day without config enabled --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Michael Teeuw <michael@xonaymedia.nl> Co-authored-by: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ross Younger <crazyscot@gmail.com> Co-authored-by: Veeck <github@veeck.de> Co-authored-by: Bugsounet - Cédric <github@bugsounet.fr> Co-authored-by: jkriegshauser <joshuakr@nvidia.com> Co-authored-by: illimarkangur <116028111+illimarkangur@users.noreply.github.com> Co-authored-by: sam detweiler <sdetweil@gmail.com> Co-authored-by: vppencilsharpener <tim.pray@gmail.com> Co-authored-by: veeck <michael.veeck@nebenan.de> Co-authored-by: Paranoid93 <6515818+Paranoid93@users.noreply.github.com> Co-authored-by: Brian O'Connor <btoconnor@users.noreply.github.com> Co-authored-by: WallysWellies <59727507+WallysWellies@users.noreply.github.com> Co-authored-by: Jason Stieber <jrstieber@gmail.com> Co-authored-by: jargordon <50050429+jargordon@users.noreply.github.com> Co-authored-by: Daniel <32464403+dkallen78@users.noreply.github.com> Co-authored-by: Ryan Williams <65094007+ryan-d-williams@users.noreply.github.com> Co-authored-by: Panagiotis Skias <panagiotis.skias@gmail.com> Co-authored-by: Marc Landis <dirk.rettschlag@gmail.com>
1 parent 53fc814 commit 94c3c69

File tree

84 files changed

+4147
-3078
lines changed

Some content is hidden

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

84 files changed

+4147
-3078
lines changed

.eslintignore

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

.eslintrc.json

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

.github/CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ We use prettier for automatic linting of all our files: `npm run lint:prettier`.
1212

1313
We use [ESLint](https://eslint.org) on our JavaScript files.
1414

15-
Our ESLint configuration is in our `.eslintrc.json` and `.eslintignore` files.
15+
The ESLint configuration is in our `eslint.config.mjs` file.
1616

1717
To run ESLint, use `npm run lint:js`.
1818

.github/workflows/automated-tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
timeout-minutes: 30
1919
strategy:
2020
matrix:
21-
node-version: [20.x, 22.x]
21+
node-version: [20.9.0, 20.x, 22.x]
2222
steps:
2323
- name: "Checkout code"
2424
uses: actions/checkout@v4

.github/workflows/depsreview.yaml renamed to .github/workflows/dep-review.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,5 @@ jobs:
1616
uses: actions/checkout@v4
1717
- name: "Dependency Review"
1818
uses: actions/dependency-review-action@v4
19+
with:
20+
allow-ghsas: GHSA-8hc4-vh64-cxmj

.github/workflows/electronRebuild.yaml renamed to .github/workflows/electron-rebuild.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
runs-on: ubuntu-latest
99
strategy:
1010
matrix:
11-
node-version: [20.x, 22.x]
11+
node-version: [20.9.0, 20.x, 22.x]
1212
steps:
1313
- name: Checkout code
1414
uses: actions/checkout@v4
@@ -21,8 +21,10 @@ jobs:
2121
run: npm run install-mm
2222
- name: Install @electron/rebuild
2323
run: npm install @electron/rebuild
24+
- name: Install node-libgpiod deps
25+
run: sudo apt-get install gpiod libgpiod2 libgpiod-dev
2426
- name: Install some test library to be rebuilded
25-
run: npm install onoff node-pty drivelist
27+
run: npm install node-libgpiod node-pty drivelist
2628
- name: Run electron-rebuild
2729
run: npx electron-rebuild
2830
continue-on-error: false

.github/workflows/enforce-pullrequest-rules.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
name: "Enforce Pull-Request Rules"
66

77
on:
8-
pull_request:
8+
pull_request_target:
99
types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled]
1010

1111
jobs:
@@ -25,4 +25,4 @@ jobs:
2525
echo "Please don't do this. Switch the branch to 'develop'."
2626
exit 1
2727
env:
28-
BASE_BRANCH: ${{ github.base_ref }}
28+
BASE_BRANCH: ${{ github.event.pull_request.base.ref }}

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,6 @@ Temporary Items
8181
*.orig
8282
*.rej
8383
*.bak
84+
85+
# Ignore positions file (#3518)
86+
js/positions.js

.prettierignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
*.js
2-
.eslintignore
2+
*.mjs
33
.husky/pre-commit
44
.prettierignore
55
/config

CHANGELOG.md

Lines changed: 62 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,58 @@ This project adheres to [Semantic Versioning](https://semver.org/).
55

66
❤️ **Donate:** Enjoying MagicMirror²? [Please consider a donation!](https://magicmirror.builders/#donate) With your help we can continue to improve the MagicMirror².
77

8+
## [2.29.0] - 2024-10-01
9+
10+
Thanks to: @bugsounet, @dkallen78, @jargordon, @khassel, @KristjanESPERANTO, @MarcLandis, @rejas, @ryan-d-williams, @sdetweil, @skpanagiotis.
11+
12+
> ⚠️ This release needs nodejs version `v20` or `v22`, minimum version is `v20.9.0`
13+
14+
### Added
15+
16+
- [compliments] Added support for cron type date/time format entries mm hh DD MM dow (minutes/hours/days/months and day of week) see https://crontab.cronhub.io for construction (#3481)
17+
- [core] Check config at every start of MagicMirror² (#3450)
18+
- [core] Add spelling check (cspell): `npm run test:spelling` and handle spelling issues (#3544)
19+
- [core] removed `config.paths.vendor` (could not work because `vendor` is hardcoded in `index.html`), renamed `config.paths.modules` to `config.foreignModulesDir`, added variable `MM_CUSTOMCSS_FILE` which - if set - overrides `config.customCss`, added variable `MM_MODULES_DIR` which - if set - overrides `config.foreignModulesDir`, added test for `MM_MODULES_DIR` (#3530)
20+
- [core] elements are now removed from `index.html` when loading script or stylesheet files fails
21+
- [core] Added `MODULE_DOM_UPDATED` notification each time the DOM is re-rendered via `updateDom` (#3534)
22+
- [tests] added minimal needed node version to tests (currently v20.9.0) to avoid releases with wrong node version info
23+
- [tests] Added `node-libgpiod` library to electron-rebuild tests (#3563)
24+
25+
### Removed
26+
27+
- [core] removed installer only files (#3492)
28+
- [core] removed raspberry object from systeminformation (#3505)
29+
- [linter] removed `eslint-plugin-import`, because it doesn't support ESLint v9. We will reenter it later when it does.
30+
- [tests] removed `onoff` library from electron-rebuild tests (#3563)
31+
32+
### Updated
33+
34+
- [weather] Updated `apiVersion` default from 2.5 to 3.0 (#3424)
35+
- [core] Updated dependencies including stylistic-eslint
36+
- [core] nail down `node-ical` version to `0.18.0` with exception `allow-ghsas: GHSA-8hc4-vh64-cxmj` in `dep-review.yaml` (which should removed after next `node-ical` update)
37+
- [core] Updated SocketIO catch all to new API
38+
- [core] Allow custom modules positions by scanning index.html for the defined regions, instead of hard coded (PR #3518 fixes issue #3504)
39+
- [core] Detail optimizations in `config_check.js`
40+
- [core] Updated minimal needed node version in `package.json` (currently v20.9.0) (#3559) and except for v21 (no security updates) (#3561)
41+
- [linter] Switch to ESLint v9 and flat config and replace `eslint-plugin-unicorn` by `@eslint/js`
42+
- [core] fix discovering module positions twice after #3450
43+
44+
### Fixed
45+
46+
- Fixed `checks` badge in README.md
47+
- [weather] Fixed issue with the UK Met Office provider following a change in their API paths and header info.
48+
- [core] add check for node_helper loading for multiple instances of same module (#3502)
49+
- [weather] Fixed issue for respecting unit config on broadcasted notifications
50+
- [tests] Fixes calendar test by moving it from e2e to electron with fixed date (#3532)
51+
- [calendar] fixed sliceMultiDayEvents getting wrong count and displaying incorrect entries, Europe/Berlin (#3542)
52+
- [tests] ignore `js/positions.js` when linting (this file is created at runtime)
53+
- [calendar] fixed sliceMultiDayEvents showing previous day without config enabled
54+
855
## [2.28.0] - 2024-07-01
956

1057
Thanks to: @btoconnor, @bugsounet, @JasonStieber, @khassel, @kleinmantara and @WallysWellies.
1158

12-
> ⚠️ This release needs nodejs version >= v20
59+
> ⚠️ This release needs nodejs version >= v20.9.0
1360
1461
### Added
1562

@@ -31,7 +78,7 @@ Thanks to: @btoconnor, @bugsounet, @JasonStieber, @khassel, @kleinmantara and @W
3178

3279
### Fixed
3380

34-
- [core] Fixed crash possibility if `module: <name>` is not defined and on `postion: <positon>` mistake (#3445)
81+
- [core] Fixed crash possibility if `module: <name>` is not defined and on `position: <position>` mistake (#3445)
3582
- [weather] Fixed precipitationProbability in forecast for provider openmeteo (#3446)
3683
- [weather] Fixed type=daily for provider openmeteo having no data when running after 23:00 (#3449)
3784
- [weather] Fixed type=daily for provider openmeteo showing nightly icons in forecast when current time is "nightly" (#3458)
@@ -70,7 +117,7 @@ For more info, please read the following post: [A New Chapter for MagicMirror: T
70117

71118
### Fixed
72119

73-
- Correct apibase of weathergov weatherprovider to match documentation (#2926)
120+
- Correct apiBase of weathergov weatherProvider to match documentation (#2926)
74121
- Worked around several issues in the RRULE library that were causing deleted calender events to still show, some
75122
initial and recurring events to not show, and some event times to be off an hour. (#3291)
76123
- Skip changelog requirement when running tests for dependency updates (#3320)
@@ -136,8 +183,8 @@ This release also marks the latest release by Michael Teeuw. For more info, plea
136183
- Fix issue template (#3167)
137184
- Fix #3256 filter out bad results from rrule.between
138185
- Fix calendar events sometimes not respecting deleted events (#3250)
139-
- Fix electron loadurl locally on Windows when address "0.0.0.0" (#2550)
140-
- Fix updatanotification (update_helper.js): catch error if response is not an JSON format (check PM2)
186+
- Fix electron loadURL locally on Windows when address "0.0.0.0" (#2550)
187+
- Fix updatenotification (update_helper.js): catch error if response is not an JSON format (check PM2)
141188
- Fix missing typeof in calendar module
142189
- Fix style issues after prettier update
143190
- Fix calendar test (#3291) by moving "Exdate check" from e2e to electron to run on a Thursday
@@ -395,7 +442,7 @@ Special thanks to the following contributors: @eouia, @khassel, @kolbyjack, @Kri
395442

396443
### Added
397444

398-
- Added a new config option `httpHeaders` used by helmet (see https://helmetjs.github.io/). You can now set own httpHeaders which will override the defaults in `js/defauls.js` which is useful e.g. if you want to embed MagicMirror into annother website (solves #2847).
445+
- Added a new config option `httpHeaders` used by helmet (see https://helmetjs.github.io/). You can now set own httpHeaders which will override the defaults in `js/defaults.js` which is useful e.g. if you want to embed MagicMirror into another website (solves #2847).
399446
- Show endDate for calendar events when dateHeader is enabled and showEnd is set to true (#2192).
400447
- Added the notification emitting from the weather module on information updated.
401448
- Use recommended file extension for YAML files (#2864).
@@ -444,7 +491,7 @@ Special thanks to the following contributors: @10bias, @CFenner, @JHWelch, @k1rd
444491
- Fix minor console output issue for loading translations (#2814).
445492
- Don't adjust startDate for full day events if endDate is in the past.
446493
- Fix windspeed conversion error in openweathermap provider. (#2812)
447-
- Fix conflicting parms turning off showEnd for full day events. (#2629)
494+
- Fix conflicting parameter turning off showEnd for full day events. (#2629)
448495
- Fix regression, calendar.maximumEntries not used to filter calendar level entries (#2868)
449496

450497
## [2.18.0] - 2022-01-01
@@ -476,7 +523,7 @@ Special thanks to the following contributors: @AmpioRosso, @eouia, @fewieden, @j
476523
### Fixed
477524

478525
- Fixed wrong file `kr.json` to `ko.json`. Use language code 'ko' instead of 'kr' for Korean language.
479-
- Fixed `feels_like` data from openweathermaps current weather being ignored (#2678).
526+
- Fixed `feels_like` data from openweathermap's current weather being ignored (#2678).
480527
- Fixed chaotic newsfeed display after network connection loss thanks to @jalibu (#2638).
481528
- Fixed incorrect time zone correction of recurring full day events (#2632 and #2634).
482529
- Fixed e2e tests by increasing testTimeout.
@@ -513,7 +560,7 @@ Special thanks to the following contributors: @apiontek, @eouia, @jupadin, @khas
513560
- Updated github templates.
514561
- Actually test all js and css files when lint script is run.
515562
- Updated jsdocs and print warnings during testing too.
516-
- Updated weathergov provider to try fetching not just current, but also foreacst, when API URLs available.
563+
- Updated weathergov provider to try fetching not just current, but also forecast, when API URLs available.
517564
- Refactored clock layout.
518565
- Refactored methods from weather-providers into weatherobject (isDaytime, updateSunTime).
519566
- Use of `logger.js` in jest tests.
@@ -863,7 +910,7 @@ Special thanks to @sdetweil for all his great contributions!
863910
### Updated
864911

865912
- Updated lower bound of `lodash` and `helmet` dependencies for security patches.
866-
- Updated compliments.js to handle newline in text, as textfields to not interpolate contents.
913+
- Updated compliments.js to handle newline in text, as text fields to not interpolate contents.
867914
- Updated raspberry.sh installer script to handle new platform issues, split node/npm, pm2, and screen saver changes.
868915
- Improve handling for armv6l devices, where electron support has gone away, add optional serveronly config option.
869916
- Improved run-start.sh to handle for serveronly mode, by choice, or when electron not available.
@@ -1084,7 +1131,7 @@ A huge, huge, huge thanks to user @fewieden for all his hard work on the new `we
10841131
- Fixed close dates to be absolute, if no configured in the config.js - module Calendar
10851132
- Fixed the updatenotification module message about new commits in the repository, so they can be correctly localized in singular and plural form.
10861133
- Fix for weatherforecast rainfall rounding [#1374](https://github.com/MagicMirrorOrg/MagicMirror/issues/1374)
1087-
- Fix calendar parsing issue for Midori on RasperryPi Zero w, related to issue #694.
1134+
- Fix calendar parsing issue for Midori on Raspberry Pi Zero w, related to issue #694.
10881135
- Fix weather city ID link in sample config
10891136
- Fixed issue with clientonly not updating with IP address and port provided on command line.
10901137

@@ -1139,7 +1186,7 @@ A huge, huge, huge thanks to user @fewieden for all his hard work on the new `we
11391186
- Fixed weatherforecast to use dt_txt field instead of dt to handle timezones better
11401187
- Newsfeed now remembers to show the description when `"ARTICLE_LESS_DETAILS"` is called if the user wants to always show the description. [#1282](https://github.com/MagicMirrorOrg/MagicMirror/issues/1282)
11411188
- `clientonly/*.js` is now linted, and one linting error is fixed
1142-
- Fix issue #1196 by changing underscore to hyphen in locale id, in align with momentjs.
1189+
- Fix issue #1196 by changing underscore to hyphen in locale id, in align with moment.js.
11431190
- Fixed issue where heat index and wind chill were reporting incorrect values in Kelvin. [#1263](https://github.com/MagicMirrorOrg/MagicMirror/issues/1263)
11441191

11451192
### Updated
@@ -1164,7 +1211,7 @@ A huge, huge, huge thanks to user @fewieden for all his hard work on the new `we
11641211
- Implement Danger.js to notify contributors when CHANGELOG.md is missing in PR.
11651212
- Allow scrolling in full page article view of default newsfeed module with gesture events from [MMM-Gestures](https://github.com/thobach/MMM-Gestures)
11661213
- Changed 'compliments.js' - Updated DOM if remote compliments are loaded instead of waiting one updateInterval to show custom compliments
1167-
- Automated unit tests utils, deprecated, translator, cloneObject(lockstrings)
1214+
- Automated unit tests utils, deprecated, translator, cloneObject(lockStrings)
11681215
- Automated integration tests translations
11691216
- Add advanced filtering to the excludedEvents configuration of the default calendar module
11701217
- New currentweather module config option: `showFeelsLike`: Shows how it actually feels like. (wind chill or heat index)
@@ -1268,7 +1315,7 @@ A huge, huge, huge thanks to user @fewieden for all his hard work on the new `we
12681315
### Fixed
12691316

12701317
- Fixed issue with incorrect alignment of analog clock when displayed in the center column of the MM.
1271-
- Fixed ipWhitelist behaviour to make empty whitelist ([]) allow any and all hosts access to the MM.
1318+
- Fixed ipWhitelist behavior to make empty whitelist ([]) allow any and all hosts access to the MM.
12721319
- Fixed issue with calendar module where 'excludedEvents' count towards 'maximumEntries'.
12731320
- Fixed issue with calendar module where global configuration of maximumEntries was not overridden by calendar specific config (see module doc).
12741321
- Fixed issue where `this.file(filename)` returns a path with two hashes.
@@ -1373,7 +1420,7 @@ A huge, huge, huge thanks to user @fewieden for all his hard work on the new `we
13731420
- Added multiple calendar icon support.
13741421
- Added tests for Translations, dev argument, version, dev console.
13751422
- Added test anytime feature compliments module.
1376-
- Added test ipwhitelist configuration directive.
1423+
- Added test ipWhitelist configuration directive.
13771424
- Added test for calendar module: default, basic-auth, backward compatibility, fail-basic-auth.
13781425
- Added meta tags to support fullscreen mode on iOS (for server mode)
13791426
- Added `ignoreOldItems` and `ignoreOlderThan` options to the News Feed module

0 commit comments

Comments
 (0)