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

RC v2.1.0 #147

Merged
merged 65 commits into from
Jan 7, 2025
Merged

RC v2.1.0 #147

merged 65 commits into from
Jan 7, 2025

Conversation

aburrell
Copy link
Owner

@aburrell aburrell commented Dec 30, 2024

Description

Release candidate with updates to IGRF-14, numpy 2 compliance, and Python 3.12 compliance. Also fixes the command-line interface.

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • This change requires a documentation update
  • Release candidate

How Has This Been Tested?

Installed locally and ran:

import apexpy
apex = apexpy.Apex()
apex.qd2geo(90, 0.0, 0.0)

Yields: (83.9069595336914, -84.24675750732422, 5.598568350251298e-06) with a date of 2024.99692623

Also:
python -m apexpy geo apex 20240101 --height 300 -i $GITDIR/apexpy/apexpy/tests/test_convert.txt

Yields:

57.64630127 92.66724396
58.70431519 93.03585052
59.75823212 93.43036652

And:
apexpy geo apex 2015 --height 300 -i apexpy/apexpy/tests/test_convert.txt -o apexpy/apexpy/tests/output.txt gives the expected results from the unit tests.

Test Configuration

  • Operating system: OS X Big Sur
  • Python version number: 3.10
  • Compiler with version number: gfortran 14.2.0

Checklist

  • Update the version number
  • Verify and update Zenodo information in .zenodo.json
  • doc tests pass locally
  • activate this branch on readthedocs (see CI below)
  • Upload the test distribution to the testPyPi server: https://test.pypi.org/project/apexpy/2.1.0rc7/
  • Contacted developers and users about the future release
  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules
  • Add a note to Changelog.rst, summarising the changes
  • Add yourself to AUTHORS.rst and .zenodo.json

aburrell and others added 30 commits November 12, 2024 14:38
Updated the use of `utcnow` in `test_Apex` and updated the extrapolation tests to reflect the new range of dates in IGRF-14.
Fixed the indentation for the zenodo.json file.
Fixed the target release version and date for the next release.
Updated the maintenance instructions in the documentation, making things easier for next time.
Reflected on degree of changes, and updated to a minor release.
Updated contact email.
Updated the link to the logo in the README.
Updated datetime to use `now` instead of `utcnow` and updated the docs to reflect the correct IGRF version.
Updated `np.product` to `np.prod`.
Updated the supported versions of Python and numpy to not have a cap.  Updated TODO link to include the migrated issue location.
Removed 'oldest-supported-numpy' to allow use of numpy 2.0.
Added a detection and switch for numpy 2.
Updated the main CI yaml to include:
- Tests for Python 3.12, and
- Test for NEP29.
Update the Python version for documentation tests.
Added a summary of the changes to the changelog.
Updated installation guide to remove numpy and Python version restrictions.
Updated the command line interface instructions to include the `python -m` preface.
Updated changelog to include documentation update.
Updated the way that the version is set in the code to make releases easier.
Updated the changelog to have a target release date.
Updated the documentation configuration to:
- have a docstring,
- get the version from the pyproject.toml file, and
- update the project year.
Updated version and docs dependencies.
Updated the version number in the meson.build and setup.cfg files.
Update the IGRF reference in the Authors file.
Added a reference tag to the authors section in the docs.
Added a citation guide for apexpy.
Ensure float inputs yield float outputs in mlon/mlt functions.  Also updated a docstring to be more informative.
Expanded the changelog to include more of the changes implemented.
docs/api.rst Outdated Show resolved Hide resolved
@aburrell aburrell requested a review from ljlamarche December 31, 2024 14:28
@aburrell
Copy link
Owner Author

@jklenzing, @pacesm, @indiajacksonphd, @sapols, @sandyfreelance, @Dartspacephysiker, @klaundal, @JouleCai, @smithara, @dcsozturk, @butala you all have actively developed packages that depend on apexpy. I am hoping to get this released at the end of the week, please feel free to take a look and let me know about any concerns.

Copy link
Collaborator

@ljlamarche ljlamarche left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I won't be able to test this for another few days, but I don't see any issues with a visual inspection of the code. I'll approve as soon as I can confirm it be haves as expected on my computer.

pyproject.toml Outdated Show resolved Hide resolved
@aburrell
Copy link
Owner Author

aburrell commented Jan 2, 2025

@ljlamarche the changes @jklenzing made here also remove the 3.12 sometimes-need for rust.

@eelcodoornbos
Copy link

eelcodoornbos commented Jan 4, 2025

For what it's worth, I've installed the rcv2.1.0 version on the machine that processes Swarm data for the timeline viewer (link to relevant code here), and it seems to be working well for 2025 Swarm data.
If I can make one suggestion, it is to include the name "apex" or "IGRF" or something similar in the error message inside the COFRM routine of magfld.f90 when calling for an epoch outside the IGRF time span. That would be very helpful for finding the cause of the error in a large codebase, especially when it is going to be maintained by people who have not done the initial development. The currently used label "COFRM" did not immediately trigger an association with this package/functionality for me.

@aburrell aburrell linked an issue Jan 6, 2025 that may be closed by this pull request
@aburrell
Copy link
Owner Author

aburrell commented Jan 6, 2025

Thanks for the suggestion and testing @eelcodoornbos. I made an issue for your suggestion, as to not delay the release of the updated code. It's #151 and I targeted it for the next minor release. Please let me know if you have more suggestions that would improve the codebase.

Copy link
Collaborator

@ljlamarche ljlamarche left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I can confirm that this works, both in python 3.12 with the latest version of numpy installed and in an older and well-used (read "lots of nonsense installed in it") python 3.10 environment with numpy 1.24. I think this should be good to publish! Thanks for pulling this much-needed maintenance together!

@aburrell aburrell merged commit fb1ae8a into main Jan 7, 2025
48 checks passed
@ljlamarche ljlamarche mentioned this pull request Jan 7, 2025
11 tasks
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.

BUG: Outdated IGRF model. BUG: CLI apexpy command not found
5 participants