<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[NPM Incorrect Handling of min-release-age]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">There appears to be some disparity between the npm min-release-age and the ProGet Recently published rule on the feed.</p>
<h2>Setup</h2>
<p dir="auto">ProGet 2025.25 (Build 11)</p>
<p dir="auto">.npmrc:</p>
<pre><code>registry=https://my-proget-server/npm/npm-public/
min-release-age=7
</code></pre>
<p dir="auto">ProGet Use Connector Publish Date enabled.<br />
<img src="/assets/uploads/files/1776694110757-35af2849-f0b3-421b-8b64-bb2ffdfaaaeb-image.png" alt="35af2849-f0b3-421b-8b64-bb2ffdfaaaeb-image.png" class="img-responsive img-markdown" /></p>
<p dir="auto">ProGet npm feed has Recently published (7 days).<br />
<img src="/assets/uploads/files/1776694506729-e14efc66-c8fb-4588-ae79-86bfc3127199-image.png" alt="e14efc66-c8fb-4588-ae79-86bfc3127199-image.png" class="img-responsive img-markdown" /></p>
<h2>Install</h2>
<p dir="auto">Run npm install for the latest applicable version of @hono/node-server</p>
<pre><code class="language-log">&gt; npm i @hono/node-server@latest
npm error code E400
npm error 400 Bad Request - GET https://my-proget-server/npm/npm-public/%40hono/node-server/-/node-server-1.19.14.tgz - Package is Recently Published
</code></pre>
<p dir="auto">In Proget @hono/node-server-1.19.14 has a publish date of the 2026-04-13 02:20:00:<br />
<img src="/assets/uploads/files/1776694787252-c4272b8d-ff08-4166-be0e-db40c9cf7b81-image.png" alt="c4272b8d-ff08-4166-be0e-db40c9cf7b81-image.png" class="img-responsive img-markdown" /></p>
<p dir="auto">I ran the npm install on 2026-04-20 15:12 BST, minus 7 days is 2026-04-13 15:12 BST. That's greater than the ProGet npm package date of 2026-04-13 02:20:00.</p>
<p dir="auto">If I change my npm config to have min-release-age=8, then the install works fine. Is this some issue with timezones?</p>
<p dir="auto">Thanks!</p>
]]></description><link>https://forums.inedo.com/topic/5729/npm-incorrect-handling-of-min-release-age</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 13:12:59 GMT</lastBuildDate><atom:link href="https://forums.inedo.com/topic/5729.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 20 Apr 2026 14:20:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to NPM Incorrect Handling of min-release-age on Mon, 20 Apr 2026 14:26:25 GMT]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">There appears to be some disparity between the npm min-release-age and the ProGet Recently published rule on the feed.</p>
<h2>Setup</h2>
<p dir="auto">ProGet 2025.25 (Build 11)</p>
<p dir="auto">.npmrc:</p>
<pre><code>registry=https://my-proget-server/npm/npm-public/
min-release-age=7
</code></pre>
<p dir="auto">ProGet Use Connector Publish Date enabled.<br />
<img src="/assets/uploads/files/1776694110757-35af2849-f0b3-421b-8b64-bb2ffdfaaaeb-image.png" alt="35af2849-f0b3-421b-8b64-bb2ffdfaaaeb-image.png" class="img-responsive img-markdown" /></p>
<p dir="auto">ProGet npm feed has Recently published (7 days).<br />
<img src="/assets/uploads/files/1776694506729-e14efc66-c8fb-4588-ae79-86bfc3127199-image.png" alt="e14efc66-c8fb-4588-ae79-86bfc3127199-image.png" class="img-responsive img-markdown" /></p>
<h2>Install</h2>
<p dir="auto">Run npm install for the latest applicable version of @hono/node-server</p>
<pre><code class="language-log">&gt; npm i @hono/node-server@latest
npm error code E400
npm error 400 Bad Request - GET https://my-proget-server/npm/npm-public/%40hono/node-server/-/node-server-1.19.14.tgz - Package is Recently Published
</code></pre>
<p dir="auto">In Proget @hono/node-server-1.19.14 has a publish date of the 2026-04-13 02:20:00:<br />
<img src="/assets/uploads/files/1776694787252-c4272b8d-ff08-4166-be0e-db40c9cf7b81-image.png" alt="c4272b8d-ff08-4166-be0e-db40c9cf7b81-image.png" class="img-responsive img-markdown" /></p>
<p dir="auto">I ran the npm install on 2026-04-20 15:12 BST, minus 7 days is 2026-04-13 15:12 BST. That's greater than the ProGet npm package date of 2026-04-13 02:20:00.</p>
<p dir="auto">If I change my npm config to have min-release-age=8, then the install works fine. Is this some issue with timezones?</p>
<p dir="auto">Thanks!</p>
]]></description><link>https://forums.inedo.com/post/19573</link><guid isPermaLink="true">https://forums.inedo.com/post/19573</guid><dc:creator><![CDATA[Ashley]]></dc:creator><pubDate>Mon, 20 Apr 2026 14:26:25 GMT</pubDate></item><item><title><![CDATA[Reply to NPM Incorrect Handling of min-release-age on Tue, 21 Apr 2026 06:04:51 GMT]]></title><description><![CDATA[<p dir="auto">Hi @ashleycanham ,</p>
<p dir="auto">The <code>min-release-age</code> setting in npm and ProGet's "Recently published" are unrelated. One controls how the client (npm) behaves, the other controls how the server (ProGet) behaves.</p>
<p dir="auto">I'm not an expert on <code>min-release-age</code> on the client (npm) side, but I believe it changes the way the dependency resolution algorithm works. In turn, that means npm will request different packages from the server. That's why changing that value will yield different server results.</p>
<p dir="auto">On the server (ProGet) side, ProGet effectively blocks package downloads by looking at the publish date (which you can see on the history page, and even set/change on the Set Package Status Page) against the current server date time. This is obviously indicated by "Download Blocked" in your screenshot, but more precisely it has to do with "package compliance".</p>
<p dir="auto">There's a lot involved with that, but if you Reanalyze the Package, you can get detailed logs of what's making the package Noncompliant. Specifically, in those logs, you should see something like this:</p>
<pre><code>Policy "{policy.Name}" considers recently published ({recentlyPublishedDays} days) {rule}
Publish date of {package.Published.Value.Date:d} is considered recently published.
</code></pre>
<p dir="auto">That date will be UTC-based (the UI typically displays local time, i.e. BST), but you'll get an idea of how it works.</p>
<p dir="auto">Anyway, that's where I would start. Considering timezones, rounding, or partial days, you may find it simply easiest to set <code>min-release-age=8</code> so that npm isn't requesting a package that's 6.99999 days old, or something weird like that.</p>
<p dir="auto">One last thing worth mentioning, we are no longer recommending blocking noncomplaint packages in most cases. Instead, using <code>pgutil builds scan</code> can be used to "Break builds" and give a much clearer output, so that developers don't have to chase down npm error logs.</p>
<p dir="auto">Thanks,<br />
Alana</p>
]]></description><link>https://forums.inedo.com/post/19575</link><guid isPermaLink="true">https://forums.inedo.com/post/19575</guid><dc:creator><![CDATA[atripp]]></dc:creator><pubDate>Tue, 21 Apr 2026 06:04:51 GMT</pubDate></item><item><title><![CDATA[Reply to NPM Incorrect Handling of min-release-age on Tue, 21 Apr 2026 10:11:01 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="https://forums.inedo.com/uid/4">@atripp</a>,</p>
<p dir="auto">I understand that min-release-age and the Recently Published rule refer to two different products, but that version of the package at that time should have been compliant in ProGet, but it wasn't. NPM correctly resolved the right version of the package.</p>
<p dir="auto">This is obviously quite hard to re-test with the Reanalyze logs because you need a package that's just over the Recently published rule. I don't see a way in the ProGet UI of updating the published date so that I can test it?</p>
<p dir="auto">We want to block packages from being installed on developer machines in addition to CI pipelines without additional tooling requirements.</p>
<p dir="auto">Thanks,<br />
Ashley</p>
]]></description><link>https://forums.inedo.com/post/19580</link><guid isPermaLink="true">https://forums.inedo.com/post/19580</guid><dc:creator><![CDATA[Ashley]]></dc:creator><pubDate>Tue, 21 Apr 2026 10:11:01 GMT</pubDate></item><item><title><![CDATA[Reply to NPM Incorrect Handling of min-release-age on Tue, 21 Apr 2026 11:57:27 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="https://forums.inedo.com/uid/3714">@Ashley</a> ,</p>
<p dir="auto">To set override the publish date, first Pull the package to ProGet so that it's no longer a cached package. Once you do that, you will see a "Set Package Status" option (you may need to refresh page). On that modal dialog, select "Override Metadata..." and enter the date.</p>
<p dir="auto"><img src="/assets/uploads/files/1776772490424-3f6d8fe1-e54f-495e-be09-f9d55ed1dc4e-image.png" alt="3f6d8fe1-e54f-495e-be09-f9d55ed1dc4e-image.png" class="img-responsive img-markdown" /></p>
<p dir="auto">That's what we do to test these rules; note you can delete the package and re-download it to cache it again.</p>
<p dir="auto">Let me know if you spot anything off, it seemed to work for me, but I might be looking at the wrong things.</p>
<p dir="auto">Thanks,<br />
Alana</p>
]]></description><link>https://forums.inedo.com/post/19582</link><guid isPermaLink="true">https://forums.inedo.com/post/19582</guid><dc:creator><![CDATA[atripp]]></dc:creator><pubDate>Tue, 21 Apr 2026 11:57:27 GMT</pubDate></item><item><title><![CDATA[Reply to NPM Incorrect Handling of min-release-age on Tue, 21 Apr 2026 14:04:26 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="https://forums.inedo.com/uid/4">@atripp</a>,</p>
<p dir="auto">Perfect thanks! I was able to recreate the behaviour with the metadata override and Reanalyze Package feature.</p>
<p dir="auto">Server date now: 2026-04-21 14:52BST (13:52 UTC)<br />
Package published date: 2026-04-14T13:00:00<br />
Reanalyze package outcome: Non-compliant</p>
<p dir="auto">There appears to be an issue uploading images at the moment, but heres the log:</p>
<pre><code>Package "pkg:npm/%40hono/node-server@1.19.14" will analyzed with local data
Attempting to update local package with remote metadata...
Cached metadata from search on 21/04/2026 13:01:56
Detecting licenses for "pkg:npm/%40hono/node-server@1.19.14"...
Found 1 licenses: MIT
Detecting vulnerabilities for "@hono/node-server" version "1.19.14"...
Found 0 vulnerabilities.
Searching policies associated with feed "xxxxxxxxxx"...
Found 1 policy to use for analysis.
Beginning license rule analysis...
Default rules: undectableLicense=Warn, unspecifiedLicense=Compliant
Checking MIT against rules...
No matching license rules; applying unspecifiedLicense rule (Compliant)
License rule analysis complete.
Policy "Global" considers aged packages (3 years) Warn
Policy "Global" considers recently published (7 days) Noncompliant
Publish date of 14/04/2026 is considered recently published.
No policies define a latest patch, so latest patch will not be checked.
Analysis resulted in a Noncompliant result.
</code></pre>
<p dir="auto">and the failing npm install:</p>
<pre><code>npm i -g @hono/node-server@1.19.14 --cache ./c
npm error code E400
npm error 400 Bad Request - GET https://xxxxx/npm/npm-public/%40hono/node-server/-/node-server-1.19.14.tgz - Package is Recently Published
npm error A complete log of this run can be found in: xxxxx
</code></pre>
]]></description><link>https://forums.inedo.com/post/19585</link><guid isPermaLink="true">https://forums.inedo.com/post/19585</guid><dc:creator><![CDATA[Ashley]]></dc:creator><pubDate>Tue, 21 Apr 2026 14:04:26 GMT</pubDate></item><item><title><![CDATA[Reply to NPM Incorrect Handling of min-release-age on Wed, 22 Apr 2026 08:38:53 GMT]]></title><description><![CDATA[<p dir="auto">Thanks <a class="plugin-mentions-user plugin-mentions-a" href="https://forums.inedo.com/uid/3714">@Ashley</a>, that's exactly what I was thinking.</p>
<p dir="auto">I haven't tried reproducing this yet, but I've got all the steps to now!  And at that point, I'll have a debugger and all the code in front of me, so it should be an easy fix. It's probably related to UTC/local time, I don't think we've ever tested it "by the hour" like that :)</p>
<p dir="auto">Anyway stay tuned we'll get it fixed pretty soon.</p>
]]></description><link>https://forums.inedo.com/post/19590</link><guid isPermaLink="true">https://forums.inedo.com/post/19590</guid><dc:creator><![CDATA[atripp]]></dc:creator><pubDate>Wed, 22 Apr 2026 08:38:53 GMT</pubDate></item><item><title><![CDATA[Reply to NPM Incorrect Handling of min-release-age on Fri, 24 Apr 2026 02:30:55 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="https://forums.inedo.com/uid/3714">@Ashley</a> ,</p>
<p dir="auto">Good news -- this will be fixed via <a href="https://issues.inedo.com/issue/PG-3265" class="inedo-link inedo-link-pg" rel="nofollow">PG-3265</a> in the upcoming maintenance release (next Friday).</p>
<p dir="auto">In case you're curious, the bug was that we were comparing <code>packagePublished.AddDays(recentlyPublishedDays.Value) &gt; DateTime.UtcNow.Date</code>, which includes the time-portion on the left side, but not the right-side (so 12:00A).</p>
<p dir="auto">Just changing to <code>packagePublished.Date.AddDays(recentlyPublishedDays.Value) &gt; DateTime.UtcNow.Date</code> does the trick, and it works for both Aged and Recently Published.</p>
<p dir="auto">cheers,<br />
Alana</p>
]]></description><link>https://forums.inedo.com/post/19597</link><guid isPermaLink="true">https://forums.inedo.com/post/19597</guid><dc:creator><![CDATA[atripp]]></dc:creator><pubDate>Fri, 24 Apr 2026 02:30:55 GMT</pubDate></item><item><title><![CDATA[Reply to NPM Incorrect Handling of min-release-age on Fri, 24 Apr 2026 12:58:19 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="https://forums.inedo.com/uid/4">@atripp</a>,</p>
<p dir="auto">Thanks for investigating and implementing a fix so quickly! It was always going to be something to do with a developers worst nightmare, time &amp; timezones <img src="https://forums.inedo.com/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=n37j1a7b7c4" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" title=":slightly_smiling_face:" alt="🙂" /></p>
<p dir="auto">I'll update to the maintenance release after it's out and let you know our findings.</p>
]]></description><link>https://forums.inedo.com/post/19603</link><guid isPermaLink="true">https://forums.inedo.com/post/19603</guid><dc:creator><![CDATA[Ashley]]></dc:creator><pubDate>Fri, 24 Apr 2026 12:58:19 GMT</pubDate></item></channel></rss>