Skip to content

Added files for the GCHP GitHub repo suggested by Claude Code - #559

Merged
yuyao-cyber merged 6 commits into
dev/no-diff-to-benchmarkfrom
feature/claude-code
Oct 7, 2026
Merged

yuyao-cyber merged 6 commits into
dev/no-diff-to-benchmarkfrom
feature/claude-code

Conversation

@yantosca

@yantosca yantosca commented Jul 10, 2026 •

Copy link
Copy Markdown
Contributor

Name and Institution (Required)

Name: Bob Yantosca
Institution: Harvard + GCST

Describe the update

This PR adds repository-level files for the GCHP superproject, first suggested by Claude Code, and brings them up to date with the 14.8.0 release. The branch is rebased onto dev/no-diff-to-benchmark.

This PR is part of a set with geoschem/geos-chem#3350, geoschem/HEMCO#364, and geoschem/GCClassic#110, which add the same kinds of files to those repositories.

New files

File Description
.gitattributes Normalizes line endings to LF (* text=auto eol=lf), except *.bat, which keeps CRLF for cmd.exe; marks images, PDFs, and NetCDF (*.nc, *.nc4) as binary
.github/dependabot.yml Tells GitHub to check if any GitHub actions (e.g. checkout) need updating. If so, a PR containing proposed fixes will be opened for GCST review.
CITATION.cff How to cite GCHP (version 14.8.0, released 2026-09-15)
CLAUDE.md Guidance for Claude Code: the 11 submodules and which owns what, the files this repo actually owns, root symlinks, build switches and their traps, run-directory workflow, CI coverage, MAPL3 status, docs build, contribution and release workflow
GOVERNANCE.md Summary of the GEOS-Chem governance structure (GCSC, Working Groups, GCST), taken from existing documentation, and how a change becomes a release
SECURITY.md Security policy covering GCHP and its submodules: private reporting through GitHub advisories; the primary threat class is arbitrary code execution when reading a data/config file

Modified files

