Commit Graph

21 Commits

Author SHA1 Message Date
Akash Levy b19948b03a Fix manylinux2014 build: add elfutils-devel, libdwarf-devel for dwarf.h
Made-with: Cursor
2026-03-01 18:14:55 -08:00
Akash Levy 965bc9da31 Fix manylinux2014 build: use quay.io/pypa/manylinux2014_x86_64 image
The manylinux2014 image provides Python 3.13 and a GCC toolchain
already configured for glibc 2.17 compatibility, avoiding the
Python 3.6 syntax issues with bare centos:7.

Made-with: Cursor
2026-03-01 17:50:29 -08:00
Akash Levy acc08c96c4 Add manylinux2014 (CentOS 7, glibc 2.17+) wheel build to release workflow
Adds a parallel build-manylinux-wheel job using centos:7 container
with devtoolset-11 alongside the existing Alpine/musl wheel build.
Uses auditwheel to tag wheel as manylinux2014_x86_64.

Made-with: Cursor
2026-03-01 17:36:32 -08:00
Akash Levy 83862bda99 Fix race condition: wait for Linux wheel in latest before macOS upload
The macOS job could upload to the latest release before the Linux
job recreated it, causing the macOS wheel to be lost. Now wait
for the Linux wheel to appear in latest first.

Made-with: Cursor
2026-02-28 20:41:07 -08:00
Akash Levy d62702bd70 Fix macOS wheel: set MACOSX_DEPLOYMENT_TARGET=11.0
actions/setup-python sets a deployment target older than 10.15,
which makes std::filesystem unavailable. Explicitly set 11.0.

Made-with: Cursor
2026-02-28 20:04:59 -08:00
Akash Levy b2b1e651f7 Fix macOS wheel: use Python 3.13 via setup-python, switch to macos-15
The macos-14 runner ships Python 3.14 by default, producing wheels
incompatible with Python 3.13 environments. Pin to 3.13 using
actions/setup-python and switch to macos-15 for consistency.

Made-with: Cursor
2026-02-28 19:33:39 -08:00
Akash Levy fe8d302472 fix: add retries to macOS wheel upload for race condition with Linux job
Made-with: Cursor
2026-02-28 18:53:38 -08:00
Akash Levy 1bb440ef15 refactor: build wheels only (no tarballs) for linux amd64 and macOS arm64
Remove standalone tarball builds. The release now produces only
pyosys Python wheels for both platforms.

Made-with: Cursor
2026-02-28 18:14:48 -08:00
Akash Levy 3d5cb87c90 Fix macOS build: remove pip3 install pybind11
pybind11 is not needed since ENABLE_PYOSYS=0, and pip3 fails on
the macos-15 runner due to externally-managed-environment.

Made-with: Cursor
2026-02-28 18:02:51 -08:00
Akash Levy e2b343a34f Fix macOS build: install ccache, disable pyosys
The macOS runner doesn't have ccache or pybind11 pre-installed.
Install ccache via brew and disable ENABLE_PYOSYS since we only
need the binary tarball (not the wheel) for macOS.

Made-with: Cursor
2026-02-28 17:27:20 -08:00
Akash Levy 9e29b7d761 Add macOS arm64 build to release workflow
Adds a build-macos job on macos-15 that builds Verific tclmain and
yosys with SMALL=1, bundles non-system dylibs, and uploads
yosys-macos-arm64.tar.gz alongside the existing Linux assets.

Made-with: Cursor
2026-02-28 16:49:32 -08:00
Akash Levy df261f46e3 feat: bundle shared library deps and set RPATH in release tarball
Copies all non-system shared library dependencies into lib/, then
uses patchelf to set RPATH to $ORIGIN/../lib for bin/ executables
and $ORIGIN for lib/ libraries.

Made-with: Cursor
2026-02-28 15:26:53 -08:00
Akash Levy 944d0b370a fix: clean between wheel and tarball builds to avoid TCL mismatch
The wheel build uses ENABLE_TCL=0, but the standalone yosys binary
needs ENABLE_TCL=1. Without a clean, stale .o files cause undefined
reference errors for TCL symbols.

Made-with: Cursor
2026-02-28 13:49:53 -08:00
Akash Levy fe4a997549 fix: add flex-dev for FlexLexer.h header
Made-with: Cursor
2026-02-28 13:14:04 -08:00
Akash Levy 402d6b0566 fix: add libdwarf-dev and elfutils-dev for backward-cpp headers
Made-with: Cursor
2026-02-28 12:38:16 -08:00
Akash Levy e7e15b6120 fix: add Alpine/musl shims for libtcl and libnsl
Verific tclmain links -ltcl and -lnsl. Alpine tcl-dev provides
libtcl8.6.so (no libtcl.so symlink), and musl has no libnsl.
Create symlink and stub shared lib to satisfy the linker.

Made-with: Cursor
2026-02-28 12:20:32 -08:00
Akash Levy 0b0c19b271 fix: use SSH_PRIVATE_KEY secret for private submodule access
Use the same SSH key approach as source-vendor.yml for cloning
private submodules (abc, verific).

Made-with: Cursor
2026-02-28 12:09:28 -08:00
Akash Levy 708637f65a fix: use PAT for private submodule access (abc, verific)
Deploy keys are repo-scoped and can't access multiple private repos.
Use a PAT (SUBMODULE_PAT) that has access to all required repos.

Made-with: Cursor
2026-02-28 12:07:03 -08:00
Akash Levy 44beeb5213 fix: use SSH deploy key for private verific submodule checkout
Made-with: Cursor
2026-02-28 12:05:26 -08:00
Akash Levy 2c1d160930 fix: trigger release workflow on main branch, not master
Made-with: Cursor
2026-02-28 12:03:52 -08:00
Akash Levy fc4ff6ecd2 Add release workflow 2026-02-27 15:01:06 -08:00