Releases: MagicMirrorOrg/MagicMirror
Release list
v2.37.0
Release Notes
Thanks to: @angeldeejay, @egeekial, @khassel, @KristjanESPERANTO, @MikeBishop, @rejas
⚠️ This release needs nodejs version >=22.22.2 <23 || >=24 (no change to previous release)
Compare to previous Release v2.36.0
[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]
v2.36.0
Release Notes
Thanks to: @cgillinger, @khassel, @KristjanESPERANTO, @sonnyb9
⚠️ This release needs nodejs version >=22.21.1 <23 || >=24 (no change to previous release)
Compare to previous Release v2.35.0
This release falls outside the quarterly schedule. We opted for an early release due to:
- Security fix for the internal cors proxy
- API change of the weather provider smi
- Several bug fixes
Breaking Changes
The cors proxy is now disabled by default. If required, it must be explicitly enabled in the config.js file. See the documentation.
⚠️ Security
You can find several publicly accessible MagicMirror² instances.
This should never be done. Doing so makes your entire configuration, including secrets and API keys, publicly visible. Furthermore, it allows attackers to target the host; this is only prevented beginning with this release.
Public MagicMirror² instances should always run behind a reverse proxy with authentication.
[core]
- Prepare Release 2.36.0 (#4126)
- Allow HTTPFetcher to pass through 304 responses (#4120)
- fix(http-fetcher): fall back to reloadInterval after retries exhausted (#4113)
- config endpoint must handle functions in module configs (#4106)
- fix replaceSecretPlaceholder (#4104)
- restrict replaceSecretPlaceholder to cors with allowWhitelist (#4102)
- fix: prevent crash when config is undefined in socket handler (#4096)
- fix cors function for alpine linux (#4091)
- fix(cors): prevent SSRF via DNS rebinding (#4090)
- add option to disable or restrict cors endpoint (#4087)
- fix: prevent SSRF via /cors endpoint by blocking private/reserved IPs (#4084)
- chore: add permissions section to enforce pull-request rules workflow (#4079)
- update version for develop
[dependencies]
- update dependencies (#4124)
- chore: update dependencies (#4088)
- refactor: enable ESLint rule "no-unused-vars" and handle related issues (#4080)
[modules/newsfeed]
- fix(newsfeed): prevent duplicate parse error callback when using pipeline (#4083)
[modules/updatenotification]
- fix(updatenotification): harden git command execution + simplify checkUpdates (#4115)
- fix(tests): correct import path for git_helper module in updatenotification tests (#4078)
[modules/weather]
- fix(weather): use nearest openmeteo hourly data (#4123)
- fix(weather): avoid loading state after reconnect (#4121)
- weather: fix UV index display and add WeatherFlow precipitation (#4108)
- fix(weather): restore OpenWeatherMap v2.5 support (#4101)
- fix(weather): use stable instanceId to prevent duplicate fetchers (#4092)
- SMHI: migrate to SNOW1gv1 API (replace deprecated PMP3gv2) (#4082)
[testing]
v2.35.0
Release Notes
Thanks to: @angeldeejay, @in-voker, @JHWelch, @khassel, @KristjanESPERANTO, @rejas, @sdetweil
⚠️ This release needs nodejs version >=22.21.1 <23 || >=24 (no change to previous release)
Compare to previous Release v2.34.0
⚠️ We introduced some internal changes with this release, please read this forum post before upgrading!
[core]
- Prepare Release 2.35.0 (#4071)
- docs: add security policy and vulnerability reporting guidelines (#4069)
- refactor: simplify internal
require()calls (#4056) - allow environment variables in cors urls (#4033)
- fix cors proxy getting binary data (e.g. png, webp) (#4030)
- fix: correct secret redaction and optimize loadConfig (#4031)
- change loading config.js, allow variables in config.js and try to protect sensitive data (#4029)
- remove kioskmode (#4027)
- Add dark theme logo (#4026)
- move custom.css from css to config (#4020)
- move default modules from /modules/default to /defaultmodules (#4019)
- update node versions in workflows (#4018)
- [core] refactor: extract and centralize HTTP fetcher (#4016)
- fix systeminformation not displaying electron version (#4012)
- Update node-ical and support it's rrule-temporal changes (#4010)
- Change default start scripts from X11 to Wayland (#4011)
- refactor: unify favicon for index.html and Electron (#4006)
- [core] run systeminformation in subprocess so the info is always displayed (#4002)
- set next release dev number (#4000)
[dependencies]
- update dependencies (#4068)
- update dependencies incl. electron to v41 (#4058)
- chore: upgrade ESLint to v10 and fix newly surfaced issues (#4057)
- chore: update ESLint and plugins, simplify config, apply new rules (#4052)
- chore: update dependencies + add exports, files, and sideEffects fields to package.json (#4040)
- [core] refactor: enable ESLint rule require-await and handle detected issues (#4038)
- Update node-ical and other deps (#4025)
- chore: update dependencies (#4021)
- chore(eslint): migrate from eslint-plugin-vitest to @vitest/eslint-plugin and run rules only on test files (#4014)
- Update deps as requested by dependabot (#4008)
- update Collaboration.md and dependencies (#4001)
[logging]
- refactor: further logger clean-up (#4050)
- Fix Node.js v25 logging prefix and modernize logger (#4049)
[modules/calendar]
- fix(calendar): make showEnd behavior more consistent across time formats (#4059)
- test(calendar): fix hardcoded date in event shape test (#4055)
- [calendar] refactor: delegate event expansion to node-ical's expandRecurringEvent (#4047)
- calendar.js: remove useless hasCalendarURL function (#4028)
- fix(calendar): update to node-ical 0.23.1 and fix full-day recurrence lookup (#4013)
- fix(calendar): correct day-of-week for full-day recurring events across all timezones (#4004)
[modules/newsfeed]
- fix(newsfeed): fix full article view and add framing check (#4039)
- [newsfeed] refactor: migrate to centralized HTTPFetcher (#4023)
[modules/weather]
- fix(weather): fix openmeteo forecast stuck in the past (#4064)
- fix(weather): fix weathergov forecast day labels off by one (#4065)
- weather: fixes for templates (#4054)
- weather: add possibility to override njk's and css (#4051)
- Use getDateString in openmeteo (#4046)
- [weather] refactor: migrate to server-side providers with centralized HTTPFetcher (#4032)
- [weather] feat: add Weather API Provider (#4036)
[testing]
- chore: remove obsolete Jest config and unit test global setup (#4044)
- replace template_spec test with config_variables test (#4034)
- refactor(clientonly): modernize code structure and add comprehensive tests (#4022)
- Switch to undici Agent for HTTPS requests (#4015)
- chore: migrate CI workflows to ubuntu-slim for faster startup times (#4007)
v2.34.0
Release Notes
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
[core]
- Merge branch 'master' into develop
- 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=waylandflag 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:watchscript with automatic restart on file changes (#3920) - [check_config] refactor: improve error handling (#3927)
- refactor: replace
express-ipfilterwith lightweight custom middleware (#3917) - refactor: replace
module-aliasdependency with internal alias resolver (#3893) - Release 2.33.0 (#3903)
[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-arraysfor 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
repeatingCountTitleonly ifyearDiff> 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
loadComplimentFilemethod 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
XMLHttpRequestwithfetchand migrate e2e tests to Playwright (#3950) - [test] replace
node-libgpiodwithserialportin electron-rebuild workflow (#3945) - [ci] Add concurrency to automated tests workflow to cancel outdated runs (#3943)
- [tests] migrate from
jesttovitest(#3940)
v2.33.0
[2.33.0] - 2025-10-01
Thanks to: @Crazylegstoo, @dathbe, @m-idler, @plebcity, @khassel, @KristjanESPERANTO, @rejas and @sdetweil!
⚠️ This release needs nodejs versionv22.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.jsto 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
setupDOMEnvironmenthelper function to eliminate repetitive JSDOM setup code (#3860) - [tests] replace
consolewithLogin calendardebug.jsto 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
sinondependency in favor of Jest native mocking - Unify test helper functions across translation test suites
- Rename
setupDOMEnvironmenttocreateTranslationTestEnvironmentfor 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
- Remove
- [tests] add alert module tests for different welcome_message configurations (#3867)
- [lint-staged] use
prettier --write --ignore-unknowninlint-stagedto 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_temperaturedata from openmeteo's hourly weather for current feelsLikeTemp (#3868). - [weather] Updated envcanada Provider to use new database/URL schema for accessing weather data (#3878).
v2.32.0
[2.32.0] - 2025-07-01
Thanks to: @bughaver, @bugsounet, @khassel, @KristjanESPERANTO, @plebcity, @rejas, @sdetweil.
⚠️ This release needs nodejs versionv22.14.0 or higher
⚠️ This release usesexpress v5which has breaking changes that may cause problems with third-party modules
Added
- [config] Allow to change module order for final renderer (or dynamically with CSS): Feature
orderin config (#3762) - [clock] Added option 'disableNextEvent' to hide next sun event (#3769)
- [clock] Implement short syntax for clock week (#3775)
Changed
- [refactor] Simplify module loading process (#3766)
- Use
node --runinstead ofnpm run(#3764) and adaptstart:devscript (#3773) - [workflow] Run linter and spellcheck with LTS node version (#3767)
- [workflow] Split "Run test" step into two steps for more clarity (#3767)
- [linter] Review linter setup (#3783)
- Fix command to lint markdown in
CONTRIBUTING.md - Re-activate JSDoc linting and fix linting issues
- Refactor ESLint config to use
defineConfigandglobalIgnores - Replace
eslint-plugin-importwitheslint-plugin-import-x - Switch Stylelint config to flat format and simplify Stylelint scripts
- Fix command to lint markdown in
- [workflow] Replace Node.js version v23 with v24 (#3770)
- [refactor] Replace deprecated constants
fs.F_OKandfs.R_OK(#3789) - [refactor] Replace
ansiswith built-in functionutil.styleText(#3793) - [core] Integrate stuff from
vendorandfontsfolders into mainpackage.json, simplifies install and maintaining dependencies (#3795, #3805) - [l10n] Complete translations (with the help of translation tools) (#3794)
- [refactor] Refactored
calendarfetcherutilsin Calendar module to handle timezones better (#3806)- Removed as many of the date conversions as possible
- Use
moment-timezonewhen calculating recurring events, this will fix problems from the past with offsets and DST not being handled properly - Added some tests to test the behavior of the refactored methods to make sure the correct event dates are returned
- [linter] Enable ESLint rule
no-consoleand replaceconsolewithLogin some files (#3810) - [tests] Review and refactor translation tests (#3792)
Fixed
- [fix] Handle spellcheck issues (#3783)
- [calendar] fix fullday event rrule until with timezone offset (#3781)
- [feat] Add rule
no-undefin config file validation to fix #3785 (#3786) - [fonts] Fix
roboto.cssto avoid error messageUnknown descriptor 'var(' in @font-face rule.in firefox console (#3787) - [tests] Fix and refactor e2e test
Same keysintranslations_spec.js(#3809) - [tests] Fix e2e tests newsfeed and calendar to exit without open handles (#3817)
Updated
v2.31.0 - 2025-04-01
Thanks to: @Developer-Incoming, @eltociear, @geraki, @khassel, @KristjanESPERANTO, @MagMar94, @mixasgr, @n8many, @OWL4C, @rejas, @savvadam, @sdetweil.
⚠️ This release needs nodejs versionv22.14.0 or higher
Added
- Add CSS support to the digital clock hour/minute/second through the use of the classes
clock-hour-digital,clock-minute-digital, andclock-second-digital. - Add Arabic (#3719) and Esperanto translation.
- Mark option
secondsColoras deprecated in clock module. - Add Greek translation to Alerts module.
- [newsfeed] Add specific ignoreOlderThan value (override) per feed (#3360)
- [weather] Added option Humidity to hourly View
- [weather] Added option to hide hourly entries that are Zero, hiding the entire column if empty.
- [updatenotification] Added option to iterate over modules directory instead using modules defined in
config.js(#3739)
Changed
- [core] starting clientonly now checks for needed env var
WAYLAND_DISPLAYorDISPLAYand starts electron with needed parameters (if both are set wayland is used) (#3677) - [core] Optimize systeminformation calls and output (#3689)
- [core] Add issue templates for feature requests and bug reports (#3695)
- [core] Adapt
start:x11:devscript - [weather/yr] The Yr weather provider now enforces a minimum
updateIntervalof 600 000 ms (10 minutes) to comply with the terms of service. If a lower value is set, it will be automatically increased to this minimum. - [weather/weatherflow] Fixed icons and added hourly support as well as UV, precipitation, and location name support.
- [workflow] Run
sudo apt-get updatebefore installing packages to avoid install errors - [workflow] Exclude issues with label
ready (coming with next release)from stale job
Removed
Updated
- [core] Update requirements and dependencies including electron to v35 and formatting (#3593, #3693, #3717)
- [core] Update prettier, ESLint and simplify config
- Update Greek translation
Fixed
- [calendar] Fix clipping events being broadcast (#3678)
- [tests] Fix Electron tests by running them under new github image ubuntu-24.04, replace xserver with labwc, running under xserver and labwc depending on env variable WAYLAND_DISPLAY is set (#3676)
- [calendar] Fix arrayed symbols, #3267, again, add testcase, add testcase for #3678
- [weather] Fix wrong weatherCondition name in openmeteo provider which lead to n/a icon (#3691)
- [core] Fix wrong port in log message when starting server only (#3696)
- [calendar] Fix NewYork event processed on system in Central timezone shows wrong time #3701
- [weather/yr] The Yr weather provider is now able to recover from bad API responses instead of freezing (#3296)
- [compliments] Fix evening events being shown during the day (#3727)
- [weather] Fixed minor spacing issues when using UV Index in Hourly
- [workflow] Fix command to run spellcheck
v2.30.0 - 2025-01-01 Another New year with exciting changes
Thanks to: @xsorifc28, @HeikoGr, @bugsounet, @khassel, @KristjanESPERANTO, @rejas, @sdetweil.
⚠️ This release needs nodejs versionv20orv22 or higher, minimum version isv20.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.htmlto 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-importnow that it supports ESLint v9 (#3586) - [linter] Re-activate
eslint-plugin-package-jsonto lintpackage.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-ptyanddrivelistfrom rebuilded test (#3575) - [deps] Remove
@eslint/jsdependency. Already installed witheslintin deep (#3636)
Updated
- [repo] Reactivate
stale.yamlas 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-cxmjindep-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
basePathwherelocation.hostis 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
moduleFolderanddefaultModuleFolderin 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
Summer is over
[2.29.0] - 2024-10-01
Thanks to: @bugsounet, @dkallen78, @jargordon, @khassel, @KristjanESPERANTO, @MarcLandis, @rejas, @ryan-d-williams, @sdetweil, @skpanagiotis.
⚠️ This release needs nodejs versionv20orv22, minimum version isv20.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:spellingand handle spelling issues (#3544) - [core] removed
config.paths.vendor(could not work becausevendoris hardcoded inindex.html), renamedconfig.paths.modulestoconfig.foreignModulesDir, added variableMM_CUSTOMCSS_FILEwhich - if set - overridesconfig.customCss, added variableMM_MODULES_DIRwhich - if set - overridesconfig.foreignModulesDir, added test forMM_MODULES_DIR(#3530) - [core] elements are now removed from
index.htmlwhen loading script or stylesheet files fails - [core] Added
MODULE_DOM_UPDATEDnotification each time the DOM is re-rendered viaupdateDom(#3534) - [tests] added minimal needed node version to tests (currently v20.9.0) to avoid releases with wrong node version info
- [tests] Added
node-libgpiodlibrary 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
onofflibrary from electron-rebuild tests (#3563)
Updated
- [weather] Updated
apiVersiondefault from 2.5 to 3.0 (#3424) - [core] Updated dependencies including stylistic-eslint
- [core] nail down
node-icalversion to0.18.0with exceptionallow-ghsas: GHSA-8hc4-vh64-cxmjindep-review.yaml(which should removed after nextnode-icalupdate) - [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-unicornby@eslint/js - [core] fix discovering module positions twice after #3450
Fixed
- Fixed
checksbadge 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.jswhen linting (this file is created at runtime) - [calendar] fixed sliceMultiDayEvents showing previous day without config enabled
Weather Fixes in Summer Heat
[2.28.0] - 2024-07-01
Thanks to: @btoconnor, @bugsounet, @JasonStieber, @khassel, @kleinmantara and @WallysWellies.
⚠️ This release needs nodejs version >= v20.9.0
Added
- [calendar] Added config option "showEndsOnlyWithDuration" for default calendar
- [compliments] Added
specialDayUniqueconfig option, defaults tofalse(#3465) - [weather] Provider weathergov: Use
precipitationLast3HoursifprecipitationLastHourisnull(#3124)
Removed
- [tests] delete node v18 support (#3462)
Updated
- [core] Update dependencies including electron to v31
- [core] use node >= v20 (#3462)
- [core] Update
config.js.sampleto use openmeteo as weather provider which needs no api key - [tests] Use latest@version of node for
automated-tests.yaml(#3483) - [updatenotification] Avoid using pm2 when running in docker container
Fixed
- [core] Fixed crash possibility if
module: <name>is not defined and onpostion: <positon>mistake (#3445) - [weather] Fixed precipitationProbability in forecast for provider openmeteo (#3446)
- [weather] Fixed type=daily for provider openmeteo having no data when running after 23:00 (#3449)
- [weather] Fixed type=daily for provider openmeteo showing nightly icons in forecast when current time is "nightly" (#3458)
- [weather] Fixed forecast and hourly weather for provider openmeteo to use real temperatures, not apparent temperatures (#3466)
- [tests] Fixed e2e tests running in docker container which needs
address: "0.0.0.0"(#3479)