diff --git a/.changes/extensions/intellij/v0.0.25.md b/.changes/extensions/intellij/v0.0.25.md new file mode 100644 index 0000000000..67da2d0049 --- /dev/null +++ b/.changes/extensions/intellij/v0.0.25.md @@ -0,0 +1,5 @@ +## v0.0.25 - 2023-12-25 + +### Changed + +- Intellij extension no longer relies on the Continue Python server diff --git a/.changes/extensions/vscode/v0.6.16.md b/.changes/extensions/vscode/v0.6.16.md new file mode 100644 index 0000000000..e5d7e491e4 --- /dev/null +++ b/.changes/extensions/vscode/v0.6.16.md @@ -0,0 +1,6 @@ +## v0.6.16 - 2023-12-25 + +### Changed + +- Context items are now kept around as a part of past messages, instead of staying at the main input +- No more Python server - Continue runs entirely in Typescript diff --git a/.changes/server/v0.1.104.md b/.changes/server/v0.1.104.md new file mode 100644 index 0000000000..8cd8924335 --- /dev/null +++ b/.changes/server/v0.1.104.md @@ -0,0 +1,9 @@ +## v0.1.104 - 2023-12-25 + +### Added + +- Continuous and faster syncing of codebase index + +### Removed + +- No longer using Continue Python server diff --git a/.changes/unreleased/Added-20231204-120237.yaml b/.changes/unreleased/Added-20231204-120237.yaml deleted file mode 100644 index 8424113b98..0000000000 --- a/.changes/unreleased/Added-20231204-120237.yaml +++ /dev/null @@ -1,4 +0,0 @@ -project: server -kind: Added -body: Continuous and faster syncing of codebase index -time: 2023-12-04T12:02:37.491971-08:00 diff --git a/.changes/unreleased/Changed-20231204-120429.yaml b/.changes/unreleased/Changed-20231204-120429.yaml deleted file mode 100644 index 78a549a835..0000000000 --- a/.changes/unreleased/Changed-20231204-120429.yaml +++ /dev/null @@ -1,5 +0,0 @@ -project: extensions/vscode -kind: Changed -body: Context items are now kept around as a part of past messages, instead of staying - at the main input -time: 2023-12-04T12:04:29.985942-08:00 diff --git a/.changes/unreleased/Changed-20231212-150528.yaml b/.changes/unreleased/Changed-20231212-150528.yaml deleted file mode 100644 index d189d8155b..0000000000 --- a/.changes/unreleased/Changed-20231212-150528.yaml +++ /dev/null @@ -1,4 +0,0 @@ -project: extensions/vscode -kind: Changed -body: No more Python server - Continue runs entirely in Typescript -time: 2023-12-12T15:05:28.44718-08:00 diff --git a/.changes/unreleased/Changed-20231221-132547.yaml b/.changes/unreleased/Changed-20231221-132547.yaml deleted file mode 100644 index c527bbef40..0000000000 --- a/.changes/unreleased/Changed-20231221-132547.yaml +++ /dev/null @@ -1,4 +0,0 @@ -project: extensions/intellij -kind: Changed -body: Intellij extension no longer relies on the Continue Python server -time: 2023-12-21T13:25:47.435557-05:00 diff --git a/.changes/unreleased/Removed-20231212-150435.yaml b/.changes/unreleased/Removed-20231212-150435.yaml deleted file mode 100644 index 689cd97419..0000000000 --- a/.changes/unreleased/Removed-20231212-150435.yaml +++ /dev/null @@ -1,4 +0,0 @@ -project: server -kind: Removed -body: No longer using Continue Python server -time: 2023-12-12T15:04:35.735492-08:00 diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index bb96712c1e..b95bbdb8f4 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -6,176 +6,6 @@ on: - main jobs: - pytest: - strategy: - matrix: - include: - - os: windows-latest - - os: ubuntu-latest - - os: macos-latest - - runs-on: ${{ matrix.os }} - - steps: - - name: Check out code - uses: actions/checkout@v2 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.10.8" - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install poetry - - - name: Install project dependencies - run: cd server && poetry install - - - name: Maturin develop - run: cd server && poetry run maturin develop - - - name: Run tests - env: - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - run: cd server && poetry run pytest - - linux: - runs-on: ubuntu-latest - strategy: - matrix: - target: [x86_64, x86, aarch64, armv7, s390x, ppc64le] - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: "3.10.8" - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.target }} - args: --release --out dist --find-interpreter - sccache: "true" - manylinux: auto - working-directory: server - - name: Upload wheels - uses: actions/upload-artifact@v3 - with: - name: wheels - path: server/dist - - windows: - runs-on: windows-latest - strategy: - matrix: - target: [x64, x86] - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: "3.10.8" - architecture: ${{ matrix.target }} - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.target }} - args: --release --out dist --find-interpreter - sccache: "true" - working-directory: server - - name: Upload wheels - uses: actions/upload-artifact@v3 - with: - name: wheels - path: server/dist - - macos: - runs-on: macos-latest - strategy: - matrix: - target: [x86_64, aarch64] - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: "3.10.8" - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.target }} - args: --release --out dist --find-interpreter - sccache: "true" - working-directory: server - - name: Upload wheels - uses: actions/upload-artifact@v3 - with: - name: wheels - path: server/dist - - sdist: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Build sdist - uses: PyO3/maturin-action@v1 - with: - command: sdist - args: --out dist - working-directory: server - - name: Upload sdist - uses: actions/upload-artifact@v3 - with: - name: wheels - path: server/dist - - release: - name: Release - runs-on: ubuntu-latest - needs: [linux, windows, macos, sdist] - permissions: - contents: write - steps: - - uses: actions/download-artifact@v3 - with: - name: wheels - - name: Publish to PyPI - uses: PyO3/maturin-action@v1 - env: - MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} - with: - command: upload - args: --non-interactive --skip-existing * - working-directory: server - - - name: Check out code - uses: actions/checkout@v2 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.10.8" - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install poetry - - - name: Bump the version - run: cd server && poetry version patch - - - name: Commit changes - run: | - git config --local user.email "action@github.com" - git config --local user.name "GitHub Action" - git commit -am "ci: 🏷 Update PyPI version [skip ci]" - - - name: Push changes - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: ${{ github.ref }} - build: strategy: matrix: @@ -214,94 +44,10 @@ jobs: npm_config_arch: arm64 runs-on: ${{ matrix.os }} steps: - # 1. Build the Pyinstaller binary + # 1. Check-out repository - name: Check-out repository uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.11" - - - name: Create virtual environment - run: python -m venv .venv - - - name: Activate virtual environment (non-Windows) - run: | - . .venv/bin/activate - echo PATH=$PATH >> $GITHUB_ENV - if: matrix.os != 'windows-latest' - - - name: Activate virtual environment (Windows) - run: | - .venv\Scripts\activate.bat - echo PATH=$PATH >> $GITHUB_ENV - if: matrix.os == 'windows-latest' - - - name: Install Pyinstaller - run: | - pip install pyinstaller - - - name: Install Maturin - run: | - pip install maturin - - - name: Install Dependencies - run: | - pip install -r server/requirements.txt - - - name: Build the Rust library - run: | - cd server - maturin develop - - - name: Install tiktoken vocab file - # Done to avoid extra network request to download the vocab file - run: | - mkdir .tiktoken_cache - curl -o .tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 https://s3.us-west-1.amazonaws.com/s3.continue.dev/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 - - - name: Build PyInstaller Executable - run: pyinstaller continue_server.spec - - # 1.5 Place the binary in extensions/vscode/exe directory - - name: Make sure extensions/vscode/exe directory exists - run: | - mkdir -p extensions/vscode/exe - - - name: Copy binary to extension (non-Windows) - run: | - cp dist/continue_server extensions/vscode/exe/continue_server - if: matrix.os != 'windows-latest' - - - name: Copy binary to extension (Windows) - run: | - cp dist/continue_server.exe extensions/vscode/exe/continue_server.exe - if: matrix.os == 'windows-latest' - - # 1.8 Set permissions and upload binary - - name: Set permissions - run: | - chmod 777 extensions/vscode/exe/continue_server - - - uses: actions/upload-artifact@v2 - if: matrix.os == 'macos-latest' && matrix.arch == 'x64' - with: - name: macOSBinary - path: extensions/vscode/exe/continue_server - - - uses: actions/upload-artifact@v2 - if: matrix.os == 'ubuntu-latest' && matrix.arch == 'x64' && matrix.platform == 'linux' - with: - name: LinuxBinary - path: extensions/vscode/exe/continue_server - - - uses: actions/upload-artifact@v2 - if: matrix.os == 'windows-latest' && matrix.arch == 'x64' - with: - name: WindowsBinary - path: extensions/vscode/exe/continue_server.exe - # 2. Install npm dependencies - name: Use Node.js 19.0.0 uses: actions/setup-node@v3 @@ -314,60 +60,79 @@ jobs: path: extensions/vscode/node_modules key: ${{ runner.os }}-node-${{ hashFiles('extensions/vscode/package-lock.json') }} + - name: Cache core node_modules + uses: actions/cache@v2 + with: + path: core/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('core/package-lock.json') }} + - name: Cache gui node_modules uses: actions/cache@v2 with: path: gui/node_modules key: ${{ runner.os }}-node-${{ hashFiles('gui/package-lock.json') }} - - name: Install extension Dependencies + - name: Install global Dependencies run: | - cd extensions/vscode - npm ci + npm install -g cargo-cp-artifact - - name: Add a copy of continuedev to the extension + - name: Install extension Dependencies run: | cd extensions/vscode - cp -r ../../server/continuedev continuedev + npm ci - name: Install gui Dependencies run: | cd gui npm ci --legacy-peer-deps - # 3. Run tests for the extension + - name: Install Core Dependencies + run: | + cd core + npm ci --legacy-peer-deps + + # 2.5. Pre package and download anything that needs to be built on Apple Silicon - name: Prepare the extension run: | cd extensions/vscode npm run prepackage - - name: Install Xvfb for Linux and run tests + - name: Make the out directory + if: matrix.os == 'macos-latest' && matrix.arch == 'arm64' run: | - sudo apt-get install -y xvfb # Install Xvfb - Xvfb :99 & # Start Xvfb - export DISPLAY=:99 # Export the display number to the environment cd extensions/vscode - npm run test - if: matrix.os == 'ubuntu-latest' + mkdir out - - name: Run extension tests - run: | - cd extensions/vscode - npm run test - if: matrix.os != 'ubuntu-latest' + - name: Download node_modules for esbuild on Apple Silicon + if: matrix.os == 'macos-latest' && matrix.arch == 'arm64' + run: curl -o extensions/vscode/out/node_modules.zip https://continue-server-binaries.s3.us-west-1.amazonaws.com/node_modules.zip - # 3.5 If on Apple Silicon, download the binary from S3 bucket - - name: Remove existing binary + - name: Unzip node_modules for esbuild on Apple Silicon if: matrix.os == 'macos-latest' && matrix.arch == 'arm64' - run: rm extensions/vscode/exe/continue_server + run: | + cd extensions/vscode/out + unzip node_modules.zip - - name: Download Apple Silicon Binary + - name: Remove node_modules.zip for esbuild on Apple Silicon if: matrix.os == 'macos-latest' && matrix.arch == 'arm64' - run: curl -o extensions/vscode/exe/continue_server https://continue-server-binaries.s3.us-west-1.amazonaws.com/apple-silicon-preview/continue_server + run: rm extensions/vscode/out/node_modules.zip - - name: Set permissions - run: | - chmod -R 777 extensions/vscode/exe/continue_server + # 3. Run tests for the extension + + # - name: Install Xvfb for Linux and run tests + # run: | + # sudo apt-get install -y xvfb # Install Xvfb + # Xvfb :99 & # Start Xvfb + # export DISPLAY=:99 # Export the display number to the environment + # cd extensions/vscode + # npm run test + # if: matrix.os == 'ubuntu-latest' + + # - name: Run extension tests + # run: | + # cd extensions/vscode + # npm run test + # if: matrix.os != 'ubuntu-latest' # 4. Package the extension - shell: pwsh @@ -392,7 +157,6 @@ jobs: runs-on: ubuntu-latest needs: - build - - pytest permissions: contents: write steps: @@ -412,7 +176,7 @@ jobs: - uses: actions/download-artifact@v3 # 2. Publish the extension to VS Code Marketplace - - name: Publish (VS Code Marketplace) + - name: Publish to VS Code Marketplace run: | cd extensions/vscode npx vsce publish --packagePath ../../alpine-x64/*.vsix ../../darwin-arm64/*.vsix ../../darwin-x64/*.vsix ../../linux-arm64/*.vsix ../../linux-armhf/*.vsix ../../linux-x64/*.vsix ../../win32-x64/*.vsix ../../win32-arm64/*.vsix @@ -425,19 +189,6 @@ jobs: cd extensions/vscode npx ovsx publish -p ${{ secrets.VSX_REGISTRY_TOKEN }} --packagePath ../../alpine-x64/*.vsix ../../darwin-arm64/*.vsix ../../darwin-x64/*.vsix ../../linux-arm64/*.vsix ../../linux-armhf/*.vsix ../../linux-x64/*.vsix ../../win32-x64/*.vsix ../../win32-arm64/*.vsix - # 3.5 Update the changelog - # - name: Batch a new patch version - # uses: miniscruff/changie-action@v2 - # with: - # version: latest - # args: batch patch - - # - name: Merge changelog - # uses: miniscruff/changie-action@v2 - # with: - # version: latest - # args: merge - # 4. Update the package.json version and push changes - name: Update version in package.json run: | @@ -456,51 +207,10 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} branch: ${{ github.ref }} - # 4.5 Send to Discord Webhook + # 5 Send to Discord Webhook - name: Discord Commits uses: Sniddl/discord-commits@v1.6 with: webhook: ${{ secrets.DISCORD_WEBHOOK }} template: "avatar-with-link" include-extras: true - - # 5. Download binaries and upload to S3 - - name: Download Linux build - uses: actions/download-artifact@v2 - with: - name: LinuxBinary - path: exe/linux - - - name: Download macOS build - uses: actions/download-artifact@v2 - with: - name: macOSBinary - path: exe/mac - - - name: Download Windows build - uses: actions/download-artifact@v2 - with: - name: WindowsBinary - path: exe/windows - - - name: Upload binaries to S3 (s3.continue.dev) - uses: jakejarvis/s3-sync-action@master - with: - args: --acl public-read --follow-symlinks - env: - AWS_S3_BUCKET: s3.continue.dev - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_REGION: "us-west-1" - SOURCE_DIR: "exe" - - - name: Upload binaries to S3 (continue-server-binaries) - uses: jakejarvis/s3-sync-action@master - with: - args: --acl public-read --follow-symlinks - env: - AWS_S3_BUCKET: continue-server-binaries - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_REGION: "us-west-1" - SOURCE_DIR: "exe" diff --git a/extensions/intellij/CHANGELOG.md b/extensions/intellij/CHANGELOG.md index 752178ac36..76833fac30 100644 --- a/extensions/intellij/CHANGELOG.md +++ b/extensions/intellij/CHANGELOG.md @@ -6,9 +6,11 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and is generated by [Changie](https://github.com/miniscruff/changie). -Pre-release Changes +## v0.0.25 - 2023-12-25 + ### Changed -* Intellij extension no longer relies on the Continue Python server + +- Intellij extension no longer relies on the Continue Python server ## v0.0.21 - 2023-12-05 diff --git a/extensions/vscode/CHANGELOG.md b/extensions/vscode/CHANGELOG.md index 26ef558402..c8b9b9ab53 100644 --- a/extensions/vscode/CHANGELOG.md +++ b/extensions/vscode/CHANGELOG.md @@ -6,10 +6,12 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and is generated by [Changie](https://github.com/miniscruff/changie). -Pre-release Changes +## v0.6.16 - 2023-12-25 + ### Changed -* Context items are now kept around as a part of past messages, instead of staying at the main input -* No more Python server - Continue runs entirely in Typescript + +- Context items are now kept around as a part of past messages, instead of staying at the main input +- No more Python server - Continue runs entirely in Typescript ## v0.6.4 - 2023-11-19 diff --git a/extensions/vscode/package.json b/extensions/vscode/package.json index 5ff31d0cec..2dbe7b7b9f 100644 --- a/extensions/vscode/package.json +++ b/extensions/vscode/package.json @@ -1,7 +1,7 @@ { "name": "continue", "icon": "media/icon.png", - "version": "0.7.59", + "version": "0.6.16", "repository": { "type": "git", "url": "https://github.com/continuedev/continue" diff --git a/server/CHANGELOG.md b/server/CHANGELOG.md index c43726194a..9eec3b1997 100644 --- a/server/CHANGELOG.md +++ b/server/CHANGELOG.md @@ -6,11 +6,15 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and is generated by [Changie](https://github.com/miniscruff/changie). -Pre-release Changes +## v0.1.104 - 2023-12-25 + ### Added -* Continuous and faster syncing of codebase index + +- Continuous and faster syncing of codebase index + ### Removed -* No longer using Continue Python server + +- No longer using Continue Python server ## v0.1.99 - 2023-11-19