Explicitly add stream to cache on cache add - #2976

Closed
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache
Closed

Explicitly add stream to cache on cache add#2976
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache

Conversation

@mjsir911

Copy link
Copy Markdown
Contributor

Pacote doesn't do this automatically anymore

Fixesnpm/pacote#73 & Fixes#2160

@mjsir911
mjsir911 requested a review from a team as a code ownerMarch 27, 2021 22:48
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch 4 times, most recently from d93af78 to 41a60c8CompareMarch 28, 2021 00:30
@mjsir911mjsir911 changed the title Explicitly add stream to cacheExplicitly add stream to cache on cache addMar 28, 2021
@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release semver:patch semver patch level for changes Needs Review labels Mar 29, 2021
@darcyclarkedarcyclarke added the release: next These items should be addressed in the next release label Mar 31, 2021
@isaacs

isaacs commented Mar 31, 2021

Copy link
Copy Markdown
Contributor

This is a little bit complicated.

Pacote will tee things into the cache if it's a remote fetch. If it's local, you're right, since the rewrite it just says "oh, you want a tarball? This is a tarball. Here you go!" and saves the extra work of copying the file from one place on disk to another place on disk.

So, two changes and one question. The changes:

  1. It should only explicitly pipe into cacache if it's a file: or git specifier. If it's a registry, remote, or alias spec, don't bother. (This can be determined by using npm-package-arg to parse the specifier. const npa = require('npm-package-arg'); spec = npa(spec); if (spec.type === 'remote' || spec.registry) { just return the stream } else { pipe to cacache }
  2. Cacache's folder is not just npm.config.get('cache'). We tack a _cacache path portion onto it. So you'll have to do something like the const cachePath = path.join(this.npm.cache, '_cacache') that appears elsewhere in the file, and pass that to cacache instead.

The question I have is, why do you need to add a file to the cache which is already present on disk? I'm curious about your use case.

The answer may well be that we should have an option to pacote to say "no, really, pipe this into the cache even if you don't think you have to", because the CLI should ideally remain somewhat blissfully unaware of exactly how various types of packages get handled. That is pacote's job.

@mjsir911

mjsir911 commented Mar 31, 2021 via email

Copy link
Copy Markdown
ContributorAuthor

@wraithgarwraithgar removed the release: next These items should be addressed in the next release label Mar 31, 2021
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 41a60c8 to 887fdf0CompareApril 1, 2021 01:21
Pacote doesn't do this automatically anymore
Closesnpm/pacote#73 & Closesnpm#2160
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 887fdf0 to 0e487d2CompareApril 1, 2021 01:23
@mjsir911

Copy link
Copy Markdown
ContributorAuthor

With the new changes I agree that this logic probably shouldn't be in npm-cli, feel free to close & I'll take a look at hacking onto pacote

mjsir911 added a commit to mjsir911/pacote that referenced this pull request Apr 1, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Not sure the implications of changing the return type of _istream /
adding a `cacache` to the end of the pipe, too unfamiliar with streams
Fixesnpm#73 & Fixesnpm/cli#2160
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 22, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976Close: #74
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
PR-URL: #75
Credit: @mjsir911, @isaacsClose: #75
Reviewed-by: @wraithgar, @mjsir911
mjsir911 added a commit to mjsir911/cli that referenced this pull request May 4, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
wraithgar pushed a commit to mjsir911/cli that referenced this pull request May 6, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
PR-URL: npm#3098
Credit: @mjsir911Close: npm#3098
Reviewed-by: @wraithgar
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] pacote does not add to cache [BUG] cache add tarball file does not add to cache

4 participants

@mjsir911@isaacs@wraithgar@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Explicitly add stream to cache on cache add - #2976

Closed
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache
Closed

Explicitly add stream to cache on cache add#2976
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache

Conversation

@mjsir911

Copy link
Copy Markdown
Contributor

Pacote doesn't do this automatically anymore

Fixesnpm/pacote#73 & Fixes#2160

@mjsir911
mjsir911 requested a review from a team as a code ownerMarch 27, 2021 22:48
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch 4 times, most recently from d93af78 to 41a60c8CompareMarch 28, 2021 00:30
@mjsir911mjsir911 changed the title Explicitly add stream to cacheExplicitly add stream to cache on cache addMar 28, 2021
@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release semver:patch semver patch level for changes Needs Review labels Mar 29, 2021
@darcyclarkedarcyclarke added the release: next These items should be addressed in the next release label Mar 31, 2021
@isaacs

