Skip to content

Commit ba5a9c7

Browse files
authored
Merge branch 'v2.17.x' into uw2-pixi
2 parents af6ec6b + b93b098 commit ba5a9c7

File tree

38 files changed

+742
-412
lines changed

38 files changed

+742
-412
lines changed

.github/workflows/conda-build-test.yml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,19 @@ jobs:
2222
- name: Set up Micromamba
2323
uses: mamba-org/setup-micromamba@v2
2424
with:
25-
environment-file: conda/environment.yml
25+
environment-file: conda/environment.yaml
26+
environment-name: uw-2.17
27+
generate-run-shell: true
2628
cache-environment: true
27-
cache-downloads: true
28-
init-shell: bash
29+
#cache-downloads: false
2930

30-
- name: Compile the code, run tests
31-
shell: micromamba-shell {0}
31+
- name: compile and pytests
3232
run: |
33-
micromamba list
34-
pip list
35-
pip install .
33+
micromamba env list
34+
micromamba list -v
35+
env
36+
pip install . --no-build-isolation
3637
pytest ./docs/pytests/tests.py ./docs/pytests/test_examples.py
38+
shell: micromamba-shell {0}
39+
# name: Compile the code, run tests
40+
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI
2+
3+
on: push
4+
5+
jobs:
6+
build:
7+
name: Build distribution 📦
8+
runs-on: ubuntu-latest
9+
10+
steps:
11+
- uses: actions/checkout@v4
12+
with:
13+
persist-credentials: false
14+
- name: Set up Micromamba
15+
uses: mamba-org/setup-micromamba@v2
16+
with:
17+
environment-file: conda/environment.yaml
18+
environment-name: uw-2.17
19+
generate-run-shell: true
20+
cache-environment: true
21+
#cache-downloads: false
22+
- name: Form tarball to publish
23+
run: |
24+
micromamba env list
25+
micromamba list -v
26+
env
27+
python3 setup.py sdist
28+
shell: micromamba-shell {0}
29+
- name: Store the distribution packages
30+
uses: actions/upload-artifact@v4
31+
with:
32+
name: python-package-distributions
33+
path: dist/
34+
35+
publish-to-pypi:
36+
name: >-
37+
Publish Python 🐍 distribution 📦 to PyPI
38+
if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
39+
needs:
40+
- build
41+
runs-on: ubuntu-latest
42+
environment:
43+
name: pypi
44+
url: https://pypi.org/p/underworld # Replace <package-name> with your PyPI project name
45+
permissions:
46+
id-token: write # IMPORTANT: mandatory for trusted publishing
47+
48+
steps:
49+
- name: Download all the dists
50+
uses: actions/download-artifact@v4
51+
with:
52+
name: python-package-distributions
53+
path: dist/
54+
- name: Publish distribution 📦 to PyPI
55+
uses: pypa/gh-action-pypi-publish@release/v1
56+
57+
## Currently need access from jmansour to this testpypi project
58+
# publish-to-testpypi:
59+
# name: Publish Python 🐍 distribution 📦 to TestPyPI
60+
# needs:
61+
# - build
62+
# runs-on: ubuntu-latest
63+
64+
# environment:
65+
# name: testpypi
66+
# url: https://test.pypi.org/p/testuw
67+
68+
# permissions:
69+
# id-token: write # IMPORTANT: mandatory for trusted publishing
70+
71+
# steps:
72+
# - name: Download all the dists
73+
# uses: actions/download-artifact@v4
74+
# with:
75+
# name: python-package-distributions
76+
# path: dist/
77+
# - name: Publish distribution 📦 to TestPyPI
78+
# uses: pypa/gh-action-pypi-publish@release/v1
79+
# with:
80+
# repository-url: https://test.pypi.org/legacy/
81+
# password: ${{ secrets.TEST_PYPI_API_TOKEN }}

