Skip to content
Permalink
Browse files

move manifest to separate repository

- On `manifest-load`, Qi automatically clones/pulls the manifest into
  share/qi/manifest/

- The trivial-shell dependency is removed (replaced with uiop:run-program)

- CLI: new command `-m/--update-manifest`

- Git: `git pull` existing dependency repositories instead of cloning
  them again

Closes #31.
  • Loading branch information...
dunn committed Dec 10, 2016
1 parent 4df3ddc commit db6266fbbb0d6725f1ab6d68276b84ce11d71c90
Showing with 253 additions and 5,711 deletions.
  1. +0 −4 .travis.yml
  2. +30 −33 README.org
  3. +0 −39 dependencies/trivial-shell-latest/.boring
  4. +0 −15 dependencies/trivial-shell-latest/.gitignore
  5. +0 −34 dependencies/trivial-shell-latest/COPYING
  6. +0 −36 dependencies/trivial-shell-latest/dev/allegro.lisp
  7. +0 −19 dependencies/trivial-shell-latest/dev/clisp.lisp
  8. +0 −29 dependencies/trivial-shell-latest/dev/cmucl.lisp
  9. +0 −7 dependencies/trivial-shell-latest/dev/definitions.lisp
  10. +0 −9 dependencies/trivial-shell-latest/dev/digitool.lisp
  11. +0 −13 dependencies/trivial-shell-latest/dev/ecl.lisp
  12. +0 −25 dependencies/trivial-shell-latest/dev/lispworks.lisp
  13. +0 −94 dependencies/trivial-shell-latest/dev/macros.lisp
  14. +0 −187 dependencies/trivial-shell-latest/dev/mcl/eval-apple-script.lisp
  15. +0 −13 dependencies/trivial-shell-latest/dev/notes.text
  16. +0 −36 dependencies/trivial-shell-latest/dev/openmcl.lisp
  17. +0 −41 dependencies/trivial-shell-latest/dev/package.lisp
  18. +0 −101 dependencies/trivial-shell-latest/dev/sbcl.lisp
  19. +0 −13 dependencies/trivial-shell-latest/dev/scl.lisp
  20. +0 −80 dependencies/trivial-shell-latest/dev/shell.lisp
  21. +0 −3 dependencies/trivial-shell-latest/dev/unsupported.lisp
  22. +0 −52 dependencies/trivial-shell-latest/dev/utilities.lisp
  23. +0 −29 dependencies/trivial-shell-latest/lift-standard.config
  24. +0 −3 dependencies/trivial-shell-latest/tests/a b c.sh
  25. +0 −29 dependencies/trivial-shell-latest/tests/package.lisp
  26. +0 −10 dependencies/trivial-shell-latest/tests/test-timeout.lisp
  27. +0 −30 dependencies/trivial-shell-latest/tests/tests.lisp
  28. +0 −13 dependencies/trivial-shell-latest/timeout/package.lisp
  29. +0 −143 dependencies/trivial-shell-latest/timeout/with-timeout.lisp
  30. +0 −27 dependencies/trivial-shell-latest/trivial-shell-test.asd
  31. +0 −93 dependencies/trivial-shell-latest/trivial-shell.asd
  32. +0 −48 dependencies/trivial-shell-latest/website/source/graveyard/index.lml
  33. +0 −68 dependencies/trivial-shell-latest/website/source/index.mmd
  34. +0 −15 dependencies/trivial-shell-latest/website/source/resources/footer.md
  35. +0 −21 dependencies/trivial-shell-latest/website/source/resources/header.md
  36. +0 −27 dependencies/trivial-shell-latest/website/source/user-guide.mmd
  37. +0 −121 dependencies/trivial-shell-latest/website/website.tmproj
  38. +118 −127 docs/qi.html
  39. +0 −3,962 manifest/manifest.lisp
  40. +0 −1 qi.asd
  41. +0 −3 qi.yaml
  42. +17 −35 src/cli.lisp
  43. +19 −2 src/manifest.lisp
  44. +9 −16 src/packages.lisp
  45. +52 −4 src/util.lisp
  46. +8 −1 t/util_test.lisp
@@ -19,10 +19,6 @@ install:

