Skip to content

Commit e1bcd49

Browse files
authored
Merge pull request #65 from CosmicStudioSoftware/v1.1.0-RC
Release Candidate V1.1.0
2 parents 1919947 + 69a7631 commit e1bcd49

42 files changed

Lines changed: 701 additions & 298 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/docs.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,6 @@ jobs:
2929
pip install -r test_requirements.txt
3030
pip install -r requirements.txt
3131
32-
- name: Set up pysat
33-
run: |
34-
mkdir pysatData
35-
python -c "import pysat; pysat.params['data_dirs'] = 'pysatData'"
36-
3732
- name: Check documentation build
3833
run: sphinx-build -E -b html docs dist/docs
3934

.github/workflows/main.yml

Lines changed: 99 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,39 @@
55

66
name: Pytest with Flake8
77

8-
on: [pull_request, push]
8+
on:
9+
pull_request:
10+
push:
11+
schedule:
12+
- cron: "0 3 * * 1" # Runs 03:00 UT on Mondays
913

1014
jobs:
1115
build:
1216
strategy:
1317
fail-fast: false
1418
matrix:
15-
os: [ubuntu-latest]
16-
python-version: ["3.9", "3.10"]
17-
numpy_ver: [latest]
19+
os: ["ubuntu-latest"]
20+
python-version: ["3.9", "3.10", "3.11", "3.12"]
21+
numpy_ver: ["latest"]
1822
include:
19-
- python-version: "3.8"
20-
numpy_ver: "1.19"
23+
# Support different GA Mac environments
24+
- python-version: "3.9"
25+
os: "macos-13"
26+
numpy_ver: "latest"
27+
- python-version: "3.12"
28+
os: "macos-13"
29+
numpy_ver: "latest"
30+
- python-version: "3.9"
31+
os: "macos-latest"
32+
numpy_ver: "latest"
33+
- python-version: "3.12"
34+
os: "macos-latest"
35+
numpy_ver: "latest"
36+
# NEP29 compliance settings
37+
- python-version: "3.10"
38+
numpy_ver: "1.25"
2139
os: "ubuntu-latest"
40+
test_config: "NEP29"
2241

2342
name: Python ${{ matrix.python-version }} on ${{ matrix.os }} with numpy ${{ matrix.numpy_ver }}
2443
runs-on: ${{ matrix.os }}
@@ -29,6 +48,16 @@ jobs:
2948
with:
3049
python-version: ${{ matrix.python-version }}
3150

51+
- name: Install Windows-specific dependencies for non-pip install
52+
if: ${{ matrix.os == 'windows-latest' }}
53+
run: |
54+
choco install ninja mingw
55+
choco install rtools --no-progress
56+
echo "c:\rtools40\ucrt64\bin;" >> $env:GITHUB_PATH
57+
gfortran --version
58+
pip install flake8 meson-python pytest pytest-cov pytest-xdist scipy
59+
pip install "numpy>=1.19.5"
60+
3261
- name: Install standard dependencies
3362
run: |
3463
python -m pip install --upgrade pip
@@ -51,14 +80,70 @@ jobs:
5180
- name: Evaluate complexity
5281
run: flake8 . --count --exit-zero --max-complexity=10 --statistics
5382

54-
- name: Run OMMBV setup.py
83+
- name: Install on Linux
84+
if: ${{ matrix.os == 'ubuntu-latest' }}
85+
run: |
86+
pip install --upgrade-strategy only-if-needed .
87+
88+
- name: Install on MacOS-13
89+
if: ${{ matrix.os == 'macos-13' }}
5590
run: |
56-
python setup.py develop
91+
brew reinstall gcc@14
92+
CC=/usr/local/bin/gcc-14 pip install --upgrade-strategy only-if-needed .
5793
58-
- name: Run unit and integration tests
59-
run: pytest --cov=OMMBV/
94+
- name: Install on MacOS-Latest
95+
if: ${{ matrix.os == 'macos-latest' }}
96+
run: |
97+
brew reinstall gcc@14
98+
CC=/opt/homebrew/bin/gcc-14 pip install --upgrade-strategy only-if-needed .
99+
100+
- name: Install on Windows
101+
if: ${{ matrix.os == 'windows-latest' }}
102+
run: |
103+
meson setup build
104+
ninja -j 2 -C build
105+
cd build
106+
meson install --destdir=${{ env.Python3_ROOT_DIR }}
60107
61-
- name: Publish results to coveralls
62-
env:
63-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
64-
run: coveralls --rcfile=setup.cfg --service=github
108+
- name: Run unit and integration tests Mac/Linux
109+
if: ${{ matrix.os != 'windows-latest' }}
110+
run: |
111+
rm -rf ./OMMBV
112+
mkdir new_dir
113+
cd new_dir
114+
coverage run -m --source=OMMBV --omit=__init__.py pytest ../tests
115+
coverage report
116+
coverage xml
117+
mkdir ../OMMBV
118+
mv coverage.xml ../OMMBV/coverage.xml
119+
120+
- name: Run unit and integration tests on Windows
121+
if: ${{ matrix.os == 'windows-latest' }}
122+
run: |
123+
rm ./OMMBV -r -force
124+
cd ..
125+
pytest ./OMMBV/tests -v --cov
126+
127+
coverage report
128+
coverage xml
129+
mv coverage.xml .\OMMBV\.
130+
131+
- name: Publish results to coveralls upon success
132+
uses: coverallsapp/github-action@v2
133+
with:
134+
github-token: ${{ secrets.GITHUB_TOKEN }}
135+
flag-name: run=${{ join(matrix.*, '-') }}
136+
parallel: true
137+
format: cobertura
138+
139+
finish:
140+
name: Finish Coverage Analysis
141+
needs: build
142+
if: ${{ always() }}
143+
runs-on: ubuntu-latest
144+
steps:
145+
- name: Coveralls Finished
146+
uses: coverallsapp/github-action@v2
147+
with:
148+
github-token: ${{ secrets.GITHUB_TOKEN }}
149+
parallel-finished: true