File Description
.github/PULL_REQUEST_TEMPLATE.md Added an "AI disclosure" section
.release/changeVersionNumbers.sh Now updates version and date-released in CITATION.cff, and exits with an error if those edits did not land. It no longer edits the geos-chem submodule's CHANGELOG.md or KPP/fullchem/CHANGELOG_fullchem.md; the geos-chem repo's own .release/changeVersionNumbers.sh (added in geoschem/geos-chem#3350) updates those
docs/make.bat Stored with LF in the repository under the *.bat rule; still checked out with CRLF, so the file on disk is unchanged
CHANGELOG.md Updated accordingly. Also corrected the HEMCO submodule changelog path at the top of the file (src/GCHP_GridComp/GEOSChem_GridComp/HEMCO/HEMCO)

Notes for reviewers

  • CLAUDE.md documents that -DAPM=y is only partly wired in GCHP. geos-chem's CMake compiles apm_driv_mod.F90 and links the APM library, but GEOSChemBuildProperties in src/GCHP_GridComp/GEOSChem_GridComp/CMakeLists.txt never adds the APM compile definition, so the #if ... APM blocks in geos-chem stay compiled out. This PR only documents that; fixing it, or blocking APM in GCHP, would be a separate change. This is OK as there is no need for APM in GCHP right now.
  • GOVERNANCE.md and CLAUDE.md say that zero-diff updates target dev/no-diff-to-benchmark, updates that change output target dev/X.Y.Z, and main receives only released versions.
  • CLAUDE.md warns that there is no CI that compiles GCHP, and that a PR into any dev/* branch triggers the cloud benchmarking workflow.

Expected changes

This is a zero-diff update. No CMake, Fortran, or run-directory files are changed, and the submodule pointers are not changed. docs/make.bat changes only in how it is stored in the repository; it is still checked out with CRLF, so the file on disk is the same.

Related GitHub issues

AI disclosure

Claude Code (Claude Opus 5.5) was used to draft CLAUDE.md, CITATION.cff, GOVERNANCE.md, SECURITY.md, and .gitattributes, to update .release/changeVersionNumbers.sh, and to check these files against the code after the 14.8.0 release. All changes were reviewed by the author.

🤖 Generated with Claude Code

@yantosca yantosca added this to the 14.8.0 milestone Jul 10, 2026
.gitattributes
- Specifies Git behavior regarding line endings

CITATION.cff
- Instructions on how to cite if you use GC-Classic

CLAUDE.md
- Provides guidance to Claude Code AI

GOVERNANCE.md
- Summarizes the GEOS-Chem governance structure (taken from
  existing documentation)

SECURITY.md
- Specifies the security policy used for this repo

.release/changeVersionNumbers.sh
- Modified to update version number & date in CITATION.cff
- Also only updates

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
.github/PULL_REQUEST_TEMPLATE.md
- Added "AI disclosure" section, asking the user to state if AI
  was used in the preparation of this PR.

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
CHANGELOG.md
- Updated paths to other changelogs

CLAUDE.md
- Updated for post-14.8.0 release

CITATION.cff
- Updated version numbers

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
@yantosca
yantosca changed the base branch from main to dev/no-diff-to-benchmark September 23, 2026 20:54
CLAUDE.md cited a SECURITY.md threat class that SECURITY.md never
stated, gave no PR target branch, and made two claims the code
contradicts: submodule names differ from paths for 9 of 11 (not 10),
and -DAPM=y is not a no-op.  With APM set, geos-chem compiles
apm_driv_mod.F90 and links the APM library, but GCHP never defines the
APM macro, so the build is half wired.  docs/make.bat had a correct
eol=crlf rule but was still stored with CRLF.

CLAUDE.md
- Corrected the submodule name/path count
- Described APM as half wired rather than a no-op
- Stated the dev/no-diff-to-benchmark vs dev/X.Y.Z PR targets
- Updated the release-script caveats (CITATION.cff check)

.release/changeVersionNumbers.sh
- Verify that the CITATION.cff version and date edits landed, and
  report the update

SECURITY.md
- Named arbitrary code execution when reading a data/config file as
  the primary threat class, with the files that are read

GOVERNANCE.md
- Stated which development branch a PR should target

.gitattributes
- Treat *.nc and *.nc4 as binary

docs/make.bat
- Renormalized in the index (LF); checked out with CRLF as before

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
yantosca and others added 2 commits September 24, 2026 11:32
.github/dependabot.yml
- Tells Dependabot to check once a month if any of the GitHub
  Actions (e.g. checkout) need updating.  If so, will submit a
  bundled PR with the updates.

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
.github/workflows/cloud-benchmarking-workflow.yml
.github/workflows/spack-deployment-workflow.yml
- Tell the workflows only to read the GitHub token, not write

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
@yuyao-cyber
yuyao-cyber merged commit dabaa75 into dev/no-diff-to-benchmark Oct 7, 2026
2 of 3 checks passed
@yantosca
yantosca deleted the feature/claude-code branch October 7, 2026 19:52
@yantosca

yantosca commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

All GEOS-Chem Classic execution tests passed.

==============================================================================
GEOS-Chem Classic: Execution Test Results

CodeDir   : 21eb4b2 HEMCO update: Merge PR #364 (Add files sugg. by Claude)
GEOS-Chem : ec4787028 Merge PR #3403 (Carbon HEMCO switches)
HEMCO     : 8c87680 Merge PR #364 (Add files suggested by Claude Code)
Cloud-J   : 16d18b0 Merge PR #34 (Fixed issues in format statements for verbose output)
HETP      : df2f942 Merge PR #4 (Multiphase aerosol chemistry, cf Travis et al 2025)

Using 24 OpenMP threads
Number of execution tests: 38

Submitted as SLURM job: 51160734
==============================================================================

Summary of test results:
------------------------------------------------------------------------------
Execution tests passed:   38
Execution tests failed:   0

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%  All execution tests passed!  %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

GEOS-Chem Classic tests with differences w/r/t gcc.3.c00f393:

  • Parallel error (known issue)
    • gc_4x5_merra2_fullchem_APM

All GCHP execution tests passed.

==============================================================================
GCHP: Execution Test Results

CodeDir       : 1893b9e HEMCO update: Merge PR #364 (Add files sugg. by Claude)
MAPL          : e87909dbc Merge PR #45 (ExtData2G, importing GC-Classic output data)
GMAO_Shared   : 4ddb3ec Merge pull request #2 from geoschem/feature/mapl-upgrade
ESMA_cmake    : 01bbf2f Merge pull request #9 from geoschem/feature/turn_off_f2py_builds_in_gchp
FMS           : 259759d1 Merge pull request #3 from geoschem/feature/update_gmao_libs
FVdycoreCubed : 9d86304 Merge PR #13 (Add option to get upwards mass flux as real4, not just real8)
geos-chem     : 4e085a04d Merge branch dev/no-diff-to-benchmark into feature/claude-code
HEMCO         : 8c87680 Merge PR #364 (Add files suggested by Claude Code)
Cloud-J       : 16d18b0 Merge PR #34 (Fixed issues in format statements for verbose output)
HETP          : df2f942 Merge PR #4 (Multiphase aerosol chemistry, cf Travis et al 2025)
GFE           : bac529f Merge pull request #40 from Goddard-Fortran-Ecosystem/feature/mathomp4/update-gftl-1.15.2

Number of execution tests: 12

Submitted as SLURM job: 51161073
==============================================================================

Summary of test results:
------------------------------------------------------------------------------
Execution tests passed:   12
Execution tests failed:   0

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%  All execution tests passed!  %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

All GCHP tests were zero-diff w/r/t gchp.3.a2e9d65.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category: Feature Request New feature or request no-diff-to-benchmark This update will not change the results of fullchem benchmark simulations topic: GitHub Related to GitHub templates or actions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants