diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1e71f372..43ac673a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,6 @@ env: DJANGO_SETTINGS_MODULE: openklant.conf.ci DB_PASSWORD: '' DB_USER: postgres - # ALLOWED_HOSTS: openklant.nl jobs: # determine changed files to decide if certain jobs can be skipped or not @@ -28,25 +27,21 @@ jobs: with: fetch-depth: 2 - - name: Changed files - id: app-files + - name: Get changed PY files + id: changed-py-files uses: tj-actions/changed-files@v45 with: - files: | - src/**/*.py - requirements/*.txt + files: src/{,**/}*.py - - name: Display changed files - if: steps.app-files.outputs.any_changed == 'true' - env: - ALL_CHANGED_FILES: ${{ steps.app-files.outputs.all_changed_files }} - run: | - for file in ${ALL_CHANGED_FILES}; do - echo "$file was changed" - done + - name: Get changed requirements files + id: changed-requirements + uses: tj-actions/changed-files@v45 + with: + files: requirements/*.txt outputs: - changed-files: ${{ steps.app-files.outputs.any_changed }} + changed-py-files: ${{ steps.changed-py-files.outputs.any_changed }} + changed-requirements: ${{ steps.changed-requirements.outputs.any_changed }} tests: name: Tests (PG ${{ matrix.postgres }}) @@ -55,7 +50,7 @@ jobs: - changed-files # only run tests if source files have changed (e.g. skip for PRs that only update docs) - if: needs.changed-files.outputs.changed-files == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' + if: ${{ needs.changed-files.outputs.changed-py-files == 'true'|| needs.changed-files.outputs.changed-requirements == 'true'|| github.event_name == 'push' }} strategy: matrix: @@ -73,28 +68,18 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - name: Set up backend environment + uses: maykinmedia/setup-django-backend@v1.3 with: python-version: '3.11' - - uses: actions/setup-node@v4 - with: - node-version: '18' + setup-node: true - - name: Install dependencies - run: pip install -r requirements/dev.txt codecov - - name: Build frontend - run: | - npm ci - npm run build - name: Run tests run: | python src/manage.py collectstatic --noinput --link coverage run src/manage.py test src env: - DJANGO_SETTINGS_MODULE: openklant.conf.ci SECRET_KEY: dummy - DB_USER: postgres - DB_PASSWORD: '' - name: Publish coverage report uses: codecov/codecov-action@v3 @@ -105,13 +90,12 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - name: Set up backend environment + uses: maykinmedia/setup-django-backend@v1.3 with: python-version: '3.11' - cache: 'pip' - cache-dependency-path: 'requirements/*.txt' - - name: Install dependencies - run: pip install -r requirements/ci.txt pytest + setup-node: false + - name: Generate environment variable documentation using OAf and check if it was updated run: | bin/generate_envvar_docs.sh @@ -121,101 +105,36 @@ jobs: echo "Please update the environment documentation by running \`bin/generate_envvar_docs.sh\`" exit 1 fi - env: - DJANGO_SETTINGS_MODULE: openklant.conf.ci - docker: - needs: tests - name: Build Docker image + store-reusable-workflow-vars: + name: create values which can be passed through a reusable workflow runs-on: ubuntu-latest + outputs: + image-name: ${{ steps.image-name.outputs.image-name }} steps: - - uses: actions/checkout@v4 - - name: Determine tag/commit hash - id: vars - run: | - # Strip git ref prefix from version - VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') - # Strip "v" prefix from tag name (if present at all) - [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//') - # Use Docker `latest` tag convention - [ "$VERSION" == "master" ] && VERSION=latest - echo "tag=${VERSION}" >> $GITHUB_OUTPUT - echo "git_hash=${GITHUB_SHA}" >> $GITHUB_OUTPUT - - name: Build the Docker image - run: | - docker build \ - --tag $IMAGE_NAME:${{ steps.vars.outputs.tag }} \ - --build-arg COMMIT_HASH=${{ steps.vars.outputs.git_hash }} \ - --build-arg RELEASE=${{ steps.vars.outputs.tag }} \ - . - - run: docker image save -o image.tar $IMAGE_NAME:${{ steps.vars.outputs.tag }} - - name: Store image artifact - uses: actions/upload-artifact@v3 - with: - name: docker-image - path: image.tar - retention-days: 1 - - # image_scan: - # runs-on: ubuntu-latest - # name: Scan docker image - # needs: - # - docker - - # steps: - # - name: Download built image - # uses: actions/download-artifact@v3 - # with: - # name: docker-image - # - name: Scan image with Trivy - # uses: aquasecurity/trivy-action@master - # with: - # input: /github/workspace/image.tar # from download-artifact - # format: 'sarif' - # output: 'trivy-results-docker.sarif' - # ignore-unfixed: true - # - name: Upload results to GH Security tab - # uses: github/codeql-action/upload-sarif@v3 - # with: - # sarif_file: 'trivy-results-docker.sarif' - - publish: + - run: echo "image-name=$IMAGE_NAME" >> $GITHUB_OUTPUT + name: 'Store the docker image name' + id: image-name + + open-api-ci: + uses: maykinmedia/open-api-workflows/.github/workflows/ci.yml@v1 + needs: + - store-reusable-workflow-vars + with: + main-branch: 'master' + python-version: '3.11' + docker-image-name: ${{ needs.store-reusable-workflow-vars.outputs.image-name }} + + open-api-publish: + uses: maykinmedia/open-api-workflows/.github/workflows/publish.yml@v1 needs: + - store-reusable-workflow-vars + - open-api-ci - tests - - docker - - name: Push Docker image - runs-on: ubuntu-latest - if: github.event_name == 'push' # exclude PRs - - steps: - - uses: actions/checkout@v4 - - name: Download built image - uses: actions/download-artifact@v3 - with: - name: docker-image - - - name: Determine tag/commit hash - id: vars - run: | - # Strip git ref prefix from version - VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') - - # Strip "v" prefix from tag name (if present at all) - [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//') - - # Use Docker `latest` tag convention - [ "$VERSION" == "master" ] && VERSION=latest - - echo "tag=${VERSION}" >> $GITHUB_OUTPUT - - - name: Load image - run: | - docker image load -i image.tar - - - name: Log into registry - run: echo "${{ secrets.DOCKER_TOKEN }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin - - - name: Push the Docker image - run: docker push $IMAGE_NAME:${{ steps.vars.outputs.tag }} + with: + docker-image-name: ${{ needs.store-reusable-workflow-vars.outputs.image-name }} + repository-owner: 'maykinmedia' + secrets: + docker-username: ${{ secrets.DOCKER_USERNAME }} + docker-token: ${{ secrets.DOCKER_TOKEN }} diff --git a/.github/workflows/code-analysis.yml b/.github/workflows/code-analysis.yml new file mode 100644 index 00000000..8b3ac9ad --- /dev/null +++ b/.github/workflows/code-analysis.yml @@ -0,0 +1,21 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +name: "CodeQL" + +on: + push: + branches: + - main + pull_request: + # The branches below must be a subset of the branches above + branches: + - main + schedule: + - cron: '0 23 * * 6' + +jobs: + open-api-workflow-code-analysis: + uses: maykinmedia/open-api-workflows/.github/workflows/code-analysis.yml@v1 diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml new file mode 100644 index 00000000..eadb1fea --- /dev/null +++ b/.github/workflows/code-quality.yml @@ -0,0 +1,29 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +name: Code quality checks + +on: + push: + branches: + - master + paths: + - '**.py' + - '**.yml' + pull_request: + paths: + - '**.py' + - '**.yml' + workflow_dispatch: + +jobs: + open-api-workflow-code-quality: + uses: maykinmedia/open-api-workflows/.github/workflows/code-quality.yml@v1 + with: + python-version: '3.11' + node-version: '18' + + django-settings-module: 'openklant.conf.ci' + django-secret-key: dummy diff --git a/.github/workflows/code-style.yml b/.github/workflows/code-style.yml deleted file mode 100644 index 68e7bf79..00000000 --- a/.github/workflows/code-style.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: code style - -# Run this workflow every time a new commit pushed to your repository -on: - push: - branches: - - main - paths: - - '**.py' - pull_request: - paths: - - '**.py' - workflow_dispatch: - -jobs: - isort: - name: Code imports - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: '3.11' - - name: Install dependencies - run: pip install -r requirements/ci.txt - - name: Run isort - run: isort --check-only --diff . - - black: - name: Code format - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: '3.11' - - name: Install dependencies - run: pip install -r requirements/ci.txt - - name: Run black - run: black --check --diff src docs - - flake8: - name: Code style - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: '3.11' - - name: Install dependencies - run: pip install -r requirements/ci.txt - - name: Run flake8 - run: flake8 src - diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 7bfda6e8..4d5a3484 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -3,111 +3,17 @@ # # You may wish to alter this file to override the set of languages analyzed, # or to provide custom queries or build logic. -name: Code quality checks +name: "CodeQL" on: push: - branches: [ "master" ] + branches: [master] pull_request: # The branches below must be a subset of the branches above - branches: [ "master" ] + branches: [master] schedule: - - cron: '32 10 * * 4' + - cron: '0 23 * * 6' jobs: - analyze: - name: Analyze - # Runner size impacts CodeQL analysis time. To learn more, please see: - # - https://gh.io/recommended-hardware-resources-for-running-codeql - # - https://gh.io/supported-runners-and-hardware-resources - # - https://gh.io/using-larger-runners - # Consider using larger runners for possible analysis time improvements. - runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} - timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }} - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'javascript-typescript', 'python' ] - # CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ] - # Use only 'java-kotlin' to analyze code written in Java, Kotlin or both - # Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both - # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - - # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality - - - # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v2 - - # ℹī¸ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - - # If the Autobuild fails above, remove it and uncomment the following three lines. - # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. - - # - run: | - # echo "Run, Build Application using script" - # ./location_of_script_within_repo/buildscript.sh - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 - with: - category: "/language:${{matrix.language}}" - - oas-up-to-date: - name: Check for unexepected OAS changes - runs-on: ubuntu-latest - strategy: - matrix: - component: ['contactgegevens', 'klantinteracties'] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 - with: - python-version: '3.11' - cache: 'pip' - cache-dependency-path: 'requirements/*.txt' - - uses: actions/setup-node@v4 - with: - node-version: '18' - - - name: Install dependencies - run: pip install -r requirements/ci.txt - - - name: Generate OAS files - run: ./bin/generate_schema_for_component.sh ${{ matrix.component }} openapi-${{ matrix.component }}.yaml - env: - DJANGO_SETTINGS_MODULE: openklant.conf.ci - - - name: Check for OAS changes - run: | - diff openapi-${{ matrix.component }}.yaml src/openklant/components/${{ matrix.component }}/openapi.yaml - - name: Write failure markdown - if: ${{ failure() }} - run: | - echo 'Run the following command locally and commit the changes' >> $GITHUB_STEP_SUMMARY - echo '' >> $GITHUB_STEP_SUMMARY - echo '```bash' >> $GITHUB_STEP_SUMMARY - echo './bin/generate_schema_for_component.sh ${{ matrix.component }}' >> $GITHUB_STEP_SUMMARY - echo '```' >> $GITHUB_STEP_SUMMARY + open-api-workflow-code-analysis: + uses: maykinmedia/open-api-workflows/.github/workflows/code-analysis.yml@v1 diff --git a/.github/workflows/generate-postman-collection.yml b/.github/workflows/generate-postman-collection.yml index eae48a2b..007d5d6c 100644 --- a/.github/workflows/generate-postman-collection.yml +++ b/.github/workflows/generate-postman-collection.yml @@ -10,23 +10,12 @@ on: workflow_dispatch: jobs: - run: - runs-on: ubuntu-latest + open-api-workflow-generate-postman-collection: + uses: maykinmedia/open-api-workflows/.github/workflows/generate-postman-collection.yml@v1 strategy: matrix: - component: ['contactgegevens', 'klantinteracties'] - - name: Run with component ${{ matrix.component }} - - steps: - - uses: actions/checkout@v4 - - name: Use Node.js - uses: actions/setup-node@v4 - with: - node-version: '18' - - name: Install dependencies - run: npm install -g openapi-to-postmanv2 - - name: Create tests folder - run: mkdir -p ./tests/postman - - name: Generate Postman collection - run: openapi2postmanv2 -s ./src/openklant/components/${{ matrix.component }}/openapi.yaml -o ./tests/postman/collection.json --pretty + component: + - contactgegevens + - klantinteracties + with: + schema-path: 'src/openklant/components/${{ matrix.component }}/openapi.yaml' diff --git a/.github/workflows/generate-sdks.yml b/.github/workflows/generate-sdks.yml index 6006710f..b8e46e70 100644 --- a/.github/workflows/generate-sdks.yml +++ b/.github/workflows/generate-sdks.yml @@ -10,33 +10,12 @@ on: workflow_dispatch: jobs: - run: - runs-on: ubuntu-latest + open-api-workflow-generate-sdks: + uses: maykinmedia/open-api-workflows/.github/workflows/generate-sdks.yml@v1 strategy: matrix: - component: ['contactgegevens', 'klantinteracties'] - - name: Run with component ${{ matrix.component }} - - steps: - - uses: actions/checkout@v4 - - name: Use Node.js - uses: actions/setup-node@v4 - with: - node-version: '18' - - name: Install dependencies - run: npm install -g @openapitools/openapi-generator-cli - - name: Determining oas path - id: vars - run: echo ::set-output name=oas::./src/openklant/components/${{ matrix.component }}/openapi.yaml - - name: Validate schema - run: openapi-generator-cli validate -i ${{ steps.vars.outputs.oas }} - - name: Generate Java client - run: openapi-generator-cli generate -i ${{ steps.vars.outputs.oas }} --global-property=modelTests=false,apiTests=false,modelDocs=false,apiDocs=false \ - -o ./sdks/java -g java --additional-properties=dateLibrary=java8,java8=true,optionalProjectFile=false,optionalAssemblyInfo=false - - name: Generate .NET client - run: openapi-generator-cli generate -i ${{ steps.vars.outputs.oas }} --global-property=modelTests=false,apiTests=false,modelDocs=false,apiDocs=false \ - -o ./sdks/net -g csharp --additional-properties=optionalProjectFile=false,optionalAssemblyInfo=false - - name: Generate Python client - run: openapi-generator-cli generate -i ${{ steps.vars.outputs.oas }} --global-property=modelTests=false,apiTests=false,modelDocs=false,apiDocs=false \ - -o ./sdks/python -g python --additional-properties=optionalProjectFile=false,optionalAssemblyInfo=false+ + component: + - contactgegevens + - klantinteracties + with: + schema-path: 'src/openklant/components/${{ matrix.component }}/openapi.yaml' diff --git a/.github/workflows/lint-oas.yml b/.github/workflows/lint-oas.yml index ad3f13fd..f909eaa5 100644 --- a/.github/workflows/lint-oas.yml +++ b/.github/workflows/lint-oas.yml @@ -10,21 +10,12 @@ on: workflow_dispatch: jobs: - run: - runs-on: ubuntu-latest + open-api-workflow-lint-oas: + uses: maykinmedia/open-api-workflows/.github/workflows/lint-oas.yml@v1 strategy: matrix: - component: ['contactgegevens', 'klantinteracties'] - - name: Run with component ${{ matrix.component }} - - steps: - - uses: actions/checkout@v4 - - name: Use Node.js - uses: actions/setup-node@v4 - with: - node-version: '18' - - name: Install spectral - run: npm install -g @stoplight/spectral@5 - - name: Run OAS linter - run: spectral lint ./src/openklant/components/${{ matrix.component }}/openapi.yaml + component: + - contactgegevens + - klantinteracties + with: + schema-path: 'src/openklant/components/${{ matrix.component }}/openapi.yaml' diff --git a/.github/workflows/oas-check.yml b/.github/workflows/oas-check.yml new file mode 100644 index 00000000..9002e148 --- /dev/null +++ b/.github/workflows/oas-check.yml @@ -0,0 +1,25 @@ +name: check-oas + +on: + push: + paths: + - "src/openklant/components/*/openapi.yaml" + - .github/workflows/oas-check.yml + branches: + - '**' + workflow_dispatch: + +jobs: + open-api-workflow-check-oas: + uses: maykinmedia/open-api-workflows/.github/workflows/oas-check.yml@v1 + strategy: + matrix: + component: + - contactgegevens + - klantinteracties + with: + schema-path: 'src/openklant/components/${{ matrix.component }}/openapi.yaml' + schema-command: 'spectacular_for_component' + schema-options: "--component ${{ matrix.component }}" + python-version: '3.11' + django-settings-module: 'openklant.conf.ci' diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..3c032078 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +18 diff --git a/bin/compile_dependencies.sh b/bin/compile_dependencies.sh index f1d03361..e7409786 100755 --- a/bin/compile_dependencies.sh +++ b/bin/compile_dependencies.sh @@ -33,12 +33,13 @@ pip-compile \ "$@" \ requirements/base.txt \ requirements/test-tools.in \ - requirements/docs.in + requirements/ci.in # Dev depedencies - exact same set as CI + some extra tooling pip-compile \ --no-emit-index-url \ --output-file requirements/dev.txt \ "$@" \ - requirements/ci.txt \ - requirements/dev.in \ No newline at end of file + requirements/base.txt \ + requirements/test-tools.in \ + requirements/dev.in diff --git a/requirements/base.txt b/requirements/base.txt index 0d61323a..0d309152 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -56,7 +56,7 @@ click-plugins==1.1.1 # via celery click-repl==0.3.0 # via celery -commonground-api-common==1.13.3 +commonground-api-common==1.13.4 # via open-api-framework coreapi==2.3.3 # via commonground-api-common diff --git a/requirements/ci.in b/requirements/ci.in new file mode 100644 index 00000000..76375907 --- /dev/null +++ b/requirements/ci.in @@ -0,0 +1,2 @@ +codecov +pytest diff --git a/requirements/ci.txt b/requirements/ci.txt index 62cdf472..2adfb9f1 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -8,31 +8,26 @@ alabaster==0.7.16 # via sphinx amqp==5.2.0 # via - # -c requirements/base.txt # -r requirements/base.txt # kombu ape-pie==0.2.0 # via - # -c requirements/base.txt # -r requirements/base.txt # zgw-consumers asgiref==3.8.1 # via - # -c requirements/base.txt # -r requirements/base.txt # django # django-axes # django-cors-headers asn1crypto==1.5.1 # via - # -c requirements/base.txt # -r requirements/base.txt # webauthn astroid==3.2.4 # via pylint attrs==23.2.0 # via - # -c requirements/base.txt # -r requirements/base.txt # glom # jsonschema @@ -43,54 +38,45 @@ beautifulsoup4==4.12.3 # via webtest billiard==4.2.0 # via - # -c requirements/base.txt # -r requirements/base.txt # celery black==24.4.2 # via -r requirements/test-tools.in bleach==6.1.0 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework boltons==24.0.0 # via - # -c requirements/base.txt # -r requirements/base.txt # face # glom cbor2==5.6.4 # via - # -c requirements/base.txt # -r requirements/base.txt # webauthn celery==5.4.0 # via - # -c requirements/base.txt # -r requirements/base.txt # flower # notifications-api-common # open-api-framework certifi==2024.7.4 # via - # -c requirements/base.txt # -r requirements/base.txt # elastic-apm # requests # sentry-sdk cffi==1.16.0 # via - # -c requirements/base.txt # -r requirements/base.txt # cryptography charset-normalizer==3.3.2 # via - # -c requirements/base.txt # -r requirements/base.txt # requests click==8.1.7 # via - # -c requirements/base.txt # -r requirements/base.txt # black # celery @@ -99,41 +85,36 @@ click==8.1.7 # click-repl click-didyoumean==0.3.1 # via - # -c requirements/base.txt # -r requirements/base.txt # celery click-plugins==1.1.1 # via - # -c requirements/base.txt # -r requirements/base.txt # celery click-repl==0.3.0 # via - # -c requirements/base.txt # -r requirements/base.txt # celery -commonground-api-common==1.13.3 +codecov==2.1.13 + # via -r requirements/ci.in +commonground-api-common==1.13.4 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework commonmark==0.9.1 # via recommonmark coreapi==2.3.3 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common coreschema==0.0.4 # via - # -c requirements/base.txt # -r requirements/base.txt # coreapi coverage==4.5.4 - # via -r requirements/test-tools.in + # via codecov cryptography==43.0.0 # via - # -c requirements/base.txt # -r requirements/base.txt # django-simple-certmanager # josepy @@ -146,7 +127,6 @@ dill==0.3.8 # via pylint django==4.2.15 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common # django-admin-index @@ -184,109 +164,88 @@ django==4.2.15 # zgw-consumers django-admin-index==3.1.1 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework django-appconf==1.0.6 # via - # -c requirements/base.txt # -r requirements/base.txt # django-log-outgoing-requests django-axes==6.5.1 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework django-cors-headers==4.4.0 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework django-csp==3.8 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework django-filter==24.2 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common # open-api-framework django-formtools==2.5.1 # via - # -c requirements/base.txt # -r requirements/base.txt # django-two-factor-auth django-jsonform==2.22.0 # via - # -c requirements/base.txt # -r requirements/base.txt # mozilla-django-oidc-db # open-api-framework django-log-outgoing-requests==0.6.1 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework django-markup==1.8.1 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework django-ordered-model==3.7.4 # via - # -c requirements/base.txt # -r requirements/base.txt # django-admin-index django-otp==1.5.1 # via - # -c requirements/base.txt # -r requirements/base.txt # django-two-factor-auth django-phonenumber-field==7.3.0 # via - # -c requirements/base.txt # -r requirements/base.txt # django-two-factor-auth django-privates==2.0.0.post1 # via - # -c requirements/base.txt # -r requirements/base.txt # django-simple-certmanager django-redis==5.4.0 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework django-relativedelta==2.0.0 # via - # -c requirements/base.txt # -r requirements/base.txt # zgw-consumers django-rest-framework-condition==0.1.1 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common django-sendfile2==0.7.1 # via - # -c requirements/base.txt # -r requirements/base.txt # django-privates django-setup-configuration==0.3.0 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework django-simple-certmanager==2.3.0 # via - # -c requirements/base.txt # -r requirements/base.txt # zgw-consumers django-solo==2.3.0 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common # django-log-outgoing-requests @@ -295,14 +254,12 @@ django-solo==2.3.0 # zgw-consumers django-two-factor-auth[phonenumberslite,webauthn]==1.16.0 # via - # -c requirements/base.txt # -r requirements/base.txt # maykin-2fa django-webtest==1.9.11 # via -r requirements/test-tools.in djangorestframework==3.15.2 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common # djangorestframework-gis @@ -314,18 +271,15 @@ djangorestframework==3.15.2 # open-api-framework djangorestframework-camel-case==1.4.2 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common # notifications-api-common djangorestframework-gis==1.0 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework djangorestframework-inclusions==1.2.0 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework docutils==0.20.1 @@ -336,37 +290,30 @@ docutils==0.20.1 # sphinx-tabs drf-nested-routers==0.94.1 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common drf-spectacular[sidecar]==0.27.2 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework drf-spectacular-sidecar==2024.7.1 # via - # -c requirements/base.txt # -r requirements/base.txt # drf-spectacular drf-yasg==1.21.7 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common ecs-logging==2.2.0 # via - # -c requirements/base.txt # -r requirements/base.txt # elastic-apm elastic-apm==6.23.0 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework face==20.1.1 # via - # -c requirements/base.txt # -r requirements/base.txt # glom factory-boy==3.3.0 @@ -377,35 +324,29 @@ flake8==7.1.0 # via -r requirements/test-tools.in flower==2.0.1 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework freezegun==1.5.1 # via -r requirements/test-tools.in furl==2.1.3 # via - # -c requirements/base.txt # -r requirements/base.txt # ape-pie gemma-zds-client==2.0.0 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common # notifications-api-common glom==23.5.0 # via - # -c requirements/base.txt # -r requirements/base.txt # mozilla-django-oidc-db humanize==4.10.0 # via - # -c requirements/base.txt # -r requirements/base.txt # flower idna==3.7 # via - # -c requirements/base.txt # -r requirements/base.txt # requests # yarl @@ -413,18 +354,17 @@ imagesize==1.4.1 # via sphinx inflection==0.5.1 # via - # -c requirements/base.txt # -r requirements/base.txt # drf-spectacular # drf-yasg +iniconfig==2.0.0 + # via pytest iso-639==0.4.5 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common isodate==0.6.1 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common isort==5.13.2 @@ -433,33 +373,27 @@ isort==5.13.2 # pylint itypes==1.2.0 # via - # -c requirements/base.txt # -r requirements/base.txt # coreapi jinja2==3.1.4 # via - # -c requirements/base.txt # -r requirements/base.txt # coreschema # sphinx josepy==1.14.0 # via - # -c requirements/base.txt # -r requirements/base.txt # mozilla-django-oidc jsonschema==4.23.0 # via - # -c requirements/base.txt # -r requirements/base.txt # drf-spectacular jsonschema-specifications==2023.12.1 # via - # -c requirements/base.txt # -r requirements/base.txt # jsonschema kombu==5.3.7 # via - # -c requirements/base.txt # -r requirements/base.txt # celery lxml==5.2.2 @@ -468,12 +402,10 @@ markdown==3.6 # via sphinx-markdown-tables markupsafe==2.1.5 # via - # -c requirements/base.txt # -r requirements/base.txt # jinja2 maykin-2fa==1.0.1 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework mccabe==0.7.0 @@ -482,12 +414,10 @@ mccabe==0.7.0 # pylint mozilla-django-oidc==4.0.1 # via - # -c requirements/base.txt # -r requirements/base.txt # mozilla-django-oidc-db mozilla-django-oidc-db==0.19.0 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework multidict==6.0.5 @@ -496,29 +426,24 @@ mypy-extensions==1.0.0 # via black notifications-api-common==0.2.2 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common open-api-framework==0.8.1 - # via - # -c requirements/base.txt - # -r requirements/base.txt + # via -r requirements/base.txt orderedmultidict==1.0.1 # via - # -c requirements/base.txt # -r requirements/base.txt # furl oyaml==1.0 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common packaging==24.1 # via - # -c requirements/base.txt # -r requirements/base.txt # black # drf-yasg + # pytest # sphinx pathspec==0.12.1 # via black @@ -526,33 +451,30 @@ pep8==1.7.1 # via -r requirements/test-tools.in phonenumberslite==8.13.42 # via - # -c requirements/base.txt # -r requirements/base.txt # django-two-factor-auth platformdirs==4.2.2 # via # black # pylint +pluggy==1.5.0 + # via pytest prometheus-client==0.20.0 # via - # -c requirements/base.txt # -r requirements/base.txt # flower prompt-toolkit==3.0.47 # via - # -c requirements/base.txt # -r requirements/base.txt # click-repl psycopg2==2.9.9 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework pycodestyle==2.12.0 # via flake8 pycparser==2.22 # via - # -c requirements/base.txt # -r requirements/base.txt # cffi pyflakes==3.2.0 @@ -563,7 +485,6 @@ pygments==2.18.0 # sphinx-tabs pyjwt==2.9.0 # via - # -c requirements/base.txt # -r requirements/base.txt # commonground-api-common # gemma-zds-client @@ -572,20 +493,19 @@ pylint==3.2.6 # via -r requirements/test-tools.in pyopenssl==24.2.1 # via - # -c requirements/base.txt # -r requirements/base.txt # josepy # webauthn pypng==0.20220715.0 # via - # -c requirements/base.txt # -r requirements/base.txt # qrcode pyquery==2.0.0 # via -r requirements/test-tools.in +pytest==8.3.3 + # via -r requirements/ci.in python-dateutil==2.9.0.post0 # via - # -c requirements/base.txt # -r requirements/base.txt # celery # django-relativedelta @@ -593,23 +513,19 @@ python-dateutil==2.9.0.post0 # freezegun python-decouple==3.8 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework python-dotenv==1.0.1 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework pytz==2024.1 # via - # -c requirements/base.txt # -r requirements/base.txt # drf-yasg # flower pyyaml==6.0.1 # via - # -c requirements/base.txt # -r requirements/base.txt # drf-spectacular # drf-yasg @@ -618,27 +534,24 @@ pyyaml==6.0.1 # vcrpy qrcode==7.4.2 # via - # -c requirements/base.txt # -r requirements/base.txt # django-two-factor-auth recommonmark==0.7.1 - # via -r requirements/docs.in + # via -r requirements/test-tools.in redis==5.0.8 # via - # -c requirements/base.txt # -r requirements/base.txt # django-redis referencing==0.35.1 # via - # -c requirements/base.txt # -r requirements/base.txt # jsonschema # jsonschema-specifications requests==2.32.3 # via - # -c requirements/base.txt # -r requirements/base.txt # ape-pie + # codecov # commonground-api-common # coreapi # django-log-outgoing-requests @@ -652,18 +565,15 @@ requests-mock==1.12.1 # via -r requirements/test-tools.in rpds-py==0.19.1 # via - # -c requirements/base.txt # -r requirements/base.txt # jsonschema # referencing sentry-sdk==2.12.0 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework six==1.16.0 # via - # -c requirements/base.txt # -r requirements/base.txt # bleach # furl @@ -676,17 +586,17 @@ soupsieve==2.5 # via beautifulsoup4 sphinx==7.4.7 # via - # -r requirements/docs.in + # -r requirements/test-tools.in # recommonmark # sphinx-rtd-theme # sphinx-tabs # sphinxcontrib-jquery sphinx-markdown-tables==0.0.17 - # via -r requirements/docs.in + # via -r requirements/test-tools.in sphinx-rtd-theme==2.0.0 - # via -r requirements/docs.in + # via -r requirements/test-tools.in sphinx-tabs==3.4.5 - # via -r requirements/docs.in + # via -r requirements/test-tools.in sphinxcontrib-applehelp==2.0.0 # via sphinx sphinxcontrib-devhelp==2.0.0 @@ -703,7 +613,6 @@ sphinxcontrib-serializinghtml==2.0.0 # via sphinx sqlparse==0.5.1 # via - # -c requirements/base.txt # -r requirements/base.txt # django tblib==3.0.0 @@ -712,45 +621,38 @@ tomlkit==0.13.0 # via pylint tornado==6.4.1 # via - # -c requirements/base.txt # -r requirements/base.txt # flower typing-extensions==4.12.2 # via - # -c requirements/base.txt # -r requirements/base.txt # mozilla-django-oidc-db # qrcode # zgw-consumers tzdata==2024.1 # via - # -c requirements/base.txt # -r requirements/base.txt # celery uritemplate==4.1.1 # via - # -c requirements/base.txt # -r requirements/base.txt # coreapi # drf-spectacular # drf-yasg urllib3==2.2.2 # via - # -c requirements/base.txt # -r requirements/base.txt # elastic-apm # requests # sentry-sdk uwsgi==2.0.26 # via - # -c requirements/base.txt # -r requirements/base.txt # open-api-framework vcrpy==6.0.1 # via -r requirements/test-tools.in vine==5.1.0 # via - # -c requirements/base.txt # -r requirements/base.txt # amqp # celery @@ -761,17 +663,14 @@ waitress==3.0.0 # webtest wcwidth==0.2.13 # via - # -c requirements/base.txt # -r requirements/base.txt # prompt-toolkit webauthn==2.2.0 # via - # -c requirements/base.txt # -r requirements/base.txt # django-two-factor-auth webencodings==0.5.1 # via - # -c requirements/base.txt # -r requirements/base.txt # bleach webob==1.8.8 @@ -780,7 +679,6 @@ webtest==3.0.0 # via django-webtest wrapt==1.16.0 # via - # -c requirements/base.txt # -r requirements/base.txt # elastic-apm # vcrpy @@ -788,7 +686,6 @@ yarl==1.9.4 # via vcrpy zgw-consumers==0.34.0 # via - # -c requirements/base.txt # -r requirements/base.txt # notifications-api-common # open-api-framework diff --git a/requirements/dev.in b/requirements/dev.in index ff73e970..e36d8e90 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -1,5 +1,3 @@ --c ci.txt - # Helpers pip-tools gitpython @@ -7,7 +5,3 @@ gitpython # Debug tooling django-debug-toolbar django-extensions - -# Documentation -sphinx -sphinx_rtd_theme diff --git a/requirements/dev.txt b/requirements/dev.txt index 51e19765..0f895317 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -5,109 +5,81 @@ # ./bin/compile_dependencies.sh # alabaster==0.7.16 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # sphinx + # via sphinx amqp==5.2.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # kombu ape-pie==0.2.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # zgw-consumers asgiref==3.8.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django # django-axes # django-cors-headers asn1crypto==1.5.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # webauthn astroid==3.2.4 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # pylint + # via pylint attrs==23.2.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # glom # jsonschema # referencing babel==2.15.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # sphinx + # via sphinx beautifulsoup4==4.12.3 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # webtest + # via webtest billiard==4.2.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # celery black==24.4.2 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in bleach==6.1.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework boltons==24.0.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # face # glom build==1.2.1 # via pip-tools cbor2==5.6.4 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # webauthn celery==5.4.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # flower # notifications-api-common # open-api-framework certifi==2024.7.4 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # elastic-apm # requests # sentry-sdk cffi==1.16.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # cryptography charset-normalizer==3.3.2 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # requests click==8.1.7 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # black # celery # click-didyoumean @@ -116,66 +88,45 @@ click==8.1.7 # pip-tools click-didyoumean==0.3.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # celery click-plugins==1.1.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # celery click-repl==0.3.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # celery -commonground-api-common==1.13.3 +commonground-api-common==1.13.4 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework commonmark==0.9.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # recommonmark + # via recommonmark coreapi==2.3.3 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common coreschema==0.0.4 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # coreapi -coverage==4.5.4 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt cryptography==43.0.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django-simple-certmanager # josepy # mozilla-django-oidc # pyopenssl # webauthn cssselect==1.2.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # pyquery + # via pyquery dill==0.3.8 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # pylint + # via pylint django==4.2.15 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common # django-admin-index # django-appconf @@ -214,28 +165,23 @@ django==4.2.15 # zgw-consumers django-admin-index==3.1.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework django-appconf==1.0.6 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django-log-outgoing-requests django-axes==6.5.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework django-cors-headers==4.4.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework django-csp==3.8 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework django-debug-toolbar==4.4.6 # via -r requirements/dev.in @@ -243,85 +189,69 @@ django-extensions==3.2.3 # via -r requirements/dev.in django-filter==24.2 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common # open-api-framework django-formtools==2.5.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django-two-factor-auth django-jsonform==2.22.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # mozilla-django-oidc-db # open-api-framework django-log-outgoing-requests==0.6.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework django-markup==1.8.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework django-ordered-model==3.7.4 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django-admin-index django-otp==1.5.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django-two-factor-auth django-phonenumber-field==7.3.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django-two-factor-auth django-privates==2.0.0.post1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django-simple-certmanager django-redis==5.4.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework django-relativedelta==2.0.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # zgw-consumers django-rest-framework-condition==0.1.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common django-sendfile2==0.7.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django-privates django-setup-configuration==0.3.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework django-simple-certmanager==2.3.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # zgw-consumers django-solo==2.3.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common # django-log-outgoing-requests # mozilla-django-oidc-db @@ -329,17 +259,13 @@ django-solo==2.3.0 # zgw-consumers django-two-factor-auth[phonenumberslite,webauthn]==1.16.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # maykin-2fa django-webtest==1.9.11 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in djangorestframework==3.15.2 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common # djangorestframework-gis # djangorestframework-inclusions @@ -350,94 +276,70 @@ djangorestframework==3.15.2 # open-api-framework djangorestframework-camel-case==1.4.2 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common # notifications-api-common djangorestframework-gis==1.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework djangorestframework-inclusions==1.2.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework docutils==0.20.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt # recommonmark # sphinx # sphinx-rtd-theme # sphinx-tabs drf-nested-routers==0.94.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common drf-spectacular[sidecar]==0.27.2 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework drf-spectacular-sidecar==2024.7.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # drf-spectacular drf-yasg==1.21.7 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common ecs-logging==2.2.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # elastic-apm elastic-apm==6.23.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework face==20.1.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # glom factory-boy==3.3.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in faker==26.1.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # factory-boy + # via factory-boy flake8==7.1.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in flower==2.0.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework freezegun==1.5.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in furl==2.1.3 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # ape-pie gemma-zds-client==2.0.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common # notifications-api-common gitdb==4.0.11 @@ -446,266 +348,194 @@ gitpython==3.1.43 # via -r requirements/dev.in glom==23.5.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # mozilla-django-oidc-db humanize==4.10.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # flower idna==3.7 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # requests # yarl imagesize==1.4.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # sphinx + # via sphinx inflection==0.5.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # drf-spectacular # drf-yasg iso-639==0.4.5 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common isodate==0.6.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common isort==5.13.2 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/test-tools.in # pylint itypes==1.2.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # coreapi jinja2==3.1.4 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # coreschema # sphinx josepy==1.14.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # mozilla-django-oidc jsonschema==4.23.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # drf-spectacular jsonschema-specifications==2023.12.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # jsonschema kombu==5.3.7 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # celery lxml==5.2.2 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # pyquery + # via pyquery markdown==3.6 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # sphinx-markdown-tables + # via sphinx-markdown-tables markupsafe==2.1.5 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # jinja2 maykin-2fa==1.0.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework mccabe==0.7.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt # flake8 # pylint mozilla-django-oidc==4.0.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # mozilla-django-oidc-db mozilla-django-oidc-db==0.19.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework multidict==6.0.5 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # yarl + # via yarl mypy-extensions==1.0.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # black + # via black notifications-api-common==0.2.2 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common open-api-framework==0.8.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/base.txt orderedmultidict==1.0.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # furl oyaml==1.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common packaging==24.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # black # build # drf-yasg # sphinx pathspec==0.12.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # black + # via black pep8==1.7.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in phonenumberslite==8.13.42 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django-two-factor-auth pip-tools==7.4.1 # via -r requirements/dev.in platformdirs==4.2.2 # via - # -c requirements/ci.txt - # -r requirements/ci.txt # black # pylint prometheus-client==0.20.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # flower prompt-toolkit==3.0.47 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # click-repl psycopg2==2.9.9 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework pycodestyle==2.12.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # flake8 + # via flake8 pycparser==2.22 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # cffi pyflakes==3.2.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # flake8 + # via flake8 pygments==2.18.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt # sphinx # sphinx-tabs pyjwt==2.9.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # commonground-api-common # gemma-zds-client # zgw-consumers pylint==3.2.6 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in pyopenssl==24.2.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # josepy # webauthn pypng==0.20220715.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # qrcode pyproject-hooks==1.1.0 # via # build # pip-tools pyquery==2.0.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in python-dateutil==2.9.0.post0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # celery # django-relativedelta # faker # freezegun python-decouple==3.8 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework python-dotenv==1.0.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework pytz==2024.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # drf-yasg # flower pyyaml==6.0.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # drf-spectacular # drf-yasg # gemma-zds-client @@ -713,28 +543,22 @@ pyyaml==6.0.1 # vcrpy qrcode==7.4.2 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django-two-factor-auth recommonmark==0.7.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in redis==5.0.8 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django-redis referencing==0.35.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # jsonschema # jsonschema-specifications requests==2.32.3 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # ape-pie # commonground-api-common # coreapi @@ -746,24 +570,19 @@ requests==2.32.3 # sphinx # zgw-consumers requests-mock==1.12.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in rpds-py==0.19.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # jsonschema # referencing sentry-sdk==2.12.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework six==1.16.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # bleach # furl # isodate @@ -772,181 +591,115 @@ six==1.16.0 smmap==5.0.1 # via gitdb snowballstemmer==2.2.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # sphinx + # via sphinx soupsieve==2.5 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # beautifulsoup4 + # via beautifulsoup4 sphinx==7.4.7 # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # -r requirements/dev.in + # -r requirements/test-tools.in # recommonmark # sphinx-rtd-theme # sphinx-tabs # sphinxcontrib-jquery sphinx-markdown-tables==0.0.17 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in sphinx-rtd-theme==2.0.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # -r requirements/dev.in + # via -r requirements/test-tools.in sphinx-tabs==3.4.5 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in sphinxcontrib-applehelp==2.0.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # sphinx + # via sphinx sphinxcontrib-devhelp==2.0.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # sphinx + # via sphinx sphinxcontrib-htmlhelp==2.1.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # sphinx + # via sphinx sphinxcontrib-jquery==4.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # sphinx-rtd-theme + # via sphinx-rtd-theme sphinxcontrib-jsmath==1.0.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # sphinx + # via sphinx sphinxcontrib-qthelp==2.0.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # sphinx + # via sphinx sphinxcontrib-serializinghtml==2.0.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # sphinx + # via sphinx sqlparse==0.5.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django # django-debug-toolbar tblib==3.0.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in tomlkit==0.13.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # pylint + # via pylint tornado==6.4.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # flower typing-extensions==4.12.2 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # mozilla-django-oidc-db # qrcode # zgw-consumers tzdata==2024.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # celery uritemplate==4.1.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # coreapi # drf-spectacular # drf-yasg urllib3==2.2.2 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # elastic-apm # requests # sentry-sdk uwsgi==2.0.26 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # open-api-framework vcrpy==6.0.1 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # via -r requirements/test-tools.in vine==5.1.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # amqp # celery # kombu waitress==3.0.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/test-tools.in # webtest wcwidth==0.2.13 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # prompt-toolkit webauthn==2.2.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # django-two-factor-auth webencodings==0.5.1 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # bleach webob==1.8.8 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # webtest + # via webtest webtest==3.0.0 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # django-webtest + # via django-webtest wheel==0.43.0 # via pip-tools wrapt==1.16.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # elastic-apm # vcrpy yarl==1.9.4 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # vcrpy + # via vcrpy zgw-consumers==0.34.0 # via - # -c requirements/ci.txt - # -r requirements/ci.txt + # -r requirements/base.txt # notifications-api-common # open-api-framework diff --git a/requirements/docs.in b/requirements/docs.in deleted file mode 100644 index 619af31b..00000000 --- a/requirements/docs.in +++ /dev/null @@ -1,8 +0,0 @@ --c base.txt - -# Documentation -sphinx -sphinx_rtd_theme -recommonmark -sphinx-markdown-tables -sphinx-tabs \ No newline at end of file diff --git a/requirements/production.txt b/requirements/production.txt index 9c9dec9e..906d1cc3 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -1 +1,11 @@ --r base.txt \ No newline at end of file +# +# DO NOT ADD DEPENDENCIES HERE +# +# All dependencies (which includes sub-dependencies of dependencies) +# need to be pinned exactly. This happens during pip-compiling base.in into +# base.txt +# +# This file is nothing more than a semantic alias for base.txt +# + +-r base.txt diff --git a/requirements/test-tools.in b/requirements/test-tools.in index b647ba7b..d5a4403d 100644 --- a/requirements/test-tools.in +++ b/requirements/test-tools.in @@ -1,7 +1,4 @@ --c base.txt - # Dependencies only relevant for (unit) testing -coverage < 5.0 django-webtest factory-boy freezegun @@ -17,3 +14,10 @@ waitress>=2.1.1 black isort flake8 + +# Documentation +sphinx +sphinx_rtd_theme +recommonmark +sphinx-markdown-tables +sphinx-tabs diff --git a/src/openklant/conf/base.py b/src/openklant/conf/base.py index 3eb48d9c..8e45fbc5 100644 --- a/src/openklant/conf/base.py +++ b/src/openklant/conf/base.py @@ -19,11 +19,6 @@ # but we don't want to rely on it anymore (e.g. when generating the label for 2FA) INSTALLED_APPS.remove("django.contrib.sites") -# FIXME should these be part of OAf? -MIDDLEWARE.insert( - MIDDLEWARE.index("django.contrib.auth.middleware.AuthenticationMiddleware") + 1, - "vng_api_common.middleware.AuthMiddleware", -) MIDDLEWARE = MIDDLEWARE + ["openklant.utils.middleware.APIVersionHeaderMiddleware"] # diff --git a/src/openklant/tests/test_cors_configuration.py b/src/openklant/tests/test_cors_configuration.py index 1bc51902..acb53c9a 100644 --- a/src/openklant/tests/test_cors_configuration.py +++ b/src/openklant/tests/test_cors_configuration.py @@ -149,7 +149,7 @@ def test_credentialed_request(self): response = self.client.get( "/cors", HTTP_ORIGIN="http://localhost:3000", - HTTP_AUTHORIZATION="Bearer foobarbaz", + HTTP_AUTHORIZATION="Token foobarbaz", ) self.assertEqual(response["Access-Control-Allow-Origin"], "*")