On Thu, 1 Mar 2018, Yuri wrote: > On 02/26/18 17:11, Marcin Cieslak wrote: > > So I don't know what has changed and why but the temporary fix is to > > use "if" to check if the desired files are not already there, and > > then proceeding with "post-fetch" only if the files are not found. > > > Some time back I was working on nodejs support: > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204577 > > So far, I couldn't make it stable because after a week or two files fetched > from the npm server change without an apparent reason. > > I will return to it to see if the situation improved.
Hi Yuri, thanks for the pointer - it is very useful! Also I find a very useful reference to Olivier Duchateau's work as well. I share your pain. I am maintaining this local port for 2 years and it is a pain. I must admit the pain comes not only from npm volatility (I somehow managed to handle that) but mostly from the fact that I still needed to maintain node 0.10, node 0.12 and io.js support while they were gone. It is also interesting how the two different approaches - your approach to help build larger applications ports simply (that could help, for example, the current net-im/mastodon port by jrm@) or more comprehensive apporach from Oliver - ruby-style, one port per registry package. The latter approach is more correct but will be problematic in case of when package A requires package B~1.0 and package C requires package B~2.0. So we will need some why to have "local" modules installed under application specific node_modules (/usr/local/lib/node_modules/package_c/node_modules/package_b_2.0). Good news is that for binary modules (where I am mostly interested) we will need to simply disallow this - not because we believe we are the best in the world, but because trying dlopen() second binary module with the same name into node will not work as expected. I also would like to have possibility to build for multiple node engines (node4-, node6-, node8- and node9-) which is a must for binary packages. I would even use NODE_MODULES_VERSION API number instead of 4, 6, 8, 9. So, for binary modules we have to have Oliver's approach, for the rest, it will be hard. I'll try to examine your patches and come up with something reasonable. Marcin
smime.p7s
Description: S/MIME Cryptographic Signature