-
Notifications
You must be signed in to change notification settings - Fork 200
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
Add more metadata on compset-grid compatibility #188
Comments
From a discussion today with @alperaltuntas @mvertens @jedwards4b @briandobbins - For this point:
while we see value in this, we are also concerned that it would be difficult to maintain, and could likely get out of date. @mvertens proposed starting by creating a document that describes some general rules, like F compsets are typically run with the ocean grid being the same as the atmosphere grid. Then we can see if that is sufficient (and could be added to some static documentation somewhere) or if we want to do more than that. For these points:
I felt there was general agreement that we want to specify this sort of compatibility information in a single format, not have some of it in config_grids.xml and some in config_comply.yml. There seemed to be general support for something like config_comply.yml because it allows the same syntax to be used to specify grid-centric and compset-centric rules. Regarding the tension between having information like this in a single, central location vs. decentralized @alperaltuntas pointed out that we could split up config_comply.yml just like we do for some of the xml files. We also discussed file format. This is important if we want this file to be used by the command-line interface (like create_newcase) in addition to the GUI – which I think we do want. In principle, it seems like config_comply.yml could be specified in xml, but it might be harder to work with and would require some up-front effort from @alperaltuntas that we're not sure is worthwhile. It seems like the general feeling was that we'll probably start supporting a limited set of 3rd party python dependencies at some point. @jedwards4b feels that this will be easier once we have the CIME7 reorganization (ESMCI/cime#3886 ). So the thinking is that, for now, let's stick with business as usual: not removing any of the compset-grid compatibility metadata from config_grids.xml, and having Alper add some new metadata in config_comply.yml, but only having the latter used by the GUI for now. Then, once the CIME7 reorganization is done, we can think about how we want to support 3rd party python dependencies (see also ESMCI/cime#4059 ). Once we have a plan in place for that, we can return to the question of whether all of this compset-grid compatibility metadata should be moved into config_comply.yml. |
Where did this restriction originate? The CESM Simpler Models page uses this grid for several examples and we regularly test these compsets plus some aquaplanet configurations using |
7b6d92e Merge pull request ESCOMP#198 from johnpaulalex/gitdir 927ce3a Merge pull request ESCOMP#197 from johnpaulalex/testpath a04f114 Merge pull request ESCOMP#196 from johnpaulalex/readmod d9c14bf Change the rest of the methods to use -C. Still some usage of getcwd in test_unit_repository_git. 332b106 Fix incorrect logged path of checkout_externals in test_sys_checkout: it was basically the parent of the current directory, which varies throughout the test. (it called abspath with '{0}/../../', which adds arbitrary and not-interpolated subdir '{0}' to the path, then removes it and removes one more level). 932a749 Remove printlog from read_gitmodules_file since read_externals_description_file() already has a nearly-the-same printlog (but add it to the other caller). 5d13719 Merge pull request ESCOMP#195 from johnpaulalex/check_repo 4233954 Update utest to mock _git_remote_verbose in a new way, since it is now called via the GitRepository class rather than on the specific GitRepository instance. d7a42ae Check that desired repo was actually checked out. 71596bb Merge pull request ESCOMP#194 from johnpaulalex/manic2 4c96e82 Make the MANIC_TEST_BARE_REPO_ROOT env var special - give it a constant for easy tracking, and automatically tear it down after each test. 259bfc0 test_sys_checkout: use actual paths in on-the-fly configs rather than MANIC_TEST_BARE_REPO_ROOT env var. This will make it easier to test (in the near future) that checkout_externals actually checked out the desired repo dir. 557bbd6 Merge pull request ESCOMP#193 from johnpaulalex/manic 5314eed Remove MANIC_TEST_TMP_REPO_ROOT environment variable in favor of module-level variable. 345fc1e Merge pull request ESCOMP#191 from johnpaulalex/test_doc12 2117b84 test_sys_checkout: verify that basic by-tag/branch/hash tests actually take us to the correct git tag/branch/hash. 94d6e5f Merge pull request ESCOMP#190 from johnpaulalex/test_doc11 3ff33a6 Inline local-path-creation methods 47dea7f Merge pull request ESCOMP#189 from johnpaulalex/test_doc10 9ea75cb Grab-bag of renamings: Remove redundant _NAME from repo constants, and consistently add _REPO suffix (This causes the majority of diffs). c0c847e Merge pull request ESCOMP#188 from johnpaulalex/test_doc9 2dd5ce0 test_sys_checkout.py: only check for correct 'required' or 'optional' state in the test that exercises required vs optional behavior. Removed a lot of boilerplate. eb30859 Merge pull request ESCOMP#187 from johnpaulalex/test_doc8 1832e1f test_sys_checkout: Simplify many tests to only use a single external. 8689d61 Merge pull request ESCOMP#186 from johnpaulalex/test_doc7 fbee425 Grab bag of test_sys_checkout cleanups: Doc inside of each test more clearly/consistently. TestSysCheckoutSVN didn’t get the inlining-of-helper-methods treatment, now it has that. Move various standalone repo helper methods (like create_branch) into a RepoUtils class. README.md was missing newlines when rendered as markdown. Doc the return value of checkout.main Fix test_container_exclude_component - it was looking for the wrong key (which is never present); now it looks for the correct key. f0ed44a Merge pull request ESCOMP#185 from johnpaulalex/test_doc6 a3d59f5 Merge pull request ESCOMP#184 from johnpaulalex/test_doc5 5329c8b test_sys_checkout: Inline config generation functions that are only called once. 464f2c7 test_sys_checkout: Inline another layer (per-config-file checks). Rename the 4 methods that are used multiple times, to reflect what they do rather than what they're called. 8872c0d Merge pull request ESCOMP#183 from johnpaulalex/doc_test4 c045335 Merge pull request ESCOMP#182 from johnpaulalex/doc_test3 c583b95 Merge pull request ESCOMP#181 from johnpaulalex/doc_test2 e01cfe2 test_sys_checkout: less confusing handling of return values from checkout_externals. Specifically, when doing a checkout, don't return tree_status from _before_ the checkout. Make a new wrapper to call checkout_externals a second time, to calculate the new status after a checkout (very frequent pattern). 2328681 test_sys_checkout: Remove another layer (which generates test component names) c3717b6 Merge pull request ESCOMP#180 from johnpaulalex/doc_test 36d7a44 test_sys_checkout.py: remove one layer of functions (that check for local status enums). No-op. 2c4584b More documentation about tests: * contents of test repositories (n a new README.md) * various constants in test_sys_checkout.py that point to those contents, and terminology like container/simple/mixed. * in each test method, the scenarios being tested. * The coupling between test methods. 55e74bd Merge pull request ESCOMP#179 from johnpaulalex/circ 66be842 Remove circular dependency by making _External stop doing tricky things with sourcetrees. 82d3b24 Merge pull request ESCOMP#178 from johnpaulalex/test_doc 3223f49 Additional documentation of system tests - global variables, method descriptions. 45b7c01 Merge pull request ESCOMP#177 from jedwards4b/git_workflow ace90b2 try setting credentials this way f4d6aa9 try setting credentials this way 1d61a69 use this to set git credentials 7f9d330 use this to set git credentials 5ac731b add tmate code 836847b get git workflow working dcd462d Merge pull request ESCOMP#176 from jedwards4b/add_github_testing 2d2479e Merge pull request ESCOMP#175 from johnpaulalex/fix 711a53f add github testing of prs and automatic tagging of main cfe0f88 fix typos 5665d61 Fix broken checkout behavior introduced by PR ESCOMP#172. 27909e2 Merge pull request ESCOMP#173 from johnpaulalex/readall 00ad044 Further tiny refactorings and docs of checkout API (no-op). Remove unused load_all param in _External.checkout(). Rename _External.checkout_externals() to checkout_subexternals(), to remove the ambiguity about whether the main external pointed to by the _External is itelf checked out (it is not) Clarify load_all documentation - it’s always recursive, but applies different criteria at each level. Rename variables in checkout.py (e.g. ext_description) to match the equivalent code in sourcetree.py. 2ea3d1a Merge pull request ESCOMP#172 from johnpaulalex/fixit 43bf809 Merge pull request ESCOMP#171 from johnpaulalex/docstatus e6aa7d2 Merge pull request ESCOMP#170 from johnpaulalex/printdir adbd715 On checkout, refresh locally installed optional packages regardless of whether -o is passed in. add0745 Comment tweaks, and fix 'ppath' typo 696527c Document the format of various status dictionaries, and the various paths and path components within an _External. c677b94 When processing an external, print out its path in addition to the base filename (to disambiguate all the externals.cfg's) 975d7fd Merge pull request ESCOMP#169 from johnpaulalex/docfix_branch 09709e3 Document _Externals.status(). The original comment was apparently copy-pasted from checkout(). 1d880e0 Merge pull request ESCOMP#167 from billsacks/fix_svn_on_windows 3510da8 Tweak a unit test to improve coverage eb7fc13 Handle the possibility that the URL already ends with '/' 02ea87e Fix svn URLs on Windows b1c02ab Merge pull request ESCOMP#165 from gold2718/doc_fix 9f4be8c Add documentation about externals = None feature a3b3a03 Merge pull request ESCOMP#162 from ESMCI/fischer/python3 d4f1b1e Change shebang lines to python3 2fd941a Merge pull request ESCOMP#158 from billsacks/modified_solution de08dc2 Add another option for when an external is in a modified state e954582 Merge pull request ESCOMP#156 from billsacks/onbranch_show_hash 952e44d Change output: put tag/hash before branch name 1028843 Fix pre-existing pylint issues 01b13f7 When on a branch, show tag/hash, too 39ad532 Merge pull request ESCOMP#150 from gold2718/fix_combo_config 75f8f02 Merge pull request ESCOMP#152 from jedwards4b/sort_by_local_path 42687bd remove commented code 29e26af fix pylint issues 7c9f3c6 add a test for nested repo checkout 75c5353 fix spacing 24a3726 improve sorting, checkout externals with each comp 29f45b0 remove py2 test and fix super call 880a4e7 remove decode 1c53be8 no need for set call 36c56db simplier fix for issue dc67cc6 simpler solution b32c6fc fix to allow submodule name different from path 5b5e1c2 Merge pull request ESCOMP#144 from billsacks/improve_errmsg c983863 Add another option for dealing with modified externals 59ce252 Add some details to the error message when externals are modified be5a1a4 Merge pull request ESCOMP#143 from jedwards4b/add_exclude 2aa014a fix lint issue 49cd5e8 fix lint issues 418173f Added tests for ExternalsDescriptionDict afab352 fix lint issue be85b7d fix the test a580a57 push test d437108 add a test 21affe3 fix formatting issue 72e6b64 add an exclude option c33a3bd Merge pull request ESCOMP#139 from jedwards4b/ignore_branch_prop b124a9a ignore this silently, we use a hash so it does not matter git-subtree-dir: manage_externals git-subtree-split: 7b6d92e
7b6d92e Merge pull request #198 from johnpaulalex/gitdir 927ce3a Merge pull request #197 from johnpaulalex/testpath a04f114 Merge pull request #196 from johnpaulalex/readmod d9c14bf Change the rest of the methods to use -C. Still some usage of getcwd in test_unit_repository_git. 332b106 Fix incorrect logged path of checkout_externals in test_sys_checkout: it was basically the parent of the current directory, which varies throughout the test. (it called abspath with '{0}/../../', which adds arbitrary and not-interpolated subdir '{0}' to the path, then removes it and removes one more level). 932a749 Remove printlog from read_gitmodules_file since read_externals_description_file() already has a nearly-the-same printlog (but add it to the other caller). 5d13719 Merge pull request #195 from johnpaulalex/check_repo 4233954 Update utest to mock _git_remote_verbose in a new way, since it is now called via the GitRepository class rather than on the specific GitRepository instance. d7a42ae Check that desired repo was actually checked out. 71596bb Merge pull request #194 from johnpaulalex/manic2 4c96e82 Make the MANIC_TEST_BARE_REPO_ROOT env var special - give it a constant for easy tracking, and automatically tear it down after each test. 259bfc0 test_sys_checkout: use actual paths in on-the-fly configs rather than MANIC_TEST_BARE_REPO_ROOT env var. This will make it easier to test (in the near future) that checkout_externals actually checked out the desired repo dir. 557bbd6 Merge pull request #193 from johnpaulalex/manic 5314eed Remove MANIC_TEST_TMP_REPO_ROOT environment variable in favor of module-level variable. 345fc1e Merge pull request #191 from johnpaulalex/test_doc12 2117b84 test_sys_checkout: verify that basic by-tag/branch/hash tests actually take us to the correct git tag/branch/hash. 94d6e5f Merge pull request #190 from johnpaulalex/test_doc11 3ff33a6 Inline local-path-creation methods 47dea7f Merge pull request #189 from johnpaulalex/test_doc10 9ea75cb Grab-bag of renamings: Remove redundant _NAME from repo constants, and consistently add _REPO suffix (This causes the majority of diffs). c0c847e Merge pull request #188 from johnpaulalex/test_doc9 2dd5ce0 test_sys_checkout.py: only check for correct 'required' or 'optional' state in the test that exercises required vs optional behavior. Removed a lot of boilerplate. eb30859 Merge pull request #187 from johnpaulalex/test_doc8 1832e1f test_sys_checkout: Simplify many tests to only use a single external. 8689d61 Merge pull request #186 from johnpaulalex/test_doc7 fbee425 Grab bag of test_sys_checkout cleanups: Doc inside of each test more clearly/consistently. TestSysCheckoutSVN didn’t get the inlining-of-helper-methods treatment, now it has that. Move various standalone repo helper methods (like create_branch) into a RepoUtils class. README.md was missing newlines when rendered as markdown. Doc the return value of checkout.main Fix test_container_exclude_component - it was looking for the wrong key (which is never present); now it looks for the correct key. f0ed44a Merge pull request #185 from johnpaulalex/test_doc6 a3d59f5 Merge pull request #184 from johnpaulalex/test_doc5 5329c8b test_sys_checkout: Inline config generation functions that are only called once. 464f2c7 test_sys_checkout: Inline another layer (per-config-file checks). Rename the 4 methods that are used multiple times, to reflect what they do rather than what they're called. 8872c0d Merge pull request #183 from johnpaulalex/doc_test4 c045335 Merge pull request #182 from johnpaulalex/doc_test3 c583b95 Merge pull request #181 from johnpaulalex/doc_test2 e01cfe2 test_sys_checkout: less confusing handling of return values from checkout_externals. Specifically, when doing a checkout, don't return tree_status from _before_ the checkout. Make a new wrapper to call checkout_externals a second time, to calculate the new status after a checkout (very frequent pattern). 2328681 test_sys_checkout: Remove another layer (which generates test component names) c3717b6 Merge pull request #180 from johnpaulalex/doc_test 36d7a44 test_sys_checkout.py: remove one layer of functions (that check for local status enums). No-op. 2c4584b More documentation about tests: * contents of test repositories (n a new README.md) * various constants in test_sys_checkout.py that point to those contents, and terminology like container/simple/mixed. * in each test method, the scenarios being tested. * The coupling between test methods. 55e74bd Merge pull request #179 from johnpaulalex/circ 66be842 Remove circular dependency by making _External stop doing tricky things with sourcetrees. 82d3b24 Merge pull request #178 from johnpaulalex/test_doc 3223f49 Additional documentation of system tests - global variables, method descriptions. 45b7c01 Merge pull request #177 from jedwards4b/git_workflow ace90b2 try setting credentials this way f4d6aa9 try setting credentials this way 1d61a69 use this to set git credentials 7f9d330 use this to set git credentials 5ac731b add tmate code 836847b get git workflow working dcd462d Merge pull request #176 from jedwards4b/add_github_testing 2d2479e Merge pull request #175 from johnpaulalex/fix 711a53f add github testing of prs and automatic tagging of main cfe0f88 fix typos 5665d61 Fix broken checkout behavior introduced by PR #172. 27909e2 Merge pull request #173 from johnpaulalex/readall 00ad044 Further tiny refactorings and docs of checkout API (no-op). Remove unused load_all param in _External.checkout(). Rename _External.checkout_externals() to checkout_subexternals(), to remove the ambiguity about whether the main external pointed to by the _External is itelf checked out (it is not) Clarify load_all documentation - it’s always recursive, but applies different criteria at each level. Rename variables in checkout.py (e.g. ext_description) to match the equivalent code in sourcetree.py. 2ea3d1a Merge pull request #172 from johnpaulalex/fixit 43bf809 Merge pull request #171 from johnpaulalex/docstatus e6aa7d2 Merge pull request #170 from johnpaulalex/printdir adbd715 On checkout, refresh locally installed optional packages regardless of whether -o is passed in. add0745 Comment tweaks, and fix 'ppath' typo 696527c Document the format of various status dictionaries, and the various paths and path components within an _External. c677b94 When processing an external, print out its path in addition to the base filename (to disambiguate all the externals.cfg's) 975d7fd Merge pull request #169 from johnpaulalex/docfix_branch 09709e3 Document _Externals.status(). The original comment was apparently copy-pasted from checkout(). 1d880e0 Merge pull request #167 from billsacks/fix_svn_on_windows 3510da8 Tweak a unit test to improve coverage eb7fc13 Handle the possibility that the URL already ends with '/' 02ea87e Fix svn URLs on Windows b1c02ab Merge pull request #165 from gold2718/doc_fix 9f4be8c Add documentation about externals = None feature a3b3a03 Merge pull request #162 from ESMCI/fischer/python3 d4f1b1e Change shebang lines to python3 2fd941a Merge pull request #158 from billsacks/modified_solution de08dc2 Add another option for when an external is in a modified state e954582 Merge pull request #156 from billsacks/onbranch_show_hash 952e44d Change output: put tag/hash before branch name 1028843 Fix pre-existing pylint issues 01b13f7 When on a branch, show tag/hash, too 39ad532 Merge pull request #150 from gold2718/fix_combo_config 75f8f02 Merge pull request #152 from jedwards4b/sort_by_local_path 42687bd remove commented code 29e26af fix pylint issues 7c9f3c6 add a test for nested repo checkout 75c5353 fix spacing 24a3726 improve sorting, checkout externals with each comp 29f45b0 remove py2 test and fix super call 880a4e7 remove decode 1c53be8 no need for set call 36c56db simplier fix for issue dc67cc6 simpler solution b32c6fc fix to allow submodule name different from path 5b5e1c2 Merge pull request #144 from billsacks/improve_errmsg c983863 Add another option for dealing with modified externals 59ce252 Add some details to the error message when externals are modified be5a1a4 Merge pull request #143 from jedwards4b/add_exclude 2aa014a fix lint issue 49cd5e8 fix lint issues 418173f Added tests for ExternalsDescriptionDict afab352 fix lint issue be85b7d fix the test a580a57 push test d437108 add a test 21affe3 fix formatting issue 72e6b64 add an exclude option c33a3bd Merge pull request #139 from jedwards4b/ignore_branch_prop b124a9a ignore this silently, we use a hash so it does not matter git-subtree-dir: manage_externals git-subtree-split: 84d65c37f7288576f3a5cd7e4d4fd9f12ac0dece
876b344 Merge pull request #208 from jedwards4b/add_version_file 46b2eb9 improve workflow name 1506bbf Need to update file before creating version cb06623 use github workflow to update version.txt 3d13177 update version.txt ba00e50 Merge branch 'main' into add_version_file 757fed1 update version.txt cd64e76 add version.txt and pre-push hook 0f884bf Merge pull request #205 from jedwards4b/sunset_svn_git_access 82a5edf merge in billsacks:svn_testing_no_github 17532c1 Use a local svn repo for testing 9c90434 different method to determine if in tests 539952e remove debug print statement cc5434f fix submodule testing 1d7f288 remove broken tests 04e94a5 provide a meaningful error message 38bcc0a Merge pull request #201 from jedwards4b/partial_match b4466a5 remove debug print statement c3cf3ec fix issue with partial branch match 7b6d92e Merge pull request #198 from johnpaulalex/gitdir 927ce3a Merge pull request #197 from johnpaulalex/testpath a04f114 Merge pull request #196 from johnpaulalex/readmod d9c14bf Change the rest of the methods to use -C. Still some usage of getcwd in test_unit_repository_git. 332b106 Fix incorrect logged path of checkout_externals in test_sys_checkout: it was basically the parent of the current directory, which varies throughout the test. (it called abspath with '{0}/../../', which adds arbitrary and not-interpolated subdir '{0}' to the path, then removes it and removes one more level). 932a749 Remove printlog from read_gitmodules_file since read_externals_description_file() already has a nearly-the-same printlog (but add it to the other caller). 5d13719 Merge pull request #195 from johnpaulalex/check_repo 4233954 Update utest to mock _git_remote_verbose in a new way, since it is now called via the GitRepository class rather than on the specific GitRepository instance. d7a42ae Check that desired repo was actually checked out. 71596bb Merge pull request #194 from johnpaulalex/manic2 4c96e82 Make the MANIC_TEST_BARE_REPO_ROOT env var special - give it a constant for easy tracking, and automatically tear it down after each test. 259bfc0 test_sys_checkout: use actual paths in on-the-fly configs rather than MANIC_TEST_BARE_REPO_ROOT env var. This will make it easier to test (in the near future) that checkout_externals actually checked out the desired repo dir. 557bbd6 Merge pull request #193 from johnpaulalex/manic 5314eed Remove MANIC_TEST_TMP_REPO_ROOT environment variable in favor of module-level variable. 345fc1e Merge pull request #191 from johnpaulalex/test_doc12 2117b84 test_sys_checkout: verify that basic by-tag/branch/hash tests actually take us to the correct git tag/branch/hash. 94d6e5f Merge pull request #190 from johnpaulalex/test_doc11 3ff33a6 Inline local-path-creation methods 47dea7f Merge pull request #189 from johnpaulalex/test_doc10 9ea75cb Grab-bag of renamings: Remove redundant _NAME from repo constants, and consistently add _REPO suffix (This causes the majority of diffs). c0c847e Merge pull request #188 from johnpaulalex/test_doc9 2dd5ce0 test_sys_checkout.py: only check for correct 'required' or 'optional' state in the test that exercises required vs optional behavior. Removed a lot of boilerplate. eb30859 Merge pull request #187 from johnpaulalex/test_doc8 1832e1f test_sys_checkout: Simplify many tests to only use a single external. 8689d61 Merge pull request #186 from johnpaulalex/test_doc7 fbee425 Grab bag of test_sys_checkout cleanups: Doc inside of each test more clearly/consistently. TestSysCheckoutSVN didn’t get the inlining-of-helper-methods treatment, now it has that. Move various standalone repo helper methods (like create_branch) into a RepoUtils class. README.md was missing newlines when rendered as markdown. Doc the return value of checkout.main Fix test_container_exclude_component - it was looking for the wrong key (which is never present); now it looks for the correct key. f0ed44a Merge pull request #185 from johnpaulalex/test_doc6 a3d59f5 Merge pull request #184 from johnpaulalex/test_doc5 5329c8b test_sys_checkout: Inline config generation functions that are only called once. 464f2c7 test_sys_checkout: Inline another layer (per-config-file checks). Rename the 4 methods that are used multiple times, to reflect what they do rather than what they're called. 8872c0d Merge pull request #183 from johnpaulalex/doc_test4 c045335 Merge pull request #182 from johnpaulalex/doc_test3 c583b95 Merge pull request #181 from johnpaulalex/doc_test2 e01cfe2 test_sys_checkout: less confusing handling of return values from checkout_externals. Specifically, when doing a checkout, don't return tree_status from _before_ the checkout. Make a new wrapper to call checkout_externals a second time, to calculate the new status after a checkout (very frequent pattern). 2328681 test_sys_checkout: Remove another layer (which generates test component names) c3717b6 Merge pull request #180 from johnpaulalex/doc_test 36d7a44 test_sys_checkout.py: remove one layer of functions (that check for local status enums). No-op. 2c4584b More documentation about tests: * contents of test repositories (n a new README.md) * various constants in test_sys_checkout.py that point to those contents, and terminology like container/simple/mixed. * in each test method, the scenarios being tested. * The coupling between test methods. 55e74bd Merge pull request #179 from johnpaulalex/circ 66be842 Remove circular dependency by making _External stop doing tricky things with sourcetrees. 82d3b24 Merge pull request #178 from johnpaulalex/test_doc 3223f49 Additional documentation of system tests - global variables, method descriptions. 45b7c01 Merge pull request #177 from jedwards4b/git_workflow ace90b2 try setting credentials this way f4d6aa9 try setting credentials this way 1d61a69 use this to set git credentials 7f9d330 use this to set git credentials 5ac731b add tmate code 836847b get git workflow working dcd462d Merge pull request #176 from jedwards4b/add_github_testing 2d2479e Merge pull request #175 from johnpaulalex/fix 711a53f add github testing of prs and automatic tagging of main cfe0f88 fix typos 5665d61 Fix broken checkout behavior introduced by PR #172. 27909e2 Merge pull request #173 from johnpaulalex/readall 00ad044 Further tiny refactorings and docs of checkout API (no-op). Remove unused load_all param in _External.checkout(). Rename _External.checkout_externals() to checkout_subexternals(), to remove the ambiguity about whether the main external pointed to by the _External is itelf checked out (it is not) Clarify load_all documentation - it’s always recursive, but applies different criteria at each level. Rename variables in checkout.py (e.g. ext_description) to match the equivalent code in sourcetree.py. 2ea3d1a Merge pull request #172 from johnpaulalex/fixit 43bf809 Merge pull request #171 from johnpaulalex/docstatus e6aa7d2 Merge pull request #170 from johnpaulalex/printdir adbd715 On checkout, refresh locally installed optional packages regardless of whether -o is passed in. add0745 Comment tweaks, and fix 'ppath' typo 696527c Document the format of various status dictionaries, and the various paths and path components within an _External. c677b94 When processing an external, print out its path in addition to the base filename (to disambiguate all the externals.cfg's) 975d7fd Merge pull request #169 from johnpaulalex/docfix_branch 09709e3 Document _Externals.status(). The original comment was apparently copy-pasted from checkout(). 1d880e0 Merge pull request #167 from billsacks/fix_svn_on_windows 3510da8 Tweak a unit test to improve coverage eb7fc13 Handle the possibility that the URL already ends with '/' 02ea87e Fix svn URLs on Windows b1c02ab Merge pull request #165 from gold2718/doc_fix 9f4be8c Add documentation about externals = None feature a3b3a03 Merge pull request #162 from ESMCI/fischer/python3 d4f1b1e Change shebang lines to python3 2fd941a Merge pull request #158 from billsacks/modified_solution de08dc2 Add another option for when an external is in a modified state e954582 Merge pull request #156 from billsacks/onbranch_show_hash 952e44d Change output: put tag/hash before branch name 1028843 Fix pre-existing pylint issues 01b13f7 When on a branch, show tag/hash, too 39ad532 Merge pull request #150 from gold2718/fix_combo_config 75f8f02 Merge pull request #152 from jedwards4b/sort_by_local_path 42687bd remove commented code 29e26af fix pylint issues 7c9f3c6 add a test for nested repo checkout 75c5353 fix spacing 24a3726 improve sorting, checkout externals with each comp 29f45b0 remove py2 test and fix super call 880a4e7 remove decode 1c53be8 no need for set call 36c56db simplier fix for issue dc67cc6 simpler solution b32c6fc fix to allow submodule name different from path 5b5e1c2 Merge pull request #144 from billsacks/improve_errmsg c983863 Add another option for dealing with modified externals 59ce252 Add some details to the error message when externals are modified be5a1a4 Merge pull request #143 from jedwards4b/add_exclude 2aa014a fix lint issue 49cd5e8 fix lint issues 418173f Added tests for ExternalsDescriptionDict afab352 fix lint issue be85b7d fix the test a580a57 push test d437108 add a test 21affe3 fix formatting issue 72e6b64 add an exclude option c33a3bd Merge pull request #139 from jedwards4b/ignore_branch_prop b124a9a ignore this silently, we use a hash so it does not matter git-subtree-dir: manage_externals git-subtree-split: 876b3440e7356fed2bf417659a5f7b5527a92a2f
It is currently hard for users to know what grids are supported for a given compset and which of those are the ones that are most recommended for scientific use. We should add better documentation on this, probably created from additional metadata in one or more xml or yaml files.
@alperaltuntas has started adding more metadata along these lines for the sake of the create_newcase GUI he is working on. He says:
I can think of the following possible metadata for compset-grid compatibility:
(a) For a given grid, what compsets are / are not compatible: currently specified with compset / not_compset attributes in config_grids.xml; in addition, Alper has an example for T42 in config_comply.yml (T42 can only be used with SCAM)
(b) Similar to (a), but in the other direction: For a given component or specific compset, what grids are / are not compatible: not currently specified in general, but Alper has an example in config_comply.yml (any MOM compset is only compatible with 3 grids)
(c) For a given compset, at which resolutions (if any) is it scientifically-supported: currently defined in config_compsets.xml
(d) For a given compset, what are all of the standard / recommended resolutions at which it is typically run in scientific simulations: not currently specified, but I feel this should be specified to address Dan Marsh's request and similar needs
(e) For a given compset, what are all of the resolutions at which it is regularly tested: can be retrieved from the testlist files, but I'd argue that this is not particularly useful for a user, at least for the I compsets with which I am most familiar
Thinking about uses other than the GUI: I think that (c) and (d) are what we want to present in our online documentation (and also ideally accessible by CIME's command-line tools), whereas (a) and (b) should be used for checking compatibility at create_newcase time and possibly also queryable via some command-line tool – so should be accessible to CIME as well as the GUI.
I would further suggest that (c) and (d) would be easiest to maintain and keep correct if specified for each compset in config_compsets.xml, since this needs to be considered whenever you add a new compset. For (d), one thought is that each compset defined in config_compsets.xml could define an element like <standard_resolutions>. This would be somewhat subjective, but specify the answer to the question, "What resolutions do you typically run this compset at for scientific runs?" This would require some periodic maintenance, but it seems like the burden wouldn't be too great. (We could consider whether it makes sense to have a default value that applies to all compsets defined in a given file. This might make sense for I compsets, but maybe not F compsets or some others. The downside is that it could make it easy to forget to add a compset-specific list in cases where a given compset differs from the default: it might be safest just to require this to be specified explicitly for each compset.)
For (a) and (b) I'm coming to like the idea of using something like config_comply.yml (whether it's in yaml or xml), because that allows grid-centric and compset-centric rules to all be specified in the same place. However, I feel that it's problematic to have some rules specified in config_grids.xml and others specified in config_comply.yml: I think we want all of these rules in a single place that is accessible from both the GUI and CIME's command-line tools.
@alperaltuntas @mvertens @jedwards4b @briandobbins
The text was updated successfully, but these errors were encountered: