Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finally Figure out PyInstaller on Windows! #136

Merged
merged 54 commits into from
Apr 7, 2024
Merged

Finally Figure out PyInstaller on Windows! #136

merged 54 commits into from
Apr 7, 2024

Conversation

ebb-earl-co
Copy link
Owner

Thanks to using auto media builder project, an LGPLv2.1-licensed FFmpeg binary for Windows is hanging out in another repository. So, GitHub actions can simply retrieve that and add it to the PyInstaller process on Windows!

Now, all platforms have a binary that includes fully functioning Python 3.11, FFmpeg 6.1.1 (minimal dependencies, LGPL license), and tidal-wave source code!

dependabot bot and others added 30 commits March 27, 2024 08:03
)

Bumps [typer[all]](https://github.com/tiangolo/typer) from 0.10.0 to 0.11.0.
- [Release notes](https://github.com/tiangolo/typer/releases)
- [Changelog](https://github.com/tiangolo/typer/blob/master/docs/release-notes.md)
- [Commits](fastapi/typer@0.10.0...0.11.0)

---
updated-dependencies:
- dependency-name: typer[all]
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [typer](https://github.com/tiangolo/typer) from 0.10.0 to 0.11.0.
- [Release notes](https://github.com/tiangolo/typer/releases)
- [Changelog](https://github.com/tiangolo/typer/blob/master/docs/release-notes.md)
- [Commits](fastapi/typer@0.10.0...0.11.0)

---
updated-dependencies:
- dependency-name: typer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Specify arch=arm64 in pyinstaller-macos_arm64 compile FFmpeg step
Add environment variables PYAPP_METADATA_TEMPLATE and PYAPP_PROJECT_FEATURES in pyapp-*
Upload artifact before the step at which the workflow usually breaks in pyapp-*
Add the CacheControl PyPi package for low-hanging fruit that is
`Cache-Control` HTTP header caching.
)

Bumps [typer[all]](https://github.com/tiangolo/typer) from 0.10.0 to 0.11.0.
- [Release notes](https://github.com/tiangolo/typer/releases)
- [Changelog](https://github.com/tiangolo/typer/blob/master/docs/release-notes.md)
- [Commits](fastapi/typer@0.10.0...0.11.0)

---
updated-dependencies:
- dependency-name: typer[all]
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
)

Bumps [typer[all]](https://github.com/tiangolo/typer) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/tiangolo/typer/releases)
- [Changelog](https://github.com/tiangolo/typer/blob/master/docs/release-notes.md)
- [Commits](fastapi/typer@0.11.0...0.11.1)

---
updated-dependencies:
- dependency-name: typer[all]
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [typer](https://github.com/tiangolo/typer) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/tiangolo/typer/releases)
- [Changelog](https://github.com/tiangolo/typer/blob/master/docs/release-notes.md)
- [Commits](fastapi/typer@0.11.0...0.11.1)

---
updated-dependencies:
- dependency-name: typer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
In README.md, there is an example of the output of `tidal-wave --help`. Add the new flag, `--transparent` in that example output.
* In video.py:

Edit to separate tag-adding processes for composer, director, engineer, lyricist, producer

* In video.py, fix unreferenced 'tag' variable

* Add new tags to video.py including performer, engineer, publisher

* Update {media,models,track,video}.py:

tidal_wave/media.py: add TAG_MAPPING keys for director, language, location, media, producer, rating
tidal_wave/models.py: VideosContributorsResponseJSON.location is now the returned contributors value for 'Studio'
tidal_wave/track.py: add 'Digital Media' as the media tag for all tracks. If .m4a, add 'rtng', 'pcst', 'stik' tags
tidal_wave/video.py: Add logging and 'hdvd', 'location', 'media', 'pcst', 'stik', '©url', tags

* Use ©url instead of ©cmt for the track URL in .m4a files
tidal_wave/utils.py: Add 'is_tidal_api_reachable()' that uses stdlib socket to check for Internet and DNS connectivity
tidal_wave/main.py: Utilize the above, including user interaction prompt to allow forcing of program execution
Bumps [typer](https://github.com/tiangolo/typer) from 0.11.1 to 0.12.0.
- [Release notes](https://github.com/tiangolo/typer/releases)
- [Changelog](https://github.com/tiangolo/typer/blob/master/docs/release-notes.md)
- [Commits](fastapi/typer@0.11.1...0.12.0)

---
updated-dependencies:
- dependency-name: typer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
)

Bumps [typer[all]](https://github.com/tiangolo/typer) from 0.11.1 to 0.12.0.
- [Release notes](https://github.com/tiangolo/typer/releases)
- [Changelog](https://github.com/tiangolo/typer/blob/master/docs/release-notes.md)
- [Commits](fastapi/typer@0.11.1...0.12.0)

---
updated-dependencies:
- dependency-name: typer[all]
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* In video.py:

Edit to separate tag-adding processes for composer, director, engineer, lyricist, producer

* In video.py, fix unreferenced 'tag' variable

* Add new tags to video.py including performer, engineer, publisher

* Update {media,models,track,video}.py:

tidal_wave/media.py: add TAG_MAPPING keys for director, language, location, media, producer, rating
tidal_wave/models.py: VideosContributorsResponseJSON.location is now the returned contributors value for 'Studio'
tidal_wave/track.py: add 'Digital Media' as the media tag for all tracks. If .m4a, add 'rtng', 'pcst', 'stik' tags
tidal_wave/video.py: Add logging and 'hdvd', 'location', 'media', 'pcst', 'stik', '©url', tags

* Use ©url instead of ©cmt for the track URL in .m4a files
)

Bumps [typer[all]](https://github.com/tiangolo/typer) from 0.11.1 to 0.12.0.
- [Release notes](https://github.com/tiangolo/typer/releases)
- [Changelog](https://github.com/tiangolo/typer/blob/master/docs/release-notes.md)
- [Commits](fastapi/typer@0.11.1...0.12.0)

---
updated-dependencies:
- dependency-name: typer[all]
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [m3u8](https://github.com/globocom/m3u8) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/globocom/m3u8/releases)
- [Commits](globocom/m3u8@4.0.0...4.1.0)

---
updated-dependencies:
- dependency-name: m3u8
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Fix a typo, but add a lot of caching steps so that FFmpeg (from the same release tag) doesn't have to be recompiled on every commit
Change APT packages installed to just 6 (minimally-viable?) libraries
Add libraries installed via Homebrew
Remove Xcode installation step as it is included in GitHub's macOS runner
Typer no longer has the option to install typer[all], so it's also unnecessary in `tidal-wave`
@ebb-earl-co ebb-earl-co added the github_actions Pull requests that update GitHub Actions code label Apr 5, 2024
@ebb-earl-co ebb-earl-co self-assigned this Apr 5, 2024
* Add caching to pyinstaller-linux.yml

* Update pyinstaller-linux.yml

* NOT clone in /opt/ - pyinstaller-linux.yml

* Update pyinstaller-linux.yml

* Update pyinstaller-windows.yml

* Update pyinstaller-macos_arm64.yml

* Update pyinstaller-macos_x86.yml

* Update pyinstaller-macos_x86.yml

* Update Dockerfile

* Update pyinstaller-linux.yml

* Update pyinstaller-linux.yml

* Update pyinstaller-macos_arm64.yml

* Update pyinstaller-macos_x86.yml

* Update pyinstaller-windows.yml
* In track.py and album.py, move self.cover_path definition to set_album_dir()

* Format with Black; remove invalid type hints (pylance)
@ebb-earl-co ebb-earl-co added bug Something isn't working python Pull requests that update Python code labels Apr 7, 2024
@ebb-earl-co ebb-earl-co merged commit 9574cad into trunk Apr 7, 2024
36 checks passed
ebb-earl-co added a commit that referenced this pull request Apr 7, 2024
* Finally Figure out PyInstaller on Windows! (#136)

Remove Xcode installation step as it is included in GitHub's macOS runner

* Add --enable-neon to pyinstaller-macos_arm64.yml

* Add caching of FFmpeg binary to pyinstaller-macos_arm64.yml

* Try to use Msys2 in pyinstaller-windows.yml

* Remove tidal-wave[all]

Typer no longer has the option to install typer[all], so it's also unnecessary in `tidal-wave`

* Bump version of typer to 0.12.1 in requirements.txt

* Download ffmpeg.exe from Separate Repo

In pyinstaller-windows.yml, download the ffmpeg.exe from https://github.com/ebb-earl-co/media-autobuild_suite/releases/tag/n6.1.1

* Address Issue #137 (#140)

* In track.py and album.py, move self.cover_path definition to set_album_dir()

* Format with Black; remove invalid type hints (pylance)

* HOTFIX: Dockerfile Dependence ca-certificates

Ubuntu brings in `ca-certificates` with `git`, but Debian needs to apt-get `ca-certificates` separately.

* Update pyinstaller-macos_arm64.yml

Add `continue-on-error: true` for the random Homebrew updating failure due to network timeout
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working github_actions Pull requests that update GitHub Actions code python Pull requests that update Python code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant