docs/tutorial/README.rst
author Anton Shestakov <av6@dwimlabs.net>
Fri, 06 Sep 2019 12:53:46 +0700
branchstable
changeset 4829 6b82b4f72347
parent 3376 aad37ffd7d58
permissions -rw-r--r--
stack: make a deep copy of `dependencies` before modifying its items The algorithm later on in this method uses .remove() to remove individual elements from items in dependencies, which before this patch modified the cached property contents. So for further use that dictionary was in the form of {1: set([])}, i.e. all sets were empty. This deep copy block could be way simpler, but the problem is that sometimes we get lists of _succs() from evolvebits.builddependencies(). Note: this happens only in topic's stack version of builddependencies() and it looks like a suboptimal way to handle multiple successors (see evolve's counterpart function). stack.builddependencies method is removed, it has served its purpose (see the previous patch).

=============================
Training supports
=============================

Contributing
============

The main source for the supports is the `slides.md` but it doesn't contains
all the source.

The `slides.md` file contains several snippets that are replaced by other
files at compilation time.

For example:

.. code:: markdown

  ~~~raw-file
  output/fix-a-bug-base.log
  ~~~

Will replace this three lines by the content of the file `output/fix-a-bug-
base.log` which is generated when running the .t test file (see below for
instruction how to do that).

.. code:: markdown

  ~~~graphviz-file
  graphs/fix-bug-1.dot
  ~~~

Will replace this three lines by the svg rendering of the graphviz definition
in the file `graphs/fix-bug-1.dot`. This file is generated when running the .t
test file (see below for instruction how to do that).


Environment preparation
=======================

This training supports needs pandoc to compile.

You'll need a copy of the Mercurial source in order to generate the training
supports.

You will also needs a functioning Python environment with the possibility to
use `pip install` with your current user. In doubt, you can use a `virtualenv
<https://virtualenv.pypa.io/en/stable/>`.

You can then run the `prepare.sh` script that will configure the environment
for you.

Generating the supports
=======================

First, you need to run a .t test file to generate a bunch of files. You can
run the test file with this command:

`python /PATH/TO/MERCURIAL/tests/run-tests.py -l test-training.t`

It should have generated files in at least two directories: `graphs` and
`output`.

Finally, launch the `compile.sh` to generate the `index.html` output file.