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
yarnNote: yarn may take some time to complete.
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
yarn download-ffmpeg-win32-arm64For Windows, you may have to install 7z, and then put the 7z folder in your PATH.
yarn devThis will sign using the development provisioning profile:
yarn pack-mas-devMAS 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
rm -rf ~/Library/Containers/no.mifi.losslesscut-macWindows 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
Before releasing, consider Maintainence chores first.
git checkout mastergit merge stores(in case there's an old unmerged stores hotfix)- Manually prepare release notes from commit history since last version.
- Create a new file
versions/x.y.z.mdand write the most important highlights from the release notes, but remove github issue #references node script/generateVersions.ts && git add versions/*.md src/renderer/src/versions.json && git commit -m 'Update change log'- If Store-only hotfix release
git checkout storesnpm version patch
- If normal GitHub-first release
npm version minor && git --no-pager show
git push --follow-tags- Wait for build and draft in Github actions
- Open draft in github and add the prepared release notes
- If GitHub release
- Release the draft
- If Store-only hotfix release
- Remove all other artifacts and release the draft as pre-release
- If Stores-only hotfix release
git checkout mastergit merge stores
- Bump snap version
git checkout stores- Find the tag just released in the Stores
- Merge this tag (from
master) intostores:git merge vX.Y.Z git pushgit checkout master
For per-platform build/signing setup, see this article.
yarn scan-i18n to get the newest English strings and push so Weblate gets them.
Find the latest PR from Weblate and rebase+merge it.
Warning: Do not squash and merge (see here why)!
See requirements.
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 MACOSX_DEPLOYMENT_TARGET 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
- FFmpeg: ffmpeg-build-script, ffmpeg-builds and package.json download scripts.
electronand upgrade electron.vite.config.tstargets.@electron/remotepackage.json/yarn.lock
yarn scan-i18nyarn generate-licenses
#cp licenses.txt losslesscut.mifi.no/public/Then deploy.
https://github.com/mifi/lossless-cut/security/dependabot
- https://github.com/BtbN/FFmpeg-Builds
- https://www.gyan.dev/ffmpeg/builds/
- https://github.com/m-ab-s/media-autobuild_suite
- Update
copyrightYear