Skip to content
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

Merged
merged 5 commits into from
Dec 29, 2021

Conversation

ax3l
Copy link
Member

@ax3l ax3l commented Nov 12, 2021

Mainline

  • use mainline repo
  • remove unused tools
    • unused entries tolerance = 1.e-14 and particle_tolerance -> our own checksums now (rtol in checksum.evaluate)
    • set self.use_ctools = 0 (default: 1)
    • expose and set self.ftools =
  • rebase after all fixes from run_test.sh: Own virtual env #2653 (comment) are in
  • modernize (can be a follow-up):
    • Regression/prepare_file_ci.py
    • .github/workflows/source/test_ci_matrix.sh
    • this will allow to remove old GNUmake-only keys like dim =... and addToCompileString = from WarpX-tests.ini

CMake

@ax3l ax3l added the component: tests Tests and CI label Nov 12, 2021
@ECP-WarpX ECP-WarpX deleted a comment from lgtm-com bot Nov 15, 2021
@ECP-WarpX ECP-WarpX deleted a comment from lgtm-com bot Nov 15, 2021
@ECP-WarpX ECP-WarpX deleted a comment from lgtm-com bot Nov 15, 2021
Regression/WarpX-tests.ini Outdated Show resolved Hide resolved
@ax3l ax3l force-pushed the ci-regressionViaCMake branch 2 times, most recently from 7795da6 to b0114f0 Compare November 16, 2021 16:08
run_test.sh Show resolved Hide resolved
@ax3l ax3l force-pushed the ci-regressionViaCMake branch 4 times, most recently from a029daa to add01b7 Compare November 18, 2021 19:51
@ax3l ax3l changed the title [WIP] Regression Testing: Use Mainline Regression Testing: Use Mainline Nov 18, 2021
@ax3l ax3l force-pushed the ci-regressionViaCMake branch 3 times, most recently from 811d2ab to 1f5a864 Compare November 21, 2021 01:25
@ax3l ax3l mentioned this pull request Dec 2, 2021
@ax3l ax3l changed the title Regression Testing: Use Mainline [WIP] Regression Testing: Use Mainline Dec 2, 2021
@ax3l ax3l force-pushed the ci-regressionViaCMake branch 3 times, most recently from e908a72 to 98be851 Compare December 6, 2021 21:16
@ax3l ax3l changed the title [WIP] Regression Testing: Use Mainline Regression Testing: Use Mainline Dec 7, 2021
lgiacome pushed a commit to lgiacome/WarpX that referenced this pull request Dec 16, 2021
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
lgiacome pushed a commit to lgiacome/WarpX that referenced this pull request Dec 16, 2021
* 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
@ax3l ax3l requested a review from EZoni December 20, 2021 18:52
Copy link
Member

@EZoni EZoni left a 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.

CMakeLists.txt Outdated Show resolved Hide resolved
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
Copy link
Member

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?

Copy link
Member Author

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.

Docs/source/developers/testing.rst Outdated Show resolved Hide resolved
@ax3l ax3l force-pushed the ci-regressionViaCMake branch 2 times, most recently from 3429531 to 23aefbc Compare December 21, 2021 00:39
@ax3l ax3l force-pushed the ci-regressionViaCMake branch 2 times, most recently from c47f428 to 3a8a935 Compare December 29, 2021 10:29
- 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
@ax3l ax3l merged commit 5f8f8c8 into ECP-WarpX:development Dec 29, 2021
@ax3l ax3l deleted the ci-regressionViaCMake branch December 29, 2021 14:21
roelof-groenewald added a commit to ModernElectron/WarpX that referenced this pull request Dec 30, 2021
* 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]>
ax3l added a commit to ax3l/WarpX that referenced this pull request Mar 10, 2022
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
ax3l added a commit to ax3l/WarpX that referenced this pull request Mar 10, 2022
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
ax3l added a commit that referenced this pull request Mar 10, 2022
* 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: tests Tests and CI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants