diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index ae42492f..fd70ed32 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -46,4 +46,4 @@ Checklist - [ ] 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`` +- [ ] Add yourself to ``AUTHORS.rst`` and ``CITATION.cff`` diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index e0b6cea1..7757b7f9 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -39,5 +39,5 @@ jobs: - name: Check documentation links run: sphinx-build -b linkcheck docs dist/docs - - name: Load .zenodo.json to check for errors - run: python -c "import json; json.loads(open('.zenodo.json').read())" + - name: Validate CITATION.cff + uses: dieghernan/cff-validator@v4 diff --git a/.zenodo.json b/.zenodo.json deleted file mode 100644 index 49051aa2..00000000 --- a/.zenodo.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "license": { - "id": "MIT" - }, - "notes": "When referencing this package, please cite both the package DOI and the Apex Coordinates journal article: Emmert, J. T., A. D. Richmond, and D. P. Drob (2010), A computationally compact representation of Magnetic-Apex and Quasi-Dipole coordinates with smooth base vectors, J. Geophys. Res., 115(A8), A08322, doi:10.1029/2010JA015326.", - "references": [ - "Emmert, J. T., A. D. Richmond, and D. P. Drob (2010), A computationally compact representation of Magnetic-Apex and Quasi-Dipole coordinates with smooth base vectors, J. Geophys. Res., 115(A8), A08322, doi:10.1029/2010JA015326.", - "Richmond, A. D. (1995), Ionospheric Electrodynamics Using Magnetic Apex Coordinates, Journal of geomagnetism and geoelectricity, 47(2), 191–212, doi:10.5636/jgg.47.191." - ], - "keywords": [ - "Magnetic Apex Coordinates", - "Quasi Dipole Coordinates", - "MLT", - "Magnetic Local Time", - "Conversion", - "Coordinate Conversion", - "Converting", - "Ionosphere", - "Magnetic Field", - "Space Physics", - "Heliophysics" - ], - "creators": [ - { - "orcid": "0000-0002-8043-0953", - "name": "van der Meeren, Christer" - }, - { - "orcid": "0000-0001-5028-4943", - "name": "Laundal, Karl M." - }, - { - "orcid": "0000-0001-8875-9326", - "affiliation": "Naval Research Laboratory", - "name": "Burrell, Angeline G." - }, - { - "orcid": "0000-0001-7098-0524", - "name": "Lamarche, Leslie L." - }, - { - "orcid": "0000-0002-3487-3630", - "name": "Starr, Gregory" - }, - { - "orcid": "0000-0002-4621-3453", - "name": "Reimer, Ashton S." - }, - { - "orcid": "0000-0001-7955-4441", - "affiliation": "GFZ German Research Centre for Geosciences", - "name": "Morschhauser, Achim" - }, - { - "orcid": "0000-0001-9741-4063", - "affiliation": "GFZ German Research Centre for Geosciences", - "name": "Michaelis, Ingo" - }, - { - "orcid": "0000-0001-8321-6074", - "affiliation": "Goddard Space Flight Center", - "name": "Klenzing, Jeff" - } - ] -} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 8ce3e893..5e3bc82d 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,6 +6,7 @@ Changelog ------------------ * Updated GitHub Actions versions and removed unused wheel upload * Fixed broken doc link +* Added CITATION.cff as primary reference file, removed zenodo.json 2.1.0 (2025-01-07) ------------------ diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 00000000..ec0d7515 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,83 @@ +title: apexpy +version: 2.1.0 +cff-version: 1.2.0 +message: "When referencing this package, please cite both the package DOI and the Apex Coordinates journal article: Emmert, J. T., A. D. Richmond, and D. P. Drob (2010), A computationally compact representation of Magnetic-Apex and Quasi-Dipole coordinates with smooth base vectors, J. Geophys. Res., 115(A8), A08322, doi:10.1029/2010JA015326." +license: MIT +type: software +repository-code: "https://github.com/aburrell/apexpy" +authors: + - family-names: "Meeren" + given-names: "Christer" + name-particle: "van der" + orcid: "https://orcid.org/0000-0002-8043-0953" + - family-names: "Laundal" + given-names: "Karl M." + orcid: "https://orcid.org/0000-0001-5028-4943" + - family-names: "Burrell" + given-names: "Angeline G." + affiliation: "Naval Research Laboratory" + orcid: "https://orcid.org/0000-0001-8875-9326" + - family-names: "Lamarche" + given-names: "Leslie L." + orcid: "https://orcid.org/0000-0001-7098-0524" + - family-names: "Starr" + given-names: "Gregory" + orcid: "https://orcid.org/0000-0002-3487-3630" + - family-names: "Reimer" + given-names: "Ashton S." + orcid: "https://orcid.org/0000-0002-4621-3453" + - family-names: "Morschhauser" + given-names: "Achim" + affiliation: "GFZ German Research Centre for Geosciences" + orcid: "https://orcid.org/0000-0001-7955-4441" + - family-names: "Michaelis" + given-names: "Ingo" + affiliation: "GFZ German Research Centre for Geosciences" + orcid: "https://orcid.org/0000-0001-9741-4063" + - family-names: "Klenzing" + given-names: "Jeff" + affiliation: "Independent Researcher" + orcid: "https://orcid.org/0000-0001-8321-6074" +identifiers: + - type: doi + value: "10.5281/zenodo.1214206" +keywords: + - "Magnetic Apex Coordinates" + - "Quasi Dipole Coordinates" + - "MLT" + - "Magnetic Local Time" + - "Conversion" + - "Coordinate Conversion" + - "Converting" + - "Ionosphere" + - "Magnetic Field" + - "Space Physics" + - "Heliophysics" +references: + - authors: + - family-names: "Emmert" + given-names: "J. T." + - family-names: "Richmond" + given-names: "A. D." + - family-names: "Drob" + given-names: "D. P." + doi: "10.1029/2010JA015326" + title: "A computationally compact representation of Magnetic-Apex and Quasi-Dipole coordinates with smooth base vectors" + journal: "J. Geophys. Res." + scope: "Cite this paper alongside the package." + type: "article" + volume: "115" + issue: "A8" + pages: "A08322" + year: "2010" + - authors: + - family-names: "Richmond" + given-names: "A. D." + doi: "10.5636/jgg.47.191" + title: "Ionospheric Electrodynamics Using Magnetic Apex Coordinates" + type: "article" + journal: "Journal of Geomagnetism and Geoelectricity" + volume: "47" + issue: "2" + pages: "191–212" + year: "1995" diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index f90b1be5..c36cce6e 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -83,7 +83,7 @@ For merging, you should: 1. Include passing tests for your changes 2. Update/add documentation if relevant 3. Add a note to ``CHANGELOG.rst`` about the changes -4. Add yourself to ``AUTHORS.rst`` and ``.zenodo.json`` with your +4. Add yourself to ``AUTHORS.rst`` and ``CITATION.cff`` with your `ORCiD `_ Style Guidelines diff --git a/MANIFEST.in b/MANIFEST.in index d5274d60..fd619e95 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -7,6 +7,6 @@ recursive-include apexpy *.txt apexsh.dat meson.build include *.rst include *.md include LICENSE -include .zenodo.json +include CITATION.cff include pyproject.toml include .codeclimate.yml *.yml diff --git a/README.rst b/README.rst index 47e59293..8d8116ea 100644 --- a/README.rst +++ b/README.rst @@ -90,7 +90,7 @@ Badges - |docs| * - tests - | |ghactions| - | |coveralls| |codeclimate| + | |coveralls| | |scrutinizer| |codacy| * - package - | |version| |supported-versions| @@ -112,10 +112,6 @@ Badges :alt: Codacy Badge :target: https://app.codacy.com/gh/aburrell/apexpy?utm_source=github.com&utm_medium=referral&utm_content=aburrell/apexpy&utm_campaign=Badge_Grade -.. |codeclimate| image:: https://api.codeclimate.com/v1/badges/da1d972dee790da595f8/maintainability.svg - :target: https://codeclimate.com/github/aburrell/apexpy - :alt: CodeClimate Quality Status - .. |version| image:: https://img.shields.io/pypi/v/apexpy.svg?style=flat :alt: PyPI Package latest release :target: https://pypi.org/project/apexpy/ diff --git a/docs/conf.py b/docs/conf.py index 7df53ae2..cc381b02 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- """Configuration for apexpy documentation.""" -import json import os from pyproject_parser import PyProject @@ -21,8 +20,7 @@ master_doc = 'index' project = 'ApexPy' year = '2024' -zenodo = json.loads(open('../.zenodo.json').read()) -author = ' and '.join([zcreator['name'] for zcreator in zenodo['creators']]) +author = 'the apexpy team' copyright = ', '.join([year, author]) version = release = info.project['version'].base_version diff --git a/docs/maintenance.rst b/docs/maintenance.rst index 9745a374..9f840f77 100644 --- a/docs/maintenance.rst +++ b/docs/maintenance.rst @@ -1,15 +1,6 @@ Package Maintenance =================== -Providing Wheels with Releases ------------------------------- - -The Continuous Integration (CI) now saves wheels created for each tested Python -version and computer Operating System (OS) as artifacts. When preparing a new -PyPi release, these wheels may be downloaded from the release candidate. We -currently don't include them, because the wheels only work when the installation -environment mirrors the CI environment. - Updating IGRF ------------- @@ -18,7 +9,7 @@ is regularly updated to reflect the most recent changes to the Terrestrial magnetic field. apexpy currently uses IRGF-14 coefficients, which are provided in the ``apexpy/apexpy/igrf14coeff.txt`` file. To change or update the magnetic field coefficients used by apexpy, you need to update the python code, -then rerun the fortran program that builds ``apexpy/apexpy/apexsh.dat``. This +then rerun the fortran program that builds ``apexpy/apexpy/apexsh.dat``. This is what makes apexpy performant. For more details, see Emmert et al. [2010] [1]_. Assuming your new coefficient file has the same format, the process is simple: @@ -35,12 +26,12 @@ Assuming your new coefficient file has the same format, the process is simple: and ``epochgrid`` only has up to the year 2025, then add 2030 to ``epochgrid`` and then increment ``nepochgrid`` by 1. 5. Execute the ``apextest`` binary to generate the new ``apexsh.dat`` file. -6. Update the unit tests in the class ``TestApexMethodExtrapolateIGRF`` in +6. Update the unit tests in the class ``TestApexMethodExtrapolateIGRF`` in ``apexpy/apexpy/tests/test_Apex.py`` so that they check the methods are working correctly with dates after the latest IGRF epoch (i.e., if the latest epoch is 2025, set the test to initialize with the year 2030). You will have to update the hard-coded confirmation values used by these tests. -7. Commit all changes and create a pull request on GitHub to integrate your +7. Commit all changes and create a pull request on GitHub to integrate your branch with updated IGRF into the main repository. Modifying Fortran Source