Skip to content

Commit 84506a8

Browse files
authored
Merge pull request #754 from coasys/release/0.12.0
0.12.0 release
2 parents 021c4e6 + 5ca366c commit 84506a8

File tree

718 files changed

+128182
-39950
lines changed

Some content is hidden

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

718 files changed

+128182
-39950
lines changed

.cargo/config.toml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Cargo project configuration for coasys/ad4m
2+
# This file applies to all `cargo` invocations in this workspace,
3+
# including local developer builds — not just CI.
4+
5+
[env]
6+
# Use pre-built rusty_v8 static libraries from our coasys fork releases
7+
# instead of building V8 from source (which takes 2-3 hours).
8+
# Anyone cloning this repo gets the right binaries automatically.
9+
RUSTY_V8_MIRROR = "https://github.com/coasys/rusty_v8/releases/download"
10+
11+
# aws-lc-sys: use pre-built NASM .obj files on Windows instead of running NASM.
12+
# cmake's FindNASM silently fails on GitHub Actions Windows runners,
13+
# so prebuilt objects are the only reliable approach.
14+
# Set here (not in CI env vars) because turborepo strips env vars.
15+
AWS_LC_SYS_PREBUILT_NASM = "1"
16+
17+
# Force cmake builder path for aws-lc-sys. Without this, aws-lc-sys tries
18+
# the cc_builder first (which fails for MSVC targets), then falls through to
19+
# cmake. Explicit CMAKE_BUILDER=1 ensures the cmake path is taken directly.
20+
AWS_LC_SYS_CMAKE_BUILDER = "1"
21+
22+
# CUDA compute capability for candle-kernels (A100 = sm_80).
23+
# Without this, bindgen_cuda panics when nvidia-smi isn't available.
24+
CUDA_COMPUTE_CAP = "80"
25+
26+
[net]
27+
# Use system git instead of cargo's built-in libgit2.
28+
# Required because coasys/deno.git has heavy chromium submodules
29+
# (wpt, buildtools, abseil-cpp from chromium.googlesource.com) that
30+
# libgit2 auto-fetches but are not needed for building.
31+
git-fetch-with-cli = true
32+
33+
# macOS ARM64: use ld_classic linker to generate branch island stubs.
34+
# The binary exceeds ARM64's ±128MB B/BL limit (V8 + ONNX = ~140MB).
35+
# -fuse-ld= with explicit binary path because -ld_classic flag is
36+
# silently ignored on some Xcode/ld-prime versions.
37+
# CI must select Xcode 15.4 (has ld-classic binary).
38+
[target.aarch64-apple-darwin]
39+
rustflags = [
40+
"-C", "link-arg=-fuse-ld=/Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld-classic",
41+
]

.circleci/Dockerfile

Lines changed: 60 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,44 @@
1-
# Use the CircleCI base image
1+
# Use the CircleCI base image - Ubuntu 22.04 for glibc compatibility with release binaries
22
FROM cimg/base:edge-22.04
33

44
USER root
55

66
# Install system dependencies or any other tools you need
7-
RUN apt-get update && sudo apt-get install -y \
8-
libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf protobuf-compiler cmake gobjc clang gnustep-devel libobjc4 libgnustep-base-dev libasound2-dev pkg-config fuse libfuse2 mesa-utils mesa-vulkan-drivers
7+
RUN apt-get update && apt-get install -y software-properties-common && add-apt-repository universe && apt-get update && apt-get install -y \
8+
libgtk-3-dev \
9+
webkit2gtk-4.0 \
10+
libwebkit2gtk-4.1-dev \
11+
libjavascriptcoregtk-4.1-dev \
12+
libappindicator3-dev \
13+
librsvg2-dev \
14+
patchelf \
15+
protobuf-compiler \
16+
cmake \
17+
gobjc \
18+
clang \
19+
gnustep-devel \
20+
libobjc4 \
21+
libgnustep-base-dev \
22+
libasound2-dev \
23+
pkg-config \
24+
fuse \
25+
libfuse2 \
26+
mesa-utils \
27+
mesa-vulkan-drivers \
28+
squashfs-tools
929

1030
# Install Go
11-
ENV GO_VERSION 1.24.6
31+
ENV GO_VERSION=1.24.6
1232
RUN wget https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz -O go.tar.gz \
1333
&& tar -C /usr/local -xzf go.tar.gz \
1434
&& rm go.tar.gz
1535

1636
# Set Go environment variables
17-
ENV GOPATH /go
18-
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
37+
ENV GOPATH=/go
38+
ENV PATH="$GOPATH/bin:/usr/local/go/bin:$PATH"
1939

2040
# Install Node
21-
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && apt-get install -y nodejs
41+
RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - && apt-get install -y nodejs
2242

2343

2444
USER circleci
@@ -29,13 +49,13 @@ RUN echo 'export PATH="/usr/local/bin:$PATH"' >> $HOME/.bashrc
2949
# Install Rust
3050
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
3151
RUN echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> /home/circleci/.bashrc
32-
RUN ~/.cargo/bin/rustup install 1.88
33-
RUN ~/.cargo/bin/rustup default 1.88
52+
RUN ~/.cargo/bin/rustup install 1.92
53+
RUN ~/.cargo/bin/rustup default 1.92
3454
RUN ~/.cargo/bin/rustup target add wasm32-unknown-unknown
3555

3656
# Install hc
37-
RUN ~/.cargo/bin/cargo install holochain_cli@0.6.0
38-
RUN ~/.cargo/bin/cargo install kitsune2_bootstrap_srv@0.3.2
57+
RUN ~/.cargo/bin/cargo install holochain_cli@0.7.0-dev.10
58+
RUN ~/.cargo/bin/cargo install kitsune2_bootstrap_srv --git https://github.com/holochain/kitsune2.git --rev ea3c2d42dde92f0889672a41f02f186ad9e75e4c --features "iroh-relay"
3959

4060
# Install Deno
4161
RUN curl -fsSL https://deno.land/install.sh | sh
@@ -64,5 +84,33 @@ ENV PATH="/home/circleci/.cargo/bin:/home/circleci/.deno/bin:/home/circleci/.npm
6484

6585
# We need killall for the CLI tests
6686
USER root
67-
RUN apt-get update && apt-get install psmisc
87+
RUN apt-get update && apt-get install -y psmisc
88+
89+
# Install CUDA toolkit 12.5 (for --features cuda builds)
90+
RUN apt-get install -y gnupg2 wget && \
91+
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb && \
92+
dpkg -i cuda-keyring_1.1-1_all.deb && \
93+
rm cuda-keyring_1.1-1_all.deb && \
94+
apt-get update && \
95+
apt-get install -y cuda-toolkit-12-5 libcudnn9-dev-cuda-12 && \
96+
apt-get clean && rm -rf /var/lib/apt/lists/*
97+
98+
# cuDNN headers land in the Debian multiarch path /usr/include/x86_64-linux-gnu/
99+
# but cudarc v0.13.9 only searches /usr/local/cuda*/include/cudnn.h.
100+
# Symlink every cudnn header into the CUDA include dir so cudarc finds them.
101+
RUN for f in /usr/include/x86_64-linux-gnu/cudnn*.h; do \
102+
ln -sf "$f" "/usr/local/cuda-12.5/include/$(basename $f)"; \
103+
done
104+
105+
ENV PATH="/usr/local/cuda-12.5/bin:${PATH}"
106+
ENV LD_LIBRARY_PATH="/usr/local/cuda-12.5/lib64"
107+
108+
109+
# nvidia-smi is part of the NVIDIA driver, not the toolkit.
110+
# In a CI build container (no GPU), create a stub so build scripts that probe for it don't fail.
111+
# bindgen_cuda v0.1.5 calls `nvidia-smi --query-gpu=compute_cap --format=csv`
112+
# and expects a CSV header + value. The stub handles both plain and query modes.
113+
RUN printf '#!/bin/bash\nif echo "$*" | grep -q "query-gpu"; then\n FIELDS=$(echo "$*" | sed -n "s/.*--query-gpu=\\([^ ]*\\).*/\\1/p")\n echo "$FIELDS"\n echo "8.0"\nelse\n echo "NVIDIA-SMI 535.00 Driver Version: 535.00 CUDA Version: 12.5"\nfi\nexit 0\n' > /usr/local/bin/nvidia-smi && \
114+
chmod +x /usr/local/bin/nvidia-smi
115+
68116
USER circleci

0 commit comments

Comments
 (0)