Skip to content

Releases: MagicMirrorOrg/MagicMirror

v2.37.0

Choose a tag to compare

@rejas rejas released this 01 Jul 20:02
4b4a595

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]

[modules/calendar]

  • perf(calendar): pre-filter ICS data before parsing (#4168)
  • perf(calendar): use async ICS parsing to avoid blocking event loop (#4143)

[modules/newsfeed]

  • [newsfeed] add allowBasicHtmlTags option for basic emphasis (#4176)

[modules/updatenotification]

  • fix(updatenotification): don't spawn a child process when running under PM2 (#4166)
  • fix(updatenotification): use process.argv[0] as restart binary (#4163)
  • fix(updatenotification): preserve start mode on restart (#4156)
  • fix(updatenotification): fix ref diff parsing for fetch --dry-run (#4138)
  • refactor(updatenotification): replace pm2 usage with node logic (#4134)

[modules/weather]

  • feat(weather): add Buienradar provider (#4164)

[testing]

  • remove warning in unit tests (for nodejs >= v25) (#4149)
  • polish HTTP 304 docs/test/handling (#4129)

v2.36.0

Choose a tag to compare

@github-actions github-actions released this 30 Apr 20:50
fb41d24

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]

  • ci(actions): set explicit token permissions (#4114)
  • fix(http_fetcher): use undici.fetch when dispatcher is present (#4097)
  • ci(codeql): also scan develop branch on push and PR (#4086)
  • refactor: replace implicit global config with explicit global.config (#4085)

v2.35.0

Choose a tag to compare

@github-actions github-actions released this 01 Apr 10:36
d05ea75

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

Choose a tag to compare

@github-actions github-actions released this 01 Jan 14:48
b742e83

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=wayland flag 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:watch script with automatic restart on file changes (#3920)
  • [check_config] refactor: improve error handling (#3927)
  • refactor: replace express-ipfilter with lightweight custom middleware (#3917)
  • refactor: replace module-alias dependency 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-arrays for 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 repeatingCountTitle only if yearDiff > 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 loadComplimentFile method 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 XMLHttpRequest with fetch and migrate e2e tests to Playwright (#3950)
  • [test] replace node-libgpiod with serialport in electron-rebuild workflow (#3945)
  • [ci] Add concurrency to automated tests workflow to cancel outdated runs (#3943)
  • [tests] migrate from jest to vitest (#3940)

v2.33.0

Choose a tag to compare

@KristjanESPERANTO KristjanESPERANTO released this 30 Sep 16:18
b0c5924

[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).

v2.32.0

Choose a tag to compare

@khassel khassel released this 30 Jun 22:12
62b0f7f

[2.32.0] - 2025-07-01

Thanks to: @bughaver, @bugsounet, @khassel, @KristjanESPERANTO, @plebcity, @rejas, @sdetweil.

⚠️ This release needs nodejs version v22.14.0 or higher
⚠️ This release uses express v5 which 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 order in 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 --run instead of npm run (#3764) and adapt start:dev script (#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 defineConfig and globalIgnores
    • Replace eslint-plugin-import with eslint-plugin-import-x
    • Switch Stylelint config to flat format and simplify Stylelint scripts
  • [workflow] Replace Node.js version v23 with v24 (#3770)
  • [refactor] Replace deprecated constants fs.F_OK and fs.R_OK (#3789)
  • [refactor] Replace ansis with built-in function util.styleText (#3793)
  • [core] Integrate stuff from vendor and fonts folders into main package.json, simplifies install and maintaining dependencies (#3795, #3805)
  • [l10n] Complete translations (with the help of translation tools) (#3794)
  • [refactor] Refactored calendarfetcherutils in Calendar module to handle timezones better (#3806)
    • Removed as many of the date conversions as possible
    • Use moment-timezone when 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-console and replace console with Log in 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-undef in config file validation to fix #3785 (#3786)
  • [fonts] Fix roboto.css to avoid error message Unknown descriptor 'var(' in @font-face rule. in firefox console (#3787)
  • [tests] Fix and refactor e2e test Same keys in translations_spec.js (#3809)
  • [tests] Fix e2e tests newsfeed and calendar to exit without open handles (#3817)

Updated

  • [core] Update dependencies including electron to v36 (#3774, #3788, #3811, #3804, #3815, #3823)
  • [core] Update package type to commonjs
  • [logger] Review factory code part: use switch/case instead of if/else if (#3812)

v2.31.0 - 2025-04-01

Choose a tag to compare

@rejas rejas released this 01 Apr 18:12
39a614e

Thanks to: @Developer-Incoming, @eltociear, @geraki, @khassel, @KristjanESPERANTO, @MagMar94, @mixasgr, @n8many, @OWL4C, @rejas, @savvadam, @sdetweil.

⚠️ This release needs nodejs version v22.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, and clock-second-digital.
  • Add Arabic (#3719) and Esperanto translation.
  • Mark option secondsColor as 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_DISPLAY or DISPLAY and 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:dev script
  • [weather/yr] The Yr weather provider now enforces a minimum updateInterval of 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 update before 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

Choose a tag to compare

@sdetweil sdetweil released this 01 Jan 14:30
c24de64

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-importnow 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

Summer is over

Choose a tag to compare

@khassel khassel released this 30 Sep 22:04
94c3c69

[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

Weather Fixes in Summer Heat

Choose a tag to compare

@khassel khassel released this 30 Jun 21:48
53fc814

[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 specialDayUnique config option, defaults to false (#3465)
  • [weather] Provider weathergov: Use precipitationLast3Hours if precipitationLastHour is null (#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.sample to 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 on postion: <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)