Skip to content

Reconcile CONTRIBUTING.md and developer_guide.rst on GFE/pFUnit setup - #134

Merged
nicholascanovas merged 1 commit into
nasa:mainfrom
djkees:up/gfe-pfunit-setup
Sep 25, 2026
Merged

nicholascanovas merged 1 commit into
nasa:mainfrom
djkees:up/gfe-pfunit-setup

Conversation

@djkees

@djkees djkees commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

CONTRIBUTING.md and docs/source/developer_guide.rst gave two different, non-reconciled procedures for getting pFUnit/GFE available so the pFUnit-based cea_core_test suite can build and run. Neither matched what actually works (the extern/gfe path used by scripts/develop.sh).

djkees#53

Changes

  • CONTRIBUTING.md's "Running Tests" prerequisites: standardized the clone target on extern/gfe (lowercase), matching .gitignore and scripts/develop.sh — the old instructions cloned into extern/GFE, which isn't the path .gitignore actually ignores. Added the missing build+install step for the vendored GFE/pFUnit copy and the -DCMAKE_PREFIX_PATH=build-dev/install flag CEA's own cmake --preset dev needs to find it — cloning alone (the old instructions) was never enough for find_package(PFUNIT) to succeed. Documented scripts/develop.sh as the automated equivalent, and PFUNIT_DIR as the alternative for an already-installed PFUnit.
  • docs/source/developer_guide.rst: fixed the Prerequisites section's extern/GFE capitalization to match, and replaced the Testing section's contradictory "PFUnit is a maintainer-only dependency, install it yourself" text (which conflicted with the Prerequisites section's own claim that it's vendored) with a cross-link to CONTRIBUTING.md's now-accurate procedure, so the two docs describe one consistent story instead of two different ones.

Testing

  • Documentation-only change. Verified against .gitignore (only extern/gfe and extern/install are ignored, not extern/GFE) and scripts/develop.sh (which clones into extern/gfe, builds it with the same -DSKIP_* flags now documented, and passes -DCMAKE_PREFIX_PATH to the CEA configure step) — the documented procedure is scripts/develop.sh's steps written out manually, not a new invented procedure. Also confirmed CMakeLists.txt only calls bare find_package(PFUNIT) with no default search path, which is why CMAKE_PREFIX_PATH/PFUNIT_DIR has to be set explicitly.

Compatibility / Numerical behavior

  • No expected changes to numerical results

Update

This PR originally added a note that the vendored pFUnit build "currently fails" on Windows and is effectively Linux/macOS-only. That turned out to have a real fix (the #ifndef _WIN32 guard in pFUnit's FUnit.F90 is already there, but gfortran doesn't predefine _WIN32 the way a C/C++ compiler does, so the guard picks the wrong branch) — see #135 in this same batch. That caveat has been dropped from CONTRIBUTING.md/developer_guide.rst here since it's no longer accurate.

Merge-order dependency: this PR should merge at the same time as or after #135, not before — merging this first (dropping the caveat) while main still lacks #135's fix would leave CONTRIBUTING.md briefly overclaiming Windows support.


Drafted with Claude's assistance

  • The extern/GFE vs extern/gfe mismatch and the missing build/install/CMAKE_PREFIX_PATH steps were found by direct comparison of CONTRIBUTING.md's old instructions against .gitignore and scripts/develop.sh, not assumed from the issue text.
  • Confirmed CMakeLists.txt has no automatic path to a vendored GFE install (plain find_package(PFUNIT)), which is why the old CONTRIBUTING.md steps (clone, then cmake --preset dev) could never have worked as written.

…#165)

* Reconcile CONTRIBUTING.md and developer_guide.rst on GFE/pFUnit setup (#53)

Both docs described a different, non-working procedure for getting pFUnit available; standardize on the extern/gfe (lowercase) path that actually matches .gitignore and scripts/develop.sh, add the missing build+install+CMAKE_PREFIX_PATH steps, and cross-link the two docs instead of duplicating divergent instructions. Also notes the current Windows pFUnit build limitation (#163).

* Drop stale Windows-fails caveat now that #163 has a fix in progress

See #163 (fix landing in a separate PR).

(cherry picked from commit 1f7ea1f)
@nicholascanovas
nicholascanovas merged commit 2f79a64 into nasa:main Sep 25, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants