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

Try fix builds for v2.8.4 #44

Open
wants to merge 13 commits into
base: main
Choose a base branch
from

Conversation

milesgranger
Copy link
Contributor

Will close #43

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...

For recipe/meta.yaml:

  • No valid build backend found for Python recipe for package cramjam using pip. Python recipes using pip need to explicitly specify a build backend in the host section. If your recipe has built with only pip in the host section in the past, you likely should add setuptools to the host section of your recipe.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...

For recipe/meta.yaml:

  • No valid build backend found for Python recipe for package cramjam using pip. Python recipes using pip need to explicitly specify a build backend in the host section. If your recipe has built with only pip in the host section in the past, you likely should add setuptools to the host section of your recipe.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

@milesgranger
Copy link
Contributor Author

milesgranger commented Oct 7, 2024

This is aggravating.

There are so many bits and bobs to turn and fuss with and far too much 'magic' going on for these builds. I maintain builds for nearly every possible platform on PyPI (https://pypi.org/project/cramjam/2.8.4/#files) and yet I'm encouraged to re-create a non-trivial build pipeline here because....conda has "special compiler flags" is the only reason I've been given that makes even the slightest bit of sense (which I'm already suspicious, I want to control my compiler flags); otherwise as I've said before this package has no other dependencies so making a conda build to comply w/ this is completely nonsensical to me.

As a good sport, I started this PR trying to fix it the proper way of building from source, but that was a lost cause. Unexpected linking errors I'd never seen on github actions were appearing or otherwise wildly unhelpful tracebacks left me puzzled and helpless.

So now, I've tried my level best to simply re-install from PyPI, but of course that's not easy either, why should it be? Nothing about this process is easy. I have 32 nearly identical files in .ci_support that's basically impossible to find documentation for, magic selectors and build/host environments that seemingly don't align which is my best guess for the current failures on osx arm. I can't just install it right from pypi pip install --no-deps cramjam=={{version}}, no. So I try to out smart the system and query the exact wheel files I need; that works for everything but OSX ARM64 and Windows. OSX ARM64 because literally no indication what the error actually is:

/Users/runner/miniforge3/conda-bld/cramjam_1728276743354/work/conda_build.sh: line 5: /Users/runner/miniforge3/conda-bld/cramjam_1728276743354/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/bin/python: Bad CPU type in executable
Traceback (most recent call last):
  File "/Users/runner/miniforge3/lib/python3.12/site-packages/conda_build/build.py", line 2555, in build
    utils.check_call_env(
  File "/Users/runner/miniforge3/lib/python3.12/site-packages/conda_build/utils.py", line 404, in check_call_env
    return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/runner/miniforge3/lib/python3.12/site-packages/conda_build/utils.py", line 380, in _func_defaulting_env_to_os_environ
    raise subprocess.CalledProcessError(proc.returncode, _args)
subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/Users/runner/miniforge3/conda-bld/cramjam_1728276743354/work/conda_build.sh']' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/runner/miniforge3/bin/conda-build", line 11, in <module>
    sys.exit(execute())
             ^^^^^^^^^
  File "/Users/runner/miniforge3/lib/python3.12/site-packages/conda_build/cli/main_build.py", line 589, in execute
    api.build(
  File "/Users/runner/miniforge3/lib/python3.12/site-packages/conda_build/api.py", line 209, in build
    return build_tree(
           ^^^^^^^^^^^
  File "/Users/runner/miniforge3/lib/python3.12/site-packages/conda_build/build.py", line 3655, in build_tree
    packages_from_this = build(
                         ^^^^^^
  File "/Users/runner/miniforge3/lib/python3.12/site-packages/conda_build/build.py", line 2563, in build
    raise BuildScriptException(str(exc), caused_by=exc) from exc
conda_build.exceptions.BuildScriptException: Command '['/bin/bash', '-o', 'errexit', '/Users/runner/miniforge3/conda-bld/cramjam_1728276743354/work/conda_build.sh']' returned non-zero exit status 1.

Awesome, then jq isn't available on Windows so that's shot unless I want to dedicate more time to try to get that going or find some other way which is frowned upon to install from PyPI anyway because...special compiler flags I guess.

I'm now resigning from any more maintenance on this feedstock until things resolve themselves from being convoluted to the point of making double work for people like me that are doing this on their free time for literally no compensation outside of just trying to "do the right thing for the community". All of this for a small sub-set of what is already available on PyPI (again w/ zero dependencies).

This whole process has left me feeling dumb and discouraged, I don't like that so I'm absolving myself from it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants