-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support other architectures also supported by conda-forge (e.g. Mac arm64) #706
Comments
Personally I would be delighted if BioConda supported Windows, even if initially only a tiny fraction of the recipes actually took advantage of this. I can think of a few bioinformatics recipes which have moved into conda-forge purely for Windows support. However, I take the point that since Windows 10 WSL this is less and less important. The new Apple arm64 is probably going to be more popular with bioinformaticians given how many of us had a Mac laptop... ;) |
My use case for arm64 is the Oxford Nanopore Mk1C (aarch64). I recognise that supporting this is non-trivial but being able to install bioinformatics software on the Mk1C would be very useful as, while it is not a very powerful machine, it is good enough to do quite a lot of bioinformatics "at the point of sequencing". |
Just a note that we'd love seeing M1 support for a number of applications, and would be happy to assist where possible in testing. One in particular is anvi'o, which has several bioconda dependencies. |
We're in discussion with Amazon regarding getting AWS credits to make this possible. |
@dpryan79 is it a matter of ongoing need for AWS credits or more of a one-time thing to get everything up and going and support building all the existing packages/recipes for Apple Silicon? Is there a funding mechanism for bioconda? E.g. a patreon or gofundme or github sponsorship? As more powerful apple silicon laptops are now showing up in lots of labs and companies, I suspect many people and companies would be willing to kick in some funds to help make this happen. I know my company (I'm part owner) certainly would. |
@tfenne It's more a matter of on-going credits. We have some discussions under way with AWS, but I'm not privy to the details on that. |
Aarch64 support is definitely something that would interest me (I have a lightweight chromebook-class Linux laptop that is powered by an Aarch64 chip and runs Manjaro ARM). Regarding Windows: |
Yeah, windows support is a notably lower priority. It would be a real pain to get most things compiling outside of WSL, but a few things are supposed to support windows and the lack of available packages that we produce for that platform has become a problem for them. |
Any progress here? Since the last mention of discussions with Amazon it's been 6 months. Maybe some other infrastructure may have become free to use in the meantime? I got my first apple silicon macbook just now - I suspect as more and more people switch the momentum for ARM support will grow. And the price of build resources will drop (maybe?). |
From the bioconda-recipes ticket on this topic:
|
I use conda and conda-forge in my Linux aarch64 VM and server, would like to see that bioconda can support Linux aarch64 too, therefore I could feel free to choose reasonable Linux aarch64 packages from these channels. |
+1 for adding support for Linux ARM64! |
Support for Linux ARM64 is much needed! |
As of Feb 2023, bioconda does not seem build packages for linux/arm64: bioconda/bioconda-utils#706 So for the time being we can't build Dockerfiles based on micromamba for linux/arm64.
As of Feb 2023, bioconda does not seem build packages for linux/arm64: bioconda/bioconda-utils#706 So for the time being we can't build Dockerfiles based on micromamba for linux/arm64.
Hello!
on Linux openEuler 22.03 aarch64. Initially it failed with these missing packages:
After updating some of them: diff --git a/bioconda_utils/bioconda_utils-requirements.txt b/bioconda_utils/bioconda_utils-requirements.txt
index a796722..f07189f 100644
--- a/bioconda_utils/bioconda_utils-requirements.txt
+++ b/bioconda_utils/bioconda_utils-requirements.txt
@@ -9,16 +9,16 @@ boa=0.9.*
conda-build=3.21.8
conda-verify=3.1.*
argh=0.26.* # CLI
-colorlog=3.1.* # Logging
+colorlog=4.8.* # Logging
tqdm>=4.26 # Progress monitor
ruamel_yaml=0.15.* # Recipe YAML parsing
pyaml=17.12.* # Faster YAML parser (deprecate?)
networkx=2.*
-pandas=0.23.*
+pandas=1.2.*
numpy=1.19.* # Avoid breaking pandas on OSX
libblas=*=*openblas # Avoid large mkl package (pulled in by pandas)
boltons=18.*
-jsonschema=2.6.* # JSON schema verification
+jsonschema=3.2.* # JSON schema verification
simplejson # Used by bioconda bot worker (NEEDED?)
pyopenssl>=22.1 # Stay compatible with cryptography
@@ -32,7 +32,7 @@ skopeo=0.1.35 # docker upload
git=2.* # well - git
# hosters - special regex not supported by RE
-regex=2018.08.29
+regex=2022.7.9
# asyncio
aiohttp=3.8.* # HTTP lib
@@ -51,7 +51,7 @@ gidgethub=3.0.* # githubhandler
pyjwt>=2.4.0 # githubhandler (JWT signing), needs >=2.4.0, CVE-2022-29217
# unknown
-beautifulsoup4=4.6.*
+beautifulsoup4=4.8.*
galaxy-lib>=18.9.1
jinja2>=2.10.1,<3
markupsafe<2.1 # markupsafe 2.1 breaks jinja2
@@ -69,4 +69,4 @@ graphviz
requests=2.22.*
# merge handling
-pygithub
\ No newline at end of file
+pygithub Now the only missing packages are:
https://anaconda.org/search?q=involucro says that this package is available only for I will try to find out what would be needed to get those two packages working on |
It seems When I try to build a package:
The build stage depends on a docker images which build in here and use blow Dockerfile: Line 1 in 909aa07
Unfortunately, it only support the x86 now. |
Let's make it a |
Just to share my trial to support 1. Support
|
@dpryan79 Would you mind giving some more idea about how we can support bioconda on Linux aarch64? Maybe we can donate some Linux aarch64 machines to build and test each package. Just FYI: we have cooperated with Bioconductor community to validate/test and fix error for Bioconductor on Linux aarch64[1][2], and have had a pretty good progress. [1] Bioconductor/BBS#255 (comment) |
Sync some info about our progress to support linux aarch64 First, we supported the
Then, we added the Linux aarch64 support for bioconda-utils and build/release Linux aarch64 image: #866 . After this patch we can build bioconda pkg on Linux aarch64! |
This patch try to add `--mulled-conda-image` to bioconda-utils, after this patch, users can specify customized mulled test image. Such as multi-arch case, users can sepcified multi-arch image. Related: #706 Signed-off-by: Yikun Jiang <[email protected]> Co-authored-by: Björn Grüning <[email protected]>
I just opened bioconda/bioconda-containers#55 - a PR that updates the base images to be multi-arch (linux/amd64 and linux/arm64/v8). |
This PR try to add Linux aarch64/arm64 support for bioconda-utils: - Support `BASE_IMAGE` build args in `Dockerfile`: the devs can specify `BASE_IMAGE` to switch base image. - `bioconda_utils/bioconda_utils-requirements.txt`: Upgrade packages version to support Linux aarch64. - Add `--docker-base-image` image to help users specify docker base image. - Add Linux aarch64 image build to `release-please.yml` and `build-image.yml` workflow - `bioconda_utils/docker_utils.py`: create conda build subdir according to arch. After this PR, users can build the bioconda package by using same cmd with x86 by specifing `--docker-base-image` to build the package. Note that the `mulled-test` are still not supported, there are a circle dependency between `bioconda-containers` and bioconda-utils, we'd better to support bioconda-utils aarch64 image first. Related: #706 Test step: ```bash $ uname -m aarch64 # Activate a conda env conda create -n biotest conda activate biotest git clone https://github.com/Yikun/bioconda-utils.git cd bioconda-utils git checkout aarch64 # Build docker image with embed involucro for bioconda docker build -t ghcr.io/yikun/bioconda-utils-build-env-cos7-aarch64 -f Dockerfile . # Install all bioconda-utils conda install --file bioconda_utils/bioconda_utils-requirements.txt -c conda-forge -c bioconda # Install the bioconda-utils with this PR pip install -e . # Test bioconda-utils -h # Build a package to test cd bioconda-recipes bioconda-utils build --docker --packages bamstats --docker-base-image ghcr.io/yikun/bioconda-utils-build-env-cos7-aarch64 --force ``` --------- Signed-off-by: Yikun Jiang <[email protected]>
By the way the Bioconductor project recently added Linux ARM64 to their list of supported architectures (experimentally): |
What are the steps needed to resolve this issue and specifically to get support for M-series Macs (i.e.
With the following changes, I can install everything except diff --git a/bioconda_utils/bioconda_utils-requirements.txt b/bioconda_utils/bioconda_utils-requirements.txt
index db098c3..1448e3b 100644
--- a/bioconda_utils/bioconda_utils-requirements.txt
+++ b/bioconda_utils/bioconda_utils-requirements.txt
@@ -51,7 +51,7 @@ gidgethub=3.0.* # githubhandler
pyjwt>=2.4.0 # githubhandler (JWT signing), needs >=2.4.0, CVE-2022-29217
# unknown
-beautifulsoup4=4.8.*
+beautifulsoup4=4.12.*
galaxy-lib>=18.9.1
jinja2>=2.10.1,<3
markupsafe<2.1 # markupsafe 2.1 breaks jinja2
@@ -66,7 +66,7 @@ markdown
graphviz
# The bioconductor skeleton needs this
-requests=2.22.*
+requests=2.28.*
# merge handling
pygithub
@@ -76,4 +76,4 @@ diskcache =5.*
appdirs =1.*
# build failure output
-tabulate =0.9
\ No newline at end of file
+tabulate =0.9 Here's the output from trying to create a conda environment with the changes:
|
For requirements missing, we should bump requirement version to M1 suppprted version. For involucro missing, we should supported M1 arch in conda-forge, just need changes like we supported in linux aarch64 (See also: bioconda/bioconda-recipes#40144 (comment), the involucro has been moved to conda-forge channel) |
Thanks a lot for getting linux-aarch64 and osx-arm64 working! I closed this issue, as I don't think the other architectures (ppc and windows) matter all that much. |
I've heard from a user of my software that they are using it through bioconda on a Mac M1. It would be great if they could use native bioconda packages for ARM64/Mac M1.
Conda-forge seems to support the following platforms (https://github.com/conda-forge/miniforge):
It would be nice to be able to offer prebuilt bioconda packages for all of these platforms (except Windows I guess). The recipes I maintain would support all of these architectures already.
The text was updated successfully, but these errors were encountered: