Thu, 16 May 2019 14:26:38 +0200 [ldapfeed] FIX: Unique Key violation when synchronizing with LDAPfeed 3.26
julien tayon <julien.tayon@logilab.fr> [Thu, 16 May 2019 14:26:38 +0200] rev 12618
[ldapfeed] FIX: Unique Key violation when synchronizing with LDAPfeed What was happening ================== The bug appears when ldapfeed tries to insert a user while another user exists exists with a different source. Simple use case to reproduce: - create a local user in cubicweb (source=system) - sync with ldap - ldapfeed will stop complaining user already exists. Without next patch the test MUST fail with message: cubicweb/server/sources/native.py:714: UniqueTogetherError The ldapfeed is thus stopped ignoring any further ldap entries. The proposal ============ Prior to this patch, the insertion was trying to create all CWUser with the computed login from eeimporter.extid2eid (method process of DataFeedLDAPAdapter). When a CWUser existed with a different cw_source ("system" for user created with cubicweb for instance), it created a conflict. To avoid collisions, in the extentities_generator method a bypass was added at the insertion layer. Prior to insertion the absence of the computed login is checked on a list of all existing login from a different source. If collision is detected, we skip the ldap record. By short circuiting at the CWUser entity insertion level we also avoid to treat CWGroup and EmailAddress related to this user. Hence ensuring a behaviour that will not break existing instances. (conservative approach: faced with ambiguity better do nothing than guess). An error message is added stating explicitly the conflict.
Fri, 15 Mar 2019 12:12:23 +0100 Skip tests for ldapsource with python >= 3.7 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 15 Mar 2019 12:12:23 +0100] rev 12617
Skip tests for ldapsource with python >= 3.7 Until someone works on fixing these, this should make our CI green again. I tried to use setupModule() to check for python version, but pre_setup_database() is apparently called even when a SkipTest exception is raised there. So handle this in that method. (grafted from 4d68d20427dee4b6751a0f1f5511fec2a04f4782)
Thu, 16 May 2019 17:18:29 +0200 Flake8 crypto module 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 16 May 2019 17:18:29 +0200] rev 12616
Flake8 crypto module
Thu, 16 May 2019 17:17:42 +0200 Make crypto module python3-compatible 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 16 May 2019 17:17:42 +0200] rev 12615
Make crypto module python3-compatible * Remove usage of unicode() and decode the base64-encoded string in encrypt(); * Encode the string received in decrypt() as (I supposed) it should come from the result of encrypt(). Add tests for this module along the way.
Thu, 16 May 2019 04:42:59 +0200 [mod] make ViolatedConstraint actually display useful information
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 04:42:59 +0200] rev 12614
[mod] make ViolatedConstraint actually display useful information Move from: (Pdb++) raise some_exception *** ViolatedConstraint: To: (Pdb++) raise some_exception *** ViolatedConstraint: constraint 'cstr56c2ab4b3154f21d08b067742ce5bd9d' is being violated by the query 'ALTER TABLE cw_Bibliography ADD CONSTRAINT cstr56c2ab4b3154f21d08b067742ce5bd9d CHECK(cw_item_type IN ('journalArticle', 'note', 'book', 'thesis', 'film', 'web page', 'manuscrit', 'tapuscrit'))'. You can run the inverted constraint on the database to list the problematic rows. And save hours of debugging to actually understand what is going on.
Thu, 16 May 2019 09:40:28 +0200 Fix flake8 errors/warnings about import in cubicweb/_exceptions.py
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 16 May 2019 09:40:28 +0200] rev 12613
Fix flake8 errors/warnings about import in cubicweb/_exceptions.py We either ignore errors in case of name re-exports and drop re-exports from old backwards compatibility. We fix the only occurrence of NoSelectableObject being imported from cubicweb in tests and update the import to use lgc instead.
Thu, 16 May 2019 04:47:27 +0200 add comment and # noqa on used import
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 04:47:27 +0200] rev 12612
add comment and # noqa on used import
Thu, 16 May 2019 04:47:10 +0200 remove unused import
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 04:47:10 +0200] rev 12611
remove unused import
Thu, 16 May 2019 02:39:42 +0200 [autopep8] E305 - Expected 2 blank lines after end of function or class
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 02:39:42 +0200] rev 12610
[autopep8] E305 - Expected 2 blank lines after end of function or class
Thu, 16 May 2019 02:39:41 +0200 [autopep8] E303 - Remove extra blank lines
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 02:39:41 +0200] rev 12609
[autopep8] E303 - Remove extra blank lines
Thu, 16 May 2019 02:39:41 +0200 [autopep8] E302 - Add missing 2 blank lines
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 02:39:41 +0200] rev 12608
[autopep8] E302 - Add missing 2 blank lines
Thu, 16 May 2019 02:39:40 +0200 [autopep8] E301 - Add missing blank line
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 02:39:40 +0200] rev 12607
[autopep8] E301 - Add missing blank line
Thu, 16 May 2019 01:23:51 +0200 [enh] display CWConstraint type in its repr
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 01:23:51 +0200] rev 12606
[enh] display CWConstraint type in its repr This will change CWConstraint repr from something like: <Entity CWConstraint 314282 [] at 140127700141904> To: <Entity CWConstraint 314282 of type UniqueConstraint [] at 140127700141904> To help improve debugging UX a little bit.
Thu, 16 May 2019 01:23:51 +0200 [entities] display CWConstraint type in its repr 3.26
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 01:23:51 +0200] rev 12605
[entities] display CWConstraint type in its repr
Wed, 15 May 2019 14:23:19 +0200 [changelog] document pyramid.ini automatic generation
Laurent Peuch <cortex@worlddomination.be> [Wed, 15 May 2019 14:23:19 +0200] rev 12604
[changelog] document pyramid.ini automatic generation
Wed, 15 May 2019 15:50:29 +0200 Flake8 cubicweb/pyramid/test/test_hooks.py
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 15 May 2019 15:50:29 +0200] rev 12603
Flake8 cubicweb/pyramid/test/test_hooks.py
Wed, 15 May 2019 12:06:29 +0200 [pyramid/doc] bad docstring
Laurent Peuch <cortex@worlddomination.be> [Wed, 15 May 2019 12:06:29 +0200] rev 12602
[pyramid/doc] bad docstring
Wed, 15 May 2019 12:06:15 +0200 [pyramid/misc] remove useless variable
Laurent Peuch <cortex@worlddomination.be> [Wed, 15 May 2019 12:06:15 +0200] rev 12601
[pyramid/misc] remove useless variable
Wed, 15 May 2019 12:05:52 +0200 [pyramid/test] add test for pyramid.ini generation
Laurent Peuch <cortex@worlddomination.be> [Wed, 15 May 2019 12:05:52 +0200] rev 12600
[pyramid/test] add test for pyramid.ini generation
Wed, 15 May 2019 15:44:35 +0200 Added tag 3.26.10 for changeset 74cc5de1ee6c 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 15 May 2019 15:44:35 +0200] rev 12599
Added tag 3.26.10 for changeset 74cc5de1ee6c
Wed, 15 May 2019 15:44:26 +0200 [pkg] Version 3.26.10 3.26 3.26.10
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 15 May 2019 15:44:26 +0200] rev 12598
[pkg] Version 3.26.10
Fri, 10 May 2019 16:07:32 +0200 Move CWSchemaTC to RQLExpressionTC
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 10 May 2019 16:07:32 +0200] rev 12597
Move CWSchemaTC to RQLExpressionTC The test actually doesn't require a cubicweb schema, except for testing EmailAdress which is out of scope of the test (testing RQLExpression.transform_has_permission()). Just move the test in existing RQLExpressionTC inheriting from TestCase and rename the tests to be more explicit.
Wed, 17 Apr 2019 16:41:41 +0200 [skeleton] Drop py27 tox environment
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 17 Apr 2019 16:41:41 +0200] rev 12596
[skeleton] Drop py27 tox environment Since we dropped py2 support from cubicweb, it does not make much sense to keep it in skeleton from now on.
Wed, 17 Apr 2019 15:30:42 +0200 [skeleton] Do not ship Debian and RPM packaging files in sdist
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 17 Apr 2019 15:30:42 +0200] rev 12595
[skeleton] Do not ship Debian and RPM packaging files in sdist
Wed, 17 Apr 2019 15:06:57 +0200 [skeleton] Add a check-manifest tox environment
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 17 Apr 2019 15:06:57 +0200] rev 12594
[skeleton] Add a check-manifest tox environment
Fri, 10 May 2019 16:04:37 +0200 Fix pyramid tests
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 10 May 2019 16:04:37 +0200] rev 12593
Fix pyramid tests Followup fa292e9 which require cubicweb.session.secret to be set.
Fri, 10 May 2019 11:42:24 +0200 Fix flake8 and check-manifest
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 10 May 2019 11:42:24 +0200] rev 12592
Fix flake8 and check-manifest Followup fa292e9
Fri, 10 May 2019 15:58:01 +0200 Merge 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 10 May 2019 15:58:01 +0200] rev 12591
Merge 3.26 This fixes tests with psycopg2
Wed, 08 May 2019 21:37:13 +0200 DeprecationWarning: In future versions of Waitress clear_untrusted_proxy_headers will be set to True by default. You may opt-out by setting this value to False, or opt-in explicitly by setting this to True.
Laurent Peuch <cortex@worlddomination.be> [Wed, 08 May 2019 21:37:13 +0200] rev 12590
DeprecationWarning: In future versions of Waitress clear_untrusted_proxy_headers will be set to True by default. You may opt-out by setting this value to False, or opt-in explicitly by setting this to True. Source: https://docs.pylonsproject.org/projects/waitress/en/stable/arguments.html?highlight=clear_untrusted_proxy_headers > This tells Waitress to remove any untrusted proxy headers ("Forwarded", > "X-Forwared-For", "X-Forwarded-By", "X-Forwarded-Host", "X-Forwarded-Port", > "X-Forwarded-Proto") not explicitly allowed by trusted_proxy_headers. According to grep we don't use any of those headers so let's turn it on for security reasons.
Wed, 08 May 2019 21:30:44 +0200 DeprecationWarning: The default pickle serializer is deprecated as of Pyramid 1.9 and it will be changed to use pyramid.session.JSONSerializer in version 2.0. Explicitly set the serializer to avoid future incompatibilities
Laurent Peuch <cortex@worlddomination.be> [Wed, 08 May 2019 21:30:44 +0200] rev 12589
DeprecationWarning: The default pickle serializer is deprecated as of Pyramid 1.9 and it will be changed to use pyramid.session.JSONSerializer in version 2.0. Explicitly set the serializer to avoid future incompatibilities . See "Upcoming Changes to ISession in Pyramid 2.0" for more information about this change. As describe here https://docs.pylonsproject.org/projects/pyramid/en/1.10-branch/narr/sessions.html#pickle-session-deprecation use a serializer that fallback on pickle if needed to avoid impacting users.
Wed, 08 May 2019 20:53:49 +0200 [pyramid/enh] generate pyramid.ini "create" and on "pyramid" command if needed
Laurent Peuch <cortex@worlddomination.be> [Wed, 08 May 2019 20:53:49 +0200] rev 12588
[pyramid/enh] generate pyramid.ini "create" and on "pyramid" command if needed
Wed, 08 May 2019 21:00:45 +0200 DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
Laurent Peuch <cortex@worlddomination.be> [Wed, 08 May 2019 21:00:45 +0200] rev 12587
DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
Mon, 08 Apr 2019 11:24:53 +0200 Account for new psycopg2 exception classes mapping 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 08 Apr 2019 11:24:53 +0200] rev 12586
Account for new psycopg2 exception classes mapping From psycopg2 >= 2.8, specific exceptions are raised corresponding to postgresql errors. E.g. a CheckViolation exception is raised instead of a generic IntegrityError previously when a constraint violation occurs. The way we intercept database errors, especially for constraint violation, is not compliant with that because we do not catch subclasses of IntegrityError in native source's doexec() method. We fix this by checking for the presence of IntegrityError error in exception class's mro. This is still overcomplicated and clumsy, because we still use string comparison, but this is the best we can do as far as I know. (A better fix would be 'isinstance(ex, IntegrityError)' but we have no engine-independent error classes, so this is not possible. Something like sqlalchemy's DBAPI Errors [1] might help: https://docs.sqlalchemy.org/en/latest/errors.html#dbapi-errors)
Fri, 12 Apr 2019 02:26:28 +0200 [cubicweb-ctl] remove "cubicweb-ctl wsgi" command following pyramid standardization
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 02:26:28 +0200] rev 12585
[cubicweb-ctl] remove "cubicweb-ctl wsgi" command following pyramid standardization
Fri, 12 Apr 2019 12:31:14 +0200 Use secure hash algorithm in WebConfiguration.sign_text
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 12:31:14 +0200] rev 12584
Use secure hash algorithm in WebConfiguration.sign_text Fix: PendingDeprecationWarning: HMAC() without an explicit digestmod argument is deprecated. The default hash algorithm used by hmac.new is md5. As of today, md5 is so weak that it's the equivalent of plaintext and can't be considered to be secured at all. Therefor, we switch to a secure hash algorithm. The rational for choosing sha3_512 is: * the recommended algorithm is at least sha_256 * the stronger, the more secured and sha3_512 is the stronger available * thinking about the future this should keep this part of the code safe long enough before people think about checking it again You can read more about choosing a secure hash algorithm in the NIST recommendations https://csrc.nist.gov/Projects/Hash-Functions/NIST-Policy-on-Hash-Functions This code modification should normally be transparent since check_text_sign is exactly this code 'self.sign_text(text) == signature' and that sign_text is only used in combination with it. The only impact is that the hash is going to move from 32 char to 128 which might make html page a bit bigger and that sha3_512 is slow to compute (which is a good thing for security)
Tue, 23 Apr 2019 09:33:52 +0200 [enh] don't catch all exceptions in notification hooks during tests
Laurent Peuch <cortex@worlddomination.be> [Tue, 23 Apr 2019 09:33:52 +0200] rev 12583
[enh] don't catch all exceptions in notification hooks during tests
Thu, 18 Apr 2019 15:09:36 +0200 [doc] add a reference to static-messages.pot usage
Noe Gaumont <ngaumont@logilab.fr> [Thu, 18 Apr 2019 15:09:36 +0200] rev 12582
[doc] add a reference to static-messages.pot usage
Thu, 18 Apr 2019 15:10:35 +0200 [doc] Clarify sentences
Noe Gaumont <ngaumont@logilab.fr> [Thu, 18 Apr 2019 15:10:35 +0200] rev 12581
[doc] Clarify sentences
Thu, 18 Apr 2019 15:05:13 +0200 [doc] Fix format and typo
Noe Gaumont <ngaumont@logilab.fr> [Thu, 18 Apr 2019 15:05:13 +0200] rev 12580
[doc] Fix format and typo
Thu, 18 Apr 2019 04:40:23 +0000 Fix DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated
Nsukami Patrick <ndkpatt at gmail dot com> [Thu, 18 Apr 2019 04:40:23 +0000] rev 12579
Fix DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated
Thu, 18 Apr 2019 04:34:34 +0000 Fix DeprecationWarning: invalid escape sequence
Nsukami Patrick <ndkpatt at gmail dot com> [Thu, 18 Apr 2019 04:34:34 +0000] rev 12578
Fix DeprecationWarning: invalid escape sequence
Tue, 16 Apr 2019 15:49:03 +0200 [devtools/testlib] avoid hidding AttributeError in create_user() 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 16 Apr 2019 15:49:03 +0200] rev 12577
[devtools/testlib] avoid hidding AttributeError in create_user() commit() might raise a AttributeError too. Use getattr(req, 'cnx', req) instead, which is a form already used to get the real cnx in some code: cubicweb/rset.py:577: cnx = getattr(self.req, 'cnx', self.req) cubicweb/schema.py:353: with getattr(_cw, 'cnx', _cw).security_enabled(read=False): We could use if hasattr(req, 'commit') here too but it lead to 3 additionals lines. Maybe we should have commit() and rollback() on cubicweb.web.request.ConnectionCubicWebRequestBase too ?
Wed, 10 Apr 2019 17:59:17 +0000 Fix DeprecationWarning: invalid escape sequence \
Nsukami Patrick <ndkpatt at gmail dot com> [Wed, 10 Apr 2019 17:59:17 +0000] rev 12576
Fix DeprecationWarning: invalid escape sequence \
Fri, 12 Apr 2019 11:56:13 +0200 DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 11:56:13 +0200] rev 12575
DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
Fri, 12 Apr 2019 13:52:17 +0200 [mod] remove backward compatible code for passlib and force modern version
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 13:52:17 +0200] rev 12574
[mod] remove backward compatible code for passlib and force modern version
Fri, 12 Apr 2019 11:54:42 +0200 DeprecationWarning: Please use assertEqual instead.
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 11:54:42 +0200] rev 12573
DeprecationWarning: Please use assertEqual instead.
Fri, 12 Apr 2019 17:25:40 +0200 DeprecationWarning: Please use assertRaisesRegex instead.
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 17:25:40 +0200] rev 12572
DeprecationWarning: Please use assertRaisesRegex instead.
Thu, 11 Apr 2019 20:15:09 +0200 DeprecationWarning: inspect.getargspec() is deprecated since Python 3.0, use inspect.signature() or inspect.getfullargspec()
Laurent Peuch <cortex@worlddomination.be> [Thu, 11 Apr 2019 20:15:09 +0200] rev 12571
DeprecationWarning: inspect.getargspec() is deprecated since Python 3.0, use inspect.signature() or inspect.getfullargspec()
Thu, 11 Apr 2019 16:47:27 +0200 [README] add testing instructions
Laurent Peuch <cortex@worlddomination.be> [Thu, 11 Apr 2019 16:47:27 +0200] rev 12570
[README] add testing instructions
Fri, 05 Apr 2019 12:19:03 +0200 Add pytest-subtests to dev requirements
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 12:19:03 +0200] rev 12569
Add pytest-subtests to dev requirements This pytest plugin adds support for unittest's TestCase.subTest (for Python >= 3.4). Since we we now only support python3 and since we use a fair amount of these, let's benefit of better reporting by using this plugin.
Tue, 26 Mar 2019 16:22:31 +0100 [test] use unittest.mock instead of mock library
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 26 Mar 2019 16:22:31 +0100] rev 12568
[test] use unittest.mock instead of mock library Now that we use Python 3 only, this is possible.
Fri, 05 Apr 2019 17:58:19 +0200 Drop python2 support
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:58:19 +0200] rev 12567
Drop python2 support This mostly consists in removing the dependency on "six" and updating the code to use only Python3 idioms. Notice that we previously used TemporaryDirectory from cubicweb.devtools.testlib for compatibility with Python2. We now directly import it from tempfile.
Fri, 05 Apr 2019 17:21:14 +0200 Merge with 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:21:14 +0200] rev 12566
Merge with 3.26
Fri, 05 Apr 2019 17:40:02 +0200 Remove unused imports in cubicweb.pyramid.config 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:40:02 +0200] rev 12565
Remove unused imports in cubicweb.pyramid.config
Fri, 05 Apr 2019 17:20:01 +0200 Added tag 3.26.9 for changeset 4d6909de765a 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:20:01 +0200] rev 12564
Added tag 3.26.9 for changeset 4d6909de765a
Fri, 05 Apr 2019 17:19:56 +0200 [pkg] Version 3.26.9 3.26 3.26.9
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:19:56 +0200] rev 12563
[pkg] Version 3.26.9
Tue, 12 Feb 2019 17:00:55 +0100 [pyramid/security] use cryptographically secure random generator 3.26
Laurent Peuch <cortex@worlddomination.be> [Tue, 12 Feb 2019 17:00:55 +0100] rev 12562
[pyramid/security] use cryptographically secure random generator Based on django source code in case SystemRandom is not available. According to python documentation: https://docs.python.org/2/library/random.html > Warning > The pseudo-random generators of this module should not be used for security > purposes. Use os.urandom() or SystemRandom if you require a cryptographically > secure pseudo-random number generator.
Thu, 04 Apr 2019 14:11:40 +0200 Reclosing branch after merge tls-sprint
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 14:11:40 +0200] rev 12561
Reclosing branch after merge
Thu, 04 Apr 2019 13:49:34 +0200 Merging heads of old, closed branch tls-sprint
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 13:49:34 +0200] rev 12560
Merging heads of old, closed branch
Thu, 04 Apr 2019 14:08:10 +0200 Reclosing branch after merge 3.0
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 14:08:10 +0200] rev 12559
Reclosing branch after merge
Thu, 04 Apr 2019 13:45:23 +0200 Merging heads of old, closed branch 3.0
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 13:45:23 +0200] rev 12558
Merging heads of old, closed branch
Thu, 28 Mar 2019 11:15:28 +0100 [doc/changes] document that legacy cube support has been dropped
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:15:28 +0100] rev 12557
[doc/changes] document that legacy cube support has been dropped
Thu, 28 Mar 2019 11:13:12 +0100 [doc] replace legacy import to new style cube import in various places
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:13:12 +0100] rev 12556
[doc] replace legacy import to new style cube import in various places
Thu, 28 Mar 2019 11:09:29 +0100 [web/views] drop deprecated module cubicweb.web.views.timeline
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:09:29 +0100] rev 12555
[web/views] drop deprecated module cubicweb.web.views.timeline
Thu, 28 Mar 2019 11:06:02 +0100 [web/views] drop deprecated module cubicweb.web.views.massmailing
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:06:02 +0100] rev 12554
[web/views] drop deprecated module cubicweb.web.views.massmailing
Thu, 28 Mar 2019 11:05:35 +0100 [web/views] drop deprecated module cubicweb.web.views.isioc
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:05:35 +0100] rev 12553
[web/views] drop deprecated module cubicweb.web.views.isioc
Thu, 28 Mar 2019 11:04:51 +0100 [web/views] drop deprecated module cubicweb.web.views.embedding
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:04:51 +0100] rev 12552
[web/views] drop deprecated module cubicweb.web.views.embedding
Thu, 28 Mar 2019 11:04:07 +0100 [web/views] drop deprecated module cubicweb.web.views.igeocodable
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:04:07 +0100] rev 12551
[web/views] drop deprecated module cubicweb.web.views.igeocodable
Thu, 28 Mar 2019 11:00:55 +0100 [pyramid/core] drop fallback import of legacy cubes
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:00:55 +0100] rev 12550
[pyramid/core] drop fallback import of legacy cubes
Thu, 28 Mar 2019 10:33:54 +0100 [cwconfig] drop importing legacy cubes
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 10:33:54 +0100] rev 12549
[cwconfig] drop importing legacy cubes This finally drop support for legacy cubes. In cwconfig, don't load modules in the "cubes" namespace. In cube_pkginfo() handle CW_MIGRATION_MAP which wasn't working with new style cube. Drop all method specific to legacy cubes importer: cubes_search_path(), extrapath(), cls_adjust_sys_path() Drop environment variables related to legacy cubes: CW_CUBES_PATH and CW_CUBES_DIR
Thu, 28 Mar 2019 10:11:36 +0100 [doc] better documentation for "cubicweb-ctl newcube"
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 10:11:36 +0100] rev 12548
[doc] better documentation for "cubicweb-ctl newcube" cubicweb-ctl newcube create cubicweb-<name> in current directory.
Thu, 28 Mar 2019 10:09:49 +0100 [test] make unittest_cwconfig.py does not depend on legacy cube machinery
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 10:09:49 +0100] rev 12547
[test] make unittest_cwconfig.py does not depend on legacy cube machinery By dropping legacy cube tests in various places.
Thu, 28 Mar 2019 10:07:02 +0100 [devtools/test] drop legacy cube i18n tests
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 10:07:02 +0100] rev 12546
[devtools/test] drop legacy cube i18n tests test_i18ncube_legacy_layout() is droped and make others tests uses a new style cube "cubicweb_i18ntestcube", so it doesn't depends on legacy cube machinery.
Thu, 28 Mar 2019 10:04:23 +0100 [server/test] make unittest_migractions.py use new style cubes
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 10:04:23 +0100] rev 12545
[server/test] make unittest_migractions.py use new style cubes MigrationTC used old cube layout in cubicweb/server/test/data-migractions/cubes, move them to new style cubes as "cubicweb_<cubename>" in "apphome" (cubicweb/server/test/data-migractions/) which is added to PYTHONPATH by CubicWebTC.
Wed, 27 Mar 2019 16:25:06 +0100 [cwconfig] drop _cube_modname
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 16:25:06 +0100] rev 12544
[cwconfig] drop _cube_modname Since we drop support for legacy cubes, this is equivalent to _cube_pkgname()
Wed, 27 Mar 2019 16:19:50 +0100 [cwconfig] drop legacy cube importer
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 16:19:50 +0100] rev 12543
[cwconfig] drop legacy cube importer We don't want to support legacy cubes anymore.
Fri, 22 Mar 2019 17:42:36 +0100 Drop more deprecated code
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 17:42:36 +0100] rev 12542
Drop more deprecated code This follows up on changeset a8c1ea390400, in which code deprecated using logilab.common.deprecation got dropped. Now we also drop code deprecated using stdlib's warn(<msg>, DeprecationWarning). Notice that, as a consequence of dropping old/new etypes aliases in cubicweb/schema.py, we drop the import ETYPE_NAME_MAP (no longer needed); but since other modules imported that name from cubicweb.schema, we need to update the import statement to use "cubicweb" directly.
Tue, 26 Mar 2019 13:08:13 +0100 Flake8 cubicweb/cwvreg.py
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 26 Mar 2019 13:08:13 +0100] rev 12541
Flake8 cubicweb/cwvreg.py
Fri, 22 Mar 2019 17:32:30 +0100 Drop deprecated "boxes" and "contentnavigation" registries
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 17:32:30 +0100] rev 12540
Drop deprecated "boxes" and "contentnavigation" registries
Fri, 22 Mar 2019 17:29:15 +0100 Drop deprecated CWCache entity type
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 17:29:15 +0100] rev 12539
Drop deprecated CWCache entity type
Fri, 22 Mar 2019 17:30:09 +0100 Update i18n after "recent" changes
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 17:30:09 +0100] rev 12538
Update i18n after "recent" changes
Fri, 22 Mar 2019 15:53:24 +0100 Drop repair_file_1-9_migration.py
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 15:53:24 +0100] rev 12537
Drop repair_file_1-9_migration.py
Fri, 22 Mar 2019 14:48:22 +0100 Drop a left-over 3.22 deprecation warning
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 14:48:22 +0100] rev 12536
Drop a left-over 3.22 deprecation warning
Wed, 27 Mar 2019 15:53:00 +0100 [doc] fix reference to ~src/cubes in tutorial
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 15:53:00 +0100] rev 12535
[doc] fix reference to ~src/cubes in tutorial ~src/cubes refer to the $HOME/cubes directory of "src" user while ~/src/cubes refer to $HOME/src/cubes directory of current user.
Wed, 27 Mar 2019 15:52:40 +0100 [doc] replace cubicweb-ctl start by cubicweb-ctl pyramid
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 15:52:40 +0100] rev 12534
[doc] replace cubicweb-ctl start by cubicweb-ctl pyramid Since twisted support is gone.
Wed, 27 Mar 2019 15:51:50 +0100 [doc] make the tutorial use a python3 virtualenv
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 15:51:50 +0100] rev 12533
[doc] make the tutorial use a python3 virtualenv
Wed, 27 Mar 2019 15:43:53 +0100 [doc] Update README "Getting started"
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 15:43:53 +0100] rev 12532
[doc] Update README "Getting started" * install using pip and with pyramid in a virtualenv * link to pyramid.ini documentation * Use pyramid to start application since twisted support is gone
Thu, 21 Mar 2019 14:36:25 +0100 Flake8 cubicweb/devtools/httptest.py
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 14:36:25 +0100] rev 12531
Flake8 cubicweb/devtools/httptest.py
Thu, 21 Mar 2019 14:33:54 +0100 Remove Twisted web server
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 14:33:54 +0100] rev 12530
Remove Twisted web server Twisted web server is not used anymore and has been superseded by pyramid many years ago. Furthermore, our usage is not compatible with Python 3. So we drop the "etwist" sub-package. As a consequence, "all-in-one" configuration type gets dropped as it was Twisted-specific. We resurrect it in cubicweb/pyramid/config.py by only keeping options used by the "pyramid". Similarly, we introduce a AllInOneCreateHandler in cubicweb/pyramid/pyramidctl.py that is basically the one that lived in cubicweb/etwist/twctl.py and is used to create the "all-in-one" instance. Added a TODO here about "pyramid.ini" that could be generated at the end of bootstrap() method. In cubicweb/devtools/httptest.py, CubicWebServerTC is now equivalent to CubicWebWsgiTC and the latter is dropped.
Thu, 21 Mar 2019 12:05:30 +0100 Separate twisted-specific configuration from WebConfigurationBase class
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 12:05:30 +0100] rev 12529
Separate twisted-specific configuration from WebConfigurationBase class This is in preparation of dropping the Twisted web server backend. We thus draw a clearer line between what's specific to twisted from what's generic by moving WebConfigurationBase class into cubicweb/web/webconfig.py and only keeping twisted-related in AllInOneConfiguration (still living in cubicweb/etwist/twconfig.py).
Thu, 21 Mar 2019 11:50:31 +0100 Flake8 cubicweb/web/webconfig.py
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 11:50:31 +0100] rev 12528
Flake8 cubicweb/web/webconfig.py
Thu, 21 Mar 2019 11:47:10 +0100 Flake8 cubicweb/etwist/twconfig.py
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 11:47:10 +0100] rev 12527
Flake8 cubicweb/etwist/twconfig.py
Thu, 14 Mar 2019 17:16:34 +0100 Remove ctl commands using the Twisted backend
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 17:16:34 +0100] rev 12526
Remove ctl commands using the Twisted backend This backend is not maintained, very likely no longer used in any recent instance, and not supported in Python 3.
Thu, 14 Mar 2019 17:04:02 +0100 Flake8 cubicweb/cwctl.py
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 17:04:02 +0100] rev 12525
Flake8 cubicweb/cwctl.py * run autopep8 on the file * fixed unused imports * rename "version" import as "cw_version" in order not to shadow local variables
Thu, 14 Mar 2019 16:53:34 +0100 Remove _handle_win32() method from "create" command class
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 16:53:34 +0100] rev 12524
Remove _handle_win32() method from "create" command class This method generates code in a file using etwist module that we are about to drop.
Fri, 15 Mar 2019 12:12:23 +0100 Skip tests for ldapsource with python >= 3.7
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 15 Mar 2019 12:12:23 +0100] rev 12523
Skip tests for ldapsource with python >= 3.7 Until someone works on fixing these, this should make our CI green again. I tried to use setupModule() to check for python version, but pre_setup_database() is apparently called even when a SkipTest exception is raised there. So handle this in that method.
Wed, 27 Mar 2019 09:25:44 +0100 [doc] Update cubicweb-ctl page about how to run an instance
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 27 Mar 2019 09:25:44 +0100] rev 12522
[doc] Update cubicweb-ctl page about how to run an instance * remove mention of start/stop/restart/status commands that do not exist anymore * briefly mention the "pyramid" and point to respective documentation page * mention that a WSGI server should be used in production
Wed, 27 Mar 2019 09:21:18 +0100 [doc] Drop mention of the "pyramid" cube
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 27 Mar 2019 09:21:18 +0100] rev 12521
[doc] Drop mention of the "pyramid" cube This cube got merged into cubicweb several versions ago.
Thu, 21 Mar 2019 14:28:30 +0100 [cli/enh] on 'shell' or migration command, use ipython if available
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Mar 2019 14:28:30 +0100] rev 12520
[cli/enh] on 'shell' or migration command, use ipython if available
Tue, 19 Mar 2019 13:17:47 +0100 [web/test] drop dependency on third party cubes
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 19 Mar 2019 13:17:47 +0100] rev 12519
[web/test] drop dependency on third party cubes Drop dependency on cubicweb-file, cubicweb-blog and cubicweb-tag for cubicweb/web/test Copy required parts of cubes (schema, entities, views and hooks) into cubicweb/web/test/data/cubicweb-<cube> that make tests pass.
Fri, 15 Mar 2019 18:07:18 +0100 [test] drop dependency on third party cubes
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 15 Mar 2019 18:07:18 +0100] rev 12518
[test] drop dependency on third party cubes Drop dependency on cubicweb-file, cubicweb-localperms, cubicweb-tag and cubicweb-comment for cubicweb.test and cubicweb.sobjects.test Move cubicweb/test/data/libpython/cubicweb_* to cubicweb/test/data, so it's included in PYTHONPATH. Add missing parts of schema, entities, views, hooks that make tests pass.
Fri, 15 Mar 2019 17:12:20 +0100 [test] drop CubicWebConfigurationWithLegacyCubesTC
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 15 Mar 2019 17:12:20 +0100] rev 12517
[test] drop CubicWebConfigurationWithLegacyCubesTC This is used to test legacy cube import which is planned for removal in cubicweb 3.27, so drop the code.
Fri, 15 Mar 2019 17:10:16 +0100 [test] drop unittest_cubes.py
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 15 Mar 2019 17:10:16 +0100] rev 12516
[test] drop unittest_cubes.py This is used to test legacy cube import which is planned for removal in cubicweb 3.27, so drop the code.
Tue, 19 Mar 2019 14:26:51 +0100 [server/test] do not depend on third party cubes
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 19 Mar 2019 14:26:51 +0100] rev 12515
[server/test] do not depend on third party cubes Drop requirement of basket, card, comment, file, localperms and tag cubes for cubicweb.server tests. Copy needed part of schema, entities, views, hooks into the cubicweb/server/test/data directory (which is included in PYTHONPATH for CubicWebTC tests). For migration tests which use different "datapath", use symlinks to have dependent cubes importables.
Fri, 15 Mar 2019 15:51:27 +0100 [server/test] drop unused variable initialization in OperationsTC.setUp()
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 15 Mar 2019 15:51:27 +0100] rev 12514
[server/test] drop unused variable initialization in OperationsTC.setUp() Variable "self.hm" is unused
Wed, 13 Mar 2019 14:03:45 +0100 [server/test] bootstrap config in setUpModule function
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 13 Mar 2019 14:03:45 +0100] rev 12513
[server/test] bootstrap config in setUpModule function This is test initialization, so use the setUpModule function for this
Mon, 11 Mar 2019 17:43:23 +0100 [schema] drop monkeypatch "name_for" on BaseConstraint
Philippe Pepiot <philippe.pepiot@logilab.fr> [Mon, 11 Mar 2019 17:43:23 +0100] rev 12512
[schema] drop monkeypatch "name_for" on BaseConstraint BaseConstraint doesn't have "name_for" method, this is just an addition for cubicweb needs. Implement this as a function instead of a monkeypatch to avoid having "name_for" not defined because cubicweb.schema hasn't been imported. In particular this fix running cubicweb/server/test/unittest_schema2sql.py::SQLSchemaTC::test_known_values alone.
Thu, 14 Mar 2019 16:17:49 +0100 [fix] this check was too restrictive and broke tests 3.26
Laurent Peuch <cortex@worlddomination.be> [Thu, 14 Mar 2019 16:17:49 +0100] rev 12511
[fix] this check was too restrictive and broke tests
Thu, 14 Mar 2019 16:09:26 +0100 [fix] exception type has changed 3.26
Laurent Peuch <cortex@worlddomination.be> [Thu, 14 Mar 2019 16:09:26 +0100] rev 12510
[fix] exception type has changed
Wed, 13 Mar 2019 10:21:39 +0100 [server.rqlannotation] refactor to make class SQLGenAnnotator consistent
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 13 Mar 2019 10:21:39 +0100] rev 12509
[server.rqlannotation] refactor to make class SQLGenAnnotator consistent _annotate_select() takes SQLGenAnnotator as a first argument and is not used anywhere except in SQLGenAnnotator. This looks like a method to me. Let us fold it into its class.
Thu, 14 Mar 2019 12:08:37 +0100 Drop most of deprecated code
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 12:08:37 +0100] rev 12508
Drop most of deprecated code As in previous changesets, most code has been deprecated since a very long time. This changeset concerns "core" cubicweb modules (e.g. "server", "appobjects") for which it's not easy to handle change atomically. In cubicweb/server/querier.py, we adjust empty_rset() function as a result of "rqlst" argument of ResultSet being dropped. (There was no use of the keyword argument anyways.)
Thu, 14 Mar 2019 14:45:35 +0100 Drop deprecated code in cubicweb.hooks
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 14:45:35 +0100] rev 12507
Drop deprecated code in cubicweb.hooks Changelog entry will come in a later changeset.
Thu, 14 Mar 2019 14:45:27 +0100 Drop deprecated code in cubicweb.entities
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 14:45:27 +0100] rev 12506
Drop deprecated code in cubicweb.entities Also dropped an unused import along the way. Changelog entry will come in a later changeset.
Thu, 14 Mar 2019 14:45:18 +0100 Drop deprecated code in cubicweb.devtools
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 14:45:18 +0100] rev 12505
Drop deprecated code in cubicweb.devtools Changelog entry will come in a later changeset.
Thu, 14 Mar 2019 14:45:03 +0100 Drop deprecated code in cubicweb.dataimport
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 14:45:03 +0100] rev 12504
Drop deprecated code in cubicweb.dataimport We actually drop *most* of deprecated code in this subpackage. What's left is the MetaGenerator class in (cubicweb/dataimport/stores.py) which is tricky to remove as it's still internally used by cubicweb. Changelog entry will come in a later changeset.
Thu, 14 Mar 2019 14:43:18 +0100 Drop most deprecated code in cubicweb.web
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 14:43:18 +0100] rev 12503
Drop most deprecated code in cubicweb.web This includes both Python and JavaScript code. Most code has been deprecated since a very long time (versions 3.1x mostly, more than 5 years ago, and a few things until 3.24). There are still a few deprecated things, most of which are actually used within cubicweb (or in cubes we depend on for tests). I don't know what to do with these... Removed a couple of unused imports along the way. Changelog entry will come in a later changeset.
Wed, 13 Mar 2019 13:37:49 +0100 [web] use Separator "component" instead of deprecated BoxSeparator widget
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 13 Mar 2019 13:37:49 +0100] rev 12502
[web] use Separator "component" instead of deprecated BoxSeparator widget
Wed, 13 Mar 2019 13:36:38 +0100 Flake8 cubicweb/web/box.py
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 13 Mar 2019 13:36:38 +0100] rev 12501
Flake8 cubicweb/web/box.py
Thu, 14 Mar 2019 14:38:55 +0100 [test] Remove upper bound for cubicweb-localperms
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 14:38:55 +0100] rev 12500
[test] Remove upper bound for cubicweb-localperms Version 0.4.0 does not use a deprecated API that we are planning to drop in forthcoming changesets. This requires changing expected values in unittest_cwconfig.py where we scan install cubes. * In CubicWebConfigurationTC.test_available_cubes(), localperms disappears from the list of expected cubes because this test method will look for new style cubes in located in cubicweb/test/data/libpython/ (we patch pkg_resources.iter_entry_points()) as well as old style cubes installed in $PREFIX/share/cubicweb/cubes; since the new cubicweb-localperms version is new-style, it won't be catched by this method. * In CubicWebConfigurationWithLegacyCubesTC.test_available_cubes(), localperms is still listed, but now with the package name, because this method will simply look at installed cubes whether old or new style.
Thu, 14 Mar 2019 16:44:53 +0100 [test] Make the expected value explicit in CubicWebConfigurationWithLegacyCubesTC.test_available_cubes()
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 16:44:53 +0100] rev 12499
[test] Make the expected value explicit in CubicWebConfigurationWithLegacyCubesTC.test_available_cubes() This will help with the next changeset, and avoiding computation in tests is a good thing in general.
(0) -10000 -3000 -1000 -120 +120 tip