-
Notifications
You must be signed in to change notification settings - Fork 196
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
Regression Testing: Use Mainline & CMake #2556
Conversation
0ebfee5
to
a7d384e
Compare
a7d384e
to
0344f10
Compare
0344f10
to
bab66a8
Compare
7795da6
to
b0114f0
Compare
a029daa
to
add01b7
Compare
811d2ab
to
1f5a864
Compare
1f5a864
to
b261fc5
Compare
e908a72
to
98be851
Compare
b631521
to
0a8a9fe
Compare
Isolate builds locally, so we don't overwrite a developer's setup anymore. This also avoids a couple of nifty problems that can occur by mixing those envs. Originally part of ECP-WarpX#2556
* Docs: `python3 -m pip` Use `python3 -m pip`: - works independent of PATH - always uses the right Python - is the recommended way to use `pip` * Dependencies: Python incl. venv Backported from ECP-WarpX#2556. Follow-up to ECP-WarpX#2653
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.
Thanks Axel, this looks great. I left a couple of minor comments and one question, but if you want to merge this in quickly, we can always fix typos etc. in a follow-up PR.
add_custom_target(install_pip | ||
${CMAKE_COMMAND} -E env PYWARPX_LIB_DIR=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} python3 -m pip wheel -v --use-feature=in-tree-build ${WarpX_SOURCE_DIR} | ||
COMMAND | ||
python3 -m pip install --force-reinstall -v ${PYINSTALLOPTIONS} ${CMAKE_BINARY_DIR}/*whl |
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.
Just to confirm: so we don't need a --user
here, correct?
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.
That's correct. Since #2653 we run out tests (incl. GNUmake before the current PR) in a virtual environment.
--user
was only needed when modifying the user-local Python environment. That was a bit unexpected/had side-effects and is solved now.
3429531
to
23aefbc
Compare
c47f428
to
3a8a935
Compare
- Add `cmakeSetupOpts =` - Add `-DWarpX_DIMS`: Not an AMReX convention, so we cannot rely on `dim = ...` - Skip building unneeded tools - Add `install_pip` target: Calling `python -m pip wheel .` and install re-using the build directory. This is mainly for our CI Python regression scrips, users and package managers should just use `python -m pip wheel .` and `... install *whl` directly.
Generalize executable globber in script
3a8a935
to
51c6598
Compare
* CI: mpi4py breaking setuptools API (ECP-WarpX#2713) setuptools keeps breaking its API, which currently breaks `mpi4py` installs. Until a new mpi4py release is cut, this will serve as a work-around * Regression Testing: Use Mainline & CMake (ECP-WarpX#2556) * Regression testing: Use mainline * Update WarpX-tests.ini - Add `cmakeSetupOpts =` - Add `-DWarpX_DIMS`: Not an AMReX convention, so we cannot rely on `dim = ...` - Skip building unneeded tools - Add `install_pip` target: Calling `python -m pip wheel .` and install re-using the build directory. This is mainly for our CI Python regression scrips, users and package managers should just use `python -m pip wheel .` and `... install *whl` directly. * LaserInjectionFromTXYEFile: General Exe Generalize executable globber in script * Docs: Update Regression Testing (CMake) * Azure: Ninja Builds (CMake) * Add x and r emitters (#131) * CI: mpi4py breaking setuptools API setuptools keeps breaking its API, which currently breaks `mpi4py` installs. Until a new mpi4py release is cut, this will serve as a work-around * added XPlaneEmitter and CI test for it * circleCI fix for mpi4py issue with new setuptools * try number 2 for fixing circleCI * try number 3 to fix circleCI * added ZCylinderEmitter and CI test for it * allow Dirichlet BCs in r when r_min != 0 with ES RZ simulations * added example file for a cylindrical vacuum TEC * allow either Dirichlet or Neumann BCs at rmax when rmin == 0 * temporary change to show that CI tests pass after changes to ES solver * added CI test of EB InfCylinderZ * changed default BC at rmax to Neumann for RZ simulations created from the setup_store * update changelog and version number plus first round of suggested changes from code review * Apply suggestions from code review Co-authored-by: Peter Scherpelz <[email protected]> * further requested review changes * change xsign and rsign to xdir and rdir * missed API change updates * Update bounds handling XPlaneEmitter Co-authored-by: Peter Scherpelz <[email protected]> * changed InfCylinderZ to CylinderZ and added optional z limits * Apply suggestions from code review Co-authored-by: Peter Scherpelz <[email protected]> Co-authored-by: Axel Huebl <[email protected]> Co-authored-by: Peter Scherpelz <[email protected]> Co-authored-by: Axel Huebl <[email protected]> Co-authored-by: Peter Scherpelz <[email protected]>
Add missing CMake options in `WarpX-tests.ini`. This must have been merged in parallel to when we modernized our regression tests end of last year. ECP-WarpX#2556
Add missing CMake options in `WarpX-tests.ini`. This must have been merged in parallel to when we modernized our regression tests end of last year. ECP-WarpX#2556
* Clean Pip Staging Directory The distutils staging (`build` -> `_tmppythonbuild`) directory that pip uses to collect build artifacts is not by default cleaned between multiple `pip` runs. This can be confusing when we recompile, because old `libwarpx*` files can be still in it that are not present in our own `build/lib/`. This cleans that staging directory before builds now. It also sets the whole `build_base` so that no artifact lands in the default, which was `build/`. So far, `bdist.linux-x86_64/` still was out-of-tree. * Python_background_mcc_1d: Add CMake Options Add missing CMake options in `WarpX-tests.ini`. This must have been merged in parallel to when we modernized our regression tests end of last year. #2556
Mainline
tolerance = 1.e-14
andparticle_tolerance
-> our own checksums now (rtol
inchecksum.evaluate
)self.use_ctools = 0
(default:1
)self.ftools =
Regression/prepare_file_ci.py
.github/workflows/source/test_ci_matrix.sh
dim =...
andaddToCompileString =
fromWarpX-tests.ini
CMake
development
cmake
re-configure step needed atm until we re-group runs/cache executables as in Avoid recompiling executable if already compiled in previous tests AMReX-Codes/regression_testing#69