Skip to content

include wcslib 6.2 in release 3.2 #7929

Closed

Description

@nden

wcslib 6.1 was released:


WCSLIB version 6.1 (2018/10/19)
-------------------------------

* C library

  - Added support for time-related WCS keywords (Paper VII) by expanding
    the wcsprm struct to store them as auxiliary values, now filled by
    the header parsers, wcspih() and wcsbth() and handled routinely by
    wcsinit(), wcssub(), wcscompare(), wcsfree(), wcsprt(), wcsset(),
    and wcshdo().
   
  - Augmented datfix() to do various consistency checks on the new
    time-related keyvalues, and added a new routine, obsfix(), to check
    consistency of the OBSGEO-[XYZLBH] observatory coordinates.

  - In the usage notes for wcsbth(), clarified that, according to WCS
    Papers III and VII, certain global image header keywords are
    permitted in binary table headers and are expected to be inherited
    by image arrays and pixel lists, and elaborated on the difficulties
    that such inheritance may cause for pixel lists.

  - Extracted the definition of the wtbarr struct from wcs.h to a
    separate header file, wtbarr.h, in order to reduce the number of
    irrelevant warnings generated by 'gcc -Wpadded' (primarily for
    code development).  Applications code that needs to access members
    of the struct (unlikely) must now include wtbarr.h (or wcslib.h).
   
  - The WCSLIB major version number was incremented as changes to the
    wcsprm struct makes the ABI of the sharable library incompatible
    with executables linked with that of older releases.

* Installation

  - Several changes to configure and the makefiles aimed at facilitating
    code development.

* Fortran wrappers

  - Match changes to the C library, including adding a wrapper for
    obsfix().

