Skip to content

Releases: MagicMirrorOrg/MagicMirror

Summer is over

30 Sep 22:04
94c3c69
Compare
Choose a tag to compare

[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

30 Jun 21:48
53fc814
Compare
Choose a tag to compare

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

Community's First Release!

01 Apr 20:17
5ea8a34
Compare
Choose a tag to compare

[2.27.0] - 2024-04-01

Thanks to: @bugsounet, @crazyscot, @illimarkangur, @jkriegshauser, @khassel, @KristjanESPERANTO, @Paranoid93, @rejas, @sdetweil and @vppencilsharpener.

This release marks the first release without Michael Teeuw (@MichMich). A very special thanks to him for creating MagicMirror and leading the project for so many years.

For more info, please read the following post: A New Chapter for MagicMirror: The Community Takes the Lead.

Added

  • Output of system information to the console for troubleshooting (#3328 and #3337), ignore errors under aarch64 (#3349)
  • [chore] 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)

Updated

  • Update updatenotification (update_helper.js): Recode with pm2 library (#3332)
  • Removing lodash dependency by replacing merge by spread operator (#3339)
  • Use node prefix for build-in modules (#3340)
  • Rework logging colors (#3350)
  • Update pm2 to v5.3.1 with no allow-ghsas (#3364)
  • [chore] Update husky and let lint-staged fix ESLint issues
  • [chore] Update dependencies including electron to v29 (#3357) and node-ical
  • 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

Fixed

  • Correct apibase of weathergov weatherprovider to match documentation (#2926)
  • Worked around several issues in the RRULE library that were causing deleted calender events to still show, some
    initial and recurring events to not show, and some event times to be off an hour. (#3291)
  • Skip changelog requirement when running tests for dependency updates (#3320)
  • Display precipitation probability when it is 0% instead of blank/empty (#3345)
  • [newsfeed] Suppress unsightly animation cases when there are 0 or 1 active news items (#3336)
  • [newsfeed] Always compute the feed item URL using the same helper function (#3336)
  • Ignore all custom css files (#3359)
  • [newsfeed] Fix newsfeed stall issue introduced by #3336 (#3361)
  • Changed log.debug to log.log in app.js where logLevel is not set because config is not loaded at this time (#3353)
  • [calendar] deny fetch interval < 60000 and set 60000 in this case (prevent fetch loop failed) (#3382)
  • added message in case where config.js is missing the module.export line PR #3383
  • Fixed an issue where recurring events could extend past their recurrence end date (#3393)
  • Don't display any npm WARN <....> on install (#3399)
  • Fixed move suncalc dependency to production from dev, as it is used by clock module
  • [compliments] Fix mirror not responding anymore when no compliments are to be shown (#3385)
  • [chore] Fixed mastermerge workflow (#3415)

Deleted

  • Unneeded file headers (#3358)
  • Removed codecov.yaml

Michael's Last Release

01 Jan 14:39
8c0e7db
Compare
Choose a tag to compare

[2.26.0] - 01-01-2024

Thanks to: @bnitkin, @bugsounet, @dependabot, @jkriegshauser, @kaennchenstruggle, @KristjanESPERANTO and @Ybbet.

Special thanks to @khassel, @rejas and @sdetweil for taking over most (if not all) of the work on this release as project collaborators. This version would not be there without their effort. Thank you guys! You are awesome!

This release also marks the latest release by Michael Teeuw. For more info, please read the following post: A New Chapter for MagicMirror: The Community Takes the Lead.

Added

  • Added update notification updater (for 3rd party modules)
  • Added node 21 to the test matrix
  • Added transform object to calendar:customEvents
  • Added ESLint rules for jest (including jest/expect-expect and jest/no-done-callback)

Removed

  • Removed Codecov workflow (not working anymore, other workflow required) (#3107)
  • Removed titleReplace from calendar, replaced + extended by customEvents (backward compatibility included) (#3249)
  • Removed failing unit test (#3254)
  • Removed some unused variables

Updated

  • Update electron to v27 and update other dependencies as well as github actions
  • Update newsfeed: Use html-to-text instead of regex for transform description
  • Review ESLint config (#3269)
  • Updated dependencies
  • Clock module: optionally display current moon phase in addition to rise/set times
  • electron is now per default started without gpu, if needed it must be enabled with new env var ELECTRON_ENABLE_GPU=1 on startup (#3226)
  • Replace prettier by stylistic in ESLint config to lint JavaScript (and disable some rules for config/config.js* files)
  • Update node-ical to v0.17.1 and fix tests

Fixed

  • Avoid fade out/in on updateDom when many calendars are used
  • Fix the option eventClass on customEvents.
  • Fix yr API version in locationforecast and sunrise call (#3227)
  • Fix cloneObject() function to respect RegExp (#3237)
  • Fix newsfeed module for feeds using "a10:updated" tag (#3238)
  • Fix issue template (#3167)
  • Fix #3256 filter out bad results from rrule.between
  • Fix calendar events sometimes not respecting deleted events (#3250)
  • Fix electron loadurl locally on Windows when address "0.0.0.0" (#2550)
  • Fix updatanotification (update_helper.js): catch error if reponse is not an JSON format (check PM2)
  • Fix missing typeof in calendar module
  • Fix style issues after prettier update
  • Fix calendar test (#3291) by moving "Exdate check" from e2e to electron to run on a Thursday
  • Fix calendar config params fetchInterval and excludedEvents were never used from single calendar config (#3297)
  • Fix MM_PORT variable not used in electron and allow full path for MM_CONFIG_FILE variable (#3302)

TwentyFive!

01 Oct 18:14
343e7de
Compare
Choose a tag to compare

[2.25.0] - 2023-10-01

Thanks to: @bugsounet, @dgoth, @dependabot, @kenzal, @Knapoc, @KristjanESPERANTO, @martingron, @NolanKingdon, @Paranoid93, @TeddyStarinvest and @Ybbet.

Special thanks to @khassel, @rejas and @sdetweil for taking over most (if not all) of the work on this release as project collaborators. This version would not be there without their effort. Thank you guys! You are awesome!

⚠️ This release needs nodejs version >= v18, older releases have reached end of life and will not work!

Added

  • Added UV Index support to OpenWeatherMap
  • Added 'hideDuplicates' flag to the calendar module
  • Added allowOverrideNotification to weather module to enable sending current weather objects with the CURRENT_WEATHER_OVERRIDE notification to supplement/replace the current weather displayed
  • Added optional AnimateCSS animate for hide(), show(), updateDom()
  • Added AnimateIn and animateOut in module config definition
  • Apply AnimateIn rules on the first start
  • Added automatic client page reload when server was restarted by setting reloadAfterServerRestart: true in config.js, per default false (#3105)
  • Added eventClass option for customEvents on the default calendar
  • Added AnimateCSS integration in tests suite (#3206)
  • Added npm dependabot [Reserved to developer] (#3210)
  • Added improved logging for calendar (#3110)

Removed

  • Breaking Change: Removed digest authentication method from calendar module (which was already broken since release 2.15.0)

Updated

  • Update roboto fonts to version v5
  • Update issue template
  • Update dev/dependencies incl. electron to v26
  • Replace pretty-quick by lint-staged (prettier/pretty-quick#164)
  • Update engine node >=18. v16 reached it's end of life. (#3170)
  • Update typescript definition for modules
  • Cleaned up nunjuck templates
  • Replace node-fetch with internal fetch (#2649) and remove digest-fetch
  • Update the French translation according to the English file.
  • Update dependabot incl. vendor/fonts (monthly check)
  • Renew package-lock.json for release

Fixed

  • Fix engine check on npm install (#3135)
  • Fix undefined formatTime method in clock module (#3143)
  • Fix clientonly startup fails after async added (#3151)
  • Fix electron width/heigth when using xrandr under bullseye
  • Fix time issue with certain recurring events in calendar module
  • Fix ipWhiteList test (#3179)
  • Fix newsfeed: Convert HTML entities, codes and tag in description (#3191)
  • Respect width/height (no fullscreen) if set in electronOptions (together with fullscreen: false) in config.js (#3174)
  • Fix: AnimateCSS merge hide() and show() animated css class when we do multiple call
  • Fix Uncaught SyntaxError: Identifier 'getCorsUrl' has already been declared (at utils.js:1:1) when using clock and weather module (#3204)
  • Fix overriding config.js when running tests (#3201)
  • Fix issue in weathergov provider with probability of precipitation not showing up on hourly or daily forecast

Farewell Apollo!

01 Jul 19:20
e87f50e
Compare
Choose a tag to compare

[2.24.0] - 2023-07-01

Thanks to: @angeldeejay, @bugsounet, @buxxi, @CarJem, @dariom, @DaveChild, @dWoolridge, @eddiehung, @grenagit, @Hirschberger, @ismarslomic, @JakeBinney, @KristjanESPERANTO, @MagMar94, @naveensrinivasan, @nfogal, @oscarb, @OWL4C, @psieg, @rajniszp, @retroflex, @SkySails and @tomzt

Special thanks to @khassel, @rejas and @sdetweil for taking over most (if not all) of the work on this release as project collaborators. This version would not be there without their effort. Thank you guys! You are awesome!

Added

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

Removed

  • Removed unneeded (and unwanted) '.' after the year in calendar repeatingCountTitle (#2896, second attempt ...)

Updated

  • Added support for precipitation probability with openmeteo weather-provider
  • Update electron to v25.2 and other dependencies
  • Use node v20 in github workflow (replacing v14)
  • Refactor formatTime into common util function for default modules
  • Refactor some calendar methods into own class and added tests for them
  • Split install and run commands in github actions
  • Changed fetchInterval of calendar in config.js.sample to 7 days so we not to request example calendar too frequently
  • Changed default calendar fetchInterval to one hour
  • Changed calendar url in sample config

Fixed

  • Fix envcanada hourly forecast time (#3080)
  • Fix electron not running under windows after async changes (#3083)
  • Fix style issues after eslint-plugin-jsdoc update
  • Fix don't filter out ongoing full day events (#3095)
  • Fix date not shown when clock in analog mode (#3100)
  • Fix envcanada today percentage-of-precipitation (#3106)
  • Fix updatenotification where no branch is checked out but e.g. a version tag (#3130)

The one that I completely forgot to release ...

04 Apr 18:45
abe5c08
Compare
Choose a tag to compare

[2.23.0] - 2023-04-04

Thanks to: @angeldeejay, @buxxi, @CarJem, @dariom, @DaveChild, @dWoolridge, @grenagit, @Hirschberger, @KristjanESPERANTO, @MagMar94, @naveensrinivasan, @nfogal, @psieg, @rajniszp, @retroflex, @SkySails and @tomzt.

Special thanks to @khassel, @rejas and @sdetweil for taking over most (if not all) of the work on this release as project collaborators. This version would not be there without their effort. Thank you guys! You are awesome!

Added

  • Added increments for hourly forecasts in weather module (#2996)
  • Added tests for hourly weather forecast
  • Added possibility to ignore MagicMirror repo in updatenotification module
  • Added Pirate Weather as new weather provider (#3005)
  • Added possibility to use your own templates in Alert module
  • Added error message if <modulename>.js file is missing in module folder to get a hint in the logs (#2403)
  • Added possibility to use environment variables in config.js (#1756)
  • Added option pastDaysCount to default calendar module to control of how many days past events should be displayed
  • Added thai language to alert module
  • Added option sendNotifications in clock module (#3056)

Removed

  • Removed darksky weather provider
  • Removed unneeded (and unwanted) '.' after the year in calendar repeatingCountTitle (#2896)

Updated

  • Use develop as target branch for dependabot
  • Update issue template, contributing doc and sample config
  • The weather modules clearly separates precipitation amount and probability (risk of rain/snow)
    • This requires all providers that only supports probability to change the config from showPrecipitationAmount to showPrecipitationProbability.
  • Update tests for weather and calendar module
  • Changed updatenotification module for MagicMirror repo only: Send only notifications for master if there is a tag on a newer commit
  • Update dates in Calendar widgets every minute
  • Cleanup jest coverage for patches
  • Update stylelint dependencies, switch to stylelint-config-standard and handle stylelint issues, update main.css matching new rules
  • Update Eslint config, add new rule and handle issue
  • Convert lots of callbacks to async/await
  • Revise require imports (#3071 and #3072)

Fixed

  • Fix wrong day labels in envcanada forecast (#2987)
  • Fix for missing default class name prefix for customEvents in calendar
  • Fix electron flashing white screen on startup (#1919)
  • Fix weathergov provider hourly forecast (#3008)
  • Fix message display with HTML code into alert module (#2828)
  • Fix typo in french translation
  • Yr wind direction is no longer inverted
  • Fix async node_helper stopping electron start (#2487)
  • The wind direction arrow now points in the direction the wind is flowing, not into the wind (#3019)
  • Fix precipitation css styles and rounding value
  • Fix wrong vertical alignment of calendar title column when wrapEvents is true (#3053)
  • Fix empty news feed stopping the reload forever
  • Fix e2e tests (failed after async changes) by running calendar and newsfeed tests last
  • Lint: Use template literals instead of string concatenation
  • Fix default alert module to render HTML for title and message
  • Fix Open-Meteo wind speed units

The Collaborators Edition

01 Jan 17:10
0300ce0
Compare
Choose a tag to compare

[2.22.0] - 2023-01-01

Thanks to: @angeldeejay, @buxxi, @dariom, @dWoolridge, @KristjanESPERANTO, @MagMar94, @naveensrinivasan, @retroflex, @SkySails and @tom.

Special thanks to @khassel, @rejas and @sdetweil for taking over most (if not all) of the work on this release as project collaborators. This version would not be there without their effort. Thank you!

Added

  • Added test for remoteFile option in compliments module
  • Added hourlyWeather functionality to Weather.gov weather provider
  • Removed weatherEndpoint definition from weathergov.js (not used)
  • Added css class names "today" and "tomorrow" for default calendar
  • Added Collaboration.md
  • Added new github action for dependency review (#2862)
  • Added a WeatherProvider for Open-Meteo
  • Added Yr as a weather provider
  • Added config options "ignoreXOriginHeader" and "ignoreContentSecurityPolicy"

Removed

  • Removed usage of internal fetch function of node until it is more stable

Updated

  • Cleaned up test directory (#2937) and jest config (#2959)
  • Wait for all modules to start before declaring the system ready (#2487)
  • Updated e2e tests (moved done() in helper functions) and use es6 syntax in all tests
  • Updated da translation
  • Rework weather module
    • Make sure smhi provider api only gets a maximum of 6 digits coordinates (#2955)
    • Use fetch instead of XMLHttpRequest in weatherprovider (#2935)
    • Reworked how weatherproviders handle units (#2849)
    • Use unix() method for parsing times, fix suntimes on the way (#2950)
    • Refactor conversion functions into utils class (#2958)
  • The cors-method in server.js now supports sending and recieving HTTP headers
  • Replace &hellip; by
  • Cleanup compliments module
  • Updated dependencies including electron to v22 (#2903)

Fixed

  • Correctly show apparent temperature in SMHI weather provider
  • Ensure updatenotification module isn't shown when local is ahead of remote
  • Handle node_helper errors during startup (#2944)
  • Possibility to change FontAwesome class in calendar, so icons like fab fa-facebook-square works.
  • Fix cors problems with newsfeed articles (as far as possible), allow disabling cors per feed with option useCorsProxy: false (#2840)
  • Tests not waiting for the application to start and stop before starting the next test
  • Fix electron tests failing sometimes in github workflow
  • Fixed gap in clock module when displayed on the left side with displayType=digital
  • Fixed playwright issue by upgrading to v1.29.1 (#2969)

The WhatShouldICallIt™ Release

01 Oct 18:08
9e02930
Compare
Choose a tag to compare

[2.21.0] - 2022-10-01

Special thanks to: @BKeyport, @buxxi, @davide125, @khassel, @kolbyjack, @krukle, @MikeBishop, @rejas, @sdetweil, @SkySails and @veeck

Added

  • Possibility to fetch calendars through socket notifications.
  • New scripts install-mm (and install-mm:dev) for simplifying mm installation (now: npm run install-mm) and adding params --no-audit --no-fund --no-update-notifier for less noise.
  • New showTimeToday option in calendar module shows time for current-day events even if timeFormat is "relative".
  • Add hourly forecasts, apparent temperature & custom location name to SMHI weather provider.

Removed

  • Old weather deprecated modules currentweather and weatherforecast.

Updated

  • Removed DAYAFTERTOMORROW from English.
  • Update dependencies.
  • Updated jsdoc.
  • Updated font tree to use variables consistantly.
  • Removed deprecated Docker Repository from issue template.

Fixed

  • Broadcast all calendar events while still honoring global and per-calendar maximumEntries.
  • Respect rss ttl provided by newsfeed (#2883).
  • Fix multi day calendar events always presented as "(1/X)" instead of the amount of days the event has progressed.
  • Fix weatherbit provider to use type config value instead of endpoint.
  • Fix calendar events which DO NOT specify rrule byday adjusted incorrectly (#2885).
  • Fix e2e tests not failing on errors (#2911).

The Missed Deadline Edition

02 Jul 11:08
30d5bfe
Compare
Choose a tag to compare

[2.20.0] - 2022-07-02

Special thanks to the following contributors: @eouia, @khassel, @kolbyjack, @KristjanESPERANTO, @nathannaveen, @naveensrinivasan, @rejas, @rohitdharavath and @sdetweil.

Added

  • Added a new config option httpHeaders used by helmet (see https://helmetjs.github.io/). You can now set own httpHeaders which will override the defaults in js/defauls.js which is useful e.g. if you want to embed MagicMirror into annother website (solves #2847).
  • Show endDate for calendar events when dateHeader is enabled and showEnd is set to true (#2192).
  • Added the notification emitting from the weather module on infromation updated.
  • Use recommended file extention for YAML files (#2864).

Updated

  • Use latest node 18 when running tests on github actions.
  • Update electron to v19 and other dependencies.
  • Use internal fetch function of node instead external node-fetch library if used node version >= v18.
  • Include duplicate events in broadcasts.

Fixed

  • Fix problems with non latin fonds caused by updating to fontsource (fixes #2835).