Compare commits
	
		
			21 Commits
		
	
	
		
			kurt-zoom-
			...
			cut-releas
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e0b22cf1e7 | |||
| db4e0d1682 | |||
| aeaed858bd | |||
| a7442f4d9f | |||
| ba6b34ca3f | |||
| 9347eacef2 | |||
| a1603aa130 | |||
| f80c5e6354 | |||
| 557f6f5ab3 | |||
| 5dff2e54ba | |||
| 82cc147465 | |||
| f7e7accdf3 | |||
| ef21002e45 | |||
| 005f105e9c | |||
| df804b2786 | |||
| b39c9e21d4 | |||
| 7cc1b3f744 | |||
| 10b3852ae5 | |||
| 5e43971492 | |||
| 194d9c6774 | |||
| fa5f033574 | 
| @ -2,9 +2,7 @@ NODE_ENV=development | ||||
| DEV=true | ||||
| VITE_KC_API_WS_MODELING_URL=wss://api.dev.zoo.dev/ws/modeling/commands | ||||
| VITE_KC_API_BASE_URL=https://api.dev.zoo.dev | ||||
| BASE_URL=https://api.dev.zoo.dev | ||||
| VITE_KC_SITE_BASE_URL=https://dev.zoo.dev | ||||
| VITE_KC_SKIP_AUTH=false | ||||
| VITE_KC_CONNECTION_TIMEOUT_MS=5000 | ||||
| # ONLY add your token in .env.development.local if you want to skip auth, otherwise this token takes precedence! | ||||
| #VITE_KC_DEV_TOKEN="your token from dev.zoo.dev should go in .env.development.local" | ||||
| VITE_KC_DEV_TOKEN="your token from dev.zoo.dev should go in .env.development.local" | ||||
|  | ||||
| @ -1,3 +1,2 @@ | ||||
| src/wasm-lib/* | ||||
| *.typegen.ts | ||||
| packages/codemirror-lsp-client/dist/* | ||||
|  | ||||
| @ -13,8 +13,6 @@ | ||||
|       "plugin:css-modules/recommended" | ||||
|     ], | ||||
|     "rules": { | ||||
|       "@typescript-eslint/no-floating-promises": "error", | ||||
|       "@typescript-eslint/no-misused-promises": "error", | ||||
|       "semi": [ | ||||
|         "error", | ||||
|         "never" | ||||
| @ -26,6 +24,7 @@ | ||||
|       { | ||||
|         "files": ["e2e/**/*.ts"], // Update the pattern based on your file structure | ||||
|         "rules": { | ||||
|           "@typescript-eslint/no-floating-promises": "warn", | ||||
|           "suggest-no-throw/suggest-no-throw": "off", | ||||
|           "testing-library/prefer-screen-queries": "off", | ||||
|           "jest/valid-expect": "off" | ||||
|  | ||||
							
								
								
									
										206
									
								
								.github/workflows/build-test-publish-apps.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										206
									
								
								.github/workflows/build-test-publish-apps.yml
									
									
									
									
										vendored
									
									
								
							| @ -5,6 +5,7 @@ on: | ||||
|   push: | ||||
|     branches: | ||||
|       - main | ||||
|       - cut-release-v0.25.0-updater-test-build-2 | ||||
|   release: | ||||
|     types: [published] | ||||
|   schedule: | ||||
| @ -13,8 +14,8 @@ on: | ||||
|   # Will checkout the last commit from the default branch (main as of 2023-10-04) | ||||
|  | ||||
| env: | ||||
|   CUT_RELEASE_PR: ${{ github.event_name == 'pull_request' && (contains(github.event.pull_request.title, 'Cut release v')) }} | ||||
|   BUILD_RELEASE: ${{ github.event_name == 'release' || github.event_name == 'schedule' || github.event_name == 'pull_request' && (contains(github.event.pull_request.title, 'Cut release v')) }} | ||||
|   CUT_RELEASE_PR: true | ||||
|   BUILD_RELEASE: true | ||||
|  | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||||
| @ -44,13 +45,16 @@ jobs: | ||||
|  | ||||
|       # TODO: see if we can fetch from main instead if no diff at src/wasm-lib | ||||
|       - name: Run build:wasm | ||||
|         run: "yarn build:wasm" | ||||
|         run: "yarn build:wasm${{ env.BUILD_RELEASE == 'true' && '-dev' || ''}}" | ||||
|  | ||||
|       - name: Set nightly version | ||||
|         if: github.event_name == 'schedule' | ||||
|         run: | | ||||
|           VERSION=$(date +'%-y.%-m.%-d') yarn bump-jsons | ||||
|  | ||||
|       # TODO: see if we need to inject updater nightly URL here https://dl.zoo.dev/releases/modeling-app/nightly/last_update.json | ||||
|       # TODO: see if we ned to add updater test URL here https://dl.zoo.dev/releases/modeling-app/updater-test/last_update.json | ||||
|  | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           name: prepared-files | ||||
| @ -61,30 +65,6 @@ jobs: | ||||
|       - id: export_version | ||||
|         run: echo "version=`cat package.json | jq -r '.version'`" >> "$GITHUB_OUTPUT" | ||||
|  | ||||
|       - name: Prepare electron-builder.yml file for nightly | ||||
|         if: ${{ github.event_name == 'schedule' }} | ||||
|         run: | | ||||
|           yq -i '.publish[0].url = "https://dl.zoo.dev/releases/modeling-app/nightly"' electron-builder.yml | ||||
|  | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         if: ${{ github.event_name == 'schedule' }} | ||||
|         with: | ||||
|           name: prepared-files-nightly | ||||
|           path: | | ||||
|             electron-builder.yml | ||||
|  | ||||
|       - name: Prepare electron-builder.yml file for updater test | ||||
|         if: ${{ env.CUT_RELEASE_PR == 'true' }} | ||||
|         run: | | ||||
|           yq -i '.publish[0].url = "https://dl.zoo.dev/releases/modeling-app/updater-test"' electron-builder.yml | ||||
|  | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         if: ${{ env.CUT_RELEASE_PR == 'true' }} | ||||
|         with: | ||||
|           name: prepared-files-updater-test | ||||
|           path: | | ||||
|             electron-builder.yml | ||||
|  | ||||
|  | ||||
|   build-apps: | ||||
|     needs: [prepare-files] | ||||
| @ -102,6 +82,8 @@ jobs: | ||||
|       CSC_KEY_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} | ||||
|       CSC_KEYCHAIN: ${{ secrets.APPLE_SIGNING_IDENTITY }} | ||||
|       CSC_FOR_PULL_REQUEST: true | ||||
|       TAURI_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} | ||||
|       TAURI_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} | ||||
|       VERSION: ${{ github.event_name == 'schedule' && needs.prepare-files.outputs.version || format('v{0}', needs.prepare-files.outputs.version) }} | ||||
|       VERSION_NO_V: ${{ needs.prepare-files.outputs.version }} | ||||
|       WINDOWS_CERTIFICATE_THUMBPRINT: F4C9A52FF7BC26EE5E054946F6B11DEEA94C748D | ||||
| @ -119,16 +101,6 @@ jobs: | ||||
|           mkdir src/wasm-lib/pkg | ||||
|           cp prepared-files/src/wasm-lib/pkg/wasm_lib* src/wasm-lib/pkg | ||||
|  | ||||
|       - uses: actions/download-artifact@v3 | ||||
|         if: ${{ github.event_name == 'schedule' }} | ||||
|         name: prepared-files-nightly | ||||
|  | ||||
|       - name: Copy updated electron-builder.yml file for nightly build | ||||
|         if: ${{ github.event_name == 'schedule' }} | ||||
|         run: | | ||||
|           ls -R prepared-files-nightly | ||||
|           cp prepared-files-nightly/electron-builder.yml electron-builder.yml | ||||
|  | ||||
|       - name: Sync node version and setup cache | ||||
|         uses: actions/setup-node@v4 | ||||
|         with: | ||||
| @ -171,95 +143,75 @@ jobs: | ||||
|       - name: List artifacts in out/ | ||||
|         run: ls -R out | ||||
|  | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           name: out-arm64-${{ matrix.os }} | ||||
|           path: | | ||||
|             out/Zoo*arm64*.* | ||||
|             out/latest*.yml | ||||
|       - name: Prepare the tauri update bundles (macOS) | ||||
|         if: ${{ env.BUILD_RELEASE && matrix.os == 'macos-14' }} | ||||
|         run: | | ||||
|           for ARCH in arm64 x64; do | ||||
|             TAURI_DIR=out/tauri/$VERSION/macos | ||||
|             TEMP_DIR=temp/$ARCH | ||||
|             mkdir -p $TAURI_DIR | ||||
|             mkdir -p $TEMP_DIR | ||||
|             unzip out/*-$ARCH-mac.zip -d $TEMP_DIR | ||||
|             tar -czvf "$TAURI_DIR/Zoo Modeling App-$ARCH.app.tar.gz" -C $TEMP_DIR "Zoo Modeling App.app"  | ||||
|             yarn tauri signer sign "$TAURI_DIR/Zoo Modeling App-$ARCH.app.tar.gz" | ||||
|           done | ||||
|           ls -R out | ||||
|  | ||||
|       - name: Prepare the tauri update bundles (Windows) | ||||
|         if: ${{ env.BUILD_RELEASE && matrix.os == 'windows-2022' }} | ||||
|         run: | | ||||
|           $env:TAURI_DIR="out/tauri/${env:VERSION}/nsis" | ||||
|           mkdir -p ${env:TAURI_DIR} | ||||
|           $env:OUT_FILE="${env:TAURI_DIR}/Zoo Modeling App_${env:VERSION_NO_V}_x64-setup.nsis.zip" | ||||
|           7z a -mm=Copy "${env:OUT_FILE}" ./out/*-x64-win.exe | ||||
|           yarn tauri signer sign "${env:OUT_FILE}" | ||||
|           ls -R out | ||||
|  | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           name: out-x64-${{ matrix.os }} | ||||
|           name: out-${{ matrix.os }} | ||||
|           path: | | ||||
|             out/Zoo*x*64*.* | ||||
|             out/Zoo*.* | ||||
|             out/latest*.yml | ||||
|             out/tauri | ||||
|  | ||||
|       # TODO: add the 'Build for Mac TestFlight (nightly)' stage back | ||||
|  | ||||
|       - uses: actions/download-artifact@v3 | ||||
|         if: ${{ env.CUT_RELEASE_PR == 'true' }} | ||||
|         name: prepared-files-updater-test | ||||
|  | ||||
|       - name: Copy updated electron-builder.yml file for updater test | ||||
|         if: ${{ env.CUT_RELEASE_PR == 'true' }} | ||||
|         run: | | ||||
|           ls -R prepared-files-updater-test | ||||
|           cp prepared-files-updater-test/electron-builder.yml electron-builder.yml | ||||
|  | ||||
|       - name: Build the app (updater-test) | ||||
|         if: ${{ env.CUT_RELEASE_PR == 'true' }} | ||||
|         run: yarn electron-builder --config ${{ env.BUILD_RELEASE && '--publish always' || '' }} | ||||
|  | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         if: ${{ env.CUT_RELEASE_PR == 'true' }} | ||||
|         with: | ||||
|           name: updater-test-arm64-${{ matrix.os }} | ||||
|           path: | | ||||
|             out/Zoo*arm64*.* | ||||
|  | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         if: ${{ env.CUT_RELEASE_PR == 'true' }} | ||||
|         with: | ||||
|           name: updater-test-x64-${{ matrix.os }} | ||||
|           path: | | ||||
|             out/Zoo*x64*.* | ||||
|       # TODO: add the updater tests back | ||||
|  | ||||
|  | ||||
|   publish-apps-release: | ||||
|     runs-on: ubuntu-22.04 | ||||
|     permissions: | ||||
|       contents: write | ||||
|     if: ${{ github.event_name == 'release' || github.event_name == 'schedule' }} | ||||
|     # if: ${{ github.event_name == 'release' || github.event_name == 'schedule' }} | ||||
|     needs: [prepare-files, build-apps] | ||||
|     env: | ||||
|       VERSION_NO_V: ${{ needs.prepare-files.outputs.version }} | ||||
|       VERSION: ${{ github.event_name == 'schedule' && needs.prepare-files.outputs.version || format('v{0}', needs.prepare-files.outputs.version) }} | ||||
|       PUB_DATE: ${{ github.event_name == 'release' && github.event.release.created_at || github.event.repository.updated_at }} | ||||
|       NOTES: ${{ github.event_name == 'release' && github.event.release.body || format('Non-release build, commit {0}', github.sha) }} | ||||
|       BUCKET_DIR: ${{ github.event_name == 'schedule' && 'dl.kittycad.io/releases/modeling-app/nightly' || 'dl.kittycad.io/releases/modeling-app' }} | ||||
|       WEBSITE_DIR: ${{ github.event_name == 'schedule' && 'dl.zoo.dev/releases/modeling-app/nightly' || 'dl.zoo.dev/releases/modeling-app' }} | ||||
|       BUCKET_DIR: ${{ github.event_name == 'schedule' && 'dl.kittycad.io/releases/modeling-app/nightly' || 'dl.kittycad.io/releases/modeling-app/test/cut-release-v0.25.0-updater-test' }} | ||||
|       WEBSITE_DIR: ${{ github.event_name == 'schedule' && 'dl.zoo.dev/releases/modeling-app/nightly' || 'dl.zoo.dev/releases/modeling-app/test/cut-release-v0.25.0-updater-test' }} | ||||
|       BUCKET_DIR_TAURI: 'dl.kittycad.io/releases/modeling-app/test/cut-release-v0.25.0-updater-test/tauri-compat' | ||||
|       WEBSITE_DIR_TAURI: 'dl.zoo.dev/releases/modeling-app/test/cut-release-v0.25.0-updater-test/tauri-compat' | ||||
|       URL_CODED_NAME: ${{ github.event_name == 'schedule' && 'Zoo%20Modeling%20App%20%28Nightly%29' || 'Zoo%20Modeling%20App' }} | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|  | ||||
|       - uses: actions/download-artifact@v3 | ||||
|         with: | ||||
|           name: out-arm64-windows-2022 | ||||
|           name: out-windows-2022 | ||||
|           path: out | ||||
|  | ||||
|       - uses: actions/download-artifact@v3 | ||||
|         with: | ||||
|           name: out-x64-windows-2022 | ||||
|           name: out-macos-14 | ||||
|           path: out | ||||
|  | ||||
|       - uses: actions/download-artifact@v3 | ||||
|         with: | ||||
|           name: out-arm64-macos-14 | ||||
|           path: out | ||||
|  | ||||
|       - uses: actions/download-artifact@v3 | ||||
|         with: | ||||
|           name: out-x64-macos-14 | ||||
|           path: out | ||||
|  | ||||
|       - uses: actions/download-artifact@v3 | ||||
|         with: | ||||
|           name: out-arm64-ubuntu-22.04 | ||||
|           path: out | ||||
|  | ||||
|       - uses: actions/download-artifact@v3 | ||||
|         with: | ||||
|           name: out-x64-ubuntu-22.04 | ||||
|           name: out-ubuntu-22.04 | ||||
|           path: out | ||||
|        | ||||
|       - name: Generate the download static endpoint | ||||
| @ -271,10 +223,8 @@ jobs: | ||||
|             --arg notes "${NOTES}" \ | ||||
|             --arg mac_arm64_url "$RELEASE_DIR/${{ env.URL_CODED_NAME }}-${VERSION_NO_V}-arm64-mac.dmg" \ | ||||
|             --arg mac_x64_url "$RELEASE_DIR/${{ env.URL_CODED_NAME }}-${VERSION_NO_V}-x64-mac.dmg" \ | ||||
|             --arg windows_arm64_url "$RELEASE_DIR/${{ env.URL_CODED_NAME }}-${VERSION_NO_V}-arm64-win.exe" \ | ||||
|             --arg windows_x64_url "$RELEASE_DIR/${{ env.URL_CODED_NAME }}-${VERSION_NO_V}-x64-win.exe" \ | ||||
|             --arg linux_arm64_url "$RELEASE_DIR/${{ env.URL_CODED_NAME }}-${VERSION_NO_V}-arm64-linux.AppImage" \ | ||||
|             --arg linux_x64_url "$RELEASE_DIR/${{ env.URL_CODED_NAME }}-${VERSION_NO_V}-x86_64-linux.AppImage" \ | ||||
|             --arg windows_arm64_url "$RELEASE_DIR/${{ env.URL_CODED_NAME }}-${VERSION_NO_V}-arm64-win.msi" \ | ||||
|             --arg windows_x64_url "$RELEASE_DIR/${{ env.URL_CODED_NAME }}-${VERSION_NO_V}-x64-win.msi" \ | ||||
|             '{ | ||||
|               "version": $version, | ||||
|               "pub_date": $pub_date, | ||||
| @ -286,22 +236,54 @@ jobs: | ||||
|                 "dmg-x64": { | ||||
|                   "url": $mac_x64_url | ||||
|                 }, | ||||
|                 "exe-arm64": { | ||||
|                 "msi-arm64": { | ||||
|                   "url": $windows_arm64_url | ||||
|                 }, | ||||
|                 "exe-x64": { | ||||
|                 "msi-x64": { | ||||
|                   "url": $windows_x64_url | ||||
|                 }, | ||||
|                 "appimage-arm64": { | ||||
|                   "url": $linux_arm64_url | ||||
|                 }, | ||||
|                 "appimage-x64": { | ||||
|                   "url": $linux_x64_url | ||||
|                 } | ||||
|               } | ||||
|             }' > last_download.json | ||||
|             cat last_download.json | ||||
|  | ||||
|       - name: Generate the update static endpoint for tauri | ||||
|         run: | | ||||
|           TAURI_DIR=out/tauri/$VERSION | ||||
|           MAC_ARM64_SIG=`cat $TAURI_DIR/macos/*-arm64.app.tar.gz.sig` | ||||
|           MAC_X64_SIG=`cat $TAURI_DIR/macos/*-x64.app.tar.gz.sig` | ||||
|           WINDOWS_SIG=`cat $TAURI_DIR/nsis/*.nsis.zip.sig` | ||||
|           RELEASE_DIR=https://${WEBSITE_DIR_TAURI}/${VERSION} | ||||
|           jq --null-input \ | ||||
|             --arg version "${VERSION}" \ | ||||
|             --arg pub_date "${PUB_DATE}" \ | ||||
|             --arg notes "${NOTES}" \ | ||||
|             --arg mac_arm64_sig "$MAC_ARM64_SIG" \ | ||||
|             --arg mac_arm64_url "$RELEASE_DIR/macos/${{ env.URL_CODED_NAME }}-arm64.app.tar.gz" \ | ||||
|             --arg mac_x64_sig "$MAC_X64_SIG" \ | ||||
|             --arg mac_x64_url "$RELEASE_DIR/macos/${{ env.URL_CODED_NAME }}-x64.app.tar.gz" \ | ||||
|             --arg windows_sig "$WINDOWS_SIG" \ | ||||
|             --arg windows_url "$RELEASE_DIR/nsis/${{ env.URL_CODED_NAME }}_${VERSION_NO_V}_x64-setup.nsis.zip" \ | ||||
|             '{ | ||||
|               "version": $version, | ||||
|               "pub_date": $pub_date, | ||||
|               "notes": $notes, | ||||
|               "platforms": { | ||||
|                 "darwin-x86_64": { | ||||
|                   "signature": $mac_x64_sig, | ||||
|                   "url": $mac_x64_url | ||||
|                 }, | ||||
|                 "darwin-aarch64": { | ||||
|                   "signature": $mac_arm64_sig, | ||||
|                   "url": $mac_arm64_url | ||||
|                 }, | ||||
|                 "windows-x86_64": { | ||||
|                   "signature": $windows_sig, | ||||
|                   "url": $windows_url | ||||
|                 } | ||||
|               } | ||||
|             }' > last_update.json | ||||
|             cat last_update.json | ||||
|  | ||||
|       - name: List artifacts | ||||
|         run: "ls -R out" | ||||
|  | ||||
| @ -337,6 +319,20 @@ jobs: | ||||
|           path: last_download.json | ||||
|           destination: ${{ env.BUCKET_DIR }} | ||||
|  | ||||
|       - name: Upload release files to public bucket for tauri | ||||
|         uses: google-github-actions/upload-cloud-storage@v2.2.0 | ||||
|         with: | ||||
|           path: "out/tauri/${{ env.VERSION }}"  | ||||
|           glob: '*/Zoo*' | ||||
|           parent: false | ||||
|           destination: ${{ env.BUCKET_DIR_TAURI }}/${{ env.VERSION }} | ||||
|  | ||||
|       # - name: Upload update endpoint to public bucket for tauri | ||||
|       #   uses: google-github-actions/upload-cloud-storage@v2.1.1 | ||||
|       #   with: | ||||
|       #     path: last_update.json | ||||
|       #     destination: ${{ env.BUCKET_DIR }} | ||||
|  | ||||
|       - name: Upload release files to Github | ||||
|         if: ${{ github.event_name == 'release' }} | ||||
|         uses: softprops/action-gh-release@v2 | ||||
|  | ||||
							
								
								
									
										2
									
								
								.github/workflows/build-test-web.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/build-test-web.yml
									
									
									
									
										vendored
									
									
								
							| @ -45,7 +45,7 @@ jobs: | ||||
