Conda: mac-arm builds of legacy dolfin and development version available

For folks using legacy dolfin via conda, there are two recent developments that might be of interest:

  • there are now native mac arm builds of legacy dolfin on conda-forge, so arm mac users can now conda install fenics without having to use the intel builds via emulation.

  • Since it was requested, the current development version of legacy dolfin is now also available under the fenics-dev label, which you can get with:

    conda install -c conda-forge -c conda-forge/label/fenics-dev fenics-dolfin mpich
    

    The version of fenics-dolfin will be 2019.2.0.dev20240219.

2 Likes

Hi @minrk, I would try to install the 2019.2.0dev version of fenics with conda in order to try and reproduce this issue

This is my environment.yml file:

name: festim-workshop_dev_fenics
channels:
  - conda-forge
  - defaults
  - conda-forge/label/fenics-dev
dependencies:
  - fenics-dolfin
  - mpich
  - matplotlib
  - meshio[all]
  - numpy==1.24
  - pip>=20.1
  - ipykernel
  - nbconvert
  - mpi4py<4
  - mshr
  - pip:
    - festim~=1.3
    - pyparsing
    - h-transport-materials==0.16

Env created with conda env create -f environment.yml.

conda list fenics gives:

# packages in environment at /home/remidm/miniconda3/envs/festim-workshop_dev_fenics:
#
# Name                    Version                   Build  Channel
fenics-dijitso            2019.1.0          pyhd8ed1ab_39    conda-forge
fenics-dolfin             2019.1.0        py311h849a80a_48    conda-forge
fenics-ffc                2019.1.0          pyhd8ed1ab_39    conda-forge
fenics-fiat               2019.1.0          pyhd8ed1ab_39    conda-forge
fenics-libdolfin          2019.1.0            h1268e15_48    conda-forge
fenics-ufl                2019.1.0        py311h38be061_38    conda-forge

I expected 2019.2.0

Am I missing something?

Two reasons: channel priority and mshr

channel priority means that packages on conda-forge that satisfy requirements will be preferred to those in conda-forge/label/fenics-dev because it appears earlier in the list, so use:

channels:
  - conda-forge/label/fenics-dev
  - conda-forge

to prefer packages with the fenics-dev label. Alternatively, specify the version you want (fenics-dolfinx=2019.2).

(note: it’s advisable to remove defaults from your channel lists if you are using conda-forge)

The second reason is that mshr requires fenics-dolfin 2019.1, so can’t be installed together with the 2019.2.dev and there isn’t a dev build of mshr. So if you remove mshr, you’ll get 2019.2.dev.

If you request 2019.2 explicitly, you’ll get more informative conflict errors if it’s unsatisfiable, rather than just not getting the version you expect.

1 Like