[pyramid] Add a "pyramid" instance configuration type
In a new module 'cubicweb.pyramid.config' we define a "pyramid" instance
configuration type. The noticeable feature of this configuration is that it
manages a 'development.ini' file that gets installed in application home
(along with `.conf` file). This file is templated and includes generated
values for secrets of session and authtk tokens.
This means that we can just call:
pserve etc/cubicweb.d/<appname>/development.ini
or
gunicorn --paste etc/cubicweb.d/<appname>/development.ini -b :8080
just after instance creation to get a pyramid instance running without having
to hack around a 'pyramid.ini' file.
This patch drops 'development.ini' from skeleton and moves it in
cubicweb/pyramid so that it gets installed at instance creation which is more
appropriate than in cube creation.
The new configuration class sets "cubicweb.bwcompat" setting to false so it is
not intended to replace the "all-in-one" configuration type (which would
require a bit more work). This configuration is close to the the 'repository'
configuration type with just a couple of options from WebConfiguration that
are needed for Pyramid (anonymous user/password plus some miscellaneous
options that I'm not so sure are really needed). Note, in particular, that we
do not pull CORS settings to be injected as a WSGI middleware like in
wsgi_application_from_cwconfig() since I believe this should be left as an
end-user responsibility and since this can be defined in a standard way in
paste configuration. This configuration inherits from ServerConfiguration but
registers the same appobjects as WebConfiguration.
In cubicweb.web.request._CubicWebRequestBase, we guard against access to
"uiprops" and "datadir_url" of the config because this new "pyramid" config
does not have these (this does not make sense without bwcompat mode). At some
point, we should either avoid using `cw_request`'s pyramid request attribute
or make cubicweb's web request really independant of existing implementation
and drop these assumptions.
Source: cubicweb
Section: web
Priority: optional
Maintainer: Logilab S.A. <contact@logilab.fr>
Uploaders: Sylvain Thenault <sylvain.thenault@logilab.fr>,
David Douard <david.douard@logilab.fr>,
Build-Depends:
debhelper (>= 9),
dh-python,
dh-systemd,
python-all,
python-setuptools,
python-six (>= 1.4.0),
python-docutils,
python-sphinx,
python-logilab-common (>= 1.2.2),
python-unittest2 (>= 0.7.0),
python-logilab-mtconverter,
python-markdown,
python-tz,
python-rql (>= 0.34.0),
python-yams (>= 0.44.0),
python-lxml,
python-setuptools,
python-pyramid,
python-pyramid-multiauth,
python-waitress,
python-passlib (>= 1.7.0),
python-repoze.lru,
python-wsgicors,
sphinx-common,
Standards-Version: 3.9.6
Homepage: https://www.cubicweb.org
X-Python-Version: >= 2.7
Package: python-cubicweb
Architecture: all
Depends:
${misc:Depends},
${python:Depends},
python-six (>= 1.4.0),
python-logilab-mtconverter (>= 0.8.0),
python-logilab-common (>= 1.2.2),
python-logilab-database (>= 1.15.0),
python-yams (>= 0.44.0),
python-rql (>= 0.34.0),
python-unittest2 (>= 0.7.0),
python-lxml,
python-markdown,
python-passlib,
python-tz,
graphviz,
gettext,
Recommends:
cubicweb-ctl (= ${source:Version}),
python-cubicweb-postgresql-support (= ${source:Version})
| sqlite3,
python-cubicweb-pyramid (= ${source:Version}),
# common recommends
python-simpletal (>= 4.0),
python-crypto,
# web recommends (mostly)
python-docutils (>= 0.6),
python-vobject,
fckeditor,
python-fyzz,
python-imaging,
python-rdflib,
python-werkzeug,
# dev recommends
python-pysqlite2,
Suggests:
python-zmq,
python-cwclientlib (>= 0.4.0),
python-cubicweb-twisted (= ${source:Version}),
python-cubicweb-documentation (= ${source:Version}),
w3c-dtd-xhtml,
xvfb,
Replaces:
cubicweb (<< 3.24.0-1~),
cubicweb-server (<< 3.24.0-1~),
cubicweb-twisted (<< 3.24.0-1~),
cubicweb-web (<< 3.24.0-1~),
cubicweb-core,
cubicweb-common (<< 3.24.0-1~),
Breaks:
cubicweb (<< 3.24.0-1~),
cubicweb-server (<< 3.24.0-1~),
cubicweb-twisted (<< 3.24.0-1~),
cubicweb-inlinedit (<< 1.1.1),
cubicweb-bootstrap (<< 0.6.6),
cubicweb-folder (<< 1.10.0),
cubicweb-web (<< 3.24.0-1~),
cubicweb-comment (<< 1.9.1),
cubicweb-person (<< 1.8.0),
cubicweb-geocoding (<< 0.2.0),
cubicweb-invoice (<< 0.6.1),
cubicweb-mercurial-server (<< 0.4.2),
cubicweb-forgotpwd (<< 0.4.3),
cubicweb-registration (<< 0.4.3),
cubicweb-vcsfile (<< 1.15.0),
cubicweb-bootstrap (<< 0.6),
cubicweb-common (<< 3.24.0-1~),
Provides:
cubicweb,
cubicweb-server,
cubicweb-web-frontend,
cubicweb-web,
cubicweb-common,
Conflicts:
cubicweb-multisources,
cubicweb-core,
Description: the complete CubicWeb framework
CubicWeb is a semantic web application framework.
.
This metapackage will install all the components you need to run cubicweb on a
single machine. You can also deploy cubicweb by running the different process
on different computers, in which case you need to install the corresponding
packages on the different hosts.
Package: python-cubicweb-postgresql-support
Architecture: all
# postgresql-client packages for backup/restore of non local database
Replaces: cubicweb-postgresql-support (<< 3.24.0-1~)
Breaks: cubicweb-postgresql-support (<< 3.24.0-1~)
Provides: cubicweb-postgresql-support
Depends:
${misc:Depends},
${python:Depends},
python-psycopg2,
postgresql-client
Description: postgres support for the CubicWeb framework
CubicWeb is a semantic web application framework.
.
This virtual package provides dependencies to use PostgreSQL for the
cubicweb repository.
Package: python-cubicweb-twisted
Architecture: all
Depends:
python-cubicweb (= ${source:Version}),
python-twisted-web (<< 16.0.0),
Description: meta package to use Twisted as HTTP server for CubicWeb
CubicWeb is a semantic web application framework.
.
This package includes dependencies to run a Twisted based HTTP server to serve
the adaptative web interface.
Package: python-cubicweb-pyramid
Architecture: all
Depends:
python-cubicweb (= ${source:Version}),
python-pyramid (>= 1.5.0),
python-pyramid-multiauth,
python-waitress (>= 0.8.9),
python-wsgicors,
python-repoze.lru,
Recommends:
python-pyramid-debugtoolbar
Conflicts:
pyramid-cubicweb
Replaces:
pyramid-cubicweb
Description: meta package to use Pyramid as HTTP server for CubicWeb
Provides pyramid extensions to load a CubicWeb instance and serve it through
the pyramid stack.
Package: cubicweb-ctl
Architecture: all
Depends:
${misc:Depends},
${python:Depends},
python-cubicweb (= ${source:Version})
Description: tool to manage the CubicWeb framework
CubicWeb is a semantic web application framework.
.
This package provides a control script to manage (create, upgrade, start,
stop, etc) CubicWeb applications. It also include the init.d script
to automatically start and stop CubicWeb applications on boot or shutdown.
Package: python-cubicweb-documentation
Architecture: all
Section: doc
Replaces: cubicweb-documentation (<< 3.24.0-1~)
Breaks: cubicweb-documentation (<< 3.24.0-1~)
Provides: cubicweb-documentation
Depends:
${misc:Depends},
${sphinxdoc:Depends},
Recommends:
doc-base
Description: documentation for the CubicWeb framework
CubicWeb is a semantic web application framework.
.
This package provides the system's documentation.
# Transitional packages after renaming of (most) binary packages
Package: cubicweb
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-server
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-postgresql-support
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb-postgresql-support, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-twisted
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb-twisted, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-web
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-common
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-dev
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-documentation
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb-documentation, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.