Skip to content

covscript/cspkg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Covariant Script Package Manager

Covariant Script Package Manager is an online package manager written in Covariant Script itself.

Dependency

Usage

Usage: cspkg <commands> ... [options] ...

Commands:
    init                          Initialize cspkg environment and configuration
    install   | -i  <Package>...  Install packages from remote source
    remove    | -r  <Package>...  Remove packages
    config    | -c  <Key>         Manage local configuration
    upgrade   | -u                Upgrade local packages
    build     | -b  [Path]        Build & test local packages
    list      | -l                List current packages
    help      | -h                Show help information
    version   | -v                Show version information

Options:
  General
    --yes                         Cancel the prompt

  cspkg install
    --fix                         Fix broken dependencies
    --import                      Scanning local CovScript packages
    --show-avail                  Show available CovScript packages in remote source

  cspkg upgrade
    --retread                     Retread all local packages and their dependencies

  cspkg config
    --set         <Value>         Set a configuration key
    --app         <Value>         Append to a configuration key
    --unset                       Restore a configuration key to default

  cspkg build
    --install     [Package]...    Install a local package
    --compile     [Argument]...   Compile extension using CXX compiler
    --release     <Source URL>    Generate package index files for release
    --flat                        Don't create cspkg-repo directory structure

Configure CSPKG

Local path: ~/.cspkg/config.json

{
	"arch": "x86_64",
	"home": "PATH-TO-COVSCRIPT-HOME",
	"source": "URL-OF-REPO;URL-OF-REPO",
	"proxy": "URL-OF-HTTP-PROXY",
	"timeout_ms": "3000"
}

For fresh installment, you can run cspkg init to generate config file manually.

Architecture of a typical CSPKG repository

File Storage

Typically a CSPKG repository is a HTTP(s) site in following structure:

  • http://mirrors.covariant.cn/cspkg_v2/
    • index.json
    • index
      • universal
      • winucrt
        • x86_64
          • index.json
          • xxx.json
      • linux
        • x86_64
          • index.json
          • xxx.json
      • macos
        • arm64
          • index.json
          • xxx.json
    • universal
      • xxx.csp
    • winucrt/x86_64
      • xxx.cse
    • linux/x86_64
      • xxx.cse
    • macos/arm64
      • xxx.cse

You can also use local storage by setting source to URL like file:///path-to-your-local-repo/.

Build your package

Step 1: Write your Package Description File

Package Description File Template:

{
    "Name": "test",
    "Info": "Test Package",
    "Author": "Anonymous",
    "Version": "1.0.0",
    "Target": "URL to your package",
    "Dependencies": []
}
  • Name is the unique identifier of the package and cannot be repeated.
  • Info is the description of your package, should be short in one sentence.
  • Author is the name of the package author.
  • Version is the version of your package, which will be sorted in lexicographical order.
  • Target is the URL of your file(.cse or .csp), you can use GitHub as your server.
  • Dependencies is an array of package names you depend on.

Example:

{
    "Name": "csdbc_mysql",
    "Info": "CSDBC MySQL Driver",
    "Author": "CovScript Organization",
    "Version": "1.0.0",
    "Target": "http://mirrors.covariant.cn/cspkg_v2/universal/csdbc_mysql.csp",
    "Dependencies": [
        "database",
        "codec",
        "csdbc",
        "regex"
    ]
}

Step 2: Upload your Package Description File

You can:

  • Upload with your project file to GitHub or other VCS (Recommended!!!)
  • Upload to dedicated server(mostly for releasing purpose)

Step 3: Building your package

If your package is written in Covariant Script, there's no need for extra building. But if you are writting an Covariant Script Extension, please follow CSBuild Instruction.

CSPKG provides lots commands for building and compiling. If you are writting an extension and have Source field configured in csbuild folders, you can use cspkg build --install for auto installation and cspkg build <FILE> --compile for single file compilation.

After that, you can use cspkg build --release <Source URL> for auto releasing, which can generate a legal file structural for your CSPKG source.

Step 4: Submit your Package to CSPKG Source

  1. Fork CSPKG Source GitHub Repository
  2. Fill the URL of your Package Description File to CSPKG Index File
    • Universal Package(No platform dependency): cspkg/universal.json
    • Platform Specified Package: cspkg/OS_Architectural.json
  3. Create new pull request

About

Covariant Script Package Manager

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •