github.com/filecoin-project/specs-actors/v4@v4.0.2/README.md (about)

     1  # Filecoin actors
     2  [![CircleCI](https://circleci.com/gh/filecoin-project/specs-actors.svg?style=svg)](https://circleci.com/gh/filecoin-project/specs-actors)
     3  [![codecov](https://codecov.io/gh/filecoin-project/specs-actors/branch/master/graph/badge.svg)](https://codecov.io/gh/filecoin-project/specs-actors)
     4  [![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white)](https://pkg.go.dev/github.com/filecoin-project/specs-actors)
     5  
     6  This repo is the specification of the Filecoin builtin actors, in the form of executable code.
     7  
     8  This is a companion to the rest of the [Filecoin Specification](https://github.com/filecoin-project/specs), 
     9  but also directly usable by Go implementations of Filecoin.
    10  
    11  ## Versioning
    12  
    13  Releases of this repo follow semantic versioning rules, with consideration of distributed state machines.
    14  - The major version will remain `0` or `1` for the forseeable future. 
    15    We do not bump the major version every time there's a backwards-incompatible change in state machine evaluation, 
    16    or actor interfaces, because this interacts very poorly with Go's module resolution, 
    17    requiring a change of all import paths.
    18    After `1.0` we may consider using the major version number to version the `Runtime` interface, which is the link between
    19    the actors and the system in which they are embedded.
    20  - A minor version change indicates a backwards-incompatible change in the state machine evaluation, including
    21    actor exported methods or constant values, while retaining compatibility of the `Runtime` interface.
    22    This means that the same sequence of messages might produce different states at two different versions.
    23    In a blockchain, this would usually require a coordinated network upgrade or "hard fork".
    24    After `1.0`, a minor version change may alter behaviour but not exported code or actor interfaces.
    25  - A patch version change may alter state evaluation (but not exported code or actor interfaces).
    26    After `1.0`, a patch version change indicates a backward compatible fix or improvement that doesn't change
    27    state evaluation semantics or exported interfaces. 
    28  
    29  ## License
    30  This repository is dual-licensed under Apache 2.0 and MIT terms.
    31  
    32  Copyright 2019-2020. Protocol Labs, Inc.