Cosm

所属分类:编程语言基础
开发工具:Lua
文件大小:0KB
下载次数:0
上传日期:2024-03-02 11:05:54
上 传 者sh-1993
说明:  terra编程语言的包管理器
(Package manager for the terra programming language)

文件列表:
bin/
cli/
src/
test/
LICENSE
install.sh

# Cosm - package manager `Cosm` and its associated command-line-interface `cosm`, is a package manager and integrated package registry. For now we support [Lua](https://github.com/renehiemstra/Cosm/blob/master/) and embedded languages such as [Terra](https://github.com/renehiemstra/Cosm/blob/master/) and soon [Regent](https://github.com/renehiemstra/Cosm/blob/master/). However, the idea is to provide a general framework to support any language in the pursuit of package management. The design of `Cosm` is based on the following ideas * [Minimal version selection](https://github.com/renehiemstra/Cosm/blob/master/https://research.swtch.com/vgo-mvs), leading to 100% reproducible builds without the need for a lockfile or pkg manifest that store the entire dependency tree. * Clear division of: (1) a language agnostic core functionality for package management, and (2) a language/build system specific top-layer that is extensible. * Integrated tools for package registries, allowing both publicly and privately hosted package registries, using the same interface. * A local depot directory (.cosm) that locally hosts registry and package data and interacts with remotes when required. * A command-line-interface that is easy and feels like `git`. Some of these ideas have been drawn from my experiences with the [Julia package manager](https://github.com/renehiemstra/Cosm/blob/master/https://pkgdocs.julialang.org/v1/) and the excellent set of [blog posts](https://github.com/renehiemstra/Cosm/blob/master/https://research.swtch.com/vgo) from Ross Cox on package management in Go. Compared to the Julia Pkg manager, `cosm` naturally features reproducible builds without the need for a package manifest file. Instead, the dependency tree is evaluated just in time based on a simple criterion. The result is a relatively simple core design that is language agnostic. Specific Language or build system support can be added via simple plugins. Currently, `Cosm` depends on [Lua](https://github.com/renehiemstra/Cosm/blob/master/) and bash. ## Instalation Simply download and run the `install.sh` script. Try the following to check that calling `cosm` is successful ``` cosm --version ``` ## get status of a package or registry ``` cosm status (implemented) ``` *Gives an overview of a package when evaluated in the root of a package.* ``` cosm registry status (implemented) ``` *Gives an overview of the packages registered to the registry. Can be evaluated anywhere.* ## instantiate a new package ``` cosm init (implemented) cosm init -t