Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
tools:cpm [2017-02-01 13:21] – created mhtools:cpm [2017-02-03 14:21] – [Overview] mh
Line 2: Line 2:
  
 ===== Overview ===== ===== Overview =====
 +
 +The Curry Package Manager (CPM) is a tool to distribute and
 +install Curry libraries and manage version dependencies
 +between these libraries.
 +These libraries are organized in packages.
 +There is a central index of all these packages which can
 +easily be downloaded by CPM.
 +The individual packages are currently not stored in a central
 +server but their source can be anywhere.
 +CPM organizes the automatic access to appropriate versions
 +of these packages so that a user does not need to know
 +about these details.
 +
 +CPM also supports //semantic versioning//, i.e., it is able to check
 +whether a new minor version of a package is consistent
 +(w.r.t. its API and behavior) with a previous version of
 +the same package.
 +
 +
 +===== Installing the Curry Package Manager =====
 +
 +The installation assumes that one of the Curry systems PAKCS or KiCS2
 +in installed and the executables ''curry'' and ''git'' are in your path.
 +If ''curry'' is not in your path, you must adapt the definition
 +of the variable ''CURRY'' in the ''Makefile'' before step 3.
 +Otherwise, perform the following steps to install CPM:
 +
 +    1> git clone https://git.ps.informatik.uni-kiel.de/curry/cpm.git
 +    2> cd cpm
 +    3> make
 +
 +If this was successful, the binary ''cpm'' has been generated in the
 +directory ''bin''. For conventient use, put this binary somewhere
 +in your path or create a symbolic link from some path directory
 +to this binary.
 +
 +===== Quick Start  =====
 +
 +Now you can clone a copy of the central package index repository by
 +
 +    > cpm update
 +
 +You can show a short list of all packages in this index by
 +
 +    > cpm list
 +
 +The command
 +
 +    > cpm info PACKAGE
 +
 +can be used to see more information about a package.
 +
 +In order to use a package in your Curry program which you intend
 +to develop, you have to start a new project.
 +Note that your project can also contribute to the Curry packages.
 +Therefore, to initialize it and use other packages, you need
 +a package description file in some project directory.
 +All this can be created by the command ''cpm new'' and answering
 +some questions:
 +
 +    > cpm new
 +    Create a new package
 +    --------------------
 +    What is the name of the new package? myproject
 +    What is the first version of the package? [0.0.1] 
 +    Who is the author of the package? Joe Curry <joe@curry.com>
 +    Please provide a short (one line) summary of what the package does:
 +    > This is just for testing.
 +    A new package in the directory 'myproject' has been created.
 +    Please go into this directory, add dependencies in 'package.json',
 +    and run 'cpm install' to install all dependencies.
 +
 +As you will see, an initial package description file ''package.json''
 +and a subdirectory ''src'' has been created. If you need some package
 +for your project, write it as a dependency in ''package.json''.
 +Then run
 +
 +    > cpm install
 +
 +to install all dependencies of the current package.
 +Afterwards, start your interactive Curry environment by
 +
 +    > cpm curry
 +
 +and you will be able to load the modules of the used packages.
 +In particular, the source directory ''src'' is added to your path
 +so that you can directly load any program you have stored
 +in this directory.
 +
 +===== Manual =====
 +
 +For further information, look into the {{tools:cpm:manual.pdf | manual of CPM}}.
 +
 +===== Uploading Packages =====
 +
 +Currently, there is no support for automatically uploading
 +new packages. However, if you have developed that might be of
 +interest to other Curry users, please write to
 +
 +    packages (AT) curry-language.org
 +
 +in order to make it publicly available.
 +
  
/srv/dokuwiki/currywiki/data/pages/tools/cpm.txt · Last modified: 2020-03-14 18:06 by mh
Back to top
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0