diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index ed69e092..df7a9ba5 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -5,21 +5,21 @@ permissions: {} jobs: pre-commit: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v1 - - name: Setup python 3.8 + - name: Setup python 3.10 uses: actions/setup-python@v1 with: - python-version: 3.8 + python-version: 3.10.14 - name: Install pre-commit run: pip install pre-commit - name: Run pre-commit run: pre-commit run --all-files ## Uncomment once license tests are in and passing #license-check: - # runs-on: ubuntu-18.04 + # runs-on: ubuntu-22.04 # steps: # - name: Checkout # uses: actions/checkout@v1 @@ -40,10 +40,10 @@ jobs: # - name: Run license finder # run: license_finder test-unit: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: matrix: - python-version: ['3.7.x', '3.8.x'] + python-version: ['3.10.x'] steps: - name: Checkout uses: actions/checkout@v1 @@ -54,28 +54,28 @@ jobs: - name: Install apt dependencies run: sudo apt-get update && sudo apt-get install -y python3-dev openssl libssl-dev gcc pkg-config libffi-dev libxml2-dev libxmlsec1-dev - name: Install dependencies - run: pip install -r piptools_requirements.txt && pip install -r piptools_requirements3.txt && pip install -r requirements3.txt + run: pip install -r piptools_requirements.txt && pip install -r requirements.txt - name: Run python unit tests run: make test_unit test-integration: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v1 - name: Run python integration tests run: "make actions_test_integration" test-frontend: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v1 - uses: actions/setup-node@v1 with: - node-version: '8.x' + node-version: '20.x' - name: Run frontend tests run: "npm install grunt-cli && npm install && grunt test" build-dist-docker-image: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 - name: Extract metadata (tags, labels) for Docker diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 06be3779..ed7e50c8 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -8,14 +8,14 @@ on: jobs: build-and-deploy-docs: name: Build and publish docs - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v1 - - name: Setup python 3.8 + - name: Setup python 3.10 uses: actions/setup-python@v1 with: - python-version: 3.8 + python-version: 3.10.14 - name: Install virtualenv run: pip install virtualenv - name: Install xmlsec @@ -33,14 +33,14 @@ jobs: FOLDER: generated/docs # The folder the action should deploy. build-and-publish-python-module: name: Build and publish python module to pypi - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v1 - - name: Setup python 3.8 + - name: Setup python 3.10 uses: actions/setup-python@v1 with: - python-version: 3.8 + python-version: 3.10.14 - name: Add wheel dependency run: pip install wheel - name: Generate dist @@ -58,7 +58,7 @@ jobs: # GitHub Container Registry). packages: write name: Build and publish Docker images to GitHub Container Registry - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 - name: Extract metadata (tags, labels) for Docker diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9f67dbc0..2e3c2d8c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,10 +13,12 @@ repos: - id: mypy additional_dependencies: - --no-compile - - cffi==1.14.6 - - cryptography==41.0.1 - - pycparser==2.21 - - types-pyopenssl==23.2.0.1 - - types-pytz==2023.3.0.0 - - types-pyyaml==6.0.12.10 - - types-redis==4.6.0.0 + - cffi==1.16.0 + - cryptography==43.0.0 + - pycparser==2.22 + - types-cffi==1.16.0.20240331 + - types-pyopenssl==24.1.0.20240722 + - types-pytz==2024.1.0.20240417 + - types-pyyaml==6.0.12.20240724 + - types-redis==4.6.0.20240425 + - types-setuptools==71.1.0.20240724 diff --git a/CHANGELOG.md b/CHANGELOG.md index 07db54bc..d4f783a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 6.6.1 + +* Upgrade confidant to python 3.10.14 + ## 6.5.8 * Migrated to docker compose v2 diff --git a/Dockerfile b/Dockerfile index 6162a8b2..06d31419 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:bionic +FROM ubuntu:jammy LABEL maintainer="rlane@lyft.com" WORKDIR /srv/confidant @@ -6,14 +6,14 @@ WORKDIR /srv/confidant RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ curl ca-certificates \ - && /usr/bin/curl -sL --fail https://deb.nodesource.com/setup_10.x | bash - + && /usr/bin/curl -sL --fail https://deb.nodesource.com/setup_20.x | bash - RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ # For frontend make nodejs git-core \ # For backend gcc pkg-config \ - python3.8-dev virtualenv \ + python3.10-dev virtualenv \ libffi-dev libxml2-dev libxmlsec1-dev \ && apt-get clean && rm -rf /var/lib/apt/lists/* @@ -22,18 +22,17 @@ COPY package.json /srv/confidant/ RUN npm install grunt-cli && \ npm install -COPY piptools_requirements.txt piptools_requirements3.txt requirements3.txt /srv/confidant/ +COPY piptools_requirements.txt requirements.txt /srv/confidant/ ENV PATH=/venv/bin:$PATH -RUN virtualenv /venv --python=/usr/bin/python3.8 && \ +RUN virtualenv /venv --python=/usr/bin/python3.10 && \ pip install --no-cache -r piptools_requirements.txt && \ - pip install --no-cache -r piptools_requirements3.txt && \ - pip install --no-cache -r requirements3.txt + pip install --no-cache -r requirements.txt COPY .jshintrc Gruntfile.js /srv/confidant/ COPY confidant/public /srv/confidant/confidant/public -RUN node_modules/grunt-cli/bin/grunt build --force +RUN node_modules/grunt-cli/bin/grunt build COPY . /srv/confidant diff --git a/Gruntfile.js b/Gruntfile.js index 0ef9786a..503c887e 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -11,6 +11,7 @@ module.exports = function (grunt) { // Configurable paths for the application var appConfig = { + baseDir: '', nodeDir: 'node_modules', app: 'confidant/public', components: 'confidant/public/components', @@ -45,7 +46,7 @@ module.exports = function (grunt) { // Make sure code styles are up to par and there are no obvious mistakes jshint: { options: { - jshintrc: '<%= baseDir %>.jshintrc', + jshintrc: '.jshintrc', reporter: require('jshint-stylish') }, all: { @@ -67,7 +68,8 @@ module.exports = function (grunt) { options: { ignorePath: '<%= project.app %>', relative: false, - destFile:'<%= project.app %>/index.html' + destFile:'<%= project.app %>/index.html', + lineEnding: '\n', }, scripts: { src: [ diff --git a/VERSION b/VERSION index 349c8914..09a7391e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.5.8 +6.6.1 diff --git a/actions_run_integration.sh b/actions_run_integration.sh index 8aa42da6..183423fc 100755 --- a/actions_run_integration.sh +++ b/actions_run_integration.sh @@ -2,5 +2,5 @@ cd /srv/confidant apt-get update && apt-get install -y python3-dev openssl libssl-dev gcc pkg-config libffi-dev libxml2-dev libxmlsec1-dev -pip install -r piptools_requirements.txt && pip install -r piptools_requirements3.txt && pip install -r requirements3.txt +pip install -r piptools_requirements.txt && pip install -r requirements.txt make test_integration diff --git a/confidant/routes/credentials.py b/confidant/routes/credentials.py index 4bbf89e3..7434e1a5 100644 --- a/confidant/routes/credentials.py +++ b/confidant/routes/credentials.py @@ -126,6 +126,7 @@ def get_credential_list(): for credential in Credential.data_type_date_index.query('credential') ]) + return credentials_response_schema.dumps(credentials_response) @@ -257,6 +258,7 @@ def get_credential(id): include_credential_pairs=include_credential_pairs, ) credential_response.permissions = permissions + return credential_response_schema.dumps(credential_response) diff --git a/confidant/schema/blind_credentials.py b/confidant/schema/blind_credentials.py index 4a83b21f..86bc8431 100644 --- a/confidant/schema/blind_credentials.py +++ b/confidant/schema/blind_credentials.py @@ -1,5 +1,4 @@ import attr -import toastedmarshmallow from marshmallow import fields from confidant.schema.auto_build_schema import AutobuildSchema @@ -51,8 +50,6 @@ def from_blind_credential( class BlindCredentialResponseSchema(AutobuildSchema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = BlindCredentialResponse diff --git a/confidant/schema/certificates.py b/confidant/schema/certificates.py index b2bac32e..9111f389 100644 --- a/confidant/schema/certificates.py +++ b/confidant/schema/certificates.py @@ -1,5 +1,4 @@ import attr -import toastedmarshmallow from marshmallow import fields from confidant.schema.auto_build_schema import AutobuildSchema @@ -32,8 +31,6 @@ def from_cas(cls, cas): class CertificateAuthorityResponseSchema(AutobuildSchema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = CertificateAuthorityResponse @@ -44,8 +41,6 @@ class Meta: class CertificateAuthoritiesResponseSchema(AutobuildSchema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = CertificateAuthoritiesResponse @@ -60,8 +55,6 @@ class CertificateResponse(object): class CertificateResponseSchema(AutobuildSchema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = CertificateResponse @@ -70,8 +63,6 @@ class Meta: class CertificateExpandedResponseSchema(AutobuildSchema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = CertificateResponse diff --git a/confidant/schema/credentials.py b/confidant/schema/credentials.py index a045152d..5aa86139 100644 --- a/confidant/schema/credentials.py +++ b/confidant/schema/credentials.py @@ -1,5 +1,4 @@ import attr -import toastedmarshmallow from marshmallow import fields, pre_dump, Schema from confidant.schema.auto_build_schema import AutobuildSchema @@ -51,8 +50,6 @@ def from_credential( class CredentialResponseSchema(AutobuildSchema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = CredentialResponse @@ -99,8 +96,6 @@ def from_credentials( class CredentialsResponseSchema(Schema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = CredentialsResponse @@ -151,8 +146,6 @@ def from_credentials( class RevisionsResponseSchema(Schema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = RevisionsResponse diff --git a/confidant/schema/jwks.py b/confidant/schema/jwks.py index 61fb5388..82f32b33 100644 --- a/confidant/schema/jwks.py +++ b/confidant/schema/jwks.py @@ -1,5 +1,4 @@ import attr -import toastedmarshmallow from marshmallow import fields from confidant.schema.auto_build_schema import AutobuildSchema @@ -11,8 +10,6 @@ class JWTResponse(object): class JWTResponseSchema(AutobuildSchema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = JWTResponse token = fields.Str(required=True) @@ -32,8 +29,6 @@ class JWKSResponse(object): class JWKSResponseSchema(AutobuildSchema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = JWKSResponse @@ -45,8 +40,6 @@ class Meta: class JWKSListResponseSchema(AutobuildSchema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = JWKSListResponse keys = fields.List(fields.Nested(JWKSResponseSchema)) diff --git a/confidant/schema/services.py b/confidant/schema/services.py index cbcdcbec..f5e1756e 100644 --- a/confidant/schema/services.py +++ b/confidant/schema/services.py @@ -1,5 +1,4 @@ import attr -import toastedmarshmallow from marshmallow import fields, pre_dump, Schema from confidant.schema.auto_build_schema import AutobuildSchema @@ -88,8 +87,6 @@ def from_service_expanded( class ServiceResponseSchema(AutobuildSchema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = ServiceResponse @@ -105,8 +102,6 @@ class Meta: class ServiceExpandedResponseSchema(AutobuildSchema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = ServiceResponse @@ -150,8 +145,6 @@ def from_services( class ServicesResponseSchema(Schema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = ServicesResponse @@ -202,8 +195,6 @@ def from_services( class RevisionsResponseSchema(Schema): - class Meta: - jit = toastedmarshmallow.Jit _class_to_load = RevisionsResponse diff --git a/docker-compose.integration.yml b/docker-compose.integration.yml index b5213673..3d2ab336 100644 --- a/docker-compose.integration.yml +++ b/docker-compose.integration.yml @@ -1,7 +1,7 @@ version: "3.8" services: confidant: - image: python:3.8 + image: python:3.10.14 init: true restart: "no" networks: diff --git a/docker-compose.yml b/docker-compose.yml index 1babac0f..3b963335 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.7" +version: "3.8" networks: confidant: name: confidant diff --git a/docs/build.sh b/docs/build.sh index 46827e64..78a6b0ee 100755 --- a/docs/build.sh +++ b/docs/build.sh @@ -8,7 +8,7 @@ source_venv() { VENV_DIR=$1 if [[ "$VIRTUAL_ENV" == "" ]]; then if [[ ! -d "${VENV_DIR}"/venv ]]; then - virtualenv "${VENV_DIR}"/venv --python=python3.8 + virtualenv "${VENV_DIR}"/venv --python=python3.10 fi source "${VENV_DIR}"/venv/bin/activate else @@ -56,7 +56,7 @@ rm -rf "${GENERATED_RST_DIR}" mkdir -p "${GENERATED_RST_DIR}" source_venv "$BUILD_DIR" -pip install -r "${SCRIPT_DIR}"/requirements3.txt +pip install -r "${SCRIPT_DIR}"/requirements.txt rsync -av "${SCRIPT_DIR}"/root/ "${SCRIPT_DIR}"/conf.py "${GENERATED_RST_DIR}" diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 00000000..15f07b1c --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,15 @@ +-r ../requirements.txt +GitPython==2.0.9 +Jinja2==2.11.3 +Pygments==2.7.4 +alabaster==0.7.12 +babel==2.9.1 +gitdb==4.0.2 +imagesize==1.1.0 +smmap==3.0.1 +snowballstemmer==1.2.1 +sphinx==5.0.2 +mistune<2.0.0 +sphinxcontrib-httpdomain==1.8.1 +sphinx_rtd_theme +m2r==0.3.1 diff --git a/docs/requirements3.txt b/docs/requirements3.txt deleted file mode 100644 index 6299a1f0..00000000 --- a/docs/requirements3.txt +++ /dev/null @@ -1,15 +0,0 @@ --r ../requirements3.txt -GitPython==2.0.8 -Jinja2==2.11.3 -Pygments==2.7.4 -alabaster==0.7.10 -babel==2.9.1 -gitdb==0.6.4 -imagesize==0.7.1 -smmap==0.9.0 -snowballstemmer==1.2.1 -sphinx==2.2.0 -mistune<2.0.0 -sphinxcontrib-httpdomain==1.7.0 -sphinx_rtd_theme==0.4.3 -m2r==0.2.1 diff --git a/docs/root/configuration.md b/docs/root/configuration.md index 2b514890..405822c1 100644 --- a/docs/root/configuration.md +++ b/docs/root/configuration.md @@ -47,7 +47,7 @@ export DYNAMODB_TABLE='confidant-production' export DYNAMODB_CREATE_TABLE=true # Set the gevent resolver to ares; see: # https://github.com/surfly/gevent/issues/468 -export GEVENT_RESOLVER='ares' +# export GEVENT_RESOLVER='ares' # The KMS key used for at-rest encryption in DynamoDB. export KMS_MASTER_KEY='alias/confidant-production' # A long randomly generated string for CSRF protection. diff --git a/package.json b/package.json index 8e37787d..4b97757b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "confidant", - "version": "0.0.0", + "version": "6.6.1", "repository": { "type": "git", "url": "git://github.com/lyft/confidant.git" @@ -18,27 +18,28 @@ "angular-xeditable": "~0.1.9", "bootstrap": "3.4.1", "es5-shim": "~4.1.13", + "grunt-cli": "^1.5.0", "json3": "~3.3.2", "lodash": "~4.17.15", "spin.js": "~2.3.2" }, "devDependencies": { - "grunt": "^0.4.1", - "grunt-concurrent": "^0.5.0", - "grunt-contrib-clean": "~0.6.0", - "grunt-contrib-concat": "^0.4.0", - "grunt-contrib-copy": "^0.5.0", - "grunt-contrib-cssmin": "^0.9.0", - "grunt-contrib-htmlmin": "^0.3.0", - "grunt-contrib-jshint": "^2.1.0", - "grunt-contrib-symlink": "^0.3.0", - "grunt-contrib-uglify": "^0.4.0", - "grunt-contrib-watch": "^0.6.1", + "grunt": "^1.0.0", + "grunt-concurrent": "^3.0.0", + "grunt-contrib-clean": "^2.0.0", + "grunt-contrib-concat": "^2.1.0", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-cssmin": "^5.0.0", + "grunt-contrib-htmlmin": "^3.1.0", + "grunt-contrib-jshint": "^3.2.0", + "grunt-contrib-symlink": "^1.0.0", + "grunt-contrib-uglify": "^5.2.0", + "grunt-contrib-watch": "^1.1.0", "grunt-filerev": "^0.2.1", "grunt-filerev-replace": "~0.1.3", - "grunt-injector": "~0.6.0", - "grunt-newer": "^0.7.0", - "grunt-ng-annotate": "^0.3.0", + "grunt-injector": "^1.1.0", + "grunt-newer": "^1.3.0", + "grunt-ng-annotate": "^4.0.0", "grunt-usemin": "^2.1.1", "jshint-stylish": "^0.2.0", "load-grunt-tasks": "^0.4.0", diff --git a/piptools_requirements.txt b/piptools_requirements.txt index bc733c2d..197eb289 100644 --- a/piptools_requirements.txt +++ b/piptools_requirements.txt @@ -1,11 +1,11 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.10 # by the following command: # # cd ~/src/confidant && run-piptools # -pip==23.1.2 +pip==24.1.2 # via -r /code/piptools/bootstrap_ins/requirements.in setuptools==68.0.0 # via -r /code/piptools/bootstrap_ins/requirements.in diff --git a/piptools_requirements3.txt b/piptools_requirements3.txt deleted file mode 100644 index bc733c2d..00000000 --- a/piptools_requirements3.txt +++ /dev/null @@ -1,11 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.8 -# by the following command: -# -# cd ~/src/confidant && run-piptools -# - -pip==23.1.2 - # via -r /code/piptools/bootstrap_ins/requirements.in -setuptools==68.0.0 - # via -r /code/piptools/bootstrap_ins/requirements.in diff --git a/requirements.in b/requirements.in index 90712173..e7d5d702 100644 --- a/requirements.in +++ b/requirements.in @@ -1,4 +1,4 @@ -# piptools: python3.8 +# piptools: python3.10 # Flask # License: BSD # Upstream url: http://github.com/mitsuhiko/flask/ @@ -22,14 +22,14 @@ blinker # License: Apache2 # Upstream url: https://github.com/boto/botocore # Use: For boto3 -botocore==1.12.227 +botocore>=1.34.147,<1.35.0 # Boto3 is the Amazon Web Services (AWS) Software Development Kit (SDK) # for Python. # License: Apache2 # Upstream url: https://github.com/boto/boto3 # Use: For KMS -boto3==1.9.227 +boto3==1.34.147 # A Pythonic interface for Amazon's DynamoDB that supports Python 2 and 3. # License: MIT @@ -49,7 +49,7 @@ cryptography>2.3.0 # Upstream url: https://bitbucket.org/cffi/cffi # Use: Required by cryptography package to be installed. This should be removed # once crytography updates their depenencies to require cffi>=1.10.0. -cffi>1.10.0,<1.15.0 +cffi>1.15.0 # License: BSD # Upstream url: https://github.com/fengsp/flask-session @@ -83,6 +83,8 @@ Authomatic # Upstream url: https://github.com/onelogin/python3-saml # Use: For user authentication via SAML python3-saml>=1.15.0 +lxml>=4.6.5,!=4.7.0,<=5.2.1 +xmlsec==1.3.13 # Python HTTP for Humans. # License: Apache2 @@ -144,10 +146,15 @@ statsd # Use: kmsauth support library kmsauth==0.6.3 -# License: Apache2 -# Upstream url: https://pypi.python.org/pypi/toasted-marshmallow +# License: MIT +# Upstream url: https://pypi.org/project/marshmallow/ # Use: input/output validation and json serialization -toastedmarshmallow +marshmallow==2.20.0 + +# License MIT +# Upstream url: https://pypi.org/project/attrs/ +# Use: declarative classes for marshmallow +attrs # A fixed size dict like container which evicts Least Recently Used (LRU) # items once size limit is exceeded. diff --git a/requirements.txt b/requirements.txt index ee296dda..74bdcbfc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,22 +1,22 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.10 # by the following command: # # cd ~/src/confidant && run-piptools # -async-timeout==4.0.2 +async-timeout==4.0.3 # via redis -attrs==23.1.0 - # via toastedmarshmallow -authomatic==1.2.1 +attrs==23.2.0 # via -r requirements.in -blinker==1.6.2 +authomatic==1.3.0 # via -r requirements.in -boto3==1.9.227 +blinker==1.8.2 + # via -r requirements.in +boto3==1.34.147 # via # -r requirements.in # kmsauth -botocore==1.12.227 +botocore==1.34.147 # via # -r requirements.in # boto3 @@ -24,34 +24,30 @@ botocore==1.12.227 # s3transfer cachetools==5.2.0 # via -r requirements.in -cerberus==1.3.4 +cerberus==1.3.5 # via -r requirements.in -certifi==2023.5.7 +certifi==2024.7.4 # via requests -cffi==1.14.6 +cffi==1.16.0 # via # -r requirements.in # cryptography -charset-normalizer==3.1.0 +charset-normalizer==3.3.2 # via requests click==7.1.2 # via flask -coverage[toml]==7.2.7 +coverage[toml]==7.6.0 # via pytest-cov -cryptography==41.0.1 +cryptography==43.0.0 # via # -r requirements.in # jwcrypto # pyopenssl # types-pyopenssl # types-redis -deprecated==1.2.14 - # via jwcrypto -docutils==0.15.2 - # via botocore -exceptiongroup==1.1.1 +exceptiongroup==1.2.2 # via pytest -fakeredis==2.17.0 +fakeredis==2.23.3 # via -r requirements.in flask==1.1.4 # via @@ -65,19 +61,19 @@ flask-session==0.2.3 # via -r requirements.in flask-sslify==0.1.5 # via -r requirements.in -gevent==22.10.2 +gevent==23.7.0 # via # -r requirements.in # pytest-gevent -greenlet==2.0.2 +greenlet==3.0.3 # via # -r requirements.in # gevent guard==1.0.1 # via -r requirements.in -gunicorn==20.1.0 +gunicorn==22.0.0 # via -r requirements.in -idna==3.4 +idna==3.7 # via requests iniconfig==2.0.0 # via pytest @@ -87,47 +83,52 @@ itsdangerous==1.1.0 # via flask jinja2==2.11.3 # via flask -jmespath==0.10.0 +jmespath==1.0.1 # via # boto3 # botocore -jwcrypto==1.5.0 +jwcrypto==1.5.6 # via -r requirements.in kmsauth==0.6.3 # via -r requirements.in -lru-dict==1.2.0 +lru-dict==1.3.0 # via -r requirements.in lxml==4.9.2 # via + # -r requirements.in # python3-saml # xmlsec markupsafe==2.0.1 # via jinja2 +marshmallow==2.20.0 + # via -r requirements.in mypy==1.4.1 # via -r requirements.in mypy-extensions==1.0.0 # via mypy ndg-httpsclient==0.5.1 # via -r requirements.in -packaging==23.1 - # via pytest -pluggy==1.2.0 +packaging==24.1 + # via + # gunicorn + # pytest +pluggy==1.5.0 # via pytest -pyasn1==0.5.0 +pyasn1==0.6.0 # via # -r requirements.in # ndg-httpsclient -pycparser==2.21 +pycparser==2.22 # via cffi -pyjwt==2.7.0 +pyjwt==2.8.0 # via -r requirements.in pynamodb==5.5.1 # via -r requirements.in -pyopenssl==23.2.0 +pyopenssl==24.2.1 # via # -r requirements.in # ndg-httpsclient -pytest==7.4.0 +pytest==8.3.1 # via # -r requirements.in # pytest-cov @@ -135,33 +136,33 @@ pytest==7.4.0 # pytest-gevent # pytest-lazy-fixture # pytest-mock -pytest-cov==4.1.0 +pytest-cov==5.0.0 # via -r requirements.in -pytest-env==0.8.2 +pytest-env==1.1.3 # via -r requirements.in pytest-gevent==1.1.0 # via -r requirements.in pytest-lazy-fixture==0.6.3 # via -r requirements.in -pytest-mock==3.11.1 +pytest-mock==3.14.0 # via -r requirements.in -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via botocore python-json-logger==2.0.7 # via -r requirements.in -python3-saml==1.15.0 +python3-saml==1.16.0 # via -r requirements.in -pytz==2023.3 +pytz==2024.1 # via -r requirements.in -pyyaml==6.0 +pyyaml==6.0.1 # via -r requirements.in -redis==4.6.0 +redis==5.0.7 # via # -r requirements.in # fakeredis -requests==2.31.0 +requests==2.32.3 # via -r requirements.in -s3transfer==0.2.1 +s3transfer==0.10.2 # via boto3 six==1.16.0 # via @@ -171,45 +172,48 @@ sortedcontainers==2.4.0 # via fakeredis statsd==4.0.1 # via -r requirements.in -toastedmarshmallow==2.15.2.post1 - # via -r requirements.in tomli==2.0.1 # via # coverage # mypy # pytest -types-pyopenssl==23.2.0.1 + # pytest-env +types-cffi==1.16.0.20240331 + # via types-pyopenssl +types-pyopenssl==24.1.0.20240722 # via types-redis -types-pytz==2023.3.0.0 +types-pytz==2024.1.0.20240417 # via -r requirements.in -types-pyyaml==6.0.12.10 +types-pyyaml==6.0.12.20240724 # via -r requirements.in -types-redis==4.6.0.0 +types-redis==4.6.0.20240425 # via -r requirements.in -typing-extensions==4.7.0 - # via mypy -urllib3==1.25.11 +types-setuptools==71.1.0.20240724 + # via types-cffi +typing-extensions==4.12.2 + # via + # fakeredis + # jwcrypto + # mypy +urllib3==2.2.2 # via # botocore # requests werkzeug==1.0.1 # via flask -wrapt==1.15.0 - # via deprecated xmlsec==1.3.13 - # via python3-saml + # via + # -r requirements.in + # python3-saml zope-event==5.0 # via gevent -zope-interface==6.0 +zope-interface==6.4.post2 # via gevent -pip==23.1.2 +pip==24.1.2 # via -r piptools_requirements.txt setuptools==68.0.0 # via # -r piptools_requirements.txt - # cerberus - # gevent - # gunicorn # zope-event # zope-interface diff --git a/requirements3.txt b/requirements3.txt deleted file mode 100644 index ee296dda..00000000 --- a/requirements3.txt +++ /dev/null @@ -1,215 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.8 -# by the following command: -# -# cd ~/src/confidant && run-piptools -# -async-timeout==4.0.2 - # via redis -attrs==23.1.0 - # via toastedmarshmallow -authomatic==1.2.1 - # via -r requirements.in -blinker==1.6.2 - # via -r requirements.in -boto3==1.9.227 - # via - # -r requirements.in - # kmsauth -botocore==1.12.227 - # via - # -r requirements.in - # boto3 - # pynamodb - # s3transfer -cachetools==5.2.0 - # via -r requirements.in -cerberus==1.3.4 - # via -r requirements.in -certifi==2023.5.7 - # via requests -cffi==1.14.6 - # via - # -r requirements.in - # cryptography -charset-normalizer==3.1.0 - # via requests -click==7.1.2 - # via flask -coverage[toml]==7.2.7 - # via pytest-cov -cryptography==41.0.1 - # via - # -r requirements.in - # jwcrypto - # pyopenssl - # types-pyopenssl - # types-redis -deprecated==1.2.14 - # via jwcrypto -docutils==0.15.2 - # via botocore -exceptiongroup==1.1.1 - # via pytest -fakeredis==2.17.0 - # via -r requirements.in -flask==1.1.4 - # via - # -r requirements.in - # flask-script - # flask-session - # flask-sslify -flask-script==2.0.5 - # via -r requirements.in -flask-session==0.2.3 - # via -r requirements.in -flask-sslify==0.1.5 - # via -r requirements.in -gevent==22.10.2 - # via - # -r requirements.in - # pytest-gevent -greenlet==2.0.2 - # via - # -r requirements.in - # gevent -guard==1.0.1 - # via -r requirements.in -gunicorn==20.1.0 - # via -r requirements.in -idna==3.4 - # via requests -iniconfig==2.0.0 - # via pytest -isodate==0.6.1 - # via python3-saml -itsdangerous==1.1.0 - # via flask -jinja2==2.11.3 - # via flask -jmespath==0.10.0 - # via - # boto3 - # botocore -jwcrypto==1.5.0 - # via -r requirements.in -kmsauth==0.6.3 - # via -r requirements.in -lru-dict==1.2.0 - # via -r requirements.in -lxml==4.9.2 - # via - # python3-saml - # xmlsec -markupsafe==2.0.1 - # via jinja2 -mypy==1.4.1 - # via -r requirements.in -mypy-extensions==1.0.0 - # via mypy -ndg-httpsclient==0.5.1 - # via -r requirements.in -packaging==23.1 - # via pytest -pluggy==1.2.0 - # via pytest -pyasn1==0.5.0 - # via - # -r requirements.in - # ndg-httpsclient -pycparser==2.21 - # via cffi -pyjwt==2.7.0 - # via -r requirements.in -pynamodb==5.5.1 - # via -r requirements.in -pyopenssl==23.2.0 - # via - # -r requirements.in - # ndg-httpsclient -pytest==7.4.0 - # via - # -r requirements.in - # pytest-cov - # pytest-env - # pytest-gevent - # pytest-lazy-fixture - # pytest-mock -pytest-cov==4.1.0 - # via -r requirements.in -pytest-env==0.8.2 - # via -r requirements.in -pytest-gevent==1.1.0 - # via -r requirements.in -pytest-lazy-fixture==0.6.3 - # via -r requirements.in -pytest-mock==3.11.1 - # via -r requirements.in -python-dateutil==2.8.2 - # via botocore -python-json-logger==2.0.7 - # via -r requirements.in -python3-saml==1.15.0 - # via -r requirements.in -pytz==2023.3 - # via -r requirements.in -pyyaml==6.0 - # via -r requirements.in -redis==4.6.0 - # via - # -r requirements.in - # fakeredis -requests==2.31.0 - # via -r requirements.in -s3transfer==0.2.1 - # via boto3 -six==1.16.0 - # via - # isodate - # python-dateutil -sortedcontainers==2.4.0 - # via fakeredis -statsd==4.0.1 - # via -r requirements.in -toastedmarshmallow==2.15.2.post1 - # via -r requirements.in -tomli==2.0.1 - # via - # coverage - # mypy - # pytest -types-pyopenssl==23.2.0.1 - # via types-redis -types-pytz==2023.3.0.0 - # via -r requirements.in -types-pyyaml==6.0.12.10 - # via -r requirements.in -types-redis==4.6.0.0 - # via -r requirements.in -typing-extensions==4.7.0 - # via mypy -urllib3==1.25.11 - # via - # botocore - # requests -werkzeug==1.0.1 - # via flask -wrapt==1.15.0 - # via deprecated -xmlsec==1.3.13 - # via python3-saml -zope-event==5.0 - # via gevent -zope-interface==6.0 - # via gevent - -pip==23.1.2 - # via -r piptools_requirements.txt -setuptools==68.0.0 - # via - # -r piptools_requirements.txt - # cerberus - # gevent - # gunicorn - # zope-event - # zope-interface diff --git a/setup.py b/setup.py index fa888afb..5463d7f6 100644 --- a/setup.py +++ b/setup.py @@ -35,5 +35,7 @@ 'console_scripts': [ 'confidant-admin = confidant.scripts.manage:main', ] - } + }, + long_description=open('README.md').read(), + long_description_content_type='text/markdown', )