Merge lp:~thomas-voss/biometryd/add-sphinx-documentation into lp:biometryd
- add-sphinx-documentation
- Merge into trunk
Proposed by
Thomas Voß
Status: | Merged |
---|---|
Approved by: | Ken VanDine |
Approved revision: | 38 |
Merged at revision: | 38 |
Proposed branch: | lp:~thomas-voss/biometryd/add-sphinx-documentation |
Merge into: | lp:biometryd |
Diff against target: |
682 lines (+597/-3) 10 files modified
doc/CMakeLists.txt (+4/-0) doc/Doxyfile (+3/-3) doc/architecture.md (+65/-0) doc/conf.py (+344/-0) doc/extending_biometryd.md (+55/-0) doc/index.rst (+10/-0) doc/interfaces.rst (+17/-0) doc/intro.md (+21/-0) doc/manual_test_plan.md.moved (+77/-0) doc/requirements.txt (+1/-0) |
To merge this branch: | bzr merge lp:~thomas-voss/biometryd/add-sphinx-documentation |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Simon Fels | Approve | ||
Review via email: mp+297845@code.launchpad.net |
Commit message
Add sphinx documentation.
Description of the change
Add sphinx documentation.
To post a comment you must log in.
- 36. By Thomas Voß
-
Adjust author/copyright holder.
- 37. By Thomas Voß
-
Add images illustrating key system aspects.
- 38. By Thomas Voß
-
[ Thomas Voß ]
* Verify incoming requests. (LP: #1593383)
* Immediately cancel operations instead of enqueuing cancellation.
* Only for landing purposes.
* cmds::Run now tries to make an educated guess for configuring the
default device.
* Also consider /custom/vendor/ biometryd/ plugins when scanning for
plugins.
[ Ken VanDine ]
* Added COPYING file for the LGPL-3 and updated copyright for the
single file licensed under MIT
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'doc/CMakeLists.txt' |
2 | --- doc/CMakeLists.txt 2016-05-02 06:16:01 +0000 |
3 | +++ doc/CMakeLists.txt 2016-06-26 19:02:08 +0000 |
4 | @@ -6,6 +6,10 @@ |
5 | |
6 | if (BIOMETRYD_ENABLE_DOC_GENERATION) |
7 | |
8 | +# Please note that we are creating documentation within the source tree |
9 | +# as we are hosting our documentation on readthedocs.org. For their build machinery to work |
10 | +# properly, we need to generate doxygen XML output within the source tree. |
11 | + |
12 | find_package(Doxygen) |
13 | |
14 | if (DOXYGEN_FOUND) |
15 | |
16 | === renamed file 'doc/Doxyfile.in' => 'doc/Doxyfile' |
17 | --- doc/Doxyfile.in 2016-05-02 06:16:01 +0000 |
18 | +++ doc/Doxyfile 2016-06-26 19:02:08 +0000 |
19 | @@ -32,7 +32,7 @@ |
20 | # This could be handy for archiving the generated documentation or |
21 | # if some version control system is used. |
22 | |
23 | -PROJECT_NUMBER = @BIOMETRYD_VERSION_MAJOR@.@BIOMETRYD_VERSION_MINOR@.@BIOMETRYD_VERSION_PATCH@ |
24 | +PROJECT_NUMBER = 0.0.1 |
25 | |
26 | # Using the PROJECT_BRIEF tag one can provide an optional one line description |
27 | # for a project that appears at the top of each page and should give viewer |
28 | @@ -668,7 +668,7 @@ |
29 | # directories like "/usr/src/myproject". Separate the files or directories |
30 | # with spaces. |
31 | |
32 | -INPUT = @CMAKE_CURRENT_SOURCE_DIR@ @CMAKE_CURRENT_SOURCE_DIR@/../include @CMAKE_BINARY_DIR@/include @CMAKE_SOURCE_DIR@/src/biometry/qml |
33 | +INPUT = ../include ../src/biometry/qml |
34 | |
35 | # This tag can be used to specify the character encoding of the source files |
36 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is |
37 | @@ -1463,7 +1463,7 @@ |
38 | # generate an XML file that captures the structure of |
39 | # the code including all documentation. |
40 | |
41 | -GENERATE_XML = NO |
42 | +GENERATE_XML = YES |
43 | |
44 | # The XML_OUTPUT tag is used to specify where the XML pages will be put. |
45 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be |
46 | |
47 | === added directory 'doc/_static' |
48 | === added directory 'doc/_templates' |
49 | === added file 'doc/architecture.md' |
50 | --- doc/architecture.md 1970-01-01 00:00:00 +0000 |
51 | +++ doc/architecture.md 2016-06-26 19:02:08 +0000 |
52 | @@ -0,0 +1,65 @@ |
53 | +# Architecture & Technology |
54 | + |
55 | +This section presents a high-level overview of the system design. The |
56 | +system is devided into a set of core components and concepts that are |
57 | +exposed via DBus to client applications. |
58 | + |
59 | +Please note that we designed the core components such that other types |
60 | +of (remote) interfaces are possible, e.g., a REST API. At the time of |
61 | +this writing, DBus is the primary interface though. |
62 | + |
63 | +The primary implementation language is C++11, and we offer both a C++11 |
64 | +client library as well as QML bindings. Other languages, runtimes and |
65 | +toolkits can easily consume Biomtryd by either leveraging theq |
66 | +aforementioned client bindings or by directly consuming the DBus API. |
67 | + |
68 | +The following diagram gives an overview of the main interfaces as |
69 | +further described in this secion: |
70 | + |
71 | +![Biometryd overview](images/biometryd.png) |
72 | + |
73 | +## Device |
74 | + |
75 | +A Device abstracts an arbitrary biometric device. It bundles together access to |
76 | +a set of interfaces that enable client applications to: |
77 | + - enroll and query information about known templates |
78 | + - identify a user from a set of candidate users |
79 | + - verify that a given user is actually interacting with a device |
80 | + |
81 | +### Template Store |
82 | + |
83 | +A template store enables applications to manage and query information |
84 | +about enrolled templates. A template is device-specific and its actual |
85 | +data is *not* available to applications. Instead, it is referred to |
86 | +and uniquely identified by a numeric id in the context of one specific |
87 | +device implementation. Applications can: |
88 | + |
89 | +- add (enroll) a template to the template store |
90 | + - remove an individual template from the template store |
91 | + - clear out all templates |
92 | + - list all enrolled templates |
93 | + |
94 | +### Identifier |
95 | + |
96 | +An identifier enables applications to identify one user from a given |
97 | +set of candidate users. |
98 | + |
99 | +### Verifier |
100 | + |
101 | +A verifier enables applications to verify that a specific user is |
102 | +interacting with a device. |
103 | + |
104 | +## Operation |
105 | + |
106 | +The overall system and access to its functionality is structured |
107 | +around the notion of an asynchronous operation. An operation is a |
108 | +state machine as shown in: ![Operation state machine](images/state_machine.png) |
109 | + |
110 | +Client applications can start and cancel an operation, all other state |
111 | +transitions are triggered by the device implementation executing an |
112 | +operation. An operation and its state transitions can be observed by |
113 | +client applications and certain type of devices hand out detailed |
114 | +information about the ongoing operation. |
115 | + |
116 | +Please note that both the service and device implementations might |
117 | +cancel an ongoing operation, too. |
118 | |
119 | === added file 'doc/conf.py' |
120 | --- doc/conf.py 1970-01-01 00:00:00 +0000 |
121 | +++ doc/conf.py 2016-06-26 19:02:08 +0000 |
122 | @@ -0,0 +1,344 @@ |
123 | +# -*- coding: utf-8 -*- |
124 | +# |
125 | +# biometryd documentation build configuration file, created by |
126 | +# sphinx-quickstart on Fri Jun 17 21:36:48 2016. |
127 | +# |
128 | +# This file is execfile()d with the current directory set to its |
129 | +# containing dir. |
130 | +# |
131 | +# Note that not all possible configuration values are present in this |
132 | +# autogenerated file. |
133 | +# |
134 | +# All configuration values have a default; values that are commented out |
135 | +# serve to show the default. |
136 | + |
137 | +# If extensions (or modules to document with autodoc) are in another directory, |
138 | +# add these directories to sys.path here. If the directory is relative to the |
139 | +# documentation root, use os.path.abspath to make it absolute, like shown here. |
140 | +# |
141 | +import os |
142 | +import sys |
143 | +# sys.path.insert(0, os.path.abspath('.')) |
144 | + |
145 | +on_rtd = os.environ.get('READTHEDOCS', None) == 'True' |
146 | +if on_rtd: |
147 | + from subprocess import call |
148 | + call('doxygen') |
149 | + |
150 | +# -- General configuration ------------------------------------------------ |
151 | + |
152 | +# If your documentation needs a minimal Sphinx version, state it here. |
153 | +# |
154 | +# needs_sphinx = '1.0' |
155 | + |
156 | +# Add any Sphinx extension module names here, as strings. They can be |
157 | +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom |
158 | +# ones. |
159 | +extensions = ['breathe'] |
160 | + |
161 | +breathe_projects = { "biometryd": "xml" } |
162 | +breathe_default_project = "biometryd" |
163 | +# Add any paths that contain templates here, relative to this directory. |
164 | +templates_path = ['_templates'] |
165 | + |
166 | +source_parsers = { |
167 | + '.md': 'recommonmark.parser.CommonMarkParser', |
168 | +} |
169 | +source_suffix = ['.rst', '.md'] |
170 | + |
171 | +# The suffix(es) of source filenames. |
172 | +# You can specify multiple suffix as a list of string: |
173 | +# |
174 | +# source_suffix = ['.rst', '.md'] |
175 | +# source_suffix = '.md' |
176 | + |
177 | +# The encoding of source files. |
178 | +# |
179 | +# source_encoding = 'utf-8-sig' |
180 | + |
181 | +# The master toctree document. |
182 | +master_doc = 'index' |
183 | + |
184 | +# General information about the project. |
185 | +project = u'biometryd' |
186 | +copyright = u'2016, Canonical Ltd.' |
187 | +author = u'Thomas Voß' |
188 | + |
189 | +# The version info for the project you're documenting, acts as replacement for |
190 | +# |version| and |release|, also used in various other places throughout the |
191 | +# built documents. |
192 | +# |
193 | +# The short X.Y version. |
194 | +version = u'0.0.1' |
195 | +# The full version, including alpha/beta/rc tags. |
196 | +release = u'0.0.1' |
197 | + |
198 | +# The language for content autogenerated by Sphinx. Refer to documentation |
199 | +# for a list of supported languages. |
200 | +# |
201 | +# This is also used if you do content translation via gettext catalogs. |
202 | +# Usually you set "language" from the command line for these cases. |
203 | +language = None |
204 | + |
205 | +# There are two options for replacing |today|: either, you set today to some |
206 | +# non-false value, then it is used: |
207 | +# |
208 | +# today = '' |
209 | +# |
210 | +# Else, today_fmt is used as the format for a strftime call. |
211 | +# |
212 | +# today_fmt = '%B %d, %Y' |
213 | + |
214 | +# List of patterns, relative to source directory, that match files and |
215 | +# directories to ignore when looking for source files. |
216 | +# This patterns also effect to html_static_path and html_extra_path |
217 | +exclude_patterns = [] |
218 | + |
219 | +# The reST default role (used for this markup: `text`) to use for all |
220 | +# documents. |
221 | +# |
222 | +# default_role = None |
223 | + |
224 | +# If true, '()' will be appended to :func: etc. cross-reference text. |
225 | +# |
226 | +# add_function_parentheses = True |
227 | + |
228 | +# If true, the current module name will be prepended to all description |
229 | +# unit titles (such as .. function::). |
230 | +# |
231 | +# add_module_names = True |
232 | + |
233 | +# If true, sectionauthor and moduleauthor directives will be shown in the |
234 | +# output. They are ignored by default. |
235 | +# |
236 | +# show_authors = False |
237 | + |
238 | +# The name of the Pygments (syntax highlighting) style to use. |
239 | +pygments_style = 'sphinx' |
240 | + |
241 | +# A list of ignored prefixes for module index sorting. |
242 | +# modindex_common_prefix = [] |
243 | + |
244 | +# If true, keep warnings as "system message" paragraphs in the built documents. |
245 | +# keep_warnings = False |
246 | + |
247 | +# If true, `todo` and `todoList` produce output, else they produce nothing. |
248 | +todo_include_todos = False |
249 | + |
250 | + |
251 | +# -- Options for HTML output ---------------------------------------------- |
252 | + |
253 | +# The theme to use for HTML and HTML Help pages. See the documentation for |
254 | +# a list of builtin themes. |
255 | +# |
256 | +html_theme = 'sphinx_rtd_theme' |
257 | + |
258 | +# Theme options are theme-specific and customize the look and feel of a theme |
259 | +# further. For a list of options available for each theme, see the |
260 | +# documentation. |
261 | +# |
262 | +# html_theme_options = {} |
263 | + |
264 | +# Add any paths that contain custom themes here, relative to this directory. |
265 | +# html_theme_path = [] |
266 | + |
267 | +# The name for this set of Sphinx documents. |
268 | +# "<project> v<release> documentation" by default. |
269 | +# |
270 | +# html_title = u'biometryd v0.0.1' |
271 | + |
272 | +# A shorter title for the navigation bar. Default is the same as html_title. |
273 | +# |
274 | +# html_short_title = None |
275 | + |
276 | +# The name of an image file (relative to this directory) to place at the top |
277 | +# of the sidebar. |
278 | +# |
279 | +# html_logo = None |
280 | + |
281 | +# The name of an image file (relative to this directory) to use as a favicon of |
282 | +# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 |
283 | +# pixels large. |
284 | +# |
285 | +# html_favicon = None |
286 | + |
287 | +# Add any paths that contain custom static files (such as style sheets) here, |
288 | +# relative to this directory. They are copied after the builtin static files, |
289 | +# so a file named "default.css" will overwrite the builtin "default.css". |
290 | +html_static_path = ['_static'] |
291 | + |
292 | +# Add any extra paths that contain custom files (such as robots.txt or |
293 | +# .htaccess) here, relative to this directory. These files are copied |
294 | +# directly to the root of the documentation. |
295 | +# |
296 | +# html_extra_path = [] |
297 | + |
298 | +# If not None, a 'Last updated on:' timestamp is inserted at every page |
299 | +# bottom, using the given strftime format. |
300 | +# The empty string is equivalent to '%b %d, %Y'. |
301 | +# |
302 | +# html_last_updated_fmt = None |
303 | + |
304 | +# If true, SmartyPants will be used to convert quotes and dashes to |
305 | +# typographically correct entities. |
306 | +# |
307 | +# html_use_smartypants = True |
308 | + |
309 | +# Custom sidebar templates, maps document names to template names. |
310 | +# |
311 | +# html_sidebars = {} |
312 | + |
313 | +# Additional templates that should be rendered to pages, maps page names to |
314 | +# template names. |
315 | +# |
316 | +# html_additional_pages = {} |
317 | + |
318 | +# If false, no module index is generated. |
319 | +# |
320 | +# html_domain_indices = True |
321 | + |
322 | +# If false, no index is generated. |
323 | +# |
324 | +# html_use_index = True |
325 | + |
326 | +# If true, the index is split into individual pages for each letter. |
327 | +# |
328 | +# html_split_index = False |
329 | + |
330 | +# If true, links to the reST sources are added to the pages. |
331 | +# |
332 | +# html_show_sourcelink = True |
333 | + |
334 | +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. |
335 | +# |
336 | +# html_show_sphinx = True |
337 | + |
338 | +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. |
339 | +# |
340 | +# html_show_copyright = True |
341 | + |
342 | +# If true, an OpenSearch description file will be output, and all pages will |
343 | +# contain a <link> tag referring to it. The value of this option must be the |
344 | +# base URL from which the finished HTML is served. |
345 | +# |
346 | +# html_use_opensearch = '' |
347 | + |
348 | +# This is the file name suffix for HTML files (e.g. ".xhtml"). |
349 | +# html_file_suffix = None |
350 | + |
351 | +# Language to be used for generating the HTML full-text search index. |
352 | +# Sphinx supports the following languages: |
353 | +# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' |
354 | +# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh' |
355 | +# |
356 | +# html_search_language = 'en' |
357 | + |
358 | +# A dictionary with options for the search language support, empty by default. |
359 | +# 'ja' uses this config value. |
360 | +# 'zh' user can custom change `jieba` dictionary path. |
361 | +# |
362 | +# html_search_options = {'type': 'default'} |
363 | + |
364 | +# The name of a javascript file (relative to the configuration directory) that |
365 | +# implements a search results scorer. If empty, the default will be used. |
366 | +# |
367 | +# html_search_scorer = 'scorer.js' |
368 | + |
369 | +# Output file base name for HTML help builder. |
370 | +htmlhelp_basename = 'biometryddoc' |
371 | + |
372 | +# -- Options for LaTeX output --------------------------------------------- |
373 | + |
374 | +latex_elements = { |
375 | + # The paper size ('letterpaper' or 'a4paper'). |
376 | + # |
377 | + # 'papersize': 'letterpaper', |
378 | + |
379 | + # The font size ('10pt', '11pt' or '12pt'). |
380 | + # |
381 | + # 'pointsize': '10pt', |
382 | + |
383 | + # Additional stuff for the LaTeX preamble. |
384 | + # |
385 | + # 'preamble': '', |
386 | + |
387 | + # Latex figure (float) alignment |
388 | + # |
389 | + # 'figure_align': 'htbp', |
390 | +} |
391 | + |
392 | +# Grouping the document tree into LaTeX files. List of tuples |
393 | +# (source start file, target name, title, |
394 | +# author, documentclass [howto, manual, or own class]). |
395 | +latex_documents = [ |
396 | + (master_doc, 'biometryd.tex', u'biometryd Documentation', |
397 | + u'Thomas Voß', 'manual'), |
398 | +] |
399 | + |
400 | +# The name of an image file (relative to this directory) to place at the top of |
401 | +# the title page. |
402 | +# |
403 | +# latex_logo = None |
404 | + |
405 | +# For "manual" documents, if this is true, then toplevel headings are parts, |
406 | +# not chapters. |
407 | +# |
408 | +# latex_use_parts = False |
409 | + |
410 | +# If true, show page references after internal links. |
411 | +# |
412 | +# latex_show_pagerefs = False |
413 | + |
414 | +# If true, show URL addresses after external links. |
415 | +# |
416 | +# latex_show_urls = False |
417 | + |
418 | +# Documents to append as an appendix to all manuals. |
419 | +# |
420 | +# latex_appendices = [] |
421 | + |
422 | +# If false, no module index is generated. |
423 | +# |
424 | +# latex_domain_indices = True |
425 | + |
426 | + |
427 | +# -- Options for manual page output --------------------------------------- |
428 | + |
429 | +# One entry per manual page. List of tuples |
430 | +# (source start file, name, description, authors, manual section). |
431 | +man_pages = [ |
432 | + (master_doc, 'biometryd', u'biometryd Documentation', |
433 | + [author], 1) |
434 | +] |
435 | + |
436 | +# If true, show URL addresses after external links. |
437 | +# |
438 | +# man_show_urls = False |
439 | + |
440 | + |
441 | +# -- Options for Texinfo output ------------------------------------------- |
442 | + |
443 | +# Grouping the document tree into Texinfo files. List of tuples |
444 | +# (source start file, target name, title, author, |
445 | +# dir menu entry, description, category) |
446 | +texinfo_documents = [ |
447 | + (master_doc, 'biometryd', u'biometryd Documentation', |
448 | + author, 'biometryd', 'One line description of project.', |
449 | + 'Miscellaneous'), |
450 | +] |
451 | + |
452 | +# Documents to append as an appendix to all manuals. |
453 | +# |
454 | +# texinfo_appendices = [] |
455 | + |
456 | +# If false, no module index is generated. |
457 | +# |
458 | +# texinfo_domain_indices = True |
459 | + |
460 | +# How to display URL addresses: 'footnote', 'no', or 'inline'. |
461 | +# |
462 | +# texinfo_show_urls = 'footnote' |
463 | + |
464 | +# If true, do not generate a @detailmenu in the "Top" node's menu. |
465 | +# |
466 | +# texinfo_no_detailmenu = False |
467 | |
468 | === added file 'doc/extending_biometryd.md' |
469 | --- doc/extending_biometryd.md 1970-01-01 00:00:00 +0000 |
470 | +++ doc/extending_biometryd.md 2016-06-26 19:02:08 +0000 |
471 | @@ -0,0 +1,55 @@ |
472 | +# Extending Biometryd |
473 | + |
474 | +Biometryd can be extended by implementing the interface |
475 | +`biometry::Device`. We support both in-tree and out-of-tree |
476 | +plugins. In-tree plugin authors should add their device implementation |
477 | +in the folder `${BIOMETRYD_ROOT}/src/biometry/devices` and submit |
478 | +their code contribution as a merge proposal to `https://launchpad.net/biometryd`. |
479 | + |
480 | +Out-of-tree plugin authors should rely on |
481 | + - `BIOMETRYD_DEVICES_PLUGIN_DESCRIBE(name, author, desc, major, minor, patch)` |
482 | + - `name` The name of the plugin |
483 | + - `author` The author of the plugin |
484 | + - `desc` Human-readable description of the plugin |
485 | + - `major` Major revision of the plugin |
486 | + - `minor` Minor revision of the plugin |
487 | + - `patch` Patch level of the plugin |
488 | + - `BIOMETRYD_DEVICES_PLUGIN_CREATE` |
489 | + - `BIOMETRYD_DEVICES_PLUGIN_DESTROY` |
490 | + |
491 | +to describe, instantiate and destroy their plugin, respectively. The |
492 | +following snippet demonstrates a complete plugin definition. The |
493 | +resulting shared object file should be installed to `biometryd config |
494 | +--flag default_plugin_directory`. Once the plugin is installed, it can |
495 | +be referenced by its name as passed to |
496 | +`BIOMETRYD_DEVICES_PLUGIN_DESCRIBE`. |
497 | + |
498 | +```c++ |
499 | +#include <biometry/devices/plugin/interface.h> |
500 | + |
501 | +#include "mock_device.h" |
502 | + |
503 | +/// [Defining the create function] |
504 | +BIOMETRYD_DEVICES_PLUGIN_CREATE |
505 | +{ |
506 | + return new testing::MockDevice(); |
507 | +} |
508 | +/// [Defining the create function] |
509 | + |
510 | +/// [Defining the destroy function] |
511 | +BIOMETRYD_DEVICES_PLUGIN_DESTROY |
512 | +{ |
513 | + delete d; |
514 | +} |
515 | +/// [Defining the destroy function] |
516 | + |
517 | +/// [Describing the plugin] |
518 | +BIOMETRYD_DEVICES_PLUGIN_DESCRIBE( |
519 | + "TestPlugin", |
520 | + "Thomas Voß <thomas.voss@canonical.com>", |
521 | + "Just a plugin for testing purposes", |
522 | + 0, |
523 | + 0, |
524 | + 0) |
525 | +/// [Describing the plugin] |
526 | + ``` |
527 | |
528 | === added directory 'doc/images' |
529 | === added file 'doc/images/biometryd.png' |
530 | Binary files doc/images/biometryd.png 1970-01-01 00:00:00 +0000 and doc/images/biometryd.png 2016-06-26 19:02:08 +0000 differ |
531 | === added file 'doc/images/state_machine.png' |
532 | Binary files doc/images/state_machine.png 1970-01-01 00:00:00 +0000 and doc/images/state_machine.png 2016-06-26 19:02:08 +0000 differ |
533 | === added file 'doc/index.rst' |
534 | --- doc/index.rst 1970-01-01 00:00:00 +0000 |
535 | +++ doc/index.rst 2016-06-26 19:02:08 +0000 |
536 | @@ -0,0 +1,10 @@ |
537 | +Welcome to biometryd's documentation |
538 | +------------------------------------ |
539 | + |
540 | + .. toctree:: |
541 | + |
542 | + intro |
543 | + architecture |
544 | + interfaces |
545 | + extending_biometryd |
546 | + manual_test_plan |
547 | |
548 | === added file 'doc/interfaces.rst' |
549 | --- doc/interfaces.rst 1970-01-01 00:00:00 +0000 |
550 | +++ doc/interfaces.rst 2016-06-26 19:02:08 +0000 |
551 | @@ -0,0 +1,17 @@ |
552 | +Interfaces |
553 | +---------- |
554 | +.. doxygenclass:: biometry::Device |
555 | + :members: |
556 | + |
557 | +.. doxygenclass:: biometry::TemplateStore |
558 | + :members: |
559 | + |
560 | +.. doxygenclass:: biometry::Identifier |
561 | + :members: |
562 | + |
563 | +.. doxygenclass:: biometry::Verifier |
564 | + :members: |
565 | + |
566 | +.. doxygenclass:: biometry::Operation |
567 | + :members: |
568 | + |
569 | |
570 | === added file 'doc/intro.md' |
571 | --- doc/intro.md 1970-01-01 00:00:00 +0000 |
572 | +++ doc/intro.md 2016-06-26 19:02:08 +0000 |
573 | @@ -0,0 +1,21 @@ |
574 | +# Introduction |
575 | + |
576 | +Biometryd multiplexes and mediates access to devices for biometric |
577 | +identification and verification. A fingerprint reader is an example of |
578 | +such a device, but the overall system is designed with arbitrary |
579 | +devices and mechanisms in mind. |
580 | + |
581 | +Security and privacy is one the most important design goal. For that, |
582 | +design, API and implementation do make sure that actual template |
583 | +boundary is never exposed to client applications. More to this, |
584 | +Biometryd and its API are designed such that actual template data is |
585 | +not needed for operation (unless really needed by a device). Instead, |
586 | +the API focuses on controlling and monitoring devices and operations |
587 | +instead of dealing with handling actual template data. |
588 | + |
589 | +## Coordinates |
590 | + |
591 | + - Project: <https://launchpad.net/biometryd> |
592 | + - Code: <https://launchpad.net/biometryd> |
593 | + - Docs: <http://biometryd.rtfd.io/> |
594 | + - Bugs: <https://bugs.launchpad.net/biometryd> |
595 | |
596 | === added file 'doc/manual_test_plan.md.moved' |
597 | --- doc/manual_test_plan.md.moved 1970-01-01 00:00:00 +0000 |
598 | +++ doc/manual_test_plan.md.moved 2016-06-26 19:02:08 +0000 |
599 | @@ -0,0 +1,77 @@ |
600 | +# Manual Test Plan |
601 | + |
602 | +This section lists manual test cases that should be executed prior to landing. The test cases exercise the main functionality and aim to guarantee a baseline level of functionality that should not regress across releases. |
603 | + |
604 | +Please note that individual landings might require specific testing steps in addition to the ones listed here. |
605 | + |
606 | +We assume that testers use a freshly bootstrapped device. |
607 | + |
608 | +## CLI |
609 | + |
610 | +### Testing Against a Running Service Instance |
611 | + |
612 | +Execute the following command line and follow the on-screen instructions: |
613 | + |
614 | +```bash |
615 | +> biometryd test |
616 | +``` |
617 | +You should receive output similar to: |
618 | + |
619 | +```bash |
620 | +> biometryd test |
621 | +We are about to execute a test run for a biometric device. |
622 | +Please note that we are executing the test in a production |
623 | +environment and you should consider the test to be harmful to the |
624 | +device configuration: |
625 | + User: User[32011] |
626 | + Config: Default device |
627 | +Would you really like to proceed (y/n)?y |
628 | + |
629 | +Clearing template store: [=================] 100.00 % |
630 | +Enrolling new template: [=================] 100.00 % |
631 | +Identifying user: [=================] 100.00 % |
632 | + |
633 | + min: 267488.00 [µs] |
634 | + mean: 497875.12 [µs] |
635 | + std.dev.: 198079.29 [µs] |
636 | + max: 1172946.00 [µs] |
637 | +``` |
638 | + |
639 | +## Fingerprint Reader With Guidance |
640 | + |
641 | +The following section provides testing instructions for fingerprint |
642 | +readers featuring guided enrollment processes. |
643 | + |
644 | +### Enrolling a New Template |
645 | + |
646 | + - Boot the phone |
647 | + - Unlock the greeter/complete the wizard |
648 | + - Start "System Settings" |
649 | + - Switch to the "Security & Privacy" page |
650 | + - Select "Fingerprint ID" |
651 | + - Select "Add Fingerprint" |
652 | + + Enroll a new template according to the onscreen instructions. |
653 | + + Make sure that feedback given during enrollment is meaningful and reasonable. |
654 | + + After completion, check if the list of enrolled fingerprints has grown by 1. |
655 | + - Select the recently enrolled fingerprint and rename it: |
656 | + + Ensure that the name of the fingerprint is persistent across restarts of "System Settings" |
657 | + |
658 | +### Identifying With A Fingerprint |
659 | + |
660 | + - In "System Settings", choose Fingerprint ID as lock security. |
661 | + - Lock the screen. |
662 | + - Wake up the phone by pressing the power button. |
663 | + - Try to identify with your previously enrolled fingerprint. |
664 | + - Lock the screen again. |
665 | + - Wake up with the home button. |
666 | + - Try to identify with your previously enrolled fingerprint. |
667 | + - Lock the screen again. |
668 | + - Wake up the screen and try to identify with a finger that hasn't been enrolled previously. The attempts should fail and the device should fall back to your passcode. |
669 | + |
670 | +### Removing a Previously Enrolled Template |
671 | + |
672 | + - Start "System Settings" |
673 | + - Switch to "Security & Privacy" page |
674 | + - Remove at least one enrolled fingerprint |
675 | + + Make sure that the fingerprint is removed from the list |
676 | + - Lock the screen and try to identify with the fingerprint. The attemtps should fail. |
677 | |
678 | === added file 'doc/requirements.txt' |
679 | --- doc/requirements.txt 1970-01-01 00:00:00 +0000 |
680 | +++ doc/requirements.txt 2016-06-26 19:02:08 +0000 |
681 | @@ -0,0 +1,1 @@ |
682 | +breathe |
LGTM