Open tomsail opened 10 months ago
What's the error message when it fails ?
Compiling main is PIA (sha256 will change multiple time a day), I would stick to released version with patch.
To generate a patch, you can
What's the error message when it fails ?
Mainly during one of the API steps, i.e.
Building the Python API
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~> Wrap_api built
~> Compiling Modules api
~> First part of f2py for api passed
It can be during the wrap, the first or second step, it depends.. I haven't printed out the whole compilation process, just the outcome of it.
Compiling main is PIA (sha256 will change multiple time a day), I would stick to released version with patch.
To generate a patch, you can
- git checkout v8p4 branch
- create a new branch from v8p4 : v8p4-patch-f2py
- cherry pick the merge commit
- git diff v8p4..v8p4-patch-f2py > f2py.patch
Thanks that's a great hack! I had seen in one of your meta.yaml
that you could include the patch in the conda build process, like so correct?
source:
url: <source-url>
sha256: <source-sha256>
patches:
- f2py.patch
I will finish the first matrix build I started and add a second table with the patch fix
I opened https://github.com/conda-forge/staged-recipes/pull/24529 We need to manually specify python and numpy version in conda_build_config.yaml and add condition on patch depending numpy version.
With patch in PR, il was able to build on py3.11 and numpy 1.25 locally but it fails with same recipe on azure pipeline
what is the error on azure? With the patch locally, doing the conda build, I have (with python 3.10, numpy 1.25)
- completed: .../opentelemac/sources/api/api_run_t3d.f
- completed: .../opentelemac/sources/api/api_run_wac.f
- completed: .../opentelemac/sources/api/api_interface.f
/home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/sources/api/example_cpl_t2d_sis.f:146:30:
146 | & 0,0,IERR)
| 1
Error: Non-variable expression in variable definition context (actual argument to INTENT = OUT/INOUT) at (1)
/home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/sources/api/example_cpl_t2d_sis.f:146:72:
146 | & 0,0,IERR)
| 1
Error: More actual than formal arguments in procedure call at (1)
/home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/sources/api/example_cpl_t2d_sis.f:164:30:
164 | & 0,0,IERR)
| 1
Error: Non-variable expression in variable definition context (actual argument to INTENT = OUT/INOUT) at (1)
/home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/sources/api/example_cpl_t2d_sis.f:164:72:
164 | & 0,0,IERR)
| 1
Error: More actual than formal arguments in procedure call at (1)
- completed: .../opentelemac/sources/api/homere_api.F
Traceback (most recent call last):\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ] 99% | 1s
File "/home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/scripts/python3/compile_telemac.py", line 142, in <module>
main()
File "/home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/scripts/python3/compile_telemac.py", line 129, in main
compile_cmdf(options.ncsize, modules, options.verbose)
File "/home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/scripts/python3/compilation/compil_tools.py", line 1298, in compile_cmdf
raise TelemacException(\
utils.exceptions.TelemacException:
+> failed: .../opentelemac/sources/api/example_cpl_t2d_sis.f
... The following command failed for the reason in the listing
mpif90 -c -O2 -fPIC -cpp -fconvert=big-endian -frecord-marker=4 -DHAVE_I16 -DHAVE_MPI -DHAVE_MUMPS -DHAVE_GOTM -DHAVE_AED2 -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/utils/special -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/utils/damocles -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/utils/parallel -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/utils/hermes -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/utils/bief -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/nestor -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/utils/ad -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/tomawac -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/sisyphe -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/waqtel -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/khione -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/gaia -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/telemac2d -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/utils/gretel -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/utils/partel -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/telemac3d -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/artemis -I /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/builds/gnu.dynamic/obj/api /home/tomsail/miniconda3/conda-bld/opentelemac_1700411180981/work/opentelemac/sources/api/example_cpl_t2d_sis.f
I have this error, would you know why?
Using :
{% set name = "opentelemac" %}
{% set version = "v8p4r1" %}
{% set build = 0 %}
package:
name: {{ name|lower }}
version: {{ version }}
source:
# - url: https://gitlab.pam-retd.fr/otm/telemac-mascaret/-/archive/{{ version }}/telemac-mascaret-{{ version }}.tar.gz
- url: https://github.com/nicogodet/otm-sources/releases/download/{{ version }}/telemac-mascaret-{{ version }}.tar.gz
folder: opentelemac
# sha256: b48a0ee5cb43a68bc7255357544810ea67ea918a5ffd7fd61eeed41be4cf7b71
sha256: 4dc0fdf59c7befff277b51ef8bec1eaac9b4b12db071b8914739ea2156532ee5
patches:
- patches/f2py.patch
- path: ../src
INFO:conda_build.source:Found source in cache: telemac-mascaret-v8p4r1_b48a0ee5cb.tar.gz
Extracting download
Applying patch: /home/tomsail/work/python/feedstocks/telemac-mascaret-feedstock/recipe/f2py.patch
Applying patch: /home/tomsail/work/python/feedstocks/telemac-mascaret-feedstock/recipe/f2py.patch with args:
['-Np1', '-i', '/tmp/tmp7sw0rlpr/f2py.patch.native', '--binary']
checking file scripts/python3/compilation/compil_tools.py
checking file scripts/python3/execution/get.py
checking file scripts/python3/telapy/api/api_module.py
checking file scripts/python3/telapy/api/hermes.py
checking file sources/api/api.cmdf
checking file sources/api/api_interface.f
checking file sources/api/example_cpl_t2d_sis.f
patch unexpectedly ends in middle of line
/home/tomsail/miniconda3/bin/patch: **** malformed patch at line 769:
Warning: failed to download source. If building, will try again after downloading recipe dependencies.
Error was:
Command '['/home/tomsail/miniconda3/bin/patch', '--no-backup-if-mismatch', '--batch', '-Np1', '-i', '/tmp/tmp7sw0rlpr/f2py.patch.native', '--binary', '--dry-run']' returned non-zero exit status 2.
Failed to download or patch source. Please see build log for info.```
Check you have an empty line at end of patch file
It worked! I'll matrix build overnight and update the table tomorrow.
I'll also test all versions with validate_telemac.py
or some basic tests so to see how the compilation and API performed.
This will give us insight for the constraints to put on numpy on conda-forge. Bravo @nicogodet, great stuff
@sebourban @nicogodet please have a look at the recap table above (first post) basic API runs fine, even 1.22/1.23 version ! (see test run above)
full linux versions (MPI/MUMPS/API/AED/GOTM) are available on my anaconda channel for the python
x numpy
versions in the table above.
@nicogodet
validate_telemac.py
does not work because package does not contain the examples. I f you have a fix for this, I'm keen to hear.
You can add a test
folder inside you recipe dir with examples and refere to this folder during test phase
https://github.com/nicogodet/telemac-mascaret-feedstock/commit/8f744a1894a0e1981cb428cf39853e48f64ce3b5#diff-f3725a55bf339595bf865fec73bda8ac99f283b0810c205442021f29c06eea9a
EDIT (after applying patch provided by @nicogodet, see details below):
Recapitulative table:
:x: Compiling fails :large_orange_diamond: API fails :heavy_check_mark: everything works
TODO:
mtri.triangulation.Triangulation/mtri.Triangulation
to apply depending on the numpy versionNote: for the API test, a simple test was done :
@nicogodet
validate_telemac.py
does not work because package does not contain the examples. I f you have a fix for this, I'm keen to hear.