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

feat: Implement cross-platform executable compilation and distribution (WIP) #451

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

SethBurkart123
Copy link

@SethBurkart123 SethBurkart123 commented Nov 13, 2024

This work-in-progress pull request aims to transform exo into an easily installable executable for multiple platforms, streamlining the distribution process. Previous issue #334 was incorrectly closed by Github automatically.

Objectives:

  • Create a comprehensive PyInstaller spec file to bundle all required dependencies
  • Implement CI/CD workflows for automated executable builds
  • Ensure mac builds work
  • Ensure linux builds work
  • Ensure windows builds work
  • Conduct comprehensive cross-platform testing to ensure complete functionality
  • Package the executable in an installation-ready format
  • Develop scripts for submission to Homebrew

Key improvements:

  1. Simplified installation process for end-users
  2. Broader platform compatibility
  3. Automated build and distribution pipeline

Related #302

@SethBurkart123 SethBurkart123 changed the title feat: Implement MacOS executable installables (WIP) feat: Implement cross-platform executable compilation and distribution (WIP) Nov 13, 2024
build.sh Outdated

# 1. Clean previous builds
#echo "Cleaning previous builds..."
#rm -rf build dist
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be uncommented

build.sh Outdated

# 2. Run PyInstaller
#echo "Building with PyInstaller..."
#pyinstaller exo.spec
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

where is the exo.spec file?

@dtnewman
Copy link
Contributor

interesting approach! Just FYI, this is being worked on in #354. As far as I can tell (from looking at the package you generated in your releases on GitHub), this creates an executable along with a directory of supporting libraries needed to run it. PR 354 allows for a single file to be generated.

Copy link

@lgcyaxi lgcyaxi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't submit the .DS_Store file. Please add it to .gitignore

@SethBurkart123
Copy link
Author

interesting approach! Just FYI, this is being worked on in #354. As far as I can tell (from looking at the package you generated in your releases on GitHub), this creates an executable along with a directory of supporting libraries needed to run it. PR 354 allows for a single file to be generated.

I'm currently developing all of those changes locally, the disadvantage with generating a single file executable is quite large cold start times. It's definitely an option I have played with but on each execution all libraries need to be unpacked for it to run causing it to take a while to load up.

@blindcrone
Copy link
Contributor

I can probably contribute at least an aur package to this lol

@blindcrone
Copy link
Contributor

Might be worth making it a bit more client-servery though, I would like for this to be able to sanely run under systemd at least

@SethBurkart123
Copy link
Author

Might be worth making it a bit more client-servery though, I would like for this to be able to sanely run under systemd at least

this would also be important if we were to make an optional frontend app as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants