Wed, 25 Sep 2019 05:42:47 +0200 [mod] allow to pass generic additional arguments to pygments HtmlFormatter
Laurent Peuch <cortex@worlddomination.be> [Wed, 25 Sep 2019 05:42:47 +0200] rev 12770
[mod] allow to pass generic additional arguments to pygments HtmlFormatter
Fri, 27 Sep 2019 06:20:39 +0200 [debug/fix] ensure that not syntax highlighted code is a string
Laurent Peuch <cortex@worlddomination.be> [Fri, 27 Sep 2019 06:20:39 +0200] rev 12769
[debug/fix] ensure that not syntax highlighted code is a string Otherwise it could be in another unrendered form that makes marko complains. Closes #17256791
Thu, 12 Sep 2019 05:59:10 +0200 [debug-toolbar] add registry decisions debug panel
Laurent Peuch <cortex@worlddomination.be> [Thu, 12 Sep 2019 05:59:10 +0200] rev 12768
[debug-toolbar] add registry decisions debug panel Closes #17219866
Wed, 20 Nov 2019 20:46:45 +0100 Increase needed version of logilab-common to >= 1.5.0
Laurent Peuch <cortex@worlddomination.be> [Wed, 20 Nov 2019 20:46:45 +0100] rev 12767
Increase needed version of logilab-common to >= 1.5.0
Thu, 14 Nov 2019 15:40:35 +0100 [debug-toolbar] add registry panel
Laurent Peuch <cortex@worlddomination.be> [Thu, 14 Nov 2019 15:40:35 +0100] rev 12766
[debug-toolbar] add registry panel Closes #17219866
Thu, 14 Nov 2019 01:01:00 +0100 [debug-toolbar] add sql panel
Laurent Peuch <cortex@worlddomination.be> [Thu, 14 Nov 2019 01:01:00 +0100] rev 12765
[debug-toolbar] add sql panel Closes #17219873
Tue, 08 Oct 2019 23:11:19 +0200 [debug-toolbar] add cw general panel with controller
Laurent Peuch <cortex@worlddomination.be> [Tue, 08 Oct 2019 23:11:19 +0200] rev 12764
[debug-toolbar] add cw general panel with controller Closes #17219897
Mon, 18 Nov 2019 12:41:44 +0100 [debug-toolbar] make linter happy
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Mon, 18 Nov 2019 12:41:44 +0100] rev 12763
[debug-toolbar] make linter happy
Wed, 31 Jul 2019 04:16:20 +0200 [pyramid/ctl/debugtoolbar] automatically include custom panels on -t
Laurent Peuch <cortex@worlddomination.be> [Wed, 31 Jul 2019 04:16:20 +0200] rev 12762
[pyramid/ctl/debugtoolbar] automatically include custom panels on -t
Thu, 01 Aug 2019 20:30:16 +0200 [debug-toolbar/rql] display sql queries generated by rql ones
Laurent Peuch <cortex@worlddomination.be> [Thu, 01 Aug 2019 20:30:16 +0200] rev 12761
[debug-toolbar/rql] display sql queries generated by rql ones
Wed, 31 Jul 2019 04:16:20 +0200 [debug-toolbar/rql] add RQL panel
Laurent Peuch <cortex@worlddomination.be> [Wed, 31 Jul 2019 04:16:20 +0200] rev 12760
[debug-toolbar/rql] add RQL panel Closes #17219673
Thu, 24 Oct 2019 06:37:02 +0200 [debug/emit/rql] add RQL debug channel and emit queries
Laurent Peuch <cortex@worlddomination.be> [Thu, 24 Oct 2019 06:37:02 +0200] rev 12759
[debug/emit/rql] add RQL debug channel and emit queries This is used for the RQL debug panel but can be used as a generic mechanism for several tools.
Wed, 06 Nov 2019 14:43:49 +0100 [debug/source_highlight] rename highlight to highlight_terminal
Laurent Peuch <cortex@worlddomination.be> [Wed, 06 Nov 2019 14:43:49 +0100] rev 12758
[debug/source_highlight] rename highlight to highlight_terminal
Thu, 24 Oct 2019 06:34:42 +0200 [debug/source_highlight] add highlight_html and generate_css for debugtool panels
Laurent Peuch <cortex@worlddomination.be> [Thu, 24 Oct 2019 06:34:42 +0200] rev 12757
[debug/source_highlight] add highlight_html and generate_css for debugtool panels
Thu, 01 Aug 2019 05:42:45 +0200 [debug/rql] bind a uniq token per rql to trace its decomposition
Laurent Peuch <cortex@worlddomination.be> [Thu, 01 Aug 2019 05:42:45 +0200] rev 12756
[debug/rql] bind a uniq token per rql to trace its decomposition This is aimed to be used by the RQL debug panel (and the SQL one later on) but can also be used by other debugging tools.
Thu, 01 Aug 2019 02:51:52 +0200 [debug] add a new channel events mechanism for debugging
Laurent Peuch <cortex@worlddomination.be> [Thu, 01 Aug 2019 02:51:52 +0200] rev 12755
[debug] add a new channel events mechanism for debugging
Wed, 06 Nov 2019 12:52:50 +0100 [ctl] allow to specific instance name for instance commands in $CW_INSTANCE
Laurent Peuch <cortex@worlddomination.be> [Wed, 06 Nov 2019 12:52:50 +0100] rev 12754
[ctl] allow to specific instance name for instance commands in $CW_INSTANCE Closes #17253994
Tue, 05 Nov 2019 23:19:15 +0100 [cubicweb/utils] add QueryCache.__contains__() to improve dict-like behavior. Closes #255426
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Tue, 05 Nov 2019 23:19:15 +0100] rev 12753
[cubicweb/utils] add QueryCache.__contains__() to improve dict-like behavior. Closes #255426
Thu, 23 May 2019 00:33:31 +0200 [migrations/pdb] add to every failing migration operation a "p(db)" option
Laurent Peuch <cortex@worlddomination.be> [Thu, 23 May 2019 00:33:31 +0200] rev 12752
[migrations/pdb] add to every failing migration operation a "p(db)" option Instead, the migration command will just crash without offering the possibility of the user to debug or continue the migration. Closes #17219772
Wed, 29 May 2019 20:29:07 +0200 [pyramid/ctl] add a new option to activate the debugtoolbar (-t)
Laurent Peuch <cortex@worlddomination.be> [Wed, 29 May 2019 20:29:07 +0200] rev 12751
[pyramid/ctl] add a new option to activate the debugtoolbar (-t) While this toolbar isn't yet very integrated with CW, it integrates an inline debugging shell like werkzeug for flask or django_extensions which greatly helps debugging on exception. It can already be manually activated by writting "pyramid.includes = pyramid_debugtoolbar" but it's hidden somewhere in the documentation and not very accessible and annoying to do. Closes #17219765
Wed, 23 Oct 2019 04:28:45 +0200 [changelog] add missing information to the 3.27 changelog
Laurent Peuch <cortex@worlddomination.be> [Wed, 23 Oct 2019 04:28:45 +0200] rev 12750
[changelog] add missing information to the 3.27 changelog
Fri, 18 Oct 2019 23:39:03 +0200 Merge 3.26
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Fri, 18 Oct 2019 23:39:03 +0200] rev 12749
Merge 3.26
Tue, 27 Aug 2019 20:16:01 +0200 [debug] add ALL possibility to --dbglevel 3.26
Laurent Peuch <cortex@worlddomination.be> [Tue, 27 Aug 2019 20:16:01 +0200] rev 12748
[debug] add ALL possibility to --dbglevel
Wed, 26 Jun 2019 02:32:02 +0200 [ux] display instance name in suggested upgrade command 3.26
Laurent Peuch <cortex@worlddomination.be> [Wed, 26 Jun 2019 02:32:02 +0200] rev 12747
[ux] display instance name in suggested upgrade command
Thu, 23 May 2019 00:33:04 +0200 [migration/pdb] display traceback instead of only the exception for easier debugging
Laurent Peuch <cortex@worlddomination.be> [Thu, 23 May 2019 00:33:04 +0200] rev 12746
[migration/pdb] display traceback instead of only the exception for easier debugging Closes #17219820
Wed, 22 May 2019 17:10:06 +0200 [migration/pdb] add option to use pdb.post_mortem if traceback is provided
Laurent Peuch <cortex@worlddomination.be> [Wed, 22 May 2019 17:10:06 +0200] rev 12745
[migration/pdb] add option to use pdb.post_mortem if traceback is provided Post mortem is a mode where the pdb shell is opened **where** the exception as occured instead at the breakpoint for set_trace. This is way more useful for debugging for the user because is will have the full context of the error. Closes #17219827
Wed, 22 May 2019 17:08:09 +0200 [migration/shell] select ipdb if present on (d)ebug mode
Laurent Peuch <cortex@worlddomination.be> [Wed, 22 May 2019 17:08:09 +0200] rev 12744
[migration/shell] select ipdb if present on (d)ebug mode Closes #17219833
Wed, 22 May 2019 14:23:01 +0200 [mod] move get_pdb to utils.py
Laurent Peuch <cortex@worlddomination.be> [Wed, 22 May 2019 14:23:01 +0200] rev 12743
[mod] move get_pdb to utils.py
Wed, 16 Oct 2019 14:49:38 +0200 Add a migration function in order to relocate bfss
Noe Gaumont <ngaumont@logilab.fr> [Wed, 16 Oct 2019 14:49:38 +0200] rev 12742
Add a migration function in order to relocate bfss Related to https://www.cubicweb.org/ticket/1903304
Wed, 12 Jun 2019 19:58:00 +0200 [pyramid/debug] on every request display request path and selected controller
Laurent Peuch <cortex@worlddomination.be> [Wed, 12 Jun 2019 19:58:00 +0200] rev 12741
[pyramid/debug] on every request display request path and selected controller This will display lines like: 2019-06-12 16:26:57 - (cubicweb.pyramid.bwcompat) INFO: REQUEST [view] '/wiki/334037' selected controller <cubicweb.web.views.basecontrollers.ViewController object at 0x7f133802ae90> at /root/.virtualenvs/abreton/local/lib/python2.7/site-packages/cubicweb/web/views/basecontrollers.py:120 2019-06-12 16:26:59 - (cubicweb.pyramid.bwcompat) INFO: REQUEST [data] '/data/ea5eb3b6f89fba0ff4b671093c88d3dd/images/cartouche-mur.jpg' selected controller <cubicweb.web.views.staticcontrollers.DataController object at 0x7f1332a84d50> at /root/.virtualenvs/abreton/local/lib/python2.7/site-packages/cubicweb/web/views/staticcontrollers.py:179 The make debugging easier as this isn't done already. Most other web frameworks do something similar for the developper to be able to understand what is happening right now. Closes #17219741
Wed, 21 Aug 2019 04:52:08 +0200 [logging/debug] move transaction operations logs from self.debug to DBG_OPS
Laurent Peuch <cortex@worlddomination.be> [Wed, 21 Aug 2019 04:52:08 +0200] rev 12740
[logging/debug] move transaction operations logs from self.debug to DBG_OPS There were a mixing between displaying transaction operations log on logger.debug and only when DBG_OPS was on, uniformize everything behind DBG_OPS. Closes #17229126
Wed, 21 Aug 2019 02:10:12 +0200 [debug] syntax highlight SQL and RQL debug output
Laurent Peuch <cortex@worlddomination.be> [Wed, 21 Aug 2019 02:10:12 +0200] rev 12739
[debug] syntax highlight SQL and RQL debug output This prevent DBG_RQL and DBG_SQL output to looks like a gigantic blob of white text. Do this only if we detect that we are in a tty and that pygments is installed. Closes #17222885
Tue, 20 Aug 2019 22:45:46 +0200 [logging] send logs by default to stdout
Laurent Peuch <cortex@worlddomination.be> [Tue, 20 Aug 2019 22:45:46 +0200] rev 12738
[logging] send logs by default to stdout Following the move to have commands only working on foreground sending logs to a file by default doesn't make much more sens anymore so send them to stdout by default and add a new option to send them to a file if needed
Tue, 21 May 2019 18:16:51 +0200 [cubicweb-ctl] backport --dbglevel option of pyramid to all instance commands
Laurent Peuch <cortex@worlddomination.be> [Tue, 21 May 2019 18:16:51 +0200] rev 12737
[cubicweb-ctl] backport --dbglevel option of pyramid to all instance commands Closes #17219653
Tue, 21 May 2019 18:08:17 +0200 [cubicweb-ctl] backport --loglevel option of pyramid to all instance commands
Laurent Peuch <cortex@worlddomination.be> [Tue, 21 May 2019 18:08:17 +0200] rev 12736
[cubicweb-ctl] backport --loglevel option of pyramid to all instance commands
Thu, 25 Jul 2019 03:33:01 +0200 [cubicweb-ctl/fix] correctly get exception traceback_ for pdb.post_mortem
Laurent Peuch <cortex@worlddomination.be> [Thu, 25 Jul 2019 03:33:01 +0200] rev 12735
[cubicweb-ctl/fix] correctly get exception traceback_ for pdb.post_mortem In python 3 the behavior of sys.exc_info had a very subtle change: - in python 2 you can call if whenever you want after a try/except statement and you'll get information about this last raise - ipython 3, once you get out of try/except, sys.exc_info is cleaned and you'll get (None, None, None) Hardened the test to avoid this error from happening again.
Tue, 15 Oct 2019 15:30:56 +0200 Document mercurial configuration for contributing
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 15 Oct 2019 15:30:56 +0200] rev 12734
Document mercurial configuration for contributing * how to use master/review repositories * how to send the "Available at" command in patchbomb emails * how to add the "cubicweb" flag in patchbomb emails * how to use our "jenkins" mercurial extension Closes #17243538
Fri, 11 Oct 2019 12:42:35 +0200 Add documentation on workflow permission
Noe Gaumont <ngaumont@logilab.fr> [Fri, 11 Oct 2019 12:42:35 +0200] rev 12733
Add documentation on workflow permission
Fri, 11 Oct 2019 12:41:16 +0200 Remove undefined function in documentation
Noe Gaumont <ngaumont@logilab.fr> [Fri, 11 Oct 2019 12:41:16 +0200] rev 12732
Remove undefined function in documentation
Wed, 09 Oct 2019 11:44:22 +0200 Merge 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 09 Oct 2019 11:44:22 +0200] rev 12731
Merge 3.26
Wed, 22 May 2019 01:16:55 +0200 [pyramid/ctl] pyramid command will always run in foreground from now on
Laurent Peuch <cortex@worlddomination.be> [Wed, 22 May 2019 01:16:55 +0200] rev 12730
[pyramid/ctl] pyramid command will always run in foreground from now on Daemonization used to make sens in the past, but today "pyramid" command is only used for dev and should never be used for deployement (you should use a wsgi server for that instead) so daemonization doesn't fit any use case anymore. Closes #17232923
Thu, 22 Aug 2019 04:07:08 +0200 [clean] remove pyramid warning about looping task
Laurent Peuch <cortex@worlddomination.be> [Thu, 22 Aug 2019 04:07:08 +0200] rev 12729
[clean] remove pyramid warning about looping task This warning isn't useful anymore.
Thu, 20 Jun 2019 16:18:19 +0200 [doc] add instruction to re-enable ckeditor 3.26
Laurent Peuch <cortex@worlddomination.be> [Thu, 20 Jun 2019 16:18:19 +0200] rev 12728
[doc] add instruction to re-enable ckeditor
Wed, 11 Sep 2019 18:31:08 +0200 [fix] reference to underclared and unused variable kwargs 3.26
Laurent Peuch <cortex@worlddomination.be> [Wed, 11 Sep 2019 18:31:08 +0200] rev 12727
[fix] reference to underclared and unused variable kwargs
Wed, 11 Sep 2019 11:56:43 +0200 Avoid to update inlined relation column to NULL when deleting entities 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 11 Sep 2019 11:56:43 +0200] rev 12726
Avoid to update inlined relation column to NULL when deleting entities When deleting entities, cubicweb run a rql DELETE on all relations to trigger hooks. For an inlined relation this also mean set the column to NULL. This operation may fail if there's additional constraints on the column. Also this is a weird and useless behavior since deleting the entity row will by definition delete the relation. We still doesn't handle the case where both subject and object are going to be deleted because rows need to be deleted in a particular order that cubicweb doesn't handle. Add a test checking UPDATE does not occur but hooks are correctly called. Closes #17236690
Wed, 11 Sep 2019 11:37:05 +0200 Drop useless ConstraintInsertionTC 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 11 Sep 2019 11:37:05 +0200] rev 12725
Drop useless ConstraintInsertionTC This test does nothing and is here from the begining of repo history. Now it raise an error "TypeError: Skipped expected string as 'msg' parameter, got 'SkipTest' instead. Perhaps you meant to use a mark?" Just drop it.
Tue, 27 Aug 2019 14:26:21 +0200 Backed out changeset 741dc2590f90
Nicola Spanti <nicola.spanti@logilab.fr> [Tue, 27 Aug 2019 14:26:21 +0200] rev 12724
Backed out changeset 741dc2590f90 It was for cube s3storage, but this piece of information was apparently not in the email (used for review), so this patch was published in the wrong repository. :-/
Fri, 23 Aug 2019 11:16:46 +0200 [.gitlab-ci] initial version (tox targets)
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 23 Aug 2019 11:16:46 +0200] rev 12723
[.gitlab-ci] initial version (tox targets)
Tue, 06 Aug 2019 16:43:46 +0200 Merge with 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 06 Aug 2019 16:43:46 +0200] rev 12722
Merge with 3.26
Tue, 06 Aug 2019 16:36:21 +0200 Added tag debian/3.26.14-1, 3.26.14 for changeset 172f683a84f6 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 06 Aug 2019 16:36:21 +0200] rev 12721
Added tag debian/3.26.14-1, 3.26.14 for changeset 172f683a84f6
Tue, 06 Aug 2019 15:43:59 +0200 [pkg] version 3.26.14 3.26 3.26.14 debian/3.26.14-1
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 06 Aug 2019 15:43:59 +0200] rev 12720
[pkg] version 3.26.14
Tue, 06 Aug 2019 14:26:17 +0200 [py3] Pass bytes as "msg" to smtplib.SMTP.sendmail() 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 06 Aug 2019 14:26:17 +0200] rev 12719
[py3] Pass bytes as "msg" to smtplib.SMTP.sendmail() When passing a unicode string to smtplib.SMTP.sendmail() as "msg" argument, there is an implicit bytes encoding using "ascii" encoding in python3. Of course this does not work if the string contains non-ASCII characters. In fact, config's sendmails method intent to pass bytes to smtplib.SMTP.sendmail() as it uses msg.as_string() method. Unfortunately, in python3, this method returns a unicode string whereas it returns a bytes string in python2; we thus fix this by calling as_bytes() method on python3. As there is no "as_bytes" method in python2, we need to handle python2 compatibility by hand and either call as_string() or as_bytes(). In testlib, where we mock smtplib.SMTP, we need to keep the "msg" argument of Email class (defined in testlib as well) a unicode string. Otherwise, it fails to be parsed by email.message_from_string() (from stdlib) if it is bytes on python3.
Thu, 01 Aug 2019 09:20:40 +0200 [debian] Cleanup d/source/options from now gone symlinks
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 01 Aug 2019 09:20:40 +0200] rev 12718
[debian] Cleanup d/source/options from now gone symlinks
Thu, 01 Aug 2019 09:13:52 +0200 [pkg] Version 3.27.0.a2
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 01 Aug 2019 09:13:52 +0200] rev 12717
[pkg] Version 3.27.0.a2
Wed, 24 Jul 2019 15:28:11 +0200 [debug/clean] remove unused DBG_MS flag
Laurent Peuch <cortex@worlddomination.be> [Wed, 24 Jul 2019 15:28:11 +0200] rev 12716
[debug/clean] remove unused DBG_MS flag
Tue, 30 Jul 2019 14:47:25 +0200 Avoid using gone hooks_control() in migration
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 30 Jul 2019 14:47:25 +0200] rev 12715
Avoid using gone hooks_control() in migration This deprecated function got dropped in a8c1ea390400. Remove unused import in 3.10.9_Any.py migration; replace usage in bootstrapmigration_repository.py by non-deprecated form.
Tue, 30 Jul 2019 14:42:15 +0200 [tox] Remove --ignore in check-manifest check
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 30 Jul 2019 14:42:15 +0200] rev 12714
[tox] Remove --ignore in check-manifest check All symlinks have been dropped in previous changesets.
Tue, 30 Jul 2019 10:16:51 +0200 [doc] link to 3.27 (and missing 3.26) pages
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 30 Jul 2019 10:16:51 +0200] rev 12713
[doc] link to 3.27 (and missing 3.26) pages
Wed, 24 Jul 2019 16:52:59 +0200 [pkg] Version 3.27.0a1
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 16:52:59 +0200] rev 12712
[pkg] Version 3.27.0a1
Wed, 24 Jul 2019 16:52:00 +0200 [test] Replace symlinks by real copies
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 16:52:00 +0200] rev 12711
[test] Replace symlinks by real copies This solves a "python setup.py build" issue.
Wed, 24 Jul 2019 16:03:01 +0200 [pkg] Version 3.27.0a0
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 16:03:01 +0200] rev 12710
[pkg] Version 3.27.0a0
Wed, 24 Jul 2019 15:14:56 +0200 Merge with 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 15:14:56 +0200] rev 12709
Merge with 3.26
Wed, 24 Jul 2019 13:39:52 +0200 Added tag debian/3.26.13-1, 3.26.13 for changeset 1fc684253207 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 13:39:52 +0200] rev 12708
Added tag debian/3.26.13-1, 3.26.13 for changeset 1fc684253207
Wed, 24 Jul 2019 10:22:25 +0200 [pkg] Version 3.26.13 3.26 3.26.13 debian/3.26.13-1
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 10:22:25 +0200] rev 12707
[pkg] Version 3.26.13
Wed, 24 Jul 2019 11:43:21 +0200 [test] Replace symlinks in legacy_cubes by real copies 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 11:43:21 +0200] rev 12706
[test] Replace symlinks in legacy_cubes by real copies This solves a "python setup.py build" issue on my machine. Copying these files should not be a big deal because they have been dropped in the "default" branch and we would not touch them in 3.26 branch.
Tue, 23 Jul 2019 17:21:18 +0200 [pkg] Prune packaging files from sdist 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 23 Jul 2019 17:21:18 +0200] rev 12705
[pkg] Prune packaging files from sdist
Mon, 10 Jun 2019 12:04:39 +0200 [pkg] Fix spelling mistake in doc-base abstract 3.26
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 12:04:39 +0200] rev 12704
[pkg] Fix spelling mistake in doc-base abstract
Mon, 10 Jun 2019 12:04:11 +0200 [pkg] Fix doc-base section 3.26
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 12:04:11 +0200] rev 12703
[pkg] Fix doc-base section As pointed by Lintian, the “Apps” section is only used in menu, not in doc-base. We can just remove it.
Mon, 10 Jun 2019 11:15:17 +0200 [pkg] Move lintian-overrides file to debian/source directory 3.26
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 11:15:17 +0200] rev 12702
[pkg] Move lintian-overrides file to debian/source directory Just use the now preferred location.
Thu, 13 Jun 2019 16:47:47 +0200 [pkg] Tidy substvars usage in control file 3.26
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Thu, 13 Jun 2019 16:47:47 +0200] rev 12701
[pkg] Tidy substvars usage in control file The documentation package was missing a Built-Using field to record the provenance of the templates. Empty packages or meta packages do not require Depends on a specific Python version, so we can remove the relevant substvars.
Mon, 10 Jun 2019 10:53:48 +0200 [pkg] Specify priority “optional” instead of the obsolete “extra” 3.26
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 10:53:48 +0200] rev 12700
[pkg] Specify priority “optional” instead of the obsolete “extra” Quoting Lintian, “Since Debian Policy version 4.0.1, the priority extra has been deprecated.” So let's use “optional” instead.
Wed, 05 Jun 2019 16:29:04 +0200 [pkg] Switch to Debian source format 3.0 (quilt) 3.26
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 05 Jun 2019 16:29:04 +0200] rev 12699
[pkg] Switch to Debian source format 3.0 (quilt) This forces us to base the Debian package on the source of the Python package (as produced by running `python3 setup.py sdist`). While it might seem cumbersome, this greatly reduces likelyhood of mismatch between an installation via `pip` and one using the Debian package. `dpkg-source` will also document for us what is currently in the source repository but not in the Python package. Currently the missing file are: PKG-INFO cubicweb/sobjects/test/data/cubicweb_comment/schema.py cubicweb/sobjects/test/data/cubicweb_comment/__init__.py cubicweb/sobjects/test/data/cubicweb_comment/__pkginfo__.py cubicweb/sobjects/test/data/cubicweb_card/schema.py cubicweb/sobjects/test/data/cubicweb_card/entities.py cubicweb/sobjects/test/data/cubicweb_card/__init__.py cubicweb/sobjects/test/data/cubicweb_card/__pkginfo__.py cubicweb/server/test/data-migractions/cubicweb_comment/schema.py cubicweb/server/test/data-migractions/cubicweb_comment/__init__.py cubicweb/server/test/data-migractions/cubicweb_comment/__pkginfo__.py cubicweb/server/test/data-migractions/cubicweb_localperms/schema.py cubicweb/server/test/data-migractions/cubicweb_localperms/__init__.py cubicweb/server/test/data-migractions/cubicweb_localperms/__pkginfo__.py cubicweb/server/test/data-migractions/cubicweb_basket/schema.py cubicweb/server/test/data-migractions/cubicweb_basket/__init__.py cubicweb/server/test/data-migractions/cubicweb_basket/__pkginfo__.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_comment/schema.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_comment/__init__.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_comment/__pkginfo__.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_localperms/schema.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_localperms/__init__.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_localperms/__pkginfo__.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_basket/schema.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_basket/__init__.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_basket/__pkginfo__.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_tag/schema.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_tag/__init__.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_tag/__pkginfo__.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_card/schema.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_card/__init__.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_card/__pkginfo__.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_file/schema.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_file/__init__.py cubicweb/server/test/data-migractions/migratedapp/cubicweb_file/__pkginfo__.py cubicweb/server/test/data-migractions/cubicweb_tag/schema.py cubicweb/server/test/data-migractions/cubicweb_tag/__init__.py cubicweb/server/test/data-migractions/cubicweb_tag/__pkginfo__.py cubicweb/server/test/data-migractions/cubicweb_card/schema.py cubicweb/server/test/data-migractions/cubicweb_card/__init__.py cubicweb/server/test/data-migractions/cubicweb_card/__pkginfo__.py cubicweb/server/test/data-migractions/cubicweb_file/schema.py cubicweb/server/test/data-migractions/cubicweb_file/__init__.py cubicweb/server/test/data-migractions/cubicweb_file/__pkginfo__.py cubicweb/test/data-rewrite/cubicweb_localperms/schema.py cubicweb/test/data-rewrite/cubicweb_localperms/__init__.py cubicweb/test/data-rewrite/cubicweb_localperms/__pkginfo__.py cubicweb/test/data-rewrite/cubicweb_card/schema.py cubicweb/test/data-rewrite/cubicweb_card/entities.py cubicweb/test/data-rewrite/cubicweb_card/__init__.py cubicweb/test/data-rewrite/cubicweb_card/__pkginfo__.py The current manifest will duplicate several files that are stored as symlinks in the Mercurial repository, hence the long list of ignored files in `extend-diff-ignore`.
Fri, 12 Jul 2019 11:52:27 +0200 [debian] Update description of cubicweb-ctl* packages 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 12 Jul 2019 11:52:27 +0200] rev 12698
[debian] Update description of cubicweb-ctl* packages init scripts are no longer shipped. Avoid mentionning "start" and "stop" command which should not be used in production environments.
Fri, 12 Jul 2019 11:49:46 +0200 [debian] Introduce a cubicweb-ctl3 binary package 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 12 Jul 2019 11:49:46 +0200] rev 12697
[debian] Introduce a cubicweb-ctl3 binary package This packages conflicts with cubicweb-ctl binary which uses the python2 library. It is meant to ease upgrade of existing installation during the migration from python2 to python3: in particular, by installing cubicweb-ctl3, scripts calling "cubicweb-ctl" command should still work as before.
Mon, 22 Jul 2019 11:21:10 +0200 [cubicweb-ctl] respect sys.exit status code when aborting a command
Laurent Peuch <cortex@worlddomination.be> [Mon, 22 Jul 2019 11:21:10 +0200] rev 12696
[cubicweb-ctl] respect sys.exit status code when aborting a command When exploring the stack of all calls to a cubicweb-ctl command, it has been discovered than on a KeyboardInterrupt and on a SystemExit exception the base class InstanceCommand (for commands that works on one instance) will always set the return code of cubicweb-ctl to 8: this mean that if another command do a `sys.exit(some_code)` the exit code will be ignored and overwritten by '8'. This behavior is not intuitive, apparently not documented and doesn't seems to have any justification. It also prevent commands from exciting with different return codes which could be a desired behavior in the situation of scripting.
Mon, 22 Jul 2019 11:32:12 +0200 [test] Add an "actionverb" attribute to test commands
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 22 Jul 2019 11:32:12 +0200] rev 12695
[test] Add an "actionverb" attribute to test commands
Mon, 22 Jul 2019 11:25:17 +0200 [test] use self.assertRaises() in cwctl tests
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 22 Jul 2019 11:25:17 +0200] rev 12694
[test] use self.assertRaises() in cwctl tests
Mon, 22 Jul 2019 11:09:15 +0200 [test] ensure mocking is stopped in cwctl tests
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 22 Jul 2019 11:09:15 +0200] rev 12693
[test] ensure mocking is stopped in cwctl tests Either use a decorator or ensure that cleanup is performed. This is so as to prevent global state modification.
Tue, 21 May 2019 16:47:13 +0200 [cubicweb-ctl] add '--pdb' global option to launch (i)pdb on exception
Laurent Peuch <cortex@worlddomination.be> [Tue, 21 May 2019 16:47:13 +0200] rev 12692
[cubicweb-ctl] add '--pdb' global option to launch (i)pdb on exception
Mon, 22 Jul 2019 10:54:22 +0200 [test] Rename TestCommand to avoid PytestCollectionWarning
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 22 Jul 2019 10:54:22 +0200] rev 12691
[test] Rename TestCommand to avoid PytestCollectionWarning
Wed, 10 Jul 2019 14:58:41 +0200 [pkg] Add new autopkgtest for skeleton packaging 3.26
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 10 Jul 2019 14:58:41 +0200] rev 12690
[pkg] Add new autopkgtest for skeleton packaging When running `cubicweb-ctl newcube`, the generated template provides debian packaging. So let's add automated tests for that using autopkgtest. The new test will generated a new cube, build a source tarball, build the package, try to install it, see if the Python 2 and 3 modules are available and even run autopkgtest against the newly created packages. Along the way it will also print information about the generated package: buildinfo, package content, and lintian report.
Wed, 10 Jul 2019 14:57:58 +0200 [skeleton] Update Debian packaging template 3.26
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 10 Jul 2019 14:57:58 +0200] rev 12689
[skeleton] Update Debian packaging template Here are multiple updates to the Debian packaging template provided when running `cubicweb-ctl newcube`: * Switch to source format 3.0 (quilt). * Switch to debhelper 9. * Switch to dh-python. * Add Python 3 packages. * Name the binary packages `python-cubicweb-CUBENAME` and `python3-cubicweb-CUBENAME` instead of just `cubicweb-CUBENAME` (which is still the source package). * Populate Depends using dh_python{2,3} support for Python requirements. * Run test suite at build time using pytest. * Add autopkgtest to run test suite against the installed package. * Bump Standards-Version to 4.3.0.
Wed, 26 Jun 2019 12:35:25 +0200 [test] Use --short-description when testing newcube command 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Jun 2019 12:35:25 +0200] rev 12688
[test] Use --short-description when testing newcube command
Mon, 17 Jun 2019 17:23:36 +0200 [devtools] Allow to specify short desc on `newcube` command line 3.26
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 17 Jun 2019 17:23:36 +0200] rev 12687
[devtools] Allow to specify short desc on `newcube` command line In order to implement automated testing of `cubicweb-ctl newcube`, we need to avoid any user interaction. So we add a `-s` switch to specify a short description on the command-line instead of requiring an input.
Mon, 17 Jun 2019 17:25:04 +0200 [pkg] Add new autopkgtest for skeleton packaging
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 17 Jun 2019 17:25:04 +0200] rev 12686
[pkg] Add new autopkgtest for skeleton packaging When running `cubicweb-ctl newcube`, the generated template provides debian packaging. So let's add automated tests for that using autopkgtest. The new test will generated a new cube, build a source tarball, build the package, try to install it, see if the Python 3 module is available and even run autopkgtest against the newly created packages. Along the way it will also print information about the generated package: buildinfo, package content, and lintian report.
Tue, 21 May 2019 16:36:12 +0200 [cubicweb-ctl] move to accepting only once instance name per command
Laurent Peuch <cortex@worlddomination.be> [Tue, 21 May 2019 16:36:12 +0200] rev 12685
[cubicweb-ctl] move to accepting only once instance name per command The rationals behind this decision are: - while in the past managing all instances sytem wide made a lot of sens, pratices have evolved today and we've moved to managing one instance by one - this makes things easier to debug since commands since using them on several instances were making this harder (errors hidden in the middle) - also solve the problem of the return code to have, before it was always 0 which prevented to do things like: ipython --pdb $(which cubicweb-ctl) $command $instance or shell scripts that used it - this simplify the code and is always good to take
Tue, 09 Jul 2019 11:13:08 +0200 [pkg] Run all unit tests in autopkgtest
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Tue, 09 Jul 2019 11:13:08 +0200] rev 12684
[pkg] Run all unit tests in autopkgtest We previously forgot to copy `tox.ini` alongside the tests. As this file configures pytest pattern matching rules, we were not running quite a few tests. This is now fixed. The added tests required some adjustments in the Debian dependencies. Sadly, not all tests currently pass. It seems there are some ordering dependencies between the tests in regards to how data are loaded. Fixing this probably would probably be better debugged by ensuring the test suite does not fail when using pytest random-order plugin.
Wed, 19 Jun 2019 18:45:10 +0200 [pkg] Stop running unit tests from skeleton
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 19 Jun 2019 18:45:10 +0200] rev 12683
[pkg] Stop running unit tests from skeleton The test files shipped as part as the skeleton for `cubeweb-ctl newcube` are not meant to be run as part of our test suite!
Wed, 19 Jun 2019 18:43:38 +0200 [tests] Use 16 bytes key when testing Blowfish
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 19 Jun 2019 18:43:38 +0200] rev 12682
[tests] Use 16 bytes key when testing Blowfish The version of Cryptodome currently in Debian only accepts Blowfish keys with at least 5 bytes. This is a bug (it should accept 4 as it did before) that has since been fixed upstream: https://github.com/Legrandin/pycryptodome/commit/93912230f3c39e09f4038cb17e301468687c6538 So we work around this issue by using a 16 bytes key instead (which happens to be the minimum recommended length).
Tue, 09 Jul 2019 14:35:44 +0200 Use time.process_time() instead of deprecated clock()
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 09 Jul 2019 14:35:44 +0200] rev 12681
Use time.process_time() instead of deprecated clock() This fixes: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead
Tue, 09 Jul 2019 14:20:30 +0200 [web] Make the time separator configurable in JQueryDateTimePicker
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 09 Jul 2019 14:20:30 +0200] rev 12680
[web] Make the time separator configurable in JQueryDateTimePicker We add a "separator" argument to JQueryDateTimePicker which will be used when creating the underlying JQueryTimePicker instance so that the user can control how time is displayed by the widget. This is very similar to the "timesteps" argument that's already present.
Tue, 02 Jul 2019 14:54:01 +0200 Added tag 3.26.12, debian/3.26.12-1 for changeset 4531a266f8b2 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 02 Jul 2019 14:54:01 +0200] rev 12679
Added tag 3.26.12, debian/3.26.12-1 for changeset 4531a266f8b2
Tue, 02 Jul 2019 11:32:59 +0200 [pkg] Version 3.26.12 3.26 3.26.12 debian/3.26.12-1
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 02 Jul 2019 11:32:59 +0200] rev 12678
[pkg] Version 3.26.12
Thu, 27 Jun 2019 12:20:22 +0200 [autoform] Fix display_fields handling 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 27 Jun 2019 12:20:22 +0200] rev 12677
[autoform] Fix display_fields handling This follows-up on changeset b2ceb483e056 (present in 3.25 as well), in which AutomaticEntityForm.editable_attributes() was turned into a generator. In this method, in case display_fields is not None, we previously returned a list of (rtype, role); this was changed into a yield, but the change was missing a return after the loop in order not to go through the remainder of the function. Add tests for editable_attributes() method.
Thu, 27 Jun 2019 12:27:37 +0200 Flake8 cubicweb/web/views/autoform.py 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 27 Jun 2019 12:27:37 +0200] rev 12676
Flake8 cubicweb/web/views/autoform.py Fixes: cubicweb/web/views/autoform.py:703: [E122] continuation line missing indentation or outdented cubicweb/web/views/autoform.py:704: [E122] continuation line missing indentation or outdented cubicweb/web/views/autoform.py:819: [W504] line break after binary operator cubicweb/web/views/autoform.py:820: [E125] continuation line with same indent as next logical line cubicweb/web/views/autoform.py:961: [W504] line break after binary operator cubicweb/web/views/autoform.py:962: [E126] continuation line over-indented for hanging indent
Thu, 27 Jun 2019 12:13:21 +0200 [py3] unicode() -> six.text_type in autoform 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 27 Jun 2019 12:13:21 +0200] rev 12675
[py3] unicode() -> six.text_type in autoform
Wed, 26 Jun 2019 15:01:45 +0200 Added tag debian/3.26.11-2 for changeset e7eb914df71d 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Jun 2019 15:01:45 +0200] rev 12674
Added tag debian/3.26.11-2 for changeset e7eb914df71d
Wed, 26 Jun 2019 15:01:15 +0200 [debian] Release 3.26.11-2 3.26 debian/3.26.11-2
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Jun 2019 15:01:15 +0200] rev 12673
[debian] Release 3.26.11-2
Wed, 26 Jun 2019 13:19:30 +0200 [test] Require pycryptodomex, not pycryptodome
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Jun 2019 13:19:30 +0200] rev 12672
[test] Require pycryptodomex, not pycryptodome This follows up on changeset 5b0ce10a7046.
Tue, 25 Jun 2019 16:44:31 +0200 [debian] Mention Lintian warnings fixes from previous changesets 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 16:44:31 +0200] rev 12671
[debian] Mention Lintian warnings fixes from previous changesets
Tue, 25 Jun 2019 16:24:45 +0200 [debian] Remove unused/redundant entries from debian/cubicweb-ctl.dirs 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 16:24:45 +0200] rev 12670
[debian] Remove unused/redundant entries from debian/cubicweb-ctl.dirs * bash completion entry produces a lintian warning "package-installs-into-obsolete-dir etc/bash_completion.d/", and it does not install bash completion. * doc directory should be handled automatically.
Tue, 25 Jun 2019 16:21:41 +0200 [debian] Make descriptions of python-cubicweb and python3-cubicweb uniform 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 16:21:41 +0200] rev 12669
[debian] Make descriptions of python-cubicweb and python3-cubicweb uniform Thus solving lintian warning "description-synopsis-starts-with-article".
Tue, 25 Jun 2019 14:49:16 +0200 [debian] Mention that -postgresql-support binaries are dependency package 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 14:49:16 +0200] rev 12668
[debian] Mention that -postgresql-support binaries are dependency package Fixing lintian warning "empty-binary-package".
Tue, 25 Jun 2019 14:42:06 +0200 [debian] Add ${misc:Depends} where missing 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 14:42:06 +0200] rev 12667
[debian] Add ${misc:Depends} where missing Fixes lintian warning "debhelper-but-no-misc-depends".
Tue, 25 Jun 2019 16:43:16 +0200 [debian] Set Section: python for python- binary package 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 16:43:16 +0200] rev 12666
[debian] Set Section: python for python- binary package This is to fix a Lintian warning.
Tue, 25 Jun 2019 16:42:58 +0200 [debian] Install cubicweb-ctl from python2 build 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 16:42:58 +0200] rev 12665
[debian] Install cubicweb-ctl from python2 build Previously, the binary package was empty. Now it is bound to the python2 package as support for python3 is "fresh". In order python2 and python3 packages to be co-installable, we drop the cubicweb-ctl file from both packages.
Thu, 20 Jun 2019 17:02:59 +0200 [debian] Introduce python3-cubicweb and python3-cubicweb-pyramid binary packages 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 20 Jun 2019 17:02:59 +0200] rev 12664
[debian] Introduce python3-cubicweb and python3-cubicweb-pyramid binary packages This is the bare minimum to have a working cubicweb on python3. Further work is done in default branch.
Wed, 19 Jun 2019 09:51:38 +0200 [skeleton] Update Debian packaging template
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 19 Jun 2019 09:51:38 +0200] rev 12663
[skeleton] Update Debian packaging template Here are multiple updates to the Debian packaging template provided when running `cubicweb-ctl newcube`: * Switch to source format 3.0 (quilt). * Switch to debhelper 9. * Switch to dh-python. * Switch to Python 3. * Name the binary package `python3-cubicweb-CUBENAME` instead of just `cubicweb-CUBENAME` (which is still the source package). * Populate Depends using dh_python3 support for Python requirements. * Run test suite at build time using pytest. * Add autopkgtest to run test suite against the installed package. * Bump Standards-Version to 4.3.0.
Wed, 26 Jun 2019 12:35:25 +0200 [test] Use --short-description when testing newcube command
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Jun 2019 12:35:25 +0200] rev 12662
[test] Use --short-description when testing newcube command
Mon, 17 Jun 2019 17:23:36 +0200 [devtools] Allow to specify short desc on `newcube` command line
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 17 Jun 2019 17:23:36 +0200] rev 12661
[devtools] Allow to specify short desc on `newcube` command line In order to implement automated testing of `cubicweb-ctl newcube`, we need to avoid any user interaction. So we add a `-s` switch to specify a short description on the command-line instead of requiring an input.
Mon, 10 Jun 2019 10:51:31 +0200 [pkg] Remove build dependency on dh-systemd 3.26
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 10:51:31 +0200] rev 12660
[pkg] Remove build dependency on dh-systemd As suggested by Lintian, remove build dependency on obsolete package dh-systemd. Instead, specify a more precise version of debhelper 9 that added support for systemd.
Thu, 13 Jun 2019 15:04:13 +0200 [config] Raise in case of failure to send emails when in test mode 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 13 Jun 2019 15:04:13 +0200] rev 12659
[config] Raise in case of failure to send emails when in test mode Since, for some reason, exception log messages are not visible when running tests, it's very hard to debug when sendmails() method fails during tests. So, as in some other places, let's raise the exception when in test mode.
(0) -10000 -3000 -1000 -112 +112 tip