-
Notifications
You must be signed in to change notification settings - Fork 286
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
fix(deps): fix batch of missing production dependencies v2.0.0-rc.1 #3345
Merged
petermetz
merged 1 commit into
hyperledger-cacti:main
from
petermetz:fix-missing-production-dependencies-issue-3344
Jun 24, 2024
Merged
fix(deps): fix batch of missing production dependencies v2.0.0-rc.1 #3345
petermetz
merged 1 commit into
hyperledger-cacti:main
from
petermetz:fix-missing-production-dependencies-issue-3344
Jun 24, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
petermetz
requested review from
takeutak,
izuru0,
jagpreetsinghsasan,
VRamakrishna,
sandeepnRES and
outSH
as code owners
June 21, 2024 01:26
petermetz
added a commit
to petermetz/cacti
that referenced
this pull request
Jun 21, 2024
1. The depcheck tool we use have not correctly discovered some of the missing dependencies that we have because it only verifies that the imported dependency is present SOMEwhere in the package.json file, not that it is specifically present in the production dependencies section which leads to crashes and broken packages due to the API server not installing dev dependencies when instantiating a plugin and therefore missing a few of the dependencies that are otherwise very much needed at runtime in production. 2. The solution to the problem was to implement our own typescript parsing with babel and then double check the work of depcheck to make sure that the dependencies that it marks as "no issues" are actually OK and have no issues. 3. The hardest edge case was type imports e.g. `import type { Express } from "express";` because the import was there, but we did not actually need that dependency in the production dependencies as long as ALL of the imports to it in the given package were type imports. To robustly verify this being the case or not we had to pull out the big guns and parse all the typescript code per package to make sure that we've looked at every single import of the dependency in question at every single code file of the package in question. Depends on hyperledger-cacti#3345 Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
5 tasks
outSH
approved these changes
Jun 21, 2024
sandeepnRES
approved these changes
Jun 24, 2024
Huge diff, simple changes: 1. Where applicable, I added `import type {..}` instead of `import {...}` so that we do not need the dependency in the production dependencies. 2. For imports where the code imported was actually used at runtime I altered the package.json file so that the dependency is marked as a production dependency and therefore won't crash anymore when being imported in isolation (e.g. outside of the mono-repo dev build). Fixes hyperledger-cacti#3344 Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz
force-pushed
the
fix-missing-production-dependencies-issue-3344
branch
from
June 24, 2024 07:02
b5ebd12
to
cc11009
Compare
petermetz
added a commit
to petermetz/cacti
that referenced
this pull request
Jun 25, 2024
1. The depcheck tool we use have not correctly discovered some of the missing dependencies that we have because it only verifies that the imported dependency is present SOMEwhere in the package.json file, not that it is specifically present in the production dependencies section which leads to crashes and broken packages due to the API server not installing dev dependencies when instantiating a plugin and therefore missing a few of the dependencies that are otherwise very much needed at runtime in production. 2. The solution to the problem was to implement our own typescript parsing with babel and then double check the work of depcheck to make sure that the dependencies that it marks as "no issues" are actually OK and have no issues. 3. The hardest edge case was type imports e.g. `import type { Express } from "express";` because the import was there, but we did not actually need that dependency in the production dependencies as long as ALL of the imports to it in the given package were type imports. To robustly verify this being the case or not we had to pull out the big guns and parse all the typescript code per package to make sure that we've looked at every single import of the dependency in question at every single code file of the package in question. Depends on hyperledger-cacti#3345 Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz
added a commit
to petermetz/cacti
that referenced
this pull request
Jun 27, 2024
1. The depcheck tool we use have not correctly discovered some of the missing dependencies that we have because it only verifies that the imported dependency is present SOMEwhere in the package.json file, not that it is specifically present in the production dependencies section which leads to crashes and broken packages due to the API server not installing dev dependencies when instantiating a plugin and therefore missing a few of the dependencies that are otherwise very much needed at runtime in production. 2. The solution to the problem was to implement our own typescript parsing with babel and then double check the work of depcheck to make sure that the dependencies that it marks as "no issues" are actually OK and have no issues. 3. The hardest edge case was type imports e.g. `import type { Express } from "express";` because the import was there, but we did not actually need that dependency in the production dependencies as long as ALL of the imports to it in the given package were type imports. To robustly verify this being the case or not we had to pull out the big guns and parse all the typescript code per package to make sure that we've looked at every single import of the dependency in question at every single code file of the package in question. Depends on hyperledger-cacti#3345 Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
petermetz
added a commit
that referenced
this pull request
Jun 27, 2024
1. The depcheck tool we use have not correctly discovered some of the missing dependencies that we have because it only verifies that the imported dependency is present SOMEwhere in the package.json file, not that it is specifically present in the production dependencies section which leads to crashes and broken packages due to the API server not installing dev dependencies when instantiating a plugin and therefore missing a few of the dependencies that are otherwise very much needed at runtime in production. 2. The solution to the problem was to implement our own typescript parsing with babel and then double check the work of depcheck to make sure that the dependencies that it marks as "no issues" are actually OK and have no issues. 3. The hardest edge case was type imports e.g. `import type { Express } from "express";` because the import was there, but we did not actually need that dependency in the production dependencies as long as ALL of the imports to it in the given package were type imports. To robustly verify this being the case or not we had to pull out the big guns and parse all the typescript code per package to make sure that we've looked at every single import of the dependency in question at every single code file of the package in question. Depends on #3345 Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
sandeepnRES
pushed a commit
to sandeepnRES/cacti
that referenced
this pull request
Jul 30, 2024
1. The depcheck tool we use have not correctly discovered some of the missing dependencies that we have because it only verifies that the imported dependency is present SOMEwhere in the package.json file, not that it is specifically present in the production dependencies section which leads to crashes and broken packages due to the API server not installing dev dependencies when instantiating a plugin and therefore missing a few of the dependencies that are otherwise very much needed at runtime in production. 2. The solution to the problem was to implement our own typescript parsing with babel and then double check the work of depcheck to make sure that the dependencies that it marks as "no issues" are actually OK and have no issues. 3. The hardest edge case was type imports e.g. `import type { Express } from "express";` because the import was there, but we did not actually need that dependency in the production dependencies as long as ALL of the imports to it in the given package were type imports. To robustly verify this being the case or not we had to pull out the big guns and parse all the typescript code per package to make sure that we've looked at every single import of the dependency in question at every single code file of the package in question. Depends on hyperledger-cacti#3345 Signed-off-by: Peter Somogyvari <peter.somogyvari@accenture.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Huge diff, simple changes:
import type {..}
instead ofimport {...}
so that we do not need the dependency in the production dependencies.
altered the package.json file so that the dependency is marked as a production
dependency and therefore won't crash anymore when being imported in isolation
(e.g. outside of the mono-repo dev build).
Fixes #3344
Signed-off-by: Peter Somogyvari peter.somogyvari@accenture.com
Pull Request Requirements
upstream/main
branch and squashed into single commit to help maintainers review it more efficient and to avoid spaghetti git commit graphs that obfuscate which commit did exactly what change, when and, why.-s
flag when usinggit commit
command. You may refer to this link for more information.Character Limit
A Must Read for Beginners
For rebasing and squashing, here's a must read guide for beginners.