2 #+author: Richard Westhaver
3 #+email: ellis@rwest.io
4 #+setupfile: ../../../clean.theme
6 The universal package manager
10 - we have standards for everything nowadays.. container images
11 (OCI), language servers (LSP), Emoji codes.. why not packages and
13 - what happens if upstream package registries go down during release CI? (ur fukt)
14 - decent amount of external traffic comes from package registry streams (CITE)
15 - ezpz - cache it locally, and reduce cost at the same time
16 - data proximity matters
17 - public registries are ripe for supply-chain attacks
18 - there are too many package managers, and it's unreasonable to
19 demand our clients rely on them
20 - needless external footprint - keep this traffic away from bad
21 actors and inside the corporate VPN
22 - traffic control matters
25 + define spec in CLOS (lisp objects)
26 + define validation tools
27 + use tools to validate implementations
29 + functionality composed of lambdas and closures
30 - insert hooks, custom settings, flags
31 + ability to define optimization passes
32 + dependency traversal, cycle detection
37 - introspectable (from client and server)
39 - [[https://www.gnu.org/software/emacs/manual/html_mono/ede.html#EDE-Project-Concepts][EDE]] 40 - [[https://elpa.gnu.org/][ELPA]] 41 - [[https://www.gnu.org/software/emacs/manual/html_node/org/Configuration.html][org-publish.el]] 42 - [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Packages.html][package.el]] 43 - [[https://firefox-source-docs.mozilla.org/contributing/vcs/mercurial_bundles.html][Mercurial]] 44 - [[https://doc.rust-lang.org/book/ch07-01-packages-and-crates.html][Crates]] 45 - [[https://archlinux.org/pacman/][Pacman]] 46 - [[https://brew.sh/][Homebrew]] 47 - [[https://ultralisp.org/][Ultralisp]] 49 - [[https://github.com/cargo-generate/cargo-generate][cargo-generate]] 50 - [[https://doc.rust-lang.org/book/ch14-05-extending-cargo.html][extending cargo]] 51 - [[https://github.com/quicklisp/quicklisp-projects][quicklisp-projects]] 52 - [[https://github.com/quicklisp/quicklisp-client][quicklisp-client]] 53 - [[https://github.com/ultralisp/ultralisp][ultralisp]] 54 - [[https://github.com/ultralisp/quickdist][quickdist]] 74 The following package registries will be supported in v1.
76 Emacs Lisp packages (tarballs)
78 Version Control Repo bundles (tar.zst)
82 Quicklisp compatible packages
85 This is a private crate registry for the Rust programming
88 The
[[https://crates.io][crates.io]] package registry provides a number of excellent crates,
89 integrates well with the
=cargo= development tool, and should be
90 preferred in all cases. I use
=crater= when I need to:
91 - import my unpublished crates
92 - import the master branch of a published crate
93 - import a local or patched version of a published crate
94 - import a non-git crate (hg)
96 =crater= also works well in intranet/local environments, and can be
97 deployed for use in the following ways:
98 - remote :: same as crates.io, registry index is publicly hosted on GitHub (default)
99 - local :: registry index is stored locally, crates are retrieved remotely
100 - static :: registry index and crate sources are stored locally, no
101 network requests are required