Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .erb/configs/webpack.config.main.prod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ const configuration: webpack.Configuration = {
},

plugins: [
new DotEnvWebpackPlugin({ path: './.env' }),
new DotEnvWebpackPlugin({ path: './.env', systemvars: true }),
new BundleAnalyzerPlugin({
analyzerMode: process.env.ANALYZE === 'true' ? 'server' : 'disabled',
}),
Expand Down
41 changes: 41 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Build/release

on:
push:
branches: ['master']

env:
MUSIXMATCH_DEFAULT_USER_TOKEN: ${{ secrets.MUSIXMATCH_DEFAULT_USER_TOKEN }}
LAST_FM_API_KEY: ${{ secrets.LAST_FM_API_KEY }}
GENIUS_API_KEY: ${{ secrets.GENIUS_API_KEY }}

jobs:
release:
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, windows-latest]

steps:
- name: Check out Git repository
uses: actions/checkout@v2

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
check-latest: true

- name: Build/release Electron app
uses: samuelmeuli/action-electron-builder@v1
with:
# GitHub token, automatically provided to the action
# (No need to define this secret in the repo settings)
github_token: ${{ secrets.github_token }}

# If the commit is tagged with a version (e.g. "v1.0.0"),
# release the app after building
release: true
# release: ${{ startsWith(github.ref, 'refs/heads/master') }}
# release: ${{ startsWith(github.ref, 'refs/tags/v') }}
23 changes: 23 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Jest Tests

on: [push]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
check-latest: true

- name: Install dependencies
run: npm ci

- name: Run Jest tests
run: npm run test
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ public/images/artist_covers
temp/song_covers/*
temp/*.json
out/
coverage/
*.m3u
.env
thunder-tests
Expand Down
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"pyong",
"Resyncing",
"RIELL",
"samuelmeuli",
"Spicetify",
"sspai",
"unmaximize",
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<div align="center">
<img alt="GitHub all releases" src="https://img.shields.io/github/downloads/Sandakan/Nora/total?label=all%20time%20downloads&style=for-the-badge">
<img alt="GitHub release (latest by date)" src="https://img.shields.io/github/downloads/Sandakan/Nora/v2.1.0-stable/total?style=for-the-badge">
<img alt="GitHub release (latest by date)" src="https://img.shields.io/github/downloads/Sandakan/Nora/v2.2.0-stable/total?style=for-the-badge">
<img alt="GitHub package.json version" src="https://img.shields.io/github/package-json/v/Sandakan/Nora?color=blue&label=latest%20version&style=for-the-badge">
<a href="https://github.com/Sandakan/Nora/blob/master/LICENSE"><img alt="GitHub license" src="https://img.shields.io/github/license/Sandakan/Nora?style=for-the-badge"></a>
<a href="https://github.com/Sandakan/Nora/issues"><img alt="GitHub issues" src="https://img.shields.io/github/issues/Sandakan/Oto-Music-for-Desktop?style=for-the-badge"></a>
Expand Down Expand Up @@ -57,7 +57,7 @@ It packs a horizon of features including,

<br>

![Latest Version Artwork](/assets/other/release%20artworks/whats-new-v2.1.0-stable.webp)
![Latest Version Artwork](/assets/other/release%20artworks/whats-new-v2.2.0-stable.webp)

Visit the [release notes](/changelog.md) to see what's new on the latest release.</p>

Expand Down
5 changes: 0 additions & 5 deletions __tests__/calculateElapsedTime.test.ts

This file was deleted.

53 changes: 53 additions & 0 deletions __tests__/isLatestVersion.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import isLatestVersion from '../src/renderer/utils/isLatestVersion';

describe('App versions check', () => {
test('Basic version checks', () => {
expect(isLatestVersion('2.0.0', '2.0.0')).toBe(true);
expect(isLatestVersion('2.0.0', '2.1.0')).toBe(true);
expect(isLatestVersion('2.1.0', '2.0.0')).toBe(false);
});

test('Versions with same release phases', () => {
expect(isLatestVersion('2.0.0-stable', '2.0.0-stable')).toBe(true);
expect(isLatestVersion('2.0.0-beta', '2.0.0-beta')).toBe(true);
expect(isLatestVersion('2.0.0-alpha', '2.0.0-alpha')).toBe(true);
});

test('Versions with same release phases and different build metadata', () => {
expect(
isLatestVersion('2.0.0-stable.20230515', '2.0.0-stable.20230510')
).toBe(true);
expect(isLatestVersion('2.0.0-beta20230510', '2.0.0-beta20230515')).toBe(
true
);
expect(
isLatestVersion('2.0.0-alpha.20250101', '2.0.0-alpha.19990509')
).toBe(true);
});

test('Versions with different release phases', () => {
expect(isLatestVersion('2.0.0-stable', '2.0.0-alpha')).toBe(true);
expect(isLatestVersion('2.0.0-beta', '2.0.0-stable')).toBe(true);
expect(isLatestVersion('2.0.0-alpha', '2.0.0-beta')).toBe(true);
});

test('Different major versions with same release phases', () => {
expect(isLatestVersion('3.0.0-stable', '2.0.0-stable')).toBe(false);
expect(isLatestVersion('2.0.0-stable', '3.0.0-stable')).toBe(true);
});

test('Different minor versions with same release phases', () => {
expect(isLatestVersion('2.1.0-stable', '2.0.0-stable')).toBe(false);
expect(isLatestVersion('2.0.0-stable', '2.1.0-stable')).toBe(true);
});

test('Different patch versions with same release phases', () => {
expect(isLatestVersion('2.0.2-stable', '2.0.0-stable')).toBe(false);
expect(isLatestVersion('2.0.0-stable', '2.0.2-stable')).toBe(true);
});

test('Random version checks', () => {
expect(isLatestVersion('2.1.2-stable', '3.4.1-alpha')).toBe(true);
expect(isLatestVersion('4.2.5-beta', '2.3.2-stable')).toBe(true);
});
});
Binary file modified assets/installer_assets/sidebar.bmp
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 29 additions & 2 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,37 @@
# Change Log

> ### The latest version, **( v2.1.0-stable )** contains a lot of new features and improvements. As always expect some bugs in the app.
> ### The latest version, **( v2.2.0-stable )** contains a lot of new features and improvements. As always expect some bugs in the app.

<br>

![Nora v2.1.0-stable version artwork](assets/other/release%20artworks/whats-new-v2.1.0-stable.webp)
![Nora v2.2.0-stable version artwork](assets/other/release%20artworks/whats-new-v2.2.0-stable.webp)

<br>

- ### **v2.2.0-stable - ( 20<sup>th</sup> of May 2023 )**

- ### 🎉 New Features and Features

- Added the feature to save some images that appear in the app.
- Added an experimental fix for the bug where other music players like Groove Music don't recognize artworks edited by
Nora.
- Added a new keyboard shortcut to quickly navigate to Search. Fixes #173.

- ### 🔨 Fixes and Improvements

- Improved the artists' splitting algorithm of suggestions.
- Fixed a bug where images and lyrics lines are draggable.
- Fixed a bug where playlist images aren't positioned correctly when the "artworks made from song covers" feature is
enabled.
- Fixed a bug in which the app doesn't inform the user if the metadata update process fails.
- Improved the app version matching algorithm and fixed a bug where the app informs the user about a new update even
though app the is in the latest version.
- Fixed a test contrast issue on the Artist Info page. Fixes #174.
- In Search page, the "Most Relevant" list (side-scroll) doesn't prevent you from scrolling down when hovering over them.

- ### 🐜 Known Issues and Bugs
- Sometimes updating song artwork may need an app restart to show on the app #162.
- The app may crash in mini-player mode when trying to use window snap feature #163.

<br>

Expand Down
Loading