GTG

Merge lp:~izidor/gtg/documentation into lp:~gtg/gtg/old-trunk

Proposed by Izidor Matušov
Status: Merged
Merged at revision: 1367
Proposed branch: lp:~izidor/gtg/documentation
Merge into: lp:~gtg/gtg/old-trunk
Diff against target: 1917 lines (+941/-758)
24 files modified
GTG/gtg (+58/-6)
GTG/tools/import_liblarch.py (+0/-106)
MANIFEST.in (+6/-7)
doc/gtcli.1 (+0/-58)
doc/gtg.1 (+0/-52)
doc/gtg_new_task.1 (+0/-29)
docs/Makefile (+74/-0)
docs/source/conf.py (+74/-0)
docs/source/contributing.rst (+140/-0)
docs/source/index.rst (+53/-0)
docs/source/man/gtcli.rst (+78/-0)
docs/source/man/gtg.rst (+62/-0)
docs/source/man/gtg_new_task.rst (+42/-0)
docs/source/releases/v0.1.9.rst (+49/-0)
docs/source/releases/v0.1.rst (+37/-0)
docs/source/releases/v0.2.2.rst (+16/-0)
docs/source/releases/v0.3.1.rst (+90/-54)
gtg (+0/-92)
profile.py (+0/-36)
scripts/build_integrity.py (+0/-69)
scripts/debug.sh (+3/-26)
scripts/man_page_viewer (+0/-12)
scripts/profile_interpret.sh (+0/-4)
setup.py (+159/-207)
To merge this branch: bzr merge lp:~izidor/gtg/documentation
Reviewer Review Type Date Requested Status
Gtg developers Pending
Review via email: mp+210111@code.launchpad.net

Description of the change

Introduce developer documentation using Sphinx. It is replacement for Pydoctor. Because readthedocs.org expects documentation to be in docs/ folder, I had to move doc to docs. By that occasion I fixed setup.py:

 - it generates lists of files and packages instead of listing them (no more dead files there)
 - I looked into upgrading to setuptools but it does not support installation in /usr/share :(
 - generate man files from sphinx documentation (RST is much friendlier format)
 - allow installation of GTG on case insensitive file systems

I also removed special handling for liblarch. Everybody should have installed it already. For development we should use virtualenv or virtualenvwrapper :)

To post a comment you must log in.
Revision history for this message
Izidor Matušov (izidor) wrote :

This branch is based on test clean-up, which originally removed pydoctor support. That branch is not merged at the moment.

lp:~izidor/gtg/documentation updated
1383. By Izidor Matušov

