Skip to content
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

Feat: Offline desktop build :-) #188

Open
wants to merge 95 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
46b611d
Electron build :-)
mmiscool Nov 6, 2022
94fa1c3
Better electron build instructions
mmiscool Nov 6, 2022
2c7fca9
Fix zoom not working on with out changing camera mode
mmiscool Nov 6, 2022
999ec20
Electron build docs and libraries update
mmiscool Nov 6, 2022
3d79b3e
Make datum object always render on top.
mmiscool Nov 7, 2022
c2ea200
README file updates
mmiscool Nov 7, 2022
300ed58
Make SVG icons work
mmiscool Nov 8, 2022
8fe9d5f
Switch to SVG icons
mmiscool Nov 8, 2022
a93993c
SVG icon for sketch icon
mmiscool Nov 8, 2022
bcfbf11
Re-order tool bar
mmiscool Nov 8, 2022
ffc5645
removed left over debugging alert
mmiscool Nov 8, 2022
ff6f564
Cleanup and fix broken commands in menus
mmiscool Nov 9, 2022
9f287e7
Partially functional view cube.
mmiscool Nov 9, 2022
26ea53d
Change "Create Datum" label to "Datum"
mmiscool Nov 10, 2022
10ae253
Make model workbench use toolbar groups
mmiscool Nov 10, 2022
20ca398
Adjust primary tool bar css removing transparency
mmiscool Nov 10, 2022
1bf1cb4
Improved appearance of toolbar groups
mmiscool Nov 10, 2022
0292d7a
update engine to get fixshape commands
xibyte Nov 13, 2022
b96ba9d
make view cube work to rotate to view on click.
mmiscool Nov 13, 2022
edfd728
Changed icon colors
mmiscool Nov 14, 2022
48cd629
added icon for move body
mmiscool Nov 14, 2022
4a87211
boolean simplify checkbox related fixes
mmiscool Nov 14, 2022
793fcee
prevent highlighting of text in view cube for click and drag actions
mmiscool Nov 14, 2022
c70ef03
convert ViewCube to react
xibyte Nov 16, 2022
9d69c35
prevent long names of sketch geometry from taking over whole screen a…
mmiscool Nov 17, 2022
235fe10
Tweak position of view cube
mmiscool Nov 17, 2022
492ea8c
Getting closer to functioning hole feature
mmiscool Nov 17, 2022
fb41596
Working hole command.
mmiscool Nov 18, 2022
0f54706
add points to sketch geom object
mmiscool Nov 18, 2022
bf8f965
make hole command work off of points
mmiscool Nov 18, 2022
8fc592f
Hole command tweaks
mmiscool Nov 18, 2022
dd2cab8
View cube style tweaks
mmiscool Nov 18, 2022
545e5ed
refactor hole command
mmiscool Nov 18, 2022
dc96c9b
used oriented bouding boxes for boolean opperations
mmiscool Nov 23, 2022
dca7f57
a few changes to the sheet metal environment
mmiscool Nov 23, 2022
2d07b77
Cleanup after running linter
mmiscool Nov 26, 2022
7bfd806
Fix spelling of chamfer
mmiscool Nov 26, 2022
39ca897
update electron version to latest
mmiscool Nov 27, 2022
9d7066f
upgrade electron-builder to latest
mmiscool Nov 27, 2022
05d4222
get production analizer for booleans
xibyte Nov 27, 2022
e7c2ac0
fix filter construction geometry in 3D
xibyte Nov 27, 2022
6cb9cf8
visualizing points
xibyte Nov 27, 2022
a3d592d
fix issue identified by linter
mmiscool Nov 27, 2022
954b6e6
README updates
mmiscool Nov 28, 2022
694bbb8
Reorder and correct typos in form ui labels
mmiscool Nov 30, 2022
b22f32f
generating stable feature id
xibyte Dec 3, 2022
0dea626
apply transformation to the points
xibyte Dec 3, 2022
2fa2866
feat: add support for dxf files import
tarikjabiri Nov 23, 2022
f62fb8a
add the DXF import button
xibyte Dec 4, 2022
77f75de
fix featureId propagation to the materialized params
xibyte Dec 4, 2022
22cdafd
ignore comments in the start of dxf file (#191)
tarikjabiri Dec 5, 2022
ee4a19e
stable face IDs for primitive opperations using featureId param.
mmiscool Dec 7, 2022
baa06f5
upgraded all packages
mmiscool Dec 7, 2022
5720a98
selection filter
xibyte Dec 17, 2022
5c915a6
fix bezier curve deserialization
xibyte Dec 17, 2022
0066b41
support ellipses
xibyte Dec 17, 2022
c636d5d
Added proper export BREP SVG icon
mmiscool Dec 29, 2022
b809dcf
add support for dxf lightweight polylines (#196)
tarikjabiri Jan 16, 2023
2326c75
upgrade engine fixing boolean bugs
mmiscool Feb 4, 2023
3ea841b
icons clean up
mmiscool Feb 4, 2023
9250ccf
Add simplify body feature.
mmiscool Feb 4, 2023
817b3fe
removed orientation indicator replaced by view cube.
mmiscool Feb 4, 2023
04a6e51
re adding tcl to js converter utility.
mmiscool Feb 4, 2023
a270e76
Prepping for stl and iges file import apis to be implemented
mmiscool Feb 4, 2023
563ff9a
cleanup results of npm run before-main-branch-merge
mmiscool Feb 15, 2023
322d47f
feat: add support for dxf blocks (#200)
tarikjabiri Mar 7, 2023
8d27ea7
fix to make npm run build
mmiscool Mar 12, 2023
10295d0
fixing tesselation
xibyte Mar 12, 2023
e6d71f8
Added first cut at DRAFT_FACES feature
mmiscool Mar 26, 2023
8dd201c
Made DRAFT_FACES work on multiple shells at same time
mmiscool Mar 27, 2023
1022163
Make JSketcher work on codeserver dev environment.
Apr 11, 2023
96911f2
non working move body opperation.
May 3, 2023
0cba47e
working move body command
May 4, 2023
f764f6a
feat: initial tauri commit (#206)
ZanzyTHEbar May 12, 2023
b5dc668
Stable ID generator for cloned objects and mirror opperations
May 13, 2023
f8443e0
Update to use stable IDs for paterned / mirroed objects.
May 13, 2023
65acdf8
Merge branch 'dev' of github.com:xibyte/jsketcher into dev
May 13, 2023
a4b82dc
ci: Setting up CI workflow
May 13, 2023
d1bfb23
chore(major): 1.0.0-dev.1 [skip ci]
semantic-release-bot May 13, 2023
87666ba
Playing with face creating in test feature
Jun 4, 2023
ee43515
get info action and test feature added
Jun 4, 2023
b181de8
Merge branch 'dev' of github.com:xibyte/jsketcher into dev
Jun 4, 2023
ecc9491
First cut of making virtual touchpad for use on mobile browsers
Aug 19, 2023
8914d92
improvements to virtual mouse
Aug 22, 2023
56448a9
fix rightclick and other virtual touchpad enhansements.
Aug 23, 2023
b1cf4ff
tweaking toolbar CSS
Aug 23, 2023
5ac1a0c
make displaying the list of model objects under pointer some thing th…
Aug 23, 2023
378353e
cleanup virtual touchpad code.
Aug 24, 2023
92cf2ce
Added missing import for radial pater ExpectedOrderProductionAnalyzer
Aug 25, 2023
c244bc2
mobile freindly mouse code cleanup
Aug 25, 2023
dfa5280
Tweaks to tool bars and icon sizes css
Sep 3, 2023
063b8d2
non working start of new utility function to make face with holes in it
Sep 3, 2023
9d007cd
Added hack to make select elements work with wirtual mouse
Sep 8, 2023
a54a784
upgrade all npm packages and fix build warnings related to react icons.
Sep 8, 2023
ca3e2b1
Fix react icons build error.
mmiscool Jul 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"env": {
"browser": true,
"commonjs": true,
"node": true,
"es6": true
},
"parser": "@babel/eslint-parser",
Expand Down
182 changes: 182 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
name: Produce Desktop Binary Builds
on:
workflow_dispatch:
push:
branches:
- dev
#- master
- main

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: write

jobs:
build:
#defaults:
# run:
# working-directory: GUI/ETVR
strategy:
fail-fast: false
matrix:
node-version: [18.x]
#, macos-latest
#windows-latest,
platform: [ubuntu-latest, windows-latest]
include:
#- os: ubuntu-18.04
# rust_target: x86_64-unknown-linux-gnu
- os: windows-latest
rust_target: x86_64-pc-windows-msvc
#- os: macos-latest
# rust_target: x86_64-apple-darwin
#- os: macos-latest
# rust_target: aarch64-apple-darwin
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
token: ${{ env.GITHUB_TOKEN }}
- name: Build the App (Linux)
if: matrix.platform == 'ubuntu-latest'
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/zanzythebar/tauridocker:latest
options: -v ${{ github.workspace }}:/workspace
run: |
echo "::group::install node dependencies"
npm install -g pnpm
npm install -g typescript
pnpm install
echo "::group::tauri build"
pnpm tauri build
echo "::endgroup::"
- name: Archive the App (Linux)
if: matrix.platform == 'ubuntu-latest'
uses: actions/upload-artifact@v3
with:
name: production-files
path: |
src-tauri/target/release/bundle/deb/*.deb
src-tauri/target/release/bundle/appimage/*.AppImage
retention-days: 5
if-no-files-found: error
- name: Verify build (Linux)
if: matrix.platform == 'ubuntu-latest'
run: |
ls -la src-tauri/target/release/bundle/appimage
ls -la src-tauri/target/release/bundle/deb

- name: Node.js setup ${{ matrix.node-version }} (Windows & MacOS)
if: matrix.platform == 'windows-latest' || matrix.platform == 'macos-latest'
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
#cache: "pnpm"
# node-version-file: '.nvmrc'

- name: Install dependencies (Windows & MacOS)
if: matrix.platform == 'windows-latest' || matrix.platform == 'macos-latest'
run: |
echo "::group::install node dependencies"
npm install -g pnpm
npm install -g typescript
pnpm install
echo "::endgroup::"

- name: Setup Rust (Windows & MacOS)
if: matrix.platform == 'windows-latest' || matrix.platform == 'macos-latest'
uses: actions-rs/toolchain@v1
with:
default: true
override: true
profile: minimal
toolchain: stable
target: ${{ matrix.platform.rust_target }}

- name: Cache Rust (Windows & MacOS)
if: matrix.platform == 'windows-latest' || matrix.platform == 'macos-latest'
uses: Swatinem/rust-cache@v2
with:
workspaces: "./src-tauri -> target"

- name: Build the app (Windows & MacOS)
if: matrix.platform == 'windows-latest' || matrix.platform == 'macos-latest'
uses: JonasKruckenberg/tauri-build@v1.2.3
id: tauri_build
env:
GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }}
ENABLE_CODE_SIGNING: ${{ env.APPLE_CERTIFICATE }}
#APPLE_CERTIFICATE: ${{ env.APPLE_CERTIFICATE }}
#APPLE_CERTIFICATE_PASSWORD: ${{ env.APPLE_CERTIFICATE_PASSWORD }}
#APPLE_SIGNING_IDENTITY: ${{ env.APPLE_SIGNING_IDENTITY }}
#APPLE_ID: ${{ env.APPLE_ID }}
#APPLE_PASSWORD: ${{ env.APPLE_PASSWORD }}
with:
target: ${{ matrix.platform.rust_target }}

- name: Archive the App (Windows & MacOS)
if: matrix.platform == 'windows-latest' || matrix.platform == 'macos-latest'
uses: actions/upload-artifact@v3
with:
name: production-files
path: "${{ join(fromJSON(steps.tauri_build.outputs.artifacts), '\n') }}"

deploy:
runs-on: ubuntu-latest
name: Deploy
needs: [build]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Create Directory
run: mkdir -p dist
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: production-files
path: ./dist
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 18
- run: npm install -g conventional-changelog-conventionalcommits
- run: npm install -g semantic-release@v21.0.2
- run: npm install -g @semantic-release/exec
- run: npm install -g @semantic-release/git
- run: npm install -g @semantic-release/release-notes-generator
- run: npm install -g @semantic-release/changelog
- run: npm install -g @semantic-release/github
- name: Release
env:
GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }}
run: |
sudo apt-get install -y jq
chmod +x ./scripts/prepareCMD.sh
semantic-release

cleanup:
name: Cleanup actions
needs:
- deploy
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: "♻️ remove build artifacts"
uses: geekyeggo/delete-artifact@v1
with:
name: production-files
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,4 @@
/node_modules
/dist
/.vs
/web/docs/
pnpm-lock.yaml
/web/docs/
188 changes: 188 additions & 0 deletions .releaserc
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
{
"branches": [
"main",
{
"name": "dev",
"prerelease": true
}
],
"plugins": [
[
"@semantic-release/commit-analyzer",
{
"preset": "conventionalcommits",
"parserOpts": {
"noteKeywords": [
"BREAKING CHANGE",
"BREAKING CHANGES",
"BREAKING"
]
},
"releaseRules": [
{
"breaking": true,
"release": "major"
},
{
"type": "feat",
"release": "minor"
},
{
"type": "fix",
"release": "patch"
},
{
"type": "perf",
"release": "patch"
},
{
"type": "revert",
"release": "patch"
},
{
"type": "docs",
"scope": "docs-*",
"release": "minor"
},
{
"type": "docs",
"release": false
},
{
"type": "style",
"release": "patch"
},
{
"type": "refactor",
"release": "patch"
},
{
"type": "test",
"release": "patch"
},
{
"type": "build",
"release": "patch"
},
{
"type": "ci",
"scope": "ci-*",
"release": "patch"
},
{
"type": "chore",
"release": false
},
{
"type": "no-release",
"release": false
}
]
}
],
[
"@semantic-release/release-notes-generator",
{
"preset": "conventionalcommits",
"parserOpts": {
"noteKeywords": [
"BREAKING CHANGE",
"BREAKING CHANGES",
"BREAKING"
]
},
"writerOpts": {
"commitsSort": [
"subject",
"scope"
]
},
"presetConfig": {
"types": [
{
"type": "feat",
"section": "🍕 Features"
},
{
"type": "feature",
"section": "🍕 Features"
},
{
"type": "fix",
"section": "🐛 Bug Fixes"
},
{
"type": "perf",
"section": "🔥 Performance Improvements"
},
{
"type": "revert",
"section": "⏩ Reverts"
},
{
"type": "docs",
"section": "📝 Documentation"
},
{
"type": "style",
"section": "🎨 Styles"
},
{
"type": "refactor",
"section": "🧑‍💻 Code Refactoring"
},
{
"type": "test",
"section": "✅ Tests"
},
{
"type": "build",
"section": "🤖 Build System"
},
{
"type": "ci",
"section": "🔁 Continuous Integration"
}
]
}
}
],
[
"@semantic-release/changelog",
{
"changelogTitle": "# 📦 Changelog \n[![conventional commits](https://img.shields.io/badge/conventional%20commits-1.0.0-yellow.svg)](https://conventionalcommits.org)\n[![semantic versioning](https://img.shields.io/badge/semantic%20versioning-2.0.0-green.svg)](https://semver.org)\n> All notable changes to this project will be documented in this file"
}
],
[
"@semantic-release/exec",
{
"prepareCmd": "./scripts/prepareCMD.sh ${nextRelease.version}",
"publishCmd": "echo Publishing ${nextRelease.version}"
}
],
[
"@semantic-release/github",
{
"addReleases": "bottom",
"assets": [
{
"path": "./dist/**/*.{msi,deb,rpm,AppImage,dmg,zip}"
}
]
}
],
[
"@semantic-release/git",
{
"assets": [
"package.json",
"src-tauri/tauri.conf.json",
"src-tauri/Cargo.toml",
"LICENSE*",
"CHANGELOG.md"
],
"message": "chore(${nextRelease.type}): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
]
]
}
3 changes: 3 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer", "esbenp.prettier-vscode"]
}
6 changes: 6 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"editor.codeActionsOnSave": {
"source.fixAll": "explicit"
},
"cSpell.words": ["appimage", "clippy", "jsketcher", "shakram", "tamasfe"]
}
Loading
Loading