Risto-Stevcev / cl-micropm

A very minimalist, decentralized "package manager" for Common Lisp (<200 LOC)
BSD 3-Clause "New" or "Revised" License
4 stars 1 forks source link

NOTE: there is a major bug with the current implementation, see issue #1, and the next branch for refactoring progress

cl-micropm

A very minimalist "package manager" for Common Lisp in under 200 LOC.

How it works

  1. Load cl-micropm.lisp. Since it's a single file, you don't need to have ASDF load the system definition, but it's there if you need it.

  2. Run (micropm:setup <your-system-name>). It doesn't directly use quicklisp, but this will fetch the quicklisp system sources and build the quicklisp dependency index, and then fetch the system dependencies using these data. By default, it will create git submodules in the lisp-systems folder.

  3. Tweak the lisp-systems to your needs, whether you need to freeze a dependency on a particular branch or commit, etc.

Once all your deps are setup in lisp-systems, you can just run the normal flow with (micropm:setup-asdf-registry).

You can also skip (micropm:setup <your-system-name>) and just manually add the deps into lisp-systems if you want to do that, by reading the quicklisp dependency index.

Note: The old version used an .envrc file and pulled the dependencies from quicklisp in a Docker container. See the old branch if you want to use that instead.

Goals

License

See LICENSE