Skip to content

ci: test dev against TA-Lib C's dev branch - #760

Merged
mario4tier merged 1 commit into
devfrom
ci/dev-tracks-talib-c-dev
Sep 6, 2026
Merged

ci: test dev against TA-Lib C's dev branch#760
mario4tier merged 1 commit into
devfrom
ci/dev-tracks-talib-c-dev

Conversation

@mario4tier

Copy link
Copy Markdown
Member

Adds .github/workflows/tests-dev.yml. tests.yml is untouchedmaster
keeps installing the published TA-Lib C release, exactly as today.

Why

dev requires a TA-Lib C that has no release yet: the latest tag is v0.7.1,
while talib/__init__.py on dev already declares
TA_LIB_C_REQUIRED = '0.8.1' and its committed _ta_lib.c calls
TA_CMF_Lookback. So a PR into dev cannot build against the released library.

It also never tried: tests.yml triggers on master only, so across the last 40
runs of that workflow dev does not appear once. Every PR into dev has
been merging with no checks at all.

What it does

Triggers on dev, resolves the tip of TA-Lib C's dev branch, builds it from
source and caches it by commit, then runs the same steps tests.yml runs. The
two dev lines therefore move in lockstep, and a C change that breaks the wrapper
shows up here rather than at release time.

The commit is resolved with git ls-remote, not api.github.com. The API is
rate limited per runner IP, and its 403 had already reddened an unrelated job on
this repo while I was preparing #759.

One adaptation

TA-Lib C #388 retired the Metastock compatibility behaviour and made the setter
inert. tests/test_func.py::test_compatibility asserted the Metastock EMA values,
so it now pins only the default — asserting what the setter used to change would
pass on one C release and fail on the next.

Verified

Built dev plus this change against TA-Lib C dev (1487072): builds clean,
81 passed.

Merge this before #759

#759 (the streaming API) targets dev and needs this workflow to exist on dev
before it can be checked at all. Once this lands I will rebase #759 onto it.

The dev line requires a TA-Lib C that has no release yet, so a PR into dev could
not build -- and in fact ran nothing at all, since tests.yml triggers on master
only. This adds tests-dev.yml, which triggers on dev, builds the C library from
source at the tip of its dev branch and caches it by commit, then runs the same
steps tests.yml does. tests.yml is untouched: master keeps installing the
published release.

It resolves the commit with git ls-remote rather than api.github.com, which is
rate limited per runner IP and answers 403 often enough to redden a job for a
reason unrelated to the code under test.

TA-Lib C has since retired the Metastock compatibility behaviour and made the
setter inert, so test_compatibility pins only the default; asserting what the
setter used to change would pass on one C release and fail on the next.
@mario4tier
mario4tier merged commit ee0137c into dev Sep 6, 2026
6 checks passed
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.

1 participant