Copying the checklist we discussed in Slack here for easy reference:
[x] check whether convert.input uses any unexported functions from PEcAn.utils. If so, see where else they're used and decide whether to move them to data.atm, copy them, or export them from utils
[x] As one commit, move the convert.input function definition and man page from PEcAn.utils to PEcAn.DB.
[x] As a separate commit, update the convert.input code to remove PEcAn.DB:: in front of calls to DB functions and to add PEcAn.utils:: in front of calls to utils. It's important to do it in a separate commit because otherwise Git will just show one giant blob deleted from utils and another added to DB, with no easy way to find the differences between them. Doing it in two steps makes it pretty easy to verify that the move part didn't change anything inside the blob
[x] Review the function documentation and make any edits needed — I doubt it will, but do check
[x] Implement any needed deprecation stub in PEcAn.utils. The usual best practice is to deprecate functions slowly over several releases to give users time to update, but the circular dependency demands quicker action. Decision needed: After this change, should a call to PEcAn.utils::convert.input() fail with the function not found or should it do nothing but throw a message to use the version in PEcAn.DB?
[x] Update the changelog and both packages’ NEWS files
[x] Update all calls to convert.inputs elsewhere in PEcAn
[x] Update Rcheck_reference.log, if needed, in all the packages touched by this PR
To move
convert.input
fromutils
toDB
This replaces #3009, which accumulated enough conflicts that it was easier to redo the changes in a new branch.