-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
[CT-1986] [Feature] add packages to manifest.json #6818
Comments
@noel thanks for opening this ! I'm guessing that both this issue and the following arose in the context of the same troubleshooting session? Reaction to your proposalAs-is, I don't think the we'd actually have the necessary version information when the manifest is constructed. dbt knows the content within your But... there's some recent discussion that could facilitate your proposal: Specifically, one of the things discussed is the What's your gut reaction to eventually writing package versions into |
@dbeatty10 Spot on, on all counts. To be clear, the full content of packages is stored in I know we recently experienced this with our own internal analytics project, while upgrading to Related: a very cool thread in #dbt-core-development, from @z3z1ma, proposing a similar UX improvement to the explainability of why certain nodes are detected as "modified." I think that would also go a long way toward helping folks troubleshooting, by making it possible to isolate & surface root cause of the modification. As far as the specific ask:
I don't have a concern here, we just don't have a natural place to stick this info today. (The |
I have since gotten more information and I don't think my feature request would solve this problem. My initial theory was that someone modified the version in their Since most people were detecting changes I had the people who did not detect changes delete their packages and rerun Upon further investigation I found this So, my guess is that the maintainer made a change June 1, 2022 and did not change the version of the package. So, if someone had installed the package prior to that date and the prd manifest was uploaded from their machine, then anyone who installs the package after that date would get the new commit and thus see all the In the commit we see a new variable added to their So, merely storing the version of the package would not suffice if the version is kept the same. Not sure much can be done in this scenario. |
i think #6643 is the answer to my request. We can close this one. I left a comment there. |
I'm not advocating for the following, just exploring the art of the possible. Currently, the manifest does contain version metadata for
Maybe we do want one or both of these as they would affect the contents within the manifest? Diff for a manifest containing more version numbersLet's pretend for a moment that #6735 is merged as-is. When running
{
"packages": {
"entechlog/dbt_snow_mask": {
"source": "hub",
"version": "0.1.9"
}
}
} And then imagine that this content is dropped as-is into {
"metadata": {
"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v8.json",
"dbt_version": "1.4.1",
...
"adapter_type": "snowflake"
},
"packages": {
"entechlog/dbt_snow_mask": {
"source": "hub",
"version": "0.1.9"
}
}, Then after upgrading dbt_snow_mask to 0.2.3, re-running *** /dev/fd/12 2023-02-01 11:59:27.000000000 -0700
--- /dev/fd/13 2023-02-01 11:59:27.000000000 -0700
***************
*** 11,17 ****
"packages": {
"entechlog/dbt_snow_mask": {
"source": "hub",
! "version": "0.1.9"
}
},
"nodes": {
--- 11,17 ----
"packages": {
"entechlog/dbt_snow_mask": {
"source": "hub",
! "version": "0.2.3"
}
},
"nodes": { * Click for the exact methods used to diffAdded this parameterized alias to the end of mdiff() {
diff -c \
<(grep -v -e created_at -e generated_at -e invocation_id <(python -m json.tool $1)) \
<(grep -v -e created_at -e generated_at -e invocation_id <(python -m json.tool $2))
} Re-sourced to load that new source ~/.zshrc` Then did the actual diff like: mdiff manifest-1.json manifest-2.json Next stepsPer request, I'll close this request. We can always re-open it again if it becomes relevant. |
Is this your first time submitting a feature request?
Describe the feature
When comparing manifests for slim CI, it may be that the user happens to have a different version of a package installed than the one used when the manifest was originally generated.
The only way to see that this is the case is to see the code for the offending macro for the given package. If the packages and their versions were stored in the manifest then they could be compared across different manifests.
Describe alternatives you've considered
Comparing the contents of two manifests.
Who will this benefit?
Anyone troubleshooting problems with state:modified.
Are you interested in contributing this feature?
No response
Anything else?
No response
The text was updated successfully, but these errors were encountered: