summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Maupetit <jmaupetit@users.noreply.github.com>2016-02-05 19:10:38 +0100
committerJulien Maupetit <jmaupetit@users.noreply.github.com>2016-02-05 19:10:38 +0100
commita933fe7db932010b865c2f7ef517f1d1b0d18f43 (patch)
tree5401d3771c6b970e975529f667ed424cd44f3d83
parent846a0f341ea8a4e0883f08d4c85e81f4a0d8ba04 (diff)
parentd8033ce78034844755db0f9c8727d2b7e3be554b (diff)
Merge pull request #77 from TailorDev/mkdocs-docs
Add mkdocs documentation
-rw-r--r--.gitignore1
-rw-r--r--CONTRIBUTING.md12
-rw-r--r--CONTRIBUTING.rst113
-rw-r--r--MANIFEST.in2
-rw-r--r--Makefile21
-rw-r--r--README.rst459
-rw-r--r--docs/about/license.md23
-rw-r--r--docs/about/release-notes.md36
-rw-r--r--docs/contributing/coc.md26
-rw-r--r--docs/contributing/hack.md39
-rw-r--r--docs/contributing/how-to.md55
-rw-r--r--docs/contributing/pr-guidelines.md28
-rw-r--r--docs/css/watson.css46
-rw-r--r--docs/faq.md5
-rw-r--r--docs/img/screenshot.png (renamed from screenshot.png)bin101425 -> 101425 bytes
-rw-r--r--docs/img/working-cat.gifbin0 -> 7712339 bytes
-rw-r--r--docs/index.md97
-rw-r--r--docs/user-guide/commands.md518
-rw-r--r--docs/user-guide/configuration.md149
-rw-r--r--mkdocs.yml26
-rw-r--r--requirements-dev.txt (renamed from requirements-tests.txt)4
-rw-r--r--scripts/gen-cli-docs.py117
-rw-r--r--setup.py2
-rw-r--r--watson/cli.py86
24 files changed, 1277 insertions, 588 deletions
diff --git a/.gitignore b/.gitignore
index 7fe10bd..5e413b1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@ bower_components/
node_modules/
.tox
dist/
+site/
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..622be6e
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,12 @@
+# Contributing
+
+If you are reading this, we thank you in advance for willing to contribute to the Watson project! You are awesome.
+
+Before starting to contribute, please read the following:
+
+* [How to contribute](https://tailordev.github.io/Watson/contributing/how-to/)
+* [How to start hacking](https://tailordev.github.io/Watson/contributing/hack/)
+* [Pull request guidelines](https://tailordev.github.io/Watson/contributing/pr-guidelines/)
+* [Contributor Code of Conduct](https://tailordev.github.io/Watson/contributing/coc/)
+
+Thank you!
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
deleted file mode 100644
index f03de4e..0000000
--- a/CONTRIBUTING.rst
+++ /dev/null
@@ -1,113 +0,0 @@
-Contributing
-############
-
-If you are reading this, we thank you in advance for willing to contribute to the Watson project! You are awesome.
-
-.. note::
-
- This document is heavily inspired by `Kinto's project documentation <https://github.com/Kinto/kinto>`_. Thank Mozilla people for providing such high quality content to the community.
-
-
-How to contribute
-=================
-
-Report bugs
------------
-
-Report bugs at https://github.com/TailorDev/Watson/issues/new
-
-If you are reporting a bug, please include:
-
-* Any details about your local setup that might be helpful in troubleshooting.
-* Detailed steps to reproduce the bug.
-
-Fix bugs
---------
-
-Check out the `open bugs <https://github.com/TailorDev/Watson/issues>`_ - anything tagged with the **[easy-pick]** label could be a good choice for newcomers.
-
-Implement features
-------------------
-
-Look through the GitHub issues for features. Anything tagged with **[enhancement]** is open to whoever wants to implement it.
-
-Write documentation
--------------------
-
-*Watson* could always use more documentation, whether as part of the official docs, in docstrings, or even on the Web in blog posts, articles, and such.
-
-Submit feedback
----------------
-
-Any issue with the **[question]** label is open for feedback, so feel free to
-share your thoughts with us!
-
-The best way to send feedback is to `fill a new issue <https://github.com/TailorDev/Watson/issues/new>`_ on GitHub.
-
-If you are proposing a feature:
-
-* Explain how you envision it working. Try to be as detailed as you can.
-* Try to keep the scope as narrow as possible. This will help make it easier
- to implement.
-* Feel free to include any code you might already have, even if it's just a
- rough idea. This is a volunteer-driven project, and contributions
- are welcome :)
-
-Hack
-====
-
-Ready to contribute? Here's how to set up *Watson* for local development.
-
-Get started!
-------------
-
-1. Fork the *Watson* repo on GitHub.
-
-2. Clone your fork locally::
-
- $ git clone git@github.com:your_name_here/Watson.git
-
-3. Install *Watson* locally::
-
- $ mkvirtualenv watson
- $ cd Watson
- $ pip install -r requirements-tests.txt
- $ python setup.py develop
-
-4. Create a branch for local development::
-
- $ git checkout -b name-of-your-bugfix-or-feature
-
- Now you can make your changes locally.
-
-5. When you're done making changes, check that your changes pass the tests::
-
- $ py.test
-
-6. Commit your changes and push your branch to GitHub::
-
- $ git add .
- $ git commit -m "Your detailed description of your changes."
- $ git push origin name-of-your-bugfix-or-feature
-
-7. Submit a pull request through the GitHub website.
-
-
-Pull request guidelines
------------------------
-
-.. note::
-
- Open a pull-request even if your contribution is not ready yet! It can
- be discussed and improved collaboratively!
-
-Before we merge a pull request, we check that it meets these guidelines:
-
-1. Please, write `commit messages that make sense <http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html>`_, and `rebase your branch <http://git-scm.com/book/en/Git-Branching-Rebasing>`_ before submitting your pull request.
-2. One may ask you to `squash your commits <http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html>`_ too. This is used to "clean" your pull request before merging it (we don't want commits such as `fix tests`, `fix 2`, `fix 3`, etc.).
-3. While creating your pull request on GitHub, you **must** write a description which gives the context and/or explains why you are creating it.
-4. The pull request **should** include tests.
-5. If the pull request adds functionality, the docs **should** be updated.
-6. *TravisCI* integration tests should be **green** :) It will make sure the tests pass with every supported version of Python.
-
-Thank you!
diff --git a/MANIFEST.in b/MANIFEST.in
index 34695d5..8c1c80d 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -2,7 +2,7 @@ include README.md
include LICENCE
include tox.ini
include requirements.txt
-include requirements-tests.txt
+include requirements-dev.txt
include watson.completion
recursive-include tests *
recursive-include scripts *
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..290f97d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,21 @@
+# Watson
+
+all: install
+
+install:
+ python setup.py install
+
+install-dev:
+ pip install -r requirements-dev.txt
+ python setup.py develop
+
+clean:
+ find . -name '*.pyc' -delete
+ find . -name '__pycache__' -type d | xargs rm -fr
+
+distclean: clean
+ rm -fr *.egg *.egg-info/
+
+docs: install-dev
+ python scripts/gen-cli-docs.py
+ mkdocs build
diff --git a/README.rst b/README.rst
index c9435be..80b2c73 100644
--- a/README.rst
+++ b/README.rst
@@ -3,469 +3,66 @@ Watson
|Build Status| |PyPI Downloads Per Month| |PyPI Latest Version| |Requires.io|
-Watson is here to help you monitoring your time. You want to know how
+Watson is here to help you manage your time. You want to know how
much time you are spending on your projects? You want to generate a nice
report for your client? Watson is here for you.
-Tell Watson when you start working on a task with the ``start`` command.
-Then, when you are done with this task, stop the timer with the ``stop``
-command. This will create what we call a **frame**. That's pretty much
-everything you need to know to start using Watson.
+Wanna know what it looks like? Check this below.
-Each frame consists of the name of a project and some tags. Your tags
-can be shared across projects and can be used to generate detailed
-reports.
+![screenshot](docs/img/screenshot.png)
-Watson stores everything on your computer, but you can go wild and use
-`artich.io <https://artich.io/?pk_campaign=GitHubWatson>`__ to store
-your sessions remotely and share it with your colleagues.
+Nice isn't it?
-.. image:: screenshot.png
+Quick start
+-----------
-Install
--------
-
-Watson is available on any platform supported by Python (Windows, Mac,
-Linux, \*BSD…). The easiest way to install it is to use
-`pip <https://pip.pypa.io/en/stable/installing/>`__:
-
-.. code:: bash
-
- $ pip install td-watson
-
-You might need to run this command as root in order to install Watson
-globally.
-
-Alternatively, you can choose to install Watson for your user only by
-running:
+Installation
+~~~~~~~~~~~~
.. code:: bash
- $ pip install --user td-watson
+ $ pip install td-watson
-If after this the ``watson`` command is not available, you need to add
-``~/.local/bin/`` to your PATH. If your terminal is Bash, you can do
-this by running:
+If you need more details about installing watson, please refer to the `documentation <https://tailordev.github.io/Watson>`_.
-.. code:: bash
-
- $ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc # Add ~/.local/bin/ to your .bashrc PATH
+Usage
+~~~~~
-and restarting your terminal session or sourcing the ``.bashrc``:
+Start tracking your activity via:
.. code:: bash
- $ source ~/.bashrc # Reload your .bashrc
+ $ watson start world-domination +cats
-Development version
-~~~~~~~~~~~~~~~~~~~
+With this command, you have started a new **frame** for the *world-domination* project with the *cat* tag. That's it.
-The latest development version can be installed using the following
-commands:
+Now stop tracking you world domination plan via:
.. code:: bash
- $ git clone https://github.com/TailorDev/Watson.git
- $ cd Watson/
- $ python setup.py install
-
-Command line completion
-~~~~~~~~~~~~~~~~~~~~~~~
-
-If you use a Bash-compatible shell, you can install the
-``watson.completion`` file from the source distribution as
-``/etc/bash.completion.d/watson`` - or wherever your distribution keeps
-the Bash completion configuration files. After you restart your shell,
-you can then just type ``watson`` on your command line and then hit TAB
-to see all available commands. Depending on your input, it completes
-watson commands, command options, projects, tags and frame IDs.
-
-Commands
---------
-
-Here is the listing of all the commands available with Watson. You can
-also find this help with ``watson help``.
-
-start
-~~~~~
-
-Start monitoring the time for the given project. You can add tags
-indicating more specifically what you are working on with '+tag'.
-
-If there is already a running project and the configuration option
-``options.stop_on_start`` is set to a true value (``'1'``, ``'on'``, ``'true'``
-or ``'yes'``), it is stopped before the new project is started.
-
-::
-
- Example :
- $ watson start apollo11 +module +brakes
- Starting apollo11 [module, brakes] at 16:34
-
-stop
-~~~~
-
-Stop monitoring time for the current project
-
-::
-
- $ watson stop
- Stopping project apollo11, started a minute ago. (id: e7ccd52)
-
-restart
-~~~~~~~
-
-Restart monitoring time for a previously stopped project.
-
-By default, the project from the last frame, which was recorded, is restarted,
-using the same tags as recorded in that frame. You can specify the frame to use
-with an integer frame index argument or a frame ID. For example, to restart the
-second-to-last frame, pass ``-2`` as the frame index.
-
-Normally, if a project is currently started, watson will print an error and do
-nothing. If you set the configuration option ``options.stop_on_restart`` to a
-true value (``'1'``, ``'on'``, ``'true'`` or ``'yes'``), the current project,
-if any, will be stopped before the new farme is started. You can pass the
-option ``-s`` or ``--stop`` resp. ``-S`` or ``--no-stop`` to override the
-default or configured behaviour.
-
-If no previous frame exists or and invalid frame index or ID was given, an
-error is printed and no further action taken.
-
-Example::
-
- $ watson start apollo11 +module +brakes
- Starting project apollo11 [module, brakes] at 16:34
- $ watson stop
- Stopping project apollo11, started a minute ago. (id: e7ccd52)
- $ watson restart
- Starting project apollo11 [module, brakes] at 16:36
-
-cancel
-~~~~~~
-
-Cancel the last call to the start command. The time will not be
-recorded.
-
-status
-~~~~~~
-
-Display when the current project was started and the time spent since.
-
-You can configure how the date and time of when the project was started
-are displayed by setting ``options.date_format`` and
-``options.time_format`` in the configuration. The syntax of these
-formatting strings and the supported placeholders are the same as for
-the ``strftime`` method of Python's
-`datetime.datetime <https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior>`__
-class.
-
-::
-
- $ watson status
- Project apollo11 [brakes] started seconds ago (2014-05-19 14:32:41+0100)
- $ watson config options.date_format %d.%m.%Y
- $ watson config options.time_format "at %I:%M %p"
- $ watson status
- Project apollo11 [brakes] started a minute ago (19.05.2014 at 02:32 PM)
-
-report
-~~~~~~
-
-Display a report of the time spent on each project.
-
-If a project is given, the time spent on this project is printed. Else,
-print the total for each root project.
-
-By default, the time spent the last 7 days is printed. This timespan can
-be controlled with the ``--from`` and ``--to`` arguments. The dates must
-have the format ``YEAR-MONTH-DAY``, like: ``2014-05-19``.
-
-You can limit the report to a project or a tag using the ``--project``
-and ``--tag`` options. They can be specified several times each to add
-multiple projects or tags to the report.
-
-::
-
- $ watson report
- Mon 05 May 2014 -> Mon 12 May 2014
-
- apollo11 - 13h 22m 20s
- [brakes 7h 53m 18s]
- [module 7h 41m 41s]
- [reactor 8h 35m 50s]
- [steering 10h 33m 37s]
- [wheels 10h 11m 35s]
-
- hubble - 8h 54m 46s
- [camera 8h 38m 17s]
- [lens 5h 56m 22s]
- [transmission 6h 27m 07s]
-
- voyager1 - 11h 45m 13s
- [antenna 5h 53m 57s]
- [generators 9h 04m 58s]
- [probe 10h 14m 29s]
- [sensors 10h 30m 26s]
-
- voyager2 - 16h 16m 09s
- [antenna 7h 05m 50s]
- [generators 12h 20m 29s]
- [probe 12h 20m 29s]
- [sensors 11h 23m 17s]
-
- Total: 43h 42m 20s
-
-
- $ watson report --from 2014-04-01 --to 2014-04-30 --project apollo11
- Tue 01 April 2014 -> Wed 30 April 2014
-
- apollo11 - 13h 22m 20s
- [brakes 7h 53m 18s]
- [module 7h 41m 41s]
- [reactor 8h 35m 50s]
- [steering 10h 33m 37s]
- [wheels 10h 11m 35s]
-
-log
-~~~
-
-Display each recorded frames during the given timespan.
-
-By default, the frames from the last 7 days are printed. This timespan
-can be controlled with the ``--from`` and ``--to`` arguments. The dates
-must have the format ``YEAR-MONTH-DAY``, like: ``2014-05-19``.
+ $ watson stop
+ Project world-domination [cat] started 8 minutes ago (2016.01.27 13:00:28+0100)
-You can limit the log to a project or a tag using the ``--project`` and
-``--tag`` options. They can be specified several times each to add
-multiple projects or tags to the log.
+You can log your latest working sessions (aka **frames**) thanks to the ``log`` command:
-::
-
- $ watson log
- Thursday 08 May 2015 (56m 33s)
- f35bb24 09:26 to 10:22 56m 33s apollo11 [reactor, brakes, steering, wheels, module]
-
- Wednesday 07 May 2015 (27m 29s)
- 9a1325d 09:48 to 10:15 27m 29s voyager2 [sensors, generators, probe]
-
- Tuesday 06 May 2015 (1h 47m 22s)
- 530768b 12:40 to 14:16 1h 35m 45s apollo11 [wheels]
- 84164f0 14:23 to 14:35 11m 37s apollo11 [brakes, steering]
-
- Monday 05 May 2015 (8h 18m 26s)
- 26a2817 09:05 to 10:03 57m 12s voyager2 [probe, generators]
- 5590aca 10:51 to 14:47 3h 55m 40s apollo11
- c32c74e 15:12 to 18:38 3h 25m 34s voyager2 [probe, generators, sensors, antenna]
-
-
- $ watson log --from 2014-04-16 --to 2014-04-17
- Thursday 17 April 2014 (4h 19m 13s)
- a96fcde 09:15 to 09:43 28m 11s hubble [lens, camera, transmission]
- 5e91316 10:19 to 12:59 2h 39m 15s hubble [camera, transmission]
- 761dd51 14:42 to 15:54 1h 11m 47s voyager1 [antenna]
-
- Wednesday 16 April 2014 (5h 19m 18s)
- 02cb269 09:53 to 12:43 2h 50m 07s apollo11 [wheels]
- 1070ddb 13:48 to 16:17 2h 29m 11s voyager1 [antenna, sensors]
-
-frames
-~~~~~~
-
-Display the list of all frame IDs.
-
-This is mainly useful for implementing Bash command line completion.
-
-::
-
- $ watson frames
- f1c4815
- 9d1a989
- 8801ec3
- [...]
-
-projects
-~~~~~~~~
-
-Display the list of all existing projects.
-
-::
-
- $ watson projects
- apollo11
- hubble
- voyager1
- voyager2
-
-edit
-~~~~
-
-Edit a frame.
-
-You can specify the frame to edit with an integer frame index or a frame id.
-For example, to edit the second-to-last frame, pass ``-2`` as the frame index
-(put `` -- `` in front of negative indexes to prevent them from being
-interpreted as an option). You can get the id of a frame with the
-``watson log`` command.
-
-If no id or index is given, the frame defaults to the current frame or the last
-recorded frame, if no project is currently running.
-
-The ``$EDITOR`` environment variable is used to detect your editor.
-
-remove
-~~~~~~
-
-Remove a frame.
-
-config
-~~~~~~
-
-Get and set configuration options.
-
-If value is not provided, the content of the key is displayed. Else, the
-given value is set.
-
-You can edit the configuration file with an editor with the '--edit'
-option.
-
-::
-
- $ watson config backend.token 7e329263e329
- $ watson config backend.token
- 7e329263e329
-
-sync
-~~~~
-
-Get frames from the server and push the new ones.
-
-**Warning:** this feature is still experimental and not yet publicly
-available.
-
- In a near future, you will be able to sync Watson with your
- `artich.io <https://artich.io/?pk_campaign=GitHubWatson>`__ account
- or any compatible third-party back-end.
-
-The URL of the server and the User Token must be defined in your
-`configuration file <#configuration>`__ or with the
-`config <#config>`__ command.
-
-::
-
- $ watson config backend.url http://localhost:4242
- $ watson config backend.token 7e329263e329
- $ watson sync
- Received 42 frames from the server
- Pushed 23 frames to the server
-
-merge
-~~~~~
-
-Perform a merge of the existing frames with a conflicting frames file.
-
-When storing the frames on a file hosting service, there is the
-possibility that the frame file goes out-of-sync due to one or
-more of the connected clients going offline. This can cause the
-frames to diverge.
-
-If the `--force` command is specified, the merge operation
-will automatically be performed.
-
-The only argument is a path to the the conflicting `frames` file.
-
-Merge will output statistics about the merge operation.
-
-Example:
-::
-
- $ watson merge frames-with-conflicts
- 120 frames will be left unchanged
- 12 frames will be merged
- 3 frame conflicts need to be resolved
-
-To perform a merge operation, the user will be prompted to
-select the frame they would like to keep.
-
-Example:
-::
-
- $ watson merge frames-with-conflicts --force
- 120 frames will be left unchanged
- 12 frames will be merged
- 3 frame conflicts need to be resolved
- Will resolve conflicts:
- frame 8804872:
- < {
- < "project": "tailordev",
- < "start": "2015-07-28 09:33:33",
- < "stop": "2015-07-28 10:39:36",
- < "tags": [
- < "intern",
- < "daily-meeting"
- < ]
- < }
- ---
- > {
- > "project": "tailordev",
- > "start": "2015-07-28 09:33:33",
- > "stop": "**2015-07-28 11:39:36**",
- > "tags": [
- > "intern",
- > "daily-meeting"
- > ]
- > }
- Select the frame you want to keep: left or right? (L/r)
-
-Configuration
--------------
+.. code:: bash
-The configuration and the data are stored inside your user's application
-folder.
+ $ watson log
+ Tuesday 26 January 2016 (8m 32s)
+ ffb2a4c 13:00 to 13:08 08m 32s world-domination [cat]
-On Mac, this is ``~/Library/Application Support/watson/config``, on
-Windows this is ``C:\Users\<user>\AppData\Local\watson\config`` and on
-Linux ``~/.config/watson/config``.
+Please note that, as `the report command <https://tailordev.github.io/Watson/user-guide/commands/#report>`_, the ``log`` command comes with projects, tags and dates filtering.
-If you want to edit your configuration, the best is to use the
-`config <#config>`__ command.
+To list all available commands, either `read the documentation <https://tailordev.github.io/Watson>`_ or use:
-Deleting all your frames
-~~~~~~~~~~~~~~~~~~~~~~~~
+.. code:: bash
-If you want to remove all your frames, you can delete the ``frames``
-file in your configuration folder (see above to find its location).
+ $ watson help
Contributor Code of Conduct
---------------------------
-As contributors and maintainers of this project, we pledge to respect all
-people who contribute through reporting issues, posting feature requests,
-updating documentation, submitting pull requests or patches, and other
-activities.
-
-We are committed to making participation in this project a harassment-free
-experience for everyone, regardless of level of experience, gender, gender
-identity and expression, sexual orientation, disability, personal appearance,
-body size, race, age, or religion.
-
-Examples of unacceptable behavior by participants include the use of sexual
-language or imagery, derogatory comments or personal attacks, trolling, public
-or private harassment, insults, or other unprofessional conduct.
-
-Project maintainers have the right and responsibility to remove, edit, or
-reject comments, commits, code, wiki edits, issues, and other contributions
-that are not aligned to this Code of Conduct. Project maintainers who do not
-follow the Code of Conduct may be removed from the project team.
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported by opening an issue or contacting one or more of the project
-maintainers.
-
-This Code of Conduct is adapted from the `Contributor Covenant
-<http:contributor-covenant.org>`__, version 1.0.0, available at
-`http://contributor-covenant.org/version/1/0/0/
-<http://contributor-covenant.org/version/1/0/0/>`__.
+If you want to contribute to this project, please read the project `Contributor Code of Conduct <https://tailordev.github.io/Watson/contributing/coc/>`_
License
-------
diff --git a/docs/about/license.md b/docs/about/license.md
new file mode 100644
index 0000000..79902d9
--- /dev/null
+++ b/docs/about/license.md
@@ -0,0 +1,23 @@
+# License
+
+## Watson License (MIT)
+
+Copyright (c) 2015 Tailordev
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/docs/about/release-notes.md b/docs/about/release-notes.md
new file mode 100644
index 0000000..3309120
--- /dev/null
+++ b/docs/about/release-notes.md
@@ -0,0 +1,36 @@
+# Release Notes
+
+This document records all notable changes to Watson. This project adheres to
+[Semantic Versioning](http://semver.org/).
+
+## 1.2.0 (2016-01-22)
+
+* Added: Watson now has a `restart` command
+* Added: Watson now has a `merge` command
+* Added: Watson can now stop running project when starting a new one (optional)
+* Added: there is a wrapper for `RawConfigParser` to make option access more convenient
+* Updated: the `edit` command now defaults to the running frame if any (else defaults to the last one)
+* Updated: the `log` command now has a daily total time summary
+* Fixed: unicode issues with cjk characters
+* Fixed: edition summary is now converted to local time
+
+## 1.1.0 (2015-10-21)
+
+* Added: configurable date and time to output of `status` command (#33)
+* Added: support for Bash-completion (#1)
+* Added: new `frames` command that displays all frame IDs
+* Fixed: set id if not provided (#30)
+
+## 1.0.2 (2015-10-09)
+
+* Fix a bug where the last frame could not be deleted
+* Improve installation instructions
+* Add an explanation to remove all the frames
+
+## 1.0.1 (2015-09-17)
+
+* Fix packaging error with PyPI
+
+## 1.0.0 (2015-09-17)
+
+* First stable version
diff --git a/docs/contributing/coc.md b/docs/contributing/coc.md
new file mode 100644
index 0000000..3f22278
--- /dev/null
+++ b/docs/contributing/coc.md
@@ -0,0 +1,26 @@
+# Contributor Code of Conduct
+
+As contributors and maintainers of this project, we pledge to respect all
+people who contribute through reporting issues, posting feature requests,
+updating documentation, submitting pull requests or patches, and other
+activities.
+
+We are committed to making participation in this project a harassment-free
+experience for everyone, regardless of level of experience, gender, gender
+identity and expression, sexual orientation, disability, personal appearance,
+body size, race, age, or religion.
+
+Examples of unacceptable behavior by participants include the use of sexual
+language or imagery, derogatory comments or personal attacks, trolling, public
+or private harassment, insults, or other unprofessional conduct.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct. Project maintainers who do not
+follow the Code of Conduct may be removed from the project team.
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by opening an issue or contacting one or more of the project
+maintainers.
+
+This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/).
diff --git a/docs/contributing/hack.md b/docs/contributing/hack.md
new file mode 100644
index 0000000..9106579
--- /dev/null
+++ b/docs/contributing/hack.md
@@ -0,0 +1,39 @@
+# Hack
+
+Ready to contribute? Here's how to set up *Watson* for local development.
+
+## Get started!
+
+1. Fork the [Watson repository](https://github.com/TailorDev/Watson/) on GitHub.
+2. Clone your fork locally:
+
+ $ git clone git@github.com:your_name_here/Watson.git
+
+3. Install Watson locally:
+
+ $ mkvirtualenv watson
+ $ cd Watson
+ $ pip install -r requirements-tests.txt
+ $ python setup.py develop
+
+4. Create a branch for local development:
+
+ $ git checkout -b name-of-your-bugfix-or-feature
+
+ Now you can make your changes locally.
+
+5. When you're done making changes, check that your changes pass the tests:
+
+ $ py.test
+
+6. If you have added a new command or updated/fixed docstrings, please update the documentation:
+
+ $ make docs
+
+7. Commit your changes and push your branch to GitHub:
+
+ $ git add .
+ $ git commit -m "Your detailed description of your changes."
+ $ git push origin name-of-your-bugfix-or-feature
+
+8. After [reading this](./pr-guidelines.md), submit a pull request through the GitHub website.
diff --git a/docs/contributing/how-to.md b/docs/contributing/how-to.md
new file mode 100644
index 0000000..f62f582
--- /dev/null
+++ b/docs/contributing/how-to.md
@@ -0,0 +1,55 @@
+# How to contribute?
+
+If you are reading this, we thank you in advance for willing to
+contribute to the Watson project! You are awesome.
+
+> **Disclaimer**
+>
+> This document is heavily inspired by [Kinto's project
+> documentation](https://github.com/Kinto/kinto). Thank Mozilla people
+> for providing such high quality content to the community.
+
+## Report bugs
+
+Report bugs at <https://github.com/TailorDev/Watson/issues/new>
+
+If you are reporting a bug, please include:
+
+- Any details about your local setup that might be helpful in
+ troubleshooting.
+- Detailed steps to reproduce the bug.
+
+## Fix bugs
+
+Check out the [open bugs](https://github.com/TailorDev/Watson/issues) -
+anything tagged with the **[easy-pick]** label could be a good choice
+for newcomers.
+
+## Implement features
+
+Look through the GitHub issues for features. Anything tagged with
+**[enhancement]** is open to whoever wants to implement it.
+
+## Write documentation
+
+*Watson* could always use more documentation, whether as part of the
+official docs, in docstrings, or even on the Web in blog posts,
+articles, and such.
+
+## Submit feedback
+
+Any issue with the **[question]** label is open for feedback, so feel
+free to share your thoughts with us!
+
+The best way to send feedback is to [fill a new
+issue](https://github.com/TailorDev/Watson/issues/new) on GitHub.
+
+If you are proposing a feature: