Skip to content

Commit 882a9c6

Browse files
authored
Merge branch 'master' into stateful-c-lib
2 parents 8ce18d7 + 33f9cf9 commit 882a9c6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+4301
-2648
lines changed

.github/ISSUE_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
### System information
22

3-
- **SolveSpace version:** <!--e.g. 3.0~3dd2fc00; go to Help → About...-->
3+
- **SolveSpace version:** <!--e.g. 3.1~70bde63c; go to Help → About… / SolveSpace → About SolveSpace (macOS)-->
44
- **Operating system:** <!--e.g. Debian testing-->
55

66
### Expected behavior

.github/scripts/install-macos.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/bin/sh -xe
22

33
if [ "$1" = "ci" ]; then
4-
armloc=$(brew fetch --bottle-tag=arm64_big_sur libomp | grep -i downloaded | grep tar.gz | cut -f2 -d:)
5-
x64loc=$(brew fetch --bottle-tag=big_sur libomp | grep -i downloaded | grep tar.gz | cut -f2 -d:)
4+
armloc=$(brew fetch --bottle-tag=arm64_ventura libomp | grep -i downloaded | grep tar.gz | cut -f2 -d:)
5+
x64loc=$(brew fetch --bottle-tag=ventura libomp | grep -i downloaded | grep tar.gz | cut -f2 -d:)
66
cp $armloc /tmp/libomp-arm64.tar.gz
77
mkdir /tmp/libomp-arm64 || true
88
tar -xzvf /tmp/libomp-arm64.tar.gz -C /tmp/libomp-arm64

.github/scripts/sign-macos.sh

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -58,34 +58,29 @@ hdiutil create -srcfolder "${app}" "${dmg}"
5858
# sign the .dmg
5959
codesign -s "${MACOS_DEVELOPER_ID}" --timestamp --options runtime -f --deep "${dmg}"
6060

61-
# notarize and store request uuid in variable
62-
notarize_uuid=$(xcrun altool --notarize-app --primary-bundle-id "${bundle_id}" --username "${MACOS_APPSTORE_USERNAME}" --password "${MACOS_APPSTORE_APP_PASSWORD}" --file "${dmg}" 2>&1 | grep RequestUUID | awk '{print $3'})
63-
64-
echo $notarize_uuid
65-
66-
# wait a bit so we don't get errors during checking
67-
sleep 10
68-
69-
success=0
70-
for (( ; ; ))
71-
do
72-
echo "Checking progress..."
73-
progress=$(xcrun altool --notarization-info "${notarize_uuid}" -u "${MACOS_APPSTORE_USERNAME}" -p "${MACOS_APPSTORE_APP_PASSWORD}" 2>&1)
74-
# echo "${progress}"
75-
76-
if [ $? -ne 0 ] || [[ "${progress}" =~ "Invalid" ]] ; then
77-
echo "Error with notarization. Exiting"
78-
break
79-
fi
80-
81-
if [[ "${progress}" =~ "success" ]]; then
82-
success=1
83-
break
84-
else
85-
echo "Not completed yet. Sleeping for 10 seconds"
86-
fi
87-
sleep 10
88-
done
61+
if ! command -v xcrun >/dev/null || ! xcrun --find notarytool >/dev/null; then
62+
echo "Notarytool is not present in the system. Notarization has failed."
63+
exit 1
64+
fi
65+
66+
# Submit the package for notarization
67+
notarization_output=$(
68+
xcrun notarytool submit "${dmg}" \
69+
--apple-id "hello@koenschmeets.nl" \
70+
--password "${MACOS_APPSTORE_APP_PASSWORD}" \
71+
--team-id "8X77K9NDG3" \
72+
--wait 2>&1)
73+
74+
if [ $? -eq 0 ]; then
75+
# Extract the operation ID from the output
76+
operation_id=$(echo "$notarization_output" | awk '/RequestUUID/ {print $NF}')
77+
echo "Notarization submitted. Operation ID: $operation_id"
78+
exit 0
79+
else
80+
echo "Notarization failed. Error: $notarization_output"
81+
exit 1
82+
fi
83+
fi
8984

9085
# staple
9186
xcrun stapler staple "${dmg}"

.github/workflows/cd.yml

Lines changed: 46 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,19 @@ jobs:
1212
cancel_previous_runs:
1313
runs-on: ubuntu-latest
1414
name: Cancel Previous Runs
15+
permissions:
16+
actions: write
1517
steps:
16-
- uses: styfle/cancel-workflow-action@0.8.0
18+
- uses: styfle/cancel-workflow-action@0.12.1
1719
with:
1820
access_token: ${{ github.token }}
1921

2022
test_ubuntu:
2123
needs: [cancel_previous_runs]
22-
runs-on: ubuntu-20.04
24+
runs-on: ubuntu-latest
2325
name: Test Ubuntu
2426
steps:
25-
- uses: actions/checkout@v2
27+
- uses: actions/checkout@v4
2628
- name: Install Dependencies
2729
run: .github/scripts/install-ubuntu.sh
2830
- name: Build & Test
@@ -33,7 +35,7 @@ jobs:
3335
runs-on: windows-2019
3436
name: Test Windows
3537
steps:
36-
- uses: actions/checkout@v2
38+
- uses: actions/checkout@v4
3739
- name: Install Dependencies
3840
run: .github/scripts/install-windows.sh
3941
shell: bash
@@ -43,10 +45,10 @@ jobs:
4345

4446
test_macos:
4547
needs: [cancel_previous_runs]
46-
runs-on: macos-10.15
48+
runs-on: macos-latest
4749
name: Test macOS
4850
steps:
49-
- uses: actions/checkout@v2
51+
- uses: actions/checkout@v4
5052
- name: Install Dependencies
5153
run: .github/scripts/install-macos.sh ci
5254
- name: Build & Test
@@ -57,15 +59,15 @@ jobs:
5759
name: Build Release Windows
5860
runs-on: windows-2019
5961
steps:
60-
- uses: actions/checkout@v2
62+
- uses: actions/checkout@v4
6163
- name: Install Dependencies
6264
run: .github/scripts/install-windows.sh
6365
shell: bash
6466
- name: Build & Test
6567
run: .github/scripts/build-windows.sh release
6668
shell: bash
6769
- name: Upload artifact
68-
uses: actions/upload-artifact@v2
70+
uses: actions/upload-artifact@v4
6971
with:
7072
name: windows
7173
path: build/bin/RelWithDebInfo/solvespace.exe
@@ -75,25 +77,25 @@ jobs:
7577
name: Build Release Windows (OpenMP)
7678
runs-on: windows-2019
7779
steps:
78-
- uses: actions/checkout@v2
80+
- uses: actions/checkout@v4
7981
- name: Install Dependencies
8082
run: .github/scripts/install-windows.sh
8183
shell: bash
8284
- name: Build & Test
8385
run: .github/scripts/build-windows.sh release openmp
8486
shell: bash
8587
- name: Upload artifact
86-
uses: actions/upload-artifact@v2
88+
uses: actions/upload-artifact@v4
8789
with:
8890
name: windows-openmp
8991
path: build/bin/RelWithDebInfo/solvespace-openmp.exe
9092

9193
build_release_macos:
9294
needs: [test_ubuntu, test_windows, test_macos]
9395
name: Build Release macOS
94-
runs-on: macos-10.15
96+
runs-on: macos-latest
9597
steps:
96-
- uses: actions/checkout@v2
98+
- uses: actions/checkout@v4
9799
- name: Install Dependencies
98100
run: .github/scripts/install-macos.sh ci
99101
- name: Build & Test
@@ -107,41 +109,41 @@ jobs:
107109
MACOS_APPSTORE_USERNAME: ${{ secrets.MACOS_APPSTORE_USERNAME }}
108110
MACOS_DEVELOPER_ID: ${{ secrets.MACOS_DEVELOPER_ID }}
109111
- name: Upload artifact
110-
uses: actions/upload-artifact@v2
112+
uses: actions/upload-artifact@v4
111113
with:
112114
name: macos
113115
path: build/bin/SolveSpace.dmg
114116

115-
deploy_snap_amd64:
116-
needs: [test_ubuntu, test_windows, test_macos]
117-
name: Deploy AMD64 Snap
118-
runs-on: ubuntu-latest
119-
steps:
120-
- uses: actions/checkout@v2
121-
- name: Fetch Tags
122-
run: git fetch --force --tags
123-
- name: Set Up Source
124-
run: rsync --filter=":- .gitignore" -r ./ pkg/snap/solvespace-snap-src
125-
- name: Build Snap
126-
uses: snapcore/action-build@v1
127-
id: build
128-
with:
129-
path: pkg/snap
130-
- name: Upload & Release to Edge
131-
if: github.event_name == 'push'
132-
uses: snapcore/action-publish@v1
133-
env:
134-
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPSTORE_LOGIN }}
135-
with:
136-
snap: ${{ steps.build.outputs.snap }}
137-
release: edge
138-
- name: Upload & Release to Beta + Edge
139-
if: github.event_name == 'release'
140-
uses: snapcore/action-publish@v1
141-
with:
142-
store_login: ${{ secrets.SNAPSTORE_LOGIN }}
143-
snap: ${{ steps.build.outputs.snap }}
144-
release: edge,beta
117+
# deploy_snap_amd64:
118+
# needs: [test_ubuntu, test_windows, test_macos]
119+
# name: Deploy AMD64 Snap
120+
# runs-on: ubuntu-latest
121+
# steps:
122+
# - uses: actions/checkout@v4
123+
# - name: Fetch Tags
124+
# run: git fetch --force --tags
125+
# - name: Set Up Source
126+
# run: rsync --filter=":- .gitignore" -r ./ pkg/snap/solvespace-snap-src
127+
# - name: Build Snap
128+
# uses: snapcore/action-build@v1
129+
# id: build
130+
# with:
131+
# path: pkg/snap
132+
# - name: Upload & Release to Edge
133+
# if: github.event_name == 'push'
134+
# uses: snapcore/action-publish@v1
135+
# env:
136+
# SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPSTORE_LOGIN }}
137+
# with:
138+
# snap: ${{ steps.build.outputs.snap }}
139+
# release: edge
140+
# - name: Upload & Release to Beta + Edge
141+
# if: github.event_name == 'release'
142+
# uses: snapcore/action-publish@v1
143+
# with:
144+
# store_login: ${{ secrets.SNAPSTORE_LOGIN }}
145+
# snap: ${{ steps.build.outputs.snap }}
146+
# release: edge,beta
145147

146148
upload_release_assets:
147149
name: Upload Release Assets
@@ -150,7 +152,7 @@ jobs:
150152
runs-on: ubuntu-latest
151153
steps:
152154
- name: Download All Workflow Artifacts
153-
uses: actions/download-artifact@v2
155+
uses: actions/download-artifact@v4
154156
- name: Get Release Upload URL
155157
id: get_upload_url
156158
env:

.github/workflows/source-tarball.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
name: Create & Upload Tarball
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@v2
13+
- uses: actions/checkout@v4
1414
with:
1515
submodules: true
1616
fetch-depth: 0

.github/workflows/test.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ on:
1212

1313
jobs:
1414
test_ubuntu:
15-
runs-on: ubuntu-20.04
15+
runs-on: ubuntu-latest
1616
name: Test Ubuntu
1717
steps:
18-
- uses: actions/checkout@v2
18+
- uses: actions/checkout@v4
1919
- name: Install Dependencies
2020
run: .github/scripts/install-ubuntu.sh
2121
- name: Build & Test
@@ -25,7 +25,7 @@ jobs:
2525
runs-on: windows-2019
2626
name: Test Windows
2727
steps:
28-
- uses: actions/checkout@v2
28+
- uses: actions/checkout@v4
2929
- name: Install Dependencies
3030
run: .github/scripts/install-windows.sh
3131
shell: bash
@@ -34,10 +34,10 @@ jobs:
3434
shell: bash
3535

3636
test_macos:
37-
runs-on: macos-10.15
37+
runs-on: macos-latest
3838
name: Test macOS
3939
steps:
40-
- uses: actions/checkout@v2
40+
- uses: actions/checkout@v4
4141
- name: Install Dependencies
4242
run: .github/scripts/install-macos.sh ci
4343
- name: Build & Test
@@ -50,11 +50,11 @@ jobs:
5050
image: bilelmoussaoui/flatpak-github-actions:freedesktop-21.08
5151
options: --privileged
5252
steps:
53-
- uses: actions/checkout@v3
53+
- uses: actions/checkout@v4
5454
with:
5555
submodules: true
5656
fetch-depth: 0
57-
- uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v4
57+
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
5858
with:
5959
bundle: "solvespace.flatpak"
6060
manifest-path: "pkg/flatpak/com.solvespace.SolveSpace.json"

CHANGELOG.md

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,69 @@ Changelog
44
3.x - development
55
---
66

7+
Geometric Modelling Kernel (NURBS)
8+
9+
* Improve the difference boolean operations.
10+
* Extrude groups have a checkbox to allow skewing - 3 DoF for the extrude direction.
11+
712
Constraints (new and improved):
813

914
* Add Parallel and Perpendicular constraints for 2 faces.
1015
* The equal angle constraint is moved to the `N` shortcut and menu item to allow equal length (`Q`) to be applied to three or four lines.
1116

1217
Allow these constraints to be applied to more entities at once:
18+
1319
* More than two line Segments - equal length.
1420
* More than two Arcs and/or circles - equal diameter/radius.
1521
* Any number of Lines - horizontal or vertical.
1622
* More than two points - horizontal or vertical.
1723
* Point on face can be applied to a point and 1-3 faces at once.
1824
* More than two points coincident.
1925

26+
Sketching
27+
28+
* `Image` sketch elements are not copied in 3d groups (extrude, lathe, revolve, helix) by default. `Toggle Construction` for an image to get the old behavior.
29+
* New option to use radius instead of diameter for circle and arc dimensions.
30+
* Dimensions on arcs default to radius instead of diameter. Uncheck `use radius` in the Property Browser to get diameters.
31+
* `Text in True Type Font` elements now support basic kerning. Enable it with `apply kerning` in the Property Browser.
32+
2033
Translations (now in 10 languages!)
34+
2135
* Added Czech cs_CZ.
2236
* Added Japanese ja_JP.
23-
* Update translation for French fr_FR and Russian ru_RU.
37+
* Update translation for French fr_FR, Russian ru_RU, Chinese zh_CN and Ukrainian uk_UA.
2438

25-
Other:
26-
* Merged and improved the experimental Emscripten port (web version).
27-
* Better Flatpack support.
39+
Other User interface changes:
40+
41+
* `CTRL+Tab` hides/shows the toolbar.
42+
* Marquee selection of line segments is now precise.
43+
* Speed up the animation when moving the view, for example when pressing `F2` or `F3`.
44+
* Pressing ESC while drawing a sketch entity now deletes the entity rather than completing it.
45+
* `CTRL+Shift+S` shortcut for "Save As..."
46+
* New option "use camera mouse navigation" for camera (instead of the default model) rotation navigation.
47+
* Sketches can be displayed with only dimensions visible (the button controlling visibility of constraints in the Property Browser has a new state).
2848
* More entity types described in the text screens.
49+
* A new option to `display the full path in the title bar`; or not.
50+
* Handle smooth scrolling (mouse wheel zoom) on GTK/Linux.
51+
* The embedded vector font (used for the UI and labels):
52+
* now has many new and improved Chinese characters
53+
* includes the Greek alphabet
54+
* improved "є"
55+
* added superscript 5 "⁵"
56+
* fiexd crash when typing "£"
57+
58+
Other
59+
60+
* Merged and improved the experimental Web version (Emscripten port).
61+
* Better Flatpack support.
2962
* Several bug fixes and usability improvements.
3063
* Allow 32 bit SolveSpace to access up to 4GB of RAM to allow working on larger projects.
3164

65+
Bug fixes:
66+
67+
* `Paste Transformed` on elements that contain a point-line distance does not flip any more.
68+
* Fix saving assemblies when opened with a relative path on the command line.
69+
3270
3.1
3371
---
3472

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[![solvespace](https://snapcraft.io/solvespace/trending.svg?name=0)](https://snapcraft.io/solvespace)
88

99
This repository contains the source code of [SolveSpace][], a parametric
10-
2d/3d CAD.
10+
2d/3d CAD tool.
1111

1212
[solvespace]: https://solvespace.com
1313

0 commit comments

Comments
 (0)