2 Commits

Author SHA1 Message Date
jdegenstein
9a41946bf6 ... PIP-TAR.yml -> disable linux/macos builds (only WIN) 2024-06-09 14:11:40 -05:00
jdegenstein
e9696209d0 ... -PIP-TAR.yml-> add choco install upx 2024-06-09 14:10:44 -05:00
10 changed files with 137 additions and 155 deletions

View File

@@ -9,135 +9,127 @@ on:
required: true required: true
default: 'dir' default: 'dir'
jobs: jobs:
build-linux-x86_64: # build-linux-x86_64:
runs-on: ubuntu-22.04 # runs-on: ubuntu-22.04
steps: # steps:
- uses: actions/checkout@v4 # - uses: actions/checkout@v4
- uses: mamba-org/setup-micromamba@v1 # - uses: mamba-org/setup-micromamba@v1
with: # with:
environment-name: test # environment-name: test
environment-file: environment.yml # environment-file: environment.yml
init-shell: >- # init-shell: >-
bash # bash
# create-args: >- # - name: pip install cadquery CQ-editor ... etc
- name: pip install cadquery CQ-editor ... etc # shell: bash --login {0}
shell: bash --login {0} # run: |
run: | # sudo apt install -y libblas-dev libblas3 libblas64-3 libblas64-dev
sudo apt install -y libblas-dev libblas3 libblas64-3 libblas64-dev # sudo apt install -y libxkbcommon0 libxkbcommon-x11-0 libxcb-xinerama0
sudo apt install -y libxkbcommon0 libxkbcommon-x11-0 libxcb-xinerama0 # sudo apt install -y qtbase5-dev qt5-qmake
sudo apt install -y qtbase5-dev qt5-qmake # micromamba info
micromamba info # pip install pyopengl
pip install pyopengl # pip install git+https://github.com/jdegenstein/jmwright-CQ-Editor
pip install git+https://github.com/jdegenstein/jmwright-CQ-Editor # pip install -vvv --pre git+https://github.com/cadquery/cadquery casadi
pip install -vvv --pre git+https://github.com/cadquery/cadquery casadi typish "multimethod>=1.11,<2.0" "nlopt>=2.9.0,<3.0" typish # pip install pyinstaller>=5.6
pip install pyinstaller>=5.6 # pip install path
pip install path # pip install jupyter-rfb
pip install jupyter-rfb # pip install git+https://github.com/gumyr/cq_warehouse.git#egg=cq_warehouse
pip install git+https://github.com/gumyr/cq_warehouse.git#egg=cq_warehouse # pip install git+https://github.com/gumyr/bd_warehouse
pip install git+https://github.com/gumyr/bd_warehouse # pip install git+https://github.com/meadiode/cq_gears.git@main
pip install git+https://github.com/meadiode/cq_gears.git@main # pip install -e "git+https://github.com/CadQuery/cadquery-plugins.git#egg=cq_cache&subdirectory=plugins/cq_cache"
pip install -e "git+https://github.com/CadQuery/cadquery-plugins.git#egg=cq_cache&subdirectory=plugins/cq_cache" # pip install git+https://github.com/gumyr/build123d
pip install git+https://github.com/gumyr/build123d # pip install git+https://github.com/JustinSDK/cqMore
pip install git+https://github.com/JustinSDK/cqMore # pip list
pip list # - name: Run build
- name: Run build # shell: bash --login {0}
shell: bash --login {0} # run: |
run: | # micromamba activate test
micromamba activate test # micromamba info
micromamba info # pyinstaller pyinstaller_pip.spec ${{ github.event.inputs.type }}
echo $LD_LIBRARY_PATH # cp /home/runner/work/jmwright-CQ-Editor/jmwright-CQ-Editor/pyinstaller/CQ-editor.sh /home/runner/work/jmwright-CQ-Editor/jmwright-CQ-Editor/dist/
export LD_LIBRARY_PATH=/home/runner/micromamba/envs/test/lib # - uses: actions/upload-artifact@v4
echo $LD_LIBRARY_PATH # with:
pyinstaller --log-level=DEBUG pyinstaller_pip.spec ${{ github.event.inputs.type }} # name: CQ-editor-Linux-x86_64
cp /home/runner/work/jmwright-CQ-Editor/jmwright-CQ-Editor/pyinstaller/CQ-editor.sh /home/runner/work/jmwright-CQ-Editor/jmwright-CQ-Editor/dist/ # path: dist
- uses: actions/upload-artifact@v4 # build-macos-x86_64:
with: # runs-on: macos-13
name: CQ-editor-Linux-x86_64 # steps:
path: dist # - uses: actions/checkout@v4
build-macos-x86_64: # - uses: mamba-org/setup-micromamba@v1
runs-on: macos-13 # with:
steps: # environment-name: test
- uses: actions/checkout@v4 # environment-file: environment.yml
- uses: mamba-org/setup-micromamba@v1 # init-shell: >-
with: # bash
environment-name: test # - name: pip install cadquery CQ-editor ... etc
environment-file: environment.yml # shell: bash --login {0}
init-shell: >- # run: |
bash # micromamba info
- name: pip install cadquery CQ-editor ... etc # pip install git+https://github.com/jdegenstein/jmwright-CQ-Editor
shell: bash --login {0} # pip install --pre git+https://github.com/cadquery/cadquery casadi
run: | # pip install pyinstaller>=5.6
micromamba info # pip install path
pip install git+https://github.com/jdegenstein/jmwright-CQ-Editor # pip uninstall -y PyQt5
pip install -vvv --pre git+https://github.com/cadquery/cadquery casadi typish "multimethod>=1.11,<2.0" "nlopt>=2.9.0,<3.0" typish # pip install PyQt5==5.15.7
pip install pyinstaller>=5.6 # pip install PyQtWebEngine==5.15.6
pip install path # pip install git+https://github.com/gumyr/cq_warehouse.git#egg=cq_warehouse
pip uninstall -y PyQt5 # pip install git+https://github.com/gumyr/bd_warehouse
pip install PyQt5==5.15.7 # pip install git+https://github.com/meadiode/cq_gears.git@main
pip install PyQtWebEngine==5.15.6 # pip install -e "git+https://github.com/CadQuery/cadquery-plugins.git#egg=cq_cache&subdirectory=plugins/cq_cache"
pip install git+https://github.com/gumyr/cq_warehouse.git#egg=cq_warehouse # pip install git+https://github.com/gumyr/build123d
pip install git+https://github.com/gumyr/bd_warehouse # pip install git+https://github.com/JustinSDK/cqMore
pip install git+https://github.com/meadiode/cq_gears.git@main # pip list
pip install -e "git+https://github.com/CadQuery/cadquery-plugins.git#egg=cq_cache&subdirectory=plugins/cq_cache" # - name: Run build
pip install git+https://github.com/gumyr/build123d # shell: bash --login {0}
pip install git+https://github.com/JustinSDK/cqMore # run: |
pip list # micromamba activate test
- name: Run build # micromamba info
shell: bash --login {0} # pyinstaller pyinstaller_pip.spec ${{ github.event.inputs.type }}
run: | # cp /Users/runner/work/jmwright-CQ-Editor/jmwright-CQ-Editor/pyinstaller/CQ-editor.sh /Users/runner/work/jmwright-CQ-Editor/jmwright-CQ-Editor/dist/
micromamba activate test # - uses: actions/upload-artifact@v4
micromamba info # with:
pyinstaller pyinstaller_pip.spec ${{ github.event.inputs.type }} # name: CQ-editor-MacOS-x86_64
cp /Users/runner/work/jmwright-CQ-Editor/jmwright-CQ-Editor/pyinstaller/CQ-editor-mac.sh /Users/runner/work/jmwright-CQ-Editor/jmwright-CQ-Editor/dist/CQ-editor.sh # path: dist
- uses: actions/upload-artifact@v4 # build-macos-arm64:
with: # runs-on: macos-14
name: CQ-editor-MacOS-x86_64 # steps:
path: dist # - uses: actions/checkout@v4
build-macos-arm64: # - uses: mamba-org/setup-micromamba@v1
runs-on: macos-14 # with:
steps: # environment-name: test
- uses: actions/checkout@v4 # environment-file: environment.yml
- uses: mamba-org/setup-micromamba@v1 # init-shell: >-
with: # bash
environment-name: test # - name: pip install cadquery CQ-editor ... etc
environment-file: environment.yml # shell: bash --login {0}
init-shell: >- # run: |
bash # micromamba info
- name: pip install cadquery CQ-editor ... etc # pip install git+https://github.com/jdegenstein/jmwright-CQ-Editor
shell: bash --login {0} # pip install https://github.com/CadQuery/ocp-build-system/releases/download/7.7.2.0/cadquery_ocp-7.7.2-cp311-cp311-macosx_11_0_arm64.whl
run: | # pip install https://github.com/jdegenstein/nlopt-python/releases/download/2.7.1.3/nlopt-2.7.1-cp311-cp311-macosx_11_0_arm64.whl
micromamba info # pip install --pre git+https://github.com/cadquery/cadquery casadi
brew update # pip install pyinstaller>=5.6
brew upgrade # pip install path
brew install openssl # pip uninstall -y PyQt5
pip install git+https://github.com/jdegenstein/jmwright-CQ-Editor # pip install PyQt5==5.15.10
pip install -vvv --pre git+https://github.com/cadquery/cadquery casadi typish "multimethod>=1.11,<2.0" "nlopt>=2.9.0,<3.0" typish # pip install PyQtWebEngine==5.15.6
pip install pyinstaller>=5.6 # pip install git+https://github.com/gumyr/cq_warehouse.git#egg=cq_warehouse
pip install path # pip install git+https://github.com/gumyr/bd_warehouse
pip uninstall -y PyQt5 # pip install git+https://github.com/meadiode/cq_gears.git@main
pip install PyQt5==5.15.10 # pip install -e "git+https://github.com/CadQuery/cadquery-plugins.git#egg=cq_cache&subdirectory=plugins/cq_cache"
pip install PyQtWebEngine==5.15.6 # pip install git+https://github.com/gumyr/build123d
pip install git+https://github.com/gumyr/cq_warehouse.git#egg=cq_warehouse # pip install git+https://github.com/JustinSDK/cqMore
pip install git+https://github.com/gumyr/bd_warehouse # pip list
pip install git+https://github.com/meadiode/cq_gears.git@main # - name: Run build
pip install -e "git+https://github.com/CadQuery/cadquery-plugins.git#egg=cq_cache&subdirectory=plugins/cq_cache" # shell: bash --login {0}
pip install git+https://github.com/gumyr/build123d # run: |
pip install git+https://github.com/JustinSDK/cqMore # micromamba activate test
pip list # micromamba info
- name: Run build # pyinstaller pyinstaller_pip.spec ${{ github.event.inputs.type }}
shell: bash --login {0} # cp /Users/runner/work/jmwright-CQ-Editor/jmwright-CQ-Editor/pyinstaller/CQ-editor.sh /Users/runner/work/jmwright-CQ-Editor/jmwright-CQ-Editor/dist/
run: | # - uses: actions/upload-artifact@v4
micromamba activate test # with:
micromamba info # name: CQ-editor-MacOS-arm64
echo $LD_LIBRARY_PATH # path: dist
export LD_LIBRARY_PATH=/home/runner/micromamba/envs/test/lib
echo $LD_LIBRARY_PATH
pyinstaller pyinstaller_pip.spec ${{ github.event.inputs.type }}
cp /Users/runner/work/jmwright-CQ-Editor/jmwright-CQ-Editor/pyinstaller/CQ-editor-mac.sh /Users/runner/work/jmwright-CQ-Editor/jmwright-CQ-Editor/dist/CQ-editor.sh
- uses: actions/upload-artifact@v4
with:
name: CQ-editor-MacOS-arm64
path: dist
build-windows: build-windows:
runs-on: windows-latest runs-on: windows-latest
steps: steps:
@@ -152,8 +144,9 @@ jobs:
shell: bash --login {0} shell: bash --login {0}
run: | run: |
micromamba info micromamba info
choco install upx
pip install git+https://github.com/jdegenstein/jmwright-CQ-Editor pip install git+https://github.com/jdegenstein/jmwright-CQ-Editor
pip install -vvv --pre git+https://github.com/cadquery/cadquery casadi typish "multimethod>=1.11,<2.0" "nlopt>=2.9.0,<3.0" typish pip install --pre git+https://github.com/cadquery/cadquery casadi
pip install pyinstaller>=5.6 pip install pyinstaller>=5.6
pip install path pip install path
pip install git+https://github.com/gumyr/cq_warehouse.git#egg=cq_warehouse pip install git+https://github.com/gumyr/cq_warehouse.git#egg=cq_warehouse

View File

@@ -2,7 +2,7 @@ import cadquery as cq
from cadquery.occ_impl.assembly import toCAF from cadquery.occ_impl.assembly import toCAF
from typing import List, Union from typing import List, Union
from importlib import reload from imp import reload
from types import SimpleNamespace from types import SimpleNamespace
from OCP.XCAFPrs import XCAFPrs_AISObject from OCP.XCAFPrs import XCAFPrs_AISObject
@@ -31,7 +31,7 @@ def find_cq_objects(results: dict):
def to_compound( def to_compound(
obj: Union[cq.Workplane, List[cq.Workplane], cq.Shape, List[cq.Shape], cq.Sketch], obj: Union[cq.Workplane, List[cq.Workplane], cq.Shape, List[cq.Shape], cq.Sketch]
): ):
vals = [] vals = []
@@ -213,7 +213,7 @@ def reload_cq():
reload(cq.sketch) reload(cq.sketch)
reload(cq.occ_impl.exporters.svg) reload(cq.occ_impl.exporters.svg)
reload(cq.cq) reload(cq.cq)
# reload(cq.occ_impl.exporters.utils) reload(cq.occ_impl.exporters.utils)
reload(cq.occ_impl.exporters.dxf) reload(cq.occ_impl.exporters.dxf)
reload(cq.occ_impl.exporters.amf) reload(cq.occ_impl.exporters.amf)
reload(cq.occ_impl.exporters.json) reload(cq.occ_impl.exporters.json)