|       - run: yarn xstate:typegen | ||||
|       - run: yarn tsc | ||||
|       - name: Lint | ||||
|         run: yarn eslint --max-warnings 0 src e2e packages/codemirror-lsp-client | ||||
|         run: yarn eslint --max-warnings 0 src e2e | ||||
|  | ||||
|  | ||||
|   check-typos: | ||||
|  | ||||
							
								
								
									
										3
									
								
								.github/workflows/cargo-clippy.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/workflows/cargo-clippy.yml
									
									
									
									
										vendored
									
									
								
							| @ -28,7 +28,6 @@ jobs: | ||||
|         dir: ['src/wasm-lib'] | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: taiki-e/install-action@just | ||||
|       - name: Install latest rust | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
| @ -42,7 +41,7 @@ jobs: | ||||
|       - name: Run clippy | ||||
|         run: | | ||||
|           cd "${{ matrix.dir }}" | ||||
|           just lint | ||||
|           cargo clippy --all --tests --benches -- -D warnings | ||||
|       # If this fails, run "cargo check" to update Cargo.lock, | ||||
|       # then add Cargo.lock to the PR. | ||||
|       - name: Check Cargo.lock doesn't need updating | ||||
|  | ||||
							
								
								
									
										2
									
								
								.github/workflows/cargo-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/cargo-test.yml
									
									
									
									
										vendored
									
									
								
							| @ -4,7 +4,6 @@ on: | ||||
|       - main | ||||
|     paths: | ||||
|       - 'src/wasm-lib/**.rs' | ||||
|       - 'src/wasm-lib/**.hbs' | ||||
|       - '**/Cargo.toml' | ||||
|       - '**/Cargo.lock' | ||||
|       - '**/rust-toolchain.toml' | ||||
| @ -14,7 +13,6 @@ on: | ||||
|   pull_request: | ||||
|     paths: | ||||
|       - 'src/wasm-lib/**.rs' | ||||
|       - 'src/wasm-lib/**.hbs' | ||||
|       - '**/Cargo.toml' | ||||
|       - '**/Cargo.lock' | ||||
|       - '**/rust-toolchain.toml' | ||||
|  | ||||
							
								
								
									
										2
									
								
								.github/workflows/generate-website-docs.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/generate-website-docs.yml
									
									
									
									
										vendored
									
									
								
							| @ -38,10 +38,8 @@ jobs: | ||||
|           mkdir -p documentation/content/pages/docs/kcl/ | ||||
|           # cleanup old | ||||
|           rm -rf documentation/content/pages/docs/kcl/*.md | ||||
|           rm -rf documentation/content/pages/docs/kcl/types | ||||
|           # move new | ||||
|           mv -f docs/kcl/*.md documentation/content/pages/docs/kcl/ | ||||
|           mv -f docs/kcl/types documentation/content/pages/docs/kcl/ | ||||
|       - name: commit the changes in the docs repo | ||||
|         shell: bash | ||||
|         run: | | ||||
|  | ||||
							
								
								
									
										6
									
								
								.github/workflows/playwright.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/playwright.yml
									
									
									
									
										vendored
									
									
								
							| @ -34,7 +34,7 @@ jobs: | ||||
|               - 'src/wasm-lib/**' | ||||
|  | ||||
|   playwright-chrome: | ||||
|     timeout-minutes: ${{ matrix.os == 'macos-14' && 60 || 50 }} | ||||
|     timeout-minutes: ${{ matrix.os == 'macos-14' && 60 || 40 }} | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
| @ -232,7 +232,6 @@ jobs: | ||||
|         exit 0 | ||||
|       env: | ||||
|         CI: true | ||||
|         FAIL_ON_CONSOLE_ERRORS: true | ||||
|         NODE_ENV: development | ||||
|         VITE_KC_DEV_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN_DEV }} | ||||
|         VITE_KC_SKIP_AUTH: true | ||||
| @ -263,7 +262,7 @@ jobs: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [ubuntu-latest, windows-latest, macos-14] | ||||
|     timeout-minutes: 60 | ||||
|     timeout-minutes: 40 | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     needs: check-rust-changes | ||||
|     steps: | ||||
| @ -411,7 +410,6 @@ jobs: | ||||
|         exit 0 | ||||
|       env: | ||||
|         CI: true | ||||
|         FAIL_ON_CONSOLE_ERRORS: true | ||||
|         NODE_ENV: development | ||||
|         VITE_KC_DEV_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN_DEV }} | ||||
|         VITE_KC_SKIP_AUTH: true | ||||
|  | ||||
| @ -5,7 +5,6 @@ coverage | ||||
|  | ||||
| # Ignore Rust projects: | ||||
| *.rs | ||||
| *.hbs | ||||
| target | ||||
| src/wasm-lib/pkg | ||||
| src/wasm-lib/kcl/bindings | ||||
|  | ||||
							
								
								
									
										19
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								README.md
									
									
									
									
									
								
							| @ -351,6 +351,25 @@ PS: for the debug panel, the following JSON is useful for snapping the camera | ||||
|  | ||||
| </details> | ||||
|  | ||||
| ### Tauri e2e tests | ||||
|  | ||||
| #### Windows (local only until the CI edge version mismatch is fixed) | ||||
|  | ||||
| ``` | ||||
| yarn install | ||||
| yarn build:wasm-dev | ||||
| cp src/wasm-lib/pkg/wasm_lib_bg.wasm public | ||||
| yarn vite build --mode development | ||||
| yarn tauri build --debug -b | ||||
| $env:KITTYCAD_API_TOKEN="<YOUR_KITTYCAD_API_TOKEN>" | ||||
| $env:VITE_KC_API_BASE_URL="https://api.dev.zoo.dev" | ||||
| $env:E2E_TAURI_ENABLED="true" | ||||
| $env:TS_NODE_COMPILER_OPTIONS='{"module": "commonjs"}' | ||||
| $env:E2E_APPLICATION=".\src-tauri\target\debug\Zoo Modeling App.exe" | ||||
| Stop-Process -Name msedgedriver | ||||
| yarn wdio run wdio.conf.ts | ||||
| ``` | ||||
|  | ||||
| ## KCL | ||||
|  | ||||
| For how to contribute to KCL, [see our KCL README](https://github.com/KittyCAD/modeling-app/tree/main/src/wasm-lib/kcl). | ||||
|  | ||||
| @ -22,3 +22,8 @@ once fixed in engine will just start working here with no language changes. | ||||
|  | ||||
| - **Chamfers**: Chamfers cannot intersect, you will get an error. Only simple | ||||
|     chamfer cases work currently. | ||||
|  | ||||
|     Sketching on the chamfered face does not currently work. | ||||
|  | ||||
| - **Shell**: Shell sometimes does not work when arcs or fillets are involved. | ||||
|     We are tracking the engine side bug on this. | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										873
									
								
								docs/kcl/arc.md
									
									
									
									
									
								
							
							
						
						
									
										873
									
								
								docs/kcl/arc.md
									
									
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1017
									
								
								docs/kcl/circle.md
									
									
									
									
									
								
							
							
						
						
									
										1017
									
								
								docs/kcl/circle.md
									
									
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1256
									
								
								docs/kcl/hole.md
									
									
									
									
									
								
							
							
						
						
									
										1256
									
								
								docs/kcl/hole.md
									
									
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -61,10 +61,8 @@ layout: manual | ||||
| * [`log10`](kcl/log10) | ||||
| * [`log2`](kcl/log2) | ||||
| * [`m`](kcl/m) | ||||
| * [`map`](kcl/map) | ||||
| * [`max`](kcl/max) | ||||
| * [`min`](kcl/min) | ||||
| * [`mirror2d`](kcl/mirror2d) | ||||
| * [`mm`](kcl/mm) | ||||
| * [`offsetPlane`](kcl/offsetPlane) | ||||
| * [`patternCircular2d`](kcl/patternCircular2d) | ||||
| @ -78,8 +76,6 @@ layout: manual | ||||
| * [`profileStart`](kcl/profileStart) | ||||
| * [`profileStartX`](kcl/profileStartX) | ||||
| * [`profileStartY`](kcl/profileStartY) | ||||
| * [`reduce`](kcl/reduce) | ||||
| * [`rem`](kcl/rem) | ||||
| * [`revolve`](kcl/revolve) | ||||
| * [`segAng`](kcl/segAng) | ||||
| * [`segEndX`](kcl/segEndX) | ||||
|  | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -16,23 +16,20 @@ legAngX(hypotenuse: number, leg: number) -> number | ||||
|  | ||||
| * `utilities` | ||||
|  | ||||
|  | ||||
| ### Arguments | ||||
|  | ||||
| | Name | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `hypotenuse` | `number` |  | Yes | | ||||
| | `leg` | `number` |  | Yes | | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
| ```js | ||||
| legAngX(5, 3) | ||||
| ``` | ||||
|  | ||||
| ### Arguments | ||||
|  | ||||
| * `hypotenuse`: `number` (REQUIRED) | ||||
| * `leg`: `number` (REQUIRED) | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -16,23 +16,20 @@ legAngY(hypotenuse: number, leg: number) -> number | ||||
|  | ||||
| * `utilities` | ||||
|  | ||||
|  | ||||
| ### Arguments | ||||
|  | ||||
| | Name | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `hypotenuse` | `number` |  | Yes | | ||||
| | `leg` | `number` |  | Yes | | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
| ```js | ||||
| legAngY(5, 3) | ||||
| ``` | ||||
|  | ||||
| ### Arguments | ||||
|  | ||||
| * `hypotenuse`: `number` (REQUIRED) | ||||
| * `leg`: `number` (REQUIRED) | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -16,23 +16,20 @@ legLen(hypotenuse: number, leg: number) -> number | ||||
|  | ||||
| * `utilities` | ||||
|  | ||||
|  | ||||
| ### Arguments | ||||
|  | ||||
| | Name | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `hypotenuse` | `number` |  | Yes | | ||||
| | `leg` | `number` |  | Yes | | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number`  | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
| ```js | ||||
| legLen(5, 3) | ||||
| ``` | ||||
|  | ||||
| ### Arguments | ||||
|  | ||||
| * `hypotenuse`: `number` (REQUIRED) | ||||
| * `leg`: `number` (REQUIRED) | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `number` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										849
									
								
								docs/kcl/line.md
									
									
									
									
									
								
							
							
						
						
									
										849
									
								
								docs/kcl/line.md
									
									
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										465
									
								
								docs/kcl/loft.md
									
									
									
									
									
								
							
							
						
						
									
										465
									
								
								docs/kcl/loft.md
									
									
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1006
									
								
								docs/kcl/shell.md
									
									
									
									
									
								
							
							
						
						
									
										1006
									
								
								docs/kcl/shell.md
									
									
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										367331
									
								
								docs/kcl/std.json
									
									
									
									
									
								
							
							
						
						
									
										367331
									
								
								docs/kcl/std.json
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user
	