Tue, 11 Jun 2019 09:40:12 +0200 Fix sorting key for rdefs in schema viewer
julien tayon <julien.tayon@logilab.fr> [Tue, 11 Jun 2019 09:40:12 +0200] rev 12640
Fix sorting key for rdefs in schema viewer With changeset 234ca3cbbb46, clicking in the schema of an entity with cubicweb in py3 on "vue en boite" will probably result in an infinite spinner (which implies cw > 3.26) What happened ? This "vue en boite" used to work at least until... hg diff -c a8c1ea390400 cubicweb/schema.py @@ -993,10 +992,6 @@ class CubicWebRelationSchema(PermissionM return False return True - @deprecated('use .rdef(subjtype, objtype).role_cardinality(role)') - def cardinality(self, subjtype, objtype, target): - return self.rdef(subjtype, objtype).role_cardinality(target) - class CubicWebSchema(Schema): """set of entities and relations schema defining the possible data sets But, wait ... If I open a shell on an instance of cw 3.24 something seems off >>> list(schema['CWUniqueTogetherConstraint'].relation_definitions())[0][0].cardinality # <bound method CubicWebRelationSchema.wrapped of <constraint_of [CWUniqueTogetherConstraint,CWEType]>> We have been sorting on a method the whole time ? Is it possible what were the effects ? 1) We cannot sort function can't we ? >>> def adder(i): return lambda x: x+i >>> sorted(map(adder,range(10))) [<function __main__.<lambda>>, <function __main__.<lambda>>, ... Yes we can. 2) what does it means. >>> { adder(1) : 1 } Out[19]: {<function __main__.<lambda>>: 1} In fact the function object as a __hash__ method (which is practical for making memoizers (cache)), and return truly random results (pseudo random). My take on this patch is relations have NEVER been sorted by cardinality. No one never ever noticed. Hence, I propose to not fix a bug that never was reported.
Tue, 04 Jun 2019 09:35:47 +0200 Flake8 cubicweb/web/schemaviewer.py
julien tayon <julien.tayon@logilab.fr> [Tue, 04 Jun 2019 09:35:47 +0200] rev 12639
Flake8 cubicweb/web/schemaviewer.py
Tue, 04 Jun 2019 09:35:47 +0200 [py3] changing unicode to str
julien tayon <julien.tayon@logilab.fr> [Tue, 04 Jun 2019 09:35:47 +0200] rev 12638
[py3] changing unicode to str py2 support being dropped, passing the code in full py3 str/bytes syntax
Tue, 11 Jun 2019 09:07:24 +0200 [py3] Use sorted(key=...) instead of sorted(cmp=...)
julien tayon <julien.tayon@logilab.fr> [Tue, 11 Jun 2019 09:07:24 +0200] rev 12637
[py3] Use sorted(key=...) instead of sorted(cmp=...)
Fri, 07 Jun 2019 14:56:22 +0200 Merge with 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 07 Jun 2019 14:56:22 +0200] rev 12636
Merge with 3.26
Fri, 07 Jun 2019 14:53:03 +0200 Added tag 3.26.11, debian/3.26.11-1 for changeset 633ca84bea58 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 07 Jun 2019 14:53:03 +0200] rev 12635
Added tag 3.26.11, debian/3.26.11-1 for changeset 633ca84bea58
Fri, 07 Jun 2019 14:52:51 +0200 [pkg] Version 3.26.11 3.26 3.26.11 debian/3.26.11-1
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 07 Jun 2019 14:52:51 +0200] rev 12634
[pkg] Version 3.26.11
Thu, 06 Jun 2019 16:40:14 +0200 Added tag debian/3.26.10-1 for changeset 0ce26fb5ab48 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 06 Jun 2019 16:40:14 +0200] rev 12633
Added tag debian/3.26.10-1 for changeset 0ce26fb5ab48
Thu, 23 May 2019 16:59:57 +0200 [debian] New upstream release 3.26 debian/3.26.10-1
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 May 2019 16:59:57 +0200] rev 12632
[debian] New upstream release
Thu, 23 May 2019 17:24:21 +0200 [debian] Drop override_dh_auto_install about cubicweb-ctl 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 May 2019 17:24:21 +0200] rev 12631
[debian] Drop override_dh_auto_install about cubicweb-ctl The script should be installed normally as it is a setuptools' entry point.
Thu, 23 May 2019 17:25:59 +0200 [debian] Remove test/doc Build-Depends 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 May 2019 17:25:59 +0200] rev 12630
[debian] Remove test/doc Build-Depends We are not actually running tests during package build. (This was disabled for python2, now it is also for python3.) And having these build-depends makes it hard to rebuild the package.
Tue, 28 May 2019 12:35:34 +0200 [fix] parse cube version number without space in them
Laurent Peuch <cortex@worlddomination.be> [Tue, 28 May 2019 12:35:34 +0200] rev 12629
[fix] parse cube version number without space in them
Fri, 24 May 2019 17:09:10 +0200 Install patched yapps for test from an http archive
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 24 May 2019 17:09:10 +0200] rev 12628
Install patched yapps for test from an http archive Instead of git which require git to be installed. Also downloading archive is faster than cloning the repository.
Thu, 28 Mar 2019 11:39:36 +0100 [server/test] make test filename uniques
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:39:36 +0100] rev 12627
[server/test] make test filename uniques To avoid these pytest error when collecting the whole test suite: import file mismatch: imported module 'unittest_utils' has this __file__ attribute: cubicweb/cubicweb/server/test/unittest_utils.py which is not the same as the test file we want to collect: cubicweb/cubicweb/test/unittest_utils.py Move cubicweb/server/test/unittest_security.py to cubicweb/server/test/unittest_security.py and cubicweb/test/unittest_utils.py to cubicweb/test/unittest_server_utils.py
Fri, 24 May 2019 16:29:14 +0200 Merge 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 24 May 2019 16:29:14 +0200] rev 12626
Merge 3.26
Tue, 21 May 2019 10:50:08 +0200 [dataimport] Fix case when extid is text in use_extid_as_cwuri() 3.26
julien tayon <julien.tayon@logilab.fr> [Tue, 21 May 2019 10:50:08 +0200] rev 12625
[dataimport] Fix case when extid is text in use_extid_as_cwuri() Extid can be bytes or text. This avoid AttributeError: 'str' object has no attribute 'decode'
Wed, 22 May 2019 11:34:08 +0200 [doc] fix key used in the hook example
Noe Gaumont <ngaumont@logilab.fr> [Wed, 22 May 2019 11:34:08 +0200] rev 12624
[doc] fix key used in the hook example The hook's regid is check_no_subsidiary_cycle.
Wed, 22 May 2019 11:32:09 +0200 [doc] set_operation has been replaced by add_data
Noe Gaumont <ngaumont@logilab.fr> [Wed, 22 May 2019 11:32:09 +0200] rev 12623
[doc] set_operation has been replaced by add_data See the changelog https://cubicweb.readthedocs.io/en/3.26/changes/changelog/#id14
Wed, 22 May 2019 11:30:52 +0200 [doc] check_cycle is a standard function
Noe Gaumont <ngaumont@logilab.fr> [Wed, 22 May 2019 11:30:52 +0200] rev 12622
[doc] check_cycle is a standard function
Wed, 22 May 2019 11:29:49 +0200 [doc] fix several typos
Noe Gaumont <ngaumont@logilab.fr> [Wed, 22 May 2019 11:29:49 +0200] rev 12621
[doc] fix several typos
Tue, 21 May 2019 10:18:54 +0200 [pkg] make cubicweb[crypto] depends on pycryptodome instead of pycrypto
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 21 May 2019 10:18:54 +0200] rev 12620
[pkg] make cubicweb[crypto] depends on pycryptodome instead of pycrypto pycrypto isn't maintained anymore, the last release 2.6.1 is from 2014. Use the drop-in replacement fork pycryptodome instead. pycryptodome is packaged in debian starting from stretch-backports.
Tue, 21 May 2019 10:18:38 +0200 [crypto] Encode unicode strings in _cypherer()
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 21 May 2019 10:18:38 +0200] rev 12619
[crypto] Encode unicode strings in _cypherer() pycrypto accept both bytes or string but pycryptodome, which will be introduced in next changeset, doesn't accept this. For backward compatibility, encode unicode strings in _cypherer()
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
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 tip