conda-forge / agate-feedstock

A conda-smithy repository for agate.
BSD 3-Clause "New" or "Revised" License
1 stars 3 forks source link

Newer versions of agate not available on arm based mac #21

Open ricka opened 3 months ago

ricka commented 3 months ago

Solution to issue cannot be found in the documentation.

Issue

agate seems to be stuck very far in the past on arm based macs. It seems a while back, the conda package was built without platform requirements, so there is an old agate v 1.6.3 with noarch that can be installed if using python 3.9.

However, the latest version of agate itself from PyPI works fine on arm based macs.

I believe the issue stems from a couple of things.

  1. This pr that added optional support for pyicu only for linux based platforms started the build to be platform specific.
  2. No mac ARM build_platform was ever set up.

This combination means there is a very old noarch package available, but versions aren't available.

While I'm looking at it, it appears that tzdata was added as an optional dependency for Windows builds in the PyPI repo, and it appears to be missing from the recipe/meta.yaml

Installed packages

# Name                    Version                   Build  Channel
agate                     1.6.3              pyhd8ed1ab_0    conda-forge
babel                     2.14.0             pyhd8ed1ab_0    conda-forge
bzip2                     1.0.8                h93a5062_5    conda-forge
ca-certificates           2024.2.2             hf0a4a13_0    conda-forge
future                    1.0.0              pyhd8ed1ab_0    conda-forge
icu                       73.2                 hc8870d7_0    conda-forge
isodate                   0.6.1              pyhd8ed1ab_0    conda-forge
leather                   0.3.4              pyhd8ed1ab_0    conda-forge
libcxx                    16.0.6               h4653b0c_0    conda-forge
libexpat                  2.6.1                hebf3989_0    conda-forge
libffi                    3.4.2                h3422bc3_5    conda-forge
libsqlite                 3.45.1               h091b4b1_0    conda-forge
libzlib                   1.2.13               h53f4e23_5    conda-forge
ncurses                   6.4                  h463b476_2    conda-forge
openssl                   3.2.1                h0d3ecfb_0    conda-forge
parsedatetime             2.4                        py_1    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
pyicu                     2.11            py312h2443e98_0
python                    3.12.2          hdf0ec26_0_cpython    conda-forge
python-slugify            8.0.4              pyhd8ed1ab_0    conda-forge
pytimeparse               1.1.8                      py_0    conda-forge
pytz                      2024.1             pyhd8ed1ab_0    conda-forge
readline                  8.2                  h92ec313_1    conda-forge
setuptools                69.1.1             pyhd8ed1ab_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
text-unidecode            1.3                pyhd8ed1ab_1    conda-forge
tk                        8.6.13               h5083fa2_1    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
wheel                     0.42.0             pyhd8ed1ab_0    conda-forge
xz                        5.2.6                h57fd34a_0    conda-forge

Environment info

active environment : test
    active env location : /Users/ricka/miniconda3/envs/test
            shell level : 2
       user config file : /Users/ricka/.condarc
 populated config files : /Users/ricka/.condarc
          conda version : 24.1.2
    conda-build version : not installed
         python version : 3.12.1.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=m1
                          __conda=24.1.2=0
                          __osx=14.3.1=0
                          __unix=0=0
       base environment : /Users/ricka/miniconda3  (writable)
      conda av data dir : /Users/ricka/miniconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/osx-arm64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/osx-arm64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-arm64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /Users/ricka/miniconda3/pkgs
                          /Users/ricka/.conda/pkgs
       envs directories : /Users/ricka/miniconda3/envs
                          /Users/ricka/.conda/envs
               platform : osx-arm64
             user-agent : conda/24.1.2 requests/2.31.0 CPython/3.12.1 Darwin/23.3.0 OSX/14.3.1 solver/libmamba conda-libmamba-solver/23.12.0 libmambapy/1.5.3
                UID:GID : 501:20
             netrc file : /Users/ricka/.netrc
           offline mode : False
jan-janssen commented 3 months ago

I started a pull request to request osx ARM support https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/5623

ricka commented 2 months ago

@jan-janssen I'm not exactly sure when this should be reflected on conda-forge but I'm still not seeing the macos arm build available. Anything required to trigger that build?

jan-janssen commented 2 months ago

I presume it is related to dependencies not being available.

mjkanji commented 2 months ago

Wanted to +1 this issue because I'm also struggling with this when trying to install dbt-core using conda-forge.

jan-janssen commented 2 months ago

When you check https://conda-forge.org/status/migration/armosxaddition for agate it says Awaiting parents without naming any parents explicitly. @conda-forge/core Can you take a look at this? Is there a specific reason the migration to osxarm was not triggered on this repository?

hmaarrfk commented 2 months ago

@jan-janssen you should be able to take over https://github.com/conda-forge/agate-feedstock/pull/23 following some of the discussion that occured in https://github.com/conda-forge/conda-forge.github.io/issues/1840 and more recent documentation https://conda-forge.org/docs/maintainer/conda_forge_yml/#noarch-platforms

hmaarrfk commented 2 months ago

please try again now. a new package should have been released enabling installing on arm osx.

mjkanji commented 2 months ago

@hmaarrfk Thanks, I can find agate for osx-arm64 now! However, it seems not all versions are available.

Doing a quick search via micromamba shows the following:

micromamba search agate --platform osx-arm64

 agate 1.9.1 pyh707e725_1 (+ 1 builds)  
________________________________________

  Name            agate
  Version         1.9.1
  Build           pyh707e725_1
  Size            61 kB
  License         MIT
  Subdir          noarch
  File Name       agate-1.9.1-pyh707e725_1.conda
  URL             https://conda.anaconda.org/conda-forge/noarch/agate-1.9.1-pyh707e725_1.conda
  MD5             653cd4e10695afac6b561c50a7eafa20
  SHA256          dac8242c1cbfb004e24fb2acb32edfcb52ea7ee73bd761e0cde01b6164ca534f

 Dependencies:
  - __unix
  - babel >=2.0
  - future
  - isodate >=0.5.4
  - leather >=0.3.2
  - parsedatetime !=2.5,!=2.6,>=2.1
  - pyicu
  - python >=3.8
  - python-slugify >=1.2.1
  - pytimeparse >=1.1.5
  - six >=1.9.0

 Other Versions (4):

   Version Build                    
  ───────────────────────────────────
   1.6.3   pyhd8ed1ab_0             
   1.6.2   pyhd8ed1ab_0 (+ 1 builds)
   1.6.1   pyhd8ed1ab_0             
   1.6.0   py_3  

For dbt-core specifically, I need to have agate>=1.7.0,<1.8.

Any idea on why versions in the range >1.6.3,<1.9.1 are not available on conda-forge?

jan-janssen commented 2 months ago

@mjkanji the migration is only for the latest version 1.9.1

hmaarrfk commented 2 months ago

Please open an issue with dbt to update their pin. they seem to just have forgotten: https://github.com/dbt-labs/dbt-core/blob/c53d67d3b5efbc050470856a79362ce90881130e/core/setup.py#L52

@jan-janssen you could always create a "branch" to support the one older version requested.