4 ms·
Why a new package manager? Why not port an existing well-designed generic package manager such as Nix? Making a new package manager is very expensive in terms
by catern 7y ago
Why a new package manager? Why not port an existing well-designed generic package manager such as Nix?
Making a new package manager is very expensive in terms of developer times - developers have to learn yet another new thing to use your platform. Can you justify this?
Edit: For example, as matthewbauer commented below, Nix can support WebAssembly as a compilation target: https://github.com/NixOS/nixpkgs/pull/56555 https://github.com/NixOS/nixpkgs/pull/56555
- Godel_unicode 7y agoWhich general purpose package manager works correctly on Windows (not WSL, actual Windows) and Linux? Cross-platform is more important than not creating another package manager. I think a far more interesting question is, does the package repository support falling back to e.g. curl. That would allow those who don't want another package manager to still use the registry.
- chuckdries 7y agoThey say the registry info is available via API, so perhaps a simple bash script that calls curl would suffice
- dman 7y agoconda
- Godel_unicode 7y agoI always forget about conda
- rkeene2 7y agoAppFS [0] is cross-platform and general purpose. It should work on Windows via cxfuse [1], but I have not tested it. The data structure is simple and could also be handled by an offline fetching system. [0] http://appfs.rkeene.org/ http://appfs.rkeene.org/ [1] https://github.com/crossmeta/cxfuse https://github.com/crossmeta/cxfuse
- Godel_unicode 7y agoI would argue that anything which "works" via fuse doesn't really work. That goes exponentially so for cxfuse.
- warpech 7y agoNuGet
- Godel_unicode 7y agoGeneral purpose means more than dotnet
- catern 7y agoYou should distinguish between "can run on Windows" and "can manage Windows software as packages". Most package managers could probably run fine on Windows; at worst they could use cygwin or, indeed, WSL. Managing Windows software is much harder, but isn't necessary: This is a package manager for WebAssembly packages, not Windows packages or Linux packages. And anyway, wasmer itself doesn't even support Windows.
- badsectoracula 7y agoFWIW msys2 (which i personally prefer to wsl or cygwin) uses pacman which works perfectly fine under Windows.
- Godel_unicode 7y agoIf you run on Windows by using e.g. cygwin, you don't run on Windows. See previous statement about WSL. > wasmer itself doesn't even support Windows First, it will: https://github.com/wasmerio/wasmer/issues/51#issuecomment-446426021 https://github.com/wasmerio/wasmer/issues/51#issuecomment-44... Second, I write code that doesn't run on my terminal all the time, but I need the packages I'm using to be installed and versioned correctly.
- skybrian 7y agoWell, obviously both WSL and Cygwin run on Windows (and nowhere else), so, rhetoric aside, could you explain why they are they insufficient for your purposes?
- lifthrasiir 7y agoWhen one says that some development tool has to run in Windows, it is meant to be run by Windows developers, who normally do not use WSL nor Cygwin.
- Dayshine 7y agoPerhaps I don't want to install several GBs of invasive, hard to manage, and vulnerable linux dependencies to run a package manager unrelated to linux?
- JoshTriplett 7y ago> Cross-platform is more important than not creating another package manager. That has been the argument for the last several dozen new package managers.
- Godel_unicode 7y agoI'm not sure I understand the problem. Are you having to use all of these dozens of package managers, or is this more of a moral objection to the existence of similar but distinct things?
- JoshTriplett 7y agoI have to deal with many of these regularly, yes. But more generally, I'm expressing a desire for fewer ecosystem-specific package managers and more ecosystem-agnostic package managers.
- Godel_unicode 7y agoRight, but why? Generalization isn't free, and there doesn't seem to be any real benefit here. This sounds to me like arguing that there should be one programming language, or one version control system, or one declarative sysadmin automation language. I think that the cost in complexity for one Uber package manager is greater than the waste in duplication from many smaller, more focused ones.
- JoshTriplett 7y agoBecause, among many other reasons, I work with a lot of projects that aren't written in just one programming language or use one type of environment. It's not just "I don't want to use five package managers for five different projects in five ecosystems", it's "I don't want to bridge between five package managers for one project that touches five ecosystems". (Or a project in one ecosystem with dependencies from another...)
- pjmlp 7y agoAnd you left plenty of other OSes out of that list.
- pjmlp 7y agoBecause I don't want to deal with packages for Linux (deb, apt, rpm, tarballs, whatever), HP-UX depot, Solaris package, AIX packages, IBM i catalogs, IBM z packages, ClearPath packages, Windows (exe installers, msi, msix, appx), iOS ppa, Android (apk, aapk), and thousands of embedded OSes out there packages.