diff --git a/docs/rootDocs/README.md b/docs/rootDocs/README.md index 4aa1748..7baac33 100644 --- a/docs/rootDocs/README.md +++ b/docs/rootDocs/README.md @@ -11,47 +11,75 @@ pre-requisite, Pandoc to build the html documentation from the markdown files. Windows pre-requisites: Visual Studio and git-bash To obtain the source code from which the project can be built, -including this README, from the bash command line (git-bash in windows). +including this README.html, from the bash command line (git-bash in windows). -```bash2 +```bash git clone --recurse-submodules missing url ``` -To configure and build the required third party libraries in windows, -then build the program and run unit test for the first time, execute +To build the docs, you need pandoc on the path. + +```bash2 +cd wallet/docs +./mkdocs.sh +``` + +To configure and build the required third party libraries in windows, then +build the program and run unit test for the first time, you need to have +Visual studio build tools at their default location) + +```bash2 +cd wallet +./winConfigure.bat +``` + +Or, if you are in the command shell or power shell, ```bat .\winConfigure.bat ``` -from the windows power shell or command window. +After a pull from remote in which the submodules have changed, the pull +fails to automatically update the submodules by default, and when you +switch or checkout branches, the switch fails to automatically switch +and checkout the brances. -Should the libraries change in a subsequent `pull ` you will need +After a pull that gives you a status of modified submodules. -```bat -git pull -rem you get a status message indicating libraries have been updated. -git pull -force --recurse-submodules -winConfigure.bat +```bash +git submodule update --init --recursive --remote ``` -in order to rebuild the libraries. +After a checkout or branch switch that gives you a status of modified submodules. -The `--force` is necessary, because `winConfigure.bat` changes -many of the library files, and therefore git will abort the pull. +```bash +git submodule update --recursive +``` + +The documentation is in pandoc flavored markdown, which is + conveniently edited in vscode with the `markdown lint` and `Pandoc` + extensions included and, if you have launched `code` in the docs directory, + with `file/preferences/Extensions/Markdown/Styles` set to + `pandoc_templates\\style.css`, that being the style used by the `mkdocs.sh` documentation build script. + + On Windows, if Git Bash and Pandoc has been installed, you should be + able to run this shell file in bash by double clicking on it. + +if you add the recommended repository configuration defaults to your local repository configuration + +```bash +git config --local include.path ../.gitconfig +``` + +this will substantially mitigate the problem of submodules failing to +update in pushes, pulls, checkouts, and switches. [cryptographic software is under attack]:./docs/contributor_code_of_conduct.html#code-will-be-cryptographically-signed "Contributor Code of Conduct" {target="_blank"} -The winConfigure script builds everything, including the documents, but -takes a while. Normally when you make changes to the source code you -should rebuild just the program, using `wallet.sln` on windows. -To rebuild the documents after editing them, `docs/mkdocs.sh` - -winConfigure.bat also configures the repository you just created to use -`.gitconfig` in the repository, causing git to to implement GPG signed -commits -- because [cryptographic software is under attack] from NSA +It will, however, also implement signed commits, insist that you have `gpg` on your path, and that you have cohfigured a signing key in your local config, and will refuse to pull updates that are signed by a gpg key that you have not locally trusted. +because [cryptographic software is under attack] from NSA entryists and shills, who seek to introduce backdoors. This may be inconvenient if you do not have `gpg` installed and set up. @@ -99,11 +127,5 @@ addresses as owned by the same entity, and we don't want email addresses used to link people to the project, because those identities would then come under state and quasi state pressure. -To build the documentation in its intended html form from the markdown -files, execute the bash script file `docs/mkdocs.sh`, in an environment where -`pandoc` is available. On Windows, if Git Bash and Pandoc -has been installed, you should be able to run this shell -file in bash by double clicking on it. - [Pre alpha release](./RELEASE_NOTES.html), which means it does not yet work even well enough for it to be apparent what it would do if it did work.