-
-
Notifications
You must be signed in to change notification settings - Fork 15
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
Make t and n optional arguments in store_checkpoint #178
Open
NiklasVin
wants to merge
10
commits into
precice:develop
Choose a base branch
from
NiklasVin:i73
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
041d207
Make t and n optional arguments in store_checkpoint
NiklasVin 4a865cf
Add integration tests
NiklasVin 3c776c6
Add changelog entry.
BenjaminRodenberg 803e64f
Remove checks for FEniCS and python3 (#182)
BenjaminRodenberg bdefd9a
Modify `setup.py` to avoid crash due to version 4.0.0 of `mpi4py` dur…
NiklasVin efc995d
Clarify installation procedure (#183)
NiklasVin c7d5924
Clarify how to merge in ReleaseGuide.md
BenjaminRodenberg f3d8189
bump version
BenjaminRodenberg a90f9ad
Include creation of post-tag bump like in python bindings.
BenjaminRodenberg debb274
Fix bare links.
BenjaminRodenberg File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,10 +19,39 @@ Before starting this process make sure to check that all relevant changes are in | |
|
||
a) If a pre-release is made: Directly hit the "Publish release" button in your Release Draft. Now you can check the artifacts (e.g. release on [PyPI](https://pypi.org/project/fenicsprecice/#history)) of the release. *Note:* As soon as a new tag is created github actions will take care of deploying the new version on PyPI using [this workflow](https://github.com/precice/fenics-adapter/actions?query=workflow%3A%22Upload+Python+Package%22). | ||
|
||
b) If this is a "real" release: As soon as one approving review is made, merge the release PR (`fenics-adapter-vX.X.X`) into `master`. | ||
b) If this is a "real" release: As soon as one approving review is made, merge the release PR (`fenics-adapter-vX.X.X`) into `master`. Use **Merge pull request**, don't squash the commits. | ||
|
||
5. Merge `master` into `develop` for synchronization of `develop`. | ||
|
||
6. If everything is in order up to this point then the new version can be released by hitting the "Publish release" button in your Release Draft. | ||
|
||
7. Now there should be a tag for the release. Re-run the [docker release workflow `build-docker.yml` via dispatch](https://github.com/precice/fenics-adapter/actions/workflows/build-docker.yml) such that the correct version is picked up by `versioneer`. Check the version in the container via `docker pull precice/fenics-adapter`, then `docker run -ti precice/fenics-adapter`, and inside the container `$ python3 -c "import fenicsprecice; print(fenicsprecice.__version__)"`. | ||
|
||
8. Add an empty commit (details see [here](https://github.com/precice/python-bindings/issues/109)) on master by running the steps: | ||
|
||
```bash | ||
git checkout master | ||
git commit --allow-empty -m "post-tag bump" | ||
git push | ||
``` | ||
|
||
Check that everything is in order via `git log`. Important: The `tag` and `origin/master` should not point to the same commit. For example: | ||
|
||
```bash | ||
commit 9d0d6bf978b2363c7ee041201df4322f930dd456 (HEAD -> master) | ||
Author: Benjamin Rodenberg <[email protected]> | ||
Date: Thu Oct 31 08:52:07 2024 +0100 | ||
|
||
post-tag bump | ||
|
||
commit 0d8eecb54b4bc582f33f5f38fca77dfe6161a237 (origin/master) | ||
Merge: f3abeb0 8ca28ae | ||
Author: Benjamin Rodenberg <[email protected]> | ||
Date: Thu Oct 31 08:41:36 2024 +0100 | ||
|
||
Merge pull request #184 from precice/fenics-adapter-v2.2.0 | ||
|
||
Release v2.2.0 | ||
``` | ||
|
||
For more details refer to [this issue](https://github.com/precice/python-bindings/issues/109) and [this issue](https://github.com/python-versioneer/python-versioneer/issues/217). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,6 @@ | ||
import os | ||
from setuptools import setup | ||
import versioneer | ||
import warnings | ||
|
||
# from https://stackoverflow.com/a/9079062 | ||
import sys | ||
if sys.version_info[0] < 3: | ||
raise Exception("fenicsprecice only supports Python3. Did you run $python setup.py <option>.? " | ||
"Try running $python3 setup.py <option>.") | ||
|
||
if sys.version_info[1] == 6 and sys.version_info[2] == 9: | ||
warnings.warn("It seems like you are using Python version 3.6.9. There is a known bug with this Python version " | ||
"when running the tests (see https://github.com/precice/fenics-adapter/pull/61). If you want to " | ||
"run the tests, please install a different Python version.") | ||
|
||
try: | ||
from fenics import * | ||
except ModuleNotFoundError: | ||
warnings.warn("No FEniCS installation found on system. Please install FEniCS and check the installation.\n\n" | ||
"You can check this by running the command\n\n" | ||
"python3 -c 'from fenics import *'\n\n" | ||
"Please check https://fenicsproject.org/download/ for installation guidance.\n" | ||
"The installation will continue, but please be aware that your installed version of the " | ||
"fenics-adapter might not work as expected.") | ||
|
||
this_directory = os.path.abspath(os.path.dirname(__file__)) | ||
with open(os.path.join(this_directory, 'README.md'), encoding='utf-8') as f: | ||
long_description = f.read() | ||
|
@@ -39,6 +16,6 @@ | |
author_email='[email protected]', | ||
license='LGPL-3.0', | ||
packages=['fenicsprecice'], | ||
install_requires=['pyprecice>=3.0.0.0', 'scipy', 'numpy>=1.13.3, <2', 'mpi4py'], | ||
install_requires=['pyprecice>=3.0.0.0', 'scipy', 'numpy>=1.13.3, <2', 'mpi4py<4'], | ||
test_suite='tests', | ||
zip_safe=False) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just tested this PR with the perpendicular flap. Generally, it seems to work. But I'm not so happy with the implications on the return value of the
retrieve_checkpoint
function: If I callthe second argument could be anything. The actual return value depends on how I called
store_checkpoint
before. This does not look right to me. Sorry to bring this up so late.Non-breaking solution
As a non-breaking solution, I can only imagine returning
None
, ift
orn
has not been provided previously. This results in always callingthis would be independent from what we did with
store_checkpoint
before.Breaking solutions
I think a more reasonable way would be the following:
and then
Meaning:
cp
would be a named tuple (see https://stackoverflow.com/questions/2970608/what-are-named-tuples-in-python). Scipy uses something similar inintegrate.solve_ivp
and calls it a "bunch object" (see https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html).This brings us to the next question: Why not just use the following API:
We would then have to allow for FEniCS Functions or simple float or int values in the
payload
. But this would be an implementation detail and the user just gets back whatever was provided in the original payload.Important about both proposed solutions: They would be breaking (and therefore, we can only release them with fenicsprecice 3.0.0).
What to do
I would suggest to implement and merge the non-breaking solution. We can open an issue describing the breaking solution and schedule it for version
3.0.0
(probably this will happen not too soon).