From 7c3c112effe59366050b39026ccb611c65e510f9 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Thu, 7 May 2015 16:10:03 +0200 Subject: [PATCH] first commit --- doc/Makefile | 192 +++++++++++++++++ doc/source/conf.py | 291 ++++++++++++++++++++++++++ doc/source/formats.rst | 88 ++++++++ doc/source/guidelines.rst | 111 ++++++++++ doc/source/images/version_control.png | Bin 0 -> 49581 bytes doc/source/index.rst | 23 ++ 6 files changed, 705 insertions(+) create mode 100644 doc/Makefile create mode 100644 doc/source/conf.py create mode 100644 doc/source/formats.rst create mode 100644 doc/source/guidelines.rst create mode 100644 doc/source/images/version_control.png create mode 100644 doc/source/index.rst diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000..7529ebb --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,192 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = build + +# User-friendly check for sphinx-build +ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) +$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) +endif + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " applehelp to make an Apple Help Book" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " xml to make Docutils-native XML files" + @echo " pseudoxml to make pseudoxml-XML files for display purposes" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + @echo " coverage to run coverage check of the documentation (if enabled)" + +clean: + rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/OBITools-3.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/OBITools-3.qhc" + +applehelp: + $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp + @echo + @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." + @echo "N.B. You won't be able to view it unless you put it in" \ + "~/Library/Documentation/Help or install it in your application" \ + "bundle." + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/OBITools-3" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/OBITools-3" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +latexpdfja: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through platex and dvipdfmx..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +coverage: + $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage + @echo "Testing of coverage in the sources finished, look at the " \ + "results in $(BUILDDIR)/coverage/python.txt." + +xml: + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml + @echo + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." + +pseudoxml: + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml + @echo + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/doc/source/conf.py b/doc/source/conf.py new file mode 100644 index 0000000..81e694e --- /dev/null +++ b/doc/source/conf.py @@ -0,0 +1,291 @@ +# -*- coding: utf-8 -*- +# +# OBITools3 documentation build configuration file, created by +# sphinx-quickstart on Mon May 4 14:36:57 2015. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# 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 +import os +import shlex + +# 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 +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.todo', + 'sphinx.ext.coverage', + 'sphinx.ext.pngmath', + 'sphinx.ext.ifconfig', + 'sphinx.ext.viewcode', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'OBITools3' +copyright = u'2015, Céline Mercier, Eric Coissac, Frédéric Boyer' +author = u'Céline Mercier, Eric Coissac, Frédéric Boyer' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.0' +# The full version, including alpha/beta/rc tags. +release = '0.0.0' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# 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 + +# 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 +# directories to ignore when looking for source files. +exclude_patterns = [] + +# 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 + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'bizstyle' + +# 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. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v 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, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +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 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 = None + +# Language to be used for generating the HTML full-text search index. +# Sphinx supports the following languages: +# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' +# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' +#html_search_language = 'en' + +# A dictionary with options for the search language support, empty by default. +# Now only 'ja' uses this config value +#html_search_options = {'type': 'default'} + +# The name of a javascript file (relative to the configuration directory) that +# implements a search results scorer. If empty, the default will be used. +#html_search_scorer = 'scorer.js' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'OBITools3doc' + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { +# The paper size ('letterpaper' or 'a4paper'). +#'papersize': 'letterpaper', + +# The font size ('10pt', '11pt' or '12pt'). +#'pointsize': '10pt', + +# Additional stuff for the LaTeX preamble. +#'preamble': '', + +# Latex figure (float) alignment +#'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'OBITools3.tex', u'OBITools3 Documentation', + u'Céline Mercier, Eric Coissac, Frédéric Boyer', '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, +# 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 +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'obitools3', u'OBITools3 Documentation', + [author], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'OBITools3', u'OBITools3 Documentation', + author, 'OBITools3', 'One line description of project.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +#texinfo_no_detailmenu = False diff --git a/doc/source/formats.rst b/doc/source/formats.rst new file mode 100644 index 0000000..37c459b --- /dev/null +++ b/doc/source/formats.rst @@ -0,0 +1,88 @@ +####### +Formats +####### + + +********************************************* +The Obitools3 Data Management System (ObiDMS) +********************************************* + +An ObiDMS directory consists of : + * ObiDMS column files + * an ObiDMS history file + + +ObiDMS column files +=================== + +Each ObiDMS column file contains : + * a header of a size equal to a multiple of PAGESIZE (PAGESIZE being equal to 4096 bytes + on most systems) containing metadata + * one column of data of the same type + +ObiDMS column files are read-only. + + +File name +--------- + +Each file is named with the attribute associated to the data it contains, and the number of +its version, separated by an underscore. + +Example : ``count_0003`` + +.. todo:: + Filename extension? + + +Header +------ + +The header of an ObiDMS column contains : + + * Endian byte order + * PAGESIZE value / Size of the header + + * Number of lines (total or without the header?) + * Data type (int, str...) + * Date of creation + * Version of the file + * Eventual comments + + +Data +---- + +A column of data of the same type. + + +Versioning +---------- + +Since ObiDMS column files are read-only, any modification leads to the creation of a new version +of the column file. + +The first version of a column file is numbered 0001, and each new version increments that +number by 1. + + +Mandatory columns +----------------- + +Some columns must exist in an ObiDMS directory : + * sequence identifiers column + + +ObiDMS history file +=================== + +An ObiDMS history file consists of data that can be represented in the form of a directed acyclic +graph presenting the history of all the operations ever done in the ObiDMS directory. + + +ObiDMS views +============ + +An ObiDMS view corresponds to a list of ObiDMS columns and lines. A view includes one version +of each mandatory column. Only one version of each column is included. All the columns of +one view contain the same number of lines in the same order. diff --git a/doc/source/guidelines.rst b/doc/source/guidelines.rst new file mode 100644 index 0000000..0c61e04 --- /dev/null +++ b/doc/source/guidelines.rst @@ -0,0 +1,111 @@ +###################### +Programming guidelines +###################### + + +*************** +Version control +*************** + +Version control is managed with `Git `_. +Issue tracking and repository management are done using `GitLab `_ +at http://git.metabarcoding.org/. + + +Branching strategy +================== + + +Master branch +------------- + +The master branch should only contain functional scripts. + + +Topic branches +-------------- + +Topic branches should correspond to development branches revolving around a topic corresponding +to the branch's name. + + +Release branches +---------------- + +Release branches should start with duplicates of tags and be used to patch them. + + +Tags +---- + +Tags should never be committed to. + + +Rebasing +-------- + +Rebasing should be avoided on the distant server. + + +Merging +------- + +Merging should never overwrite on a release branch or on a tag. + + +Branching strategy diagram +-------------------------- + +.. image:: ./images/version_control.png + + +Issue tracking +============== + +Issue tracking is done using `GitLab `_ at http://git.metabarcoding.org/. +Creating a branch should always lead to the creation of a label that refers to it in GitLab. +Tickets should always be labelled with the branches for which they are relevant. + + +************** +OBITools3 wiki +************** + +The OBITools3 wiki is managed with GitLab. + + +********************* +Programming languages +********************* + +C99 : + * All the low-level input/output functions (e.g. all the `ObiDMS `_ functions) + * Computing-intensive code (e.g. alignment or pattern matching) + +`Cython `_ : + * Object layer + * OBITools3 library + +`Python 3 `_ : + * Top layer code (scripts) + +For the documentation, `Sphinx `_ should be used for both the original +documentation and for the generation of documentation from the python code. `Doxygen `_ +should be used for the generation of documentation from the C code, which should be then integrated +in the Sphinx documentation using `Breathe `_. + + +****************** +Naming conventions +****************** + +.. todo:: + Look for usual naming conventions + + +***************** +Programming rules +***************** + +* The *int* type should never be used + diff --git a/doc/source/images/version_control.png b/doc/source/images/version_control.png new file mode 100644 index 0000000000000000000000000000000000000000..77029a3fad47202ce5673e19c1f7a996b037be64 GIT binary patch literal 49581 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 L!L@=bc2E8X7$MgD literal 0 HcmV?d00001 diff --git a/doc/source/index.rst b/doc/source/index.rst new file mode 100644 index 0000000..7dd81b8 --- /dev/null +++ b/doc/source/index.rst @@ -0,0 +1,23 @@ +.. OBITools3 documentation master file, created by + sphinx-quickstart on Mon May 4 14:36:57 2015. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +OBITools3 documentation +========================== + +.. toctree:: + :maxdepth: 2 + + Programming guidelines + Formats + + + +Indices and tables +------------------ + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` +