.readthedocs.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
# Required
66
version: 2
77

8+
build:
9+
os: ubuntu-22.04
10+
tools:
11+
python: "3.10"
12+
13+
814
# Build documentation in the docs/ directory with Sphinx
915
sphinx:
1016
configuration: docs/conf.py
@@ -20,7 +26,6 @@ formats:
2026
# Optionally set the version of Python and requirements
2127
# required to build your docs
2228
python:
23-
version: 3.7
2429
install:
2530
- requirements: docs/requirements.txt
2631

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22
All notable changes to this project will be documented in this file.
33
This project adheres to [Semantic Versioning](http://semver.org/).
44

5+
## [1.1.0] - 2025-04-07
6+
- Switched away from distutils to Meson for build system
7+
- Updated coupling to coveralls
8+
- Updated package version for security issue in sphinx
9+
- Updated online unit testing
10+
- Updated to IGRF14
11+
- Updated documentation
12+
- Updated unit tests to latest standards
13+
514
## [1.0.1] - 2022-01-04
615
- Added pyproject.toml to support systems without numpy.
716
- Modified manifest.ini to include version.txt

CODE_OF_CONDUCT.md

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
In the interest of fostering an open and welcoming environment, we as
66
contributors and maintainers pledge to making participation in our project and
7-
our community a harassment-free experience for everyone, regardless of age, body
8-
size, disability, ethnicity, sex characteristics, gender identity and expression,
9-
level of experience, education, socio-economic status, nationality, personal
10-
appearance, race, religion, or sexual identity and orientation.
7+
our community a harassment-free experience for everyone, regardless of age,
8+
body size, disability, ethnicity, gender identity and expression, level of
9+
experience, nationality, personal appearance, race, religion, or sexual
10+
identity and orientation.
1111

1212
## Our Standards
1313

@@ -23,13 +23,13 @@ include:
2323
Examples of unacceptable behavior by participants include:
2424

2525
* The use of sexualized language or imagery and unwelcome sexual attention or
26-
advances
26+
advances
2727
* Trolling, insulting/derogatory comments, and personal or political attacks
2828
* Public or private harassment
2929
* Publishing others' private information, such as a physical or electronic
30-
address, without explicit permission
30+
address, without explicit permission
3131
* Other conduct which could reasonably be considered inappropriate in a
32-
professional setting
32+
professional setting
3333

3434
## Our Responsibilities
3535

@@ -48,29 +48,35 @@ threatening, offensive, or harmful.
4848
This Code of Conduct applies both within project spaces and in public spaces
4949
when an individual is representing the project or its community. Examples of
5050
representing a project or community include using an official project e-mail
51-
address, posting via an official social media account, or acting as an appointed
52-
representative at an online or offline event. Representation of a project may be
53-
further defined and clarified by project maintainers.
51+
address, posting via an official social media account, or acting as an
52+
appointed representative at an online or offline event. Representation of a
53+
project may be further defined and clarified by project maintainers.
5454

5555
## Enforcement
5656

5757
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58-
reported by contacting the project team at pysat.developers@gmail.com. All
59-
complaints will be reviewed and investigated and will result in a response that
60-
is deemed necessary and appropriate to the circumstances. The project team is
61-
obligated to maintain confidentiality with regard to the reporter of an incident.
62-
Further details of specific enforcement policies may be posted separately.
58+
reported by contacting the project team at contact@cosmicstudio.io. The
59+
pysat project team will review and investigate all complaints, and will respond
60+
in a way that it deems appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an
62+
incident. Further details of specific enforcement policies may be posted
63+
separately.
6364

6465
Project maintainers who do not follow or enforce the Code of Conduct in good
6566
faith may face temporary or permanent repercussions as determined by other
6667
members of the project's leadership.
6768

6869
## Attribution
6970

70-
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71-
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
71+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
72+
version 1.4, available at
73+
[https://contributor-covenant.org/version/1/4][version]
7274

73-
[homepage]: https://www.contributor-covenant.org
75+
## FAQ
7476

7577
For answers to common questions about this code of conduct, see
76-
https://www.contributor-covenant.org/faq
78+
[https://www.contributor-covenant.org/faq][faq]
79+
80+
[homepage]: https://contributor-covenant.org
81+
[version]: https://contributor-covenant.org/version/1/4/
82+
[faq]: https://www.contributor-covenant.org/faq

0 commit comments

Comments
 (0)