-
Notifications
You must be signed in to change notification settings - Fork 197
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
python: tidy dependency management #137
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pipenv looks nice, but I had a mixed experience so far. pipenv install
took more 10 minutes to finish.
Can you add the pipenv shell
to the usage section as well?
@bkueng updated docs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the update
This commit introduces Pipenv into the workflow allowing for deterministic releases due to dependency pinning
The previous headings where getting out of hand when adding sub headings, I also moved the build status badge below the main title.
211b09e
to
f82997b
Compare
Pipenv is great for deterministic builds, because it solves the long-time dilemma of whether to lock package versions in I think it should be used as the primary package management system for the project (i.e., for CI and documentation). Pipenv is also recommended by the official Python guide about application dependency management. So far, so good. However, I also had mixed experiences in using Pipenv, especially on resource-constrained systems.
I think that all these problems may be solved by generating a
The only drawback is that This isn't intended as an attack on Kenneth Reitz's work. IMO, Pipenv is great for deterministic builds, but falls short on some use cases, and there are valid reasons why a user may deliberately decide not to use it in favor of a more traditional toolchain. |
I would also include macOS installation instructions (see #142). |
Thanks for the feedback @pietrodn, I'll add the |
We could make Pipenv generate a new |
I think I addressed the comments in my recent commits, please review |
Looks good! I tried the installation with both methods (venv + pip and pipenv), both with cached dependency downloads. For pip I used this script ( #!/bin/bash
python3 -m venv venv
venv/bin/pip install -r requirements.txt For pipenv, I used Here are the performances, measured with the
Pipenv runs faster by exploiting multiple CPUs. After removing
Dependency locking is very time-consuming. |
thanks for the metrics @pietrodn, I think we should always provide a lock if we are to move forward with this workflow change to My next goal is to make this a proper python package and expose flight_review as a command line tool to generate html reports out of ulog, I'll open an issue to discuss |
This commit introduces Pipenv into the workflow allowing for
deterministic releases due to dependency pinning