conda-forge / conda-forge/httpstan-feedstock

build does not include all the artefacts produced by the makefile included with the package

Open
#1 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
0
Forks
4
PR merge metrics
No merged PRs in 30d

Description

- [x] I read [the conda-forge documentation](https://conda-forge.org/docs/user/introduction.html#how-can-i-install-packages-from-conda-forge) and could not find the solution for my problem there.

Issue:

the feedstock as it currently is doesn't build the tools packaged by httpstan. See the build procedure at
https://github.com/stan-dev/httpstan/blob/main/.github/workflows/main.yml

I would try to come up with a pull request but i banged my head against the wall for a while without success. My main issue was that the `make` produced a functional `stanc` during the build as tested in the build script, but the post-build steps resulted in a `stanc` that immediately segfaulted. So i'm settling for reporting the missing compiled components in the hope that somebody who understands the conda build process can make this work.

In case this is helpful, here is my final failed attempt:

meta.yaml:
```
{% set name = "httpstan" %}
{% set version = "4.5.0" %}
{% set sha256sum = "f4d81e2ecbf17fce6a03fea7200d10ab03fbad1a7f3db1453464ea12c4fa740c" %

package:
name: {{ name }}
version: {{ version }}

source:
fn: {{ version }}.tar.gz
url: https://github.com/stan-dev/httpstan/archive/refs/tags/{{ version }}.tar.gz
sha256: {{ sha256sum }}

build:
number: 4
skip: True # [win and py27]
script_env:
- http_proxy
- https_proxy

requirements:
build:
- {{ compiler('c') }} # [not win]
- {{ compiler('cxx') }} # [not win]
- make
host:
- python {{ python }}
- setuptools >=41.0
- pip
- setuptools >=41.0
- poetry
run:
- python {{ python }}
- aiohttp >=3.7,<4.0
- appdirs >=1.4,<2.0
- webargs >=7.0,<8.0
- marshmallow >=3.10,<4.0
- numpy >=1.16
- lz4 >=3.1,<4.0
- clikit
- pysimdjson
- {{ compiler('c') }} # [not win]
- {{ compiler('cxx') }} # [not win]
```

build.sh
```
#!/bin/bash
set -ex

export TBB_CXX_TYPE=gcc

# based on https://github.com/stan-dev/httpstan/blob/main/.github/workflows/main.yml
make -j2
$SRC_DIR/httpstan/stanc --version ## this works during the build but the final stanc is broken
## the poetry build would create a virtual env which we don't want
# poetry build
${PYTHON} -m pip install --no-deps .
```

Contributor guide

Open the contributing guide

Research direction

Compare the feedstock's meta.yaml and build.sh with the upstream .github/workflows/main.yml build procedure. Reproduce the build and verify both the compiled tools and the post-build stanc executable, which currently works during the build but segfaults afterward. Done means the package includes all httpstan artifacts and stanc remains functional after installation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.