isaacs commented Mar 31, 2021

Copy link
Copy Markdown
Contributor

This is a little bit complicated.

Pacote will tee things into the cache if it's a remote fetch. If it's local, you're right, since the rewrite it just says "oh, you want a tarball? This is a tarball. Here you go!" and saves the extra work of copying the file from one place on disk to another place on disk.

So, two changes and one question. The changes:

  1. It should only explicitly pipe into cacache if it's a file: or git specifier. If it's a registry, remote, or alias spec, don't bother. (This can be determined by using npm-package-arg to parse the specifier. const npa = require('npm-package-arg'); spec = npa(spec); if (spec.type === 'remote' || spec.registry) { just return the stream } else { pipe to cacache }
  2. Cacache's folder is not just npm.config.get('cache'). We tack a _cacache path portion onto it. So you'll have to do something like the const cachePath = path.join(this.npm.cache, '_cacache') that appears elsewhere in the file, and pass that to cacache instead.

The question I have is, why do you need to add a file to the cache which is already present on disk? I'm curious about your use case.

The answer may well be that we should have an option to pacote to say "no, really, pipe this into the cache even if you don't think you have to", because the CLI should ideally remain somewhat blissfully unaware of exactly how various types of packages get handled. That is pacote's job.

@mjsir911

mjsir911 commented Mar 31, 2021 via email

Copy link
Copy Markdown
ContributorAuthor

@wraithgarwraithgar removed the release: next These items should be addressed in the next release label Mar 31, 2021
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 41a60c8 to 887fdf0CompareApril 1, 2021 01:21
Pacote doesn't do this automatically anymore
Closesnpm/pacote#73 & Closesnpm#2160
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 887fdf0 to 0e487d2CompareApril 1, 2021 01:23
@mjsir911

Copy link
Copy Markdown
ContributorAuthor

With the new changes I agree that this logic probably shouldn't be in npm-cli, feel free to close & I'll take a look at hacking onto pacote

mjsir911 added a commit to mjsir911/pacote that referenced this pull request Apr 1, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Not sure the implications of changing the return type of _istream /
adding a `cacache` to the end of the pipe, too unfamiliar with streams
Fixesnpm#73 & Fixesnpm/cli#2160
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 22, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976Close: #74
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
PR-URL: #75
Credit: @mjsir911, @isaacsClose: #75
Reviewed-by: @wraithgar, @mjsir911
mjsir911 added a commit to mjsir911/cli that referenced this pull request May 4, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
wraithgar pushed a commit to mjsir911/cli that referenced this pull request May 6, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
PR-URL: npm#3098
Credit: @mjsir911Close: npm#3098
Reviewed-by: @wraithgar
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] pacote does not add to cache [BUG] cache add tarball file does not add to cache

4 participants

@mjsir911@isaacs@wraithgar@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Explicitly add stream to cache on cache add - #2976

Closed
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache
Closed

Explicitly add stream to cache on cache add#2976
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache

Conversation

@mjsir911

Copy link
Copy Markdown
Contributor

Pacote doesn't do this automatically anymore

Fixesnpm/pacote#73 & Fixes#2160

@mjsir911
mjsir911 requested a review from a team as a code ownerMarch 27, 2021 22:48
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch 4 times, most recently from d93af78 to 41a60c8CompareMarch 28, 2021 00:30
@mjsir911mjsir911 changed the title Explicitly add stream to cacheExplicitly add stream to cache on cache addMar 28, 2021
@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release semver:patch semver patch level for changes Needs Review labels Mar 29, 2021
@darcyclarkedarcyclarke added the release: next These items should be addressed in the next release label Mar 31, 2021
@isaacs

isaacs commented Mar 31, 2021

Copy link
Copy Markdown
Contributor

This is a little bit complicated.

Pacote will tee things into the cache if it's a remote fetch. If it's local, you're right, since the rewrite it just says "oh, you want a tarball? This is a tarball. Here you go!" and saves the extra work of copying the file from one place on disk to another place on disk.