View File

@@ -148,7 +148,7 @@ class Editor(CodeEditor,ComponentMixin):
if not self.confirm_discard(): return if not self.confirm_discard(): return
curr_dir = Path(self.filename).absolute().dirname() curr_dir = Path(self.filename).abspath().dirname()
fname = get_open_filename(self.EXTENSIONS, curr_dir) fname = get_open_filename(self.EXTENSIONS, curr_dir)
if fname != '': if fname != '':
self.load_from_file(fname) self.load_from_file(fname)

View File

@@ -186,7 +186,7 @@ class Debugger(QObject, ComponentMixin):
def _exec(self, code, locals_dict, globals_dict): def _exec(self, code, locals_dict, globals_dict):
with ExitStack() as stack: with ExitStack() as stack:
fname = self.parent().components["editor"].filename fname = self.parent().components["editor"].filename
p = Path(fname if fname else "").absolute().dirname() p = Path(fname if fname else "").abspath().dirname()
if self.preferences["Add script dir to path"] and p.exists(): if self.preferences["Add script dir to path"] and p.exists():
sys.path.insert(0, p) sys.path.insert(0, p)

View File

@@ -147,7 +147,7 @@ class Editor(CodeEditor,ComponentMixin):
if not self.confirm_discard(): return if not self.confirm_discard(): return
curr_dir = Path(self.filename).absolute().dirname() curr_dir = Path(self.filename).abspath().dirname()
fname = get_open_filename(self.EXTENSIONS, curr_dir) fname = get_open_filename(self.EXTENSIONS, curr_dir)
if fname != '': if fname != '':
self.load_from_file(fname) self.load_from_file(fname)

