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

Update Build Process #2040

Closed
4 tasks done
Rixxan opened this issue Jul 27, 2023 · 3 comments · Fixed by #2041
Closed
4 tasks done

Update Build Process #2040

Rixxan opened this issue Jul 27, 2023 · 3 comments · Fixed by #2041
Assignees
Labels
code cleanup Cleaning up code devtools Developer tools related enhancement Installer Related to the Windows installer

Comments

@Rixxan
Copy link
Contributor

Rixxan commented Jul 27, 2023

Describe the enhancement

The current build process is functional, but is in need of some TLC. The build file should be updated to be more in line with current pythonic standards, as well as to see if any enhancements in speed, reliability, or performance can be made. In addition, further research should be done on if py2exe is still the best option for building the project. Finally, Wix should be investigated to see if it is still the most optimal for our needs.

  • Current Build System Triaged
  • Py2Exe Fate Determined
  • Installer Logic Updated
  • Wix Fate Determined
@Rixxan Rixxan added enhancement code cleanup Cleaning up code devtools Developer tools related Installer Related to the Windows installer labels Jul 27, 2023
@Rixxan Rixxan self-assigned this Jul 27, 2023
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Jul 27, 2023
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Jul 27, 2023
@Rixxan
Copy link
Contributor Author

Rixxan commented Jul 27, 2023

At least with where I'm looking right now, the py2exe system is working and the wix system is working. Initial attempts to change this evening showed it would be a giant pain to replace the whole system, vs just putting it in a more maintainable state.

Looked at PyInstaller but couldn't get a working build. Wix is annoying me and might be worth extra effort to try and knock back.

Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Jul 27, 2023
Going to do a handover to black (New Maintainer Preference)
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Jul 27, 2023
@Athanasius
Copy link
Contributor

As I've said on Discord, the biggest problem with any "build a python project into a .exe" tool is ensuring it includes all the necessary python modules, either in the .exe itself or as a library.zip or similar.

There are some modules that edmc uses (notably infi_systray, which then relies on pkg_resources which is the actual issue) that themselves import modules in a non-standard manner. That then requires special handling by py2exe to ensure the modules are included in the build output.

In short, if changing to any other means of building a .exe you need to pay close attention to both startup messages to ensure no imports are failing, but also check that anything an edmc plugin loads works. The issue there is that because we import the plugins, even the core ones, on the fly, there's literally no way for py2exe or similar to know about anything they import at build time. There's no simple import plugins.eddn, for instance, for py2exe/pyinstaller/whatever to follow.

When I was last active the py2exe developer was reasonably responsive to bug reports and putting out new releases to address any new issues with all of this. I've no idea how pyinstaller or other projects are with respect to that.

@Athanasius
Copy link
Contributor

With respect to the installer/WiX.... yes, it really needs redoing.

Marginal's philosophy seemed to be to make the installer as minimal as possible, I think principally in order to have the auto-update process be as streamlined as possible.

This means there's:

  1. No facility for specifying an alternate install location (without resorting to manually running msiexec on the .msi file and supplying commandline parameters).
  2. No facility for pre-selecting a translation language. In theory an installer should be able to offer selection of this and tweak the necessary EDMC config (this is all Windows, so just a registry value).
  3. Provide pointers to things like the new user guide on the wiki.
  4. Display any pertinent licensing (given we depend on a bunch of python modules with their own licenses).

It should be possible to "pretty up" the first-time installation process whilst still utilising command-line arguments to make the update process streamlined.

Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Jul 27, 2023
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Jul 27, 2023
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Jul 27, 2023
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Jul 27, 2023
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Jul 27, 2023
@Rixxan Rixxan linked a pull request Jul 27, 2023 that will close this issue
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Jul 29, 2023
Co-authored-by: Phoebe <40956085+C1701D@users.noreply.github.com>
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Jul 29, 2023
Co-authored-by: Phoebe <40956085+C1701D@users.noreply.github.com>
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Jul 29, 2023
Co-authored-by: Phoebe <40956085+C1701D@users.noreply.github.com>
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Aug 1, 2023
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Aug 2, 2023
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Aug 2, 2023
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Aug 2, 2023
Rixxan added a commit to Rixxan/EDMarketConnector that referenced this issue Aug 2, 2023
C1701D added a commit that referenced this issue Aug 2, 2023
@Rixxan Rixxan closed this as completed Aug 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
code cleanup Cleaning up code devtools Developer tools related enhancement Installer Related to the Windows installer
Projects
None yet
2 participants