Giter Club home page Giter Club logo

dev-docs's Introduction

developer Documentation

An open source developers documentation book for rustic that you can read here.

Installation

This book is built with mdbook. You can install it by running cargo install mdbook.

Additional dependencies

  • cargo install mdbook-last-changed for date changes in the footer

  • cargo install mdbook-pandoc for rendering the book to PDF

Texlive

# Source the .env file to get the PANDOC_VERSION
. ./.env

sudo apt-get update

sudo apt-get install -y texlive texlive-latex-extra texlive-luatex texlive-lang-cjk librsvg2-bin fonts-noto

curl -LsSf https://github.com/jgm/pandoc/releases/download/$PANDOC_VERSION/pandoc-$PANDOC_VERSION-linux-amd64.tar.gz | tar zxf -

Building with mdbook

If you want to build it locally you can run one of these two commands in the root directory of the repository:

  • mdbook build

    Builds static html pages as output and places them in the /book directory by default.

  • mdbook serve

    Serves the book at http://localhost:3000 (port is changeable, take a look at the terminal output to be sure) and reloads the browser when a change occurs.

License

The content of this repository is licensed under MPL-2.0; see LICENSE.

dev-docs's People

Contributors

simonsan avatar dependabot[bot] avatar renovate[bot] avatar mundo-68 avatar

Watchers

 avatar  avatar

Forkers

vatson112

dev-docs's Issues

Create `ARCHITECTURE.md`

Should be describing certain architectural decisions and giving a graphical overview.

One of the lessons I’ve learned is that the biggest difference between an occasional contributor and a core developer lies in the knowledge about the physical architecture of the project. Roughly, it takes 2x more time to write a patch if you are unfamiliar with the project, but it takes 10x more time to figure out where you should change the code. This difference might be hard to perceive if you’ve been working with the project for a while.

I find the ARCHITECTURE file to be a low-effort high-leverage way to bridge this gap. As the name suggests, this file should describe the high-level architecture of the project. Keep it short: every recurring contributor will have to read it. Additionally, the shorter it is, the less likely it will be invalidated by some future change. This is the main rule of thumb for ARCHITECTURE — only specify things that are unlikely to frequently change. Don’t try to keep it synchronized with code. Instead, revisit it a couple of times a year.

  • bird’s eye overview of the problem being solved
  • specify a more-or-less detailed codemap
    • answers: where’s the thing that does X?
    • answers: what does the thing that I am looking at do?
    • A codemap is a map of a country, not an atlas of maps of its states.
    • Use this as a chance to reflect on the project structure.
    • Are the things you want to put near each other in the codemap adjacent when you run tree .?
  • describe coarse-grained modules and how they relate to each other
  • avoid going into details of how each module works, pull this into separate documents or (better) inline documentation.
  • Do name important files, modules, and types.
  • Do not directly link them (links go stale).
    • Instead, encourage the reader to use symbol search to find the mentioned entities by name. This doesn’t require maintenance and will help to discover related, similarly named things.
  • Explicitly call-out architectural invariants. Often, important invariants are expressed as an absence of something, and it’s pretty hard to divine that from reading the code.
  • Point out boundaries between layers and systems as well. A boundary implicitly contains information about the implementation of the system behind it. It even constrains all possible implementations.
  • After finishing the codemap, add a separate section on cross-cutting concerns.

https://matklad.github.io/2021/02/06/ARCHITECTURE.md.html

Examples:

Update release process

The docs are outdated WRT the release process. They need to be updated also for the release PR usage and there should be a checklist to follow.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Pending Approval

These branches will be created by Renovate only once you click their checkbox below.

  • chore(deps): update actions/configure-pages action to v5

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/install-mdbook/action.yml
  • taiki-e/install-action v2
.github/workflows/lint-md.yml
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
  • dprint/check v2.2@2f1cf31537886c3bfb05591c031f7744e48ba8a1
.github/workflows/mdbook.yml
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
  • actions/configure-pages v4@1f0c5cde4bc74cd7e1254d0cb4de8d49e9068c7d
  • actions/upload-pages-artifact v3@56afc609e74202658d3ffba0e8f6dda462b719fa
  • actions/deploy-pages v4@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e
.github/workflows/url-check-on-change.yml
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
  • gaurav-nelson/github-action-markdown-link-check v1@5c5dfc0ac2e225883c0e5f03a85311ec2830d368
.github/workflows/url-check-periodic.yml
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
  • gaurav-nelson/github-action-markdown-link-check v1@5c5dfc0ac2e225883c0e5f03a85311ec2830d368

  • Check this box to trigger a request for Renovate to run again on this repository

Add pdf/epub/foo renderer

I think it would be nice to package the book with rustic like we do with the config/ directory. For that it would be essential to be able to render the book to pdf and/or epub or some other format that can be viewed by the users without installing a special reader for it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.