Replies: 7 comments 6 replies
-
Speaking for Arch Linux, we have very few packaged JS libs in the repository (notable exceptions are some babel packages). Personally, packages I maintain that require JS libs download and ship them with yarn/npm, I don't depend on any repo package. |
Beta Was this translation helpful? Give feedback.
-
cc @omajid and @mirespace as well |
Beta Was this translation helpful? Give feedback.
-
The recent policies for building nodejs code in Fedora boil down to:
There's even a script In other words, at least from a Fedora point-of-view, if we knew which exact npm packages and versions were needed (that's what a lockfile does, right?), we should be able to download those npm packages (and their dependencies) and build everything ourselves using the distro-provided That said, I have never directly used this tooling on Fedora side, so I will have to experiment to find out if the bits that are present in the aspnetcore repo are already sufficient for Fedora or not. |
Beta Was this translation helpful? Give feedback.
-
Hi Chris, on Ubuntu, we use packages as build dependencies, as avoiding downloading modules using npm/yarn during build time is preferable. We have a bunch of node-* packages for that (modules already packaged and available for being used in building other packages written in NodeJS). I need to check your list and also the versions (at a quick glance, we don't have node-msgpack, for example, and that will imply creating it in the same way we introduce dotnet in the Archive). Also, for the internal references as
ideally (in the debian way) we would need to remove those dependencies code, package them separately and depend on them. But since they already are in the upstream tarball we can make use of them and not download them from the Internet (but I have to admit that I would need to play with that to see how I can do it - That is, if I don't have to rely on the build.sh step to use them - ). I will provide the list of the modules we have already packaged and the versions matching your shared list. Thanks Chris! |
Beta Was this translation helpful? Give feedback.
-
Much like Arch, we at Alpine Linux package very few node libraries. We thus allow packaging within our packages node libraries. A lockfile would thus be necessary to build those libraries with source-build. |
Beta Was this translation helpful? Give feedback.
-
How to handle
|
Beta Was this translation helpful? Give feedback.
-
Handling the currently-hardcoded Microsoft npm registry?aspnetcore uses the Microsoft npm registry for downloading node dependencies. I suppose that's because npm.js has rate limits to prevent users from overloading it. It's hardcoded in various However, when I tried building using that registry, I ran into issues because some packages were not present (not sure why) and it needed me to authenticate (before it could delegate? or refresh cache? not sure). Without the authentication tokens, the build failed. It doesn't seem like a great experience for builders to ask everyone to authenticate to the Microsoft npm registry (even if it was completely open and self-service in that anyone from the community could sign up). Additionally, other organizations may have their own registries that they expect devs to use (at least, Red Hat does). And community devs would probably prefer to use the content from npm.js instead of Microsoft. But we definitely don't want to change the registries used by the current ASP.NET Core/VMR CI systems or devs working at Microsoft. How do we achieve this? |
Beta Was this translation helpful? Give feedback.
-
A while ago, we added a BuildNodeJs switch to ASP.NET to support source-build using a checked-in version of compiled JS. This was done to remove the dependency on NPM and several NPM packages. ASP.NET has trimmed these dependencies down somewhat and was wondering if they could remove the workaround, which is a bit of extra work for them.
I believe we were only building in two distros at that point and the requirement was determined to be that the NPM packages were also built for the platform and added to the list of build dependencies. I'm still looking at the smaller set of packages to determine if they are all available but we realized that now that we're on more distros we need to account for each distro's policy on this problem. We have a couple questions/discussion points:
Let us know what you think - I'm going to try to look some of this up as well so I'll updated this thread as I do. Thanks!
cc @dotnet/distro-maintainers
The list of dependencies from ASP.NET:
Beta Was this translation helpful? Give feedback.
All reactions