CHANGES.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
CHANGES: Underworld2
22
=======================
3+
Release 2.17 [2025-07-08]
4+
-------------------------
5+
New:
6+
* Move container definitions to `./docs/development/container/`. Podman container is now preferred over docker and Dockerfiles.
7+
8+
Changes:
9+
* UWGeodynamics - Badlands coupling imporvements. See [blog](https://www.underworldcode.org/new-features-of-the-surface-coupling-framework-in-underworld-2/)
10+
11+
Fixes:
12+
* Fix for Badlands coupling - Tectonic velocity now evaluated at surface, rather than Badlands basement recGrid. #725
13+
* UWGeo checkpoint times fix, e5d9ba1
14+
315
Release 2.16 [2025-03-03]
416
---------------------------
517
New:

Installation.rst

Lines changed: 50 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,63 @@
11
Underworld Installation
22
=======================
33

4-
Detailed instructions for supported HPC platforms may be found at `docs/install_guides
5-
<https://github.com/underworldcode/underworld2/tree/master/docs/install_guides>`_. You may also find useful usage information (on docker/hpc/compilation/other) on the Underworld blog.
4+
Underworld 2 can be installed in multiple ways, using the container (preferred), from source code (advanced). It can also be installed on HPC clusters. These installation methods are documented below.
5+
6+
Container
7+
----------
8+
9+
Containers provide a type of lightweight virtualisation. The Underworld 2 container includes the latest version of Underworld 2 with all the dependencies packages and is the preferred method for usage on personal computers.
10+
11+
You will first need to install *podman* (recommended) or *docker* on your system. Both these tools can be used from the command line, but new users may wish to use the GUI Desktop versions to get started with it.
12+
13+
The following script is the recommended way for launching the container with *podman*.
14+
15+
.. code:: bash
16+
17+
sh ./docs/development/container/launch-container.sh
18+
19+
This will take a moment to load up - be patient please. What you'll get is a container running a functioning Jupyterlab environment with the latest Underworld 2 installed at `localhost:20000 <localhost:20000>`_. A directory called **uw_space** will be create in the user's home directory which is (volume) mapped into the container, this acts as a tranfser directory for sending files to and from the container.
20+
21+
Remember to take note of the Jupyterlab token from the start up messages. It will look something like.
22+
23+
.. code:: bash
24+
25+
http://127.0.0.1:8888/lab?token=e79006f4e441cf781440a9ea0cad8cf2a0dfd3b9c236a0ca
26+
27+
The value must be copy-pasted into the jupyterlab launch page the first time.
28+
29+
30+
.. podman run -p 8888:8888 -v uw2-vol:/home/jovyan/workspace underworldcode/underworld2
31+
..
32+
.. Navigate to `localhost:8888 <localhost:8888>`_ to see the notebooks. Note that you can also use particular versions of Underworld using any of the Docker image tags. For example:
33+
..
34+
.. .. code:: bash
35+
..
36+
.. docker run -p 8888:8888 underworldcode/underworld2:2.7.1b
37+
..
38+
.. By default (ie, if no tag is provided), docker will use the latest stable release. A list of available tags may be found on `our DockerHub page <https://hub.docker.com/r/underworldcode/underworld2/tags>`_. Tags can also be accessed in Kitematic via the ellipsis button on container search results.
39+
..
40+
.. A number of useful docker commands are provided within the `Underworld cheat-sheet <https://github.com/underworldcode/underworld2/tree/master/docs/cheatsheet/cheatsheet.pdf>`_.
41+
..
42+
.. see old `Notes on Installing Docker`_) and then you may install Underworld via Docker. Docker can be driven from the command line, but new users may wish to use the Docker Kitematic GUI instead for ease. Simply search for 'underworldcode/underworld2' within Kitematic, and then click 'CREATE' to launch a container. You will eventually wish to modify your container settings (again through Kitematic) to enable local folder volume mapping, which will allow you to access your local drives from within your container.
43+
..
44+
.. For Linux users, and those who prefer the command line, the following minimal command should be sufficient to access the Underworld2 Jupyter Notebook examples:
45+
..
46+
647

748
We welcome feedback and support requests at our `github issue tracker <https://github.com/underworldcode/underworld2/issues>`_.
849

50+
HPC Installation
51+
----------------
52+
53+
Detailed instructions for supported HPC platforms may be found at `docs/install_guides
54+
<https://github.com/underworldcode/underworld2/tree/master/docs/install_guides>`_. You may also find useful usage information (on docker/hpc/compilation/other) on the Underworld blog.
55+
956
Native Installation
1057
-------------------
1158

