pax_global_header 0000666 0000000 0000000 00000000064 13530717772 0014526 g ustar 00root root 0000000 0000000 52 comment=4d336d98a50abecb4ea9ac1ea85bae44104e79d0
Watson-1.8.0/ 0000775 0000000 0000000 00000000000 13530717772 0013007 5 ustar 00root root 0000000 0000000 Watson-1.8.0/.gitignore 0000664 0000000 0000000 00000000541 13530717772 0014777 0 ustar 00root root 0000000 0000000 # editors and ides
.vscode/
# directories
build/
.cache/
dist/
docs/_gh-pages
.eggs/
htmlcov/
__pycache__/
site/
.tox/
.vagrant/
.venv/
.pytest_cache/
# files
.coverage
.DS_Store
.env
pip-delete-this-directory.txt
pip-log.txt
# patterns
*~
*.db
*.egg
*.egg-info
*.log
*.mo
*.pot
*.py[cod]
*.so
*.sublime-project
*.sublime-workspace
*.swp
*.sw[po]
Watson-1.8.0/.travis.yml 0000664 0000000 0000000 00000001063 13530717772 0015120 0 ustar 00root root 0000000 0000000 language: python
matrix:
include:
- python: 3.7
os: linux
dist: xenial
env: TOXENV=flake8
- python: 2.7
os: linux
dist: trusty
env: TOXENV=py27
- python: 3.5
os: linux
dist: trusty
env: TOXENV=py35
- python: 3.6
os: linux
dist: trusty
env: TOXENV=py36
- python: 3.7
os: linux
dist: xenial
env: TOXENV=py37
install:
- pip install tox
script:
- tox -e "${TOXENV}"
Watson-1.8.0/CHANGELOG.md 0000664 0000000 0000000 00000014205 13530717772 0014622 0 ustar 00root root 0000000 0000000 # CHANGELOG
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.8.0] - 2019-08-26
### Added
- Add CSV output format support for `report`, `log` and `aggregate` commands
using the `--csv/-s` command line option flag (#281).
### Fixed
- Update zsh shell completion (#264).
- Fix fatal AttributeError using Arrow 0.14.5 (#300)
### Removed
- Python 3.4 support (#286).
## [1.7.0] - 2019-03-25
### Added
- New `add` command (#202)
- Add lunar start time options to the `report` and `log` commands (#215)
- Aggregate reports by day (#231)
- Fish shell completion (#239)
- Add support for first day of the week configuration in reports and logs (#240)
- Python 3.7 support (#241)
- Add `start --no-gap` and `stop --at` options (#254)
- Add `--confirm-new-project` and `--confirm-new-tag` options to `start`, `add` and `edit` commands (#275)
### Changed
- The `edit` command now checks data consistency (#203)
- Current state saving is now improve when using Watson as a library (#214)
- Prevent calling `get_start_time_for_period` multiple times (#219)
### Fixed
- Improved support for UTF-8 with Python 2 (#211)
- Zsh completion for tags and projects with spaces in their names (#227)
- Typos in commands output (#230, #235)
- Project URL of the project in PyPI (#260)
### Removed
- Python 3.3 support (#210).
## [1.6.0] - 2018-04-23
### Added
- For `report` and `log`, allow specifying a timeperiod of "all"
- Option for log and report command to (not) output via pager
- `--json` option to log command
- Optional flags to filter status call
### Fixed
- Change message when frame is removed
- CLI output when on tags on `stop` and `remove`
- Bash completion with latest additions to command options
- CLI output spacing if a frame has no tags
- Frame modification time when renaming projects and tags (#181)
- Don't print space before tags if there are no tags (#179)
- Match log daily heading format to elsewhere
- Set max versions for pytest and arrow for keeping support for Python 2.7 and
3.3
## [1.5.2] - 2017-08-02
### Fixed
- Follow up on the `config` command fix (#161)
## [1.5.1] - 2017-08-01
### Fixed
- Fix the `config` command (#158)
## [1.5.0] - 2017-07-31
### Added
- The `report` command now supports JSON output (#102)
### Changed
- The `sync` command is now compatible with the new crick.io backend API (#152)
- Python 3.6 is now officially supported (#150)
### Fixed
- Catch error when user wants to edit config but file does not exist yet (#154)
## [1.4.0] - 2016-11-01
### Added
- Watson now has a `rename` command (#74).
- The `report` and `log` commands now have new command line and config file
options to (not) include the current frame in the output (#123).
- The `report` and `log` commands now have new command line options to set the
timespan to the current year, month, week or day (#130 via #124).
- You can now set default tags for selected projects in the config file (#113).
- Zsh completion support (#96)
- Document installation via homebrew on OS X (#121)
### Changed
- When saving the Watson frames, state or config file, the most recent previous
version of the file is kept as a back up (#120).
### Fixed
- Bash completion of projects and tags with spaces in them (#122).
- If saving the Watson frames, state or config file fails for any reason, the
original is kept (and not wiped as before) (#120).
## [1.3.2] - 2016-03-01
### Added
- Document installation for Arch Linux
- Improve frame selection by position
### Fixed
- Improve error handling
- Remove unnecessary dependencies for a stand alone installation
- Specify correct source directory for flake8 and pytest (tox test suite)
## [1.3.1] - 2016-02-11
### Fixed
- Packaging issue with PyPI
## [1.3.0] - 2016-02-11
### Added
- A complete browsable documentation
- Watson's brand new logo!
- Support for Watson's directory override via the WATSON_DIR environment variable
## [1.2.0] - 2016-01-22
### Added
- Watson now has a `restart` command
- Watson now has a `merge` command
- Watson can now stop running project when starting a new one (optional)
- 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)
- The `log` command now has a daily total time summary
### Fixed
- Unicode issues with cjk characters
- 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)
- Support for Bash-completion (#1)
- New `frames` command that displays all frame IDs
### Fixed
- Set id if not provided (#30)
## [1.0.2] - 2015-10-09
### Added
- Add documentation to remove all the frames
### Changed
- Improve installation instructions
### Fixed
- The last frame could not be deleted
## [1.0.1] - 2015-09-17
### Fixed
- Packaging erissueror with PyPI
## [1.0.0] - 2015-09-17
First stable public release 🎉
[unreleased]: https://github.com/tailordev/watson/compare/1.8.0...HEAD
[1.8.0]: https://github.com/tailordev/watson/compare/1.7.0...1.8.0
[1.7.0]: https://github.com/tailordev/watson/compare/1.6.0...1.7.0
[1.6.0]: https://github.com/tailordev/watson/compare/1.5.2...1.6.0
[1.5.2]: https://github.com/tailordev/watson/compare/1.5.1...1.5.2
[1.5.1]: https://github.com/tailordev/watson/compare/1.5.0...1.5.1
[1.5.0]: https://github.com/tailordev/watson/compare/1.4.0...1.5.0
[1.4.0]: https://github.com/tailordev/watson/compare/1.3.2...1.4.0
[1.3.2]: https://github.com/tailordev/watson/compare/1.3.1...1.3.2
[1.3.1]: https://github.com/tailordev/watson/compare/1.3.0...1.3.1
[1.3.0]: https://github.com/tailordev/watson/compare/1.2.0...1.3.0
[1.2.0]: https://github.com/tailordev/watson/compare/1.1.0...1.2.0
[1.1.0]: https://github.com/tailordev/watson/compare/1.0.2...1.1.0
[1.0.2]: https://github.com/tailordev/watson/compare/1.0.1...1.0.2
[1.0.1]: https://github.com/tailordev/watson/compare/1.0.0...1.0.1
[1.0.0]: https://github.com/tailordev/watson/releases/tag/1.0.0
Watson-1.8.0/CONTRIBUTING.md 0000664 0000000 0000000 00000001034 13530717772 0015236 0 ustar 00root root 0000000 0000000 # 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!
Watson-1.8.0/LICENSE 0000664 0000000 0000000 00000002064 13530717772 0014016 0 ustar 00root root 0000000 0000000 The MIT 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.
Watson-1.8.0/MANIFEST.in 0000664 0000000 0000000 00000000612 13530717772 0014544 0 ustar 00root root 0000000 0000000 include CHANGELOG.md
include CONTRIBUTING.md
include LICENSE
include Makefile
include mkdocs.yml
include README.md
include requirements-dev.txt
include requirements.txt
include tox.ini
include watson.completion
include watson.zsh-completion
recursive-include docs *.css *.gif *.md *.png *.svg
recursive-include scripts *
recursive-include tests *.py resources/*
recursive-exclude tests *.pyc
Watson-1.8.0/Makefile 0000664 0000000 0000000 00000001667 13530717772 0014461 0 ustar 00root root 0000000 0000000 # Watson
PYTHON ?= python
PIP ?= pip
VENV = virtualenv
VENV_ARGS = -p $(PYTHON)
VENV_DIR = $(CURDIR)/.venv
VENV_WATSON_DIR = $(CURDIR)/data
all: install
$(VENV_DIR): requirements-dev.txt
$(VENV) $(VENV_ARGS) "$(VENV_DIR)"
echo "export WATSON_DIR=\"$(VENV_WATSON_DIR)\"" >> "$(VENV_DIR)"/bin/activate
"$(VENV_DIR)"/bin/pip install -U setuptools wheel pip
"$(VENV_DIR)"/bin/pip install -Ur $<
.PHONY: env
env: $(VENV_DIR)
.PHONY: install
install:
$(PYTHON) setup.py install
.PHONY: install-dev
install-dev:
$(PIP) install -r requirements-dev.txt
$(PYTHON) setup.py develop
.PHONY: check
check: clean
$(PYTHON) setup.py test
.PHONY: clean
clean:
find . -name '*.pyc' -delete
find . -name '__pycache__' -type d | xargs rm -fr
.PHONY: distclean
distclean: clean
rm -fr *.egg *.egg-info/ .eggs/
.PHONY:
mostlyclean: clean distclean
rm -rf "$(VENV_DIR)"
.PHONY: docs
docs: install-dev
$(PYTHON) scripts/gen-cli-docs.py
mkdocs build
Watson-1.8.0/README.rst 0000664 0000000 0000000 00000005175 13530717772 0014506 0 ustar 00root root 0000000 0000000 .. image:: https://tailordev.github.io/Watson/img/logo-watson-600px.png
|Build Status| |PyPI Latest Version| |Requires.io|
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.
Wanna know what it looks like? Check this below.
|Watson screenshot|_
Nice isn't it?
Quick start
-----------
Installation
~~~~~~~~~~~~
On OS X, the easiest way to install **watson** is using `Homebrew `_:
.. code:: bash
$ brew update && brew install watson
On other platforms, install **watson** using pip:
.. code:: bash
$ pip install td-watson
If you need more details about installing watson, please refer to the `documentation `_.
Usage
~~~~~
Start tracking your activity via:
.. code:: bash
$ watson start world-domination +cats
With this command, you have started a new **frame** for the *world-domination* project with the *cats* tag. That's it.
Now stop tracking you world domination plan via:
.. code:: bash
$ watson stop
Project world-domination [cats] started 8 minutes ago (2016.01.27 13:00:28+0100)
You can log your latest working sessions (aka **frames**) thanks to the ``log`` command:
.. code:: bash
$ watson log
Tuesday 26 January 2016 (8m 32s)
ffb2a4c 13:00 to 13:08 08m 32s world-domination [cats]
Please note that, as `the report command `_, the ``log`` command comes with projects, tags and dates filtering.
To list all available commands, either `read the documentation `_ or use:
.. code:: bash
$ watson help
Contributor Code of Conduct
---------------------------
If you want to contribute to this project, please read the project `Contributor Code of Conduct `_
License
-------
Watson is released under the MIT License. See the bundled LICENSE file for
details.
.. |Build Status| image:: https://travis-ci.org/TailorDev/Watson.svg?branch=master
:target: https://travis-ci.org/TailorDev/Watson
.. |PyPI Latest Version| image:: https://img.shields.io/pypi/v/td-watson.svg
:target: https://pypi.python.org/pypi/td-watson
.. |Requires.io| image:: https://requires.io/github/TailorDev/Watson/requirements.svg?branch=master
:target: https://requires.io/github/TailorDev/Watson/requirements/?branch=master
:alt: Requirements Status
.. |Watson screenshot| image:: https://tailordev.github.io/Watson/img/watson-demo.gif
.. _Watson screenshot: https://asciinema.org/a/35918
Watson-1.8.0/docs/ 0000775 0000000 0000000 00000000000 13530717772 0013737 5 ustar 00root root 0000000 0000000 Watson-1.8.0/docs/about/ 0000775 0000000 0000000 00000000000 13530717772 0015051 5 ustar 00root root 0000000 0000000 Watson-1.8.0/docs/about/license.md 0000664 0000000 0000000 00000002101 13530717772 0017007 0 ustar 00root root 0000000 0000000 # 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.
Watson-1.8.0/docs/about/release-notes.md 0000664 0000000 0000000 00000013706 13530717772 0020150 0 ustar 00root root 0000000 0000000 # Release notes
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.8.0] - 2019-08-26
### Added
- Add CSV output format support for `report`, `log` and `aggregate` commands
using the `--csv/-s` command line option flag (#281).
### Fixed
- Update zsh shell completion (#264).
- Fix fatal AttributeError using Arrow 0.14.5 (#300)
### Removed
- Python 3.4 support (#286).
## [1.7.0] - 2019-03-25
### Added
- New `add` command (#202)
- Add lunar start time options to the `report` and `log` commands (#215)
- Aggregate reports by day (#231)
- Fish shell completion (#239)
- Add support for first day of the week configuration in reports and logs (#240)
- Python 3.7 support (#241)
- Add `start --no-gap` and `stop --at` options (#254)
### Changed
- The `edit` command now checks data consistency (#203)
- Current state saving is now improve when using Watson as a library (#214)
- Prevent calling `get_start_time_for_period` multiple times (#219)
### Fixed
- Improved support for UTF-8 with Python 2 (#211)
- Zsh completion for tags and projects with spaces in their names (#227)
- Typos in commands output (#230, #235)
- Project URL of the project in PyPI (#260)
### Removed
- Python 3.3 support (#210).
## [1.6.0] - 2018-04-23
### Added
- For `report` and `log`, allow specifying a timeperiod of "all"
- Option for log and report command to (not) output via pager
- `--json` option to log command
- Optional flags to filter status call
### Fixed
- Change message when frame is removed
- CLI output when on tags on `stop` and `remove`
- Bash completion with latest additions to command options
- CLI output spacing if a frame has no tags
- Frame modification time when renaming projects and tags (#181)
- Don't print space before tags if there are no tags (#179)
- Match log daily heading format to elsewhere
- Set max versions for pytest and arrow for keeping support for Python 2.7 and
3.3
## [1.5.2] - 2017-08-02
### Fixed
- Follow up on the `config` command fix (#161)
## [1.5.1] - 2017-08-01
### Fixed
- Fix the `config` command (#158)
## [1.5.0] - 2017-07-31
### Added
- The `report` command now supports JSON output (#102)
### Changed
- The `sync` command is now compatible with the new crick.io backend API (#152)
- Python 3.6 is now officially supported (#150)
### Fixed
- Catch error when user wants to edit config but file does not exist yet (#154)
## [1.4.0] - 2016-11-01
### Added
- Watson now has a `rename` command (#74).
- The `report` and `log` commands now have new command line and config file
options to (not) include the current frame in the output (#123).
- The `report` and `log` commands now have new command line options to set the
timespan to the current year, month, week or day (#130 via #124).
- You can now set default tags for selected projects in the config file (#113).
- Zsh completion support (#96)
- Document installation via homebrew on OS X (#121)
### Changed
- When saving the Watson frames, state or config file, the most recent previous
version of the file is kept as a back up (#120).
### Fixed
- Bash completion of projects and tags with spaces in them (#122).
- If saving the Watson frames, state or config file fails for any reason, the
original is kept (and not wiped as before) (#120).
## [1.3.2] - 2016-03-01
### Added
- Document installation for Arch Linux
- Improve frame selection by position
### Fixed
- Improve error handling
- Remove unnecessary dependencies for a stand alone installation
- Specify correct source directory for flake8 and pytest (tox test suite)
## [1.3.1] - 2016-02-11
### Fixed
- Packaging issue with PyPI
## [1.3.0] - 2016-02-11
### Added
- A complete browsable documentation
- Watson's brand new logo!
- Support for Watson's directory override via the WATSON_DIR environment variable
## [1.2.0] - 2016-01-22
### Added
- Watson now has a `restart` command
- Watson now has a `merge` command
- Watson can now stop running project when starting a new one (optional)
- 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)
- The `log` command now has a daily total time summary
### Fixed
- Unicode issues with cjk characters
- 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)
- Support for Bash-completion (#1)
- New `frames` command that displays all frame IDs
### Fixed
- Set id if not provided (#30)
## [1.0.2] - 2015-10-09
### Added
- Add documentation to remove all the frames
### Changed
- Improve installation instructions
### Fixed
- The last frame could not be deleted
## [1.0.1] - 2015-09-17
### Fixed
- Packaging erissueror with PyPI
## [1.0.0] - 2015-09-17
First stable public release 🎉
[1.8.0]: https://github.com/tailordev/watson/compare/1.7.0...1.8.0
[1.7.0]: https://github.com/tailordev/watson/compare/1.6.0...1.7.0
[1.6.0]: https://github.com/tailordev/watson/compare/1.5.2...1.6.0
[1.5.2]: https://github.com/tailordev/watson/compare/1.5.1...1.5.2
[1.5.1]: https://github.com/tailordev/watson/compare/1.5.0...1.5.1
[1.5.0]: https://github.com/tailordev/watson/compare/1.4.0...1.5.0
[1.4.0]: https://github.com/tailordev/watson/compare/1.3.2...1.4.0
[1.3.2]: https://github.com/tailordev/watson/compare/1.3.1...1.3.2
[1.3.1]: https://github.com/tailordev/watson/compare/1.3.0...1.3.1
[1.3.0]: https://github.com/tailordev/watson/compare/1.2.0...1.3.0
[1.2.0]: https://github.com/tailordev/watson/compare/1.1.0...1.2.0
[1.1.0]: https://github.com/tailordev/watson/compare/1.0.2...1.1.0
[1.0.2]: https://github.com/tailordev/watson/compare/1.0.1...1.0.2
[1.0.1]: https://github.com/tailordev/watson/compare/1.0.0...1.0.1
[1.0.0]: https://github.com/tailordev/watson/releases/tag/1.0.0
Watson-1.8.0/docs/contributing/ 0000775 0000000 0000000 00000000000 13530717772 0016446 5 ustar 00root root 0000000 0000000 Watson-1.8.0/docs/contributing/coc.md 0000664 0000000 0000000 00000002616 13530717772 0017541 0 ustar 00root root 0000000 0000000 # 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/).
Watson-1.8.0/docs/contributing/hack.md 0000664 0000000 0000000 00000005011 13530717772 0017673 0 ustar 00root root 0000000 0000000 # Hack
Ready to contribute? Here's how to set up *Watson* for local development.
## Python requirements
* Python (2/3) interpreter installed
* `pip` tool to install package dependencies
* `virtualenv` tool to create virtual environments
## 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. Create a virtual environment:
$ cd Watson
$ make env
The Python version used will be the one accessible using the `python`
command in your shell.
To use a different Python version, define the `PYTHON` shell variable.
For example:
$ PYTHON=python3.5 make env
4. Install dependencies and deploy Watson inside the virtual environment:
$ source .venv/bin/activate
(.venv) $ make install-dev
5. Create a branch for local development:
(.venv) $ git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.
_Notes:_
- The files you need to edit to change watson's behavior are located in the
`watson/` subfolder.
- Every time you run `watson` inside the virtual environment, the source
code inside the `watson/` subfolder will be used.
- To avoid messing with your real Watson data, watson will use `data/` as
the [application folder](../user-guide/configuration/#application-folder)
inside the virtual environment. You can run `watson projects` to check
that your real projects are not shown.
6. When you're done making changes, check that your changes pass the tests
(see [Run the tests](#run-the-tests)):
(.venv) $ tox
7. If you have added a new command or updated/fixed docstrings, please update
the documentation:
(.venv) $ make docs
8. Commit your changes and push your branch to GitHub:
$ git add .
$ git commit -m "Your detailed description of your changes."
$ git push -u origin name-of-your-bugfix-or-feature
9. After [reading this](./pr-guidelines.md), submit a pull request through the
GitHub website.
## Run the tests
The tests use [pytest](http://pytest.org/). To run them with the default Python
interpreter:
$ py.test -v tests/
To run the tests via [tox](http://tox.testrun.org/) with all Python versions
which are available on your system and are defined in the `tox.ini` file,
simply run:
$ tox
This will also check the source code with [flake8](http://flake8.pycqa.org).
Watson-1.8.0/docs/contributing/how-to.md 0000664 0000000 0000000 00000003264 13530717772 0020212 0 ustar 00root root 0000000 0000000 # 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
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 :)
Watson-1.8.0/docs/contributing/pr-guidelines.md 0000664 0000000 0000000 00000002415 13530717772 0021541 0 ustar 00root root 0000000 0000000 # Pull request guidelines
> *nota bene*
>
> Open a pull-request even if your contribution is not ready yet! It can
> be discussed and improved collaboratively! You may prefix the title of
> your pull-request with "WIP: " to make it clear that it is not yet ready
> for merging.
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!
Watson-1.8.0/docs/contributing/release-new-version.md 0000664 0000000 0000000 00000004371 13530717772 0022667 0 ustar 00root root 0000000 0000000 # Release a new version
As a maintainer, if you plan to release a new version of Watson, you will find
useful information in this page.
## Bump a new `x.y.z` release
Create a new branch:
```bash
$ git checkout -b prepare-x.y.z
```
Edit the following files to describe changes and bump the version number:
* `watson/version.py`: update the version number
* `CHANGELOG.md`: add release notes (see previous releases examples)
* `docs/about/release-notes.md`: copy/paste release notes here
Then commit your work, tag the release and push everything to GitHub:
```bash
$ git add watson/version.py CHANGELOG.md docs/about/release-notes.md
$ git commit -m 'Bump release to x.y.z'
$ git tag x.y.z
$ git push origin prepare-x.y.z
$ git push origin --tags
```
Create a new pull request (PR) with the `prepare-x.y.z` branch. You can safely
merge this PR if all tests are green.
Draft a new [Watson Release on
GitHub](https://github.com/TailorDev/Watson/releases) with the same release
notes.
## Push the `x.y.z` release to PyPI
Checkout the up-to-date `master` branch:
```bash
$ git checkout master
$ git pull --rebase origin master
```
Now, build the release and submit it to PyPI using
[twine](https://github.com/pypa/twine) (you'll need to be registered as a
maintainer of the package):
```bash
$ python setup.py sdist bdist_wheel
$ twine upload dist/*
```
## Update online documentation
We use [`mkdocs`](http://www.mkdocs.org) to generate the online documentation.
It must be updated via:
```bash
$ mkdocs gh-deploy --clean
```
## Publish the `x.y.z` release to Homebrew
* Fork the [Homebrew/homebrew-core](https://github.com/Homebrew/homebrew-core)
repository to your personal GitHub account.
* Get the new release SHA256 checksum by copying it from [td-watson
Warehouse](https://pypi.org/project/td-watson/#files) page (the new PyPI)
* Update brew formula with the automation command `bump-formula-pr`:
```bash
$ brew bump-formula-pr \
--url='https://files.pythonhosted.org/packages/[...]/td-watson-x.y.z.tar.gz' \
--sha256='PASTE THE SHA256 CHECKSUM HERE' \
watson
```
Note: you may also need to update versions of Watson's dependencies (and related
checksum). See [Homebrew's
documentation](https://docs.brew.sh/How-To-Open-a-Homebrew-Pull-Request.html)
for details.
Watson-1.8.0/docs/css/ 0000775 0000000 0000000 00000000000 13530717772 0014527 5 ustar 00root root 0000000 0000000 Watson-1.8.0/docs/css/watson.css 0000664 0000000 0000000 00000001064 13530717772 0016555 0 ustar 00root root 0000000 0000000 /*
Watson styles.
*/
a {
color:#1abc9c;
}
h2 {
margin-top: 2em;
}
div[role="main"] li,
p {
font-size: 1.1em;
line-height: 1.4em;
text-align: justify;
}
p {
margin: 0 0 1.2em;
}
p > img {
display: block;
max-width: 100%;
margin-left: auto;
margin-right: auto;
}
div[role="main"] li a,
p a {
text-decoration: underline;
}
div[role="main"] dl,
div[role="main"] ol,
div[role="main"] ul {
margin-top: 1.4em;
}
div[role="main"] dl li,
div[role="main"] ol li,
div[role="main"] ul li {
margin-top: 0.8em;
}
Watson-1.8.0/docs/faq.md 0000664 0000000 0000000 00000000314 13530717772 0015026 0 ustar 00root root 0000000 0000000 # Frequently Asked Questions
## Can I delete all my frames?
Yes! To do so, delete the `frames` file in your configuration folder (see [configuration](user-guide/configuration.md) to find its location).
Watson-1.8.0/docs/img/ 0000775 0000000 0000000 00000000000 13530717772 0014513 5 ustar 00root root 0000000 0000000 Watson-1.8.0/docs/img/logo-watson-600px.png 0000664 0000000 0000000 00000032361 13530717772 0020352 0 ustar 00root root 0000000 0000000 PNG
IHDR X dR tEXtSoftware Adobe ImageReadyqe<