Skip to content

Release 2.31.0 #3758

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 212 commits into from
Apr 1, 2025
Merged

Release 2.31.0 #3758

merged 212 commits into from
Apr 1, 2025

Conversation

rejas
Copy link
Collaborator

@rejas rejas commented Apr 1, 2025

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 (Arabic Translation #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 (Newsfeed: Specific ignoreOlderThan value (override) per URL. #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 ([Feature Request] Expanding update notification.... #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) (clientonly and wayland, hotfix electron tests #3677)
  • [core] Optimize systeminformation calls and output (Optimize systeminformation calls and output string #3689)
  • [core] Add issue templates for feature requests and bug reports (Use different issue templates #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

Fixed

MichMich and others added 30 commits January 1, 2024 15:43
Bumps [moment-timezone](https://github.com/moment/moment-timezone) from
0.5.43 to 0.5.44.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/moment/moment-timezone/releases">moment-timezone's
releases</a>.</em></p>
<blockquote>
<h2>Release 0.5.44</h2>
<ul>
<li>Updated data to IANA TZDB <code>2023d</code>.</li>
<li>Fixed <code>.valueOf()</code> to return <code>NaN</code> for invalid
zoned objects (matching default <code>moment</code>) <a
href="https://github.com/moment/moment-timezone/pull/1082">#1082</a>.</li>
<li>Performance improvements:
<ul>
<li>Use binary search when looking up zone information <a
href="https://github.com/moment/moment-timezone/pull/720">#720</a>.</li>
<li>Avoid redundant checks in <code>tz.guess()</code>.</li>
<li>Avoid redundant <code>getZone()</code> calls in
<code>.tz()</code>.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/moment/moment-timezone/blob/develop/changelog.md">moment-timezone's
changelog</a>.</em></p>
<blockquote>
<h3><code>0.5.44</code> <em>2023-12-29</em></h3>
<ul>
<li>Updated data to IANA TZDB <code>2023d</code>.</li>
<li>Fixed <code>.valueOf()</code> to return <code>NaN</code> for invalid
zoned objects (matching default <code>moment</code>) <a
href="https://github.com/moment/moment-timezone/pull/1082">#1082</a>.</li>
<li>Performance improvements:
<ul>
<li>Use binary search when looking up zone information <a
href="https://github.com/moment/moment-timezone/pull/720">#720</a>.</li>
<li>Avoid redundant checks in <code>tz.guess()</code>.</li>
<li>Avoid redundant <code>getZone()</code> calls in
<code>.tz()</code>.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/moment/moment-timezone/commit/25f19b6190634fdea9189039f94c639cfbd06e54"><code>25f19b6</code></a>
Build moment-timezone 0.5.44</li>
<li><a
href="https://github.com/moment/moment-timezone/commit/4734cb2515ad2790b4a8fca14570a236eb358c59"><code>4734cb2</code></a>
Bump version to 0.5.44</li>
<li><a
href="https://github.com/moment/moment-timezone/commit/585fabfcbdc02bd8ca35709d95d689fa422b47cb"><code>585fabf</code></a>
Merge pull request <a
href="https://github.com/moment/moment-timezone/issues/1085">#1085</a>
from moment/data/2023d</li>
<li><a
href="https://github.com/moment/moment-timezone/commit/ece926a59f53c72b51e8250ef97393900c0b7227"><code>ece926a</code></a>
Add test for valueOf behaviour with invalid moments (<a
href="https://github.com/moment/moment-timezone/issues/1075">#1075</a>)</li>
<li><a
href="https://github.com/moment/moment-timezone/commit/341beac0fb2c1c50fc4d3aa20f6a788d2b724a5a"><code>341beac</code></a>
Ensure valueOf returns NaN for invalid instances (<a
href="https://github.com/moment/moment-timezone/issues/1082">#1082</a>)</li>
<li><a
href="https://github.com/moment/moment-timezone/commit/69d856d5aa56a7c35df73920a15f91b5a1eb2778"><code>69d856d</code></a>
data: Add 2023d</li>
<li><a
href="https://github.com/moment/moment-timezone/commit/dc53e6cdecd6c2a9d85f4635c407366f76a8d4c8"><code>dc53e6c</code></a>
build(deps): bump <code>@​babel/traverse</code> (<a
href="https://github.com/moment/moment-timezone/issues/1076">#1076</a>)</li>
<li><a
href="https://github.com/moment/moment-timezone/commit/dffed7a8a9936e5be023ca76d389c258f1746dcd"><code>dffed7a</code></a>
perf: Reduce unnecessary getZone() calls in moment.tz()</li>
<li><a
href="https://github.com/moment/moment-timezone/commit/f7d8fc2d42a832b390c3f770ec5d52b4803a1a14"><code>f7d8fc2</code></a>
docs: Add note about maintenance mode in contributing guide</li>
<li><a
href="https://github.com/moment/moment-timezone/commit/4b1419b51f9625391f8391eaa515e2f9e5a1af16"><code>4b1419b</code></a>
docs: Update contributing guide to reflect the latest data process</li>
<li>Additional commits viewable in <a
href="https://github.com/moment/moment-timezone/compare/0.5.43...0.5.44">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=moment-timezone&package-manager=npm_and_yarn&previous-version=0.5.43&new-version=0.5.44)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from
46.9.1 to 47.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gajus/eslint-plugin-jsdoc/releases">eslint-plugin-jsdoc's
releases</a>.</em></p>
<blockquote>
<h2>v47.0.2</h2>
<h2><a
href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v47.0.1...v47.0.2">47.0.2</a>
(2024-01-01)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>TS:</strong> use flat config; fixes <a
href="https://github.com/gajus/eslint-plugin-jsdoc/issues/1130">#1130</a>
(<a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/3677e43322f74a22d2a91a60ebed5f367e6461af">3677e43</a>)</li>
</ul>
<h2>v47.0.1</h2>
<h2><a
href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v47.0.0...v47.0.1">47.0.1</a>
(2023-12-31)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>TS:</strong> make configs explicit (<a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/47f316160d0ac55b8b5c0b0239b703b44bc383c0">47f3161</a>)</li>
</ul>
<h2>v47.0.0</h2>
<h1><a
href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v46.10.1...v47.0.0">47.0.0</a>
(2023-12-31)</h1>
<h3>Features</h3>
<ul>
<li>expose TS types for index file; fixes <a
href="https://github.com/gajus/eslint-plugin-jsdoc/issues/1130">#1130</a>
(<a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/dd9e71daa223ff04e508b8abc4692de3172bc7b0">dd9e71d</a>)</li>
</ul>
<h3>BREAKING CHANGES</h3>
<ul>
<li>Adds types</li>
</ul>
<h2>v46.10.1</h2>
<h2><a
href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v46.10.0...v46.10.1">46.10.1</a>
(2023-12-30)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>revert change to engines for now (<a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/5e6280ffd4ed57ab83a6cfff259febce847e8545">5e6280f</a>)</li>
</ul>
<h2>v46.10.0</h2>
<h1><a
href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v46.9.1...v46.10.0">46.10.0</a>
(2023-12-30)</h1>
<h3>Features</h3>
<ul>
<li>support ESLint 9 (<a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/eec9d9532b58a528b7e204f74f23b3d0c46ea329">eec9d95</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/3677e43322f74a22d2a91a60ebed5f367e6461af"><code>3677e43</code></a>
fix(TS): use flat config; fixes <a
href="https://github.com/gajus/eslint-plugin-jsdoc/issues/1130">#1130</a></li>
<li><a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/5f61575951d9f5e794afd9c9977dc35298509698"><code>5f61575</code></a>
chore(lint): handle disable directives in config</li>
<li><a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/47f316160d0ac55b8b5c0b0239b703b44bc383c0"><code>47f3161</code></a>
fix(TS): make configs explicit</li>
<li><a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/dd9e71daa223ff04e508b8abc4692de3172bc7b0"><code>dd9e71d</code></a>
feat: expose TS types for index file; fixes <a
href="https://github.com/gajus/eslint-plugin-jsdoc/issues/1130">#1130</a></li>
<li><a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/eb3f4b47e1bf4c4527e06961621eadb701e2ae72"><code>eb3f4b4</code></a>
chore(linting): add ignores properly and disable directives for now</li>
<li><a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/5e6280ffd4ed57ab83a6cfff259febce847e8545"><code>5e6280f</code></a>
fix: revert change to engines for now</li>
<li><a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/eec9d9532b58a528b7e204f74f23b3d0c46ea329"><code>eec9d95</code></a>
feat: support ESLint 9</li>
<li><a
href="https://github.com/gajus/eslint-plugin-jsdoc/commit/5c4ccb9752c70bde1ca3a800370d146c757b71c9"><code>5c4ccb9</code></a>
chore: update devDeps.</li>
<li>See full diff in <a
href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v46.9.1...v47.0.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=eslint-plugin-jsdoc&package-manager=npm_and_yarn&previous-version=46.9.1&new-version=47.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This is a first attempt to bring additional system information into the
console (see #3328). It's certainly not yet perfect, but with the PR we
have a better basis for discussion.

I tried to keep the output small so that we get as much information as
possible in screenshots.

This is how it looks on my development system.

```bash
[03.01.2024 00:50.19.226] [INFO] System information:
 ### SYSTEM:   manufacturer: Notebook; model: N650DU; raspberry: undefined; virtual: false
 ### OS:       platform: linux; distro: Debian GNU/Linux; release: 12
 ### VERSIONS: MagicMirror: 2.27.0-develop; electron: 27.2.0; kernel: 5.10.0-20-amd64; node: 21.1.0; npm: 10.2.4; pm2: 5.3.0; docker: 20.10.24+dfsg1
 ```
 
 Why is it still a draft:
- [x] I have doubts that utils.js is the right place for the function. What do you think?
=> Update: As long as there is no better idea, it stays there.
- [x] Instead of working through all wishes you expressed in the issue #3328, I only implemented what was easy to achieve. And wanted to hear what you think about this approach.
=> Update: Some added. Of course, more information could be added later, as soon as experience has been gained in productive use.
- [x] I don't quite like the introductory line ("The following lines provide information..."). Should I perhaps simply replace it with "System information:"?
=> Update: Changed to "System information:"
 
 [Here](https://github.com/sebhildebrandt/systeminformation#function-reference-and-os-support) you can see what information we could easily add with the systeminformation package.
 
 It would be interesting how the raspberry field is filled on a raspi system and with docker there should be another line, but I can't easily test that now.
- Add ELECTRON_ENABLE_GPU
- Remove docker version
- Differentiation between installed and used node version
- Highlight "Ready to go!" for server mode (Since we display system
information in the console, it is easy to overlook this important line.)

## Electron mode

### Before

```bash
[07.01.2024 16:37.30.591] [INFO]  System information:
 ### SYSTEM:   manufacturer: Notebook; model: N650DU; raspberry: undefined; virtual: false
 ### OS:       platform: linux; distro: Debian GNU/Linux; release: 12; arch: x64; kernel: 5.10.0-20-amd64
 ### VERSIONS: electron: 27.2.0; node: 18.17.1; npm: 10.2.4; pm2: 5.3.0; docker: 20.10.24+dfsg1
 ### OTHER:    timeZone: Europe/Berlin
```

### After

```bash
[07.01.2024 16:39.04.736] [INFO]  System information:
### SYSTEM:   manufacturer: Notebook; model: N650DU; raspberry: undefined; virtual: false
### OS:       platform: linux; distro: Debian GNU/Linux; release: 12; arch: x64; kernel: 5.10.0-20-amd64
### VERSIONS: electron: 27.2.0; used node: 18.17.1; installed node: 21.1.0; npm: 10.2.4; pm2: 5.3.0
### OTHER:    timeZone: Europe/Berlin; ELECTRON_ENABLE_GPU: undefined
```

## server mode

### Before

```bash
[07.01.2024 16:36.49.106] [LOG]   
Ready to go! Please point your browser to: http://localhost:8080
[07.01.2024 16:36.49.287] [INFO]  System information:
 ### SYSTEM:   manufacturer: Notebook; model: N650DU; raspberry: undefined; virtual: false
 ### OS:       platform: linux; distro: Debian GNU/Linux; release: 12; arch: x64; kernel: 5.10.0-20-amd64
 ### VERSIONS: electron: undefined; node: 21.1.0; npm: 10.2.4; pm2: 5.3.0; docker: 20.10.24+dfsg1
 ### OTHER:    timeZone: Europe/Berlin
```

### After

```bash
[2024-01-07 16:33:53.804] [INFO]  
>>>   Ready to go! Please point your browser to: http://localhost:8080   <<< 
[2024-01-07 16:33:53.997] [INFO]  System information:
### SYSTEM:   manufacturer: Notebook; model: N650DU; raspberry: undefined; virtual: false
### OS:       platform: linux; distro: Debian GNU/Linux; release: 12; arch: x64; kernel: 5.10.0-20-amd64
### VERSIONS: electron: undefined; used node: 21.1.0; installed node: 21.1.0; npm: 10.2.4; pm2: 5.3.0
### OTHER:    timeZone: Europe/Berlin; ELECTRON_ENABLE_GPU: undefined 
```
It is basically a cosmetic thing, but has the following advantages:

1. Consistency with the official node documentation. The prefix is used
there.
2. It is easier to recognize the build-in modules.
Removing lodash dependency by replacing merge by spread operator.

I have also split the return into two variables to make it easier to
understand what is happening.
…r 1 active news items (#3336)

When the newsfeed module has an items list of size 1, every
`updateInterval` the animation runs to transition from the active story
to itself. This is unsightly. This PR suppresses that.

To reproduce: configure newsfeed with a single news source,
`ignoreOldItems` true, a short `updateInterval` (e.g. 3000), and a
carefully-chosen small `ignoreOlderThan` lining up with the current
contents of your news source.
by excluding them from global error handling, see discussions in
#3337
Hopefully this solves the problem with arm64 (reported in PR #3337).
- Replacing old package `colors` by drop-in replacement `ansis`
- Rework `console-stamp` config to show all Log outputs in same color
(errors = red, warnings = yellow, debug = blue background (only for the
label), info = blue)
- This also fixes `npm run config:check` (broken since
6097547)

Feel free to let me know if the PR is too big and you want me to do
individual PRs for the changes.

Before:

![before](https://github.com/MagicMirrorOrg/MagicMirror/assets/35647502/88e48ec3-102c-40f3-9e9b-5d14fe446a43)

After:

![after](https://github.com/MagicMirrorOrg/MagicMirror/assets/35647502/4c8c4bad-08c9-46a3-92c9-14b996c13a7d)

---------

Co-authored-by: Veeck <github@veeck.de>
For experimenting, I sometimes work with different CSS files. I can
imagine that others do this too.

This setting for the css folder corresponds to the setting we already
have for the config folder.
It appears that #3336 introduced a bug where a newsfeed with >1 items
would stop updating after a while (usually after `activeItem` wraps
around the end of the list). Sorry! My bad, I hadn't tested that case
well enough.
where logLevel is not set because config is not loaded at this time, see
#3353
Bumps
[follow-redirects](https://github.com/follow-redirects/follow-redirects)
from 1.15.3 to 1.15.5.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/b1677ce00110ee50dc5da576751d39b281fc4944"><code>b1677ce</code></a>
Release version 1.15.5 of the npm package.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/d8914f7982403ea096b39bd594a00ee9d3b7e224"><code>d8914f7</code></a>
Preserve fragment in responseUrl.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/65858205e59f1e23c9bf173348a7a7cbb8ac47f5"><code>6585820</code></a>
Release version 1.15.4 of the npm package.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/7a6567e16dfa9ad18a70bfe91784c28653fbf19d"><code>7a6567e</code></a>
Disallow bracketed hostnames.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/05629af696588b90d64e738bc2e809a97a5f92fc"><code>05629af</code></a>
Prefer native URL instead of deprecated url.parse.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/1cba8e85fa73f563a439fe460cf028688e4358df"><code>1cba8e8</code></a>
Prefer native URL instead of legacy url.resolve.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/72bc2a4229bc18dc9fbd57c60579713e6264cb92"><code>72bc2a4</code></a>
Simplify _processResponse error handling.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/3d42aecdca39b144a0a2f27ea134b4cf67dd796a"><code>3d42aec</code></a>
Add bracket tests.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/bcbb096b32686ecad6cd34235358ed6f2217d4f0"><code>bcbb096</code></a>
Do not directly set Error properties.</li>
<li>See full diff in <a
href="https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=follow-redirects&package-manager=npm_and_yarn&previous-version=1.15.3&new-version=1.15.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/MagicMirrorOrg/MagicMirror/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#3332)

#3285

Because there is so many conflit with package,
I have rewrite the code with v2.27.0-develop

For remember:

 * recode: `update_helper.js` with `pm2` library
 * fix: default config -> `updates` is a array
 * delete: `command-exists` library (not used)
 * delete: `PM2_GetList()`  function (not used)
 * add: check `updates.length` (prevent crash)
 * add: `[PM2]` tag in log (for better visibility)
 * add: `pm2` library
 
advantage:
  * we use the pm2 library directly
* avoids weird returns from child_process.exec when requesting a json
format from pm2
  * simplified the code

inconvenient:
  * we have vulnerabilities with axios

240120 Fix:
* use `pm2_env.pm_cwd` instead of `pm2_env.PWD` : prevent using `pm2
restart <id> --update-env` in other directory (for enable GPU rendering
for exemple)
 * resolve packages (again)
`pm2` just updated to v5.3.1 with `0 vulnerabilities`

let's delete `allow-ghsas` in depsreview and update dependencies
Bumps
[actions/dependency-review-action](https://github.com/actions/dependency-review-action)
from 3 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/dependency-review-action/releases">actions/dependency-review-action's
releases</a>.</em></p>
<blockquote>
<h2>v4.0.0</h2>
<ul>
<li>Update action to Node 20 by <a
href="https://github.com/takost"><code>@​takost</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/639">actions/dependency-review-action#639</a></li>
<li>Dependabot updates, see the full changelog for more details.</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/takost"><code>@​takost</code></a> made
their first contribution in <a
href="https://github.com/actions/dependency-review-action/pull/639">actions/dependency-review-action#639</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/dependency-review-action/compare/v3.1.5...v4.0.0">https://github.com/actions/dependency-review-action/compare/v3.1.5...v4.0.0</a></p>
<h2>3.1.5</h2>
<h2>What's Changed</h2>
<ul>
<li>Smaller <code>per_page</code> when requesting diff by <a
href="https://github.com/hmaurer"><code>@​hmaurer</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/649">actions/dependency-review-action#649</a></li>
<li>Update dependencies:
<ul>
<li>Bump <code>@​typescript-eslint/parser</code> from 6.10.0 to 6.13.1
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://github.com/actions/dependency-review-action/pull/630">actions/dependency-review-action#630</a></li>
<li>Bump prettier from 3.0.3 to 3.1.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/629">actions/dependency-review-action#629</a></li>
<li>Bump <code>@​types/jest</code> from 29.5.8 to 29.5.11 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/637">actions/dependency-review-action#637</a></li>
<li>Bump nodemon from 3.0.1 to 3.0.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/636">actions/dependency-review-action#636</a></li>
<li>Replace pip -&gt; pypi in PURL examples by <a
href="https://github.com/febuiles"><code>@​febuiles</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/638">actions/dependency-review-action#638</a></li>
<li>Bump <code>@​typescript-eslint/eslint-plugin</code> from 6.12.0 to
6.15.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/644">actions/dependency-review-action#644</a></li>
<li>Bump eslint from 8.53.0 to 8.56.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/640">actions/dependency-review-action#640</a></li>
<li>Bump <code>@​typescript-eslint/parser</code> from 6.13.1 to 6.16.0
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://github.com/actions/dependency-review-action/pull/645">actions/dependency-review-action#645</a></li>
<li>Bump prettier from 3.1.0 to 3.1.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/646">actions/dependency-review-action#646</a></li>
</ul>
</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/dependency-review-action/compare/v3.1.4...v3.1.5">https://github.com/actions/dependency-review-action/compare/v3.1.4...v3.1.5</a></p>
<h2>3.1.4</h2>
<h2>What's Changed</h2>
<ul>
<li>
<p>Fixed a <a
href="https://github.com/actions/dependency-review-action/issues/618">bug</a>
with severity filtering when using the <code>allow_ghsas</code> option:
<a
href="https://github.com/actions/dependency-review-action/pull/623">actions/dependency-review-action#623</a>.</p>
</li>
<li>
<p>Updates dependencies:</p>
<ul>
<li>Bump <code>@​types/node</code> from 16.18.61 to 16.18.62 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/619">actions/dependency-review-action#619</a>
action/pull/620</li>
<li>Bump <code>@​typescript-eslint/eslint-plugin</code> from 6.11.0 to
6.12.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/625">actions/dependency-review-action#625</a></li>
<li>Bump typescript from 5.2.2 to 5.3.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/624">actions/dependency-review-action#624</a></li>
</ul>
</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/dependency-review-action/compare/v3...v3.1.4">https://github.com/actions/dependency-review-action/compare/v3...v3.1.4</a></p>
<h2>3.1.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Fixes purl &quot;version must be percent-encoded&quot; by <a
href="https://github.com/theztefan"><code>@​theztefan</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/617">actions/dependency-review-action#617</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/dependency-review-action/compare/v3...v3.1.3">https://github.com/actions/dependency-review-action/compare/v3...v3.1.3</a></p>
<h2>3.1.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix a regression for setups using self-hosted runners behind HTTP
proxies:<a
href="https://github.com/febuiles"><code>@​febuiles</code></a> in <a
href="https://github.com/actions/dependency-review-action/pull/611">actions/dependency-review-action#611</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/dependency-review-action/commit/4cd9eb2d23752464a87e00499c30d256a59a01b4"><code>4cd9eb2</code></a>
Updating docs to point to v4.</li>
<li><a
href="https://github.com/actions/dependency-review-action/commit/4901385134134e04cec5fbe5ddfe3b2c5bd5d976"><code>4901385</code></a>
bump to 4.0.0</li>
<li><a
href="https://github.com/actions/dependency-review-action/commit/dbf82a4a5e789041feb229da46628470c73c9a0a"><code>dbf82a4</code></a>
Merge pull request <a
href="https://github.com/actions/dependency-review-action/issues/639">#639</a>
from takost/takost/update-to-node-20</li>
<li><a
href="https://github.com/actions/dependency-review-action/commit/78aeb2a9481f34926df8c3362adc914ee6d1c2c4"><code>78aeb2a</code></a>
Merge pull request <a
href="https://github.com/actions/dependency-review-action/issues/663">#663</a>
from actions/dependabot/npm_and_yarn/typescript-eslin...</li>
<li><a
href="https://github.com/actions/dependency-review-action/commit/4e510006f53ff8d6674dedf2002e9e0b82cc5470"><code>4e51000</code></a>
Bump <code>@​typescript-eslint/parser</code> from 6.18.0 to 6.18.1</li>
<li><a
href="https://github.com/actions/dependency-review-action/commit/9560737c5e7fc2128ffae68101ce1affe1e71e19"><code>9560737</code></a>
Merge pull request <a
href="https://github.com/actions/dependency-review-action/issues/661">#661</a>
from actions/dependabot/npm_and_yarn/typescript-eslin...</li>
<li><a
href="https://github.com/actions/dependency-review-action/commit/4125f47f7e6413e88785249688b6c9013bc2a18e"><code>4125f47</code></a>
Merge pull request <a
href="https://github.com/actions/dependency-review-action/issues/660">#660</a>
from actions/dependabot/npm_and_yarn/types/node-16.18.70</li>
<li><a
href="https://github.com/actions/dependency-review-action/commit/07cc93e0c88d01956b9bdd07a4ae2a3dd5b03aff"><code>07cc93e</code></a>
Bump <code>@​typescript-eslint/eslint-plugin</code> from 6.18.0 to
6.18.1</li>
<li><a
href="https://github.com/actions/dependency-review-action/commit/e2c203b8b7d8c24420ab8f3b640f6c7a4379ffa8"><code>e2c203b</code></a>
Bump <code>@​types/node</code> from 16.18.62 to 16.18.70</li>
<li><a
href="https://github.com/actions/dependency-review-action/commit/f0b304d0bca35ae1f93498c415db77ce72699b7c"><code>f0b304d</code></a>
Merge pull request <a
href="https://github.com/actions/dependency-review-action/issues/653">#653</a>
from actions/dependabot/npm_and_yarn/got-14.0.0</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/dependency-review-action/compare/v3...v4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/dependency-review-action&package-manager=github_actions&previous-version=3&new-version=4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[follow-redirects](https://github.com/follow-redirects/follow-redirects)
from 1.15.3 to 1.15.5.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/b1677ce00110ee50dc5da576751d39b281fc4944"><code>b1677ce</code></a>
Release version 1.15.5 of the npm package.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/d8914f7982403ea096b39bd594a00ee9d3b7e224"><code>d8914f7</code></a>
Preserve fragment in responseUrl.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/65858205e59f1e23c9bf173348a7a7cbb8ac47f5"><code>6585820</code></a>
Release version 1.15.4 of the npm package.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/7a6567e16dfa9ad18a70bfe91784c28653fbf19d"><code>7a6567e</code></a>
Disallow bracketed hostnames.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/05629af696588b90d64e738bc2e809a97a5f92fc"><code>05629af</code></a>
Prefer native URL instead of deprecated url.parse.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/1cba8e85fa73f563a439fe460cf028688e4358df"><code>1cba8e8</code></a>
Prefer native URL instead of legacy url.resolve.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/72bc2a4229bc18dc9fbd57c60579713e6264cb92"><code>72bc2a4</code></a>
Simplify _processResponse error handling.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/3d42aecdca39b144a0a2f27ea134b4cf67dd796a"><code>3d42aec</code></a>
Add bracket tests.</li>
<li><a
href="https://github.com/follow-redirects/follow-redirects/commit/bcbb096b32686ecad6cd34235358ed6f2217d4f0"><code>bcbb096</code></a>
Do not directly set Error properties.</li>
<li>See full diff in <a
href="https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=follow-redirects&package-manager=npm_and_yarn&previous-version=1.15.3&new-version=1.15.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/MagicMirrorOrg/MagicMirror/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Notable changes in this context:

- simplification of the ESLint calls - there is no longer a combination
of two file/directory lists (one in `package.json` and one in
`.eslintignore`)
- removal of a non-existent path from the `.eslintignore`
- use shorthand declaration for GitHub repository

Normally the new plugin would also sort the scripts in the package.json
alphabetically, but I think the current order is fine, so I deactivated
it.

Is it overkill to introduce a linter plugin just for the `package.json`
files?

In other projects I have seen that such internal changes were marked
with "chore" in the changelog. That's what I've done here. These chore
changes are less interesting for "normal" users.

Please feel free to give me feedback.
see #3358

used command: `find ./ -type f -exec perl -i -0pe
's/\/\*\s*magicmirror.*?\*\/\s*//si' {} \;`

This is a first draft, I think we should preserve some of the comments.
* 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)
* Renamed variables in *calendarfetcherutils.js* to be more clear about
use of `moment` and js's `Date` class.
* Added calendar config option `forceUseCurrentTime` (default:`false`)
which will ignore overridden `Date.now` in the config in order to keep
some tests consistent.
* Added several unit tests for crossing DST in different timezones with
excluded events.
- Remove useless css class in clock
- Fix typo in calendar
- Changelog also got a little screwed after last merge
- updated dependencies
The new version of husky makes it possible to simplify the pre-commit
hook a little.

And since prettier no longer takes care of the JavaScript files in our
project, it can no longer come into conflict with ESLint while running
lint-staged. Therefore we can activate the correction of ESLint issues
here.
This PR adds an option to tweak the layout of the weather module. When
set, the humidity appears alongside the temperature:

![Screenshot from 2024-01-03
11-56-55](https://github.com/MagicMirrorOrg/MagicMirror/assets/551990/2a9fdf9a-21e4-49f5-8a48-68ea21902592)
Improved wording, fixed grammatical errors and added new translations to
the et.json file.

---------

Co-authored-by: Veeck <github@veeck.de>
khassel and others added 21 commits January 31, 2025 14:54
to call `sudo apt-get update` before `sudo apt-get install`

I had problems running the tests on my fork, while running the `apt-get
install` command in automated tests workflow I got

```bash
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/m/mesa/libegl-mesa0_24.0.9-0ubuntu0.3_amd64.deb  404  Not Found [IP: 52.147.219.192 80]
```

Found a similar
[Issue](actions/runner-images#10785 (comment))
with a solution which is to run `sudo apt-get update` before.
Therefor -> Therefore

refs: #3690
nothing to see here really

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: veeck <gitkraken@veeck.de>
Hello and thank you for wanting to contribute to the MagicMirror²
project!

**Please make sure that you have followed these 4 rules before
submitting your Pull Request:**

> 1. Base your pull requests against the `develop` branch.
> 2. Include these infos in the description:
>
> - Does the pull request solve a **related** issue?
> - If so, can you reference the issue like this `Fixes
#<issue_number>`?
> - What does the pull request accomplish? Use a list if needed.
> - If it includes major visual changes please add screenshots.
>
> 3. Please run `npm run lint:prettier` before submitting so that
>    style issues are fixed.
> 4. Don't forget to add an entry about your changes to
>    the CHANGELOG.md file.

**Note**: Sometimes the development moves very fast. It is highly
recommended that you update your branch of `develop` before creating a
pull request to send us your changes. This makes everyone's lives
easier (including yours) and helps us out on the development team.

Thanks again and have a nice day!
This does not change the rules of ESLint. It's just a little cosmetic
fine-tuning.
Fixes #3727

---------

Co-authored-by: veeck <gitkraken@veeck.de>
I have updated weatherflow.js to implement the following changes (as
described in #3728)

- Fixed: Weather icons now show up properly
- Added: Location Name support
- Added: Hourly weather forecast support
- Added to current conditions:
  - "Feels like" temp
- Fixed icon for current conditions to be sourced from current
conditions (rather than daily forecast)
  - UV index
- Added to daily forecast
  - Precipitation amount and UV index (via hourly forecast data)

Before:

![image](https://github.com/user-attachments/assets/cfef043c-75ef-4571-8bdc-462e75d3ed81)

After:

![image](https://github.com/user-attachments/assets/e36118bb-a508-4ab1-a7ad-a775bd7a9bb3)
I've had this on my agenda for a long time 🙂
Hello,

we have updated the core Greek translation and added Greek translation
to Alerts module.

Thank you!

---------

Co-authored-by: Savvas Adamtziloglou <savvas-gr@greeklug.gr>
Co-authored-by: Konstantinos <geraki@gmail.com>
Co-authored-by: Veeck <github@veeck.de>
see
https://forum.magicmirror.builders/topic/19440/digital-clock-minutes-darker

changelog added

question.. 

we have a config parm for seconds color, but not hour/minute
I have used css here.. is that too inconsistent?

---------

Co-authored-by: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com>
Co-authored-by: Veeck <github@veeck.de>
fixes #3360 

superseeds #3429

had to open a new PR because getting `permission denied` when trying to
push to the old one.
see discussion in
#3746

As [electron v35 requires node js
v22.14.0](https://www.electronjs.org/blog/electron-35-0) we should
update this here too.
exclude issues with label `ready (coming with next release)` from stale
job
The command wasn't correct.
…V Index, add config option to hide precipitation entries that are zero [Rebased Version of PR #3526] (#3748)

Fixed Version of PR #3526 since that was against the wrong branch and
had issues.

Original PR Text: 
Basically the title. Just some existing weather data included into
hourly, some config option ("hideZeroes") to hide precipitation when it
is zero (this actually shrinks the entire table, removing columns that
are completely empty), and add a spacing column to fix the UV Index
column.

---------

Co-authored-by: Veeck <github@veeck.de>
Co-authored-by: veeck <gitkraken@veeck.de>
updated CHANGELOG and release process documentation

---------

Co-authored-by: veeck <gitkraken@veeck.de>
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR prepares Release 2.31.0 by adding new translations, deprecating a clock module option, and updating workflows and configurations to support Node.js v22.14.0 or higher.

  • New translations (Arabic, Esperanto, Greek) and CSS support for digital clocks have been added.
  • Deprecation of the secondsColor option and adjustments in environment variable handling for electron startup have been implemented.
  • Various fixes and workflow improvements across modules and CI/CD configurations have been applied.

Reviewed Changes

Copilot reviewed 49 out of 54 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
modules/default/calendar/calendarfetcherutils.js Adjusts event calculation logic which may change intended behavior
modules/default/calendar/calendar.js Updates sorting and symbol concatenation logic
modules/default/alert/alert.js Adds Esperanto translation
js/utils.js Refactors system info string generation with template literals
js/deprecated.js Adds deprecation entry for the secondsColor option
js/app.js Enhances deprecation checks and module directory handling
eslint.config.mjs Updates ESLint plugin imports and configuration
clientonly/index.js Enhances electron parameters based on WAYLAND_DISPLAY or DISPLAY
LICENSE.md Updates copyright year
Collaboration.md Revises deployment checklist steps
CHANGELOG.md Documents changes for release 2.31.0
.github/workflows/* Updates workflow configurations for stale issues, spellcheck, electron rebuild, and automated tests
Files not reviewed (5)
  • cspell.config.json: Language not supported
  • fonts/package-lock.json: Language not supported
  • fonts/package.json: Language not supported
  • modules/default/alert/translations/el.json: Language not supported
  • modules/default/alert/translations/eo.json: Language not supported

if (nowDiff < eventDiff) {
//-600 -420
eventDiff = -(eventDiff - (nowDiff - eventDiff)); //-180
//300 -300 -360 +300
eventDiff = nowDiff - eventDiff; //-180
Copy link
Preview

Copilot AI Apr 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new calculation for eventDiff differs from the original logic (-(eventDiff - (nowDiff - eventDiff))). Please verify that 'nowDiff - eventDiff' produces the intended result, since mathematically these formulas are not equivalent.

Suggested change
eventDiff = nowDiff - eventDiff; //-180
eventDiff = -(eventDiff - (nowDiff - eventDiff)); //-180

Copilot uses AI. Check for mistakes.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change was correct, suggestion not

@rejas rejas merged commit 39a614e into master Apr 1, 2025
19 of 21 checks passed
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.