Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
292 commits
Select commit Hold shift + click to select a range
d970214
Fix for #3345 - precipitation probability not displayed when it is 0%…
vppencilsharpener Mar 21, 2024
6de578e
move suncalc dependency out of dev, as it is used by the clock module…
sdetweil Mar 22, 2024
52cfbac
Changes the layout of the current weather module, targetting indoor v…
Paranoid93 Mar 23, 2024
57549fa
Fix compliments module bringing mirror to a halt (#3402)
rejas Mar 23, 2024
be63e36
Add electron-rebuild to suite test (#3392)
bugsounet Mar 27, 2024
fd44445
update deps and package.json's (eslint) (#3406)
khassel Mar 27, 2024
d9926fa
MM² Icon (#3407)
bugsounet Mar 28, 2024
e004b33
Change multiday fullDay Event behaviour (#3396)
Paranoid93 Mar 28, 2024
72ef823
update Collaboration.md (added infos from discord) (#3408)
khassel Mar 30, 2024
b262bf6
Release 2.27.0
rejas Apr 1, 2024
53420f5
Fix check for mastermerge label (#3415)
rejas Apr 1, 2024
2a883c3
Remove codecov yaml (#3416)
rejas Apr 1, 2024
1981601
Merge branch 'mm_master' into mm_develop
rejas Apr 1, 2024
8aaad8e
Prepare v2.28.0-develop
rejas Apr 1, 2024
1fa1788
Bump ansis from 2.3.0 to 3.0.1 (#3417)
dependabot[bot] Apr 1, 2024
3b00357
Update deps (#3439)
khassel May 1, 2024
d1c17e7
weather module: Fixed precipitationProbability in forecast … (#3448)
khassel May 13, 2024
cd0bc5b
fixed type=daily for provider openmeteo having no data … (#3451)
khassel May 20, 2024
4bd66cb
fixed type=daily for provider openmeteo showing nightly icons (#3459)
khassel Jun 8, 2024
6332445
update dependencies (#3460)
khassel Jun 11, 2024
bc27c46
MM² Main core use node >= v20 // delete node v18 from test suite (#3463)
bugsounet Jun 19, 2024
9cbd30f
update dependencies incl. electron v31 (#3473)
khassel Jun 19, 2024
4c748a4
update `config.js.sample` to use openmeteo as weather provider (#3476)
khassel Jun 22, 2024
e95c144
Fix crash possibility if `module: <name>` is not defined and on mista…
bugsounet Jun 24, 2024
8d20832
[calendar] add config option "showEndsOnlyWithDuration" (#3477)
khassel Jun 24, 2024
3d9d72e
Open-Meteo: Fix forecast and hourly weather to use real temperatures,…
btoconnor Jun 24, 2024
aefb3a0
Update compliments module (#3471)
WallysWellies Jun 24, 2024
f28b4bd
Use latest@version of node for automated-tests.yaml (#3483)
bugsounet Jun 26, 2024
4aafa32
fixes e2e tests running in docker container (#3485)
khassel Jun 27, 2024
cfc0bc6
Update CHANGELOG.md (#3486)
bugsounet Jun 27, 2024
74c6bb3
Update dependencies (#3487)
khassel Jun 28, 2024
c89c3ed
Fix weathergov api precipitationLastHour (#3125)
JasonStieber Jun 28, 2024
92ac389
updatenotification: avoid using pm2 when running in docker container …
khassel Jun 28, 2024
795e5c7
Release 2.28.0
khassel Jun 28, 2024
7389a33
Merge remote-tracking branch 'origin/master' into develop
khassel Jun 30, 2024
f7369a7
Prepare v2.29.0-develop
khassel Jun 30, 2024
160d95a
Cleanup folders for #3492 (#3493)
sdetweil Jul 1, 2024
3b22622
fixes `checks` badge in README.md (#3494)
khassel Jul 4, 2024
4d14f4a
Fixes the UK Met Office Datahub provider (#3499)
jargordon Jul 7, 2024
974a1da
[weather] update provider openweathermap to new apiVersion (#3496)
dkallen78 Jul 11, 2024
d9665b3
Update compliments with support for cron type date/time for selection…
sdetweil Jul 15, 2024
d22d0e1
remove raspberry object from systeminformation (#3507)
khassel Jul 29, 2024
4182c21
Update dependencies (#3515)
rejas Aug 1, 2024
76d8f98
allow custom module positions by setting `allowCustomModulePositions`…
khassel Aug 1, 2024
780e4e2
Fix loading of multiple instances of node_helper when multiple instan…
sdetweil Aug 4, 2024
976c8ae
Bump stylistic-eslint (#3520)
rejas Aug 12, 2024
cc1d4ab
Improve duplicate module filtering. Update SocketIO catch-all API. (#…
ryan-d-williams Aug 18, 2024
5673678
Bug in Weather Units for Broadcasted Notification (#3519)
skpanagiotis Aug 18, 2024
2b97e0d
add support for custom regions, by detecting what is used in index.ht…
sdetweil Aug 27, 2024
7915de3
update dependencies (#3527)
khassel Aug 31, 2024
bca5d9c
Ignore positions.js (#3531)
KristjanESPERANTO Sep 11, 2024
3380314
hotfix for calendar_spec.js (used data now returns 20 events) (#3533)
khassel Sep 13, 2024
81351fb
update dependencies (#3536)
khassel Sep 14, 2024
0faefd1
fixes calendar test by moving it from e2e to electron with fixed date…
khassel Sep 15, 2024
ea3a323
add fix for sliceMultiDayEvents (#3543)
sdetweil Sep 17, 2024
d9f9f41
Add spell check (#3544)
KristjanESPERANTO Sep 18, 2024
659e0c7
add new env vars MM_MODULES_DIR and MM_CUSTOMCSS_FILE … (#3530)
khassel Sep 18, 2024
866419e
Check config before starting MM (#3450)
KristjanESPERANTO Sep 18, 2024
c6e05c9
Added `DOM_OBJECTS_UPDATED` notification when the DOM is re-rendered …
ryan-d-williams Sep 18, 2024
06f6fbf
Review config_check.js (#3545)
KristjanESPERANTO Sep 18, 2024
65d7e2d
fix CHANGELOG.md
khassel Sep 18, 2024
8f5aa50
added test for `MM_MODULES_DIR` (#3546)
khassel Sep 19, 2024
1823f5a
Updated to new notification name `DOM_OBJECTS_UPDATED` -> `MODULE_DOM…
ryan-d-williams Sep 19, 2024
06a8b51
Cleanup github actions (#3549)
rejas Sep 19, 2024
fa6a752
add tests for minimal node version (currently v20.9.0) (#3556)
khassel Sep 24, 2024
08116b8
fixes for running tests for MM_MODULES_DIR (#3550)
khassel Sep 24, 2024
5ffdf9a
Updated minimal needed node version in `package.json` (currently v20.…
bugsounet Sep 25, 2024
d318768
Switch to ESLint v9 and flat config (#3558)
KristjanESPERANTO Sep 25, 2024
2e6e868
fix calendar showing previous day when using sliceMultiDayEvents (#3555)
MarcLandis Sep 25, 2024
ebaeed9
Engine except on node v21 (#3561)
bugsounet Sep 26, 2024
731512c
Electron rebuild tests update (#3563)
bugsounet Sep 26, 2024
d9eefff
fix double load of positions now that check:config at startup is acti…
sdetweil Sep 28, 2024
719eca4
update dependencies, nail down node-ical version to 0.18.0 (#3566)
khassel Sep 28, 2024
d84d612
Release 2.29.0
khassel Sep 18, 2024
15a9346
Merge remote-tracking branch 'origin/master' into develop
khassel Sep 30, 2024
d1be92a
Prepare v2.30.0-develop
khassel Sep 30, 2024
4c7c859
[Electron rebuild] Removed node-pty and drivelist from rebuilded test…
bugsounet Oct 2, 2024
ee98a0c
[UpdateNotification] Fix pm2 using detection when pm2 script is in Ma…
bugsounet Oct 2, 2024
0eafa19
Bump eslint-plugin-jsdoc from 50.3.0 to 50.3.1 (#3571)
dependabot[bot] Oct 2, 2024
f91340c
Bump helmet from 7.1.0 to 8.0.0 (#3570)
dependabot[bot] Oct 2, 2024
f51fbe3
reactivated `stale.yaml` as github action (#3577)
khassel Oct 4, 2024
961bae6
[core] add try / catch on mode_helper loading (#3578)
bugsounet Oct 5, 2024
c7dcf54
allow manually running stale workflow (#3580)
khassel Oct 5, 2024
0130dc4
stale workflow: increase operations-per-run (default=30) so that all …
khassel Oct 5, 2024
7489e51
Change default for weatherEndpoint according to API 3.0 (#3583)
HeikoGr Oct 11, 2024
1b80e87
[core] test electron v32 and electron rebuild (#3584)
bugsounet Oct 11, 2024
3d1e8ab
add address and ipWhitelist to all test configs (#3585)
khassel Oct 12, 2024
fff3106
Re-add eslint-plugin-import (#3586)
rejas Oct 13, 2024
0f024cf
Run and test with node 23 (#3588)
KristjanESPERANTO Oct 19, 2024
b54fc08
Add npm publishing step to release process (#3595)
rejas Oct 23, 2024
aa7e856
Add wayland and windows start options (#3594)
KristjanESPERANTO Oct 23, 2024
6946b49
Fixtestcase calendar testcase failure (#3596)
sdetweil Oct 23, 2024
cfa5c0d
fix electron tests mocking dates (#3599)
khassel Oct 25, 2024
c96326b
Cleanup testcases that had hard coded Date() values which override th…
sdetweil Oct 25, 2024
399e2ae
[updatenotification] Fix pm2 using detection when pm2 script is insid…
bugsounet Oct 28, 2024
9114aef
fix missing basePath (#3620)
khassel Nov 2, 2024
0aae771
Update dependencies reported by Dependabot (#3621)
rejas Nov 2, 2024
6ce3622
Add spelling check to GitHub workflow (#3623)
KristjanESPERANTO Nov 3, 2024
7e6349c
Fix compliments croner (#3625)
sdetweil Nov 4, 2024
b250cfa
Bump croner from 8.1.2 to 9.0.0 in /vendor (#3614)
dependabot[bot] Nov 4, 2024
cd6f10c
PM2 Fix (again): add `pm2_env.unique_id` checking and cleaning (#3626)
bugsounet Nov 7, 2024
4259d7c
updatenotification: some fixes (#3628)
bugsounet Nov 9, 2024
56cb536
add support for test mode detection in modulename.js via index.html (…
sdetweil Nov 12, 2024
f1522da
Fix eslint ignores (#3633)
KristjanESPERANTO Nov 12, 2024
bd620e0
Enhance compliments remote file with refresh support (#3630)
sdetweil Nov 13, 2024
15baffd
Adapt to "Keep a Changelog" (#3634)
KristjanESPERANTO Nov 14, 2024
bd1324c
Remove `@eslint/js` dependency. Already installed with `eslint` in de…
bugsounet Nov 17, 2024
3627beb
Bump stylelint from 16.10.0 to 16.11.0 (#3639)
dependabot[bot] Dec 1, 2024
f417bc0
Bump prettier from 3.3.3 to 3.4.1 (#3638)
dependabot[bot] Dec 1, 2024
28341d4
Bump eslint-plugin-package-json from 0.15.4 to 0.17.0 (#3637)
dependabot[bot] Dec 1, 2024
8d61336
Bump @fortawesome/fontawesome-free from 6.6.0 to 6.7.1 in /vendor (#3…
dependabot[bot] Dec 1, 2024
07768c3
Reactivate eslint-plugin-package-json (#3643)
KristjanESPERANTO Dec 1, 2024
63178eb
Export animations (#3644)
sdetweil Dec 2, 2024
291ae85
Handle "module is not defined" in e2e tests (#3647)
KristjanESPERANTO Dec 7, 2024
19bd76a
Fixcaldates2 fix calendar module date processing, using node-ical@0.…
sdetweil Dec 7, 2024
5b7b76c
Add linting for markdown files (#3646)
KristjanESPERANTO Dec 7, 2024
76fac78
Run code style checks in workflow only once (#3648)
KristjanESPERANTO Dec 7, 2024
39ab651
Show animations, fix export only on server side (#3649)
sdetweil Dec 8, 2024
5232f46
fix #3267 again this time, dropped from big cal update (#3650)
sdetweil Dec 8, 2024
5b3b40d
Use project URL in fallback config (#3656)
KristjanESPERANTO Dec 18, 2024
786eacf
update config.js.sample about locale variable (#3655)
sdetweil Dec 18, 2024
24d9b70
fix access denied fault error writing js/positions.js (#3652)
sdetweil Dec 18, 2024
b910c60
update dependencies (#3657)
khassel Dec 18, 2024
c485ff6
path resolve and sub/sub folder module (#3653)
bugsounet Dec 18, 2024
0b3a04c
Switch to 'npx' for lint-staged in pre-commit hook (#3658)
KristjanESPERANTO Dec 22, 2024
2fb5143
delete exception `allow-ghsas: GHSA-8hc4-vh64-cxmj` in `dep-review.ya…
bugsounet Dec 24, 2024
6a09bc4
add support for fetch timeout control for node_helpers, fix timeouts …
sdetweil Dec 25, 2024
9d0501f
Fix: package-lock.json after PR #3660 (#3661)
bugsounet Dec 27, 2024
93a0c24
fix #3662 line parse on windows with linux line ends (#3663)
sdetweil Dec 28, 2024
d41ce81
update dependencies, fix typo in Collaboration.md (#3664)
khassel Dec 28, 2024
143dfd6
Add some ESLint rules + minor changes (#3665)
KristjanESPERANTO Dec 30, 2024
c92fbb8
Final dependency updates for v2.30 (#3671)
rejas Jan 1, 2025
9be625c
ready for release 2.30.0 (#3672)
sdetweil Jan 1, 2025
6f50a7b
Release 2.31.0 (#3674)
sdetweil Jan 1, 2025
75dbe67
Fix calendar clipping before broadcast (#3679)
sdetweil Jan 3, 2025
0f6efac
clientonly and wayland, hotfix electron tests (#3677)
khassel Jan 3, 2025
8fdd865
electron tests: fixes for running under new github image ubuntu-24.04…
khassel Jan 5, 2025
5e337f8
fix #3267, CORRECTLY, add testcase, add testcase for #3279 (#3681)
sdetweil Jan 5, 2025
b1bc554
Update year (#3686)
KristjanESPERANTO Jan 6, 2025
553d2d4
electron tests (#3684)
khassel Jan 8, 2025
a7f814d
Optimize systeminformation calls and output string (#3689)
KristjanESPERANTO Jan 12, 2025
99dda82
Fix unknown (n/a) icon in openmeteo provider (#3691)
rejas Jan 13, 2025
2400e20
update dependencies and formatting (#3693)
khassel Jan 13, 2025
6e40c44
fix wrong port in log message when starting server only (#3697)
khassel Jan 14, 2025
77fe011
Use different issue templates (#3695)
KristjanESPERANTO Jan 17, 2025
53ac31d
Adapt `start:x11:dev` script (#3700)
KristjanESPERANTO Jan 19, 2025
af77b7b
fix #3701, calculation wrong, added testcase, ics, config (#3702)
sdetweil Jan 23, 2025
d6f2e71
Fix frozen Yr weather-module (#3706)
MagMar94 Jan 27, 2025
f34c8f2
update github workflows (#3709)
khassel Jan 31, 2025
e00a666
chore: update newsfeed.js (#3692)
eltociear Feb 1, 2025
aa20ead
Monthly update to dependencies (#3717)
rejas Feb 1, 2025
62c22d7
Arabic Translation (#3719)
Developer-Incoming Feb 6, 2025
28bcee7
Update ESLint and simplify config (#3724)
KristjanESPERANTO Feb 22, 2025
4a398f0
Fix empty part-of-day logic (#3726)
rejas Feb 27, 2025
66b8656
Fix icons, add hourly support, add other weatherflow changes (#3729)
n8many Mar 1, 2025
1fcc028
update dependencies incl. electron to v35 (#3733)
khassel Mar 5, 2025
2adf341
Add Esperanto translation (#3740)
KristjanESPERANTO Mar 13, 2025
0afc1ed
Updated Greek Translations (#3741)
mixasgr Mar 15, 2025
51d11bf
add support for digital clock time color (#3737)
sdetweil Mar 16, 2025
0cfe273
newsfeed: add specific ignoreOlderThan value (override) per feed (#3742)
khassel Mar 18, 2025
68ec696
Update ESLint and prettier (#3746)
KristjanESPERANTO Mar 18, 2025
46d64ab
update required node version and dependencies (#3747)
khassel Mar 21, 2025
791f771
fix stale job (#3751)
khassel Mar 22, 2025
2ddb785
Fix command to run spellcheck (#3753)
KristjanESPERANTO Mar 27, 2025
6d909d2
[weather] add humidity to hourly view, fix spacing error when using U…
OWL4C Mar 27, 2025
2e57d78
update dependencies (#3754)
khassel Mar 28, 2025
e546fed
updatenotification: add param to get modules from modules-dir instead…
khassel Mar 31, 2025
f80b1f1
Update deps before release (#3756)
rejas Apr 1, 2025
01fd41c
Prepare 2.31.0 release (#3757)
rejas Apr 1, 2025
a2c1daa
Merge branch 'mm_master' into mm_develop
Apr 1, 2025
7938c3a
Merge branch 'mm_master' into mm_develop
Apr 1, 2025
86934c8
Prepare v2.32.0-develop
Apr 1, 2025
e1a53ef
[refactor] Simplify module loading process (#3766)
KristjanESPERANTO Apr 23, 2025
ff66829
[feature] Introduce disableNextEvent to hide next sun event (#3769)
bughaver Apr 27, 2025
b9d63d7
Use "node --run" instead of "npm run" (#3764)
KristjanESPERANTO May 6, 2025
a5b85c4
[workflow] Use LTS node version and split "Run test" step (#3767)
KristjanESPERANTO May 7, 2025
7b4d363
[fix] Fix `start:dev` script (#3773)
KristjanESPERANTO May 7, 2025
2831ae9
[Feature Request] Allow to make an display order of module position i…
bugsounet May 8, 2025
53bff72
update dependencies (#3774)
khassel May 9, 2025
ed419ce
Bump pm2 from 5.4.3 to 6.0.5 (#3776)
dependabot[bot] May 9, 2025
2422e84
Fix calendar rrule until where event is fullday but rrule until has a…
sdetweil May 12, 2025
965e935
[linter] Review linter setup (#3783)
KristjanESPERANTO May 12, 2025
554bb0e
[feat] Add rule `no-undef` in config file validation (#3786)
KristjanESPERANTO May 14, 2025
2f9f4b6
[feature] implement short syntax for clock week (#3775)
bughaver May 16, 2025
d179051
fix `roboto.css` to avoid error message (#3787)
khassel May 20, 2025
d07912d
update dependencies incl. electron to v36 (#3788)
khassel May 23, 2025
4e3821c
[workflow] Replace Node.js version v23 with v24 (#3770)
KristjanESPERANTO May 23, 2025
85b4ece
[refactor] Replace deprecated constants (#3789)
KristjanESPERANTO May 23, 2025
e26aed9
[refactor] Replace `ansis` with built-in function `util.styleText` (#…
KristjanESPERANTO May 27, 2025
c8625ff
simplify install and maintaining dependencies (#3795)
khassel Jun 1, 2025
975ee9c
update dependencies (#3804)
khassel Jun 1, 2025
302b24c
[l10n] Complete translations (#3794)
KristjanESPERANTO Jun 5, 2025
052ec1c
remove existing folders fonts and vendor from local installations (#3…
khassel Jun 7, 2025
faf15ad
Refactored calendarfetcherutils to fix many of the timezone and DST r…
plebcity Jun 7, 2025
2194ffd
[tests] Fix and refactor e2e test "Same keys" in "translations_spec.j…
KristjanESPERANTO Jun 9, 2025
6501aab
[linter] Enable ESLint rule `no-console` (#3810)
KristjanESPERANTO Jun 9, 2025
ee87483
update deps and fix animateCSS_spec test (#3811)
khassel Jun 19, 2025
9a3f4f0
Update package type to `commonjs` (#3814)
bugsounet Jun 20, 2025
c7c0e67
review logger factory code part: use switch/case (#3812)
bugsounet Jun 20, 2025
2809ed1
[tests] Review and refactor translation tests (#3792)
KristjanESPERANTO Jun 20, 2025
d2d4d7b
update jest to v30 (#3815)
khassel Jun 21, 2025
1e11d28
fixes e2e tests (#3817)
khassel Jun 25, 2025
5e506ea
last dependency update before release (#3823)
khassel Jun 29, 2025
2680972
Prepare Release 2.32.0 (#3825)
khassel Jun 30, 2025
b506bbb
Merge remote-tracking branch 'origin/master' into develop
khassel Jun 30, 2025
106b505
Prepare 2.33.0-develop
khassel Jun 30, 2025
855b1d7
update dependencies incl. electron to v37, remove one failing unit te…
khassel Jul 1, 2025
3a2a52c
Add CSS to clock module to prevent line breaking of sunrise/sunset in…
dathbe Jul 2, 2025
d9e2e02
Fix calendar unit test so it uses 1 day more than a full year for yea…
plebcity Jul 2, 2025
e4ec8c3
Fix missing icons in clock module (#3834)
rejas Jul 5, 2025
e115475
feat: enhance system information logging format and include additiona…
KristjanESPERANTO Jul 10, 2025
a05eb23
refactor default modules: move scheduleTimer to one place (#3837)
khassel Jul 10, 2025
931fe55
refactor: optimize system information logging (#3843)
KristjanESPERANTO Jul 12, 2025
7f8935a
refactor: simplify jest config (#3844)
KristjanESPERANTO Jul 13, 2025
02e76da
refactor: extract constants for weather electron tests (#3845)
KristjanESPERANTO Jul 14, 2025
54752f1
replace `console` with `Log` in calendar `debug.js` (#3846)
khassel Jul 15, 2025
e7b669a
e2e: decrease stop app waitTime (#3847)
khassel Jul 16, 2025
3fa2b96
cleanup and try to stabilize weather e2e tests (#3848)
khassel Jul 20, 2025
e34ef0c
update dependencies (#3849)
khassel Jul 22, 2025
839d074
Update dependencies (#3857)
rejas Aug 11, 2025
0ca7d23
update github actions (#3858)
rejas Aug 12, 2025
1b31cf1
Thoroughly check for precipitationAmount values in weathergov provide…
rejas Aug 16, 2025
83d15aa
tests: add `setupDOMEnvironment` helper function to eliminate repetit…
KristjanESPERANTO Aug 19, 2025
76da0aa
Make `User-Agent` configurable (#3255)
m-idler Aug 27, 2025
787fbda
tests: update jest snapshot url (#3861)
khassel Aug 27, 2025
483d3cd
Fix limitdays regression (#3863)
sdetweil Aug 28, 2025
3387bf8
fix regression #3841 (#3865)
sdetweil Aug 28, 2025
eb71942
fix for #3380, socket.io timeout closure (#3862)
sdetweil Aug 28, 2025
4c0a468
[tests] refactor translation tests (#3866)
KristjanESPERANTO Aug 28, 2025
fad8bba
test: add alert module tests for different `welcome_message` configur…
KristjanESPERANTO Aug 28, 2025
f8679b6
[weather] use 'apparent_temperature' in openmeteos data for feelsLike…
rejas Aug 30, 2025
25efe42
Update feels_like temperature formula (#3869)
rejas Sep 1, 2025
6f4eab9
[core] bump dependencies into september (#3872)
rejas Sep 1, 2025
93d5df8
update electron to v38 (#3876)
khassel Sep 3, 2025
be957af
bump minimal node version to v22.18.0 (#3877)
khassel Sep 4, 2025
d277a27
Bump github actions and dependencies (#3882)
rejas Sep 8, 2025
31bafc3
update default icon for calendars (#3879)
rejas Sep 8, 2025
b1865d8
refactor: use global.root_path instead relative paths (#3883)
khassel Sep 9, 2025
2481bc6
revert changes breaking `node --run config:check` (#3885)
khassel Sep 10, 2025
3260b9d
add test for config:check (#3886)
khassel Sep 11, 2025
08d29c3
Add Prettier plugin for Nunjuck templates (#3887)
rejas Sep 11, 2025
d81386f
chore: use `prettier --write --ignore-unknown` in `lint-staged` to av…
KristjanESPERANTO Sep 11, 2025
aac85bb
improve config check tests (#3889)
khassel Sep 11, 2025
fb2aa43
feat: add clear log for occupied port at startup (#3890)
KristjanESPERANTO Sep 13, 2025
777b49c
chore: update dependencies (#3891)
KristjanESPERANTO Sep 15, 2025
a49fbed
[weather] better null value handling for weather type (#3892)
rejas Sep 16, 2025
e886821
Fix for envcanada Provider to use new Environment Canada weather data…
Crazylegstoo Sep 17, 2025
fbca0a0
[layout] update styles for weather and calendar (#3894)
rejas Sep 17, 2025
1f2d1b9
update jsdoc and other deps (#3896)
khassel Sep 23, 2025
593a4b9
Prepare Release 2.33.0 (#3902)
KristjanESPERANTO Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/automated-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ jobs:
timeout-minutes: 15
steps:
- name: "Checkout code"
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: "Use Node.js"
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: lts/*
cache: "npm"
Expand All @@ -38,16 +38,16 @@ jobs:
timeout-minutes: 30
strategy:
matrix:
node-version: [22.14.0, 22.x, 24.x]
node-version: [22.18.0, 22.x, 24.x]
steps:
- name: Install electron dependencies and labwc
run: |
sudo apt-get update
sudo apt-get install -y libnss3 libasound2t64 labwc
- name: "Checkout code"
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: "Use Node.js ${{ matrix.node-version }}"
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: ${{ matrix.node-version }}
check-latest: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dep-review.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: "Checkout code"
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: "Dependency Review"
uses: actions/dependency-review-action@v4
6 changes: 3 additions & 3 deletions .github/workflows/electron-rebuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.14.0, 22.x, 24.x]
node-version: [22.18.0, 22.x, 24.x]
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: "Use Node.js ${{ matrix.node-version }}"
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: ${{ matrix.node-version }}
check-latest: true
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/spellcheck.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
ref: develop
- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: lts/*
check-latest: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/stale.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
- uses: actions/stale@v10
with:
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."
days-before-issue-stale: 60
Expand Down
64 changes: 59 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,59 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

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

## [2.33.0] - 2025-10-01

Thanks to: @Crazylegstoo, @dathbe, @m-idler, @plebcity, @khassel, @KristjanESPERANTO, @rejas and @sdetweil!

> ⚠️ This release needs nodejs version `v22.18.0 or higher`

### Added

- Add configuration option for `User-Agent`, used by calendar & news module (#3255)
- [linter] Add prettier plugin for nunjuck templates (#3887)
- [core] Add clear log for occupied port at startup (#3890)

### Changed

- [clock] Add CSS to prevent line breaking of sunset/sunrise time display (#3816)
- [core] Enhance system information logging format and include additional env and RAM details (#3839, #3843)
- [refactor] Add new file `js/module_functions.js` to move code used in several modules to one place (#3837)
- [refactor] Use global.root_path where possible and add tests for config:check (#3883, #3885, #3886, #3889)
- [tests] refactor: simplify jest config file (#3844)
- [tests] refactor: extract constants for weather electron tests (#3845)
- [tests] refactor: add `setupDOMEnvironment` helper function to eliminate repetitive JSDOM setup code (#3860)
- [tests] replace `console` with `Log` in calendar `debug.js` to avoid exception in eslint config (#3846)
- [tests] speed up e2e tests, cleanup and stabilize weather e2e tests, update snapshot url (#3847, #3848, #3861)
- [tests] refactor translation tests (#3866)
- Remove `sinon` dependency in favor of Jest native mocking
- Unify test helper functions across translation test suites
- Rename `setupDOMEnvironment` to `createTranslationTestEnvironment` for consistency
- Simplify DOM setup by removing unnecessary Promise/async patterns
- Avoid potential port conflicts by using port 3001 for translator unit tests
- Improve test reliability and maintainability
- [tests] add alert module tests for different welcome_message configurations (#3867)
- [lint-staged] use `prettier --write --ignore-unknown` in `lint-staged` to avoid errors on unsupported files (#3888)

### Updated

- [calendar] Update defaultSymbol name and also the link to the icon search site (#3879)
- [core] Update dependencies including electron to v38 as well as github actions (#3831, #3849, #3857, #3858, #3872, #3876, #3882, #3891, #3896)
- [weather] Update feels_like temperature calculation formula (#3869)
- [weather] Update null value handling for weather type (#3892)
- [layout] Update styles for weather and calendar (#3894)

### Fixed

- [calendar] Fixed broken unittest that only broke on the 1st of July and 1st of january (#3830)
- [clock] Fixed missing icons when no other modules with icons is loaded (#3834)
- [weather] Fixed handling of empty values in weathergov providers handling of precipitationAmount (#3859)
- [calendar] Fix regression handling of limit days (#3840)
- [calendar] Fixed regression of calendarfetcherutils.shouldEventBeExcluded (#3841)
- [core] Fixed socket.io timeout when server is slow to send notification, notification lost at client (#3380)
- [tests] refactor AnimateCSS tests after jsdom 27 upgrade (#3891)
- [weather] Use `apparent_temperature` data from openmeteo's hourly weather for current feelsLikeTemp (#3868).
- [weather] Updated envcanada Provider to use new database/URL schema for accessing weather data (#3878).

## [2.32.0] - 2025-07-01

Thanks to: @bughaver, @bugsounet, @khassel, @KristjanESPERANTO, @plebcity, @rejas, @sdetweil.
Expand Down Expand Up @@ -260,7 +313,7 @@ For more info, please read the following post: [A New Chapter for MagicMirror: T
### Added

- Output of system information to the console for troubleshooting (#3328 and #3337), ignore errors under aarch64 (#3349)
- [core] Add `eslint-plugin-package-json` to lint the `package.json` files (#3368)
- [linter] Add `eslint-plugin-package-json` to lint the `package.json` files (#3368)
- [weather] `showHumidity` config is now a string describing where to show this element. Supported values: "wind", "temp", "feelslike", "below", "none". (#3330)
- electron-rebuild test suite for electron and 3rd party modules compatibility (#3392)
- Create MM² icon and attach it to electron process (#3407)
Expand All @@ -277,7 +330,7 @@ For more info, please read the following post: [A New Chapter for MagicMirror: T
- Update translations for estonian (#3371)
- Update electron to v29 and update other dependencies
- [calendar] fullDay events over several days now show the left days from the first day on and 'today' on the last day
- Update layout of current weather indoor values
- [weather] Update layout of current weather indoor values

### Fixed

Expand Down Expand Up @@ -422,7 +475,7 @@ Special thanks to @khassel, @rejas and @sdetweil for taking over most (if not al
- Added UV Index to hourly and current Weather, with support for Openmeteo
- Added tests for serveronly
- Set Timezone `Europe/Berlin` in unit tests (needed for new formatTime tests)
- Added no-param-reassign eslint rule and fix warnings
- [linter] Added no-param-reassign eslint rule and fix warnings
- [updatenotification] Added `sendUpdatesNotifications` feature. Broadcast update with `UPDATES` notification to other modules
- [updatenotification] Allow force scanning with `SCAN_UPDATES` notification from other modules
- Added per-calendar fetchInterval
Expand Down Expand Up @@ -687,7 +740,7 @@ Special thanks to the following contributors: @AmpioRosso, @eouia, @fewieden, @j
### Fixed

- Fixed wrong file `kr.json` to `ko.json`. Use language code 'ko' instead of 'kr' for Korean language.
- Fixed `feels_like` data from openweathermap's current weather being ignored (#2678).
- [weather] Fixed `feels_like` data from openweathermap's current weather being ignored (#2678).
- Fixed chaotic newsfeed display after network connection loss thanks to @jalibu (#2638).
- Fixed incorrect time zone correction of recurring full day events (#2632 and #2634).
- Fixed e2e tests by increasing testTimeout.
Expand Down Expand Up @@ -725,7 +778,7 @@ Special thanks to the following contributors: @apiontek, @eouia, @jupadin, @khas
- Actually test all js and css files when lint script is run.
- Updated jsdocs and print warnings during testing too.
- Updated weathergov provider to try fetching not just current, but also forecast, when API URLs available.
- Refactored clock layout.
- [clock] Refactored clock layout.
- Refactored methods from weather-providers into weatherobject (isDaytime, updateSunTime).
- Use of `logger.js` in jest tests.
- Run prettier over all relevant files.
Expand Down Expand Up @@ -1771,6 +1824,7 @@ It includes (but is not limited to) the following features:

This was part of the blogpost: [https://michaelteeuw.nl/post/83916869600/magic-mirror-part-vi-production-of-the](https://michaelteeuw.nl/post/83916869600/magic-mirror-part-vi-production-of-the)

[2.33.0]: https://github.com/MagicMirrorOrg/MagicMirror/compare/v2.32.0...v2.33.0
[2.32.0]: https://github.com/MagicMirrorOrg/MagicMirror/compare/v2.31.0...v2.32.0
[2.31.0]: https://github.com/MagicMirrorOrg/MagicMirror/compare/v2.30.0...v2.31.0
[2.30.0]: https://github.com/MagicMirrorOrg/MagicMirror/compare/v2.29.0...v2.30.0
Expand Down
2 changes: 1 addition & 1 deletion Collaboration.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Are done by
- [ ] test `prep-release` branch
- [ ] update `CHANGELOG.md`
- [ ] add all contributor names: `...`
- [ ] add min. node version: > ⚠️ This release needs nodejs version `v22.14.0` or higher
- [ ] add min. node version: > ⚠️ This release needs nodejs version `v22.18.0` or higher
- [ ] check release link at the bottom of the file
- [ ] commit and push all changes
- [ ] create pull request from `prep-release` to `develop` branch with title `Prepare Release 2.xx.0`
Expand Down
4 changes: 4 additions & 0 deletions cspell.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"browserwindow",
"bryanzzhu",
"btoconnor",
"bughaver",
"bugsounet",
"buxxi",
"byday",
Expand All @@ -44,6 +45,7 @@
"darksky",
"dateheader",
"dateheaders",
"dathbe",
"davide",
"DAYAFTERTOMORROW",
"DAYBEFOREYESTERDAY",
Expand Down Expand Up @@ -175,6 +177,7 @@
"oraclesean",
"oscarb",
"philnagel",
"plebcity",
"Português",
"PRECIP",
"Problema",
Expand Down Expand Up @@ -233,6 +236,7 @@
"Weatherflow",
"weatherforecast",
"weathergov",
"weathericon",
"weathericons",
"weatherobject",
"weatherutils",
Expand Down
12 changes: 12 additions & 0 deletions css/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -252,3 +252,15 @@ sup {
.region .container.hidden {
display: none;
}

.region.left .flex {
justify-content: flex-start;
}

.region.center .flex {
justify-content: center;
}

.region.right .flex {
justify-content: flex-end;
}
7 changes: 3 additions & 4 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import globals from "globals";
import {flatConfigs as importX} from "eslint-plugin-import-x";
import jest from "eslint-plugin-jest";
import js from "@eslint/js";
import jsdoc from "eslint-plugin-jsdoc";
import jsdocPlugin from "eslint-plugin-jsdoc";
import packageJson from "eslint-plugin-package-json";
import stylistic from "@stylistic/eslint-plugin";

Expand All @@ -23,8 +23,8 @@ export default defineConfig([
moment: "readonly"
}
},
plugins: {js, jsdoc, stylistic},
extends: [importX.recommended, jest.configs["flat/recommended"], "js/recommended", jsdoc.configs["flat/recommended"], "stylistic/all"],
plugins: {js, stylistic},
extends: [importX.recommended, jest.configs["flat/recommended"], "js/recommended", jsdocPlugin.configs["flat/recommended"], "stylistic/all"],
rules: {
"@stylistic/array-element-newline": ["error", "consistent"],
"@stylistic/arrow-parens": ["error", "always"],
Expand Down Expand Up @@ -88,7 +88,6 @@ export default defineConfig([
files: ["**/*.js"],
ignores: [
"clientonly/index.js",
"modules/default/calendar/debug.js",
"js/logger.js",
"tests/**/*.js"
],
Expand Down
65 changes: 35 additions & 30 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -1,32 +1,37 @@
module.exports = async () => {
return {
verbose: true,
testTimeout: 20000,
testSequencer: "<rootDir>/tests/utils/test_sequencer.js",
projects: [
{
displayName: "unit",
globalSetup: "<rootDir>/tests/unit/helpers/global-setup.js",
moduleNameMapper: {
logger: "<rootDir>/js/logger.js"
},
testMatch: ["**/tests/unit/**/*.[jt]s?(x)"],
testPathIgnorePatterns: ["<rootDir>/tests/unit/mocks", "<rootDir>/tests/unit/helpers"]
const config = {
verbose: true,
testTimeout: 20000,
testSequencer: "<rootDir>/tests/utils/test_sequencer.js",
projects: [
{
displayName: "unit",
globalSetup: "<rootDir>/tests/unit/helpers/global-setup.js",
moduleNameMapper: {
logger: "<rootDir>/js/logger.js"
},
{
displayName: "electron",
testMatch: ["**/tests/electron/**/*.[jt]s?(x)"],
testPathIgnorePatterns: ["<rootDir>/tests/electron/helpers"]
},
{
displayName: "e2e",
testMatch: ["**/tests/e2e/**/*.[jt]s?(x)"],
modulePaths: ["<rootDir>/js/"],
testPathIgnorePatterns: ["<rootDir>/tests/e2e/helpers", "<rootDir>/tests/e2e/mocks"]
}
],
collectCoverageFrom: ["./clientonly/**/*.js", "./js/**/*.js", "./modules/default/**/*.js", "./serveronly/**/*.js"],
coverageReporters: ["lcov", "text"],
coverageProvider: "v8"
};
testMatch: ["**/tests/unit/**/*.[jt]s?(x)"],
testPathIgnorePatterns: ["<rootDir>/tests/unit/mocks", "<rootDir>/tests/unit/helpers"]
},
{
displayName: "electron",
testMatch: ["**/tests/electron/**/*.[jt]s?(x)"],
testPathIgnorePatterns: ["<rootDir>/tests/electron/helpers"]
},
{
displayName: "e2e",
testMatch: ["**/tests/e2e/**/*.[jt]s?(x)"],
modulePaths: ["<rootDir>/js/"],
testPathIgnorePatterns: ["<rootDir>/tests/e2e/helpers", "<rootDir>/tests/e2e/mocks"]
}
],
collectCoverageFrom: [
"<rootDir>/clientonly/**/*.js",
"<rootDir>/js/**/*.js",
"<rootDir>/modules/default/**/*.js",
"<rootDir>/serveronly/**/*.js"
],
coverageReporters: ["lcov", "text"],
coverageProvider: "v8"
};

module.exports = config;
18 changes: 9 additions & 9 deletions js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,26 @@ const path = require("node:path");
const envsub = require("envsub");
const Log = require("logger");

// global absolute root path
global.root_path = path.resolve(`${__dirname}/../`);

const Server = require(`${__dirname}/server`);
const Utils = require(`${__dirname}/utils`);
const defaultModules = require(`${__dirname}/../modules/default/defaultmodules`);
const { getEnvVarsAsObj } = require(`${__dirname}/server_functions`);

const defaultModules = require(`${global.root_path}/modules/default/defaultmodules`);
// used to control fetch timeout for node_helpers
const { setGlobalDispatcher, Agent } = require("undici");
const { getEnvVarsAsObj } = require("#server_functions");
// common timeout value, provide environment override in case
const fetch_timeout = process.env.mmFetchTimeout !== undefined ? process.env.mmFetchTimeout : 30000;

// Get version number.
global.version = require(`${__dirname}/../package.json`).version;
global.version = require(`${global.root_path}/package.json`).version;
global.mmTestMode = process.env.mmTestMode === "true";
Log.log(`Starting MagicMirror: v${global.version}`);

// Log system information.
Utils.logSystemInformation();

// global absolute root path
global.root_path = path.resolve(`${__dirname}/../`);
Utils.logSystemInformation(global.version);

if (process.env.MM_CONFIG_FILE) {
global.configuration_file = process.env.MM_CONFIG_FILE.replace(`${global.root_path}/`, "");
Expand Down Expand Up @@ -181,10 +181,10 @@ function App () {
const elements = module.split("/");
const moduleName = elements[elements.length - 1];
const env = getEnvVarsAsObj();
let moduleFolder = path.resolve(`${__dirname}/../${env.modulesDir}`, module);
let moduleFolder = path.resolve(`${global.root_path}/${env.modulesDir}`, module);

if (defaultModules.includes(moduleName)) {
const defaultModuleFolder = path.resolve(`${__dirname}/../modules/default/`, module);
const defaultModuleFolder = path.resolve(`${global.root_path}/modules/default/`, module);
if (process.env.JEST_WORKER_ID === undefined) {
moduleFolder = defaultModuleFolder;
} else {
Expand Down
Loading
Loading