-
Notifications
You must be signed in to change notification settings - Fork 0
Release v1.26.3 RC1 #84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
f9f0804
61b1ad2
5f18540
771510d
3981337
7599c37
561c267
695cb7f
a0ddc24
c31ad73
bc638d1
2570a05
3b5db68
34310d2
5de85fc
40c015f
18b406e
65d5593
d128226
61b6d61
5a5ce7f
5b152b3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| --- | ||
| description: Default planning, verification, and task workflow for MyVector (read tasks/PLANNING.md) | ||
| alwaysApply: true | ||
| --- | ||
|
|
||
| # MyVector agent workflow | ||
|
|
||
| Follow `tasks/PLANNING.md` in this repository. | ||
|
|
||
| **Always:** | ||
|
|
||
| - Use plan mode for non-trivial work (3+ steps or architecture); stop and re-plan if derailed. | ||
| - Verify before marking done: tests, logs, or equivalent proof; ask if a staff engineer would ship it. | ||
| - Prefer simplicity and root-cause fixes over hacks. | ||
| - On user correction: append the pattern to `tasks/lessons.md`. | ||
|
|
||
| **Tasks:** | ||
|
|
||
| - Use `tasks/todo.md` for checkable plans and a short review when done. | ||
|
|
||
| **Optional:** | ||
|
|
||
| - Delegate exploration/research to subagents when it keeps context clean. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| # zizmor — optional local/supply-chain checks (CI runs actionlint only; see linter.yml) | ||
| # Super-linter loads config from LINTER_RULES_PATH (default: .github/linters). | ||
| # Example: docker run --rm -v "$PWD":/repo ghcr.io/woodruffw/zizmor:latest \ | ||
| # --config /repo/.github/linters/zizmor.yaml /repo/.github/workflows/ | ||
| # - Allow tag/branch pins for actions (not only SHA). | ||
| # - Suppress broad-permissions / checkout credential warnings for these workflows | ||
| # (GHCR publish, read-all, super-linter checkout needs full history). | ||
| # https://docs.zizmor.sh/configuration/ | ||
| rules: | ||
| unpinned-uses: | ||
| config: | ||
| policies: | ||
| "*": ref-pin | ||
| excessive-permissions: | ||
| ignore: | ||
| - benchmark-issue79.yml | ||
| - ci.yml | ||
| - docker-publish.yml | ||
| - linter.yml | ||
| - release.yml | ||
| artipacked: | ||
| ignore: | ||
| - benchmark-issue79.yml | ||
| - ci.yml | ||
| - docker-publish.yml | ||
| - linter.yml | ||
| - release.yml |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,113 +12,141 @@ permissions: | |
| contents: read | ||
| packages: write | ||
|
|
||
| # Build each plugin arch on a native runner. Building inside `docker run --platform | ||
| # linux/arm64` on x86 uses QEMU; apt/dpkg in that path can segfault (exit 100). | ||
| jobs: | ||
| build-and-publish: | ||
| runs-on: ubuntu-22.04 | ||
| build-plugin: | ||
| runs-on: ${{ matrix.runner }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - mysql-tag: 'mysql-8.0.45' | ||
| mysql-version: '8.0' | ||
| dockerfile: Dockerfile.oraclelinux8 | ||
| compiler: 10 | ||
| arch: amd64 | ||
| runner: ubuntu-22.04 | ||
| - mysql-tag: 'mysql-8.0.45' | ||
| mysql-version: '8.0' | ||
| compiler: 10 | ||
| arch: arm64 | ||
| runner: ubuntu-24.04-arm | ||
| - mysql-tag: 'mysql-8.4.8' | ||
| mysql-version: '8.4' | ||
| compiler: 10 | ||
| arch: amd64 | ||
| runner: ubuntu-22.04 | ||
| - mysql-tag: 'mysql-8.4.8' | ||
| mysql-version: '8.4' | ||
| dockerfile: Dockerfile.oraclelinux9 | ||
| compiler: 10 | ||
| arch: arm64 | ||
| runner: ubuntu-24.04-arm | ||
| - mysql-tag: 'mysql-9.6.0' | ||
| mysql-version: '9.6' | ||
| dockerfile: Dockerfile.oraclelinux9 | ||
| compiler: 11 | ||
| arch: amd64 | ||
| runner: ubuntu-22.04 | ||
| - mysql-tag: 'mysql-9.6.0' | ||
| mysql-version: '9.6' | ||
| compiler: 11 | ||
| arch: arm64 | ||
| runner: ubuntu-24.04-arm | ||
| steps: | ||
| - name: Checkout MyVector Code | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Install Build Dependencies | ||
| - name: Build MyVector plugin (${{ matrix.arch }}) | ||
| run: | | ||
| sudo apt-get update | ||
| sudo apt-get install -y \ | ||
| build-essential \ | ||
| cmake \ | ||
| gcc-10 \ | ||
| g++-10 \ | ||
| gcc-11 \ | ||
| g++-11 \ | ||
| libssl-dev \ | ||
| libncurses5-dev \ | ||
| pkg-config \ | ||
| bison \ | ||
| libtirpc-dev \ | ||
| libldap2-dev \ | ||
| libsasl2-dev \ | ||
| libudev-dev \ | ||
| libre2-dev \ | ||
| libcurl4-openssl-dev \ | ||
| libprotobuf-dev \ | ||
| protobuf-compiler | ||
| set -euo pipefail | ||
| arch="${{ matrix.arch }}" | ||
| build_dir="mysql-server-${arch}" | ||
| docker run --rm --platform "linux/${arch}" \ | ||
| -v "$PWD":/work -w /work ubuntu:22.04 bash -lc " | ||
| set -euo pipefail | ||
| apt-get update | ||
| apt-get install -y \ | ||
| build-essential \ | ||
| cmake \ | ||
| gcc-${{ matrix.compiler }} \ | ||
| g++-${{ matrix.compiler }} \ | ||
| git \ | ||
| libssl-dev \ | ||
| libncurses5-dev \ | ||
| pkg-config \ | ||
| bison \ | ||
| libtirpc-dev \ | ||
| libldap2-dev \ | ||
| libsasl2-dev \ | ||
| libudev-dev \ | ||
| libre2-dev \ | ||
| libcurl4-openssl-dev \ | ||
| libprotobuf-dev \ | ||
| protobuf-compiler | ||
| rm -rf ${build_dir} | ||
| git clone --depth 1 --branch ${{ matrix.mysql-tag }} \ | ||
| https://github.com/mysql/mysql-server.git ${build_dir} | ||
| mkdir -p ${build_dir}/plugin/myvector | ||
| cp src/*.cc ${build_dir}/plugin/myvector/ | ||
| cp include/*.h ${build_dir}/plugin/myvector/ | ||
| cp include/*.i ${build_dir}/plugin/myvector/ 2>/dev/null || true | ||
| cp CMakeLists.txt ${build_dir}/plugin/myvector/ | ||
| cd ${build_dir} | ||
| mkdir -p bld && cd bld | ||
| cmake .. \ | ||
| -DCMAKE_C_COMPILER=gcc-${{ matrix.compiler }} \ | ||
| -DCMAKE_CXX_COMPILER=g++-${{ matrix.compiler }} \ | ||
| -DDOWNLOAD_BOOST=1 \ | ||
| -DWITH_BOOST=../../boost_cache \ | ||
| -DWITH_UNIT_TESTS=OFF \ | ||
| -DWITH_ROUTER=OFF \ | ||
| -DWITH_RAPID=OFF \ | ||
| -DWITH_NDB=OFF \ | ||
| -DWITH_NDBCLUSTER=OFF \ | ||
| -DWITH_EXAMPLE_STORAGE_ENGINE=OFF \ | ||
| -DCMAKE_BUILD_TYPE=Release | ||
| make myvector -j\$(nproc) | ||
| cp plugin_output_directory/myvector.so /work/myvector-${arch}.so | ||
| " | ||
|
|
||
| - name: Upload plugin artifact | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: plugin-${{ matrix.mysql-version }}-${{ matrix.arch }} | ||
| path: myvector-${{ matrix.arch }}.so | ||
|
|
||
| build-and-publish: | ||
| needs: build-plugin | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Cross-version CI coupling blocks unrelated Docker publishesLow Severity The |
||
| runs-on: ubuntu-22.04 | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - mysql-version: '8.0' | ||
| dockerfile: Dockerfile.oraclelinux8 | ||
| - mysql-version: '8.4' | ||
| dockerfile: Dockerfile.oraclelinux9 | ||
| - mysql-version: '9.6' | ||
| dockerfile: Dockerfile.oraclelinux9 | ||
| steps: | ||
| - name: Checkout MyVector Code | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Download plugin artifacts (amd64 + arm64) | ||
| uses: actions/download-artifact@v4 | ||
| with: | ||
| pattern: plugin-${{ matrix.mysql-version }}-* | ||
| path: . | ||
| merge-multiple: true | ||
|
|
||
| - name: Prepare Docker build context | ||
| run: cp sql/myvectorplugin.sql . | ||
|
|
||
| - name: Set up QEMU | ||
| uses: docker/setup-qemu-action@v3 | ||
|
|
||
| - name: Set up Docker Buildx | ||
| uses: docker/setup-buildx-action@v3 | ||
|
|
||
| - name: Build MyVector plugin (amd64/arm64) | ||
| run: | | ||
| set -euo pipefail | ||
| for arch in amd64 arm64; do | ||
| build_dir="mysql-server-${arch}" | ||
| docker run --rm --platform "linux/${arch}" \ | ||
| -v "$PWD":/work -w /work ubuntu:22.04 bash -lc " | ||
| set -euo pipefail | ||
| apt-get update | ||
| apt-get install -y \ | ||
| build-essential \ | ||
| cmake \ | ||
| gcc-${{ matrix.compiler }} \ | ||
| g++-${{ matrix.compiler }} \ | ||
| git \ | ||
| libssl-dev \ | ||
| libncurses5-dev \ | ||
| pkg-config \ | ||
| bison \ | ||
| libtirpc-dev \ | ||
| libldap2-dev \ | ||
| libsasl2-dev \ | ||
| libudev-dev \ | ||
| libre2-dev \ | ||
| libcurl4-openssl-dev \ | ||
| libprotobuf-dev \ | ||
| protobuf-compiler | ||
| rm -rf ${build_dir} | ||
| git clone --depth 1 --branch ${{ matrix.mysql-tag }} \ | ||
| https://github.com/mysql/mysql-server.git ${build_dir} | ||
| mkdir -p ${build_dir}/plugin/myvector | ||
| cp src/*.cc ${build_dir}/plugin/myvector/ | ||
| cp include/*.h ${build_dir}/plugin/myvector/ | ||
| cp include/*.i ${build_dir}/plugin/myvector/ 2>/dev/null || true | ||
| cp CMakeLists.txt ${build_dir}/plugin/myvector/ | ||
| cd ${build_dir} | ||
| mkdir -p bld && cd bld | ||
| cmake .. \ | ||
| -DCMAKE_C_COMPILER=gcc-${{ matrix.compiler }} \ | ||
| -DCMAKE_CXX_COMPILER=g++-${{ matrix.compiler }} \ | ||
| -DDOWNLOAD_BOOST=1 \ | ||
| -DWITH_BOOST=../../boost_cache \ | ||
| -DWITH_UNIT_TESTS=OFF \ | ||
| -DWITH_ROUTER=OFF \ | ||
| -DWITH_RAPID=OFF \ | ||
| -DWITH_NDB=OFF \ | ||
| -DWITH_NDBCLUSTER=OFF \ | ||
| -DWITH_EXAMPLE_STORAGE_ENGINE=OFF \ | ||
| -DCMAKE_BUILD_TYPE=Release | ||
| make myvector -j\$(nproc) | ||
| cp plugin_output_directory/myvector.so /work/myvector-${arch}.so | ||
| " | ||
| done | ||
| cp sql/myvectorplugin.sql . | ||
|
|
||
| - name: Smoke test image contents | ||
| run: | | ||
| for arch in amd64 arm64; do | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,32 +1,35 @@ | ||
| # Deterministic PR lint: actionlint only (no Super-Linter bundle). | ||
| # Uses the official download script — no Docker (avoids Hub rate limits / daemon issues). | ||
| # Optional: zizmor --config .github/linters/zizmor.yaml .github/workflows/ | ||
| name: Lint Code Base | ||
|
|
||
| on: | ||
| pull_request: | ||
| branches: [ "main" ] | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: read | ||
| packages: read | ||
| statuses: write | ||
|
|
||
| jobs: | ||
| lint: | ||
| name: Lint Code Base | ||
| runs-on: ubuntu-latest | ||
| env: | ||
| # Quieter checkout on Node 24+ runners (see GitHub Node 20 deprecation changelog). | ||
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | ||
| steps: | ||
| - name: Checkout Code | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| # Full git history is needed to get a proper list of changed files within `super-linter` | ||
| fetch-depth: 0 | ||
|
|
||
| - name: Lint Code Base | ||
| uses: github/super-linter@v6 | ||
| env: | ||
| DEFAULT_BRANCH: "main" | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| VALIDATE_CPP: "false" | ||
| VALIDATE_CLANG_FORMAT: "false" | ||
| VALIDATE_PERL: "false" | ||
| VALIDATE_JSCPD: "false" | ||
| VALIDATE_SQLFLUFF: "false" | ||
| # Ref: https://github.com/rhysd/actionlint/blob/main/docs/usage.md#use-actionlint-on-github-actions | ||
| - name: Install actionlint | ||
| shell: bash | ||
| run: bash <(curl -fsSL https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) | ||
|
|
||
| - name: Lint GitHub Actions workflows (actionlint) | ||
| shell: bash | ||
| run: | | ||
| set -euo pipefail | ||
| # -shellcheck requires a path in v1.7+; omit to use default shellcheck on PATH (Ubuntu runners). | ||
| ./actionlint -color |


There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cursor IDE config committed in release candidate
Low Severity
The
.cursor/rules/agent-workflow.mdcfile is Cursor IDE-specific agent configuration being committed as part of a release candidate. The.dockerignorealready lists.cursor, indicating awareness this directory is tool-specific and shouldn't be distributed. This IDE configuration withalwaysApply: truedoesn't belong in a versioned release artifact — it's personal/team tooling that could affect other Cursor users who clone the repo.