Skip to content

LibertyDSNP/spec

Repository files navigation

DSNP Specification

This repository holds the technical specification for the Decentralized Social Networking Protocol (DSNP). The current official specification can be viewed in its compiled form here. Alternatively, the latest iteration of the spec can be viewed non-formatted here. For more information about the DSNP, visit DSNP.org

Releases

Spec Site Releases

  1. Merge all changes into main and handle any updated specifications (see below).
  2. Create a GitHub Release and tag it using the following CalVer: YYYY.MM.### (where ### is the nth release in that month)

Spec Version Release & Changelog Process

  1. Update the version at the top of the Overview.md file for spec
  2. Update the releases table on the Overview.md file for spec
  3. Update the releases table on the root index.md file
  4. Use the appropriate git tag(s) for the specs [Spec]-v[Major].[Minor].[Patch]
    • DSNP: DSNP-vX.X.X
    • Activity Content ActivityContent-vX.X.X
    • DSNP on Ethereum EVM-vX.X.X
  5. Generate a GitHub Release for each spec/tag combination with the Changelog.

Note: Remember that you can link to the tag on GitHub before creating the tag.

Running Locally

To build the spec generator locally, install mdBook and link checker. The link checker will run during build process and throw warnings for any broken internal or external links.

cargo install mdbook
cargo install mdbook-linkcheck

To run the spec generator locally and preview the formatted spec website, use the following commands:

npm install
npm run build

To run the spec generator locally and also actively build after each change, use the following command:

npm run serve

Once the local server is running, the spec will automatically open in the browser. A live-reloading preview of the spec can also be viewed at http://localhost:3000.

Tools and frameworks used in this repo

Contributing a specification

Formatting, names, etc

  1. Use the official outline for specifications. Respect and observe good file organization practices.

  2. Spec files are written in Markdown format, and are located in the pages directory.

  3. When documenting an API, use the following table style:

    Name Description Type Required?
    fileHash a description of fileHash bytes YES
  4. Put images into the images folder and link to them using their URL in the GitHub repo.

Release process

  1. Deployment step of the GitHub actions workflow is triggered by tags fitting the regex:

       ^\d{8}\.\d+
  2. Trigger will deploy the latest successful artifact from main branch.