https://github.com/cadquery/ocp-build-system

A system to build Python wheel PyPI packages for OCP.

https://github.com/cadquery/ocp-build-system

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.2%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

A system to build Python wheel PyPI packages for OCP.

Basic Info
  • Host: GitHub
  • Owner: CadQuery
  • License: apache-2.0
  • Language: CMake
  • Default Branch: main
  • Homepage:
  • Size: 272 KB
Statistics
  • Stars: 10
  • Watchers: 7
  • Forks: 16
  • Open Issues: 11
  • Releases: 10
Created almost 5 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

Build System for OCP

VTK 9.3.1 for Python 3.13

Recipe

The github action can be found in .github/workflows/build-ocp.yml

Wheels

The action creates a wheel for Python 3.13 for os in ["ubuntu-22.04", "macos-13", "macos-14", "windows-2019"]

Known issues

This wheel will work with cadquery_ocp, but other packages that depend on vtk will most probably not work.

OCP 7.8.1.1

NOTE: For final wheels always use the official sources from the OCP repository. This can be achieved by setting the environment variable PYWRAP to false. Only use true if you know what you do!

Recipe

The github action can be found in .github/workflows/build-ocp.yml

Wheels

The action creates two different types of delocated wheels for OCP 7.8.1.1:

  1. cadquery_ocp-7.8.1.1 which is build against pypi's VTK 9.3.1
  2. cadquery_ocp_novtk-7.8.1.1 which comes without VTK support

The wheels encapsulate the native OCP module into a folder OCP.

OCP ├── Adaptor2d │   └── __init__.py ├── Adaptor3d │   └── __init__.py ... ├── IVtk │   └── __init__.py ├── IVtkOCC │   └── __init__.py ├── IVtkTools │   └── __init__.py ├── IVtkVTK │   └── __init__.py ... ├── OCP.cpython-311-x86_64-linux-gnu.so ...

with __init__.py e.g. for Adaptor2d looking like

python from ..OCP.Adaptor2d import *

OCP behaves exactly like the conda version, i.e. you can just ìmport OCP.BRep as usual. However, error traces can involve OCP.OCP.BRep ... prefixing the module with the OCP folder

Supported Operation Systems

The wheels are created for

  • Windows (Intel)
  • MacOS (Intel): running from macOS 11.11 or newer
  • MacOS (arm64): running from macOS 11.11 or newer
  • Linux (Intel): running Ubuntu 20.04 or newer (GLIBC2.29 and GLIBCXX3.4.26)

Supported Python Versions

  • The vtk version can be built with pypi's vtk==9.3.1 for Python 3.10 - 3.12. For Python 3.13 the dependency is cadquery_vtk==9.3.1 since vtk is not provided on pypi for Python 3.13
  • The novtk version can be built for Python3.10 and newer, up to 3.13.

Tests

  • The vtk wheels are tested against build123d and cadquery`
  • The novtk wheels are tested against a patched version of build123d only (vtk support removed)

Known issues

  • For macOS (Intel), nlopt 2.9 is not on pypi. The test installs nlopt from conda.
  • For Windows, casadi and nlopt create a segmentation fault on exit (even when OCP and VTK are not installed). The test installs nlopt and casadi from conda.
  • ocpsvg has cadquery_ocp as a dependency and will install parallel to the novtk wheel. The test uninstalls cadquery_ocp after installation of build123d.

Development

The action heavily caches artifacts since some steps can take 0.5 - 1.5 h.

For vtk wheels:

  • VTK-9.3.1-py<version>-<os>-: The generated VTK SDK
  • OCCT-7.8.1-py-<version>-vtk-<os>-: The compiled OCCT SDK with VTK support
  • OCP-source-7.8.1.1-vtk-<os>-: The generated OCP source with VTK support
  • OCP-7.8.1.1-VTK-vtk-py<version>-<os>-: The compiled OCP Python module with VTK support

For novtk wheels:

  • OCCT-7.8.1-py-<version>-novtk-<os>-: The compiled OCCT SDK without VTK support
  • OCP-7.8.1.1-VTK-novtk-py<version>-<os>-: The compiled OCP Python module without VTK support

<os> being "ubuntu-22.04", "macos-13", "macos-14", and "windows-2019". <version> being "3.10", "3.11", "3.12", and "3.13"

To recompile, delete the respective cached elements first.

OCP 7.8.1.1 stubs

Recipe

The github action can be found in .github/workflows/build-ocp-stubs.yml

Wheels

The action creates one wheel for any Python and OS cadquery_ocp_stubs-7.8.1.1-py3-none-any.whl

Owner

  • Name: CadQuery
  • Login: CadQuery
  • Kind: organization

GitHub Events

Total
  • Create event: 6
  • Release event: 2
  • Issues event: 8
  • Watch event: 2
  • Delete event: 2
  • Member event: 1
  • Issue comment event: 21
  • Push event: 53
  • Pull request review event: 6
  • Pull request event: 17
  • Fork event: 10
Last Year
  • Create event: 6
  • Release event: 2
  • Issues event: 8
  • Watch event: 2
  • Delete event: 2
  • Member event: 1
  • Issue comment event: 21
  • Push event: 53
  • Pull request review event: 6
  • Pull request event: 17
  • Fork event: 10

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 6
  • Total pull requests: 5
  • Average time to close issues: about 2 months
  • Average time to close pull requests: about 5 hours
  • Total issue authors: 6
  • Total pull request authors: 2
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.2
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 6
  • Pull requests: 5
  • Average time to close issues: about 2 months
  • Average time to close pull requests: about 5 hours
  • Issue authors: 6
  • Pull request authors: 2
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.2
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jmwright (4)
  • jdegenstein (3)
  • bernhard-42 (2)
  • ankurvdev (2)
  • onobug (1)
  • shimwell (1)
  • polycorn (1)
  • akoen (1)
  • akaszynski (1)
  • adam-urbanczyk (1)
  • msavtchouk-pf (1)
  • alexanderilyin (1)
Pull Request Authors
  • jdegenstein (9)
  • bernhard-42 (2)
  • jmwright (2)
  • derhuerst (1)
  • fischman (1)
  • dennyabraham (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/build-vtk.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
.github/workflows/build-wheel.yml actions
  • actions/checkout v2 composite
  • actions/upload-artifact v3 composite
  • conda-incubator/setup-miniconda v2 composite
  • dawidd6/action-download-artifact v2 composite
.github/workflows/release.yml actions
  • dawidd6/action-download-artifact v2 composite
  • ncipollo/release-action v1 composite
  • pypa/gh-action-pypi-publish release/v1 composite