build+ci: switch to python3

Also in this commit:
 * Sync CI scripts with other projects
 * Modernize docs/conf.py
 * Cleanup README.md
 * Use the official markdown version of the GPLv3

Refs: #5095
Change-Id: Ie607fcde1f6e41fa5efbbb41b21cb08583017442
This commit is contained in:
Davide Pesavento committed 2020-04-01 21:19:45 -04:00
1 parent e3fe048411
commit a0546dbc86
12 files changed
+565 -681

No files matched your search

+1 -1
View File
@@ -26,4 +26,4 @@ __pycache__/
*.py[cod] *.py[cod]
# Other # Other
/VERSION /VERSION
+25 -3
View File
@@ -1,10 +1,32 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -e
source .jenkins.d/util.sh
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) export CACHE_DIR=${CACHE_DIR:-/tmp}
export WAF_JOBS=${WAF_JOBS:-1}
[[ $JOB_NAME == *"code-coverage" ]] && export DISABLE_ASAN=yes
for file in "$DIR"/.jenkins.d/*; do nanos() {
# Cannot use date(1) because macOS does not support %N format specifier
python3 -c 'import time; print(int(time.time() * 1e9))'
}
for file in .jenkins.d/*; do
[[ -f $file && -x $file ]] || continue [[ -f $file && -x $file ]] || continue
echo "Run: $file"
if [[ -n $TRAVIS ]]; then
label=$(basename "$file" | sed -E 's/[[:digit:]]+-(.*)\..*/\1/')
echo -ne "travis_fold:start:${label}\r"
echo -ne "travis_time:start:${label}\r"
start=$(nanos)
fi
echo "\$ $file"
"$file" "$file"
if [[ -n $TRAVIS ]]; then
finish=$(nanos)
echo -ne "travis_time:end:${label}:start=${start},finish=${finish},duration=$((finish-start)),event=${label}\r"
echo -ne "travis_fold:end:${label}\r"
fi
done done
+22 -21
View File
@@ -1,29 +1,30 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -ex
JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
source "$JDIR"/util.sh
set -x
if has OSX $NODE_LABELS; then if has OSX $NODE_LABELS; then
FORMULAE=(boost openssl pkg-config) FORMULAE=(boost openssl pkg-config)
brew update if has OSX-10.13 $NODE_LABELS || has OSX-10.14 $NODE_LABELS; then
if [[ -n $TRAVIS ]]; then FORMULAE+=(python)
# travis images come with a large number of brew packages
# pre-installed, don't waste time upgrading all of them
for FORMULA in "${FORMULAE[@]}"; do
brew outdated $FORMULA || brew upgrade $FORMULA
done
else
brew upgrade
fi fi
brew install "${FORMULAE[@]}"
brew cleanup
fi
if has Ubuntu $NODE_LABELS; then if [[ -n $TRAVIS ]]; then
# Travis images come with a large number of pre-installed
# brew packages, don't waste time upgrading all of them
brew list --versions "${FORMULAE[@]}" || brew update
for FORMULA in "${FORMULAE[@]}"; do
brew list --versions "$FORMULA" || brew install "$FORMULA"
done
# Ensure /usr/local/opt/openssl exists
brew reinstall openssl
else
brew update
brew upgrade
brew install "${FORMULAE[@]}"
brew cleanup
fi
elif has Ubuntu $NODE_LABELS; then
sudo apt-get -qq update sudo apt-get -qq update
sudo apt-get -qy install build-essential pkg-config libboost-all-dev \ sudo apt-get -qy install g++ pkg-config python3-minimal \
libsqlite3-dev libssl-dev libboost-all-dev libssl-dev libsqlite3-dev
fi fi
+21 -18
View File
@@ -1,12 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -ex
JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) pushd "$CACHE_DIR" >/dev/null
source "$JDIR"/util.sh
set -x
pushd "${CACHE_DIR:-/tmp}" >/dev/null
INSTALLED_VERSION= INSTALLED_VERSION=
if has OSX $NODE_LABELS; then if has OSX $NODE_LABELS; then
@@ -22,17 +17,15 @@ if [[ -z $INSTALLED_VERSION ]]; then
INSTALLED_VERSION=$(git -C ndn-cxx rev-parse HEAD 2>/dev/null || echo NONE) INSTALLED_VERSION=$(git -C ndn-cxx rev-parse HEAD 2>/dev/null || echo NONE)
fi fi
sudo rm -Rf ndn-cxx-latest sudo rm -rf ndn-cxx-latest
git clone --depth 1 https://github.com/named-data/ndn-cxx.git ndn-cxx-latest
git clone --depth 1 git://github.com/named-data/ndn-cxx ndn-cxx-latest
LATEST_VERSION=$(git -C ndn-cxx-latest rev-parse HEAD 2>/dev/null || echo UNKNOWN) LATEST_VERSION=$(git -C ndn-cxx-latest rev-parse HEAD 2>/dev/null || echo UNKNOWN)
if [[ $INSTALLED_VERSION != $LATEST_VERSION ]]; then if [[ $INSTALLED_VERSION != $LATEST_VERSION ]]; then
sudo rm -Rf ndn-cxx sudo rm -rf ndn-cxx
mv ndn-cxx-latest ndn-cxx mv ndn-cxx-latest ndn-cxx
else else
sudo rm -Rf ndn-cxx-latest sudo rm -rf ndn-cxx-latest
fi fi
sudo rm -f /usr/local/bin/ndnsec* sudo rm -f /usr/local/bin/ndnsec*
@@ -42,15 +35,25 @@ sudo rm -f /usr/local/lib{,64}/pkgconfig/libndn-cxx.pc
pushd ndn-cxx >/dev/null pushd ndn-cxx >/dev/null
./waf configure --color=yes --enable-shared --disable-static --without-osx-keychain if has Linux $NODE_LABELS && [[ $CXX != clang* && -z $DISABLE_ASAN ]]; then
./waf build --color=yes -j${WAF_JOBS:-1} # https://stackoverflow.com/a/47022141
sudo_preserve_env PATH -- ./waf install --color=yes ASAN="--with-sanitizer=address"
fi
if has CentOS-8 $NODE_LABELS; then
# https://bugzilla.redhat.com/show_bug.cgi?id=1721553
PCH="--without-pch"
fi
./waf --color=yes configure --disable-static --enable-shared --without-osx-keychain $ASAN $PCH
./waf --color=yes build -j$WAF_JOBS
sudo_preserve_env PATH -- ./waf --color=yes install
popd >/dev/null popd >/dev/null
popd >/dev/null popd >/dev/null
if has CentOS-8 $NODE_LABELS; then
sudo tee /etc/ld.so.conf.d/ndn.conf >/dev/null <<< /usr/local/lib64
fi
if has Linux $NODE_LABELS; then if has Linux $NODE_LABELS; then
sudo ldconfig sudo ldconfig
elif has FreeBSD10 $NODE_LABELS; then
sudo ldconfig -m
fi fi
+26 -32
View File
@@ -1,47 +1,41 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -ex
JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) git submodule sync
source "$JDIR"/util.sh git submodule update --init
set -x if [[ -z $DISABLE_ASAN ]]; then
if [[ $JOB_NAME == *"code-coverage" ]]; then
COVERAGE="--with-coverage"
elif [[ -z $DISABLE_ASAN ]]; then
ASAN="--with-sanitizer=address" ASAN="--with-sanitizer=address"
fi fi
if [[ $JOB_NAME == *"code-coverage" ]]; then
# Cleanup COVERAGE="--with-coverage"
sudo_preserve_env PATH -- ./waf --color=yes distclean
if [[ $JOB_NAME != *"code-coverage" && $JOB_NAME != *"limited-build" ]]; then
# Configure/build in optimized mode with tests
./waf --color=yes configure --with-tests
./waf --color=yes build -j${WAF_JOBS:-1}
# Cleanup
sudo_preserve_env PATH -- ./waf --color=yes distclean
# Configure/build in optimized mode without tests
./waf --color=yes configure
./waf --color=yes build -j${WAF_JOBS:-1}
# Cleanup
sudo_preserve_env PATH -- ./waf --color=yes distclean
fi fi
# Configure/build in debug mode with tests if [[ $JOB_NAME != *"code-coverage" && $JOB_NAME != *"limited-build" ]]; then
./waf --color=yes configure --debug --with-tests $ASAN $COVERAGE # Build in release mode with tests
./waf --color=yes build -j${WAF_JOBS:-1} ./waf --color=yes configure --with-tests
./waf --color=yes build -j$WAF_JOBS
# (tests will be run against debug version) # Cleanup
./waf --color=yes distclean
# Build in release mode without tests
./waf --color=yes configure
./waf --color=yes build -j$WAF_JOBS
# Cleanup
./waf --color=yes distclean
fi
# Build in debug mode with tests
./waf --color=yes configure --debug --with-tests $ASAN $COVERAGE
./waf --color=yes build -j$WAF_JOBS
# (tests will be run against the debug version)
# Install # Install
sudo_preserve_env PATH -- ./waf --color=yes install sudo_preserve_env PATH -- ./waf --color=yes install
if has Linux $NODE_LABELS; then if has Linux $NODE_LABELS; then
sudo ldconfig sudo ldconfig
elif has FreeBSD $NODE_LABELS; then
sudo ldconfig -a
fi fi
+9 -14
View File
@@ -1,13 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -ex
JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
source "$JDIR"/util.sh
set -x
# Prepare environment # Prepare environment
rm -Rf ~/.ndn rm -rf ~/.ndn
if has OSX $NODE_LABELS; then if has OSX $NODE_LABELS; then
security unlock-keychain -p named-data security unlock-keychain -p named-data
@@ -15,7 +10,7 @@ fi
ndnsec-keygen "/tmp/jenkins/$NODE_NAME" | ndnsec-install-cert - ndnsec-keygen "/tmp/jenkins/$NODE_NAME" | ndnsec-install-cert -
BOOST_VERSION=$(python -c "import sys; sys.path.append('build/c4che'); import _cache; print(_cache.BOOST_VERSION_NUMBER);") BOOST_VERSION=$(python3 -c "import sys; sys.path.append('build/c4che'); import _cache; print(_cache.BOOST_VERSION_NUMBER);")
ut_log_args() { ut_log_args() {
if (( BOOST_VERSION >= 106200 )); then if (( BOOST_VERSION >= 106200 )); then
@@ -30,13 +25,13 @@ ut_log_args() {
fi fi
} }
# https://github.com/google/sanitizers/wiki/AddressSanitizerFlags
ASAN_OPTIONS="color=always" ASAN_OPTIONS="color=always"
ASAN_OPTIONS+=":detect_stack_use_after_return=true" ASAN_OPTIONS+=":check_initialization_order=1"
ASAN_OPTIONS+=":check_initialization_order=true" ASAN_OPTIONS+=":detect_stack_use_after_return=1"
ASAN_OPTIONS+=":strict_init_order=true" ASAN_OPTIONS+=":strict_init_order=1"
ASAN_OPTIONS+=":detect_invalid_pointer_pairs=1" ASAN_OPTIONS+=":strict_string_checks=1"
ASAN_OPTIONS+=":detect_container_overflow=false" ASAN_OPTIONS+=":detect_invalid_pointer_pairs=2"
ASAN_OPTIONS+=":strict_string_checks=true"
ASAN_OPTIONS+=":strip_path_prefix=${PWD}/" ASAN_OPTIONS+=":strip_path_prefix=${PWD}/"
export ASAN_OPTIONS export ASAN_OPTIONS
+16 -24
View File
@@ -1,36 +1,28 @@
CONTINUOUS INTEGRATION SCRIPTS # CONTINUOUS INTEGRATION SCRIPTS
==============================
Environment Variables Used in Build Scripts ## Environment Variables Used in Build Scripts
-------------------------------------------
- `NODE_LABELS`: the variable defines a list of OS properties. The set values are used by the - `NODE_LABELS`: space-separated list of platform properties. The included values are used by
build scripts to select proper behavior for different OS. the build scripts to select the proper behavior for different operating systems and versions.
The list should include at least `[OS_TYPE]`, `[DISTRO_TYPE]`, and `[DISTRO_VERSION]`. The list should normally contain `[OS_TYPE]`, `[DISTRO_TYPE]`, and `[DISTRO_VERSION]`.
Possible values for Linux: Example values:
* `[OS_TYPE]`: `Linux` - `[OS_TYPE]`: `Linux`, `OSX`
* `[DISTRO_TYPE]`: `Ubuntu` - `[DISTRO_TYPE]`: `Ubuntu`, `CentOS`
* `[DISTRO_VERSION]`: `Ubuntu-16.04`, `Ubuntu-18.04` - `[DISTRO_VERSION]`: `Ubuntu-16.04`, `Ubuntu-18.04`, `CentOS-8`, `OSX-10.14`, `OSX-10.15`
Possible values for OS X / macOS: - `JOB_NAME`: optional variable that defines the type of build job. Depending on the job type,
* `[OS_TYPE]`: `OSX`
* `[DISTRO_TYPE]`: `OSX` (can be absent)
* `[DISTRO_VERSION]`: `OSX-10.11`, `OSX-10.12`, `OSX-10.13`
- `JOB_NAME`: optional variable to define type of the job. Depending on the defined job type,
the build scripts can perform different tasks. the build scripts can perform different tasks.
Possible values: Possible values:
* empty: default build process - empty: default build task
* `code-coverage` (Ubuntu Linux is assumed): debug build with tests and code coverage analysis - `code-coverage`: debug build with tests and code coverage analysis (Ubuntu Linux is assumed)
* `limited-build`: only a single debug build with tests - `limited-build`: only a single debug build with tests
- `CACHE_DIR`: the variable defines a path to folder containing cached files from previous builds, - `CACHE_DIR`: directory containing cached files from previous builds, e.g., a compiled version
e.g., a compiled version of ndn-cxx library. If not set, `/tmp` is used. of ndn-cxx. If not set, `/tmp` is used.
- `WAF_JOBS`: number of parallel build jobs used by waf, defaults to 1. - `WAF_JOBS`: number of parallel build threads used by waf, defaults to 1.
+2
View File
@@ -16,6 +16,7 @@ has() {
set ${saved_xtrace} set ${saved_xtrace}
return ${ret} return ${ret}
} }
export -f has
sudo_preserve_env() { sudo_preserve_env() {
local saved_xtrace local saved_xtrace
@@ -35,3 +36,4 @@ sudo_preserve_env() {
set ${saved_xtrace} set ${saved_xtrace}
sudo env "${vars[@]}" "$@" sudo env "${vars[@]}" "$@"
} }
export -f sudo_preserve_env
+354 -356
View File
File diff suppressed because it is too large. Load diff
+26 -25
View File
@@ -1,10 +1,8 @@
ChronoSync: synchronization library for distributed realtime applications for NDN # ChronoSync: synchronization library for distributed realtime applications for NDN
=================================================================================
![Language](https://img.shields.io/badge/C%2B%2B-14-blue.svg)
[![Build Status](https://travis-ci.org/named-data/ChronoSync.svg?branch=master)](https://travis-ci.org/named-data/ChronoSync) [![Build Status](https://travis-ci.org/named-data/ChronoSync.svg?branch=master)](https://travis-ci.org/named-data/ChronoSync)
![Latest Version](https://img.shields.io/github/tag/named-data/ChronoSync.svg?color=darkkhaki&label=latest%20version)
If you are new to the NDN community of software generally, read the
[Contributor's Guide](https://github.com/named-data/NFD/blob/master/CONTRIBUTING.md).
In supporting many distributed applications, such as group text messaging, file sharing, In supporting many distributed applications, such as group text messaging, file sharing,
and joint editing, a basic requirement is the efficient and robust synchronization of and joint editing, a basic requirement is the efficient and robust synchronization of
@@ -19,28 +17,13 @@ be inferred from the digests and disseminated efficiently to all parties. With
complete and up-to-date knowledge of the dataset changes, applications can decide whether complete and up-to-date knowledge of the dataset changes, applications can decide whether
or when to fetch which pieces of the data. or when to fetch which pieces of the data.
ChronoSync uses [ndn-cxx](https://github.com/named-data/ndn-cxx) library as NDN development ChronoSync uses the [ndn-cxx](https://github.com/named-data/ndn-cxx) library.
library.
ChronoSync is an open source project licensed under GPL 3.0 (see `COPYING.md` for more ## Installation
detail). We highly welcome all contributions to the ChronoSync code base, provided that
they can licensed under GPL 3.0+ or other compatible license.
Feedback
--------
Please submit any bugs or issues to the **ChronoSync** issue tracker:
* https://redmine.named-data.net/projects/chronosync
Installation instructions
-------------------------
### Prerequisites ### Prerequisites
Required: * [ndn-cxx and its dependencies](https://named-data.net/doc/ndn-cxx/current/INSTALL.html)
* [ndn-cxx and its dependencies](https://named-data.net/doc/ndn-cxx/)
### Build ### Build
@@ -53,5 +36,23 @@ To build ChronoSync from the source:
To build on memory constrained platform, please use `./waf -j1` instead of `./waf`. The To build on memory constrained platform, please use `./waf -j1` instead of `./waf`. The
command will disable parallel compilation. command will disable parallel compilation.
If configured with tests: `./waf configure --with-tests`), the above commands will also If configured with tests (`./waf configure --with-tests`), the above commands will also
generate unit tests in `./build/unit-tests` generate unit tests that can be run with `./build/unit-tests`.
## Reporting bugs
Please submit any bug reports or feature requests to the
[ChronoSync issue tracker](https://redmine.named-data.net/projects/chronosync/issues).
## Contributing
We greatly appreciate contributions to the ChronoSync code base, provided that they are
licensed under the GPL 3.0+ or a compatible license (see below).
If you are new to the NDN software community, please read the
[Contributor's Guide](https://github.com/named-data/.github/blob/master/CONTRIBUTING.md)
to get started.
## License
ChronoSync is an open source project licensed under the GPL version 3.
See [`COPYING.md`](COPYING.md) for more information.
+62 -186
View File
@@ -1,30 +1,46 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# NFD - Named Data Networking Forwarding Daemon documentation build configuration file, created by # Configuration file for the Sphinx documentation builder.
# sphinx-quickstart on Sun Apr 6 19:58:22 2014.
# #
# This file is execfile()d with the current directory set to its # This file only contains a selection of the most common options. For a full
# containing dir. # list see the documentation:
# # http://www.sphinx-doc.org/en/master/config
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys # -- Path setup --------------------------------------------------------------
import os
import re
# If extensions (or modules to document with autodoc) are in another directory, # 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 # add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here. # documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.')) #
# import os
import sys
# sys.path.insert(0, os.path.abspath('.'))
# -- General configuration ------------------------------------------------
# -- Project information -----------------------------------------------------
project = u'ChronoSync: A Synchronization Protocol for NDN'
copyright = u'Copyright © 2012-2020 Regents of the University of California.'
author = u'Named Data Networking Project'
# The short X.Y version
#version = ''
# The full version, including alpha/beta/rc tags
#release = ''
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# Else, today_fmt is used as the format for a strftime call.
today_fmt = '%Y-%m-%d'
# -- General configuration ---------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here. # If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0' #
needs_sphinx = '1.1'
# Add any Sphinx extension module names here, as strings. They can be # Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
@@ -38,221 +54,81 @@ def addExtensionIfExists(extension):
__import__(extension) __import__(extension)
extensions.append(extension) extensions.append(extension)
except ImportError: except ImportError:
sys.stderr.write("Extension '%s' in not available. " sys.stderr.write("Extension '%s' not found. "
"Some documentation may not build correctly.\n" % extension) "Some documentation may not build correctly.\n" % extension)
sys.stderr.write("To install, use \n"
" sudo pip install %s\n" % extension.replace('.', '-'))
if sys.version_info[0] >= 3: addExtensionIfExists('sphinxcontrib.doxylink')
addExtensionIfExists('sphinxcontrib.doxylink')
# sphinxcontrib.googleanalytics is currently not working with the latest version of sphinx
# if os.getenv('GOOGLE_ANALYTICS', None):
# addExtensionIfExists('sphinxcontrib.googleanalytics')
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix of source filenames.
source_suffix = '.rst'
# The encoding of source files.
#source_encoding = 'utf-8-sig'
# The master toctree document. # The master toctree document.
master_doc = 'index' master_doc = 'index'
# General information about the project. # Add any paths that contain templates here, relative to this directory.
project = u'ChronoSync: A Synchronization Protocol in NDN' templates_path = ['_templates']
copyright = u'2017, Named Data Networking Project'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and # List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files. # directories to ignore when looking for source files.
exclude_patterns = [] # This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['RELEASE_NOTES.rst']
# The reST default role (used for this markup: `text`) to use for all
# documents.
#default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
#show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False
# -- Options for HTML output ---------------------------------------------- # -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for # The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes. # a list of builtin themes.
# html_theme = 'default' #
html_theme = 'named_data_theme' html_theme = 'named_data_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory. # Add any paths that contain custom themes here, relative to this directory.
html_theme_path = ['./'] html_theme_path = ['.']
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here, # Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files, # relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css". # so a file named "default.css" will overwrite the builtin "default.css".
# html_static_path = ['_static'] html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#html_extra_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
#html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#html_additional_pages = {}
# If false, no module index is generated.
#html_domain_indices = True
# If false, no index is generated.
#html_use_index = True
# If true, the index is split into individual pages for each letter.
#html_split_index = False
# If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
html_file_suffix = ".html"
# Output file base name for HTML help builder.
htmlhelp_basename = 'ChronoSync-docs'
# -- Options for LaTeX output --------------------------------------------- # -- Options for LaTeX output ------------------------------------------------
latex_elements = { latex_elements = {
# The paper size ('letterpaper' or 'a4paper'). # The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper', #
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt'). # The font size ('10pt', '11pt' or '12pt').
#'pointsize': '10pt', #
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble. # Additional stuff for the LaTeX preamble.
#'preamble': '', #
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
} }
# Grouping the document tree into LaTeX files. List of tuples # Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, # (source start file, target name, title,
# author, documentclass [howto, manual, or own class]). # author, documentclass [howto, manual, or own class]).
latex_documents = [ latex_documents = [
('index', 'ChronoSync-docs.tex', u'A Synchronization Protocol in NDN', ('index', 'ChronoSync-docs.tex', u'A Synchronization Protocol for NDN',
u'Named Data Networking Project', 'manual'), author, 'manual'),
] ]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts, # -- Options for manual page output ------------------------------------------
# not chapters.
#latex_use_parts = False
# If true, show page references after internal links.
#latex_show_pagerefs = False
# If true, show URL addresses after external links.
#latex_show_urls = False
# Documents to append as an appendix to all manuals.
#latex_appendices = []
# If false, no module index is generated.
#latex_domain_indices = True
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples # One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section). # (source start file, name, description, authors, manual section).
man_pages = [ man_pages = [
] ]
# If true, show URL addresses after external links. # If true, show URL addresses after external links.
man_show_urls = True #man_show_urls = True
# ---- Custom options -------- # -- Custom options ----------------------------------------------------------
doxylink = { doxylink = {
'ChronoSync' : ('ChronoSync.tag', 'doxygen/'), 'ChronoSync': ('ChronoSync.tag', 'doxygen/'),
} }
if os.getenv('GOOGLE_ANALYTICS', None):
googleanalytics_id = os.environ['GOOGLE_ANALYTICS']
googleanalytics_enabled = True
exclude_patterns = ['RELEASE_NOTES.rst']
Vendored
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python3
# encoding: latin-1 # encoding: latin-1
# Thomas Nagy, 2005-2018 # Thomas Nagy, 2005-2018
# #