sm1thbr3n / ethpm-spec

Ethereum Package Manager http://ethpm.github.io/ethpm-spec/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EthPM Package Specification

Overview

Join the chat at https://gitter.im/ethpm/Lobby

This repository comprises the formal specification and documentation source for the EthPM package manifest data format.

This data format is designed to be produced/consumed by Ethereum development tools. As such, this repository is intended for tool developers wishing to integrate with EthPM.

Package manifests are JSON-encoded, tightly-packed, with objects’ keys sorted in lexicographic order. Package manifests may live on disk, but are intended to be produced programmatically and uploaded directly to a content-addressable storage network (e.g. IPFS). A package manifest describes a single package, including package name, version, dependencies, and references to distributed source files.

Repository Contents

Examples / Use Cases

Package: owned (prettified)

{
  "manifest_version": "2",
  "version": "1.0.0",
  "package_name": "owned",
  "meta": {
    "license": "MIT",
    "authors": [
      "Piper Merriam <pipermerriam@gmail.com>"
    ],
    "description": "Reusable contracts which implement a privileged 'owner' model for authorization.",
    "keywords": [
      "authorization"
    ],
    "links": {
      "documentation": "ipfs://QmUYcVzTfSwJoigggMxeo2g5STWAgJdisQsqcXHws7b1FW"
    }
  },
  "sources": {
    "./contracts/Owned.sol": "ipfs://Qme4otpS88NV8yQi8TfTP89EsQC5bko3F5N1yhRoi6cwGV"
  }
}

Please see Use Cases for documented examples of different kinds of packages with varying levels of complexity. Source for use case examples can be found in the examples/ directory of this repository.

Specification

The EthPM package manifest format is formally specified as a JSON-Schema.

Please see Package Specification for a natural-language description of this schema, or see package.spec.json for the machine-readable version.

Contributing

Building Sphinx docs locally

Requirements: Python 3, pip, make

Fork and clone this repo to get started. Then, in the cloned repo's directory:

  1. pip install -r requirements.txt
  2. cd docs
  3. make html

Docs are written in reStructuredText and built using the Sphinx documentation generator.

About

Ethereum Package Manager http://ethpm.github.io/ethpm-spec/


Languages

Language:Shell 59.6%Language:Python 40.4%