[Git][debian-gis-team/pysolid][upstream] New upstream version 0.3.4
Antonio Valentino (@antonio.valentino)
gitlab at salsa.debian.org
Sat Jan 24 18:37:01 GMT 2026
Antonio Valentino pushed to branch upstream at Debian GIS Project / pysolid
Commits:
d1e3f447 by Antonio Valentino at 2026-01-24T18:26:53+00:00
New upstream version 0.3.4
- - - - -
6 changed files:
- .circleci/config.yml
- .github/workflows/build-and-publish-to-pypi.yml
- README.md
- src/pysolid/solid.for
- tests/grid.py
- tests/point.py
Changes:
=====================================
.circleci/config.yml
=====================================
@@ -14,7 +14,6 @@ workflows:
jobs:
- build-and-test
-
jobs:
build-and-test: # This is the name of the job, feel free to change it to better match what you're trying to do!
# These next lines defines a Docker executors: https://circleci.com/docs/2.0/executor-types/
@@ -29,6 +28,8 @@ jobs:
PYSOLID_HOME: /root/tools/PySolid
user: root
working_directory: /root/tools/PySolid
+ resource_class: medium
+
# Checkout the code as the first step. This is a dedicated CircleCI step.
steps:
- checkout
@@ -36,14 +37,15 @@ jobs:
name: Setting Environment with Miniforge
command: |
apt update
- apt-get update --yes && apt-get upgrade --yes
+ apt-get update && apt-get upgrade --yes
apt-get install --yes wget git
- # download and install miniforge
+ # install miniforge (https://github.com/conda-forge/miniforge?tab=readme-ov-file#as-part-of-a-ci-pipeline)
mkdir -p ${HOME}/tools
cd ${HOME}/tools
- wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
- bash Miniforge3-Linux-x86_64.sh -b -p ${HOME}/tools/miniforge
- ${HOME}/tools/miniforge/bin/mamba init bash
+ wget -O Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
+ bash Miniforge3.sh -b -p ${HOME}/tools/miniforge
+ source "${HOME}/tools/miniforge/etc/profile.d/conda.sh"
+ source "${HOME}/tools/miniforge/etc/profile.d/mamba.sh"
# modify/export env var PATH to BASH_ENV to be shared across run steps
echo 'export PATH=${CONDA_PREFIX}/bin:${PATH}' >> ${BASH_ENV}
=====================================
.github/workflows/build-and-publish-to-pypi.yml
=====================================
@@ -17,24 +17,22 @@ jobs:
fail-fast: false
matrix:
# skip building wheel for windows as it's not working yet
- os: [ubuntu-latest, macos-13] #windows-2019
+ os: [ubuntu-latest, macos-latest] #windows-2019
steps:
- uses: actions/checkout at v4
with:
fetch-depth: 0
- - name: Provide gfortran (macOS-13)
+ - name: Symlink gfortran (macOS)
if: runner.os == 'macOS'
run: |
- # https://github.com/actions/virtual-environments/issues/2524
- # https://github.com/cbg-ethz/dce/blob/master/.github/workflows/pkgdown.yaml
- sudo ln -s /usr/local/bin/gfortran-13 /usr/local/bin/gfortran
- sudo mkdir /usr/local/gfortran
- sudo ln -s /usr/local/Cellar/gcc at 13/*/lib/gcc/13 /usr/local/gfortran/lib
+ brew install gcc
+ fc_files=( $(brew --prefix)/bin/gfortran-* )
+ sudo ln -sf "${fc_files[@]: -1}" /usr/local/bin/gfortran
gfortran --version
- - name: Provide gfortran (Windows)
+ - name: Symlink gfortran (Windows)
if: runner.os == 'Windows'
uses: msys2/setup-msys2 at v2
@@ -44,11 +42,11 @@ jobs:
echo "[build]`ncompiler=mingw32" | Out-File -Encoding ASCII ~/pydistutils.cfg
- name: Build wheels
- uses: pypa/cibuildwheel at v2.19.1
+ uses: pypa/cibuildwheel at v3.3.1
env:
# Disable building for PyPy and 32bit.
CIBW_SKIP: pp* *-win32 *-manylinux_i686
- CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET="13.0"
+ CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET="15.0"
CIBW_BEFORE_BUILD_MACOS: python -m pip install --upgrade pip
# Package the DLL dependencies in the wheel for windows (done by default for the other platforms).
# delvewheel cannot mangle the libraries, stripping does not work.
=====================================
README.md
=====================================
@@ -48,7 +48,7 @@ conda install -c conda-forge fortran-compiler --file PySolid/requirements.txt --
conda create --name pysolid fortran-compiler --file PySolid/requirements.txt --file PySolid/tests/requirements.txt
conda activate pysolid
-# option 3: have a Fortran compiler already installed and use pip to install the rest dependencies
+# option 3: have a Fortran compiler already installed and use pip to install the dependencies
python -m pip install -r PySolid/requirements.txt -r PySolid/tests/requirements.txt
```
@@ -56,15 +56,16 @@ python -m pip install -r PySolid/requirements.txt -r PySolid/tests/requirements.
```bash
# option 1: use pip to install pysolid into the current environment
-python -m pip install PySolid
+python -m pip install ./PySolid
# option 2: use pip to install pysolid in develop mode (editable) into the current environment
-python -m pip install -e PySolid
+python -m pip install -e ./PySolid
# option 3: manually compile the Fortran code and setup environment variable
cd PySolid/src/pysolid
f2py -c -m solid solid.for
-export PYTHONPATH=${PYTHONPATH}:~/tools/PySolid
+# Replace <path-to-folder> with proper path to PySolid main folder
+export PYTHONPATH=${PYTHONPATH}:<path-to-folder>/PySolid/src
```
##### d. Test the installation
=====================================
src/pysolid/solid.for
=====================================
@@ -3,8 +3,8 @@
*** Author: Dennis Milbert, 2018-06-01. The code is available at:
*** http://geodesyworld.github.io/SOFTS/solid.htm and can be downloaded as:
*** wget http://geodesyworld.github.io/SOFTS/solid.for.txt -O solid.for
-*** The code is based on dehanttideinel.f provided by V. Dehant, S. Mathews,
-*** J. Gipson and C. Bruyninx. The latest version of dehanttideinel.f and its
+*** The code is based on dehanttideinel.f provided by V. Dehant, S. Mathews,
+*** J. Gipson and C. Bruyninx. The latest version of dehanttideinel.f and its
*** dependent subroutines can be download from IERS conventions website as:
*** wget -r -l1 --no-parent -R "index.html*" -nH --cut-dirs=3 https://iers-conventions.obspm.fr/content/chapter7/software/dehanttideinel
*** Sep 2020: modify solid() to solid_point/grid() as subroutines, Z. Yunjun and S. Sangha.
@@ -12,7 +12,7 @@
subroutine solid_grid(iyr,imo,idy,ihh,imm,iss,
* glad0,steplat,nlat,glod0,steplon,nlon,tide_e,tide_n,tide_u)
-
+
*** calculate solid earth tides (SET) for one spatial grid given the date/time
*** Arguments: iyr/imo/idy/ihh/imm/iss - int, date/time for YYYY/MM/DD/HH/MM/SS
*** glad0/glad1/steplat - float, north(Y_FIRST)/south/step(negative) in deg
@@ -154,7 +154,7 @@
*** end of processing and flag for leap second
- if(lflag) then
+ if(.false.) then
print *, 'Mild Warning -- time crossed leap second table'
print *, ' boundaries. Boundary edge value used instead'
endif
@@ -293,7 +293,7 @@
*** end of processing and flag of leap second
- if(lflag) then
+ if(.false.) then
print *, 'Mild Warning -- time crossed leap second table'
print *, ' boundaries. Boundary edge value used instead'
endif
@@ -488,9 +488,9 @@
* The code below is commented to prevent restoring deformation
* due to permanent tide. All the code above removes
* total tidal deformation with conventional Love numbers.
-* The code above realizes a conventional tide free crust (i.e. ITRF).
+* The code above realizes a conventional tide free crust (i.e. ITRF).
* This does NOT conform to Resolution 16 of the 18th General Assembly
-* of the IAG (1983). This resolution has not been implemented by
+* of the IAG (1983). This resolution has not been implemented by
* the space geodesy community in general (c.f. IERS Conventions 2003).
*-----------------------------------------------------------------------
@@ -1235,16 +1235,16 @@
implicit double precision(a-h,o-z)
double precision u,v,w,ra,az,va
-
+
s2=u*u+v*v
r2=s2+w*w
-
+
s =dsqrt(s2)
ra=dsqrt(r2)
-
+
az=datan2(v,u)
va=datan2(w,s)
-
+
return
end
*-----------------------------------------------------------------------
@@ -1290,38 +1290,38 @@
end
*-----------------------------------------------------------------------
subroutine rot1(theta,x,y,z,u,v,w)
-
+
*** rotate coordinate axes about 1 axis by angle of theta radians
*** x,y,z transformed into u,v,w
implicit double precision(a-h,o-z)
double precision theta,x,y,z,u,v,w
-
+
s=dsin(theta)
c=dcos(theta)
-
+
u=x
v=c*y+s*z
w=c*z-s*y
-
+
return
end
*-----------------------------------------------------------------------
subroutine rot3(theta,x,y,z,u,v,w)
-
+
*** rotate coordinate axes about 3 axis by angle of theta radians
*** x,y,z transformed into u,v,w
implicit double precision(a-h,o-z)
double precision theta,x,y,z,u,v,w
-
+
s=dsin(theta)
c=dcos(theta)
-
+
u=c*x+s*y
v=c*y-s*x
w=z
-
+
return
end
************************************************************************
@@ -1559,9 +1559,9 @@
implicit double precision(a-h,o-z)
double precision tsec
- !*** upper limit, leap second table, 2024jun28
+ !*** upper limit, leap second table, 2025dec28
!*** lower limit, leap second table, 1972jan01
- parameter(MJDUPPER=60489)
+ parameter(MJDUPPER=61037)
parameter(MJDLOWER=41317)
!*** leap second table limit flag
@@ -1610,7 +1610,7 @@
return
endif
-***** http://maia.usno.navy.mil/ser7/tai-utc.dat
+***** https://maia.usno.navy.mil/ser7/tai-utc.dat
*** 1972 JAN 1 =JD 2441317.5 TAI-UTC= 10.0s
*** 1972 JUL 1 =JD 2441499.5 TAI-UTC= 11.0s
*** 1973 JAN 1 =JD 2441683.5 TAI-UTC= 12.0s
@@ -1642,7 +1642,7 @@
***** other leap second references at:
***** http://hpiers.obspm.fr/eoppc/bul/bulc/Leap_Second_History.dat
***** http://hpiers.obspm.fr/eoppc/bul/bulc/bulletinc.dat
-***** File expires on 28 June 2024
+***** File expires on 28 December 2025
*** test against newest leaps first
=====================================
tests/grid.py
=====================================
@@ -64,6 +64,7 @@ if __name__ == '__main__':
assert np.allclose(tide_e[::80, ::100], tide_e_80_100)
assert np.allclose(tide_n[::80, ::100], tide_n_80_100)
assert np.allclose(tide_u[::80, ::100], tide_u_80_100)
+ print('Pass.')
# plot
out_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'pic'))
=====================================
tests/point.py
=====================================
@@ -63,6 +63,7 @@ if __name__ == '__main__':
assert np.allclose(tide_e[::8000], tide_e_8000)
assert np.allclose(tide_n[::8000], tide_n_8000)
assert np.allclose(tide_u[::8000], tide_u_8000)
+ print('Pass.')
# plot
out_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'pic'))
View it on GitLab: https://salsa.debian.org/debian-gis-team/pysolid/-/commit/d1e3f44750485416f87cd438b72ae84d9fd10ee1
--
View it on GitLab: https://salsa.debian.org/debian-gis-team/pysolid/-/commit/d1e3f44750485416f87cd438b72ae84d9fd10ee1
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20260124/d57d7088/attachment-0001.htm>
More information about the Pkg-grass-devel
mailing list