Skip to content

Commit

Permalink
Merge pull request #55 from Picorims/develop
Browse files Browse the repository at this point in the history
release 0.3.2
  • Loading branch information
Picorims authored Feb 2, 2023
2 parents f432302 + de943da commit 1bccbd2
Show file tree
Hide file tree
Showing 88 changed files with 10,091 additions and 7,252 deletions.
31 changes: 31 additions & 0 deletions .github/workflows/node-js-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs

name: Node.js CI

on:
push:
branches: [ "develop" ]
pull_request:
branches: [ "develop" ]

jobs:
build:

runs-on: windows-latest

strategy:
matrix:
node-version: [16.x, 18.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
# - run: npm run build --if-present
- run: npm test
117 changes: 117 additions & 0 deletions .github/workflows/node-js-publish-github-packages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
# This workflow will run tests using node, make artifacts for all supported OSs and finally upload them in a release
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages

name: Node.js Package

on:
push:
# Sequence of patterns matched against refs/tags
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10

jobs:
# Build artifacts for each supported OS
build:
runs-on: ${{ matrix.os }}

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

steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Add Wix to path on Windows
if: matrix.os == 'windows-latest'
run: |
Add-Content $env:GITHUB_PATH "C:\Program Files (x86)\WiX Toolset v3.11\bin"
# https://github.com/electron/forge/issues/2662
# - name: install maker-flatpak dependencies
# if: matrix.os == 'ubuntu-latest'
# run: |
# sudo apt-get install flatpak -y
# sudo apt-get install flatpak-builder -y
# sudo apt-get install elfutils -y
# sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# sudo flatpak install flathub org.freedesktop.Platform/x86_64/19.08 org.freedesktop.Sdk/x86_64/19.08 org.electronjs.Electron2.BaseApp/x86_64/stable -y
- name: Install node modules
run: npm install # the package lock is windows dependant, so ci can't be used here.
- name: Make packages
run: npm run make
- name: Upload build artifacts
uses: actions/[email protected]
with:
# Artifact name
name: artifact-${{ matrix.os }} # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: out/make/*
# The desired behavior if no files are found using the provided path.
# Available Options:
#warn: Output a warning but do not fail the action
#error: Fail the action with an error message
#ignore: Do not output any warnings or errors, the action does not fail

#if-no-files-found: # optional, default is warn
# Duration after which artifact will expire in days. 0 means using default retention.
#Minimum 1 day. Maximum 90 days unless changed from the repository settings page.

#retention-days: # optional

publish-to-release:
needs: build

runs-on: ubuntu-latest

permissions:
contents: write

steps:
- name: Download all artifacts
uses: actions/[email protected]
#with:
# Artifact name
#name: artifact-ubuntu-latest # optional
# Destination path
#path: # optional
# https://github.com/softprops/action-gh-release
- name: Display structure of downloaded files
run: ls -R
- name: GH Release
# You may pin to the exact commit or the version.
# uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844
uses: softprops/[email protected]
with:
# Note-worthy description of changes in release
#body: # optional
# Path to load note-worthy description of changes in release from
#body_path: # optional
# Gives the release a custom name. Defaults to tag name
#name: # optional
# Gives a tag name. Defaults to github.GITHUB_REF
#tag_name: # optional
# Creates a draft release. Defaults to false
draft: true # optional
# Identify the release as a prerelease. Defaults to false
#prerelease: # optional
# Newline-delimited list of path globs for asset files to upload
files: | # optional
artifact-windows-latest/zip/win32/x64/*.zip
artifact-windows-latest/wix/x64/*.msi
artifact-ubuntu-latest/zip/linux/x64/*.zip
# Fails if any of the `files` globs match nothing. Defaults to false
#fail_on_unmatched_files: # optional
# Repository to make releases against, in <owner>/<repo> format
#repository: # optional
# Authorized secret GitHub Personal Access Token. Defaults to github.token
#token: # optional, default is ${{ github.token }}
# Commitish value that determines where the Git tag is created from. Can be any branch or commit SHA.
#target_commitish: # optional
# If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. If there is already a discussion linked to the release, this parameter is ignored.
#discussion_category_name: # optional
# Whether to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
#generate_release_notes: # optional
# Append to existing body instead of overwriting it. Default is false.
#append_body: # optional

5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,7 @@ user/settings/user_settings.json

#else
ffmpeg/
node_modules/
node_modules/

# github stuff
!.github/
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@
This document is based on Keep a Changelog 1.0.0
https://keepachangelog.com/en/1.0.0/

## 0.3.2-indev (2023-02-02)

### Changed
- The side panel is now resizable.
- The side panel user interface is more responsive, and should be easier to read.

### Fixed
- Fixed: The timer does not export correctly at export (#48).

### Security
- Updated Electron from v16.2.8 to v22.2.0

## 0.3.1-beta (2022-11-01)

### Fixed
Expand Down
28 changes: 18 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ A tool to make custom audio visualization and export production videos for the a
- **This tool is a side project and is provided as is, without garantee of long term maintenance. If this is fine for you, you can proceed. Enjoy!**
- **This tool is usable at this point, but is still in early development! Your work is subject to bugs, backup your saves!**
- Git LFS used to be used for node_modules and FFMpeg, but is no longer used. Both of these folders have been removed from the repository, but not its history. You do not need to clone them. Git LFS files are no longer included in archive downloads. **If you want a full release source code archive, go to the releases section. This will include node_modules, but not FFmpeg** (which can be downloaded from their official website compiled and packaged).
- I know this is some Frankenstein of a project with an awful architecture, questionnable decisions (why my own UI system and state machine when you have all kinds of frameworks and libs?). It is something I started in high school and that I tried to continuously improve with refreshed novel (which explains the mix of module and non module JS for example). At the same time it is my sandbox for experimentations (custom UI, state machine, etc.). So yeah, it has a lot of awful stuff but I am just having fun there. Which doesn't mean I neglect it either. I have limited time and energy, that I try to avoid spending on endless refactoring (easier said than done). Check the FAQ in the development guidelines file for additional information.

## Hacking
- NodeJS must be installed (It will install npm too).
Expand All @@ -23,8 +24,8 @@ Compilation settings are detailed in package.JSON at the "config" node. You can

FFmpeg should be installed independently and not compiled in the application.

#### ZIP
Zip maker is available for all platforms, without any dependencies required. On Windows, it will produce an executable (.exe) to run the app from anywhere on a Windows machine, without any installation process.
### ZIP (Windows, Linux)
Zip maker is available for all platforms, without any dependencies required. It will produce an executable to run the app from anywhere on your machine, without any installation process. Use this if you want a portable installation, that can for example be kept on an external storage device (like a USB stick).

### Windows specific

Expand All @@ -33,15 +34,22 @@ This maker create a Windows .msi installer. To make a .msi installer, Wix must b
**The paths for the installer assets are absolute, don't forget to change them in package.json or the make command will fail!**

### Linux specific
There are existing configurations for .deb and .rpm packages **although they have not been tested** as I have no viable Linux development environment at the moment.

#### .deb packages
.deb packages can be made on MacOS and Linux machines with `fakeroot` and `dpkg` packages installed.
See https://www.electronforge.io/config/makers/deb
#### flatpak

**This option is currently configured but NOT available due to this issue: https://github.com/electron/forge/issues/2561**

This maker creates a flatpak package, which is a sandboxed package that helps deploying applications to many Linux distributions at a time.

As per the Electron Forge documentation (https://www.electronforge.io/config/makers/flatpak):
> You can only build the Flatpak target if you have flatpak, flatpak-builder, and eu-strip (usually part of the elfutils package) installed on your system.
#### deb and rpm
~~There are existing configurations for .deb and .rpm packages **although they have not been tested** as I have no viable Linux development environment at the moment.~~

`deb` and `rpm` packages have been abandoned as their packaging never worked, and Linux support is otherwise guaranteed from other package formats. Instead (if it works), `flatpak` support should be introduced in a future release.


#### .rpm packages
.rpm packages can be made on Linux machines with `rpm` or `rpm-build` packages installed.
See https://www.electronforge.io/config/makers/rpm.

### Mac Specific

Expand All @@ -58,7 +66,7 @@ See `docs/cli.md` for more details.
This tool is licensed under GPL-3.0-or-later

Wav2Bar - Free software for creating audio visualization (motion design) videos
Copyright (C) 2022 Picorims <[email protected]>
Copyright (C) 2023 Picorims <[email protected]>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
2 changes: 1 addition & 1 deletion dev_utils/prefix_plantuml_svg.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//Wav2Bar - Free software for creating audio visualization (motion design) videos
//Copyright (C) 2022 Picorims <[email protected]>
//Copyright (C) 2023 Picorims <[email protected]>

//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
Expand Down
Loading

0 comments on commit 1bccbd2

Please sign in to comment.