-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
PLAT-2060 Use pip-tools to manage requirements files #17825
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,6 @@ | |
"pyparsing==2.2.0", | ||
"numpy==1.6.2", | ||
"scipy==0.14.0", | ||
"nltk==3.2.5", | ||
"nltk", | ||
], | ||
) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Packages to install in the Python sandbox for secured execution of code provided by course authors. | ||
# | ||
# DON'T JUST ADD NEW DEPENDENCIES!!! | ||
# | ||
# If you open a pull request that adds a new dependency, you should: | ||
# * verify that the dependency has a license compatible with AGPLv3 | ||
# * confirm that it has no system requirements beyond what we already install | ||
# * run "make upgrade" to update the detailed requirements files | ||
|
||
-r shared.txt # Dependencies in common with LMS and Studio | ||
matplotlib==1.3.1 # 2D plotting library |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,33 @@ | ||
# DON'T JUST ADD NEW DEPENDENCIES!!! | ||
# | ||
# If you open a pull request that adds a new dependency, you should notify: | ||
# * @edx/ospr - to check licensing | ||
# * @edx/devops - to check system requirements | ||
|
||
# Pin packaging tools the same as edxapp. Keep them in sync for our sanity. | ||
setuptools==37.0.0 | ||
pip==9.0.1 | ||
# This file is autogenerated by pip-compile | ||
# To update, run: | ||
# | ||
# make upgrade | ||
# | ||
|
||
-e common/lib/calc | ||
-e common/lib/chem | ||
-e common/lib/sandbox-packages | ||
-e common/lib/symmath | ||
asn1crypto==0.24.0 | ||
backports-abc==0.5 # via tornado | ||
cffi==1.11.5 | ||
cryptography==2.1.4 | ||
enum34==1.1.6 | ||
futures==3.2.0 # via tornado | ||
idna==2.6 | ||
ipaddress==1.0.19 | ||
lxml==3.8.0 | ||
matplotlib==1.3.1 | ||
networkx==1.7 | ||
nltk==3.2.5 | ||
nose==1.3.7 # via matplotlib | ||
numpy==1.6.2 | ||
networkx==1.7 | ||
pycparser==2.18 | ||
pyparsing==2.0.7 | ||
python-dateutil==2.7.2 # via matplotlib | ||
scipy==0.14.0 | ||
singledispatch==3.4.0.3 # via tornado | ||
six==1.11.0 | ||
sympy==0.7.1 | ||
pyparsing==2.2.0 | ||
cryptography==1.9 | ||
tornado==5.0.2 # via matplotlib |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,3 @@ | ||
# DON'T JUST ADD NEW DEPENDENCIES!!! | ||
# | ||
# If you open a pull request that adds a new dependency, you should notify: | ||
# * @edx/ospr - to check licensing | ||
# * @edx/devops - to check system requirements | ||
|
||
# Install these packages from the edx-platform working tree | ||
# NOTE: if you change code in these packages, you MUST change the version | ||
# number in its setup.py or the code WILL NOT be installed during deploy. | ||
common/lib/calc | ||
common/lib/chem | ||
common/lib/sandbox-packages | ||
common/lib/symmath | ||
# Placeholder for code which hasn't yet been updated to no longer use this file. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What code hasn't been updated? Ansible? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, a few different places in the configuration repo. After that's updated I plan to come back and remove these now-unnecessary files. |
||
# The requirements which were here have been moved to shared.in, and are now | ||
# incorporated into base.txt |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,3 @@ | ||
# DON'T JUST ADD NEW DEPENDENCIES!!! | ||
# | ||
# If you open a pull request that adds a new dependency, you should notify: | ||
# * @edx/ospr - to check licensing | ||
# * @edx/devops - to check system requirements | ||
|
||
# Packages to install in the Python sandbox for secured execution. | ||
scipy==0.14.0 | ||
# lxml is also in requirements/edx/base.txt | ||
lxml==3.8.0 | ||
matplotlib==1.3.1 | ||
# Placeholder for code which hasn't yet been updated to no longer use this file. | ||
# The requirements which were here have been moved to shared.in and base.in, | ||
# and are now incorporated into base.txt |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Core dependencies shared between Python sandboxes for secured execution and edx-platform. | ||
# | ||
# DON'T JUST ADD NEW DEPENDENCIES!!! | ||
# | ||
# If you open a pull request that adds a new dependency, you should: | ||
# * verify that the dependency has a license compatible with AGPLv3 | ||
# * confirm that it has no system requirements beyond what we already install | ||
# * run "make upgrade" to update the detailed requirements files | ||
|
||
cryptography==2.1.4 # Implementations of assorted cryptography algorithms | ||
lxml==3.8.0 # XML parser | ||
networkx==1.7 # Utilities for creating, manipulating, and studying network graphs | ||
nltk # Natural language processing; used by the chem package | ||
numpy==1.6.2 # Numeric array processing utilities; used by calc, chem, and scipy | ||
pyparsing # Python parsing library; used by the calc package | ||
sympy==0.7.1 # Symbolic math library; used by the calc package | ||
scipy==0.14.0 # Math, science, and engineering library; used by the calc package | ||
|
||
# Install these packages from the edx-platform working tree | ||
# NOTE: if you change code in these packages, you MUST change the version | ||
# number in its setup.py or the code WILL NOT be installed during deploy. | ||
-e common/lib/calc | ||
-e common/lib/chem | ||
-e common/lib/sandbox-packages | ||
-e common/lib/symmath |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# | ||
# This file is autogenerated by pip-compile | ||
# To update, run: | ||
# | ||
# make upgrade | ||
# | ||
|
||
-e common/lib/calc | ||
-e common/lib/chem | ||
-e common/lib/sandbox-packages | ||
-e common/lib/symmath | ||
asn1crypto==0.24.0 # via cryptography | ||
cffi==1.11.5 # via cryptography | ||
cryptography==2.1.4 | ||
enum34==1.1.6 # via cryptography | ||
idna==2.6 # via cryptography | ||
ipaddress==1.0.19 # via cryptography | ||
lxml==3.8.0 | ||
networkx==1.7 | ||
nltk==3.2.5 | ||
numpy==1.6.2 | ||
pycparser==2.18 # via cffi | ||
pyparsing==2.0.7 | ||
scipy==0.14.0 | ||
six==1.11.0 # via cryptography, nltk | ||
sympy==0.7.1 |
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.
Are these all just in a specific order which guarantees that no compilation is performed with an old compiled .txt file? In general I thought that no .in file would install a .txt file, but maybe we want to do that for performance reasons?
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.
Right, this sequence compiles them such that the ones which are included in other files get built before the ones that include them. The reason for including ".txt" instead of ".in" files is to ensure consistency of dependency versions across different contexts (so pip-tools doesn't resolve to one version for production and a different one for tests after constraints from additional dependencies are imposed). I'm currently making an edit to the draft OEP to explain that reasoning.
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.
There needs to be a comment here pointing at that explanation. This looks easy to screw up.
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.
Will add.