Skip to content
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

Implement a simple NpmManager #2028

Merged
merged 26 commits into from
Oct 4, 2023
Merged

Conversation

ktarasenko
Copy link
Contributor

@ktarasenko ktarasenko commented Jun 7, 2023

IMPORTANT: All PRs must be linked to an issue (except for extremely trivial and straightforward changes).

Fixes #1937

Description
Introduces a simple way to download Implementation Guides and Knowledge Artifacts from the NPM package server.

Alternative(s) considered
I spent some amount of time trying to port the NpmManager from Cqf framework to support android, but the amount of work to make the underlying HAPI machinery was more than the actual implementation of the simple NPM client.
Key difference to Cqf/Hapi solution:

  • The implementation reads files one-by-one and doesn't require keeping the whole NPM package in memory
  • hapi NPM client has a long tail of features to support edge cases that might or might not be necessary to communicate to the simple NPM server (searching over the package manager, intensive caching, resolving packages using external indices), For simplicity, most of them were omitted in the implementation, but might be necessary after the extensive testing

Type
Feature

Screenshots (if applicable)

Checklist

  • I have read and acknowledged the Code of conduct.
  • I have read the Contributing page.
  • I have signed the Google Individual CLA, or I am covered by my company's Corporate CLA.
  • I have discussed my proposed solution with code owners in the linked issue(s) and we have agreed upon the general approach.
  • I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the style guide of this project.
  • I have run ./gradlew check and ./gradlew connectedCheck to test my changes locally.
  • I have built and run the demo app(s) to verify my change fixes the issue and/or does not break the demo app(s).

@ktarasenko ktarasenko marked this pull request as ready for review June 7, 2023 21:24
@ktarasenko ktarasenko requested review from a team and santosh-pingle as code owners June 7, 2023 21:24
@ktarasenko ktarasenko requested a review from jingtang10 June 7, 2023 21:24
@ktarasenko ktarasenko requested a review from jingtang10 July 14, 2023 14:47
@omarismail94
Copy link
Contributor

@ktarasenko can you resolve the dependency conflict and tag Jing or I when done? We can probably merge this PR!

@ktarasenko ktarasenko assigned jingtang10 and unassigned ktarasenko Aug 18, 2023
Copy link
Collaborator

@aditya-07 aditya-07 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a few comments.

@jingtang10 jingtang10 enabled auto-merge (squash) October 4, 2023 15:23
Copy link
Collaborator

@aditya-07 aditya-07 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jingtang10 jingtang10 merged commit ddb2a7f into google:master Oct 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Complete
Development

Successfully merging this pull request may close these issues.

[IgManager] Support downloading IGs from the remote Package Manager
4 participants