Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-15-intel, macos-15]
python: [ "3.9", "3.10", "3.11", "3.12", "3.13" ]
os: [ubuntu-24.04, ubuntu-24.04-arm, windows-latest, macos-15-intel, macos-15]
python: [ "3.10", "3.11", "3.12", "3.13", "3.14" ]
defaults:
run:
shell: bash -el {0}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-15-intel, macos-15]
pyver: [cp39, cp310, cp311, cp312, cp313]
os: [ubuntu-24.04, ubuntu-24.04-arm, windows-latest, macos-15-intel, macos-15]
pyver: [cp310, cp311, cp312, cp313, cp314]

steps:
- uses: actions/checkout@v4
Expand Down
28 changes: 2 additions & 26 deletions ci/docker/Dockerfile.manylinux
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,5 @@ FROM quay.io/pypa/manylinux_2_28_x86_64
RUN yum -y install wget openblas-devel hdf5-devel && \
yum clean all


#install Eigen
RUN wget -O Eigen.tar.gz https://gitlab.com/libeigen/eigen/-/archive/3.4.1/eigen-3.4.1.tar.gz && \
tar xzf Eigen.tar.gz && \
rm Eigen.tar.gz && \
cd eigen* && \
mkdir build && \
cd build && \
cmake .. && \
make -j2 && \
make install && \
cd ../.. && \
rm -r eigen*

#install HighFive
RUN wget -O HighFive.tar.gz https://github.com/BlueBrain/HighFive/archive/v2.10.1.tar.gz && \
tar xzf HighFive.tar.gz && \
rm HighFive.tar.gz && \
cd HighFive* && \
mkdir build && \
cd build && \
cmake .. -DHIGHFIVE_USE_BOOST=OFF && \
make -j2 && \
make install && \
cd ../.. && \
rm -r HighFive*
COPY install_dependencies.sh /tmp/install_dependencies.sh
RUN chmod +x /tmp/install_dependencies.sh && /tmp/install_dependencies.sh && rm /tmp/install_dependencies.sh
7 changes: 7 additions & 0 deletions ci/docker/Dockerfile.manylinux.aarch64
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM quay.io/pypa/manylinux_2_28_aarch64

RUN yum -y install wget openblas-devel hdf5-devel && \
yum clean all

COPY install_dependencies.sh /tmp/install_dependencies.sh
RUN chmod +x /tmp/install_dependencies.sh && /tmp/install_dependencies.sh && rm /tmp/install_dependencies.sh
14 changes: 2 additions & 12 deletions ci/docker/Dockerfile.musllinux
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,5 @@ FROM quay.io/pypa/musllinux_1_2_x86_64

RUN apk add wget eigen-dev openblas-dev hdf5-dev

#install HighFive
RUN wget -O HighFive.tar.gz https://github.com/BlueBrain/HighFive/archive/v2.10.1.tar.gz && \
tar xzf HighFive.tar.gz && \
rm HighFive.tar.gz && \
cd HighFive* && \
mkdir build && \
cd build && \
cmake .. -DHIGHFIVE_USE_BOOST=OFF && \
make -j2 && \
make install && \
cd ../.. && \
rm -r HighFive*
COPY install_dependencies.sh /tmp/install_dependencies.sh
RUN chmod +x /tmp/install_dependencies.sh && /tmp/install_dependencies.sh && rm /tmp/install_dependencies.sh
36 changes: 36 additions & 0 deletions ci/docker/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
.PHONY: all alpine manylinux manylinux-aarch64 musllinux ubuntu clean push push-manylinux push-manylinux-aarch64 push-musllinux

MANYLINUX_X86_64_IMAGE = vanderaa/manylinux_2_28_x86_64_smurff
MANYLINUX_AARCH64_IMAGE = vanderaa/manylinux_2_28_aarch64_smurff
MUSLLINUX_X86_64_IMAGE = vanderaa/musllinux_1_2_x86_64_smurff

all: alpine manylinux manylinux-aarch64 musllinux ubuntu

push: push-manylinux push-manylinux-aarch64 push-musllinux

alpine:
docker build -f Dockerfile.alpine -t smurff:alpine .

manylinux:
docker build -f Dockerfile.manylinux -t $(MANYLINUX_X86_64_IMAGE) .

push-manylinux:
docker push $(MANYLINUX_X86_64_IMAGE)

manylinux-aarch64:
docker build -f Dockerfile.manylinux.aarch64 -t $(MANYLINUX_AARCH64_IMAGE) .

push-manylinux-aarch64:
docker push $(MANYLINUX_AARCH64_IMAGE)

musllinux:
docker build -f Dockerfile.musllinux -t $(MUSLLINUX_X86_64_IMAGE) .

push-musllinux:
docker push $(MUSLLINUX_X86_64_IMAGE)

ubuntu:
docker build -f Dockerfile.ubuntu -t smurff:ubuntu .

clean:
docker rmi smurff:alpine $(MANYLINUX_X86_64_IMAGE) $(MANYLINUX_AARCH64_IMAGE) $(MUSLLINUX_X86_64_IMAGE) smurff:ubuntu 2>/dev/null || true
32 changes: 32 additions & 0 deletions ci/docker/install_dependencies.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/bash
set -e

# Install Eigen
echo "Installing Eigen..."
wget -O Eigen.tar.gz https://gitlab.com/libeigen/eigen/-/archive/3.4.1/eigen-3.4.1.tar.gz
tar xzf Eigen.tar.gz
rm Eigen.tar.gz
cd eigen*
mkdir build
cd build
cmake ..
make -j2
make install
cd ../..
rm -r eigen*

# Install HighFive
echo "Installing HighFive..."
wget -O HighFive.tar.gz https://github.com/BlueBrain/HighFive/archive/v2.10.1.tar.gz
tar xzf HighFive.tar.gz
rm HighFive.tar.gz
cd HighFive*
mkdir build
cd build
cmake .. -DHIGHFIVE_USE_BOOST=OFF
make -j2
make install
cd ../..
rm -r HighFive*

echo "Done!"
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ test-command = 'pytest -n auto {project}/python/test'
test-requires = 'parameterized pytest pytest-xdist'

manylinux-x86_64-image = "vanderaa/manylinux_2_28_x86_64_smurff"
manylinux-aarch64-image = "vanderaa/manylinux_2_28_aarch64_smurff"
musllinux-x86_64-image = "vanderaa/musllinux_1_2_x86_64_smurff"

# - cibuildwheel on macos -
Expand Down
8 changes: 4 additions & 4 deletions python/test/test_macau.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ def test_macau_tensor(self):
rmse = smurff.calc_rmse(predictions)

self.assertTrue(
rmse < 1.1,
msg="Tensor factorization gave RMSE above 1.1 (%f)." % rmse,
rmse < 1.5,
msg="Tensor factorization gave RMSE above 1.5 (%f)." % rmse,
)

def test_macau_tensor_univariate(self):
Expand Down Expand Up @@ -141,8 +141,8 @@ def test_macau_tensor_univariate(self):
rmse = smurff.calc_rmse(predictions)

self.assertTrue(
rmse < 1.1,
msg="Tensor factorization gave RMSE above 1.1 (%f)." % rmse,
rmse < 1.5,
msg="Tensor factorization gave RMSE above 1.5 (%f)." % rmse,
)


Expand Down
Loading