Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release healpy 1.17.1 #914

Closed
zonca opened this issue Mar 4, 2024 · 37 comments
Closed

Release healpy 1.17.1 #914

zonca opened this issue Mar 4, 2024 · 37 comments
Assignees

Comments

@zonca
Copy link
Member

zonca commented Mar 4, 2024

We plan to make a new healpy release, the most important change is #910 which makes matplotlib and scipy optional dependencies.
Given this change in requirements, I think it is appropriate to name the new release 1.17.0.

I also plan to update the C++ package, even if there should not be any significant changes there.

@mreineck @hivon any feedback?

@zonca zonca self-assigned this Mar 4, 2024
@hivon
Copy link

hivon commented Mar 4, 2024

Since this release does not seem to address an urgent need, can you wait a couple of weeks before doing it, so I have a chance to put together a Healpix release ?

@lpsinger
Copy link
Member

lpsinger commented Mar 4, 2024

Actually, the dependency and wheel size issue is urgent for us. See nasa-gcn/gcn.nasa.gov#1974.

@zonca
Copy link
Member Author

zonca commented Mar 4, 2024

@tskisner we have some packaging changes for this release, especially #905, could you test this is not breaking installs at NERSC?

@tskisner
Copy link

tskisner commented Mar 4, 2024

I downloaded the artifact wheels produced in #905 and tested install in a virtualenv. Those wheels have a bundled libgomp but with the usual random suffix appended by cibuildwheel. There do not seem to be any conflicts with toast wheels (also produced with cibuildwheel and also containing a randomly named, vendored libgomp). However, I noticed that in the healpy feedstock there is no explicit dependence on OpenMP. Is that intentional? I was expecting something like

build:
    - llvm-openmp # [osx]
    - libgomp # [linux]

but I can open a question on that repo. Maybe it is not important- I think libgomp would get found regardless on linux builds and on macos the package would simply not use OpenMP.

@lpsinger
Copy link
Member

lpsinger commented Mar 4, 2024

@tskisner, the macOS Conda packages definitely are supposed to link against OpenMP. But yes, that would be an issue with the feedstock.

@lpsinger
Copy link
Member

lpsinger commented Mar 7, 2024

@zonca, would you be willing to do an rc or pre-release ahead of the healpix-cxx update?

lpsinger added a commit to lpsinger/gcn.nasa.gov that referenced this issue Mar 7, 2024
There are several improvements in the upcoming Healpy release that
will decrease binary installation size, but the next Healpy release
may still be a few weeks away (see
healpy/healpy#914 (comment)).

Meanwhile, I have used [dumb-pypi](https://pypi.org/project/dumb-pypi/)
to create a third-party PyPI index with pre-release build of healpy at
https://nasa-gcn.github.io/healpy-prerelease-pypi-index/. Install
healpy from there for now in order to fix our deployments.
lpsinger added a commit to lpsinger/gcn.nasa.gov that referenced this issue Mar 7, 2024
There are several improvements in the upcoming Healpy release that
will decrease binary installation size, but the next Healpy release
may still be a few weeks away (see
healpy/healpy#914 (comment)).

Meanwhile, I have used [dumb-pypi](https://pypi.org/project/dumb-pypi/)
to create a third-party PyPI index with pre-release build of healpy at
https://nasa-gcn.github.io/healpy-prerelease-pypi-index/. Install
healpy from there for now in order to fix our deployments.
lpsinger added a commit to lpsinger/gcn.nasa.gov that referenced this issue Mar 7, 2024
There are several improvements in the upcoming Healpy release that
will decrease binary installation size, but the next Healpy release
may still be a few weeks away (see
healpy/healpy#914 (comment)).

Meanwhile, I have used [dumb-pypi](https://pypi.org/project/dumb-pypi/)
to create a third-party PyPI index with pre-release build of healpy at
https://nasa-gcn.github.io/healpy-prerelease-pypi-index/. Install
healpy from there for now in order to fix our deployments.
lpsinger added a commit to lpsinger/gcn.nasa.gov that referenced this issue Mar 7, 2024
There are several improvements in the upcoming Healpy release that
will decrease binary installation size, but the next Healpy release
may still be a few weeks away (see
healpy/healpy#914 (comment)).

Meanwhile, I have used [dumb-pypi](https://pypi.org/project/dumb-pypi/)
to create a third-party PyPI index with pre-release build of healpy at
https://nasa-gcn.github.io/healpy-prerelease-pypi-index/. Install
healpy from there for now in order to fix our deployments.
lpsinger added a commit to nasa-gcn/gcn.nasa.gov that referenced this issue Mar 7, 2024
There are several improvements in the upcoming Healpy release that
will decrease binary installation size, but the next Healpy release
may still be a few weeks away (see
healpy/healpy#914 (comment)).

Meanwhile, I have used [dumb-pypi](https://pypi.org/project/dumb-pypi/)
to create a third-party PyPI index with pre-release build of healpy at
https://nasa-gcn.github.io/healpy-prerelease-pypi-index/. Install
healpy from there for now in order to fix our deployments.
@zonca
Copy link
Member Author

zonca commented Mar 13, 2024

@hivon we have a problem in #917 which is blocking the release, not sure when we will be able to release, it is a matter of another 2/3 weeks is my guess. Good news is you have time to make a HEALPix release!

@lpsinger
Copy link
Member

We should include #933 in the next release because it is needed for ABI compatibility with Numpy 1.x and 2.x.

@zonca
Copy link
Member Author

zonca commented Apr 18, 2024

ok, #917 is merged,
@lpsinger anything else or should I make a release at this stage?

@lpsinger
Copy link
Member

Not that I can think of. Note that we'll need a release of healpix-cxx as well.

@zonca
Copy link
Member Author

zonca commented Apr 18, 2024

@mreineck @hivon can you make a release of healpix-cxx?

@mreineck
Copy link
Member

FIne with me, I just hope I get the shared library version right this time!

@hivon, do we make a full release, or should I do an intermediate C++-only tarball?

@hivon
Copy link

hivon commented Apr 19, 2024

I do plan to make a full release, but it may take some time to wrap it up and integrate the new healpy in it.
So if you are in a rush, make an intermediate C++-only tarball.

@mreineck
Copy link
Member

I think we can probably have the best of both worlds. If I know the version number (I guess 3.83?) and you don't require additional changes to the C++ part, I can just try to produce the "official" C++ only tarball in advance.

@hivon
Copy link

hivon commented Apr 19, 2024

Yes, it would be 3.83.
Thanks

@mreineck
Copy link
Member

@lpsinger, can you check the attached file?
healpix_cxx-3.83.0.tar.gz

@lpsinger
Copy link
Member

@lpsinger anything else or should I make a release at this stage?

One more PR: #939

@lpsinger
Copy link
Member

@lpsinger, can you check the attached file? healpix_cxx-3.83.0.tar.gz

I am having some problems with updating the Debian package. Please hold, @zonca. I'll elaborate shortly.

@lpsinger
Copy link
Member

See #942.

@jvavrek
Copy link
Contributor

jvavrek commented May 22, 2024

A new release would be very useful for us as well---specifically we would need the fix from #944 available on PyPI. Otherwise we have to max version pin matplotlib in half a dozen repos.

@zonca
Copy link
Member Author

zonca commented May 22, 2024

@lpsinger would it be worth it to release with broken MacOS builds? #942 (comment)

Then release 1.17.1 when this is fixed in cfitsio HEASARC/cfitsio#18

@lpsinger
Copy link
Member

The MacPorts builds are not broken. The problem is that cfitsio's build system is broken for shared libraries. MacPorts has a patch that fixes it. HEASARC/cfitsio#18 is currently blocking #942. You could certainly do a release now; the only defect that I know if is that it will be statically linked against cfitsio and therefore be a much larger distribution than it ought to be.

I say go for it. I think that the cfitsio build system rewrite is going to take a while.

@zonca
Copy link
Member Author

zonca commented May 23, 2024

@zonca
Copy link
Member Author

zonca commented May 25, 2024

@lpsinger the publishing to pypi action cannot find the artifacts, however they are built and downloaded.
I tried to specify the folder 27caf8d and force push the tag again but doesn't seem to work

@zonca
Copy link
Member Author

zonca commented May 25, 2024

@lpsinger
Copy link
Member

@lpsinger the publishing to pypi action cannot find the artifacts, however they are built and downloaded. I tried to specify the folder 27caf8d and force push the tag again but doesn't seem to work

See #947.

I suggest just doing another release. Version numbers cost nothing.

@lpsinger
Copy link
Member

Remember that to trigger an upload to PyPI, you need to do a GitHub release in addition to making a tag.

@zonca
Copy link
Member Author

zonca commented May 28, 2024

Wheels are there: https://pypi.org/project/healpy/#files

@zonca zonca changed the title Release healpy 1.17.0 Release healpy 1.17.1 May 28, 2024
@zonca
Copy link
Member Author

zonca commented May 28, 2024

@hivon 1.17.1 released.

Just waiting for https://github.com/conda-forge/healpy-feedstock bot to make the update on Conda-forge as well

@lpsinger
Copy link
Member

According to the conda bot status, the version update is failing with the following error message:

6.00 attempts - bot error (<a href="https://github.com/regro/cf-scripts/actions/runs/9262219732">bot CI job</a>): main: Traceback (most recent call last):
  File "/home/runner/work/cf-scripts/cf-scripts/cf-scripts/conda_forge_tick/auto_tick.py", line 567, in _run_migrator_on_feedstock_branch
    migrator_uid, pr_json = run(
                            ^^^^
  File "/home/runner/work/cf-scripts/cf-scripts/cf-scripts/conda_forge_tick/auto_tick.py", line 215, in run
    migration_run_data = run_migration(
                         ^^^^^^^^^^^^^^
  File "/home/runner/work/cf-scripts/cf-scripts/cf-scripts/conda_forge_tick/migration_runner.py", line 63, in run_migration
    return run_migration_containerized(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/cf-scripts/cf-scripts/cf-scripts/conda_forge_tick/migration_runner.py", line 157, in run_migration_containerized
    data = run_container_task(
           ^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/cf-scripts/cf-scripts/cf-scripts/conda_forge_tick/utils.py", line 249, in run_container_task
    raise RuntimeError(
RuntimeError: Error running migrate-feedstock in container - error KeyError('raw_meta_yaml') raised:
cmd: ['docker',
 'run',
 '-e',
 'CF_TICK_IN_CONTAINER=true',
 '--security-opt=no-new-privileges',
 '--read-only',
 '--cap-drop=all',
 '--mount',
 'type=tmpfs,destination=/tmp,tmpfs-mode=1777,tmpfs-size=6000000000',
 '-m',
 '6000m',
 '--cpus',
 '1',
 '--ulimit',
 'nofile=1024:1024',
 '--ulimit',
 'nproc=2048:2048',
 '--rm',
 '-i',
 '--mount',
 'type=bind,source=/tmp/tmpi5gsez8_,destination=/cf_tick_dir',
 'ghcr.io/regro/conda-forge-tick:master',
 '/opt/conda/envs/cf-scripts/bin/python',
 '-u',
 '/opt/autotick-bot/docker/run_bot_task.py',
 'migrate-feedstock',
 '--feedstock-name',
 'healpy',
 '--default-branch',
 'main',
 '--existing-feedstock-node-attrs',
 '-',
 '--kwargs',
 '{\n "hash_type": "sha256"\n}',
 '--log-level',
 'info']
stdout: {'data': None,
 'default_branch': 'main',
 'error': "KeyError('raw_meta_yaml')",
 'feedstock_name': 'healpy',
 'input_kwargs': '{\n "hash_type": "sha256"\n}',
 'traceback': 'Traceback (most recent call last):\n'
              '  File "/opt/autotick-bot/docker/run_bot_task.py", line 116, in '
              '_run_bot_task\n'
              '    data = func(attrs=attrs, **kwargs)\n'
              '           ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n'
              '  File "/opt/autotick-bot/docker/run_bot_task.py", line 303, in '
              '_migrate_feedstock\n'
              '    data = run_migration_local(\n'
              '           ^^^^^^^^^^^^^^^^^^^^\n'
              '  File '
              '"/opt/autotick-bot/conda_forge_tick/migration_runner.py", line '
              '235, in run_migration_local\n'
              '    migrator.run_pre_piggyback_migrations(recipe_dir, '
              'feedstock_ctx.attrs, **kwargs)\n'
              '  File "/opt/autotick-bot/conda_forge_tick/migrators/core.py", '
              'line 417, in run_pre_piggyback_migrations\n'
              '    if not mini_migrator.filter(attrs):\n'
              '           ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n'
              '  File '
              '"/opt/autotick-bot/conda_forge_tick/migrators/extra_jinj2a_keys_cleanup.py", '
              'line 34, in filter\n'
              '    raw_yaml = attrs["raw_meta_yaml"]\n'
              '               ~~~~~^^^^^^^^^^^^^^^^^\n'
              '  File '
              '"/opt/autotick-bot/conda_forge_tick/lazy_json_backends.py", '
              'line 811, in __getitem__\n'
              '    return self._data[item]\n'
              '           ~~~~~~~~~~^^^^^^\n'
              "KeyError: 'raw_meta_yaml'\n"}

I have no idea what any of that means. @duncanmmacleod?

Meanwhile, I can do the update manually.

@zonca
Copy link
Member Author

zonca commented Jun 17, 2024

conda package not available yet, see conda-forge/healpy-feedstock#67

@zonca
Copy link
Member Author

zonca commented Jun 21, 2024

@lpsinger what if we leave 1.17.1 without a conda package and ship it again in the next release?

@lpsinger
Copy link
Member

We are shipping the source code for libsharp. The problem is that we are building it as a shared library which is not being incorporated into the conda package.

As a short term workaround, I can update the conda packaging to build libsharp as a shared library and install it. I'll work on that over the coming few days.

For the slightly longer term ... it seems that the version of libsharp that we are bundling with healpix-cxx is unmaintained, and incompatible with either of the other two standalone flavors of libsharp (https://github.com/Libsharp/libsharp and https://gitlab.mpcdf.mpg.de/mtr/libsharp). Given that, I suppose that I would suggest really vendoring libsharp directly into the healpix-cxx source so that it is no longer even a separate package.

In the much longer term, I think that you, @mreineck, and I should buckle down and talk about alternatives to healpix-cxx like ducc0 etc.

It's still really a shame that the HEALPix maintainers are set on keeping development on Subversion on SourceForge and having the very customized and brittle monorepo layout. That's not the underlying problem here, but it's an additional challenge.

@mreineck
Copy link
Member

In the much longer term, I think that you, @mreineck, and I should buckle down and talk about alternatives to healpix-cxx like ducc0 etc.

More than happy to work on that, see #717 :-)

I'm also fine with doing the migration in steps, e.g. switch the SHTs first. From healpy's perspective that would mean a temporary increase in dependencies, but that could be worth it.

@hivon
Copy link

hivon commented Jun 21, 2024

@zonca here: Edited out the usual @hivon's useless toxic comments which are not accepted here at all. Come on.
In summary he is saying that Healpix is happy to stay with monorepo on Sourceforge.

@lpsinger
Copy link
Member

lpsinger commented Jul 8, 2024

I finished updating the Conda packaging. Can we close this issue now?

@zonca
Copy link
Member Author

zonca commented Jul 9, 2024

I finished updating the Conda packaging. Can we close this issue now?

Thanks!

@zonca zonca closed this as completed Jul 9, 2024
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

No branches or pull requests

6 participants