diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index a18238c43fc87..4405b6caa5d08 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,3 +1,7 @@ +# hadolint global ignore=DL3004 + +# hadolint doesn't like changes to this file, but it is only used for local dev + # Defines the environment you're dropped into with codespaces # I've take # https://github.com/microsoft/vscode-dev-containers/blob/main/containers/python-3/.devcontainer/Dockerfile @@ -7,7 +11,7 @@ # experience as rich as possible. Perhaps later down the line it might be worth # rolling our own # -FROM mcr.microsoft.com/vscode/devcontainers/python:3.10-bullseye +FROM mcr.microsoft.com/vscode/devcontainers/python:3.11-bullseye # Make sure all exit codes on pipes cause failures SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/.github/actions/run-backend-tests/action.yml b/.github/actions/run-backend-tests/action.yml index c1d465166161b..39cba842f237b 100644 --- a/.github/actions/run-backend-tests/action.yml +++ b/.github/actions/run-backend-tests/action.yml @@ -6,7 +6,7 @@ name: Run Django tests inputs: python-version: required: true - description: Python version, e.g. 3.10.10 + description: Python version, e.g. 3.11.9 clickhouse-server-image: required: true description: ClickHouse server image tag, e.g. clickhouse/clickhouse-server:latest diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index bd50811fae662..9478b7d2f8c80 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -54,7 +54,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: 3.10.10 + python-version: 3.11.9 cache: 'pip' cache-dependency-path: '**/requirements*.txt' token: ${{ secrets.POSTHOG_BOT_GITHUB_TOKEN }} diff --git a/.github/workflows/build-hogql-parser.yml b/.github/workflows/build-hogql-parser.yml index 73a22754f8994..21e153660dd13 100644 --- a/.github/workflows/build-hogql-parser.yml +++ b/.github/workflows/build-hogql-parser.yml @@ -80,6 +80,21 @@ jobs: with: python-version: '3.11' + # # This is an alternative way to install Python 3.11 on ARM if the above fails + # - if: ${{ endsWith(matrix.os, '-arm') }} + # name: Install Python 3.11 on ARM (compile from source) + # run: | + # sudo apt-get update + # sudo apt-get install -y build-essential libssl-dev zlib1g-dev \ + # libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev \ + # libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev tk-dev + # wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz + # tar -xf Python-3.11.0.tar.xz + # cd Python-3.11.0 + # ./configure --enable-optimizations + # make -j 2 + # sudo make altinstall + - name: Build sdist if: matrix.os == 'ubuntu-22.04' # Only build the sdist once run: cd hogql_parser && python setup.py sdist diff --git a/.github/workflows/ci-backend-update-test-timing.yml b/.github/workflows/ci-backend-update-test-timing.yml index a2082f6b98955..01ad7d33ce305 100644 --- a/.github/workflows/ci-backend-update-test-timing.yml +++ b/.github/workflows/ci-backend-update-test-timing.yml @@ -28,7 +28,7 @@ jobs: concurrency: 1 group: 1 token: ${{ secrets.POSTHOG_BOT_GITHUB_TOKEN }} - python-version: '3.10.10' + python-version: '3.11.9' clickhouse-server-image: 'clickhouse/clickhouse-server:23.12.5.81-alpine' segment: 'FOSS' person-on-events: false diff --git a/.github/workflows/ci-backend.yml b/.github/workflows/ci-backend.yml index 9e2aae60c76f5..b757f69c8f804 100644 --- a/.github/workflows/ci-backend.yml +++ b/.github/workflows/ci-backend.yml @@ -108,7 +108,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: 3.10.10 + python-version: 3.11.9 cache: 'pip' cache-dependency-path: '**/requirements*.txt' token: ${{ secrets.POSTHOG_BOT_GITHUB_TOKEN }} @@ -163,7 +163,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: 3.10.10 + python-version: 3.11.9 cache: 'pip' cache-dependency-path: '**/requirements*.txt' token: ${{ secrets.POSTHOG_BOT_GITHUB_TOKEN }} @@ -177,22 +177,21 @@ jobs: sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl # First running migrations from master, to simulate the real-world scenario - - - name: Checkout master - uses: actions/checkout@v3 - with: - ref: master - - - name: Install python dependencies for master - run: | - uv pip install --system -r requirements.txt -r requirements-dev.txt - - - name: Run migrations up to master - run: | - python manage.py migrate + # Commented out to move to Python 3.11. Uncomment after deploy. + # - name: Checkout master + # uses: actions/checkout@v3 + # with: + # ref: master + # + # - name: Install python dependencies for master + # run: | + # uv pip install --system -r requirements.txt -r requirements-dev.txt + # + # - name: Run migrations up to master + # run: | + # python manage.py migrate # Now we can consider this PR's migrations - - name: Checkout this PR uses: actions/checkout@v3 @@ -204,22 +203,24 @@ jobs: run: | python manage.py migrate - - name: Check migrations - run: | - python manage.py makemigrations --check --dry-run - git fetch origin master - # `git diff --name-only` returns a list of files that were changed - added OR deleted OR modified - # With `--name-status` we get the same, but including a column for status, respectively: A, D, M - # In this check we exclusively care about files that were - # added (A) in posthog/migrations/. We also want to ignore - # initial migrations (0001_*) as these are guaranteed to be - # run on initial setup where there is no data. - git diff --name-status origin/master..HEAD | grep "A\sposthog/migrations/" | awk '{print $2}' | grep -v migrations/0001_ | python manage.py test_migrations_are_safe - - - name: Check CH migrations - run: | - # Same as above, except now for CH looking at files that were added in posthog/clickhouse/migrations/ - git diff --name-status origin/master..HEAD | grep "A\sposthog/clickhouse/migrations/" | awk '{print $2}' | python manage.py test_ch_migrations_are_safe + # Commented out to move to Python 3.11. Uncomment after deploy. + # + # - name: Check migrations + # run: | + # python manage.py makemigrations --check --dry-run + # git fetch origin master + # # `git diff --name-only` returns a list of files that were changed - added OR deleted OR modified + # # With `--name-status` we get the same, but including a column for status, respectively: A, D, M + # # In this check we exclusively care about files that were + # # added (A) in posthog/migrations/. We also want to ignore + # # initial migrations (0001_*) as these are guaranteed to be + # # run on initial setup where there is no data. + # git diff --name-status origin/master..HEAD | grep "A\sposthog/migrations/" | awk '{print $2}' | grep -v migrations/0001_ | python manage.py test_migrations_are_safe + # + # - name: Check CH migrations + # run: | + # # Same as above, except now for CH looking at files that were added in posthog/clickhouse/migrations/ + # git diff --name-status origin/master..HEAD | grep "A\sposthog/clickhouse/migrations/" | awk '{print $2}' | python manage.py test_ch_migrations_are_safe django: needs: changes @@ -231,7 +232,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.10.10'] + python-version: ['3.11.9'] clickhouse-server-image: ['clickhouse/clickhouse-server:23.12.5.81-alpine'] segment: ['Core'] person-on-events: [false, true] @@ -242,7 +243,7 @@ jobs: - segment: 'Temporal' person-on-events: false clickhouse-server-image: 'clickhouse/clickhouse-server:23.12.5.81-alpine' - python-version: '3.10.10' + python-version: '3.11.9' concurrency: 1 group: 1 @@ -330,7 +331,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: 3.10.10 + python-version: 3.11.9 cache: 'pip' cache-dependency-path: '**/requirements*.txt' token: ${{ secrets.POSTHOG_BOT_GITHUB_TOKEN }} diff --git a/.github/workflows/ci-hog.yml b/.github/workflows/ci-hog.yml index 860f0b6e47be8..2a2ee8ecb8684 100644 --- a/.github/workflows/ci-hog.yml +++ b/.github/workflows/ci-hog.yml @@ -70,7 +70,7 @@ jobs: if: needs.changes.outputs.hog == 'true' uses: actions/setup-python@v5 with: - python-version: 3.10.10 + python-version: 3.11.9 cache: 'pip' cache-dependency-path: '**/requirements*.txt' token: ${{ secrets.POSTHOG_BOT_GITHUB_TOKEN }} diff --git a/.github/workflows/ci-plugin-server.yml b/.github/workflows/ci-plugin-server.yml index dac67b705b6a5..b4d6cb0a17f36 100644 --- a/.github/workflows/ci-plugin-server.yml +++ b/.github/workflows/ci-plugin-server.yml @@ -115,7 +115,7 @@ jobs: if: needs.changes.outputs.plugin-server == 'true' uses: actions/setup-python@v5 with: - python-version: 3.10.10 + python-version: 3.11.9 cache: 'pip' cache-dependency-path: '**/requirements*.txt' token: ${{ secrets.POSTHOG_BOT_GITHUB_TOKEN }} @@ -207,7 +207,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: 3.10.10 + python-version: 3.11.9 cache: 'pip' cache-dependency-path: '**/requirements*.txt' token: ${{ secrets.POSTHOG_BOT_GITHUB_TOKEN }} diff --git a/.run/Celery Beat.run.xml b/.run/Celery Beat.run.xml index 86d7e07d05ec9..4141b201f1a7a 100644 --- a/.run/Celery Beat.run.xml +++ b/.run/Celery Beat.run.xml @@ -14,6 +14,7 @@