зеркало из https://github.com/mozilla/bedrock.git
Refactor dependency management to straightfoward pip-compile (#11269)
* Switch away from pip-compile-multi in attempt to resurrect Dependabot support
Calling just pip-compile from pip-tools on each input file generates files
with no inheritance/cross-file dependencies, which hopefully will help
Dependabot process them properly
* Update ADRs in light of tooling change
* Delete redundant pip-compile-multi header file
* Update documentation
* Switch to NOT inheriting from prod reqs at all
...and plug the gap with a make command 👍
* Use requirements/prod.txt to constrain the duplicate deps in dev.txt
* Update make command for installing local deps
* Remove unnecessary -U and --no-cache-dir options
* Remove docs dependencies installation from makefile shortcut, because technically it may clash with dev.txt and we don't want developer confusion. The documentation still shows how to install the deps when required
This commit is contained in:
Родитель
18ef014ffb
Коммит
571849b23f
57
Makefile
57
Makefile
|
@ -7,29 +7,30 @@ all: help
|
|||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " build - build docker images for dev"
|
||||
@echo " run - docker-compose up the entire system for dev"
|
||||
@echo " stop - stop all docker containers"
|
||||
@echo " kill - kill all docker containers (more forceful than stop)"
|
||||
@echo " pull - pull the latest production images from Docker Hub"
|
||||
@echo " run-shell - open a bash shell in a fresh container"
|
||||
@echo " shell - open a bash shell in the running app"
|
||||
@echo " djshell - start the Django Python shell in the running app"
|
||||
@echo " fresh-data - pull the latest database and update all external data"
|
||||
@echo " clean - remove all build, test, coverage and Python artifacts"
|
||||
@echo " rebuild - force a rebuild of all of the docker images"
|
||||
@echo " lint - check style with Flake8, ESlint, Stylelint, and Prettier"
|
||||
@echo " format - format front-end code using Stylelint and Prettier"
|
||||
@echo " test - run tests against local files"
|
||||
@echo " test-image - run tests against files in docker image"
|
||||
@echo " test-cdn - run CDN tests against TEST_DOMAIN"
|
||||
@echo " docs - generate Sphinx HTML documentation with server and live reload using Docker"
|
||||
@echo " livedocs - generate Sphinx HTML documentation with server and live reload"
|
||||
@echo " build-docs - generate Sphinx HTML documentation using Docker"
|
||||
@echo " build-ci - build docker images for use in our CI pipeline"
|
||||
@echo " test-ci - run tests against files in docker image built by CI"
|
||||
@echo " compile-requirements - update Python requirements files using pip-compile-multi"
|
||||
@echo " check-requirements - get a report on stale/old Python dependencies in use"
|
||||
@echo " build - build docker images for dev"
|
||||
@echo " run - docker-compose up the entire system for dev"
|
||||
@echo " stop - stop all docker containers"
|
||||
@echo " kill - kill all docker containers (more forceful than stop)"
|
||||
@echo " pull - pull the latest production images from Docker Hub"
|
||||
@echo " run-shell - open a bash shell in a fresh container"
|
||||
@echo " shell - open a bash shell in the running app"
|
||||
@echo " djshell - start the Django Python shell in the running app"
|
||||
@echo " fresh-data - pull the latest database and update all external data"
|
||||
@echo " clean - remove all build, test, coverage and Python artifacts"
|
||||
@echo " rebuild - force a rebuild of all of the docker images"
|
||||
@echo " lint - check style with Flake8, ESlint, Stylelint, and Prettier"
|
||||
@echo " format - format front-end code using Stylelint and Prettier"
|
||||
@echo " test - run tests against local files"
|
||||
@echo " test-image - run tests against files in docker image"
|
||||
@echo " test-cdn - run CDN tests against TEST_DOMAIN"
|
||||
@echo " docs - generate Sphinx HTML documentation with server and live reload using Docker"
|
||||
@echo " livedocs - generate Sphinx HTML documentation with server and live reload"
|
||||
@echo " build-docs - generate Sphinx HTML documentation using Docker"
|
||||
@echo " build-ci - build docker images for use in our CI pipeline"
|
||||
@echo " test-ci - run tests against files in docker image built by CI"
|
||||
@echo " compile-requirements - update Python requirements files using pip-compile"
|
||||
@echo " check-requirements - get a report on stale/old Python dependencies in use"
|
||||
@echo " install-local-python-deps - install Python dependencies for local development"
|
||||
|
||||
.env:
|
||||
@if [ ! -f .env ]; then \
|
||||
|
@ -150,4 +151,12 @@ compile-requirements: .docker-build-pull
|
|||
check-requirements: .docker-build-pull
|
||||
${DC} run --rm test pip list -o
|
||||
|
||||
.PHONY: all clean build pull docs livedocs build-docs lint run stop kill run-shell shell test test-image rebuild build-ci test-ci fresh-data djshell run-prod build-prod test-cdn compile-requirements check-requirements
|
||||
######################################################
|
||||
# For use in local-machine development (not in Docker)
|
||||
######################################################
|
||||
|
||||
install-local-python-deps:
|
||||
pip install -r requirements/prod.txt
|
||||
pip install -r requirements/dev.txt
|
||||
|
||||
.PHONY: all clean build pull docs livedocs build-docs lint run stop kill run-shell shell test test-image rebuild build-ci test-ci fresh-data djshell run-prod build-prod test-cdn compile-requirements check-requirements install-local-python-deps
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
#! /bin/bash
|
||||
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
|
@ -6,17 +6,15 @@
|
|||
|
||||
set -exo pipefail
|
||||
|
||||
export CUSTOM_COMPILE_COMMAND="make compile-requirements"
|
||||
# Set the command used in the reminder comment at the top of the file
|
||||
export CUSTOM_COMPILE_COMMAND="$ make compile-requirements"
|
||||
|
||||
# We need this installed, but we don't want it to live in the main requirements
|
||||
# We will need to periodically review this pinning
|
||||
|
||||
pip install -U pip==22.0.3
|
||||
pip install pip-tools==6.5.0
|
||||
pip install pip-compile-multi==2.4.3
|
||||
|
||||
pip-compile-multi \
|
||||
--generate-hashes prod \
|
||||
--generate-hashes dev \
|
||||
--generate-hashes docs \
|
||||
--header=/app/bin/pip-compile-multi-header-message.txt
|
||||
pip-compile --generate-hashes -r requirements/prod.in
|
||||
pip-compile --generate-hashes -r requirements/dev.in
|
||||
pip-compile --generate-hashes -r requirements/docs.in
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
# Please recompile requirements inside the Docker image, not on your local, host machine.
|
||||
#
|
||||
# To do this, just use the following from your host:
|
||||
#
|
||||
# $ make compile-requirements
|
||||
#
|
|
@ -4,7 +4,7 @@ Date: 2022-02-25
|
|||
|
||||
## Status
|
||||
|
||||
Accepted
|
||||
Superseded by 0007, but the context in this ADR is still useful
|
||||
|
||||
## Context
|
||||
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
# 7. Further revise tooling for Python dependency management
|
||||
|
||||
Date: 2022-03-02
|
||||
|
||||
## Status
|
||||
|
||||
Proposed
|
||||
|
||||
## Context
|
||||
|
||||
While pip-compile-multi gave us plenty fot benefits (see ADR 0006) the lack
|
||||
of Dependabot support was an annoyance and replacing it with alternatives
|
||||
seemed fairly involved.
|
||||
## Decision
|
||||
|
||||
We've downgraded to regular `pip-compile` and instead are doing the extra legwork in the Makefile instead. The input files are indentical, so we do not need to pin sub-dependencies, and we still
|
||||
get automatic hash generation for all packages.
|
||||
## Consequences
|
||||
|
||||
There should be no downsides to switching away from pip-compile-multi in this context. If Dependabot
|
||||
still does not manage to parse our multiple requirements files, we should look to renaming them in case
|
||||
that tips the balance (as has been suggested by a colleague)
|
|
@ -11,9 +11,9 @@ Developing on Bedrock
|
|||
Managing Dependencies
|
||||
---------------------
|
||||
|
||||
For Python we use `pip-compile-multi <https://pypi.org/project/pip-compile-multi/>`_ to manage dependencies expressed in
|
||||
For Python we use ``pip-compile`` from `pip-tools <https://pypi.org/project/pip-tools/>`_ to manage dependencies expressed in
|
||||
our `requirements files <https://github.com/mozilla/bedrock/tree/master/requirements>`_.
|
||||
``pip-compile-multi`` is wrapped up in Makefile commands, to ensure we use it consistently.
|
||||
``pip-compile`` is wrapped up in Makefile commands, to ensure we use it consistently.
|
||||
|
||||
If you add a new Python dependency (eg to ``requirements/prod.in`` or ``requirements/dev.in``) you can generate a pinned and hash-marked
|
||||
addition to our requirements files just by running:
|
||||
|
|
|
@ -188,7 +188,7 @@ using ``zsh``, the ``pyenv`` docs have other routes ::
|
|||
|
||||
3. Install / update dependencies ::
|
||||
|
||||
$ pip install -U -r requirements/dev.txt --no-cache-dir
|
||||
$ make install-local-python-deps
|
||||
|
||||
.. note::
|
||||
|
||||
|
@ -201,7 +201,7 @@ using ``zsh``, the ``pyenv`` docs have other routes ::
|
|||
|
||||
.. code-block:: bash
|
||||
|
||||
$ pip install -r requirements/dev.txt
|
||||
$ make install-local-python-deps
|
||||
|
||||
If you are on Linux, you may need at least the following packages or their equivalent for your distro::
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
-r prod.in
|
||||
# Use the prod.txt file for constraints, to ensure compatibility
|
||||
-c prod.txt
|
||||
|
||||
black==21.12b0
|
||||
bpython==0.22.1
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
# SHA1:835718e7a4d50c372a5b00bd3d8713a040e14cb2
|
||||
# Please recompile requirements inside the Docker image, not on your local, host machine.
|
||||
#
|
||||
# To do this, just use the following from your host:
|
||||
# This file is autogenerated by pip-compile with python 3.9
|
||||
# To update, run:
|
||||
#
|
||||
# $ make compile-requirements
|
||||
# $ make compile-requirements
|
||||
#
|
||||
-r prod.txt
|
||||
attrs==21.4.0 \
|
||||
--hash=sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4 \
|
||||
--hash=sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd
|
||||
# via
|
||||
# -c requirements/prod.txt
|
||||
# pytest
|
||||
black==21.12b0 \
|
||||
--hash=sha256:77b80f693a569e2e527958459634f18df9b0ba2625ba4e0c2d5da5be42e6f2b3 \
|
||||
--hash=sha256:a615e69ae185e08fdd73e4715e260e2479c861b5740057fde6e8b4e3b7dd589f
|
||||
|
@ -23,6 +27,18 @@ braceexpand==0.1.7 \
|
|||
--hash=sha256:91332d53de7828103dcae5773fb43bc34950b0c8160e35e0f44c4427a3b85014 \
|
||||
--hash=sha256:e6e539bd20eaea53547472ff94f4fb5c3d3bf9d0a89388c4b56663aba765f705
|
||||
# via -r requirements/dev.in
|
||||
certifi==2021.10.8 \
|
||||
--hash=sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872 \
|
||||
--hash=sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569
|
||||
# via
|
||||
# -c requirements/prod.txt
|
||||
# requests
|
||||
charset-normalizer==2.0.12 \
|
||||
--hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \
|
||||
--hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df
|
||||
# via
|
||||
# -c requirements/prod.txt
|
||||
# requests
|
||||
cl-ext-lang==0.1.0 \
|
||||
--hash=sha256:662fcccc1ff77063dd9d6bad770c26d1345cf4cf01e679eab136e80f3ec2935c \
|
||||
--hash=sha256:90b94aaee4afecbf2a9be3cd65656940f38edea3ddde14b93a02a9e1ee5d1f72
|
||||
|
@ -132,6 +148,38 @@ flake8==4.0.1 \
|
|||
--hash=sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d \
|
||||
--hash=sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d
|
||||
# via -r requirements/dev.in
|
||||
fluent-syntax==0.17.0 \
|
||||
--hash=sha256:ac3db2f77d62b032fdf1f17ef5c390b7801a9e9fb58d41eca3825c0d47b88d79 \
|
||||
--hash=sha256:e26be470aeebe4badd84f7bb0b648414e0f2ef95d26e5336d634af99e402ea61
|
||||
# via compare-locales
|
||||
greenlet==0.4.17 \
|
||||
--hash=sha256:1023d7b43ca11264ab7052cb09f5635d4afdb43df55e0854498fc63070a0b206 \
|
||||
--hash=sha256:124a3ae41215f71dc91d1a3d45cbf2f84e46b543e5d60b99ecc20e24b4c8f272 \
|
||||
--hash=sha256:13037e2d7ab2145300676852fa069235512fdeba4ed1e3bb4b0677a04223c525 \
|
||||
--hash=sha256:3af587e9813f9bd8be9212722321a5e7be23b2bc37e6323a90e592ab0c2ef117 \
|
||||
--hash=sha256:41d8835c69a78de718e466dd0e6bfd4b46125f21a67c3ff6d76d8d8059868d6b \
|
||||
--hash=sha256:4481002118b2f1588fa3d821936ffdc03db80ef21186b62b90c18db4ba5e743b \
|
||||
--hash=sha256:47825c3a109f0331b1e54c1173d4e57fa000aa6c96756b62852bfa1af91cd652 \
|
||||
--hash=sha256:5494e3baeacc371d988345fbf8aa4bd15555b3077c40afcf1994776bb6d77eaf \
|
||||
--hash=sha256:75e4c27188f28149b74e7685809f9227410fd15432a4438fc48627f518577fa5 \
|
||||
--hash=sha256:97f2b01ab622a4aa4b3724a3e1fba66f47f054c434fbaa551833fa2b41e3db51 \
|
||||
--hash=sha256:a34023b9eabb3525ee059f3bf33a417d2e437f7f17e341d334987d4091ae6072 \
|
||||
--hash=sha256:ac85db59aa43d78547f95fc7b6fd2913e02b9e9b09e2490dfb7bbdf47b2a4914 \
|
||||
--hash=sha256:be7a79988b8fdc5bbbeaed69e79cfb373da9759242f1565668be4fb7f3f37552 \
|
||||
--hash=sha256:bee111161420f341a346731279dd976be161b465c1286f82cc0779baf7b729e8 \
|
||||
--hash=sha256:ccd62f09f90b2730150d82f2f2ffc34d73c6ce7eac234aed04d15dc8a3023994 \
|
||||
--hash=sha256:d3436110ca66fe3981031cc6aff8cc7a40d8411d173dde73ddaa5b8445385e2d \
|
||||
--hash=sha256:e495096e3e2e8f7192afb6aaeba19babc4fb2bdf543d7b7fed59e00c1df7f170 \
|
||||
--hash=sha256:e66a824f44892bc4ec66c58601a413419cafa9cec895e63d8da889c8a1a4fa4a
|
||||
# via
|
||||
# -c requirements/prod.txt
|
||||
# bpython
|
||||
idna==3.3 \
|
||||
--hash=sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff \
|
||||
--hash=sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d
|
||||
# via
|
||||
# -c requirements/prod.txt
|
||||
# requests
|
||||
importlib-metadata==4.2.0 \
|
||||
--hash=sha256:057e92c15bc8d9e8109738a48db0ccb31b4d9d5cfbee5a8670879a30be66304b \
|
||||
--hash=sha256:b7e52a1f8dec14a75ea73e0891f3060099ca1d8e6a462a4dff11c3e119ea1b31
|
||||
|
@ -144,16 +192,85 @@ isort==5.10.1 \
|
|||
--hash=sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7 \
|
||||
--hash=sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951
|
||||
# via -r requirements/dev.in
|
||||
lxml==4.7.1 \
|
||||
--hash=sha256:0607ff0988ad7e173e5ddf7bf55ee65534bd18a5461183c33e8e41a59e89edf4 \
|
||||
--hash=sha256:09b738360af8cb2da275998a8bf79517a71225b0de41ab47339c2beebfff025f \
|
||||
--hash=sha256:0a5f0e4747f31cff87d1eb32a6000bde1e603107f632ef4666be0dc065889c7a \
|
||||
--hash=sha256:0b5e96e25e70917b28a5391c2ed3ffc6156513d3db0e1476c5253fcd50f7a944 \
|
||||
--hash=sha256:1104a8d47967a414a436007c52f533e933e5d52574cab407b1e49a4e9b5ddbd1 \
|
||||
--hash=sha256:13dbb5c7e8f3b6a2cf6e10b0948cacb2f4c9eb05029fe31c60592d08ac63180d \
|
||||
--hash=sha256:2a906c3890da6a63224d551c2967413b8790a6357a80bf6b257c9a7978c2c42d \
|
||||
--hash=sha256:317bd63870b4d875af3c1be1b19202de34c32623609ec803b81c99193a788c1e \
|
||||
--hash=sha256:34c22eb8c819d59cec4444d9eebe2e38b95d3dcdafe08965853f8799fd71161d \
|
||||
--hash=sha256:36b16fecb10246e599f178dd74f313cbdc9f41c56e77d52100d1361eed24f51a \
|
||||
--hash=sha256:38d9759733aa04fb1697d717bfabbedb21398046bd07734be7cccc3d19ea8675 \
|
||||
--hash=sha256:3e26ad9bc48d610bf6cc76c506b9e5ad9360ed7a945d9be3b5b2c8535a0145e3 \
|
||||
--hash=sha256:41358bfd24425c1673f184d7c26c6ae91943fe51dfecc3603b5e08187b4bcc55 \
|
||||
--hash=sha256:447d5009d6b5447b2f237395d0018901dcc673f7d9f82ba26c1b9f9c3b444b60 \
|
||||
--hash=sha256:44f552e0da3c8ee3c28e2eb82b0b784200631687fc6a71277ea8ab0828780e7d \
|
||||
--hash=sha256:490712b91c65988012e866c411a40cc65b595929ececf75eeb4c79fcc3bc80a6 \
|
||||
--hash=sha256:4c093c571bc3da9ebcd484e001ba18b8452903cd428c0bc926d9b0141bcb710e \
|
||||
--hash=sha256:50d3dba341f1e583265c1a808e897b4159208d814ab07530202b6036a4d86da5 \
|
||||
--hash=sha256:534e946bce61fd162af02bad7bfd2daec1521b71d27238869c23a672146c34a5 \
|
||||
--hash=sha256:585ea241ee4961dc18a95e2f5581dbc26285fcf330e007459688096f76be8c42 \
|
||||
--hash=sha256:59e7da839a1238807226f7143c68a479dee09244d1b3cf8c134f2fce777d12d0 \
|
||||
--hash=sha256:5b0f782f0e03555c55e37d93d7a57454efe7495dab33ba0ccd2dbe25fc50f05d \
|
||||
--hash=sha256:5bee1b0cbfdb87686a7fb0e46f1d8bd34d52d6932c0723a86de1cc532b1aa489 \
|
||||
--hash=sha256:610807cea990fd545b1559466971649e69302c8a9472cefe1d6d48a1dee97440 \
|
||||
--hash=sha256:6308062534323f0d3edb4e702a0e26a76ca9e0e23ff99be5d82750772df32a9e \
|
||||
--hash=sha256:67fa5f028e8a01e1d7944a9fb616d1d0510d5d38b0c41708310bd1bc45ae89f6 \
|
||||
--hash=sha256:6a2ab9d089324d77bb81745b01f4aeffe4094306d939e92ba5e71e9a6b99b71e \
|
||||
--hash=sha256:6c198bfc169419c09b85ab10cb0f572744e686f40d1e7f4ed09061284fc1303f \
|
||||
--hash=sha256:6e56521538f19c4a6690f439fefed551f0b296bd785adc67c1777c348beb943d \
|
||||
--hash=sha256:6ec829058785d028f467be70cd195cd0aaf1a763e4d09822584ede8c9eaa4b03 \
|
||||
--hash=sha256:718d7208b9c2d86aaf0294d9381a6acb0158b5ff0f3515902751404e318e02c9 \
|
||||
--hash=sha256:735e3b4ce9c0616e85f302f109bdc6e425ba1670a73f962c9f6b98a6d51b77c9 \
|
||||
--hash=sha256:772057fba283c095db8c8ecde4634717a35c47061d24f889468dc67190327bcd \
|
||||
--hash=sha256:7b5e2acefd33c259c4a2e157119c4373c8773cf6793e225006a1649672ab47a6 \
|
||||
--hash=sha256:82d16a64236970cb93c8d63ad18c5b9f138a704331e4b916b2737ddfad14e0c4 \
|
||||
--hash=sha256:87c1b0496e8c87ec9db5383e30042357b4839b46c2d556abd49ec770ce2ad868 \
|
||||
--hash=sha256:8e54945dd2eeb50925500957c7c579df3cd07c29db7810b83cf30495d79af267 \
|
||||
--hash=sha256:9393a05b126a7e187f3e38758255e0edf948a65b22c377414002d488221fdaa2 \
|
||||
--hash=sha256:9fbc0dee7ff5f15c4428775e6fa3ed20003140560ffa22b88326669d53b3c0f4 \
|
||||
--hash=sha256:a1613838aa6b89af4ba10a0f3a972836128801ed008078f8c1244e65958f1b24 \
|
||||
--hash=sha256:a1bbc4efa99ed1310b5009ce7f3a1784698082ed2c1ef3895332f5df9b3b92c2 \
|
||||
--hash=sha256:a555e06566c6dc167fbcd0ad507ff05fd9328502aefc963cb0a0547cfe7f00db \
|
||||
--hash=sha256:a58d78653ae422df6837dd4ca0036610b8cb4962b5cfdbd337b7b24de9e5f98a \
|
||||
--hash=sha256:a5edc58d631170de90e50adc2cc0248083541affef82f8cd93bea458e4d96db8 \
|
||||
--hash=sha256:a5f623aeaa24f71fce3177d7fee875371345eb9102b355b882243e33e04b7175 \
|
||||
--hash=sha256:adaab25be351fff0d8a691c4f09153647804d09a87a4e4ea2c3f9fe9e8651851 \
|
||||
--hash=sha256:ade74f5e3a0fd17df5782896ddca7ddb998845a5f7cd4b0be771e1ffc3b9aa5b \
|
||||
--hash=sha256:b1d381f58fcc3e63fcc0ea4f0a38335163883267f77e4c6e22d7a30877218a0e \
|
||||
--hash=sha256:bf6005708fc2e2c89a083f258b97709559a95f9a7a03e59f805dd23c93bc3986 \
|
||||
--hash=sha256:d546431636edb1d6a608b348dd58cc9841b81f4116745857b6cb9f8dadb2725f \
|
||||
--hash=sha256:d5618d49de6ba63fe4510bdada62d06a8acfca0b4b5c904956c777d28382b419 \
|
||||
--hash=sha256:dfd0d464f3d86a1460683cd742306d1138b4e99b79094f4e07e1ca85ee267fe7 \
|
||||
--hash=sha256:e18281a7d80d76b66a9f9e68a98cf7e1d153182772400d9a9ce855264d7d0ce7 \
|
||||
--hash=sha256:e410cf3a2272d0a85526d700782a2fa92c1e304fdcc519ba74ac80b8297adf36 \
|
||||
--hash=sha256:e662c6266e3a275bdcb6bb049edc7cd77d0b0f7e119a53101d367c841afc66dc \
|
||||
--hash=sha256:ec9027d0beb785a35aa9951d14e06d48cfbf876d8ff67519403a2522b181943b \
|
||||
--hash=sha256:eed394099a7792834f0cb4a8f615319152b9d801444c1c9e1b1a2c36d2239f9e \
|
||||
--hash=sha256:f76dbe44e31abf516114f6347a46fa4e7c2e8bceaa4b6f7ee3a0a03c8eba3c17 \
|
||||
--hash=sha256:fc15874816b9320581133ddc2096b644582ab870cf6a6ed63684433e7af4b0d3 \
|
||||
--hash=sha256:fc9fb11b65e7bc49f7f75aaba1b700f7181d95d4e151cf2f24d51bfd14410b77
|
||||
# via
|
||||
# -c requirements/prod.txt
|
||||
# pyquery
|
||||
# translate-toolkit
|
||||
mccabe==0.6.1 \
|
||||
--hash=sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42 \
|
||||
--hash=sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f
|
||||
# via flake8
|
||||
mdx_outline @ https://github.com/mozmeao/mdx_outline/archive/refs/tags/python-3.9-compat.tar.gz --hash=sha256:c37385f222866684a0a92e3b38588003c6d8c3dbcf55aea854cf543baae425c5
|
||||
# via -r requirements/prod.in
|
||||
mypy-extensions==0.4.3 \
|
||||
--hash=sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d \
|
||||
--hash=sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8
|
||||
# via black
|
||||
packaging==21.3 \
|
||||
--hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \
|
||||
--hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522
|
||||
# via
|
||||
# -c requirements/prod.txt
|
||||
# pytest
|
||||
parsimonious==0.8.1 \
|
||||
--hash=sha256:3add338892d580e0cb3b1a39e4a1b427ff9f687858fdd61097053742391a9f6b
|
||||
# via cl-ext.lang
|
||||
|
@ -189,6 +306,12 @@ pygments==2.11.2 \
|
|||
--hash=sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65 \
|
||||
--hash=sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a
|
||||
# via bpython
|
||||
pyparsing==3.0.7 \
|
||||
--hash=sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea \
|
||||
--hash=sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484
|
||||
# via
|
||||
# -c requirements/prod.txt
|
||||
# packaging
|
||||
pypom==1.0 \
|
||||
--hash=sha256:5c98e3d8ef2c7f96c3365a3b8295560446f2447eecdcfe393a30abf2fcc16d96 \
|
||||
--hash=sha256:a8728981970404c3c9a14efeb23da92191749a4a4ad489130fd855e4cf8f154e
|
||||
|
@ -252,6 +375,12 @@ pytest-variables==1.9.0 \
|
|||
--hash=sha256:ccf4afcd70de1f5f18b4463758a19f24647a9def1805f675e80db851c9e00ac0 \
|
||||
--hash=sha256:f79851e4c92a94c93d3f1d02377b5ac97cc8800392e87d108d2cbfda774ecc2a
|
||||
# via pytest-selenium
|
||||
python-dateutil==2.8.2 \
|
||||
--hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \
|
||||
--hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9
|
||||
# via
|
||||
# -c requirements/prod.txt
|
||||
# faker
|
||||
pytoml==0.1.21 \
|
||||
--hash=sha256:57a21e6347049f73bfb62011ff34cd72774c031b9828cb628a752225136dfc33 \
|
||||
--hash=sha256:8eecf7c8d0adcff3b375b09fe403407aa9b645c499e5ab8cac670ac4a35f61e7
|
||||
|
@ -260,6 +389,15 @@ pyxdg==0.27 \
|
|||
--hash=sha256:2d6701ab7c74bbab8caa6a95e0a0a129b1643cf6c298bf7c569adec06d0709a0 \
|
||||
--hash=sha256:80bd93aae5ed82435f20462ea0208fb198d8eec262e831ee06ce9ddb6b91c5a5
|
||||
# via bpython
|
||||
requests==2.27.1 \
|
||||
--hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \
|
||||
--hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d
|
||||
# via
|
||||
# -c requirements/prod.txt
|
||||
# bpython
|
||||
# pytest-base-url
|
||||
# pytest-selenium
|
||||
# responses
|
||||
responses==0.17.0 \
|
||||
--hash=sha256:e4fc472fb7374fb8f84fcefa51c515ca4351f198852b4eb7fc88223780b472ea \
|
||||
--hash=sha256:ec675e080d06bf8d1fb5e5a68a1e5cd0df46b09c78230315f650af5e4036bec7
|
||||
|
@ -271,6 +409,16 @@ selenium==3.141.0 \
|
|||
# -r requirements/dev.in
|
||||
# pypom
|
||||
# pytest-selenium
|
||||
six==1.16.0 \
|
||||
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
|
||||
--hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254
|
||||
# via
|
||||
# -c requirements/prod.txt
|
||||
# blessings
|
||||
# compare-locales
|
||||
# parsimonious
|
||||
# python-dateutil
|
||||
# responses
|
||||
tblib==1.7.0 \
|
||||
--hash=sha256:059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c \
|
||||
--hash=sha256:289fa7359e580950e7d9743eab36b0691f0310fce64dee7d9c31065b8f723e23
|
||||
|
@ -294,6 +442,14 @@ typing-extensions==4.1.1 \
|
|||
# via
|
||||
# black
|
||||
# bpython
|
||||
urllib3==1.26.8 \
|
||||
--hash=sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed \
|
||||
--hash=sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c
|
||||
# via
|
||||
# -c requirements/prod.txt
|
||||
# requests
|
||||
# responses
|
||||
# selenium
|
||||
zipp==3.7.0 \
|
||||
--hash=sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d \
|
||||
--hash=sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
# SHA1:be9f702bee5f6a4caede832673b3fa305c50f9e8
|
||||
# Please recompile requirements inside the Docker image, not on your local, host machine.
|
||||
#
|
||||
# To do this, just use the following from your host:
|
||||
# This file is autogenerated by pip-compile with python 3.9
|
||||
# To update, run:
|
||||
#
|
||||
# $ make compile-requirements
|
||||
# $ make compile-requirements
|
||||
#
|
||||
alabaster==0.7.12 \
|
||||
--hash=sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359 \
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
# SHA1:e65842ca9e73139525dd7b2bf1c4e8366105303f
|
||||
# Please recompile requirements inside the Docker image, not on your local, host machine.
|
||||
#
|
||||
# To do this, just use the following from your host:
|
||||
# This file is autogenerated by pip-compile with python 3.9
|
||||
# To update, run:
|
||||
#
|
||||
# $ make compile-requirements
|
||||
# $ make compile-requirements
|
||||
#
|
||||
apscheduler==3.8.1 \
|
||||
--hash=sha256:5cf344ebcfbdaa48ae178c029c055cec7bc7a4a47c21e315e4d1f08bd35f2355 \
|
||||
|
@ -393,7 +392,8 @@ markupsafe==2.1.0 \
|
|||
--hash=sha256:fabbe18087c3d33c5824cb145ffca52eccd053061df1d79d4b66dafa5ad2a5ea \
|
||||
--hash=sha256:fc3150f85e2dbcf99e65238c842d1cfe69d3e7649b19864c1cc043213d9cd730
|
||||
# via jinja2
|
||||
mdx_outline @ https://github.com/mozmeao/mdx_outline/archive/refs/tags/python-3.9-compat.tar.gz --hash=sha256:c37385f222866684a0a92e3b38588003c6d8c3dbcf55aea854cf543baae425c5
|
||||
mdx_outline @ https://github.com/mozmeao/mdx_outline/archive/refs/tags/python-3.9-compat.tar.gz \
|
||||
--hash=sha256:c37385f222866684a0a92e3b38588003c6d8c3dbcf55aea854cf543baae425c5
|
||||
# via -r requirements/prod.in
|
||||
meinheld==1.0.2 \
|
||||
--hash=sha256:008c76937ac2117cc69e032dc69cea9f85fc605de9bac1417f447c41c16a56d6
|
||||
|
|
Загрузка…
Ссылка в новой задаче