diff --git a/.readthedocs.yml b/.readthedocs.yml
index 2ccc3f9..d1a6b51 100644
--- a/.readthedocs.yml
+++ b/.readthedocs.yml
@@ -3,9 +3,17 @@
# SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
# Code is Apache-2.0 and docs are CC-BY-4.0
+
+version: 2
+
+
build:
- image: latest
+ os: ubuntu-20.04
+ tools:
+ python: "3.9"
python:
- version: 3.9
- pip_install: true
+ install:
+ - method: setuptools
+ path: .
+ - requirements: docs/root/requirements.txt
diff --git a/docs/root/Makefile b/docs/root/Makefile
index 035608b..357bb5c 100644
--- a/docs/root/Makefile
+++ b/docs/root/Makefile
@@ -2,7 +2,7 @@
#
# You can set these variables from the command line.
-SPHINXOPTS = -W
+SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER = a4
BUILDDIR = build
diff --git a/docs/root/requirements.txt b/docs/root/requirements.txt
index f04211f..8d8ed0f 100644
--- a/docs/root/requirements.txt
+++ b/docs/root/requirements.txt
@@ -1,10 +1,38 @@
-Sphinx~=1.0
-recommonmark>=0.4.0
-sphinx-rtd-theme>=0.1.9
-sphinxcontrib-napoleon>=0.4.4
-sphinxcontrib-httpdomain>=1.5.0
-pyyaml>=4.2b1
-aafigure>=0.6
-packaging~=18.0
-wget
-jinja2==3.0.0
+aafigure==0.6
+alabaster==0.7.12
+Babel==2.10.1
+certifi==2021.10.8
+charset-normalizer==2.0.12
+commonmark==0.9.1
+docutils==0.17.1
+idna
+imagesize==1.3.0
+importlib-metadata==4.11.3
+Jinja2==3.0.0
+markdown-it-py==2.1.0
+MarkupSafe==2.1.1
+mdit-py-plugins==0.3.0
+mdurl==0.1.1
+myst-parser==0.17.2
+packaging==21.3
+pockets==0.9.1
+Pygments==2.12.0
+pyparsing==3.0.8
+pytz==2022.1
+PyYAML>=5.4.0
+requests>=2.25i.1
+six==1.16.0
+snowballstemmer==2.2.0
+Sphinx==4.5.0
+sphinx-rtd-theme==1.0.0
+sphinxcontrib-applehelp==1.0.2
+sphinxcontrib-devhelp==1.0.2
+sphinxcontrib-htmlhelp==2.0.0
+sphinxcontrib-httpdomain==1.8.0
+sphinxcontrib-jsmath==1.0.1
+sphinxcontrib-napoleon==0.7
+sphinxcontrib-qthelp==1.0.3
+sphinxcontrib-serializinghtml==1.1.5
+urllib3==1.26.9
+wget==3.2
+zipp==3.8.0
diff --git a/docs/root/source/conf.py b/docs/root/source/conf.py
index 8dee073..5c082ea 100644
--- a/docs/root/source/conf.py
+++ b/docs/root/source/conf.py
@@ -23,9 +23,6 @@ import sys
import inspect
from os import rename, remove
-from recommonmark.parser import CommonMarkParser
-
-
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
@@ -51,9 +48,12 @@ sys.path.insert(0,parentdir)
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
+project = 'Planetmint'
+
import sphinx_rtd_theme
extensions = [
+ 'myst_parser',
'sphinx.ext.autosectionlabel',
'sphinx.ext.autodoc',
'sphinx.ext.intersphinx',
@@ -99,10 +99,6 @@ autodoc_default_options = {
'members': None,
}
-source_parsers = {
- '.md': CommonMarkParser,
-}
-
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
@@ -115,9 +111,8 @@ source_suffix = ['.rst', '.md']
# The master toctree document.
master_doc = 'index'
-
+autosectionlabel_prefix_document = True
# General information about the project.
-project = 'Planetmint'
now = datetime.datetime.now()
copyright = str(now.year) + ', Planetmint Contributors'
author = 'Planetmint Contributors'
@@ -137,7 +132,7 @@ release = _version['__version__']
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
-language = None
+language = 'en'
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
diff --git a/docs/root/source/installation/api/http-samples/api-index-response.http b/docs/root/source/installation/api/http-samples/api-index-response.http
index 601f9ef..fe767cd 100644
--- a/docs/root/source/installation/api/http-samples/api-index-response.http
+++ b/docs/root/source/installation/api/http-samples/api-index-response.http
@@ -4,7 +4,7 @@ Content-Type: application/json
{
"assets": "/assets/",
"blocks": "/blocks/",
- "docs": "https://docs.planetmint.com/projects/server/en/v0.9.1/http-client-server-api.html",
+ "docs": "https://docs.planetmint.com/projects/server/en/v0.9.2/http-client-server-api.html",
"metadata": "/metadata/",
"outputs": "/outputs/",
"streams": "ws://localhost:9985/api/v1/streams/valid_transactions",
diff --git a/docs/root/source/installation/api/http-samples/index-response.http b/docs/root/source/installation/api/http-samples/index-response.http
index f7e524e..789da5e 100644
--- a/docs/root/source/installation/api/http-samples/index-response.http
+++ b/docs/root/source/installation/api/http-samples/index-response.http
@@ -6,7 +6,7 @@ Content-Type: application/json
"v1": {
"assets": "/api/v1/assets/",
"blocks": "/api/v1/blocks/",
- "docs": "https://docs.planetmint.com/projects/server/en/v0.9.1/http-client-server-api.html",
+ "docs": "https://docs.planetmint.com/projects/server/en/v0.9.2/http-client-server-api.html",
"metadata": "/api/v1/metadata/",
"outputs": "/api/v1/outputs/",
"streams": "ws://localhost:9985/api/v1/streams/valid_transactions",
@@ -14,7 +14,7 @@ Content-Type: application/json
"validators": "/api/v1/validators"
}
},
- "docs": "https://docs.planetmint.com/projects/server/en/v0.9.1/",
+ "docs": "https://docs.planetmint.com/projects/server/en/v0.9.2/",
"software": "Planetmint",
- "version": "0.9.1"
+ "version": "0.9.2"
}
diff --git a/docs/root/source/properties.md b/docs/root/source/properties.md
index 862f464..861fe0a 100644
--- a/docs/root/source/properties.md
+++ b/docs/root/source/properties.md
@@ -7,7 +7,7 @@ Code is Apache-2.0 and docs are CC-BY-4.0
# Properties of Planetmint
-### Decentralization
+## Decentralization
Decentralization means that no one owns or controls everything, and there is no single point of failure.
@@ -23,12 +23,12 @@ If someone has (or gets) admin access to a node, they can mess with that node (e
It’s worth noting that not even the admin or superuser of a node can transfer assets. The only way to create a valid transfer transaction is to fulfill the current crypto-conditions on the asset, and the admin/superuser can’t do that because the admin user doesn’t have the necessary information (e.g. private keys).
-### Byzantine Fault Tolerance
+## Byzantine Fault Tolerance
[Tendermint](https://tendermint.io/) is used for consensus and transaction replication,
and Tendermint is [Byzantine Fault Tolerant (BFT)](https://en.wikipedia.org/wiki/Byzantine_fault_tolerance).
-### Node Diversity
+## Node Diversity
Steps should be taken to make it difficult for any one actor or event to control or damage “enough” of the nodes. (Because Planetmint Server uses Tendermint, "enough" is ⅓.) There are many kinds of diversity to consider, listed below. It may be quite difficult to have high diversity of all kinds.
@@ -39,7 +39,7 @@ Steps should be taken to make it difficult for any one actor or event to control
Note: If all the nodes are running the same code, i.e. the same implementation of Planetmint, then a bug in that code could be used to compromise all of the nodes. Ideally, there would be several different, well-maintained implementations of Planetmint Server (e.g. one in Python, one in Go, etc.), so that a consortium could also have a diversity of server implementations. Similar remarks can be made about the operating system.
-### Immutability
+## Immutability
The blockchain community often describes blockchains as “immutable.” If we interpret that word literally, it means that blockchain data is unchangeable or permanent, which is absurd. The data _can_ be changed. For example, a plague might drive humanity extinct; the data would then get corrupted over time due to water damage, thermal noise, and the general increase of entropy.
diff --git a/docs/root/source/terminology.md b/docs/root/source/terminology.md
index 6f42b32..6827de7 100644
--- a/docs/root/source/terminology.md
+++ b/docs/root/source/terminology.md
@@ -9,19 +9,17 @@ Code is Apache-2.0 and docs are CC-BY-4.0
There is some specialized terminology associated with Planetmint. To get started, you should at least know the following:
-### Planetmint Node
+## Planetmint Node
-<<<<<<< HEAD
-A **Planetmint node** is a machine (or logical machine) running [Planetmint Server](https://docs.planetmint.com/projects/server/en/latest/introduction.html) and related software. Each node is controlled by one person or organization.
-=======
-A **Planetmint node** is a machine (or logical machine) running [Planetmint Server](https://docs.planetmint.io/projects/server/en/latest/introduction.html) and related software. Each node is controlled by one person or organization.
->>>>>>> 3bfc3298f8210b135084e823eedd47f213538088
+**Planetmint node** is a machine (or logical machine) running [Planetmint Server](https://docs.planetmint.com/projects/server/en/latest/introduction.html) and related software. Each node is controlled by one person or organization.
-### Planetmint Network
+**Planetmint node** is a machine (or logical machine) running [Planetmint Server](https://docs.planetmint.io/projects/server/en/latest/introduction.html) and related software. Each node is controlled by one person or organization.
+
+## Planetmint Network
A set of Planetmint nodes can connect to each other to form a **Planetmint network**. Each node in the network runs the same software. A Planetmint network may have additional machines to do things such as monitoring.
-### Planetmint Consortium
+## Planetmint Consortium
The people and organizations that run the nodes in a Planetmint network belong to a **Planetmint consortium** (i.e. another organization). A consortium must have some sort of governance structure to make decisions. If a Planetmint network is run by a single company, then the "consortium" is just that company.
@@ -29,7 +27,7 @@ The people and organizations that run the nodes in a Planetmint network belong t
A Planetmint network is just a bunch of connected nodes. A consortium is an organization which has a Planetmint network, and where each node in that network has a different operator.
-### Transactions
+## Transactions
Are described in detail in `Planetmint Transactions Spec `_ .
@@ -80,10 +78,7 @@ You could do more elaborate things too. As one example, each time someone writes
### Role-Based Access Control (RBAC)
-<<<<<<< HEAD
In September 2017, we published a [blog post about how one can define an RBAC sub-system on top of Planetmint](https://blog.planetmint.com/role-based-access-control-for-planetmint-assets-b7cada491997).
-=======
-In September 2017, BigchainDB published a [blog post about how one can define an RBAC sub-system on top of Planetmint](https://blog.bigchaindb.com/role-based-access-control-for-planetmint-assets-b7cada491997).
->>>>>>> 3bfc3298f8210b135084e823eedd47f213538088
+
At the time of writing (January 2018), doing so required the use of a plugin, so it's not possible using standard Planetmint (which is what's available on the [IPDB Testnet](https://test.ipdb.io/>). That may change in the future.
If you're interested, `contact IPDB `_.
diff --git a/planetmint/version.py b/planetmint/version.py
index 20b4fbf..3500cb5 100644
--- a/planetmint/version.py
+++ b/planetmint/version.py
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
# Code is Apache-2.0 and docs are CC-BY-4.0
-__version__ = '0.9.1'
+__version__ = '0.9.2'
__short_version__ = '0.9'
# Supported Tendermint versions
diff --git a/setup.py b/setup.py
index 6f881dc..329e303 100644
--- a/setup.py
+++ b/setup.py
@@ -35,6 +35,15 @@ def check_setuptools_features():
' $ pip3 install --upgrade setuptools\n'
'and then run this command again')
+import pathlib
+import pkg_resources
+
+with pathlib.Path('docs/root/requirements.txt').open() as requirements_txt:
+ docs_require= [
+ str(requirement)
+ for requirement
+ in pkg_resources.parse_requirements(requirements_txt)
+ ]
check_setuptools_features()
@@ -43,18 +52,8 @@ dev_require = [
'ipython',
'watchdog',
'logging_tree',
- 'pre-commit'
-]
-
-docs_require = [
- 'Sphinx~=1.0',
- 'recommonmark>=0.4.0',
- 'sphinx-rtd-theme>=0.1.9',
- 'sphinxcontrib-httpdomain>=1.5.0',
- 'sphinxcontrib-napoleon>=0.4.4',
- 'aafigure>=0.6',
- 'wget',
- 'jinja2==3.0.0'
+ 'pre-commit',
+ 'twine'
]
tests_require = [
diff --git a/tox.ini b/tox.ini
index 4adc024..0cc9c26 100644
--- a/tox.ini
+++ b/tox.ini
@@ -35,5 +35,5 @@ deps =
typing-extensions
-r{toxinidir}/docs/root/requirements.txt
extras = None
-commands = sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html
+commands = sphinx-build -b html -d {envtmpdir}/doctrees . {envtmpdir}/html