Skip to content
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

ARM Documentation updates #16

Merged
merged 42 commits into from
Mar 4, 2024
Merged
Changes from 1 commit
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
c0f5978
add aarch64 to support
aliciaaevans Nov 14, 2023
d3a18ab
add new datechanged directive
daler Nov 18, 2023
ee47a82
add section on platform nomenclature
daler Nov 18, 2023
7200564
update supported python version info
daler Nov 18, 2023
628dc0c
minor tweaks to guidelines
daler Nov 18, 2023
fab7027
fix typos
daler Nov 18, 2023
684368e
minor cleanup on bulk.rst
daler Nov 18, 2023
636d1e7
clarification on repodata patching
daler Nov 18, 2023
6dbbb30
add Alicia to core team
daler Nov 18, 2023
627984c
update notes on building docs
daler Nov 18, 2023
0c1b1ff
css on datechanged directives
daler Nov 18, 2023
fecf007
overhaul and update CI inventory page
daler Nov 18, 2023
ef5a87d
consolidate all FAQs together into top-level
daler Nov 18, 2023
4c2c62a
consolidate cb3.rst into top-level faqs
daler Nov 18, 2023
c777929
overheaul build-system.rst
daler Nov 19, 2023
4a7e86d
minor updates to bulk
daler Nov 19, 2023
d733189
add new aarch64 page
daler Nov 19, 2023
84fe3ce
update number of contributors
daler Nov 19, 2023
bec930c
make CI platforms more general
daler Nov 19, 2023
c5e8956
minor formatting
daler Nov 19, 2023
caa2685
clarifications in faqs
daler Nov 19, 2023
e98d181
update link to galaxy's mulled-build docs
daler Nov 19, 2023
15c6b33
clarifications and updates
daler Nov 19, 2023
3849bcc
fix build/host/run details
daler Nov 19, 2023
5c7ded5
Arm/ARM clarification
daler Nov 19, 2023
e425b40
correct arch for supported mac
daler Nov 19, 2023
a8fc0ee
rm "summary" table
daler Nov 19, 2023
a324f6e
make miniforge statement more accurate and add link
daler Nov 19, 2023
81f6bce
Update source/developer/aarch64.rst
daler Nov 20, 2023
d302e37
Update source/faqs.rst
daler Nov 20, 2023
f104c60
note about linux-aarch64 containers
daler Nov 20, 2023
7ff4680
add inventory of repos
daler Nov 24, 2023
c69024f
add inventory of dockerfiles/images
daler Nov 24, 2023
9726db0
Update source/faqs.rst
daler Dec 1, 2023
22a39f5
typo
daler Nov 25, 2023
2fc9c8c
css update
daler Nov 25, 2023
0e07cad
minor changes
daler Mar 4, 2024
38b0e0e
update images page
daler Mar 4, 2024
b09c54c
Merge branch 'main' into arm-updates
daler Mar 4, 2024
9c795b9
Update source/contributor/build-system.rst
daler Mar 4, 2024
6846aa8
update datechanged
daler Mar 4, 2024
26f99c5
address various review comments
daler Mar 4, 2024
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
64 changes: 64 additions & 0 deletions source/contributor/faqs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -169,3 +169,67 @@ which elements and values can appear in ``meta.yaml``.

Conda has this information available `here <https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html>`_.
Please check that you are looking at the correct version of the documentation for the current conda version used by bioconda.


.. _platform-nomenclature-faq:

Understanding platform nomenclature
-----------------------------------

Different CPU chips use different architecture, so programs are written
fundamentally differently for them. Why do we care about this for conda
packages? Because a package with compiled dependencies must have
platform-specific dependencies.

New Apple Silicon

There is a lot of confusing nomenclature surrounding them. Here is an attempt
at clearing them up, or at least providing enough context that you can look up
more details on your own:

**instruction set, CISC, RISC, RISC-V**: The *instruction set* is the assembly
code commands that are possible for the chip. *CISC* is "complex instruction set
computer", prioritizing flexibility; *RISC* is "reduced instruction set
computer", prioritizing power consumption (oversimplification, but that's the
general idea). Instruction sets can be proprietary. ARM is a company that
licenses a widely-used proprietary reduced instruction set. RISC-V is an open
(non-proprietary) reduced instruction set.

**ARM vs ARM RISC:** ARM is a company. They make chips (for example, the ones
daler marked this conversation as resolved.
Show resolved Hide resolved
used in Raspberry Pi computers). They also license the proprietary RISC (for
example, they license it to Apple to run on their M-series chips).

``x86_64``, ``amd64``: These are synonyms for the original Intel/AMD
architecture.

``linux/x86_64``, ``linux/arm64``, ``darwin/amd64``: These are the platform
designators when using Docker (see `multi-platform images
<https://docs.docker.com/build/building/multi-platform/>`_ in the Docker
documentation).

``linux-64``, ``linux-aarch64``, ``osx-64``, ``osx-arm64``: These are the
platform designators used by conda in channels hosted by Anaconda.

``linux-64``, ``linux-aarch64``, ``osx-64``, ``osx-arm64``: These are the
labels the conda ecosystem gives to packages.

``aarch64``, ``arm64``: These are synonyms for ARM 64-bit architecture.

**M1, M2, M3, Apple Silicon**: These are chips made by Apple and used in Macs.
Apple licenses the ARM RISC, so they are considered aarch64 or arm64.

Here is a summary table:

.. list-table::

* - Linux machines from past few decades
- ``x86_64``, ``amd64``, ``linux/x86_64``, ``linux-64``.

* - Newer Linux machines
- ``aarch64``, ``arm64``, ``linux-aarch64``, ``linux/arm64``

* - Newer Macs
- ``M1``, ``M2``, ``M3``, ``osx-arm64``, ``aarch64``, ``arm64``, ``darwin/amd64``

* - Older Macs
- ``osx-64``