Repository: dbt-labs/dbt-core
Pull request: Clarify "incompatible package version" error msg
resolves #4586 

### Description
Gives an actionable error message when a package isn’t compatible with the current version of dbt core.

### Checklist

- [x] I have signed the [CLA](https://docs.getdbt.com/docs/contributor-license-agreements)
- [ ] I have run this code in development and it appears to resolve the stated issue
- [ ] This PR includes tests, or tests are not required/relevant for this PR
- [ ] I have updated the `CHANGELOG.md` and added information about my change


Problem statement:
[CT-57] [Feature] Clarify what to do when getting a version incompatibility error
### Is there an existing feature request for this?

- [X] I have searched the existing issues

### Describe the Feature

When trying to run dbt with a package that's incompatible due to require-dbt-version, the error message says "Check the requirements for the 'dbt_utils' package, or run dbt again with--no-version-check". 

I think "Check the requirements" is too ambiguous - we could direct them to check for an updated version of the package. 



### Describe alternatives you've considered

Extra for experts _could_ be to go and check the hub automatically (if it's a hosted package), but that would slow down the response due to the network overhead and potentially couple some things too close together 🤔 

### Who will this benefit?

People who are confused when upgrading dbt versions. Post 1.0 this should be less of an issue, but there's a lot of users who are still to update to 1.0 for the first time so there's still time for this to be relevant. 

### Are you interested in contributing this feature?

Definitely if it's just a phrasing change; maybe if we start futzing around with the hub. 

### Anything else?

_No response_

Hints from issue discussion:

Commit message: Clarify "incompatible package version" error msg

Patch to review:
diff --git a/core/dbt/config/project.py b/core/dbt/config/project.py
index e343d5c860c..8f4a931522c 100644
--- a/core/dbt/config/project.py
+++ b/core/dbt/config/project.py
@@ -45,7 +45,7 @@
 This version of dbt is not supported with the '{package}' package.
   Installed version of dbt: {installed}
   Required version of dbt for '{package}': {version_spec}
-Check the requirements for the '{package}' package, or run dbt again with \
+Check for an updated version of the '{package}' package, or run dbt again with \
 --no-version-check
 """
 
@@ -54,7 +54,7 @@
 The package version requirement can never be satisfied for the '{package}
 package.
   Required versions of dbt for '{package}': {version_spec}
-Check the requirements for the '{package}' package, or run dbt again with \
+Check for an updated version of the '{package}' package, or run dbt again with \
 --no-version-check
 """
 


Code review comments:
diff_hunk: @@ -45,7 +45,7 @@
 This version of dbt is not supported with the '{package}' package.
   Installed version of dbt: {installed}
   Required version of dbt for '{package}': {version_spec}
-Check the requirements for the '{package}' package, or run dbt again with \
+Check for an updated version of the '{package}' package, or run dbt again with \
path: core/dbt/config/project.py
text: @user1:
Would there be any scenario where we would need an older version of a package and not the newest? Honestly not sure so just asking

@author:
Interesting! I guess if you started the 1.0 upgrade process, changed your dbt-utils to 0.8.0, then abandoned ship and went back to 0.21, then you'd run into the same error message and should technically go to an _older_ version...

This assumes that you merged your changes into main before you were confident in the entire migration which sounds ill-advised, but is possible. 

@author:
@user1 i about it more, I'd also be on board with the phrasing "a different version" if we really wanted to protect against that edge case 

@user1:
Thanks @author! I wasn't sure how likely it was to happen. I just was worried about giving too specific of instructions and have them be incorrect for an edge case