So, two changes and one question. The changes:

  1. It should only explicitly pipe into cacache if it's a file: or git specifier. If it's a registry, remote, or alias spec, don't bother. (This can be determined by using npm-package-arg to parse the specifier. const npa = require('npm-package-arg'); spec = npa(spec); if (spec.type === 'remote' || spec.registry) { just return the stream } else { pipe to cacache }
  2. Cacache's folder is not just npm.config.get('cache'). We tack a _cacache path portion onto it. So you'll have to do something like the const cachePath = path.join(this.npm.cache, '_cacache') that appears elsewhere in the file, and pass that to cacache instead.

The question I have is, why do you need to add a file to the cache which is already present on disk? I'm curious about your use case.

The answer may well be that we should have an option to pacote to say "no, really, pipe this into the cache even if you don't think you have to", because the CLI should ideally remain somewhat blissfully unaware of exactly how various types of packages get handled. That is pacote's job.

@mjsir911

mjsir911 commented Mar 31, 2021 via email

Copy link
Copy Markdown
ContributorAuthor

@wraithgarwraithgar removed the release: next These items should be addressed in the next release label Mar 31, 2021
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 41a60c8 to 887fdf0CompareApril 1, 2021 01:21
Pacote doesn't do this automatically anymore
Closesnpm/pacote#73 & Closesnpm#2160
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 887fdf0 to 0e487d2CompareApril 1, 2021 01:23
@mjsir911

Copy link
Copy Markdown
ContributorAuthor

With the new changes I agree that this logic probably shouldn't be in npm-cli, feel free to close & I'll take a look at hacking onto pacote

mjsir911 added a commit to mjsir911/pacote that referenced this pull request Apr 1, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Not sure the implications of changing the return type of _istream /
adding a `cacache` to the end of the pipe, too unfamiliar with streams
Fixesnpm#73 & Fixesnpm/cli#2160
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 22, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976Close: #74
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
PR-URL: #75
Credit: @mjsir911, @isaacsClose: #75
Reviewed-by: @wraithgar, @mjsir911
mjsir911 added a commit to mjsir911/cli that referenced this pull request May 4, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
wraithgar pushed a commit to mjsir911/cli that referenced this pull request May 6, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
PR-URL: npm#3098
Credit: @mjsir911Close: npm#3098
Reviewed-by: @wraithgar
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] pacote does not add to cache [BUG] cache add tarball file does not add to cache

4 participants

@mjsir911@isaacs@wraithgar@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Explicitly add stream to cache on cache add - #2976

Closed
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache
Closed

Explicitly add stream to cache on cache add#2976
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache

Conversation

@mjsir911

Copy link
Copy Markdown
Contributor

Pacote doesn't do this automatically anymore

Fixesnpm/pacote#73 & Fixes#2160

@mjsir911
mjsir911 requested a review from a team as a code ownerMarch 27, 2021 22:48
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch 4 times, most recently from d93af78 to 41a60c8CompareMarch 28, 2021 00:30
@mjsir911mjsir911 changed the title Explicitly add stream to cacheExplicitly add stream to cache on cache addMar 28, 2021
@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release semver:patch semver patch level for changes Needs Review labels Mar 29, 2021
@darcyclarkedarcyclarke added the release: next These items should be addressed in the next release label Mar 31, 2021
@isaacs

isaacs commented Mar 31, 2021

Copy link
Copy Markdown
Contributor

This is a little bit complicated.

Pacote will tee things into the cache if it's a remote fetch. If it's local, you're right, since the rewrite it just says "oh, you want a tarball? This is a tarball. Here you go!" and saves the extra work of copying the file from one place on disk to another place on disk.

So, two changes and one question. The changes:

  1. It should only explicitly pipe into cacache if it's a file: or git specifier. If it's a registry, remote, or alias spec, don't bother. (This can be determined by using npm-package-arg to parse the specifier. const npa = require('npm-package-arg'); spec = npa(spec); if (spec.type === 'remote' || spec.registry) { just return the stream } else { pipe to cacache }
  2. Cacache's folder is not just npm.config.get('cache'). We tack a _cacache path portion onto it. So you'll have to do something like the const cachePath = path.join(this.npm.cache, '_cacache') that appears elsewhere in the file, and pass that to cacache instead.

The question I have is, why do you need to add a file to the cache which is already present on disk? I'm curious about your use case.

The answer may well be that we should have an option to pacote to say "no, really, pipe this into the cache even if you don't think you have to", because the CLI should ideally remain somewhat blissfully unaware of exactly how various types of packages get handled. That is pacote's job.

@mjsir911

mjsir911 commented Mar 31, 2021 via email

Copy link
Copy Markdown
ContributorAuthor

@wraithgarwraithgar removed the release: next These items should be addressed in the next release label Mar 31, 2021
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 41a60c8 to 887fdf0CompareApril 1, 2021 01:21
Pacote doesn't do this automatically anymore
Closesnpm/pacote#73 & Closesnpm#2160
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 887fdf0 to 0e487d2CompareApril 1, 2021 01:23
@mjsir911

Copy link
Copy Markdown
ContributorAuthor

With the new changes I agree that this logic probably shouldn't be in npm-cli, feel free to close & I'll take a look at hacking onto pacote

mjsir911 added a commit to mjsir911/pacote that referenced this pull request Apr 1, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Not sure the implications of changing the return type of _istream /
adding a `cacache` to the end of the pipe, too unfamiliar with streams
Fixesnpm#73 & Fixesnpm/cli#2160
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 22, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976Close: #74
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
PR-URL: #75
Credit: @mjsir911, @isaacsClose: #75
Reviewed-by: @wraithgar, @mjsir911
mjsir911 added a commit to mjsir911/cli that referenced this pull request May 4, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
wraithgar pushed a commit to mjsir911/cli that referenced this pull request May 6, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
PR-URL: npm#3098
Credit: @mjsir911Close: npm#3098
Reviewed-by: @wraithgar
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] pacote does not add to cache [BUG] cache add tarball file does not add to cache

4 participants

@mjsir911@isaacs@wraithgar@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Explicitly add stream to cache on cache add - #2976

Closed
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache
Closed

Explicitly add stream to cache on cache add#2976
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache

Conversation

@mjsir911

Copy link
Copy Markdown
Contributor

Pacote doesn't do this automatically anymore

Fixesnpm/pacote#73 & Fixes#2160

@mjsir911
mjsir911 requested a review from a team as a code ownerMarch 27, 2021 22:48
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch 4 times, most recently from d93af78 to 41a60c8CompareMarch 28, 2021 00:30
@mjsir911mjsir911 changed the title Explicitly add stream to cacheExplicitly add stream to cache on cache addMar 28, 2021
@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release semver:patch semver patch level for changes Needs Review labels Mar 29, 2021
@darcyclarkedarcyclarke added the release: next These items should be addressed in the next release label Mar 31, 2021
@isaacs

isaacs commented Mar 31, 2021

Copy link
Copy Markdown
Contributor

This is a little bit complicated.

Pacote will tee things into the cache if it's a remote fetch. If it's local, you're right, since the rewrite it just says "oh, you want a tarball? This is a tarball. Here you go!" and saves the extra work of copying the file from one place on disk to another place on disk.

So, two changes and one question. The changes:

  1. It should only explicitly pipe into cacache if it's a file: or git specifier. If it's a registry, remote, or alias spec, don't bother. (This can be determined by using npm-package-arg to parse the specifier. const npa = require('npm-package-arg'); spec = npa(spec); if (spec.type === 'remote' || spec.registry) { just return the stream } else { pipe to cacache }
  2. Cacache's folder is not just npm.config.get('cache'). We tack a _cacache path portion onto it. So you'll have to do something like the const cachePath = path.join(this.npm.cache, '_cacache') that appears elsewhere in the file, and pass that to cacache instead.

The question I have is, why do you need to add a file to the cache which is already present on disk? I'm curious about your use case.

The answer may well be that we should have an option to pacote to say "no, really, pipe this into the cache even if you don't think you have to", because the CLI should ideally remain somewhat blissfully unaware of exactly how various types of packages get handled. That is pacote's job.

@mjsir911

mjsir911 commented Mar 31, 2021 via email

Copy link
Copy Markdown
ContributorAuthor

@wraithgarwraithgar removed the release: next These items should be addressed in the next release label Mar 31, 2021
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 41a60c8 to 887fdf0CompareApril 1, 2021 01:21
Pacote doesn't do this automatically anymore
Closesnpm/pacote#73 & Closesnpm#2160
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 887fdf0 to 0e487d2CompareApril 1, 2021 01:23
@mjsir911

Copy link
Copy Markdown
ContributorAuthor