before_script:
- ros config
- mkdir -p $HOME/.qi/t
- cp -r $TRAVIS_BUILD_DIR/t/* $HOME/.qi/t/
- mkdir $HOME/.qi/manifest
- cp $TRAVIS_BUILD_DIR/manifest/manifest.lisp $HOME/.qi/manifest/manifest.lisp

script:
- run-prove qi-test.asd
@@ -7,7 +7,7 @@ to use. A CLI, project scaffolding, and bringing the wonderful world
of Common Lisp libraries to anyone with one command are the more
long-term goals.

*The State of Qi*
** The State of Qi

Qi is a new project. There are still bugs. There are still missing
features. It might not work sometimes. It has not been tested on
@@ -30,26 +30,26 @@ for a full list).

** Installation

1) Clone Qi anywhere:
1. Clone Qi anywhere:

#+BEGIN_SRC sh
git clone https://github.com/CodyReichert/qi.git
#+END_SRC

2) Load Qi when SBCL starts by adding these lines to your =.sbclrc=:
2. Load Qi when SBCL starts by adding these lines to your =.sbclrc=:

#+BEGIN_SRC lisp
(load "path/to/qi")
#+END_SRC

To test if Qi is installed correctly, run the following the a REPL:
#+BEGIN_SRC lisp
CL-USER> (qi:hello)
#+END_SRC
To test if Qi is installed correctly, run the following the a REPL:

#+BEGIN_SRC lisp
CL-USER> (qi:hello)
#+END_SRC

/Notes:/
- See [[https://github.com/CodyReichert/qi/blob/master/docs/TODO.org][docs/TODO.org]] and =bin/= for some work that can/should be done
around this part.
See [[https://github.com/CodyReichert/qi/blob/master/docs/TODO.org][docs/TODO.org]] and =bin/= for some work that can/should be done
around this part.

** Usage

@@ -77,7 +77,7 @@ for a full list).

Above there are three types of packages: Manifest, tarball, and git.

- *Manifest*: "Known" packages from the [[https://github.com/CodyReichert/qi/blob/master/manifest/manifest.lisp][Qi manifest]].
- *Manifest*: "Known" packages from the [[https://github.com/CodyReichert/qi-manifest/blob/master/manifest.lisp][Qi manifest]].
- *Tarball*: An HTTP URL to tarball.
- *Git*: A git repository. You can also specify a tag or hash.
- *Mercurial*: A link to a mercurial repository.
@@ -97,7 +97,7 @@ for a full list).
qi --install-deps path/to/myproject.asd
#+END_SRC

Qi take's care of any transitive dependencies and will let you know
Qi takes care of any transitive dependencies and will let you know
of any that it could /not/ install. In a case where Qi can not
install some dependencies, add direct links to those packages in
your =qi.yaml=.
@@ -108,17 +108,17 @@ for a full list).
available. There's a simple interface, and two commands are the
most useful:

*install-global*
**** install-global

#+BEGIN_SRC lisp
* (qi:install-global :cl-project)
#+END_SRC

Running =install-global= installs the package into the global
package directory (qi/dependencies). The installed package is made
available in the current session.
package directory (=share/qi/packages=). The installed package is
made available in the current session.

*up*
**** up

#+BEGIN_SRC lisp
* (qi:up :cl-project)
@@ -141,7 +141,7 @@ for a full list).

*** Install
Installs a system and it's dependencies. All dependencies are
installed local to the system directory in =.dependencies/=.
installed local to the project's =.dependencies/= directory.

- For any dependencies that are not already available, Qi will try to
download them from the Manifest. If all else fails, it will print
@@ -152,25 +152,24 @@ for a full list).
#+END_SRC

*** Install Global
Installs a system to the global package directory. The system
should be from the Manifest. The system is made available in the
current session.
Installs a system to the global package directory
=share/qi/packages=. The system should be from the Manifest. The
system is made available in the current session.

#+BEGIN_SRC lisp
(qi:install-global :system &optional version)
#+END_SRC

/To make a global system available at any time, you can use/
/(qi:up :system)/
/To make a global system available at any time, you can use =(qi:up :system)=/

*** Up
ASDF load's a system to be available in the current session.
Have ASDF load a system to be available in the current session.

#+BEGIN_SRC lisp
(qi:up :system)
#+END_SRC

/This is the equivalent of running (asdf:load-system :system)/
/This is the equivalent of running =(asdf:load-system :system)=/

*** Coming Soon

@@ -182,17 +181,13 @@ for a full list).

Generate a qi.yaml for an existing project.

*Not implemented* =(qi:update-manifest ...)=

Update the Qi manifest to get access to new packages and updates.

*Not implemented* =(qi:publish ...)=

Publish a new package to the Qi Manifest


** Manifest
The [[https://github.com/CodyReichert/qi/blob/master/manifest/manifest.lisp][Qi Manifest]] is a list of known packages - which makes it easy
The [[https://github.com/CodyReichert/qi-manifest/blob/master/manifest.lisp][Qi Manifest]] is a list of known packages - which makes it easy
to simply install packages by their name. Qi's Manifest was
initially seeded by [[https://github.com/quicklisp/quicklisp-projects/][Quicklisp's projects]] which means that any
project you can find in Quicklisp can be found in Qi.
@@ -202,7 +197,7 @@ for a full list).
requirement is that it is a lisp project that is asdf-loadable.

To add a package to the manifest, submit a pull-request at
https://github.com/CodyReichert/qi/, or send a patch file to
https://github.com/CodyReichert/qi-manifest, or send a patch file to
codyreichert@gmail.com.

See [[https://github.com/CodyReichert/qi/blob/master/docs/TODO.org][docs/TODO.org]] for some work to be done in this
@@ -213,20 +208,22 @@ for a full list).

** CLI
The Qi CLI provides a few basic commands (more coming soon!). Make
sure that =qi/bin/= is in your path, or move =qi/bin/qi= into your
path.
sure that =bin= is in your =$PATH=, or move =bin/qi= into your
=$PATH=.

Run =$ qi --help= For info on the available commands:

#+BEGIN_SRC sh
λ qi -h
Qi - A simple, open, free package manager for Common Lisp.

Usage: qi [-h|--help] [-u|--upgrade] [-i|--install PACKAGE] [-d|--install-deps ASD-FILE] [Free-Args]
Usage: qi [-h|--help] [-u|--upgrade] [-m|--update-manifest]
[-i|--install PACKAGE] [-d|--install-deps ASD-FILE] [Free-Args]

Available options:
-h, --help Print this help menu.
-u, --upgrade Upgrade Qi (pull the latest from git)
-m, --update-manifest Update the Qi manifest
-i, --install PACKAGE Install a package from Qi (global by default)
-d, --install-deps ASD-FILE Install dependencies locally for the specified system

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

0 comments on commit db6266f

Please sign in to comment.
You can’t perform that action at this time.