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.
Laurent Peuch <cortex@worlddomination.be> [Thu, 20 Jun 2019 16:18:19 +0200] rev 12728
[doc] add instruction to re-enable ckeditor
Laurent Peuch <cortex@worlddomination.be> [Wed, 11 Sep 2019 18:31:08 +0200] rev 12727
[fix] reference to underclared and unused variable kwargs
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
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.
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. :-/
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 23 Aug 2019 11:16:46 +0200] rev 12723
[.gitlab-ci] initial version (tox targets)
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 06 Aug 2019 16:43:46 +0200] rev 12722
Merge with 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
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 06 Aug 2019 15:43:59 +0200] rev 12720
[pkg] version 3.26.14
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.
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
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 01 Aug 2019 09:13:52 +0200] rev 12717
[pkg] Version 3.27.0.a2
Laurent Peuch <cortex@worlddomination.be> [Wed, 24 Jul 2019 15:28:11 +0200] rev 12716
[debug/clean] remove unused DBG_MS flag
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.
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.
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
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 16:52:59 +0200] rev 12712
[pkg] Version 3.27.0a1
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 16:03:01 +0200] rev 12710
[pkg] Version 3.27.0a0
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 15:14:56 +0200] rev 12709
Merge with 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
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 10:22:25 +0200] rev 12707
[pkg] Version 3.26.13
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 23 Jul 2019 17:21:18 +0200] rev 12705
[pkg] Prune packaging files from sdist
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
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.
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.
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.
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.
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`.
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.
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.
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 22 Jul 2019 11:32:12 +0200] rev 12695
[test] Add an "actionverb" attribute to test commands
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 22 Jul 2019 11:25:17 +0200] rev 12694
[test] use self.assertRaises() 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.
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
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 22 Jul 2019 10:54:22 +0200] rev 12691
[test] Rename TestCommand to avoid PytestCollectionWarning
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.
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Jun 2019 12:35:25 +0200] rev 12688
[test] Use --short-description when testing newcube command
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.
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.
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
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.
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!
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).
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
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.
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
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 02 Jul 2019 11:32:59 +0200] rev 12678
[pkg] Version 3.26.12
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.
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
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 27 Jun 2019 12:13:21 +0200] rev 12675
[py3] unicode() -> six.text_type in autoform
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
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Jun 2019 15:01:15 +0200] rev 12673
[debian] Release 3.26.11-2
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 16:44:31 +0200] rev 12671
[debian] Mention Lintian warnings fixes from previous changesets
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.