Uploaded image for project: 'Request For Comments'
  1. Request For Comments
  2. RFC-826

Update rubin-env cfitsio pinning from 3 to 4

    XMLWordPrintable

    Details

    • Type: RFC
    • Status: Implemented
    • Resolution: Done
    • Component/s: DM
    • Labels:
      None

      Description

      Last May, cfitsio changed their version numbering from the proprietary versioning to a traditional major.minor.patch versioning scheme: https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/docs/changes.txt

      This version was thus updated from 3.49 to 4.0.0. The fundamental code did not change, but it turns out a lot of code out there was written with explicit checks on the old-style cfitsio version formatting. Fortunately, all of the necessary patches have now been applied and everything we depend on in conda-forge has been rebuilt with cfitsio=4 and the conda-forge global pinning for cfitsio has been updated to version 4: https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/9a96a73e9aa00da5b38ac25623b2b46f1a8b9fef/recipe/conda_build_config.yaml#L394-L395

      As rubin-env is pinned on cfitsio =3 then we are going to be frozen out of future package updates that depend on cfitsio =4 until we update our pin.

      Fortunately, a recent build with the rubin-env =2.0.0dev (including python =3.10 and cfitsio =4) turned up no issues with the new cfitsio. That is, there is no obvious location in the LSST Science Pipelines that checks the cfitsio version explicitly. Unfortunately, the new cfitsio =4 is not ABI compatible with cfitsio =3.

      As this is updating an incompatible dependency major version this would necessitate an update of rubin-env to version 2.0.0.

        Attachments

          Issue Links

            Activity

            Hide
            ktl Kian-Tat Lim added a comment - - edited

            from me. If this is actually ABI-compatible, so that our existing binaries link properly against the new libraries, then we could potentially not bump the major version.

            Show
            ktl Kian-Tat Lim added a comment - - edited from me. If this is actually ABI-compatible, so that our existing binaries link properly against the new libraries, then we could potentially not bump the major version.
            Hide
            Parejkoj John Parejko added a comment -

            Definitely!

            Show
            Parejkoj John Parejko added a comment - Definitely!
            Hide
            erykoff Eli Rykoff added a comment -

            I just did a test of new cfitsio with our current binaries and it was a complete flop. So I've edited the RFC to say that it's not compatible, we do need a new major version. Sorry about the confusion (and false hope).

            Show
            erykoff Eli Rykoff added a comment - I just did a test of new cfitsio with our current binaries and it was a complete flop. So I've edited the RFC to say that it's not compatible, we do need a new major version. Sorry about the confusion (and false hope).
            Hide
            erykoff Eli Rykoff added a comment -

            I was able to create a new 1.0.0 env, update cfitsio to 4 (which incidentally brings in a new build of wcslib and newer versions of healpy and imagecodecs). A fresh rebuild of of the science pipelines build with no problems, and I also ran ci_hsc_gen3 without any problems.

            Show
            erykoff Eli Rykoff added a comment - I was able to create a new 1.0.0 env, update cfitsio to 4 (which incidentally brings in a new build of wcslib and newer versions of healpy and imagecodecs ). A fresh rebuild of of the science pipelines build with no problems, and I also ran ci_hsc_gen3 without any problems.

              People

              Assignee:
              erykoff Eli Rykoff
              Reporter:
              erykoff Eli Rykoff
              Watchers:
              Eli Rykoff, John Parejko, Kian-Tat Lim, Tim Jenness
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Planned End:

                  Jenkins

                  No builds found.