Skip to content

Commit c24de64

Browse files
sdetweilMichMichKristjanESPERANTOdependabot[bot]khassel
authored
Release 2.30.0 (#3673)
## [2.30.0] - 2025-01-01 Thanks to: @xsorifc28, @HeikoGr, @bugsounet, @khassel, @KristjanESPERANTO, @rejas, @sdetweil. > ⚠️ This release needs nodejs version `v20` or `v22 or higher`, minimum version is `v20.18.1` ### Added - [core] Add wayland and windows start options to `package.json` (#3594) - [docs] Add step for npm publishing in release process (#3595) - [core] Add GitHub workflow to run spellcheck a few days before each release (#3623) - [core] Add test flag to `index.html` to pass to module js for test mode detection (needed by #3630) - [core] Add export on animation names (#3644) - [compliments] Add support for refreshing remote compliments file, and test cases (#3630) - [linter] Re-add `eslint-plugin-import`now that it supports ESLint v9 (#3586) - [linter] Re-activate `eslint-plugin-package-json` to lint `package.json` (#3643) - [linter] Add linting for markdown files (#3646) - [linter] Add some handy ESLint rules. - [calendar] Add ability to display end date for full date events, where end is not same day (showEnd=true) (#3650) - [core] Add text to the config.js.sample file about the locale variable (#3654, #3655) - [core] Add fetch timeout for all node_helpers (thru undici, forces node 20.18.1 minimum) to help on slower systems. (#3660) (3661) ### Changed - [core] Run code style checks in workflow only once (#3648) - [core] Fix animations export #3644 only on server side (#3649) - [core] Use project URL in fallback config (#3656) - [core] Fix Access Denied crash writing js/positions.js (on synology nas) #3651. new message, MM starts, but no modules showing (#3652) - [linter] Switch to 'npx' for lint-staged in pre-commit hook (#3658) ### Removed - [tests] Remove `node-pty` and `drivelist` from rebuilded test (#3575) - [deps] Remove `@eslint/js` dependency. Already installed with `eslint` in deep (#3636) ### Updated - [repo] Reactivate `stale.yaml` as GitHub action to mark issues as stale after 60 days and close them 7 days later (if no activity) (#3577, #3580, #3581) - [core] Update electron dependency to v32 (test electron rebuild) and all other dependencies too (#3657) - [tests] All test configs have been updated to allow full external access, allowing for easier debugging (especially when running as a container) - [core] Run and test with node 23 (#3588) - [workflow] delete exception `allow-ghsas: GHSA-8hc4-vh64-cxmj` in `dep-review.yaml` (#3659) ### Fixed - [updatenotification] Fix pm2 using detection when pm2 script is inside or outside MagicMirror root folder (#3576) (#3605) (#3626) (#3628) - [core] Fix loading node_helper of modules: avoid black screen, display errors and continue loading with next module (#3578) - [weather] Change default value for weatherEndpoint of provider openweathermap to "/onecall" (#3574) - [tests] Fix electron tests with mock dates, the mock on server side was missing (#3597) - [tests] Fix testcases with hard coded Date.now (#3597) - [core] Fix missing `basePath` where `location.host` is used (#3613) - [compliments] croner library changed filenames used in latest version (#3624) - [linter] Fix ESLint ignore pattern which caused that default modules not to be linted (#3632) - [core] Fix module path in case of sub/sub folder is used and use path.resolve for resolve `moduleFolder` and `defaultModuleFolder` in app.js (#3653) - [calendar] Update to resolve issues #3098 #3144 #3351 #3422 #3443 #3467 #3537 related to timezone changes - [calendar] Fix #3267 (styles array), also fixes event with both exdate AND recurrence(and testcase) - [calendar] Fix showEndsOnlyWithDuration not working, #3598, applies ONLY to full day events - [calendar] Fix showEnd for Full Day events (#3602) - [tests] Suppress "module is not defined" in e2e tests (#3647) - [calendar] Fix #3267 (styles array, really this time!) - [core] Fix #3662 js/positions.js created incorrectly --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Michael Teeuw <[email protected]> Co-authored-by: Kristjan ESPERANTO <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Karsten Hassel <[email protected]> Co-authored-by: Ross Younger <[email protected]> Co-authored-by: Veeck <[email protected]> Co-authored-by: Bugsounet - Cédric <[email protected]> Co-authored-by: jkriegshauser <[email protected]> Co-authored-by: illimarkangur <[email protected]> Co-authored-by: vppencilsharpener <[email protected]> Co-authored-by: veeck <[email protected]> Co-authored-by: Paranoid93 <[email protected]> Co-authored-by: Brian O'Connor <[email protected]> Co-authored-by: WallysWellies <[email protected]> Co-authored-by: Jason Stieber <[email protected]> Co-authored-by: jargordon <[email protected]> Co-authored-by: Daniel <[email protected]> Co-authored-by: Ryan Williams <[email protected]> Co-authored-by: Panagiotis Skias <[email protected]> Co-authored-by: Marc Landis <[email protected]> Co-authored-by: HeikoGr <[email protected]> Co-authored-by: Pedro Lamas <[email protected]> Co-authored-by: veeck <[email protected]>
1 parent 94c3c69 commit c24de64

File tree

145 files changed

+4899
-1919
lines changed

Some content is hidden

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

145 files changed

+4899
-1919
lines changed

.github/CONTRIBUTING.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,28 @@ We hold our code to standard, and these standards are documented below.
66

77
## Linters
88

9-
We use prettier for automatic linting of all our files: `npm run lint:prettier`.
9+
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-
### JavaScript: Run ESLint
11+
To run prettier, use `npm run lint:prettier`.
1212

13-
We use [ESLint](https://eslint.org) on our JavaScript files.
13+
### JavaScript: Run ESLint
1414

15-
The ESLint configuration is in our `eslint.config.mjs` file.
15+
We use [ESLint](https://eslint.org) to lint our JavaScript files. The configuration is in our `eslint.config.mjs` file.
1616

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

1919
### CSS: Run StyleLint
2020

21-
We use [StyleLint](https://stylelint.io) to lint our CSS. Our configuration is in our `.stylelintrc` file.
21+
We use [StyleLint](https://stylelint.io) to lint our CSS. The configuration is in our `.stylelintrc.json` file.
2222

2323
To run StyleLint, use `npm run lint:css`.
2424

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 `npm run markdownlint:css`.
30+
2531
## Testing
2632

2733
We use [Jest](https://jestjs.io) for JavaScript testing.
@@ -43,7 +49,7 @@ When submitting a new issue, please supply the following information:
4349

4450
**Platform**: Place your platform here... give us your web browser/Electron version _and_ your hardware (Raspberry Pi 2/3/4, Windows, Mac, Linux, System V UNIX).
4551

46-
**Node Version**: Make sure it's version 18 or later (recommended is 20).
52+
**Node Version**: Make sure it's version 20 or later (recommended is 22).
4753

4854
**MagicMirror² Version**: Please let us know which version of MagicMirror² you are running. It can be found in the `package.json` file.
4955

.github/ISSUE_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ When submitting a new issue, please supply the following information:
3535

3636
**Platform**: Place your platform here... give us your web browser/Electron version _and_ your hardware (Raspberry Pi 2/3/4, Windows, Mac, Linux, System V UNIX).
3737

38-
**Node Version**: Make sure it's version 18 or later (recommended is 20).
38+
**Node Version**: Make sure it's version 20 or later (recommended is 22).
3939

4040
**MagicMirror² Version**: Please let us know which version of MagicMirror² you are running. It can be found in the `package.json` file.
4141

.github/stale.yaml

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

.github/workflows/automated-tests.yaml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,32 @@ permissions:
1313
contents: read
1414

1515
jobs:
16+
code-style-check:
17+
runs-on: ubuntu-latest
18+
timeout-minutes: 15
19+
steps:
20+
- name: "Checkout code"
21+
uses: actions/checkout@v4
22+
- name: "Use Node.js"
23+
uses: actions/setup-node@v4
24+
with:
25+
node-version: 23
26+
cache: "npm"
27+
- name: "Install dependencies"
28+
run: |
29+
npm run install-mm:dev
30+
- name: "Run linter tests"
31+
run: |
32+
npm run test:prettier
33+
npm run test:js
34+
npm run test:css
35+
npm run test:markdown
1636
test:
1737
runs-on: ubuntu-latest
1838
timeout-minutes: 30
1939
strategy:
2040
matrix:
21-
node-version: [20.9.0, 20.x, 22.x]
41+
node-version: [20.18.1, 20.x, 22.x, 23.x]
2242
steps:
2343
- name: "Checkout code"
2444
uses: actions/checkout@v4
@@ -36,7 +56,4 @@ jobs:
3656
Xvfb :99 -screen 0 1024x768x16 &
3757
export DISPLAY=:99
3858
touch css/custom.css
39-
npm run test:prettier
40-
npm run test:js
41-
npm run test:css
4259
npm run test

.github/workflows/dep-review.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,3 @@ 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/electron-rebuild.yaml

Lines changed: 3 additions & 3 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.9.0, 20.x, 22.x]
11+
node-version: [20.18.1, 20.x, 22.x, 23.x]
1212
steps:
1313
- name: Checkout code
1414
uses: actions/checkout@v4
@@ -23,8 +23,8 @@ jobs:
2323
run: npm install @electron/rebuild
2424
- name: Install node-libgpiod deps
2525
run: sudo apt-get install gpiod libgpiod2 libgpiod-dev
26-
- name: Install some test library to be rebuilded
27-
run: npm install node-libgpiod node-pty drivelist
26+
- name: Install test library (node-libgpiod) to be rebuilded
27+
run: npm install node-libgpiod
2828
- name: Run electron-rebuild
2929
run: npx electron-rebuild
3030
continue-on-error: false

.github/workflows/spellcheck.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# This workflow will run a spellcheck on the codebase.
2+
# It runs a few days before each release. At 00:00 on day-of-month 27 in March, June, September, and December.
3+
4+
name: Run Spellcheck
5+
6+
on:
7+
schedule:
8+
- cron: "0 0 27 3,6,9,12 *"
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
spellcheck:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v4
19+
with:
20+
ref: develop
21+
- name: Set up Node.js
22+
uses: actions/setup-node@v4
23+
with:
24+
node-version: "22"
25+
check-latest: true
26+
cache: "npm"
27+
- name: Install dependencies
28+
run: |
29+
npm run install-mm:dev
30+
- name: Run Spellcheck
31+
run: npm run test:spellcheck

.github/workflows/stale.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: "Close stale issues and PRs"
2+
3+
on:
4+
workflow_dispatch: # needed for manually running this workflow
5+
schedule:
6+
- cron: "30 1 * * 6" # every Saturday at 1:30
7+
8+
permissions:
9+
issues: write
10+
11+
jobs:
12+
stale:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/stale@v9
16+
with:
17+
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
18+
days-before-issue-stale: 60
19+
days-before-issue-close: 7
20+
operations-per-run: 100
21+
stale-issue-label: "wontfix"
22+
exempt-issue-labels: "pinned,security,under investigation,pr welcome"

.husky/pre-commit

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/sh
22

3-
if command -v npm &> /dev/null; then
4-
npm run lint:staged
3+
if command -v npx &> /dev/null; then
4+
npx lint-staged
55
fi

.markdownlint.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"line_length": false,
3+
"no-duplicate-heading": false,
4+
"no-inline-html": false,
5+
"no-trailing-punctuation": false
6+
}

0 commit comments

Comments
 (0)