With the new changes I agree that this logic probably shouldn't be in npm-cli, feel free to close & I'll take a look at hacking onto pacote

mjsir911 added a commit to mjsir911/pacote that referenced this pull request Apr 1, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Not sure the implications of changing the return type of _istream /
adding a `cacache` to the end of the pipe, too unfamiliar with streams
Fixesnpm#73 & Fixesnpm/cli#2160
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 22, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976Close: #74
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
PR-URL: #75
Credit: @mjsir911, @isaacsClose: #75
Reviewed-by: @wraithgar, @mjsir911
mjsir911 added a commit to mjsir911/cli that referenced this pull request May 4, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
wraithgar pushed a commit to mjsir911/cli that referenced this pull request May 6, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
PR-URL: npm#3098
Credit: @mjsir911Close: npm#3098
Reviewed-by: @wraithgar
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] pacote does not add to cache [BUG] cache add tarball file does not add to cache

4 participants

@mjsir911@isaacs@wraithgar@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Explicitly add stream to cache on cache add - #2976

Closed
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache
Closed

Explicitly add stream to cache on cache add#2976
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache

Conversation

@mjsir911

Copy link
Copy Markdown
Contributor

Pacote doesn't do this automatically anymore

Fixesnpm/pacote#73 & Fixes#2160

@mjsir911
mjsir911 requested a review from a team as a code ownerMarch 27, 2021 22:48
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch 4 times, most recently from d93af78 to 41a60c8CompareMarch 28, 2021 00:30
@mjsir911mjsir911 changed the title Explicitly add stream to cacheExplicitly add stream to cache on cache addMar 28, 2021
@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release semver:patch semver patch level for changes Needs Review labels Mar 29, 2021
@darcyclarkedarcyclarke added the release: next These items should be addressed in the next release label Mar 31, 2021
@isaacs

isaacs commented Mar 31, 2021

Copy link
Copy Markdown
Contributor

This is a little bit complicated.

Pacote will tee things into the cache if it's a remote fetch. If it's local, you're right, since the rewrite it just says "oh, you want a tarball? This is a tarball. Here you go!" and saves the extra work of copying the file from one place on disk to another place on disk.

So, two changes and one question. The changes:

  1. It should only explicitly pipe into cacache if it's a file: or git specifier. If it's a registry, remote, or alias spec, don't bother. (This can be determined by using npm-package-arg to parse the specifier. const npa = require('npm-package-arg'); spec = npa(spec); if (spec.type === 'remote' || spec.registry) { just return the stream } else { pipe to cacache }
  2. Cacache's folder is not just npm.config.get('cache'). We tack a _cacache path portion onto it. So you'll have to do something like the const cachePath = path.join(this.npm.cache, '_cacache') that appears elsewhere in the file, and pass that to cacache instead.

The question I have is, why do you need to add a file to the cache which is already present on disk? I'm curious about your use case.

The answer may well be that we should have an option to pacote to say "no, really, pipe this into the cache even if you don't think you have to", because the CLI should ideally remain somewhat blissfully unaware of exactly how various types of packages get handled. That is pacote's job.

@mjsir911

mjsir911 commented Mar 31, 2021 via email

Copy link
Copy Markdown
ContributorAuthor

@wraithgarwraithgar removed the release: next These items should be addressed in the next release label Mar 31, 2021
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 41a60c8 to 887fdf0CompareApril 1, 2021 01:21
Pacote doesn't do this automatically anymore
Closesnpm/pacote#73 & Closesnpm#2160
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 887fdf0 to 0e487d2CompareApril 1, 2021 01:23
@mjsir911

Copy link
Copy Markdown
ContributorAuthor

With the new changes I agree that this logic probably shouldn't be in npm-cli, feel free to close & I'll take a look at hacking onto pacote

mjsir911 added a commit to mjsir911/pacote that referenced this pull request Apr 1, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Not sure the implications of changing the return type of _istream /
adding a `cacache` to the end of the pipe, too unfamiliar with streams
Fixesnpm#73 & Fixesnpm/cli#2160
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 22, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976Close: #74
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
PR-URL: #75
Credit: @mjsir911, @isaacsClose: #75
Reviewed-by: @wraithgar, @mjsir911
mjsir911 added a commit to mjsir911/cli that referenced this pull request May 4, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
wraithgar pushed a commit to mjsir911/cli that referenced this pull request May 6, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
PR-URL: npm#3098
Credit: @mjsir911Close: npm#3098
Reviewed-by: @wraithgar
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] pacote does not add to cache [BUG] cache add tarball file does not add to cache

4 participants

@mjsir911@isaacs@wraithgar@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Explicitly add stream to cache on cache add - #2976

Closed
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache
Closed

Explicitly add stream to cache on cache add#2976
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache

Conversation

@mjsir911

Copy link
Copy Markdown
Contributor

Pacote doesn't do this automatically anymore

Fixesnpm/pacote#73 & Fixes#2160

@mjsir911
mjsir911 requested a review from a team as a code ownerMarch 27, 2021 22:48
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch 4 times, most recently from d93af78 to 41a60c8CompareMarch 28, 2021 00:30
@mjsir911mjsir911 changed the title Explicitly add stream to cacheExplicitly add stream to cache on cache addMar 28, 2021
@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release semver:patch semver patch level for changes Needs Review labels Mar 29, 2021
@darcyclarkedarcyclarke added the release: next These items should be addressed in the next release label Mar 31, 2021
@isaacs

isaacs commented Mar 31, 2021

Copy link
Copy Markdown
Contributor

This is a little bit complicated.

Pacote will tee things into the cache if it's a remote fetch. If it's local, you're right, since the rewrite it just says "oh, you want a tarball? This is a tarball. Here you go!" and saves the extra work of copying the file from one place on disk to another place on disk.

So, two changes and one question. The changes:

  1. It should only explicitly pipe into cacache if it's a file: or git specifier. If it's a registry, remote, or alias spec, don't bother. (This can be determined by using npm-package-arg to parse the specifier. const npa = require('npm-package-arg'); spec = npa(spec); if (spec.type === 'remote' || spec.registry) { just return the stream } else { pipe to cacache }
  2. Cacache's folder is not just npm.config.get('cache'). We tack a _cacache path portion onto it. So you'll have to do something like the const cachePath = path.join(this.npm.cache, '_cacache') that appears elsewhere in the file, and pass that to cacache instead.

The question I have is, why do you need to add a file to the cache which is already present on disk? I'm curious about your use case.

The answer may well be that we should have an option to pacote to say "no, really, pipe this into the cache even if you don't think you have to", because the CLI should ideally remain somewhat blissfully unaware of exactly how various types of packages get handled. That is pacote's job.

@mjsir911

mjsir911 commented Mar 31, 2021 via email

Copy link
Copy Markdown
ContributorAuthor

@wraithgarwraithgar removed the release: next These items should be addressed in the next release label Mar 31, 2021
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 41a60c8 to 887fdf0CompareApril 1, 2021 01:21
Pacote doesn't do this automatically anymore
Closesnpm/pacote#73 & Closesnpm#2160
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 887fdf0 to 0e487d2CompareApril 1, 2021 01:23
@mjsir911

Copy link
Copy Markdown
ContributorAuthor

With the new changes I agree that this logic probably shouldn't be in npm-cli, feel free to close & I'll take a look at hacking onto pacote

mjsir911 added a commit to mjsir911/pacote that referenced this pull request Apr 1, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Not sure the implications of changing the return type of _istream /
adding a `cacache` to the end of the pipe, too unfamiliar with streams
Fixesnpm#73 & Fixesnpm/cli#2160
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 22, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976Close: #74
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
PR-URL: #75
Credit: @mjsir911, @isaacsClose: #75
Reviewed-by: @wraithgar, @mjsir911
mjsir911 added a commit to mjsir911/cli that referenced this pull request May 4, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
wraithgar pushed a commit to mjsir911/cli that referenced this pull request May 6, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
PR-URL: npm#3098
Credit: @mjsir911Close: npm#3098
Reviewed-by: @wraithgar
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] pacote does not add to cache [BUG] cache add tarball file does not add to cache

4 participants

@mjsir911@isaacs@wraithgar@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Explicitly add stream to cache on cache add - #2976

Closed
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache
Closed

Explicitly add stream to cache on cache add#2976
mjsir911 wants to merge 1 commit into
npm:latestfrom
mjsir911:msirabella/fix_cache

Conversation

@mjsir911

Copy link
Copy Markdown
Contributor

Pacote doesn't do this automatically anymore

Fixesnpm/pacote#73 & Fixes#2160

@mjsir911
mjsir911 requested a review from a team as a code ownerMarch 27, 2021 22:48
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch 4 times, most recently from d93af78 to 41a60c8CompareMarch 28, 2021 00:30
@mjsir911mjsir911 changed the title Explicitly add stream to cacheExplicitly add stream to cache on cache addMar 28, 2021
@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release semver:patch semver patch level for changes Needs Review labels Mar 29, 2021
@darcyclarkedarcyclarke added the release: next These items should be addressed in the next release label Mar 31, 2021
@isaacs

isaacs commented Mar 31, 2021

Copy link
Copy Markdown
Contributor

This is a little bit complicated.

Pacote will tee things into the cache if it's a remote fetch. If it's local, you're right, since the rewrite it just says "oh, you want a tarball? This is a tarball. Here you go!" and saves the extra work of copying the file from one place on disk to another place on disk.

So, two changes and one question. The changes:

  1. It should only explicitly pipe into cacache if it's a file: or git specifier. If it's a registry, remote, or alias spec, don't bother. (This can be determined by using npm-package-arg to parse the specifier. const npa = require('npm-package-arg'); spec = npa(spec); if (spec.type === 'remote' || spec.registry) { just return the stream } else { pipe to cacache }
  2. Cacache's folder is not just npm.config.get('cache'). We tack a _cacache path portion onto it. So you'll have to do something like the const cachePath = path.join(this.npm.cache, '_cacache') that appears elsewhere in the file, and pass that to cacache instead.

The question I have is, why do you need to add a file to the cache which is already present on disk? I'm curious about your use case.

The answer may well be that we should have an option to pacote to say "no, really, pipe this into the cache even if you don't think you have to", because the CLI should ideally remain somewhat blissfully unaware of exactly how various types of packages get handled. That is pacote's job.

@mjsir911

mjsir911 commented Mar 31, 2021 via email

Copy link
Copy Markdown
ContributorAuthor

@wraithgarwraithgar removed the release: next These items should be addressed in the next release label Mar 31, 2021
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 41a60c8 to 887fdf0CompareApril 1, 2021 01:21
Pacote doesn't do this automatically anymore
Closesnpm/pacote#73 & Closesnpm#2160
@mjsir911
mjsir911force-pushed the msirabella/fix_cache branch from 887fdf0 to 0e487d2CompareApril 1, 2021 01:23
@mjsir911

Copy link
Copy Markdown
ContributorAuthor

With the new changes I agree that this logic probably shouldn't be in npm-cli, feel free to close & I'll take a look at hacking onto pacote

mjsir911 added a commit to mjsir911/pacote that referenced this pull request Apr 1, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Not sure the implications of changing the return type of _istream /
adding a `cacache` to the end of the pipe, too unfamiliar with streams
Fixesnpm#73 & Fixesnpm/cli#2160
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 13, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 15, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976
PR-URL: #74
Credit: @mjsir911Close: #74
Reviewed-by: @isaacs
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
mjsir911 added a commit to mjsir911/cli that referenced this pull request Apr 18, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
isaacs pushed a commit to npm/pacote that referenced this pull request Apr 22, 2021
Tell `fetch` not to cache it's downloaded tarballs, leave that to us
Also see npm/cli#2976 for my first attempt & some discussions as to how
we got here.
Fix: #73Fix: npm/cli#2160Close: npm/cli#2976Close: #74
EDIT(@isaacs): Updated to add test, allow make-fetch-happen to use the
cache, pipe into cache properly, and avoid cache double-writes.
PR-URL: #75
Credit: @mjsir911, @isaacsClose: #75
Reviewed-by: @wraithgar, @mjsir911
mjsir911 added a commit to mjsir911/cli that referenced this pull request May 4, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
wraithgar pushed a commit to mjsir911/cli that referenced this pull request May 6, 2021
This is a backwards incompatible change to the undocumented
`cache add pkg version`, but
Motivations for this can be found here:
npm#2976 (comment)
Signed-off-by: Marco Sirabella <marco@sirabella.org>
PR-URL: npm#3098
Credit: @mjsir911Close: npm#3098
Reviewed-by: @wraithgar
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] pacote does not add to cache [BUG] cache add tarball file does not add to cache

4 participants

@mjsir911@isaacs@wraithgar@darcyclarke