Skip to content

Commit

Permalink
feat: Vue 3 update (#183)
Browse files Browse the repository at this point in the history
Huge improvements on how you can route and handle MIDI through genMDM Editor.
And, some new features to control portamento and fine tune when using Mega Drive MIDI Interface.

Automatic reconnection of MIDI devices.
UI updates galore.
Fixed the dials not actually allowing selection of all values.
Fixed values on "rate scale".
  • Loading branch information
2xAA authored Aug 19, 2024
1 parent 28dcf8c commit f7058c8
Show file tree
Hide file tree
Showing 98 changed files with 4,931 additions and 9,571 deletions.
4 changes: 4 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
node_modules
dist
out
.gitignore
15 changes: 15 additions & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')

module.exports = {
extends: [
'eslint:recommended',
'plugin:vue/vue3-recommended',
'@electron-toolkit',
'@vue/eslint-config-prettier'
],
rules: {
'vue/require-default-prop': 'off',
'vue/multi-word-component-names': 'off'
}
}
22 changes: 0 additions & 22 deletions .eslintrc.js

This file was deleted.

103 changes: 45 additions & 58 deletions .github/workflows/build-electron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,74 +4,61 @@ on:
workflow_dispatch:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'

env:
ELECTRON_CACHE: $HOME/.cache/electron
ELECTRON_BUILDER_CACHE: $HOME/.cache/electron-builder
USE_HARD_LINKS: false
GH_TOKEN: ${{ secrets.GH_TOKEN }}
- "[0-9]+.[0-9]+.[0-9]+"

jobs:
build-windows:
name: Build Windows
runs-on: windows-latest
env:
YARN_GPG: no
steps:
- name: Checkout
uses: actions/checkout@v2
release:
runs-on: ${{ matrix.os }}

- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: '14.x'

- name: Install dependencies
run: yarn install --frozen-lockfile
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}

- name: Build Windows
run: yarn run electron:build -w
strategy:
matrix:
os: [ubuntu-latest, windows-latest]

build-macOS:
name: Build macOS
runs-on: macos-latest
environment: build
env:
APPLEID: ${{ secrets.APPLEID }}
APPLEIDPASS: ${{ secrets.APPLEIDPASS }}
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Check out Git repository
uses: actions/checkout@v3

- name: Use Node.js
uses: actions/setup-node@v1
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: '14.x'
node-version: 20

- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Install Dependencies
run: npm install

- name: Build macOS
run: yarn run electron:build -m
- name: build-linux
if: matrix.os == 'ubuntu-latest'
run: npm run build:linux

build-ubuntu:
name: Build Ubuntu
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: build-mac
if: matrix.os == 'macos-latest'
run: npm run build:mac
env:
APPLEID: ${{ secrets.APPLEID }}
APPLEIDPASS: ${{ secrets.APPLEIDPASS }}
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}

- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: '14.x'
- name: build-win
if: matrix.os == 'windows-latest'
run: npm run build:win

- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Build ubuntu
run: yarn run electron:build -l
- name: release
uses: softprops/action-gh-release@v1
with:
draft: true
files: |
dist/*.exe
dist/*.zip
dist/*.dmg
dist/*.AppImage
dist/*.snap
dist/*.deb
dist/*.rpm
dist/*.tar.gz
dist/*.yml
dist/*.blockmap
8 changes: 4 additions & 4 deletions .github/workflows/build-web.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'
- "[0-9]+.[0-9]+.[0-9]+"

jobs:
build-and-deploy:
Expand All @@ -16,16 +16,16 @@ jobs:
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: '14.x'
node-version: "20.x"

- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Build
run: yarn run build
run: yarn run build:browser

- name: Deploy
uses: JamesIves/[email protected]
with:
branch: gh-pages # The branch the action should deploy to.
folder: dist # The folder the action should deploy.
folder: out/renderer # The folder the action should deploy.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
.DS_Store
node_modules
/dist
/out

# local env files
.env.local
Expand Down
36 changes: 0 additions & 36 deletions .travis.yml

This file was deleted.

12 changes: 12 additions & 0 deletions build/entitlements.mac.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
</dict>
</plist>
4 changes: 2 additions & 2 deletions build/notarize.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
require("dotenv").config();
const { notarize } = require("electron-notarize");
const { notarize } = require("@electron/notarize");

exports.default = async function notarizing(context) {
const { electronPlatformName, appOutDir } = context;
Expand All @@ -21,6 +21,6 @@ exports.default = async function notarizing(context) {
appPath: `${appOutDir}/${appName}.app`,
appleId: process.env.APPLEID,
appleIdPassword: process.env.APPLEIDPASS,
teamId: process.env.APPLE_TEAM_ID
teamId: process.env.APPLE_TEAM_ID,
});
};
3 changes: 3 additions & 0 deletions dev-app-update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
provider: generic
url: https://example.com/auto-updates
updaterCacheDirName: genmdm-editor-vue3-updater
45 changes: 45 additions & 0 deletions electron-builder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
appId: pro.wray.genmdm-editor
productName: genMDM Editor
directories:
buildResources: build
files:
- '!**/.vscode/*'
- '!src/*'
- '!electron.vite.config.{js,ts,mjs,cjs}'
- '!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}'
- '!{.env,.env.*,.npmrc,pnpm-lock.yaml}'
asarUnpack:
- resources/**
win:
executableName: genmdm-editor
nsis:
artifactName: ${name}-${version}-setup.${ext}
shortcutName: ${productName}
uninstallDisplayName: ${productName}
createDesktopShortcut: always
mac:
entitlementsInherit: build/entitlements.mac.plist
extendInfo:
- NSCameraUsageDescription: Application requests access to the device's camera.
- NSMicrophoneUsageDescription: Application requests access to the device's microphone.
- NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.
- NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.
notarize: true
dmg:
artifactName: ${name}-${version}.${ext}
sign: false
linux:
target:
- AppImage
- snap
- deb
category: Midi
maintainer: wray.pro
appImage:
artifactName: ${name}-${version}.${ext}
npmRebuild: false
publish:
provider: github
releaseType: prerelease
vPrefixedTagName: false
afterSign: build/notarize.js
29 changes: 29 additions & 0 deletions electron.vite.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { resolve } from "path";
import { defineConfig, externalizeDepsPlugin } from "electron-vite";
import { sharedConfig } from "./shared.vite.config";
import { nodePolyfills } from "vite-plugin-node-polyfills";

export default defineConfig({
main: {
plugins: [externalizeDepsPlugin()],
},
preload: {
plugins: [externalizeDepsPlugin()],
},
renderer: {
resolve: {
alias: {
"@renderer": resolve("src/renderer/src"),
},
},
plugins: [
...sharedConfig.renderer.plugins,
nodePolyfills({
include: ["events"],
}),
],
define: {
"process.env.ELECTRON_BUILD": true,
},
},
});
Loading

0 comments on commit f7058c8

Please sign in to comment.