<div dir="ltr">Hi, All:<div><br></div><div>I just wanted to point out that this is not at all unique to fluid.  Any repo/hash whose version in the package.json file matches a released version will suffer from this problem.  I have had the same problem with kettle, and with my own gpii-x contrib packages, which also use the last released version in the repo's package.json.</div><div><br></div><div>This adds volume to the call to start regularly using fluid-publish to create dev releases.   In addition to avoiding this problem, It's much clearer to interpret than repo/hash references.  I used to keep a detailed dependency diagram when pushing multiple repo/hash references through to downstream projects, now I can just use "npm outdated" or "yarn outdated", which is a huge time saver.</div><div><br></div><div>Cheers,</div><div><br></div><div><br></div><div>Tony</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 5, 2017 at 9:00 PM, Antranig Basman <span dir="ltr"><<a href="mailto:antranig.basman@colorado.edu" target="_blank">antranig.basman@colorado.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Just before Christmas, Tony Adtkins and I ran into a very unfortunate cache corruption issue which seems to affect both yarn and npm, in the case where you are working with multiple versions of Infusion (or indeed, one imagines, any project) throughout a tree which at some sites is sourced via npm module references and at other sites is sourced via git URLs. It appears that our habit of storing the version number of a real released package within the package.json held within git (at any time) raises the possibility of the package manager's cache of the package contents becoming corrupt - including in a way not related directly to the version or package which is conflicting. This is written up at <a href="https://issues.gpii.net/browse/GPII-2179" rel="noreferrer" target="_blank">https://issues.gpii.net/browse<wbr>/GPII-2179</a> and some commentary is on a pull request for infusion-docs where the issue was first encountered:<br>
<a href="https://github.com/fluid-project/infusion-docs/pull/103#discussion_r92831132" rel="noreferrer" target="_blank">https://github.com/fluid-proje<wbr>ct/infusion-docs/pull/103#<wbr>discussion_r92831132</a><br>
<br>
What we observed was that npm was capable of installing a version of Infusion *whose contents mismatched its package version* - in fact, were those of an unrelated and old version of Infusion which had been referenced via a git URL, a broken version which suffered from the problem described at <a href="https://github.com/fluid-project/infusion/pull/577#issuecomment-255065212" rel="noreferrer" target="_blank">https://github.com/fluid-proje<wbr>ct/infusion/pull/577#issuecomm<wbr>ent-255065212</a> - this was referenced by some nested project, and the contents of this Infusion ended up displacing those in npm's cache when it resolved the top-level Infusion reference which was to a more recent, fixed version. In this case therefore Infusion's "self-deduping" algorithm was useless since the contents of the highest resolvable Infusion in the installed module tree were corrupt. Adtkins has confirmed that yarn is capable of generating this problem as well.<br>
<br>
The take-home, executive summary is - do not reference Infusion via git repository references in package.json. If there is an urgent fix that you need, please ask a core team member to roll you a dev release which can be referenced via the npm registry - this is very quick and easy for them to do via the fluid-publish module.<br>
<br>
Cheers,<br>
<br>
Antranig<br>
______________________________<wbr>_________________________<br>
fluid-work mailing list - <a href="mailto:fluid-work@lists.idrc.ocad.ca" target="_blank">fluid-work@lists.idrc.ocad.ca</a><br>
To unsubscribe, change settings or access archives,<br>
see <a href="http://lists.idrc.ocad.ca/mailman/listinfo/fluid-work" rel="noreferrer" target="_blank">http://lists.idrc.ocad.ca/mail<wbr>man/listinfo/fluid-work</a><br>
</blockquote></div><br></div>