Open SCjona opened 2 days ago
Hi there, multiple points here: What do you mean by "I cannot continue updating dependencies until it finishes"? Do you mean that it's blocking or that you want the scan to finish to fresh your immediate changes?
Also, why don't you use the "Update all" feature instead of upgrading one by one? If you want all except one or two, you can upgrade all and revert some lines with the Git feature in the margin. I guess you're doing that because you want some to the latest version and some others to the satisfying version or something?
About the plugin features: I don't control the scan trigger myself, the IDE does so it's a bit hard to overwrite that behavior. The highlighting is also controlled by the IDE and I also noticed myself it can be slow to update.
I originally didn't think it could be an issue anyway, because package.json
is not a file you edit as often as your source code; you add/upgrade some deps and move on, you know
What do you mean by "I cannot continue updating dependencies until it finishes"? Do you mean that it's blocking or that you want the scan to finish to fresh your immediate changes?
I'm using the quick fix popovers to update the dependencies, so when the highlights disappear the quick fix actions disappear too, so I have to wait for it to finish and provide highlights again so I can continue with the quickfixes.
Also, why don't you use the "Update all" feature instead of upgrading one by one? If you want all except one or two, you can upgrade all and revert some lines with the Git feature in the margin. I guess you're doing that because you want some to the latest version and some others to the satisfying version or something?
There are like 6-7 packages which I currently don't update due to breaking changes which I do not have the capacity to fix right away (e.g. material ui v5 -> v6) and incompatibilities with other packages (e.g. eslint). I also prefer working off the package.json as kind of a task list and see which packages had updates and what kind of update (major version or minor version change). I agree I could do Update all and then review and revert the lines with the diff viewer, but for me personally I just rather work though the package.json directly. So I guess consider this more of an UX request.
About the plugin features: I don't control the scan trigger myself, the IDE does so it's a bit hard to overwrite that behavior. The highlighting is also controlled by the IDE and I also noticed myself it can be slow to update. I originally didn't think it could be an issue anyway, because package.json is not a file you edit as often as your source code; you add/upgrade some deps and move on, you know
I think the main culprit is just that Checking for updated/deprecated packages takes too long (especially deprecated packages; see the IDE status bar in the video). I think more aggressive caching could solve this issue, although I haven't looked at your code so I do not know if this is feasible.
I'm using the quick fix popovers to update the dependencies, so when the highlights disappear the quick fix actions disappear too, so I have to wait for it to finish and provide highlights again so I can continue with the quickfixes.
I see!
There are like 6-7 packages which I currently don't update due to breaking changes which I do not have the capacity to fix right away (e.g. material ui v5 -> v6) and incompatibilities with other packages (e.g. eslint). I also prefer working off the package.json as kind of a task list and see which packages had updates and what kind of update (major version or minor version change). I agree I could do Update all and then review and revert the lines with the diff viewer, but for me personally I just rather work though the package.json directly. So I guess consider this more of an UX request.
Completely fair.
I think the main culprit is just that Checking for updated/deprecated packages takes too long (especially deprecated packages; see the IDE status bar in the video). I think more aggressive caching could solve this issue, although I haven't looked at your code so I do not know if this is feasible.
Every non-first check is already automatically cached, so there very isn't much I can do about it :(
The real solution would be a debouncing mechanism, even though as I said I do not myself trigger the scans... I might need to make a configurable manual debouncing, but it looks a bit hacky in my opinion.
What do you think?
Are you sure the caching works?
I copied the log entries created while doing the updating in package.json from idea.log
to log-excerpt.txt
Then I ran some line counts with the messages you log in NPMJSClient
.
grep 'Getting latest version' log-excerpt.txt | wc -l
357
grep 'Getting all versions' log-excerpt.txt | wc -l
0
grep 'Getting deprecation status' log-excerpt.txt | wc -l
550
Looks like it did ~900 HTTP requests in 2 minutes (if i read your code correctly)
This is a log excerpt for one of the packages I did not update:
grep '@mui/material' log-excerpt.txt
2024-09-17 08:59:59,010 [1613855] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package @mui/material
2024-09-17 08:59:59,010 [1613855] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package @mui/material
2024-09-17 09:00:03,969 [1618814] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for @mui/material with comparator ^5.16.7
2024-09-17 09:00:03,969 [1618814] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for @mui/material are still valid, returning them
2024-09-17 09:00:04,796 [1619641] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package @mui/material
2024-09-17 09:00:04,796 [1619641] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package @mui/material
2024-09-17 09:00:08,892 [1623737] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for @mui/material with comparator ^5.16.7
2024-09-17 09:00:08,892 [1623737] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for @mui/material are still valid, returning them
2024-09-17 09:00:11,499 [1626344] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package @mui/material
2024-09-17 09:00:11,499 [1626344] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package @mui/material
2024-09-17 09:00:16,489 [1631334] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for @mui/material with comparator ^5.16.7
2024-09-17 09:00:16,489 [1631334] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for @mui/material are still valid, returning them
2024-09-17 09:00:17,326 [1632171] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package @mui/material
2024-09-17 09:00:17,326 [1632171] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package @mui/material
2024-09-17 09:00:21,422 [1636267] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for @mui/material with comparator ^5.16.7
2024-09-17 09:00:21,422 [1636267] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for @mui/material are still valid, returning them
2024-09-17 09:00:23,992 [1638837] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package @mui/material
2024-09-17 09:00:23,993 [1638838] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package @mui/material
2024-09-17 09:00:28,634 [1643479] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for @mui/material with comparator ^5.16.7
2024-09-17 09:00:28,635 [1643480] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for @mui/material are still valid, returning them
2024-09-17 09:00:29,475 [1644320] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package @mui/material
2024-09-17 09:00:29,475 [1644320] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package @mui/material
2024-09-17 09:00:33,761 [1648606] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for @mui/material with comparator ^5.16.7
2024-09-17 09:00:33,761 [1648606] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for @mui/material are still valid, returning them
2024-09-17 09:00:34,713 [1649558] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package @mui/material
2024-09-17 09:00:34,713 [1649558] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package @mui/material
2024-09-17 09:00:39,076 [1653921] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for @mui/material with comparator ^5.16.7
2024-09-17 09:00:39,076 [1653921] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for @mui/material are still valid, returning them
2024-09-17 09:00:41,302 [1656147] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package @mui/material
2024-09-17 09:00:41,302 [1656147] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package @mui/material
2024-09-17 09:00:46,250 [1661095] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for @mui/material with comparator ^5.16.7
2024-09-17 09:00:46,252 [1661097] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for @mui/material are still valid, returning them
2024-09-17 09:00:47,178 [1662023] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package @mui/material
2024-09-17 09:00:47,178 [1662023] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package @mui/material
2024-09-17 09:00:52,126 [1666971] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for @mui/material with comparator ^5.16.7
2024-09-17 09:00:52,126 [1666971] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for @mui/material are still valid, returning them
2024-09-17 09:00:53,336 [1668181] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package @mui/material
2024-09-17 09:00:53,336 [1668181] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package @mui/material
2024-09-17 09:00:57,500 [1672345] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for @mui/material with comparator ^5.16.7
2024-09-17 09:00:57,500 [1672345] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for @mui/material are still valid, returning them
2024-09-17 09:01:01,010 [1675855] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package @mui/material
2024-09-17 09:01:01,010 [1675855] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package @mui/material
Yep, you can see it returns the cached version in your last exempt "Getting*" ≠ fetching
You can try that yourself, try invalidating the plugin’s cache, edit the file to retrigger the scan, and you’ll see it’s significantly slower than the next ones (and the logs should slightly differ on that first scan)
Yes version is cached, but what about deprecation status?
Also the following excerpt is from a package that was updated:
2024-09-17 09:00:02,254 [1617099] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package mdi-material-ui
2024-09-17 09:00:02,254 [1617099] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:04,320 [1619165] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for mdi-material-ui with comparator ^7.9.1
2024-09-17 09:00:04,320 [1619165] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for mdi-material-ui are still valid, returning them
2024-09-17 09:00:07,742 [1622587] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package mdi-material-ui
2024-09-17 09:00:07,742 [1622587] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:09,143 [1623988] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for mdi-material-ui with comparator ^7.9.1
2024-09-17 09:00:09,143 [1623988] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for mdi-material-ui are still valid, returning them
2024-09-17 09:00:13,109 [1627954] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package mdi-material-ui
2024-09-17 09:00:13,109 [1627954] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:16,890 [1631735] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for mdi-material-ui with comparator ^7.9.1
2024-09-17 09:00:16,890 [1631735] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for mdi-material-ui are still valid, returning them
2024-09-17 09:00:19,000 [1633845] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package mdi-material-ui
2024-09-17 09:00:19,000 [1633845] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:21,723 [1636568] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for mdi-material-ui with comparator ^7.9.1
2024-09-17 09:00:21,723 [1636568] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for mdi-material-ui are still valid, returning them
2024-09-17 09:00:25,918 [1640763] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package mdi-material-ui
2024-09-17 09:00:25,919 [1640764] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:28,986 [1643831] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for mdi-material-ui with comparator ^7.9.1
2024-09-17 09:00:28,986 [1643831] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Cached versions for mdi-material-ui are still valid, returning them
2024-09-17 09:00:31,248 [1646093] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package mdi-material-ui
2024-09-17 09:00:31,248 [1646093] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:34,163 [1649008] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for mdi-material-ui with comparator ^7.9.2
2024-09-17 09:00:34,163 [1649008] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting latest version for package mdi-material-ui
2024-09-17 09:00:34,163 [1649008] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:34,236 [1649081] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Latest version for package mdi-material-ui found online: 7.9.2
2024-09-17 09:00:34,236 [1649081] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - No update available for mdi-material-ui
2024-09-17 09:00:36,273 [1651118] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package mdi-material-ui
2024-09-17 09:00:36,273 [1651118] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:39,377 [1654222] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for mdi-material-ui with comparator ^7.9.2
2024-09-17 09:00:39,377 [1654222] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting latest version for package mdi-material-ui
2024-09-17 09:00:39,377 [1654222] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:39,441 [1654286] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Latest version for package mdi-material-ui found online: 7.9.2
2024-09-17 09:00:39,441 [1654286] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - No update available for mdi-material-ui
2024-09-17 09:00:43,029 [1657874] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package mdi-material-ui
2024-09-17 09:00:43,029 [1657874] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:46,601 [1661446] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for mdi-material-ui with comparator ^7.9.2
2024-09-17 09:00:46,601 [1661446] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting latest version for package mdi-material-ui
2024-09-17 09:00:46,601 [1661446] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:46,672 [1661517] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Latest version for package mdi-material-ui found online: 7.9.2
2024-09-17 09:00:46,672 [1661517] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - No update available for mdi-material-ui
2024-09-17 09:00:48,852 [1663697] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package mdi-material-ui
2024-09-17 09:00:48,853 [1663698] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:52,477 [1667322] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for mdi-material-ui with comparator ^7.9.2
2024-09-17 09:00:52,477 [1667322] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting latest version for package mdi-material-ui
2024-09-17 09:00:52,477 [1667322] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:52,543 [1667388] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Latest version for package mdi-material-ui found online: 7.9.2
2024-09-17 09:00:52,543 [1667388] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - No update available for mdi-material-ui
2024-09-17 09:00:55,055 [1669900] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package mdi-material-ui
2024-09-17 09:00:55,055 [1669900] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:57,951 [1672796] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - Checking for updates for mdi-material-ui with comparator ^7.9.2
2024-09-17 09:00:57,952 [1672797] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting latest version for package mdi-material-ui
2024-09-17 09:00:57,952 [1672797] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
2024-09-17 09:00:58,025 [1672870] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Latest version for package mdi-material-ui found online: 7.9.2
2024-09-17 09:00:58,025 [1672870] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.PackageUpdateChecker - No update available for mdi-material-ui
2024-09-17 09:01:02,671 [1677516] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting deprecation status for package mdi-material-ui
2024-09-17 09:01:02,671 [1677516] INFO - #com.github.warningimhack3r.npmupdatedependencies.backend.engine.NPMJSClient - Getting registry for package mdi-material-ui
looks like after the update the cache is no longer working (assuming NPMJSClient Getting latest version
triggers a HTTP request)
Yep both do use caching.
You can see that with debug logs by adding com.github.warningimhack3r.npmupdatedependencies:all
in Debug Log Settings
(I think?) in a submenu of the Help
menu
looks like npm is run for every package on the deprecation check. each npm execution (example time npm v mdi-material-ui deprecated --registry=https://registry.npmjs.org
) takes 400-1000ms real time (and ~400ms CPU time) on my system
Interesting, thanks for investigating! I’ll take a look on my PC, keep you updated in about an hour!
i added some debug logging for the HTTP requests:
also noticed that my github based dependency (components-care) is not ignored, i'll open a separate issue for that
Update for the deprecations: I indeed only cache deprecations that are actually found, I don't cache the fact that there is no deprecation for a given package! That's why it's executing the npm command each time instead of just once for non-deprecated dependencies. I'll fix that.
Also, what do you want to show me with this request log?
Also, what do you want to show me with this request log?
That the latest version isn't properly cached. these are 800 HTTP requests in a little over one minute, many executed multiple times in that timespan.
Could that have the same reason? You only cache when an update is found, but not the fact that there are no updates?
Yes, that's also what's happening. However, while deprecations rarely happen over the span of a minute, I cannot assume that no update found on the first trip means no update ever again on the latter trips.
I could, however, cache the patterns I've checked against to avoid checking them multiple times.
I cannot assume that no update found on the first trip means no update ever again on the latter trips.
True, but you could use time based caching, e.g. 10 minutes or an hour
I could, however, cache the patterns I've checked against to avoid checking them multiple times.
I wouldn't cache this based on the pattern, just time. Some people just keep their IDE running all the time (e.g. on a laptop) and if you don't invalidate cache after some time it might become an issue on those systems.
Hmm yeah, you're right on that one. However, if you change a version, I have to instantly check again; the time-based invalidation is only for identical values. Will implement that!
What is the issue?
When I update dependencies in a project with a few dependencies it starts rechecking for updates/deprecations and I cannot continue updating dependencies until it finishes.
See this video (quick fix popovers are not visible due to window capture recording) https://github.com/user-attachments/assets/120e64b6-5184-438b-b7a4-82c874ad520d
What are the steps to reproduce this issue?
You can reproduce this in this project & commit: https://github.com/Samedis-care/identity-management-frontend/tree/d054598b6bcd6654cd103c93a59373f9abe72b7e
What were you expecting to happen?
Highlights don't disappear and I can continue with quick fix actions to update the dependencies
Paste any relevant logs, error output, etc.
No response
What OS are you experiencing the problem on?
Linux
Additional platform information
Duplicates