View File

@@ -5,7 +5,7 @@ channels:
dependencies: dependencies:
- pyqt=5 - pyqt=5
- pyqtgraph - pyqtgraph
- python=3.12 - python=3.11
- spyder=5 - spyder=5
- path - path
- logbook - logbook

View File

@@ -3,4 +3,4 @@ channels:
- conda-forge - conda-forge
- defaults - defaults
dependencies: dependencies:
- python=3.12 - python=3.11

View File

@@ -1,4 +0,0 @@
#!/bin/sh
export QT_MAC_WANTS_LAYER=1
chmod u+x ./CQ-editor/CQ-editor
QT_QPA_PLATFORM=cocoa PYOPENGL_PLATFORM=x11 ./CQ-editor/CQ-editor

View File

@@ -10,18 +10,17 @@ spyder_data = Path(site.getsitepackages()[-1]) / 'spyder'
parso_grammar = (Path(site.getsitepackages()[-1]) / 'parso/python').glob('grammar*') parso_grammar = (Path(site.getsitepackages()[-1]) / 'parso/python').glob('grammar*')
cqw_path = Path(site.getsitepackages()[-1]) / 'cq_warehouse' cqw_path = Path(site.getsitepackages()[-1]) / 'cq_warehouse'
bdw_path = Path(site.getsitepackages()[-1]) / 'bd_warehouse' bdw_path = Path(site.getsitepackages()[-1]) / 'bd_warehouse'
b123d_path = Path(site.getsitepackages()[-1]) / 'build123d'
cq_path = Path(site.getsitepackages()[-1]) / 'cadquery' cq_path = Path(site.getsitepackages()[-1]) / 'cadquery'
if sys.platform == 'linux': if sys.platform == 'linux':
occt_dir = os.path.join(Path(sys.prefix), 'share', 'opencascade') occt_dir = os.path.join(Path(sys.prefix), 'share', 'opencascade')
ocp_path = [(os.path.join(HOMEPATH, 'OCP', 'OCP.cpython-312-x86_64-linux-gnu.so'), '.')] ocp_path = [(os.path.join(HOMEPATH, 'OCP.cpython-311-x86_64-linux-gnu.so'), '.')]
elif sys.platform == 'darwin': elif sys.platform == 'darwin':
occt_dir = os.path.join(Path(sys.prefix), 'share', 'opencascade') occt_dir = os.path.join(Path(sys.prefix), 'share', 'opencascade')
ocp_path = [(os.path.join(HOMEPATH, 'OCP', 'OCP.cpython-312-darwin.so'), '.')] ocp_path = [(os.path.join(HOMEPATH, 'OCP.cpython-311-darwin.so'), '.')]
elif sys.platform == 'win32': elif sys.platform == 'win32':
occt_dir = os.path.join(Path(sys.prefix), 'Library', 'share', 'opencascade') occt_dir = os.path.join(Path(sys.prefix), 'Library', 'share', 'opencascade')
ocp_path = [(os.path.join(HOMEPATH, 'OCP', 'OCP.cp312-win_amd64.pyd'), '.')] ocp_path = [(os.path.join(HOMEPATH, 'OCP.cp311-win_amd64.pyd'), '.')]
datas1, binaries1, hiddenimports1 = collect_all('debugpy') datas1, binaries1, hiddenimports1 = collect_all('debugpy')
hiddenimports2 = collect_submodules('xmlrpc') hiddenimports2 = collect_submodules('xmlrpc')
@@ -32,7 +31,6 @@ a = Analysis(['run.py'],
datas=[(spyder_data, 'spyder'), datas=[(spyder_data, 'spyder'),
(cqw_path, 'cq_warehouse'), (cqw_path, 'cq_warehouse'),
(bdw_path, 'bd_warehouse'), (bdw_path, 'bd_warehouse'),
(b123d_path, 'build123d'),
(cq_path, 'cadquery')] + (cq_path, 'cadquery')] +
[(p, 'parso/python') for p in parso_grammar] + datas1, [(p, 'parso/python') for p in parso_grammar] + datas1,
hiddenimports=['ipykernel.datapub', 'debugpy', 'vtkmodules', 'vtkmodules.all', hiddenimports=['ipykernel.datapub', 'debugpy', 'vtkmodules', 'vtkmodules.all',

View File

@@ -3,22 +3,19 @@ import os.path
from setuptools import setup, find_packages from setuptools import setup, find_packages
def read(rel_path): def read(rel_path):
here = os.path.abspath(os.path.dirname(__file__)) here = os.path.abspath(os.path.dirname(__file__))
with codecs.open(os.path.join(here, rel_path), "r") as fp: with codecs.open(os.path.join(here, rel_path), 'r') as fp:
return fp.read() return fp.read()
def get_version(rel_path): def get_version(rel_path):
for line in read(rel_path).splitlines(): for line in read(rel_path).splitlines():
if line.startswith("__version__"): if line.startswith('__version__'):
delim = '"' if '"' in line else "'" delim = '"' if '"' in line else "'"
return line.split(delim)[1] return line.split(delim)[1]
else: else:
raise RuntimeError("Unable to find version string.") raise RuntimeError("Unable to find version string.")
setup( setup(
name="CQ-editor", name="CQ-editor",
version=get_version("cq_editor/_version.py"), version=get_version("cq_editor/_version.py"),
@@ -29,7 +26,7 @@ setup(
"CQ-editor = cq_editor.__main__:main", "CQ-editor = cq_editor.__main__:main",
] ]
}, },
python_requires=">=3.10,<3.14", python_requires=">=3.8,<3.12",
install_requires=[ install_requires=[
"logbook>=1", "logbook>=1",
"ipython", "ipython",
@@ -38,7 +35,5 @@ setup(
"requests>=2,<3", "requests>=2,<3",
"spyder>=5,<6", "spyder>=5,<6",
"pyqtgraph", "pyqtgraph",
"numpy >= 2, <3",
"scipy==1.14.1", # workaround for renamed stuff in scipy optimize
], ],
) )