Merge trunk

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== renamed file 'gtcli' => 'GTG/gtcli'
2=== renamed file 'GTG/gtg.py' => 'GTG/gtg' (properties changed: -x to +x)
3--- GTG/gtg.py 2013-11-25 02:37:46 +0000
4+++ GTG/gtg 2014-03-14 20:44:47 +0000
5@@ -50,9 +50,13 @@
6 import logging
7 import dbus
8
9+from optparse import OptionParser
10+from gi.repository.Gdk import Screen
11+
12 # our own imports
13+from GTG import _
14+from GTG import info
15 from GTG.backends import BackendFactory
16-from GTG import _
17 from GTG.core import CoreConfig
18 from GTG.core.datastore import DataStore
19 from GTG.gtk.manager import Manager
20@@ -111,13 +115,58 @@
21 # Ignore missing PID file
22 pass
23
24+
25+def x_is_running():
26+ """ Return True if GTG could be displayed on the current XServer """
27+ try:
28+ if Screen().get_default().get_display():
29+ return True
30+ except RuntimeError as exc:
31+ print(exc)
32+ return False
33+
34 #=== MAIN CLASS ===============================================================
35
36
37-def main(options=None, args=None):
38- '''
39- Calling this starts the full GTG experience ( :-D )
40- '''
41+def parse_args():
42+ """ Parse arguments """
43+ parser = OptionParser()
44+ parser.add_option('-b', '--boot-test', action='store_true',
45+ dest='boot_test',
46+ help="Exit after completing boot-up actions",
47+ default=False)
48+ parser.add_option('-c', '--no-crash-handler', action='store_true',
49+ dest='no_crash_handler',
50+ help="Disable the automatic crash handler",
51+ default=False)
52+ parser.add_option('-d', '--debug', action='store_true', dest='debug',
53+ help="Enable debug output", default=False)
54+ parser.add_option('-t', '--title', action='store',
55+ help="Use special title for windows' title")
56+ parser.add_option('-v', '--version', action='store_true',
57+ dest='print_version', help="Print GTG's version number",
58+ default=False)
59+ return parser.parse_args()
60+
61+
62+def main():
63+ '''
64+ Calling this starts the full GTG experience
65+ '''
66+ options, args = parse_args()
67+ if options.print_version:
68+ print("GTG (Getting Things GNOME!)", info.VERSION)
69+ print()
70+ print("For more information:", info.URL)
71+ sys.exit(0)
72+
73+ elif not x_is_running():
74+ print("Could not open X display")
75+ sys.exit(1)
76+
77+ if options.title is not None:
78+ info.NAME = options.title
79+
80 ds, req = core_main_init(options, args)
81 # Launch task browser
82 manager = Manager(req)
83@@ -180,4 +229,7 @@
84 #=== EXECUTION ================================================================
85
86 if __name__ == "__main__":
87- main()
88+ try:
89+ main()
90+ except KeyboardInterrupt:
91+ sys.exit(1)
92
93=== renamed file 'gtg_new_task' => 'GTG/gtg_new_task'
94=== removed file 'GTG/tools/import_liblarch.py'
95--- GTG/tools/import_liblarch.py 2013-11-25 02:37:46 +0000
96+++ GTG/tools/import_liblarch.py 1970-01-01 00:00:00 +0000
97@@ -1,106 +0,0 @@
98-#!/usr/bin/env python3
99-# -*- coding:utf-8 -*-
100-# -----------------------------------------------------------------------------
101-# Getting Things GNOME! - A personal organizer for the GNOME desktop
102-# Copyright (c) 2008-2013 Lionel Dricot & Bertrand Rousseau
103-#
104-# This program is free software: you can redistribute it and/or modify it under
105-# the terms of the GNU General Public License as published by the Free Software
106-# Foundation, either version 3 of the License, or (at your option) any later
107-# version.
108-#
109-# This program is distributed in the hope that it will be useful, but WITHOUT
110-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
111-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
112-# details.
113-#
114-# You should have received a copy of the GNU General Public License along with
115-# this program. If not, see <http://www.gnu.org/licenses/>.
116-# -----------------------------------------------------------------------------
117-
118-""" Check if liblarch is installed """
119-
120-import sys
121-
122-REQUIRED_LIBLARCH_API = "2.1"
123-GIT_CMD = "git clone https://github.com/liblarch/liblarch ../liblarch"
124-
125-
126-def import_liblarch(use_local=False):
127- """ Check if liblarch is installed and is compatible
128-
129- If not, provide information how to obtain the newest version.
130- If use_local, prioritize local (development) liblarch in ../liblarch"""
131-
132- def check_liblarch():
133- """
134- Import liblarch and find out which one is missing
135- """
136- has_libraries = True
137- missing = []
138- try:
139- import liblarch
140- assert liblarch
141- except ImportError:
142- has_libraries = False
143- missing.append("liblarch")
144-
145- try:
146- import liblarch_gtk
147- assert liblarch_gtk
148- except ImportError:
149- has_libraries = False
150- missing.append("liblarch_gtk")
151-
152- return has_libraries, " and ".join(missing)
153-
154- if use_local:
155- sys.path.insert(0, "../liblarch")
156-
157- has_libraries, missing = check_liblarch()
158-
159- if not use_local and not has_libraries:
160- sys.path.append("../liblarch/")
161- has_libraries, missing = check_liblarch()
162-
163- if not has_libraries:
164- print("""GTG can't find %s. To install missing libraries,
165-run the following command in the current folder:
166-
167-%s
168-
169-More information about liblarch: https://live.gnome.org/liblarch/""" % (
170- missing, GIT_CMD))
171- return False
172-
173- import liblarch
174- try:
175- is_liblarch_compatible = liblarch.is_compatible(REQUIRED_LIBLARCH_API)
176- except:
177- print("""I could not recognize your liblarch module. Make sure that
178-you don't have stale copies of liblarch in your import path
179-""")
180- is_liblarch_compatible = False
181- if not is_liblarch_compatible:
182- try:
183- liblarch_version = liblarch.API
184- except AttributeError:
185- # Liblarch 1.0 has lowercased API variable
186- liblarch_version = liblarch.api
187-
188- print("""Your liblarch copy has its API at version %s
189-but your GTG copy need liblarch API version %s
190-You may fix that by downloading the last version of liblarch with
191-
192-%s """ % (liblarch_version, REQUIRED_LIBLARCH_API, GIT_CMD))
193- return False
194-
195- return True
196-
197-if __name__ == "__main__":
198- use_local = "-l" in sys.argv[1:] or "--local-liblarch" in sys.argv[1:]
199-
200- if import_liblarch(use_local):
201- sys.exit(0)
202- else:
203- sys.exit(1)
204
205=== modified file 'MANIFEST.in'
206--- MANIFEST.in 2012-05-23 08:55:31 +0000
207+++ MANIFEST.in 2014-03-14 20:44:47 +0000
208@@ -1,16 +1,15 @@
209-recursive-include GTG *.glade
210 recursive-include GTG *.ui
211 recursive-include GTG *.gtg-plugin
212 recursive-include GTG *.png
213 recursive-include GTG *.svg
214-include gtg.desktop
215+recursive-include GTG/plugins/export *
216 include CHANGELOG
217 include README
218 include LICENSE
219 include AUTHORS
220-include org.gnome.GTG.service
221-recursive-include data/icons *.png
222-recursive-include data/icons *.svg
223-include doc/*.1
224-recursive-include GTG/plugins/export *
225+include requirements.txt
226+recursive-include data *
227 recursive-include po *.po
228+include docs/Makefile
229+recursive-include docs/source *
230+recursive-include docs/userdoc *
231
232=== renamed file 'gtcli_bash_completion' => 'data/gtcli_bash_completion' (properties changed: +x to -x)
233=== renamed file 'gtg.appdata.xml' => 'data/gtg.appdata.xml'
234=== renamed file 'gtg.desktop' => 'data/gtg.desktop'
235=== renamed file 'org.gnome.GTG.service' => 'data/org.gnome.GTG.service'
236=== removed file 'doc/gtcli.1'
237--- doc/gtcli.1 2013-12-12 12:43:00 +0000
238+++ doc/gtcli.1 1970-01-01 00:00:00 +0000
239@@ -1,58 +0,0 @@
240-.TH gtgcli 1 2012-08-16 "gtgcli"
241-.SH NAME
242-gtcli \- Command-line interface for Getting Things GNOME!
243-.SH SYNOPSIS
244-.B gtgcli [options] COMMAND [command options]
245-.SH DESCRIPTION
246-gtgcli provides a handy command-line interface to GTG. It allows one to list
247-and modify your task directly from the command line. It also allows one to
248-interact with GTG using shell scripts.
249-.SH OPTIONS
250-.TP
251-\fB\-h, \-\-help\fB
252-Prints some information about gtg's usage and options.
253-.SH COMMAND OPTIONS
254-.TP
255-\fBnew\fB
256-Creates a new task.
257-.TP
258-\fBshow <tid>\fB
259-Display task with <tid> task ID.
260-.TP
261-\fBedit <tid>\fB
262-Opens the GUI editor for the task with <tid> task ID.
263-.TP
264-\fBdelete <tid>\fB
265-Removes task with <tid> task ID.
266-.TP
267-\fBlist [all|today|<filter>|<tag>]\fB
268-List tasks corresponding to the given attributes.
269-.TP
270-\fBsearch <expression>\fB
271-Search tasks corresponding to <expression>. Read the documentation from GTG's
272-help to know more about the search query syntax.
273-.TP
274-\fBcount [all|today|<filter>|<tag>]\fB
275-Outputs the task count for all the task corresponding to the given attributes.
276-.TP
277-\fBsummary [all|today|<filter>|<tag]\fB
278-Report how many tasks starting/due each day.
279-.TP
280-\fBpostpone <tid> <date>\fB
281-Updates the start date of the task with <tid> task id to <date>.
282-.TP
283-\fBclose <tid>\fB
284-Sets state of task identified by <tid> to done.
285-.TP
286-\fBbrowser [hide|show]\fB
287-Hides or shows the task browser window.
288-.SH "SEE ALSO"
289-gtg (1)
290-.SH BUGS
291-Please report any bug you may experience to the \fBGTG\fP Developers, that can
292-be reached at \fRhttps://edge.launchpad.net/gtg\fP
293-.SH COPYRIGHT
294-This manual page is Copyright 2012 Bertrand Rousseau
295-<bertrand.rousseau@gmail.com>. Permission is granted to copy, distribute
296-and/or modify this document under the terms of the GNU General Public License,
297-Version 3 or any later version published by the Free Software Foundation.
298
299=== removed file 'doc/gtg.1'
300--- doc/gtg.1 2013-12-12 12:43:00 +0000
301+++ doc/gtg.1 1970-01-01 00:00:00 +0000
302@@ -1,52 +0,0 @@
303-.TH gtg 1 2012-08-16 "gtg"
304-.SH NAME
305-gtg \- Getting Things GNOME!, a personal tasks and TODO-list items organizer
306-for the GNOME desktop environment
307-.SH SYNOPSIS
308-.B gtg [options]
309-.SH DESCRIPTION
310-Getting Things GNOME! is a personal tasks and TODO-list items organizer for the
311-GNOME desktop environment inspired by the Getting Things Done (GTD)
312-methodology. GTG is designed with flexibility, adaptability, and ease of use
313-in mind so it can be used as more than just GTD software.
314-.PP
315-GTG is intended to help you track everything you need to do and need to know,
316-from small tasks to large projects.
317-.PP
318-GTG uses a very handy system for creating and editing tasks. The task editor
319-can automatically recognize metadata such as tags and subtasks through the use
320-of a very simple syntax.
321-.SH OPTIONS
322-.TP
323-\fB\-b, \-\-boot\-test\fB
324-Boot-up only. Causes gtg to exit immediately after completing the first
325-iteration of the main loop. Useful for boot performance testing work.
326-.TP
327-\fB\-c, \-\-no-crash\-handler\fB
328-Disable crash handler. Causes the Apport automatic crash reporting
329-utility to not be invoked when gtg crashes; instead it will print out a
330-normal python backtrace. This can be useful for debugging crash bugs,
331-or if the crash handler is misbehaving.
332-.TP
333-\fB\-d, \-\-debug\fB
334-Debug mode. Prints extra information to the console which may be useful
335-for understanding and reporting bugs.
336-.TP
337-\fB\-h, \-\-help\fB
338-Prints some information about gtg's usage and options.
339-.TP
340-\fB\-l, \-\-local-liblarch\fB
341-Use local liblarch. Look for the liblarch python library in ../liblarch.
342-This is mainly useful for testing purpose.
343-.TP
344-\fB\-t TITLE, \-\-title=TITLE\fB
345-Set the window's title to TITLE.
346-.TP
347-\fB\-v, \-\-version\fB
348-Prints version and exits.
349-.SH COPYRIGHT
350-This manual page is Copyright 2009, 2012 Luca Falavigna <dktrkranz@debian.org>
351-and Bertrand Rousseau <bertrand.rousseau@gmail.com>. Permission is granted
352-to copy, distribute and/or modify this document under the terms of the GNU
353-General Public License, Version 3 or any later version published by the Free
354-Software Foundation.
355
356=== removed file 'doc/gtg_new_task.1'
357--- doc/gtg_new_task.1 2012-05-23 08:55:31 +0000
358+++ doc/gtg_new_task.1 1970-01-01 00:00:00 +0000
359@@ -1,29 +0,0 @@
360-.TH GTG_NEW_TASK 1 "4 December 2009"
361-.SH NAME
362-gtg_new_task \- Adds a task to the \fBGetting Things GNOME!\fP organizer
363-.SH SYNOPSIS
364-\fBgtg_new_task\fP [\-h | \-\-help] [\-i | \-\-interactive]
365-.SH DESCRIPTION
366-\fBgtg_new_task\fP creates a new task in the Getting Things GNOME! organizer
367-for the GNOME desktop via the DBUS message bus. Getting Things GNOME! must be
368-running for the command to work.
369-.SS Options
370-.TP
371-\fB[\-h | \-\-help]\fP
372-Shows a brief usage help.
373-.TP
374-\fB[\-i | \-\-interactive]\fP
375-Accepts a task description via stdin.
376-.SH FILES
377-None
378-.SH "SEE ALSO"
379-gtg (1)
380-.SH BUGS
381-Please report any bug you may experience to the \fBGTG\fP Developers, that can
382-be reached at \fRhttps://edge.launchpad.net/gtg\fP
383-.SH COPYRIGHT
384-This manual page is Copyright2009 Luca Invernizzi <invernizzi.l@gmail.com>.
385-Permission is granted to copy, distribute and/or modify this document under the
386-terms of the GNU General Public License, Version 3 or any later version
387-published by the Free Software Foundation.
388-
389
390=== renamed directory 'doc' => 'docs'
391=== added file 'docs/Makefile'
392--- docs/Makefile 1970-01-01 00:00:00 +0000
393+++ docs/Makefile 2014-03-14 20:44:47 +0000
394@@ -0,0 +1,74 @@
395+# Makefile for Sphinx documentation
396+
397+# You can set these variables from the command line.
398+SPHINXOPTS =
399+SPHINXBUILD = sphinx-build
400+PAPER = a4
401+BUILDDIR = build
402+
403+# User-friendly check for sphinx-build
404+ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
405+$(error The '$(SPHINXBUILD)' command was not found. Install Sphinx.)
406+endif
407+
408+# Internal variables.
409+PAPEROPT_a4 = -D latex_paper_size=a4
410+PAPEROPT_letter = -D latex_paper_size=letter
411+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
412+# the i18n builder cannot share the environment and doctrees with the others
413+I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
414+
415+.PHONY: help clean userhtml html singlehtml latex latexpdf man linkcheck
416+
417+help:
418+ @echo "Please use \`make <target>' where <target> is one of"
419+ @echo " userhtml to make HTML files from user level documentation"
420+ @echo " html to make standalone HTML files"
421+ @echo " singlehtml to make a single large HTML file"
422+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
423+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
424+ @echo " man to make manual pages"
425+ @echo " linkcheck to check all external links for integrity"
426+
427+clean:
428+ rm -rf $(BUILDDIR)/*
429+ rm -f *.1
430+
431+userhtml:
432+ mkdir -p $(BUILDDIR)/userhtml
433+ yelp-build html -o $(BUILDDIR)/userhtml userdoc/C/*.page
434+ @echo
435+ @echo "Build finished. User HTML pages are in $(BUILDDIR)/userhtml."
436+
437+
438+html:
439+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
440+ @echo
441+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
442+
443+singlehtml:
444+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
445+ @echo
446+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
447+
448+latex:
449+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
450+ @echo
451+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
452+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
453+ "(use \`make latexpdf' here to do that automatically)."
454+
455+latexpdf:
456+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
457+ @echo "Running LaTeX files through pdflatex..."
458+ $(MAKE) -C $(BUILDDIR)/latex all-pdf
459+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
460+
461+man:
462+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) .
463+
464+linkcheck:
465+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
466+ @echo
467+ @echo "Link check complete; look for any errors in the above output " \
468+ "or in $(BUILDDIR)/linkcheck/output.txt."
469
470=== added directory 'docs/source'
471=== added directory 'docs/source/_static'
472=== added directory 'docs/source/_templates'
473=== added file 'docs/source/conf.py'
474--- docs/source/conf.py 1970-01-01 00:00:00 +0000
475+++ docs/source/conf.py 2014-03-14 20:44:47 +0000
476@@ -0,0 +1,74 @@
477+#!/usr/bin/env python3
478+# -*- coding: utf-8 -*-
479+
480+import os
481+import sys
482+
483+# Use local version of GTG
484+sys.path.insert(0, '../..')
485+
486+from GTG import info
487+
488+extensions = [
489+ 'sphinx.ext.autodoc',
490+ 'sphinx.ext.graphviz',
491+ 'sphinx.ext.viewcode',
492+]
493+
494+project = 'Getting Things GNOME!'
495+copyright = 'The GTG Team'
496+
497+short_version = '.'.join(info.VERSION.split('.')[:2])
498+version = short_version
499+release = info.VERSION
500+
501+master_doc = 'index'
502+source_suffix = '.rst'
503+
504+exclude_patterns = []
505+pygments_style = 'sphinx'
506+
507+# -- Options for HTML output ----------------------------------------------
508+on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
509+if on_rtd:
510+ html_theme = 'default'
511+else:
512+ html_theme = 'nature'
513+
514+html_show_sphinx = False
515+
516+# -- Options for LaTeX output ---------------------------------------------
517+
518+# Grouping the document tree into LaTeX files. List of tuples
519+# (source start file, target name, title,
520+# author, documentclass [howto, manual, or own class]).
521+latex_documents = [(
522+ 'index',
523+ 'gtg.tex',
524+ 'Getting Things GNOME! Documentation',
525+ 'The GTG Team',
526+ 'manual',
527+)]
528+
529+# -- Options for manual page output ---------------------------------------
530+
531+# One entry per manual page. List of tuples
532+# (source start file, name, description, authors, manual section).
533+man_pages = [
534+ (
535+ 'man/gtcli', 'gtcli',
536+ 'Command-line interface for Getting Things GNOME!',
537+ [], 1,
538+ ),
539+ (
540+ 'man/gtg', 'gtg',
541+ 'Getting Things GNOME!, a personal tasks and TODO-list items '
542+ 'organizer for the GNOME desktop environment',
543+ [], 1,
544+ ),
545+ (
546+ 'man/gtg_new_task', 'gtg_new_task',
547+ 'Adds a task to the Getting Things GNOME! organizer',
548+ [], 1,
549+ ),
550+]
551
552=== added file 'docs/source/contributing.rst'
553--- docs/source/contributing.rst 1970-01-01 00:00:00 +0000
554+++ docs/source/contributing.rst 2014-03-14 20:44:47 +0000
555@@ -0,0 +1,140 @@
556+===================
557+Contributing to GTG
558+===================
559+
560+GTG uses Bazaar_ for versioning. It might be useful to read `Bazaar's tutorial`_ first.
561+
562+.. _Bazaar: http://bazaar.canonical.com/
563+.. _`Bazaar's tutorial`: http://doc.bazaar.canonical.com/latest/en/mini-tutorial/
564+
565+Dependencies
566+============
567+
568+You need to have python-configobj installed
569+
570+Getting the code
571+================
572+
573+Get the latest version of the code on Launchpad_::
574+
575+ $ bzr branch lp:gtg trunk
576+
577+Although if you're thinking of contributing more than one patch, you might want to do::
578+
579+ $ bzr init-repo gtg
580+ $ cd gtg
581+ $ bzr branch lp:gtg trunk
582+
583+This will share revision data between branches, reducing storage costs & network time.
584+
585+
586+Launch gtg with debugging data (so it doesn't mess with your data)::
587+
588+ $ cd trunk
589+ $ ./scripts/debug.sh
590+
591+.. _Launchpad: https://launchpad.net
592+
593+Choosing a feature to work on
594+=============================
595+
596+If you are a happy user of GTG and nothing bothers you but you would like to contribute you can:
597+
598+* choose a `LOVE bug`_ which are easier to solve
599+* ask people on IRC channel #gtg on irc://irc.gimp.org/#gtg
600+* ask on our `mailing list`_
601+
602+.. _`LOVE bug`: https://bugs.launchpad.net/gtg/+bugs?field.status%3Alist=NEW&field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&assignee_option=none&field.tag=love
603+.. _`mailing list`: https://launchpad.net/~gtg-user
604+
605+
606+Working on the feature in a branch
607+==================================
608+
609+You have your local copy of the code (see "Getting the code"). Now, create a
610+local branch of your local branch (yes, it is)::
611+
612+ $ cd ..
613+ $ bzr branch trunk cool-new-feature
614+
615+(your *trunk* folder is branched in a new *cool-new-feature* folder)
616+
617+When working with Bazaar, it's a good idea to keep your local *trunk* branch as
618+a pristine copy of trunk on Launchpad.
619+
620+Hack and commit your changes::
621+
622+ bzr commit -m "description of my change"
623+
624+Repeat as much as you want. Don't hesitate to abuse the local commits. Think of
625+*commit* like *quick save* in a video game :)
626+
627+Run the units tests to see if all is fine::
628+
629+ $ make check=python3
630+ ./run-tests
631+ ...........
632+ ----------------------------------------------------------------------
633+ Ran 11 tests in 0.063s
634+
635+ OK
636+
637+Modify CHANGELOG to reflect your changes. If it's your first contribution, add
638+yourself in the AUTHORS file with your email address.
639+
640+If the trunk has been updated while you were hacking, you should update your
641+local trunk branch, and merge modification in **your** branch::
642+
643+ $ cd ../trunk
644+ $ bzr pull trunk
645+ $ cd ../cool-new-feature
646+ $ bzr merge ../trunk
647+
648+If you have conflicts, you must solve them. Refer to `conflicts guide`_.
649+
650+.. _`conflicts guide`: http://doc.bazaar.canonical.com/bzr.0.92/en/user-guide/conflicts.html
651+
652+Once you don't have any conflict anymore, you must commit the changes related
653+to the merge. Use a clear commit message, like::
654+
655+ Updating branch by merging the last trunk version.
656+
657+Pushing your work to your own branch on Launchpad (where *ploum* is your
658+Launchpad username)::
659+
660+ $ bzr push lp:~ploum/gtg/cool-new-feature
661+
662+Alternatively, if you want other gtg users to be able to write to your branch,
663+push it in the gtg-user group (you have to be part of it)::
664+
665+ $ bzr push lp:~gtg-user/gtg/ploum_branch
666+
667+Ask for a merge request and comment on the corresponding bug. (Open one if
668+there is none). Add the tag *toreview* to the bug in Launchpad. This is very
669+important and ensures we are not letting a patch rotting.
670+
671+You can file a bug at https://bugs.launchpad.net/gtg/+filebug.
672+
673+To ask for a merge request, run::
674+
675+$ cd cool-new-feature
676+$ bzr lp-open
677+
678+This will open the branch's web page on Launchpad. From there, click *Propose for merging*.
679+
680+If your branch is solving specific reported bugs, please also register your
681+branch to these bugs (there is an link for that in each bug report page). It
682+allows to link together all related resources (which in turn is useful to dig
683+out precious information from all the discussions that happened around those
684+bugs).
685+
686+For more detailed information, see the `HACKING`_ guide included in the GTG code.
687+
688+.. _`HACKING`: http://bazaar.launchpad.net/~gtg/gtg/trunk/annotate/head%3A/HACKING
689+
690+Troubleshooting
691+===============
692+
693+If you have a problem with SSH keys while uploading to Launchpad, look at this `SuperUser question`_.
694+
695+.. _`SuperUser question`: http://superuser.com/questions/161337/big-ssh-problem
696
697=== added file 'docs/source/index.rst'
698--- docs/source/index.rst 1970-01-01 00:00:00 +0000
699+++ docs/source/index.rst 2014-03-14 20:44:47 +0000
700@@ -0,0 +1,53 @@
701+=====================
702+Getting Things GNOME!
703+=====================
704+
705+Getting Things GNOME! (GTG) is a personal tasks and TODO-list items organizer
706+for the GNOME desktop environment inspired by the Getting Things Done (GTD)
707+methodology. GTG is designed with flexibility, adaptability, and ease of use in
708+mind so it can be used as more than just GTD software.
709+
710+GTG is intended to help you track everything you need to do and need to know,
711+from small tasks to large projects.
712+
713+Contents
714+========
715+
716+* `User level documentation <http://www.gtgnome.net/html/userdoc/index.html>`_
717+
718+
719+Documentation for developers:
720+
721+.. toctree::
722+ :maxdepth: 1
723+
724+ contributing
725+
726+Man pages
727+=========
728+
729+.. toctree::
730+ :maxdepth: 1
731+
732+ man/gtg
733+ man/gtg_new_task
734+ man/gtcli
735+
736+Release notes
737+=============
738+
739+.. toctree::
740+ :maxdepth: 1
741+
742+ releases/v0.3.1
743+ releases/v0.2.2
744+ releases/v0.1.9
745+ releases/v0.1
746+
747+
748+Indices and tables
749+==================
750+
751+* :ref:`genindex`
752+* :ref:`modindex`
753+* :ref:`search`
754
755=== added directory 'docs/source/man'
756=== added file 'docs/source/man/gtcli.rst'
757--- docs/source/man/gtcli.rst 1970-01-01 00:00:00 +0000
758+++ docs/source/man/gtcli.rst 2014-03-14 20:44:47 +0000
759@@ -0,0 +1,78 @@
760+gtcli(1)
761+========
762+
763+SYNOPSIS
764+--------
765+
766+**gtgcli [options] COMMAND [command options]**
767+
768+DESCRIPTION
769+-----------
770+gtgcli provides a handy command-line interface to GTG. It allows one to list
771+and modify your task directly from the command line. It also allows one to
772+interact with GTG using shell scripts.
773+
774+OPTIONS
775+-------
776+
777+**-h, --help**
778+ Prints some information about gtg's usage and options.
779+
780+COMMAND OPTIONS
781+---------------
782+
783+**new**
784+ Creates a new task.
785+
786+
787+**show <tid>**
788+ Display task with <tid> task ID.
789+
790+
791+**edit <tid>**
792+ Opens the GUI editor for the task with <tid> task ID.
793+
794+
795+**delete <tid>**
796+ Removes task with <tid> task ID.
797+
798+**list [all|today|<filter>|<tag>]**
799+ List tasks corresponding to the given attributes.
800+
801+**search <expression>**
802+ Search tasks corresponding to <expression>. Read the documentation from GTG's
803+ help to know more about the search query syntax.
804+
805+**count [all|today|<filter>|<tag>]**
806+ Outputs the task count for all the task corresponding to the given attributes.
807+
808+**summary [all|today|<filter>|<tag]**
809+ Report how many tasks starting/due each day.
810+
811+**postpone <tid> <date>**
812+ Updates the start date of the task with <tid> task id to <date>.
813+
814+**close <tid>**
815+ Sets state of task identified by <tid> to done.
816+
817+**browser [hide|show]**
818+ Hides or shows the task browser window.
819+
820+SEE ALSO
821+--------
822+
823+gtg (1)
824+
825+BUGS
826+----
827+
828+Please report any bug you may experience to the **GTG** Developers, that can
829+be reached at https://launchpad.net/gtg
830+
831+COPYRIGHT
832+---------
833+
834+This manual page is Copyright 2012 Bertrand Rousseau
835+<bertrand.rousseau@gmail.com>. Permission is granted to copy, distribute
836+and/or modify this document under the terms of the GNU General Public License,
837+Version 3 or any later version published by the Free Software Foundation.
838
839=== added file 'docs/source/man/gtg.rst'
840--- docs/source/man/gtg.rst 1970-01-01 00:00:00 +0000
841+++ docs/source/man/gtg.rst 2014-03-14 20:44:47 +0000
842@@ -0,0 +1,62 @@
843+gtg(1)
844+======
845+
846+SYNOPSIS
847+--------
848+
849+**gtg [options]**
850+
851+DESCRIPTION
852+-----------
853+
854+Getting Things GNOME! is a personal tasks and TODO-list items organizer for the
855+GNOME desktop environment inspired by the Getting Things Done (GTD)
856+methodology. GTG is designed with flexibility, adaptability, and ease of use in
857+mind so it can be used as more than just GTD software.
858+
859+
860+GTG is intended to help you track everything you need to do and need to know,
861+from small tasks to large projects.
862+
863+GTG uses a very handy system for creating and editing tasks. The task editor
864+can automatically recognize metadata such as tags and subtasks through the use
865+of a very simple syntax.
866+
867+OPTIONS
868+-------
869+
870+**-b, --boot-test**
871+ Boot-up only. Causes gtg to exit immediately after completing the first
872+ iteration of the main loop. Useful for boot performance testing work.
873+
874+**-c, --no-crash-handler**
875+ Disable crash handler. Causes the Apport automatic crash reporting utility
876+ to not be invoked when gtg crashes; instead it will print out a normal
877+ python backtrace. This can be useful for debugging crash bugs, or if the
878+ crash handler is misbehaving.
879+
880+**-d, --debug**
881+ Debug mode. Prints extra information to the console which may be useful for
882+ understanding and reporting bugs.
883+
884+**-h, --help**
885+ Prints some information about gtg's usage and options.
886+
887+**-l, --local-liblarch**
888+ Use local liblarch. Look for the liblarch python library in ../liblarch.
889+ This is mainly useful for testing purpose.
890+
891+**-t TITLE, --title=TITLE**
892+ Set the window's title to TITLE.
893+
894+**-v, --version**
895+ Prints version and exits.
896+
897+COPYRIGHT
898+---------
899+
900+This manual page is Copyright 2009, 2012 Luca Falavigna <dktrkranz@debian.org>
901+and Bertrand Rousseau <bertrand.rousseau@gmail.com>. Permission is granted
902+to copy, distribute and/or modify this document under the terms of the GNU
903+General Public License, Version 3 or any later version published by the Free
904+Software Foundation.
905
906=== added file 'docs/source/man/gtg_new_task.rst'
907--- docs/source/man/gtg_new_task.rst 1970-01-01 00:00:00 +0000
908+++ docs/source/man/gtg_new_task.rst 2014-03-14 20:44:47 +0000
909@@ -0,0 +1,42 @@
910+gtg_new_task(1)
911+===============
912+
913+SYNOPSIS
914+--------
915+
916+**gtg_new_task** [-h | --help] [-i | --interactive]
917+
918+DESCRIPTION
919+-----------
920+
921+**gtg_new_task** creates a new task in the Getting Things GNOME! organizer for
922+the GNOME desktop via the DBUS message bus. Getting Things GNOME! must be
923+running for the command to work.
924+
925+Options
926+~~~~~~~
927+
928+**[-h | --help]**
929+ Shows a brief usage help.
930+
931+**[-i | --interactive]**
932+ Accepts a task description via stdin.
933+
934+SEE ALSO
935+--------
936+
937+gtg (1)
938+
939+BUGS
940+----
941+
942+Please report any bug you may experience to the **GTG** Developers, that can be
943+reached at https://launchpad.net/gtg
944+
945+COPYRIGHT
946+---------
947+
948+This manual page is Copyright2009 Luca Invernizzi <invernizzi.l@gmail.com>.
949+Permission is granted to copy, distribute and/or modify this document under the
950+terms of the GNU General Public License, Version 3 or any later version
951+published by the Free Software Foundation.
952
953=== renamed directory 'doc/release_notes' => 'docs/source/releases'
954=== added file 'docs/source/releases/v0.1.9.rst'
955--- docs/source/releases/v0.1.9.rst 1970-01-01 00:00:00 +0000
956+++ docs/source/releases/v0.1.9.rst 2014-03-14 20:44:47 +0000
957@@ -0,0 +1,49 @@
958+v0.1.9: "Five curtain calls"
959+============================
960+
961+The whole GTG development team is pleased to announce that after months of hard
962+work, we've just released a new version of Getting Things GNOME!, codenamed
963+"Five curtain calls". Don't even hesitate, rush on our Launchpad project page
964+and download the archive or, if you prefer, download the packaged version for
965+Debian and Ubuntu from our PPA!
966+
967+The GTG 0.1.9 release is a beta release for the upcoming 0.2, which is due very
968+soon. It packs a *huge amount* of new features, among them:
969+
970+* support for plugins, thanks to Paulo Cabido's Google Summer of Code
971+* already 6 plugins available:
972+
973+ - Remember the milk synchronization
974+ - hamster integration
975+ - bugzilla
976+ - geolocation
977+ - tomboy
978+ - notification area
979+
980+* improved performances
981+* support for tag groups
982+* improved editor UI
983+* fuzzy due dates
984+
985+The 0.2 release will also fixes not less than 99 bugs! Thanks to our new GTG
986+developers (Paulo Cabido, Luca Invernizzi and Kevin Mehall), a terrific work
987+has been achieved for 0.1.9!
988+
989+As this is a beta release, we kindly ask every adventurous testers to help us
990+make the soon-to-come 0.2 a great release by reporting any unnoticed bug to our
991+project page.
992+
993+Unfortunately, this release also comes with 2 unresolved bugs that worth mentioning:
994+
995+* A bug with intel GPU drivers in Ubuntu 9.10 distributions may prevent tag
996+ color squares from appearing. It seems that upgrading to a newest version of
997+ those drivers fixes that. More info on the bug page.
998+* A GTK bug causes some errors to show on standard output if you run GTG from a
999+ terminal, this bug has been reported upstream.
1000+
1001+Those 2 bugs are caused by upstream bugs and will only be corrected once the
1002+related apps will be fixed, which should happen anytime.
1003+
1004+Anyway, we'll soon come back with a new, shiny, a full-featured 0.2 release
1005+that will sure rock. Until then, we hope you'll like GTG 0.1.9 as much as we
1006+do!
1007
1008=== added file 'docs/source/releases/v0.1.rst'
1009--- docs/source/releases/v0.1.rst 1970-01-01 00:00:00 +0000
1010+++ docs/source/releases/v0.1.rst 2014-03-14 20:44:47 +0000
1011@@ -0,0 +1,37 @@
1012+v0.1: "Just 5 minutes more"
1013+===========================
1014+
1015+Hi, everyone!
1016+
1017+The first official release of Getting Things Gnome!, GTG "Just 5
1018+minutes more" 0.1, is out!
1019+
1020+GTG is a personal organizer for the GNOME desktop environment, it
1021+focuses on ease of use and flexibility, while keeping things simple.
1022+
1023+This release is our first. So far GTG supports:
1024+
1025+ - task edition using a text editor, almost no form fields!
1026+ - fast consecutive tasks creation
1027+ - tags to sort tasks
1028+ - color for tags, to easily differenciate tagged tasks
1029+
1030+There are very few differences with the release candidate we published
1031+last week.
1032+
1033+The software is still a bit in a proof-of-concept state, since in the
1034+future we want to test a lot of different functionalities. We'd really
1035+like to know what you like and dislike in GTG, so we can organize
1036+future work and do what's the most important: provide a program that
1037+people love to use because it makes their life better ;-)
1038+
1039+Tarballs with the source code are available on our launchpad project
1040+page: https://launchpad.net/gtg/+download
1041+Packages for Ubuntu are also available on our PPA:
1042+https://launchpad.net/~gtg/+archive/ppa
1043+
1044+Now, grab it and tell us what you think! Don't hesitate to discuss
1045+with us on our mailing-lists, on IRC (#gtg on GimpNET), or to post
1046+bugs on launchpad!
1047+
1048+Enjoy!
1049
1050=== added file 'docs/source/releases/v0.2.2.rst'
1051--- docs/source/releases/v0.2.2.rst 1970-01-01 00:00:00 +0000
1052+++ docs/source/releases/v0.2.2.rst 2014-03-14 20:44:47 +0000
1053@@ -0,0 +1,16 @@
1054+v0.2.2: Protector
1055+=================
1056+
1057+After just one month since the last release, the GTG development team is
1058+pleased to announce the release of Getting things GNOME! 0.2.2, codename
1059+"Protector". This one is the last of the 0.2.X serie: we have already started
1060+breaking everything to make GTG faster and better.
1061+
1062+Aside from the tons of bug fixes that ship with every release, this one
1063+features a brand new preference dialog and integration with Docky.
1064+
1065+On the new plug-ins side, you'll get one to send tasks via email, another that
1066+can import tasks from JSON, and the last one that can delete old closed tasks
1067+automatically (which makes GTG faster if you have a huge amount of tasks). The
1068+RememberTheMilk plugin is now stable and features tags synchronization.
1069+Finally, we support the libindicator library, making GTG "Ubuntu Lucid" ready.
1070
1071=== renamed file 'doc/release_notes/0.3.1.txt' => 'docs/source/releases/v0.3.1.rst'
1072--- doc/release_notes/0.3.1.txt 2013-11-24 14:48:09 +0000
1073+++ docs/source/releases/v0.3.1.rst 2014-03-14 20:44:47 +0000
1074@@ -1,72 +1,108 @@
1075-Getting Things GNOME! 0.3.1 - Release Note - 24/11/2013
1076-=====================================================
1077+v0.3.1
1078+======
1079+
1080+Released: 24/11/2013
1081
1082 After about 12 months of very active development, the GTG team is proud to
1083 announce the release of Getting Things GNOME! 0.3.1!
1084
1085 This version is packed with an amazing amount of bug fixes and many novelties!
1086-The goal with 0.3.1 was to refactor several of it’s existing functionalities and improve the codebase. A lot of time was spent on improving the plugins. In the process we have fixed lots of bugs and have made a few feature enhancements!
1087+The goal with 0.3.1 was to refactor several of it’s existing functionalities
1088+and improve the codebase. A lot of time was spent on improving the plugins. In
1089+the process we have fixed lots of bugs and have made a few feature
1090+enhancements!
1091
1092 What's new in 0.3.1?
1093-------------------
1094-
1095-Here's an (incomplete) list of changes:
1096-
1097- - Fixed Hamster Plugin: The Hamster plugin which was used to start a GTG Task as a Hamster activity was not working for some time. It has been fixed. Now tasks can be started in Hamster and they can also be stopped from GTG itself. When a task is closed or deleted, it’s corresponding hamster activity will be stopped.
1098- - GTGOnline!: Parin Porecha started developing a web application for GTG (currently it is named GTGOnline!) as a part of his Google Summer of Code 2013 project [2]. It is up and running [3]. It not only supports the current features of GTG, but also Task Sharing! You can now add users to groups and share your tasks with them ! He has also written a synchronization backend to sync tasks and tags with GTGOnline!
1099- - Port to python3 and gtk3: Xuan Hu ported GTG to python3 and gtk3 as a part of his Google Summer of Code 2013 project [4]. His branch [5] is almost stable and is currently being tested
1100- - PEP8ification of the codebase: There were more than 10,000 PEP8 errors in the codebase which have now been removed.
1101- - New task keyboard shortcut: Working on another application and need to create a task ?
1102-Now it is possible via a keyboard shortcut. Configure it in the settings, and on pressing the shortcut, new task editor will open up !
1103- - Translations: all translations were updated
1104- - Stability: we've fixed many bugs causing crashes during this release.
1105- - Various other fixes:
1106- - Updated and improved plugins: notification area icon, urgency color,
1107- export, ...
1108- - 7 new feature enhancements
1109-
1110-You can see the complete list of changes in our CHANGELOG:
1111-https://bazaar.launchpad.net/~gtg/gtg/trunk/view/1332/CHANGELOG
1112+--------------------
1113+
1114+Here's an (incomplete) list of changes.
1115+You can see the complete list of changes in our CHANGELOG_.
1116+
1117+.. _CHANGELOG: https://bazaar.launchpad.net/~gtg/gtg/trunk/view/1332/CHANGELOG
1118+
1119+Fixed Hamster Plugin
1120+~~~~~~~~~~~~~~~~~~~~
1121+
1122+The Hamster plugin which was used to start a GTG Task as a Hamster activity was
1123+not working for some time. It has been fixed. Now tasks can be started in
1124+Hamster and they can also be stopped from GTG itself. When a task is closed or
1125+deleted, it’s corresponding hamster activity will be stopped.
1126+
1127+GTGOnline!
1128+~~~~~~~~~~
1129+
1130+Parin Porecha started developing a web application for GTG (currently it is
1131+named GTGOnline!) as a part of `his Google Summer of Code 2013 project`_. It
1132+is `up and running`_. It not only supports the current features of GTG, but
1133+also Task Sharing! You can now add users to groups and share your tasks with
1134+them! He has also written a synchronization backend to sync tasks and tags
1135+with GTGOnline!
1136+
1137+.. _`his Google Summer of Code 2013 project`: https://wiki.gnome.org/Outreach/SummerOfCode/2013/Projects/ParinPorecha_GTGOnline
1138+.. _`up and running`: http://gtgonline-parinporecha.rhcloud.com/
1139+
1140+Port to python3 and gtk3
1141+~~~~~~~~~~~~~~~~~~~~~~~~
1142+
1143+Xuan Hu `ported GTG to python3 and gtk3`_ as a part of his Google Summer of
1144+Code 2013 project. `Xuan's branch`_ is almost stable and is currently being tested
1145+
1146+.. _`ported GTG to python3 and gtk3`: https://wiki.gnome.org/Outreach/SummerOfCode/2013/Projects/XuanHu_PortingGTG
1147+.. _`Xuan's branch`: https://code.launchpad.net/~huxuan/gtg/port-to-gtk3-py3/
1148+
1149+PEP8ification of the codebase
1150+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1151+
1152+There were more than 10,000 PEP8 errors in the codebase which have now been removed.
1153+
1154+New task keyboard shortcut
1155+~~~~~~~~~~~~~~~~~~~~~~~~~~
1156+
1157+Working on another application and need to create a task?
1158+
1159+Now it is possible via a keyboard shortcut. Configure it in the settings, and
1160+on pressing the shortcut, new task editor will open up!
1161+
1162+Translations
1163+~~~~~~~~~~~~
1164+
1165+All translations were updated.
1166+
1167+Stability
1168+~~~~~~~~~
1169+
1170+We've fixed many bugs causing crashes during this release.
1171+
1172+Various other fixes
1173+~~~~~~~~~~~~~~~~~~~
1174+
1175+* Updated and improved plugins: notification area icon, urgency color, export, ...
1176+* 7 new feature enhancements
1177+
1178+
1179+Thank You
1180+---------
1181
1182 The GTG developer team would like to thank and congratulate all the great people
1183 which contributed to this version. You did an amazing work! Thanks also to our
1184 many new contributors which joined us during this development cycle!
1185
1186+
1187 What's next?
1188 ------------
1189
1190-Xuan Hu ported GTG to python3 and GTK3 as a part of his GSoC project. He has done a great job, and his branch is almost stable.
1191-During the next months, we plan to test his branch and fix the remaining bugs so that it can be merged for release 0.3.2
1192-Porting to GTK3 has also paved the way for upcoming redesign of GTG [6]!
1193+Xuan Hu ported GTG to python3 and GTK3 as a part of his GSoC project. He has
1194+done a great job, and his branch is almost stable. During the next months, we
1195+plan to test his branch and fix the remaining bugs so that it can be merged for
1196+release 0.3.2 Porting to GTK3 has also paved the way for upcoming
1197+`redesign of GTG`_!
1198
1199 We also have many other projects in the pipeline, most notably:
1200
1201- - collaborative task management, a project which has been started by
1202- Izidor Matusov during Google Summer of Code 2012 [10].
1203- - Testing and merging GTGOnline! synchronization backend [3] with the trunk.
1204-
1205-
1206-About Getting Things GNOME!
1207----------------------------
1208-
1209-GTG is a personal task organizer for the GNOME desktop inspired by the Getting
1210-Things Done (GTD) methodology. GTG is designed with flexibility, adaptability,
1211-and ease of use in mind so it can be used as more than just GTD software.
1212-
1213-GTG is intended to help you track everything you need to do and need to know,
1214-from small tasks to large projects.
1215-
1216-Links:
1217-------
1218-
1219- [1] Screenshots: http://gtgnome.net/screenshots
1220- [2] Parin Porecha’s GSoC (web application for Getting Things Gnome!): https://wiki.gnome.org/SummerOfCode2013/Projects/ParinPorecha_GTGOnline
1221- [3] Parin Porecha’s GTGOnline! sync backend branch: https://code.launchpad.net/~parinporecha/gtg/backend_gtgonline
1222- [3] Link to GTG’s web application (GTGOnline!): http://gtgonline-parinporecha.rhcloud.com/
1223- [4] Xuan Hu’s GSoC (Porting GTG and Liblarch to Gtk3 and Python3): https://wiki.gnome.org/SummerOfCode2013/Projects/XuanHu_PortingGTG
1224- [5] Xuan Hu’s python3 and gtk3 port branch: https://code.launchpad.net/~huxuan/gtg/port-to-gtk3-py3/
1225- [6] GTG design page: https://live.gnome.org/gtg/Design
1226- [7] The project's blog: http://gtgnome.net/
1227- [8] The project's page on launchpad: https://launchpad.net/gtg
1228- [9] The project's page on the GNOME wiki: https://live.gnome.org/gtg/
1229- [10] Izidor Matusov's GSoC (collaborative GTG): https://live.gnome.org/SummerOfCode2012/Projects/IzidorMatusov_CollaborativeGTG
1230+* `collaborative task management`_, a project which has been started by
1231+ Izidor Matusov during Google Summer of Code 2012.
1232+* Testing and merging GTGOnline! `synchronization backend`_ with the trunk.
1233+
1234+.. _`redesign of GTG`: https://wiki.gnome.org/Apps/gtg/Design/
1235+.. _`collaborative task management`: https://wiki.gnome.org/Outreach/SummerOfCode/2012/Projects/IzidorMatusov_CollaborativeGTG
1236+.. _`synchronization backend`: https://code.launchpad.net/~parinporecha/gtg/backend_gtgonline
1237
1238=== removed file 'gtg'
1239--- gtg 2013-11-25 02:37:46 +0000
1240+++ gtg 1970-01-01 00:00:00 +0000
1241@@ -1,92 +0,0 @@
1242-#!/usr/bin/env python3
1243-# -*- coding:utf-8 -*-
1244-# -----------------------------------------------------------------------------
1245-# Getting Things GNOME! - A personal organizer for the GNOME desktop
1246-# Copyright (c) 2008-2013 Lionel Dricot & Bertrand Rousseau
1247-#
1248-# This program is free software: you can redistribute it and/or modify it under
1249-# the terms of the GNU General Public License as published by the Free Software
1250-# Foundation, either version 3 of the License, or (at your option) any later
1251-# version.
1252-#
1253-# This program is distributed in the hope that it will be useful, but WITHOUT
1254-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
1255-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
1256-# details.
1257-#
1258-# You should have received a copy of the GNU General Public License along with
1259-# this program. If not, see <http://www.gnu.org/licenses/>.
1260-# -----------------------------------------------------------------------------
1261-
1262-""" Main script which parse arguments and launch GTG """
1263-
1264-import sys
1265-
1266-from optparse import OptionParser
1267-from gi.repository.Gdk import Screen
1268-
1269-from GTG import info
1270-from GTG.tools.import_liblarch import import_liblarch
1271-
1272-
1273-def x_is_running():
1274- """ Return True if GTG could be displayed on the current XServer """
1275- try:
1276- if Screen().get_default().get_display():
1277- return True
1278- except RuntimeError as exc:
1279- print(exc)
1280- return False
1281-
1282-
1283-def main():
1284- """ Parse arguments and run GTG
1285-
1286- Importing GTG.gtg must be done after importing and setting up paths
1287- for Liblarch """
1288-
1289- parser = OptionParser()
1290- parser.add_option('-b', '--boot-test', action='store_true',
1291- dest='boot_test', help="Exit after completing \
1292- boot-up actions",
1293- default=False)
1294- parser.add_option('-c', '--no-crash-handler', action='store_true',
1295- dest='no_crash_handler', help="Disable the automatic \
1296- crash handler",
1297- default=False)
1298- parser.add_option('-d', '--debug', action='store_true', dest='debug',
1299- help="Enable debug output", default=False)
1300- parser.add_option('-l', '--local-liblarch', action='store_true',
1301- dest='local_liblarch', default=False,
1302- help="Use local liblarch located in ../liblarch if it is\
1303- posible")
1304- parser.add_option('-t', '--title', action='store',
1305- help="Use special title for windows' title")
1306- parser.add_option('-v', '--version', action='store_true',
1307- dest='print_version', help="Print GTG's version number",
1308- default=False)
1309- (options, args) = parser.parse_args()
1310-
1311- if options.title is not None:
1312- info.NAME = options.title
1313-
1314- if options.print_version:
1315- print("GTG (Getting Things GNOME!)", info.VERSION)
1316- print()
1317- print("For more information:", info.URL)
1318- sys.exit(0)
1319-
1320- elif not x_is_running():
1321- print("Could not open X display")
1322- sys.exit(1)
1323-
1324- elif import_liblarch(options.local_liblarch):
1325- from GTG import gtg
1326- sys.exit(gtg.main(options, args))
1327-
1328-
1329-if __name__ == "__main__":
1330- try:
1331- main()
1332- except KeyboardInterrupt:
1333- sys.exit(1)
1334
1335=== removed file 'profile.py'
1336--- profile.py 2013-11-25 02:37:46 +0000
1337+++ profile.py 1970-01-01 00:00:00 +0000
1338@@ -1,36 +0,0 @@
1339-#!/usr/bin/env python3
1340-# -*- coding: utf-8 -*-
1341-# -----------------------------------------------------------------------------
1342-# Getting Things GNOME! - a personal organizer for the GNOME desktop
1343-# Copyright (c) 2008-2013 - Lionel Dricot & Bertrand Rousseau
1344-#
1345-# This program is free software: you can redistribute it and/or modify it under
1346-# the terms of the GNU General Public License as published by the Free Software
1347-# Foundation, either version 3 of the License, or (at your option) any later
1348-# version.
1349-#
1350-# This program is distributed in the hope that it will be useful, but WITHOUT
1351-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
1352-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
1353-# details.
1354-#
1355-# You should have received a copy of the GNU General Public License along with
1356-# this program. If not, see <http://www.gnu.org/licenses/>.
1357-# -----------------------------------------------------------------------------
1358-
1359-import GTG.gtg
1360-import cProfile
1361-import pstats
1362-from optparse import OptionParser
1363-
1364-parser = OptionParser()
1365-parser.add_option("-d", "--debug",
1366- action="store_true", dest="debug", help="enable debug output")
1367-(options, args) = parser.parse_args()
1368-
1369-cProfile.run("GTG.gtg.main(options, args)", filename="gtg.profile")
1370-
1371-p = pstats.Stats('gtg.profile')
1372-p.sort_stats('cumulative').print_stats(15)
1373-p.sort_stats('time').print_stats(15)
1374-p.sort_stats('calls').print_stats(15)
1375
1376=== removed file 'scripts/build_integrity.py'
1377--- scripts/build_integrity.py 2013-08-28 20:13:59 +0000
1378+++ scripts/build_integrity.py 1970-01-01 00:00:00 +0000
1379@@ -1,69 +0,0 @@
1380-#!/usr/bin/env python3
1381-# -*- coding: UTF-8 -*-
1382-# Copyright © 2012 Izidor Matušov <izidor.matusov@gmail.com
1383-#
1384-# This program is free software: you can redistribute it and/or modify
1385-# it under the terms of the GNU General Public License as published by
1386-# the Free Software Foundation, either version 3 of the License, or
1387-# (at your option) any later version.
1388-#
1389-# This program is distributed in the hope that it will be useful,
1390-# but WITHOUT ANY WARRANTY; without even the implied warranty of
1391-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1392-# GNU General Public License for more details.
1393-#
1394-# You should have received a copy of the GNU General Public License
1395-# along with this program. If not, see <http://www.gnu.org/licenses/>.
1396-
1397-import os
1398-import sys
1399-import re
1400-
1401-exclude_list = ['data/.*', 'po/.*', 'doc/.*', 'AUTHORS', 'CHANGELOG',
1402- 'LICENSE', 'README', 'gtcli_bash_completion', 'gtg.desktop',
1403- 'org.gnome.GTG.service', 'setup.py',
1404- ]
1405-
1406-# Build MANIFEST and also run build action
1407-if os.system("python setup.py sdist > /dev/null") != 0:
1408- print("sdist operation failed")
1409- sys.exit(1)
1410-
1411-if os.system("python setup.py build > /dev/null") != 0:
1412- print("build operation failed")
1413- sys.exit(1)
1414-
1415-manifest_files = []
1416-
1417-for f in open('MANIFEST', 'r'):
1418- f = f.strip()
1419- if f == "" or f.startswith('#'):
1420- continue
1421- f = os.path.normpath(f)
1422-
1423- exclude = False
1424- for ex in exclude_list:
1425- if re.match(ex, f):
1426- exclude = True
1427- break
1428- if exclude:
1429- continue
1430-
1431- manifest_files.append(f)
1432-
1433-build_files = []
1434-for root, dirs, files in os.walk('build/'):
1435- for f in files:
1436- filename = os.path.join(root, f)
1437- filename = filename.split('/', 1)[1]
1438- if filename.startswith('lib.') or filename.startswith('scripts-'):
1439- filename = filename.split('/', 1)[1]
1440-
1441- build_files.append(filename)
1442-
1443-missing_files = list(set(manifest_files) - set(build_files))
1444-if len(missing_files) > 0:
1445- missing_files.sort()
1446- print("Missing build files:")
1447- print("\n".join("\t%s" % f for f in missing_files))
1448- sys.exit(1)
1449
1450=== modified file 'scripts/debug.sh'
1451--- scripts/debug.sh 2014-03-09 14:48:26 +0000
1452+++ scripts/debug.sh 2014-03-14 20:44:47 +0000
1453@@ -9,26 +9,20 @@
1454 args="--no-crash-handler"
1455 dataset="default"
1456 norun=0
1457-profile=0
1458 title=""
1459
1460 # Create execution-time data directory if needed
1461 mkdir -p tmp
1462
1463 # Interpret arguments
1464-while getopts bdlnps: o
1465+while getopts bdns: o
1466 do case "$o" in
1467 b) args="$args --boot-test";;
1468 d) args="$args -d";;
1469- # Request usage local liblarch if it is possible
1470- l) args="$args -l"
1471- liblarchArgs="$liblarchArgs -l"
1472- ;;
1473 n) norun=1;;
1474- p) profile=1;;
1475 s) dataset="$OPTARG";;
1476 t) title="$OPTARG";;
1477- [?]) echo >&2 "Usage: $0 [-s dataset] [-t title] [-b] [-d] [-l] [-n] [-p]"
1478+ [?]) echo >&2 "Usage: $0 [-s dataset] [-t title] [-b] [-d] [-l] [-n]"
1479 exit 1;;
1480 esac
1481 done
1482@@ -57,22 +51,5 @@
1483 fi
1484
1485 if [ $norun -eq 0 ]; then
1486- # Check for liblarch
1487- if ! ./GTG/tools/import_liblarch.py $liblarchArgs; then
1488- echo
1489- echo -n "Download latest liblarch? [y/N] "
1490- read answer
1491- if [ "$answer" = "y" -o "$answer" = "Y" -o "$answer" = "yes" ]; then
1492- git clone https://github.com/liblarch/liblarch ../liblarch
1493- else
1494- exit 1
1495- fi
1496- fi
1497-
1498- if [ $profile -eq 1 ]; then
1499- python -m cProfile -o gtg.prof ./gtg $args -t "$title"
1500- python ./scripts/profile_interpret.sh
1501- else
1502- ./gtg $args -t "$title"
1503- fi
1504+ ./GTG/gtg $args -t "$title"
1505 fi
1506
1507=== removed file 'scripts/man_page_viewer'
1508--- scripts/man_page_viewer 2010-01-05 09:34:49 +0000
1509+++ scripts/man_page_viewer 1970-01-01 00:00:00 +0000
1510@@ -1,12 +0,0 @@
1511-#!/bin/bash
1512-
1513-if [ ! $# -eq 1 ]; then
1514- echo "usage: $0 <man_file_path>"
1515- exit 1
1516-fi
1517-if [ ! -x "`which groff`" ]; then
1518- echo "please install groff"
1519- exit 2
1520-fi
1521-
1522-groff -Tascii -man $1 | more
1523
1524=== removed file 'scripts/profile_interpret.sh'
1525--- scripts/profile_interpret.sh 2013-08-28 20:13:59 +0000
1526+++ scripts/profile_interpret.sh 1970-01-01 00:00:00 +0000
1527@@ -1,4 +0,0 @@
1528-#!/usr/bin/env python3
1529-import pstats
1530-p = pstats.Stats('gtg.prof')
1531-p.strip_dirs().sort_stats("cumulative").print_stats(20)
1532
1533=== modified file 'setup.py'
1534--- setup.py 2014-02-01 07:53:21 +0000
1535+++ setup.py 2014-03-14 20:44:47 +0000
1536@@ -18,222 +18,174 @@
1537 # this program. If not, see <http://www.gnu.org/licenses/>.
1538 # -----------------------------------------------------------------------------
1539
1540-from distutils.core import setup
1541-from distutils.command.install_data import install_data
1542+from distutils.core import setup
1543+from glob import glob
1544 from subprocess import call
1545-
1546-import glob
1547 import os
1548+import sys
1549
1550 from GTG import info
1551
1552-### CONSTANTS ################################################################
1553-
1554-HELP_DIR = "share/help"
1555-GLOBAL_ICON_DIR = "share/icons"
1556-
1557-### TOOLS ####################################################################
1558-
1559-def create_icon_list():
1560- fileList = []
1561- rootdir = "data/icons"
1562- for root, subFolders, files in os.walk(rootdir):
1563- dirList = []
1564- for file in files:
1565- if file.endswith(".png") or file.endswith(".svg"):
1566- dirList.append(os.path.join(root, file))
1567- if len(dirList)!=0:
1568- newroot = root.replace(rootdir + "/", "")
1569- fileList.append((os.path.join(GLOBAL_ICON_DIR, newroot), dirList))
1570- return fileList
1571-
1572-
1573-def create_userdoc_list():
1574- fileList = []
1575- rootdir = "doc/userdoc"
1576- for root, subFolders, files in os.walk(rootdir):
1577- dirList = []
1578- for file in files:
1579- dirList.append(os.path.join(root, file))
1580- if len(dirList)!=0:
1581- comps = root.split(os.sep)
1582- prefix = os.path.join(comps[0], comps[1], comps[2])+os.sep
1583- if root != prefix[:-1]:
1584- newroot = root.replace(prefix, "")
1585+
1586+def find_packages():
1587+ """ Generate list of all packages """
1588+ packages = []
1589+ for package, __, files in os.walk('GTG'):
1590+ # Package has to have init file
1591+ if '__init__.py' not in files:
1592+ continue
1593+ # Convert filepath to package name
1594+ package = package.replace(os.path.sep, '.')
1595+ packages.append(package)
1596+ return packages
1597+
1598+
1599+def find_package_data():
1600+ """ Generate list of data files within a package """
1601+ packages = {
1602+ package.replace('.', os.path.sep) for package in find_packages()}
1603+ package_data = {}
1604+
1605+ for folder, __, files in os.walk('GTG'):
1606+ # Find package
1607+ closest_package = folder
1608+ while closest_package and closest_package not in packages:
1609+ # Try one level up
1610+ closest_package = os.path.dirname(closest_package)
1611+
1612+ if not closest_package:
1613+ continue
1614+
1615+ allowed_extensions = [
1616+ '', '.gtg-plugin', '.png', '.svg', '.ui', '.html', '.tex', '.txt']
1617+ is_this_package = folder == closest_package
1618+ if not is_this_package:
1619+ allowed_extensions.append('.py')
1620+
1621+ for filename in files:
1622+ ext = os.path.splitext(filename)[-1]
1623+ if ext not in allowed_extensions:
1624+ continue
1625+
1626+ # Find path relative to package
1627+ filename = os.path.join(folder, filename)
1628+ assert filename.startswith(closest_package)
1629+ filename = filename[len(closest_package + os.path.sep):]
1630+
1631+ # Assign data file to package name
1632+ package_name = closest_package.replace(os.path.sep, '.')
1633+ if package_name in package_data:
1634+ package_data[package_name].append(filename)
1635 else:
1636- newroot = ""
1637- newroot = os.path.join(HELP_DIR, comps[2], "gtg", newroot)
1638- fileList.append((newroot, dirList))
1639- fileList.append('doc/release_notes/0.3.1.txt')
1640- return fileList
1641-
1642-
1643-def create_data_files():
1644+ package_data[package_name] = [filename]
1645+
1646+ return package_data
1647+
1648+
1649+def compile_mo_files():
1650+ """ Compile all .po files into .mo files """
1651+ mo_files = []
1652+ mo_dir = os.path.join('build', 'po')
1653+ for po_file in glob('po/*.po'):
1654+ lang = os.path.splitext(os.path.basename(po_file))[0]
1655+ mo_file = os.path.join(mo_dir, lang, 'gtg.mo')
1656+ target_dir = os.path.dirname(mo_file)
1657+ if not os.path.isdir(target_dir):
1658+ os.makedirs(target_dir)
1659+
1660+ try:
1661+ return_code = call(['msgfmt', '-o', mo_file, po_file])
1662+ except OSError:
1663+ sys.stderr.write(
1664+ 'Translation not available, please install gettext\n')
1665+ break
1666+
1667+ if return_code:
1668+ raise Warning('Error when building locales')
1669+ continue
1670+
1671+ install_folder = os.path.join('share', 'locale', lang, 'LC_MESSAGES')
1672+ mo_files.append((install_folder, [mo_file]))
1673+
1674+ return mo_files
1675+
1676+
1677+def find_icons(src_folder, dest_folder, allowed_extensions):
1678+ """ Find all icons in the folder """
1679+ data_list = []
1680+
1681+ for folder, __, files in os.walk(src_folder):
1682+ assert folder.startswith(src_folder)
1683+ install_folder = dest_folder + folder[len(src_folder):]
1684+ file_list = []
1685+ for filename in files:
1686+ ext = os.path.splitext(filename)[-1]
1687+ if ext in allowed_extensions:
1688+ filename = os.path.join(folder, filename)
1689+ file_list.append(filename)
1690+
1691+ if file_list:
1692+ data_list.append((install_folder, file_list))
1693+
1694+ return data_list
1695+
1696+
1697+def find_user_help():
1698+ """ Find all files for user help """
1699+ help_files = []
1700+
1701+ for folder, __, files in os.walk('docs/userdoc'):
1702+ folders = folder.split(os.path.sep)[2:]
1703+ if not folders:
1704+ continue
1705+ folders.insert(1, 'gtg')
1706+ install_folder = os.path.join('share', 'help', *folders)
1707+
1708+ help_files.append((
1709+ install_folder,
1710+ [os.path.join(folder, filename) for filename in files],
1711+ ))
1712+
1713+ return help_files
1714+
1715+
1716+def find_data_files():
1717+ """ Generate list of data files for installing in share folder """
1718 data_files = []
1719- # icons
1720- icons = create_icon_list()
1721- data_files.extend(icons)
1722- # gtg .desktop icon
1723- data_files.append(('share/icons/hicolor/16x16/apps',
1724- ['data/icons/hicolor/16x16/apps/gtg.png']))
1725- data_files.append(('share/icons/hicolor/22x22/apps',
1726- ['data/icons/hicolor/22x22/apps/gtg.png']))
1727- data_files.append(('share/icons/hicolor/24x24/apps',
1728- ['data/icons/hicolor/24x24/apps/gtg.png']))
1729- data_files.append(('share/icons/hicolor/32x32/apps',
1730- ['data/icons/hicolor/32x32/apps/gtg.png']))
1731- data_files.append(('share/icons/hicolor/scalable/apps',
1732- ['data/icons/hicolor/scalable/apps/gtg.svg']))
1733- # documentation
1734- helpfiles = create_userdoc_list()
1735- data_files.extend(helpfiles)
1736- # misc
1737- data_files.append(('share/applications', ['gtg.desktop']))
1738- data_files.append(('share/dbus-1/services', ['org.gnome.GTG.service']))
1739- data_files.append(('share/man/man1',
1740- ['doc/gtg.1', 'doc/gtcli.1', 'doc/gtg_new_task.1']))
1741-
1742- # bash completion
1743- data_files.append(('share/gtg/', ['gtcli_bash_completion']))
1744-
1745- # appdata file
1746- data_files.append(('share/appdata/', ['gtg.appdata.xml']))
1747+
1748+ # .mo files
1749+ data_files.extend(compile_mo_files())
1750+
1751+ # Icons
1752+ data_files.extend(
1753+ find_icons('data/icons', 'share/icons', ['.png', '.svg']))
1754+
1755+ # User docs
1756+ data_files.extend(find_user_help())
1757+
1758+ # Generate man files and include them
1759+ os.system('sphinx-build -b man docs/source build/docs')
1760+ data_files.append(('share/man/man1', glob('build/docs/*.1')))
1761+
1762+ # Misc files
1763+ data_files.extend([
1764+ ('share/applications', ['data/gtg.desktop']),
1765+ ('share/appdata/', ['data/gtg.appdata.xml']),
1766+ ('share/dbus-1/services', ['data/org.gnome.GTG.service']),
1767+ ('share/gtg/', ['data/gtcli_bash_completion']),
1768+ ])
1769+
1770 return data_files
1771
1772
1773-#### TRANSLATIONS(from pyroom setup.py) ######################################
1774-
1775-PO_DIR = 'po'
1776-MO_DIR = os.path.join('build', 'po')
1777-
1778-for po in glob.glob(os.path.join(PO_DIR, '*.po')):
1779- lang = os.path.basename(po[:-3])
1780- mo = os.path.join(MO_DIR, lang, 'gtg.mo')
1781- target_dir = os.path.dirname(mo)
1782- if not os.path.isdir(target_dir):
1783- os.makedirs(target_dir)
1784- try:
1785- return_code = call(['msgfmt', '-o', mo, po])
1786- except OSError:
1787- print('Translation not available, please install gettext')
1788- break
1789- if return_code:
1790- raise Warning('Error when building locales')
1791-
1792-
1793-class InstallData(install_data):
1794-
1795- def run(self):
1796- self.data_files.extend(self.find_mo_files())
1797- install_data.run(self)
1798-
1799- def find_mo_files(self):
1800- data_files = []
1801- for mo in glob.glob(os.path.join(MO_DIR, '*', 'gtg.mo')):
1802- lang = os.path.basename(os.path.dirname(mo))
1803- dest = os.path.join('share', 'locale', lang, 'LC_MESSAGES')
1804- data_files.append((dest, [mo]))
1805- return data_files
1806-
1807-### SETUP SCRIPT ##############################################################
1808-
1809-author = 'The GTG Team'
1810-
1811 setup(
1812- name = 'gtg',
1813- version = info.VERSION,
1814- url = info.URL,
1815- author = author,
1816- author_email = info.EMAIL,
1817- description = info.SHORT_DESCRIPTION,
1818- packages = [
1819- 'GTG',
1820- 'GTG.backends',
1821- 'GTG.backends.rtm',
1822- 'GTG.core',
1823- 'GTG.core.plugins',
1824- 'GTG.gtk',
1825- 'GTG.gtk.editor',
1826- 'GTG.gtk.browser',
1827- 'GTG.gtk.backends_dialog',
1828- 'GTG.gtk.backends_dialog.parameters_ui',
1829- 'GTG.tools',
1830- 'GTG.plugins',
1831- 'GTG.plugins.bugzilla',
1832- 'GTG.plugins.export',
1833- 'GTG.plugins.geolocalized_tasks',
1834- 'GTG.plugins.hamster',
1835- 'GTG.plugins.notification_area',
1836- 'GTG.plugins.task_reaper',
1837- 'GTG.plugins.send_email',
1838- 'GTG.plugins.tomboy',
1839- 'GTG.plugins.urgency_color',
1840- 'GTG.plugins.untouched_tasks',
1841- 'GTG.plugins.not_today',
1842- ],
1843- package_data = {
1844- 'GTG.core.plugins': ['pluginmanager.ui'],
1845- 'GTG.gtk': [
1846- 'preferences.ui',
1847- 'plugins.ui',
1848- 'deletion.ui',
1849- 'backends_dialog.ui',
1850- ],
1851- 'GTG.gtk.browser': ['taskbrowser.ui', 'modifytags_dialog.ui'],
1852- 'GTG.gtk.editor': ['taskeditor.ui'],
1853- 'GTG.plugins': [
1854- 'bugzilla.gtg-plugin',
1855- 'export.gtg-plugin',
1856- 'geolocalized-tasks.gtg-plugin',
1857- 'hamster.gtg-plugin',
1858- 'notification-area.gtg-plugin',
1859- 'task-reaper.gtg-plugin',
1860- 'send-email.gtg-plugin',
1861- 'tomboy.gtg-plugin',
1862- 'urgency-color.gtg-plugin',
1863- 'not-today.gtg-plugin',
1864- 'untouched-tasks.gtg-plugin',
1865- ],
1866- 'GTG.plugins.export': ['export.ui',
1867- './export_templates/description_pocketmod.py',
1868- './export_templates/description_sexy.py',
1869- './export_templates/description_simple.py',
1870- './export_templates/description_statusrpt.py',
1871- './export_templates/description_textual.py',
1872- './export_templates/graphics_pocketmod.svg',
1873- './export_templates/script_pocketmod',
1874- './export_templates/template_pocketmod.tex',
1875- './export_templates/template_sexy.html',
1876- './export_templates/template_simple.html',
1877- './export_templates/template_statusrpt.txt',
1878- './export_templates/template_textual.txt',
1879- './export_templates/thumbnail_pocketmod.png',
1880- './export_templates/thumbnail_sexy.png',
1881- './export_templates/thumbnail_simple.png',
1882- './export_templates/thumbnail_statusrpt.png',
1883- './export_templates/thumbnail_textual.png',
1884- ],
1885- 'GTG.plugins.geolocalized_tasks': ['geolocalized.ui',
1886- 'icons/hicolor/24x24/geolocalization.png',
1887- 'icons/hicolor/16x16/assign-location.png',
1888- 'icons/hicolor/svg/assign-location.svg',
1889- 'icons/hicolor/svg/geolocalization.svg'],
1890- 'GTG.plugins.tomboy': ['tomboy.ui'],
1891- 'GTG.plugins.hamster': ['prefs.ui',
1892- 'icons/hicolor/32x32/hamster-activity-start.png',
1893- 'icons/hicolor/32x32/hamster-activity-stop.png',
1894- 'icons/hicolor/svg/hamster-activity-start.svg',
1895- 'icons/hicolor/svg/hamster-activity-stop.svg'],
1896- 'GTG.plugins.task_reaper': ['reaper.ui'],
1897- 'GTG.plugins.notification_area': ['notification_area.ui',
1898- './data/icons/hicolor/22x22/apps/gtg_need_attention.png',
1899- './data/icons/ubuntu-mono-dark/22x22/apps/gtg_need_attention.svg',
1900- './data/icons/ubuntu-mono-light/22x22/apps/gtg_need_attention.svg',
1901- ],
1902- 'GTG.plugins.urgency_color': ['preferences.ui'],
1903- 'GTG.plugins.untouched_tasks': ['untouchedTasks.ui'],
1904- },
1905- data_files = create_data_files(),
1906- scripts=['gtg', 'gtcli', 'gtg_new_task'],
1907- cmdclass={'install_data': InstallData},
1908+ name='gtg',
1909+ version=info.VERSION,
1910+ url=info.URL,
1911+ author='The GTG Team',
1912+ author_email=info.EMAIL,
1913+ description=info.SHORT_DESCRIPTION,
1914+ packages=find_packages(),
1915+ scripts=['GTG/gtg', 'GTG/gtcli', 'GTG/gtg_new_task'],
1916+ data_files=find_data_files(),
1917 )

Subscribers

People subscribed via source and target branches

to status/vote changes: