bite-sized dependency management for PHP
docker run -it -v "$(pwd):/app" jlaswell/compote install
First things first; compote is not designed as a replacement for composer but as a compliment for specific use-cases. (While you're here, why not consider heading over there and supporting?)
compote is designed as a subset implementation of composer commands. Currently, it can install locked dependencies and show locked dependencies for a project.
If you don't have one of the following use-cases, then composer will continue to serve you well. This project is still very much a work-in-progress, but it works well enough for my use-cases at this point. Expect things to change a lot moving towards v1.
You might consider compote in favor of composer when trying to speed-up CI pipelines and automated workflows or when working within a memory constrained environment.
For now, you should stick with composer when adding or removing packages, updating dependencies, and (at this point) even generating autoloading!
Here's a snippet to run compote locally via a container until there is a better process for binaries.
$ alias dcompote='docker run -it -v "$(pwd):/app" jlaswell/compote'
$ dcompote install
Your composer.lock
file is expected to be present within the current directory when running dcompote
.
When using an automated workflow, I suggest mounting your project to /app
in the jlaswell/compote
container and running install
. Remember, compote doesn't handle autoloading yet! so you will still need to rely on composer. Here's an example workflow:
docker run -it -v "$(pwd):/app" jlaswell/compote install
composer dump-auto
Usage:
compote [command]
Available Commands:
help Help about any command
install Install packages locked to this project
show Display information about packages
Flags:
--config string Config file (default is $HOME/.compote.yaml)
-f, --filepath string Path to the directory or composer file to work from (default ".")
-h, --help help for compote
-q, --quiet Do not write any output
Use "compote [command] --help" for more information about a command.
Issue reporting and contributes are very welcomed! You can see the current state of work in the projects section. While I'd like to keep the scope of compote rather narrow, if you have a feature request or idea on how to improve compote, please open an issue and use the appropriate labels or submit a pull request.