and improve
4.1 KiB
Contributing
Development environment setup
This app is built using Electron. Make sure you have at least Node v16. The app uses ffmpeg from PATH when developing.
git clone https://github.com/mifi/lossless-cut.git
cd lossless-cut
yarn
Note: yarn
may take some time to complete.
Installing ffmpeg
Run one of the below commands:
yarn download-ffmpeg-darwin-x64
yarn download-ffmpeg-darwin-arm64
yarn download-ffmpeg-linux-x64
yarn download-ffmpeg-win32-x64
For Windows, you may have to install 7z, and then put the 7z folder in your PATH
.
Running
yarn dev
mas-dev
(Mac App Store) local build
This will sign using the development provisioning profile:
yarn pack-mas-dev
MAS builds have some restrictions, see isMasBuild
variable in code. In particular, any file cannot be read without the user's consent.
NOTE: when MAS (dev) build, Application Support will instead be located here:
~/Library/Containers/no.mifi.losslesscut-mac/Data/Library/Application Support
Starting over fresh
rm -rf ~/Library/Containers/no.mifi.losslesscut-mac
Windows Store notes
Windows store version is built as a Desktop Bridge app (with runFullTrust
capability). This means the app has access to essentially everything the user has access to, and even internetClient
is redundant.
- https://learn.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations
- https://learn.microsoft.com/en-us/archive/blogs/appconsult/a-simpler-and-faster-way-to-publish-your-desktop-bridge-applications-on-the-microsoft-store
- https://stackoverflow.com/a/52921641/6519037
Releasing
For per-platform build/signing setup, see this article.
Release new version
- If Mac App Store / Windows Store
- Checkout branch
stores
- Merge
master
intostores
- Checkout branch
npm version ...
git push --follow-tags
- Wait for build and draft in Github actions
- Open draft in github and add Release notes
- For files
LosslessCut-mac-universal.pkg
andLosslessCut-win-x64.appx
add prefix-DO-NOT-DOWNLOAD
- If intended as Github, release the draft
- If store-only release, release the draft as pre-release
After release
- If Mac App Store / Windows Store
- Merge
stores
intomaster
- Merge
- Bump snap version
yarn scan-i18n
to get the newest English strings and push so weblate gets them
Minimum OS version
Minimum supported OS versions for Electron. As of electron 22:
- MacOS High Sierra 10.13
- Windows 10
MacOS LSMinimumSystemVersion
How to check the value:
yarn pack-mas-dev
cat dist/mas-dev-arm64/LosslessCut.app/Contents/Info.plist
<key>LSMinimumSystemVersion</key>
<string>10.13</string>
LSMinimumSystemVersion
can be overridden in electron-builder
by mac.minimumSystemVersion
See also MACOS_MIN
in ffmpeg-build-script.
Links:
- https://support.google.com/chrome/a/answer/7100626
- https://bignerdranch.com/blog/requiring-a-minimum-version-of-os-x-for-your-application/
- #1386
Maintainence chores
Keep dependencies up to date
- ffmpeg
electron
,@electron/remote
and upgrade electron.vite.config.tstarget
s.package.json
i18n
yarn scan-i18n
Generate license summary
npx license-checker --summary
Regenerate licenses file
yarn generate-licenses
#cp licenses.txt losslesscut.mifi.no/public/
Then deploy.
Dependabot
https://github.com/mifi/lossless-cut/security/dependabot