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
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)
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
Noe Gaumont <ngaumont@logilab.fr> [Thu, 18 Apr 2019 15:09:36 +0200] rev 12582
[doc] add a reference to static-messages.pot usage
Noe Gaumont <ngaumont@logilab.fr> [Thu, 18 Apr 2019 15:10:35 +0200] rev 12581
[doc] Clarify sentences
Noe Gaumont <ngaumont@logilab.fr> [Thu, 18 Apr 2019 15:05:13 +0200] rev 12580
[doc] Fix format and typo
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
Nsukami Patrick <ndkpatt at gmail dot com> [Thu, 18 Apr 2019 04:34:34 +0000] rev 12578
Fix DeprecationWarning: invalid escape sequence
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 ?
Nsukami Patrick <ndkpatt at gmail dot com> [Wed, 10 Apr 2019 17:59:17 +0000] rev 12576
Fix DeprecationWarning: invalid escape sequence \
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 11:56:13 +0200] rev 12575
DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
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
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 11:54:42 +0200] rev 12573
DeprecationWarning: Please use assertEqual instead.
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 17:25:40 +0200] rev 12572
DeprecationWarning: Please use assertRaisesRegex instead.
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()
Laurent Peuch <cortex@worlddomination.be> [Thu, 11 Apr 2019 16:47:27 +0200] rev 12570
[README] add testing instructions
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.
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.
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:21:14 +0200] rev 12566
Merge with 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
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:20:01 +0200] rev 12564
Added tag 3.26.9 for changeset 4d6909de765a
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:19:56 +0200] rev 12563
[pkg] Version 3.26.9
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.
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 14:11:40 +0200] rev 12561
Reclosing branch after merge
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 13:49:34 +0200] rev 12560
Merging heads of old, closed branch
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 14:08:10 +0200] rev 12559
Reclosing branch after merge
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 13:45:23 +0200] rev 12558
Merging heads of old, closed branch
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
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
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
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
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
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
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
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:00:55 +0100] rev 12550
[pyramid/core] drop fallback import of 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
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.
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.
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.
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.
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()
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.
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 26 Mar 2019 13:08:13 +0100] rev 12541
Flake8 cubicweb/cwvreg.py
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 17:32:30 +0100] rev 12540
Drop deprecated "boxes" and "contentnavigation" registries
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 17:29:15 +0100] rev 12539
Drop deprecated CWCache entity type
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 17:30:09 +0100] rev 12538
Update i18n after "recent" changes
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 15:53:24 +0100] rev 12537
Drop repair_file_1-9_migration.py
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 14:48:22 +0100] rev 12536
Drop a left-over 3.22 deprecation warning
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.
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.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 15:51:50 +0100] rev 12533
[doc] make the tutorial use a python3 virtualenv
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
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 14:36:25 +0100] rev 12531
Flake8 cubicweb/devtools/httptest.py
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.
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).
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 11:50:31 +0100] rev 12528
Flake8 cubicweb/web/webconfig.py
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 11:47:10 +0100] rev 12527
Flake8 cubicweb/etwist/twconfig.py
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.
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
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.
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.
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