ESMCI / manage_externals

cesm externals management utility
Other
8 stars 12 forks source link

New feature request --force option #192

Open jedwards4b opened 1 year ago

jedwards4b commented 1 year ago

Summary of Issue:

I would like to request a new option, perhaps --force, which allows manage_externals to update repositories that can be updated even when other repositories cannot be updated for some reason.

So for example the following will not update because of the locally modified ccs_config:

 ./manage_externals/checkout_externals -S
Processing externals description file : Externals.cfg (/glade/work/jedwards/sandboxes/cesm2_x_alpha)
Processing externals description file : Externals_CAM.cfg (/glade/work/jedwards/sandboxes/cesm2_x_alpha/components/cam)
Processing externals description file : Externals.cfg (/glade/work/jedwards/sandboxes/cesm2_x_alpha/components/cice)
Processing externals description file : .gitmodules (/glade/work/jedwards/sandboxes/cesm2_x_alpha/components/cice/src)
Processing submodules description file : .gitmodules
Processing externals description file : Externals_CDEPS.cfg (/glade/work/jedwards/sandboxes/cesm2_x_alpha/components/cdeps)
Processing externals description file : .gitmodules (/glade/work/jedwards/sandboxes/cesm2_x_alpha/cime)
Processing submodules description file : .gitmodules
Processing externals description file : Externals_CISM.cfg (/glade/work/jedwards/sandboxes/cesm2_x_alpha/components/cism)
Processing externals description file : Externals_CLM.cfg (/glade/work/jedwards/sandboxes/cesm2_x_alpha/components/clm)
Processing externals description file : Externals_FMS.cfg (/glade/work/jedwards/sandboxes/cesm2_x_alpha/libraries/FMS)
Processing externals description file : Externals.cfg (/glade/work/jedwards/sandboxes/cesm2_x_alpha/components/mom)
Processing externals description file : ../Externals_MOM.cfg (/glade/work/jedwards/sandboxes/cesm2_x_alpha/components/mom/MOM6)
Processing submodules description file : /glade/work/jedwards/sandboxes/cesm2_x_alpha/components/mom/MOM6/.gitmodules
Processing externals description file : Externals_POP.cfg (/glade/work/jedwards/sandboxes/cesm2_x_alpha/components/pop)
Processing externals description file : Externals.cfg (/glade/work/jedwards/sandboxes/cesm2_x_alpha/components/ww3dev)
Checking local status of required & optional components: ccs_config, cam, chem_proc, carma, cosp2, clubb, silhs, pumas, pumas-frozen, ali_arms, atmos_phys, atmos_cubed_sphere, mpas, cice5, cice6, cice, icepack, cmeps, cdeps, fox, genf90, cpl7, share, mct, parallelio, cime, cism, source_cism, clm, fates, fms, fms, mom, mom, pkg/cvmix-src, pkg/gsw-fortran, mosart, pop, cvmix, marbl, pycect, rtm, ww3, ww3dev, ww3dev, 
sM  ./ccs_config
s    ./cime
s    ./components/cam
    ./components/cam/chem_proc
    ./components/cam/src/atmos_phys
    ./components/cam/src/dynamics/fv3/atmos_cubed_sphere
    ./components/cam/src/dynamics/mpas/dycore
    ./components/cam/src/physics/ali_arms
    ./components/cam/src/physics/carma/base
    ./components/cam/src/physics/clubb

I would like to have an option that will force the update of cime and cam in this case but leave ccs_config as is.

billsacks commented 1 year ago

I would support this, but would suggest a more specific name like --force-update-non-modified (maybe there's a better name than that), because it's unclear from the name what --force would (or should) do.

See also related discussion in #112 .

gold2718 commented 1 year ago

How about --skip-modified or --skip-modified-externals?

ekluzek commented 1 year ago

@jedwards4b the way I've gotten around this is to tell it which externals I want updated.

./manage_externals/checkout_externals cime cam

so is this really necessary?

Outside of that I think I like @gold2718 suggestions for names the best.

jedwards4b commented 1 year ago

Yes @ekluzek I've been doing that - it gets old.