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

[Question] executable(e.g. pyinstaller) #101

Open
timosachsenberg opened this issue Apr 19, 2023 · 7 comments
Open

[Question] executable(e.g. pyinstaller) #101

timosachsenberg opened this issue Apr 19, 2023 · 7 comments
Labels
enhancement New feature or request

Comments

@timosachsenberg
Copy link

Hi, thanks for the great tool and for making it open source.

Do you know if it is easily possible/has some experience to create executables for different platforms for mokapot?

Best

@wfondrie
Copy link
Owner

wfondrie commented Apr 19, 2023

Hi @timosachsenberg 👋 - I'm glad mokapot has been useful. Also, thank you for all of the great open-source work you do too!

We're working on some major upgrades to mokapot currently (see #96 and #100 if curious), so I would want to look into this after we get those in place. I have fairly limited experience with pyinstaller, but @jspaezp might be able to comment how difficult it would be for mokapot.

I don't know if its helpful, but in the meantime we do already build a Docker image as part of our CI/CD: https://github.com/wfondrie/mokapot/pkgs/container/mokapot

@wfondrie wfondrie added the enhancement New feature or request label Apr 19, 2023
@jspaezp
Copy link
Collaborator

jspaezp commented Apr 19, 2023

Hello there!

I think it depends a bit on what the intended use is ... The easiest implementation would be to just have the cli be an executable that can be downloaded instead of installed via pip/pipx/docker (which is not too hard to do...); but I do not see a lot of value in it, since it would be just as hard to use.

On the other hand, having an executable that bundles some form of GUI (I am thinking something like the first release of fragpipe), would entail some more care.

Would you mind elaborating on how you would like to use the executable version?

[Thinking more about it, I can see it being used in the case where you want to run it on a computer, and cannot install either python or docker on it, but I am unsure of how common this is. Having said that in my experience you need admin access to run pyinstaller apps (since you need to authorize the executable), which would further restrict the "surface area" covered by the app]

@timosachsenberg
Copy link
Author

I think one main motivation would be to create a drop-in replacement for the percolator executables (mac,linux,windows) e.g. in existing workflows (without having to care about the user being able to install python and all dependencies etc.).

@jspaezp
Copy link
Collaborator

jspaezp commented Apr 24, 2023

@timosachsenberg that sounds like a good enough motivation to be honest! I think I could make a quick "prototype script" if you are willing to build it yourself for a tool you are using (while/if we add it to the regular release artifacts).
@wfondrie want to add this to the roadmap of the project? I could make a proof of concept branch in the meantime, while we do the major upgrades to the project.

@timosachsenberg
Copy link
Author

timosachsenberg commented Apr 24, 2023

sounds great. happy to test it

@RalfG
Copy link
Contributor

RalfG commented Oct 16, 2023

May be of interest for this thread: As part of compomics/ms2rescore, Mokapot is also packaged into the executable with a one-click installer. For this we use:

As this works for a package with Mokapot as dependency, I see no issues to use the same approach for Mokapot by itself.

If you have not yet started on this, @jspaezp, I can easily open a PR that implements this for Mokapot.

@jspaezp
Copy link
Collaborator

jspaezp commented Oct 16, 2023

@RalfG Indeed I have not started tackling this, I would be happy to review the PR!

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

No branches or pull requests

4 participants