1259
Requirements
13-
~~~~~~~~~~~~
60+
++++++++++++
1461

1562
Build environment
1663
*****************
@@ -70,27 +117,6 @@ Note that some tests also require *matplotlib*
70117
pytest -vvv ./docs/pytests
71118
72119
73-
Docker
74-
------
75-
76-
Docker is a type of lightweight virtualisation, and is the preferred method for Underworld usage on personal computers. You will first need to install Docker on your system (see `Notes on Installing Docker`_) and then you may install Underworld via Docker. Docker can be driven from the command line, but new users may wish to use the Docker Kitematic GUI instead for ease. Simply search for 'underworldcode/underworld2' within Kitematic, and then click 'CREATE' to launch a container. You will eventually wish to modify your container settings (again through Kitematic) to enable local folder volume mapping, which will allow you to access your local drives from within your container.
77-
78-
For Linux users, and those who prefer the command line, the following minimal command should be sufficient to access the Underworld2 Jupyter Notebook examples:
79-
80-
.. code:: bash
81-
82-
docker run -p 8888:8888 underworldcode/underworld2
83-
84-
Navigate to `localhost:8888 <localhost:8888>`_ to see the notebooks. Note that you can also use particular versions of Underworld using any of the Docker image tags. For example:
85-
86-
.. code:: bash
87-
88-
docker run -p 8888:8888 underworldcode/underworld2:2.7.1b
89-
90-
By default (ie, if no tag is provided), docker will use the latest stable release. A list of available tags may be found on `our DockerHub page <https://hub.docker.com/r/underworldcode/underworld2/tags>`_. Tags can also be accessed in Kitematic via the ellipsis button on container search results.
91-
92-
A number of useful docker commands are provided within the `Underworld cheat-sheet <https://github.com/underworldcode/underworld2/tree/master/docs/cheatsheet/cheatsheet.pdf>`_.
93-
94120
Notes on Installing Docker
95121
~~~~~~~~~~~~~~~~~~~~~~~~~~
96122

LICENSE.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ Underworld has been in development since 2003. It has always been released under
1616

1717
### Copyright holders
1818

19-
Copyright Australian National University, 2020-2023
19+
Copyright Australian National University, 2020-2025
20+
Copyright The University of Sydney, 2020-2025
2021
Copyright Melbourne University, 2014-2021
2122
Copyright Monash University, 2003-2021
2223
Copyright VPAC, 2003-2009

clean.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
set -x # show commands
44

55
rm -fr build
6-
find src/ -name \*.so -exec rm {} +
7-
find src/ -name __pycache__ -exec rm -r {} +
8-
find src/ -name '*.egg-info' -exec rm -r {} +
6+
7+
find src -name '*.so' -exec rm {} +
8+
find src -name '*.__pycache__' -exec rm -r {} +
9+
find src -name '*.egg-info' -exec rm -r {} +
910
rm -rf .pytest_cache
1011
## To remove untracked git files
1112
#git clean -dfX ; git clean -dfx
Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
1-
name: uw-2.17.x
1+
name: uw-2.17
22
channels:
33
- conda-forge
44
dependencies:
5-
- python==3.11
5+
- python==3.12
6+
- numpy<2
67
- compilers
78
- pkg-config
8-
- libxml2
9+
- libxml2-devel
10+
- make
911
- cmake
1012
- swig>=4.0.0
1113
- ninja
1214
- pint
1315
- mpich
1416
- petsc==3.21.5
1517
- mesalib
16-
- numpy<2
18+
- git
1719
- scipy
1820
- mpi4py
1921
- h5py=*=mpi*
@@ -25,6 +27,7 @@ dependencies:
2527
- pip
2628
- pip:
2729
- lavavu
30+
- lavavu-osmesa
2831
#- badlands comment out for the following for now
2932
- "badlands @ git+https://github.com/julesghub/badlands.git@julesghub/meson-build#subdirectory=badlands"
3033

0 commit comments

Comments
 (0)