-
Notifications
You must be signed in to change notification settings - Fork 12.8k
Delay load configured project referenced from external project when opening it #25884
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
Conversation
4716d31
to
8c5ae9b
Compare
…igured project referenced from external project when opening it
Since external projects are needed to be uptodate when opening file, so in most likely scenarios these will be loaded anyways so there is no saving in postponing this work
…ynchronizeProjectList for project opened by external project
8c5ae9b
to
f67bdd4
Compare
@RyanCavanaugh this is the PR that does lazy loading of configured projects as discussed offline. |
const data: ProjectInfoTelemetryEventData = { | ||
projectId: this.host.createSHA256Hash(projectKey), | ||
projectId: this.host.createSHA256Hash(project.projectName), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@amcasey is this OK?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since projects are not 1:1 with users or devices and the hash function is cryptographically secure, I understand that this is okay.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that this isnt a real change since project key was project.projectName (configFile name for configured projects and external project name ) so this is just instead of passing it through the calls uses it directly through the key, hence no changes in the tests as well.
Overall LGTM; just had a GDPR compliance check |
With this change Configured projects that are part of external project, are just is just created but reading the config file and creating program based on the root files is postponed to when needed.
To delay loading for config file and program the changes included are:
compileOnSaveAffectedFileList
do not load all projects if the project to get list on affected file list is specifiedsynchronizeProjectList
send file names as empty list for configured projects that aren't loaded yet.