Activity

  1. added this to the v3.1 milestone on Oct 19, 2018
  2. nden commented on Oct 19, 2018

    @nden
    ContributorAuthor

    Need to see if this is possible to do given that there are backwards incompatible changes and the deadline for the release is soon.

  3. astrofrog commented on Oct 19, 2018

    @astrofrog
    Member

    Great that the time keywords are supported! We definitely should get this into 3.1 if possible.

  4. olebole commented on Oct 21, 2018

    @olebole
    Member

    I just tried to build astropy-3.0.5 using wcslib-6.2; but the tests fail with a segmentation fault:

    platform linux -- Python 3.7.1rc2, pytest-3.6.4, py-1.6.0, pluggy-0.6.0
    Matplotlib: 2.2.2
    Freetype: 2.8.1
    rootdir: /home/ole/Projects/2011/debian/python/astropy/astropy, inifile: setup.cfg
    plugins: remotedata-0.3.0, openfiles-0.3.0, mpl-0.9, doctestplus-0.1.3, arraydiff-0.2
    Segmentation fault (core dumped)
    

    Backtrace when running with Python-3.7rc2 during pytest startup:

    #0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:62
    #1  0x00000000005aec99 in PyUnicode_FromString (u=0x0) at ../Objects/unicodeobject.c:2100
    #2  PyDict_SetItemString () at ../Objects/dictobject.c:3287
    #3  0x00007f2fbd13afb9 in PyWcsprm_fix (self=<optimized out>, args=<optimized out>, kwds=<optimized out>) at astropy/wcs/src/wcslib_wrap.c:904
    #4  0x00000000004c76a4 in _PyMethodDef_RawFastCallKeywords (kwnames=<optimized out>, nargs=<optimized out>, args=0x7f2fb61a17c0, self=<astropy.wcs.Wcsprm at remote 0x3763700>, method=<optimized out>) at ../Objects/call.c:690
    #5  _PyMethodDescr_FastCallKeywords () at ../Objects/descrobject.c:288
    #6  0x0000000000547ed8 in call_function (kwnames=0x0, oparg=3, pp_stack=0x7ffe62855a20) at ../Python/ceval.c:4579
    #7  _PyEval_EvalFrameDefault () at ../Python/ceval.c:3110
    #8  0x00000000005412c2 in PyEval_EvalFrameEx (throwflag=0, 
        f=Frame 0x7f2fb61a1618, for file /home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/wcs/wcs.py, line 648, in fix (self=<WCS(naxis=2, _naxis=[0, 0]) at remote 0x7f2fb52ad688>, translate_units='', naxis=None)) at ../Python/ceval.c:547
    #9  _PyEval_EvalCodeWithName () at ../Python/ceval.c:3930
    #10 0x00000000005ceaa2 in _PyFunction_FastCallKeywords () at ../Objects/call.c:433
    #11 0x00000000005407da in call_function.lto_priv () at ../Python/ceval.c:4602
    #12 0x0000000000544bdd in _PyEval_EvalFrameDefault () at ../Python/ceval.c:3139
    #13 0x00000000005412c2 in PyEval_EvalFrameEx (throwflag=0, 
        f=Frame 0x3437148, for file /home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/wcs/wcs.py, line 503, in __init__ (self=<WCS(naxis=2, _naxis=[0, 0]) at remote 0x7f2fb52ad688>, header=None, fobj=None, key=' ', minerr=<float at remote 0x7f2fbd1f03f0>, relax=True, naxis=2, keysel=None, colsel=None, fix=True, translate_units='', _do_set=True, close_fds=[], wcsprm=<astropy.wcs.Wcsprm at remote 0x3763700>, det2im=(None, None), cpdis=(...), sip=None)) at ../Python/ceval.c:547
    #14 _PyEval_EvalCodeWithName () at ../Python/ceval.c:3930
    #15 0x00000000005cfcb8 in _PyFunction_FastCallDict () at ../Objects/call.c:367
    #16 0x0000000000588bf3 in _PyObject_FastCallDict (kwargs={'naxis': 2}, nargs=1, args=0x7ffe62855f40, callable=<function at remote 0x7f2fbd181488>) at ../Objects/call.c:98
    #17 _PyObject_Call_Prepend (kwargs={'naxis': 2}, args=(), obj=<optimized out>, callable=<function at remote 0x7f2fbd181488>) at ../Objects/call.c:904
    #18 slot_tp_init () at ../Objects/typeobject.c:6610
    #19 0x00000000005cf229 in type_call (kwds=<optimized out>, args=(), type=<optimized out>) at ../Objects/typeobject.c:949
    #20 _PyObject_FastCallKeywords () at ../Objects/call.c:199
    #21 0x00000000005409d1 in call_function.lto_priv () at ../Python/ceval.c:4605
    #22 0x0000000000544bdd in _PyEval_EvalFrameDefault () at ../Python/ceval.c:3139
    #23 0x00000000005412c2 in PyEval_EvalFrameEx (throwflag=0, f=Frame 0x3714658, for file /home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py, line 26, in <module> ())
        at ../Python/ceval.c:547
    #24 _PyEval_EvalCodeWithName () at ../Python/ceval.c:3930
    #25 0x000000000054e488 in PyEval_EvalCodeEx (closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwcount=0, kws=0x0, argcount=0, args=0x0, 
        locals={'__name__': 'astropy.visualization.wcsaxes.core', '__doc__': None, '__package__': 'astropy.visualization.wcsaxes', '__loader__': <SourceFileLoader(name='astropy.visualization.wcsaxes.core', path='/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py') at remote 0x7f2fb4ad2ac8>, '__spec__': <ModuleSpec(name='astropy.visualization.wcsaxes.core', loader=<...>, origin='/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py', loader_state=None, submodule_search_locations=None, _set_fileattr=True, _cached='/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/__pycache__/core.cpython-37.pyc', _initializing=True) at remote 0x7f2fb4ad2978>, '__file__': '/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py', '__cached__': '/home/ole/Projects/2011/debian/python/astro...(truncated), 
        globals={'__name__': 'astropy.visualization.wcsaxes.core', '__doc__': None, '__package__': 'astropy.visualization.wcsaxes', '__loader__': <SourceFileLoader(name='astropy.visualization.wcsaxes.core', path='/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py') at remote 0x7f2fb4ad2ac8>, '__spec__': <ModuleSpec(name='astropy.visualization.wcsaxes.core', loader=<...>, origin='/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py', loader_state=None, submodule_search_locations=None, _set_fileattr=True, _cached='/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/__pycache__/core.cpython-37.pyc', _initializing=True) at remote 0x7f2fb4ad2978>, '__file__': '/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py', '__cached__': '/home/ole/Projects/2011/debian/python/astro...(truncated), _co=<code at remote 0x7f2fb4af1ae0>) at ../Python/ceval.c:522
    #26 PyEval_EvalCode (
        locals={'__name__': 'astropy.visualization.wcsaxes.core', '__doc__': None, '__package__': 'astropy.visualization.wcsaxes', '__loader__': <SourceFileLoader(name='astropy.visualization.wcsaxes.core', path='/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py') at remote 0x7f2fb4ad2ac8>, '__spec__': <ModuleSpec(name='astropy.visualization.wcsaxes.core', loader=<...>, origin='/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py', loader_state=None, submodule_search_locations=None, _set_fileattr=True, _cached='/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/__pycache__/core.cpython-37.pyc', _initializing=True) at remote 0x7f2fb4ad2978>, '__file__': '/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py', '__cached__': '/home/ole/Projects/2011/debian/python/astro...(truncated), 
        globals={'__name__': 'astropy.visualization.wcsaxes.core', '__doc__': None, '__package__': 'astropy.visualization.wcsaxes', '__loader__': <SourceFileLoader(name='astropy.visualization.wcsaxes.core', path='/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py') at remote 0x7f2fb4ad2ac8>, '__spec__': <ModuleSpec(name='astropy.visualization.wcsaxes.core', loader=<...>, origin='/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py', loader_state=None, submodule_search_locations=None, _set_fileattr=True, _cached='/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/__pycache__/core.cpython-37.pyc', _initializing=True) at remote 0x7f2fb4ad2978>, '__file__': '/home/ole/Projects/2011/debian/python/astropy/astropy/.pybuild/cpython3_3.7/build/astropy/visualization/wcsaxes/core.py', '__cached__': '/home/ole/Projects/2011/debian/python/astro...(truncated), co=<code at remote 0x7f2fb4af1ae0>) at ../Python/ceval.c:524
    [...]
    

    Using wcslib-5.20 in the same environment succeeds.
    Quickly checking the changes between 5.20 and 6.2 didn't help me; also API changes were not documented.

  5. saimn commented on Oct 21, 2018

    @saimn
    Contributor

    edit: I did not see the previous comment, so this was just to announce the follow-up version 6.2

    WCSLIB version 6.2 (2018/10/20)
    -------------------------------
    
    * C library
    
      - Consequent on the change in release 6.1, reapplied soothing balm to
        the wtbarr struct definition in wcs.h for C++ compilation (C and
        Fortran compilation being unaffected).  While the object libraries
        themselves are unchanged, the modified wcs.h must be installed for
        compiling C++ applications.  Reported by Corentin Schreiber.
    
    * User manual
    
      - Fixed minor formatting problems with the doxygen manual generation.
    
  6. olebole commented on Oct 21, 2018

    @olebole
    Member

    @saimn I am not sure whether your comment was related to me: I replaced the two wcs.h appearances in astropy with the one from 6.2, without a change. I would also suspect that when using external libs, then also the headers are used from the system.

  7. saimn commented on Oct 21, 2018

    @saimn
    Contributor

    @olebole - nope, sorry, I already had the page loaded in the browser and didn't see your comment.

  8. modified the milestones: v3.1, v3.2 on Oct 29, 2018
  9. changed the title [-]include wcslib 6.1 in release 3.1[/-] [+]include wcslib 6.1 in release 3.2[/+] on Mar 25, 2019
  10. astrofrog commented on Mar 25, 2019

    @astrofrog
    Member

    @nden - will you have any time to try and work on upgrading WCSLIB to 6.1 in time for the feature freeze? I'm working on adding time series functionality to the core package for the 3.2 release, and it would be really helpful to have the new WCS support for time axes.

  11. nden commented on Apr 15, 2019

    @nden
    ContributorAuthor

    @astrofrog I worked on this over the weekend. I still have to figure out four test failures related to error messaging and write tests but am hopeful that I will post a PR before the feature freeze.

  12. astrofrog commented on Apr 15, 2019

    @astrofrog
    Member

    @nden - that's great, thanks!!

  13. changed the title [-]include wcslib 6.1 in release 3.2[/-] [+]include wcslib 6.2 in release 3.2[/+] on Apr 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions