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

Package and distribute Flintrock for users and developers #15

Closed
6 tasks
nchammas opened this issue Oct 7, 2015 · 1 comment
Closed
6 tasks

Package and distribute Flintrock for users and developers #15

nchammas opened this issue Oct 7, 2015 · 1 comment
Milestone

Comments

@nchammas
Copy link
Owner

nchammas commented Oct 7, 2015

#2 is where, among other things, we settle on the general approach for distributing Flintrock. This issue here is where we sort out the details.

Here is a rough outline of what packaging and distributing Flintrock should cover:

  • Per Settle on supported Python versions and primary release method #2, we probably want to distribute some kind of binary package so people don't need to have Python installed to run Flintrock. This is for most users.

    • We probably need to look into tools like cx_Freeze and family.
    • PyInstaller recently made a 3.0 release and seems to have the best momentum and feature set behind it. They fix issues quickly and recently merged in hooks for boto which will be released in 3.1.
  • For people who want to use Flintrock as a library or otherwise integrate deeply with it, we need to give them some way to install Flintrock with pip. I'm not sure if pip can also cover the binary distribution, or if we'll need two separate ways of installing Flintrock, one for users and one for developers.

    So there's some research to be done here:

    • Do we need user vs. developer installation methods, or can one method cover both?
    • Is it possible to automatically install Flintrock's dependencies to a virtual environment when installing Flintrock via pip? That way developers don't have to worry about doing this themselves.
    • Make sure to cover the Windows setuptools config so that Flintrock can be installed on Windows properly.
    • Review the Python Packaging User Guide.
@nchammas
Copy link
Owner Author

OK, here's what I'm going to do:

  • I'm going to close this issue as part of Prepare Flintrock for its first release #67.
  • We'll make an initial release of Flintrock to PyPI the usual way. pip will start off as the only "end-user" way to install Flintrock, and Python 3.4+ will be required.
  • Stand-alone packages using something like PyInstaller will be tracked in a separate issue. We want to enable people to use Flintrock without Python installed.
  • In the near future -- maybe within 3-6 months? -- I will make a serious push to migrate from Paramiko to AsyncSSH and take advantage of Python 3.5's async and await syntax. This should (and we'll confirm it with testing) drastically improve our launch times and even simplify the codebase, but it will also increase the need for a stand-alone package for Flintrock since not many people will be using Python 3.5.
  • Windows support is already being tracked as part of Support running Flintrock from Windows #46.

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

No branches or pull requests

1 participant