annotate setup.py @ 1504:409d10211b20

server, browser: dynamic pages refactoring: dynamic pages has been reworked, to change the initial basic implementation. Pages are now dynamic by default, and a websocket is established by the first connected page of a session. The socket is used to transmit bridge signals, and then the signal is broadcasted to other tabs using broadcast channel. If the connecting tab is closed, an other one is chosen. Some tests are made to retry connecting in case of problem, and sometimes reload the pages (e.g. if profile is connected). Signals (or other data) are cached during reconnection phase, to avoid lost of data. All previous partial rendering mechanism have been removed, chat page is temporarily not working anymore, but will be eventually redone (one of the goal of this work is to have proper chat).
author Goffi <goffi@goffi.org>
date Wed, 01 Mar 2023 18:02:44 +0100
parents ff23865fbdbb
children eb00d593801d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1212
diff changeset
1 #!/usr/bin/env python3
1239
f511f8fbbf8a fixed shebangs
Goffi <goffi@goffi.org>
parents: 1223
diff changeset
2
1442
a06a5b510e2e /!\ package is being renamed to libervia-web following global name change /!\
Goffi <goffi@goffi.org>
parents: 1441
diff changeset
3 # Libervia Web Frontend
1398
556df721aa69 install (setup.py): update console script name and setup:
Goffi <goffi@goffi.org>
parents: 1357
diff changeset
4 # Copyright (C) 2011-2021 Jérôme Poisson (goffi@goffi.org)
818
f8a7a046ff9c copyright update
Goffi <goffi@goffi.org>
parents: 791
diff changeset
5 # Copyright (C) 2013-2016 Adrien Cossa (souliane@mailoo.org)
360
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
6
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
7 # This program is free software: you can redistribute it and/or modify
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
8 # it under the terms of the GNU Affero General Public License as published by
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
9 # the Free Software Foundation, either version 3 of the License, or
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
10 # (at your option) any later version.
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
11
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
12 # This program is distributed in the hope that it will be useful,
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
15 # GNU Affero General Public License for more details.
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
16
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
17 # You should have received a copy of the GNU Affero General Public License
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
19
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
20 from setuptools import setup
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
21 import os
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
22
1442
a06a5b510e2e /!\ package is being renamed to libervia-web following global name change /!\
Goffi <goffi@goffi.org>
parents: 1441
diff changeset
23 NAME = "libervia-web"
a06a5b510e2e /!\ package is being renamed to libervia-web following global name change /!\
Goffi <goffi@goffi.org>
parents: 1441
diff changeset
24 # NOTE: directory is still "libervia" for compatibility reason, should be changed for 0.9
a06a5b510e2e /!\ package is being renamed to libervia-web following global name change /!\
Goffi <goffi@goffi.org>
parents: 1441
diff changeset
25 DIR_NAME = "libervia"
360
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
26
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
27 install_requires = [
1452
15bb2673eb72 install (setup): update `libervia-backend` version requirement
Goffi <goffi@goffi.org>
parents: 1442
diff changeset
28 "libervia-backend == 0.9.*",
1489
ff23865fbdbb install (setup): remove upper bound for `twisted` and `libervia-templates` versions
Goffi <goffi@goffi.org>
parents: 1452
diff changeset
29 "libervia-templates >0.8.0b1",
ff23865fbdbb install (setup): remove upper bound for `twisted` and `libervia-templates` versions
Goffi <goffi@goffi.org>
parents: 1452
diff changeset
30 'twisted[tls] >=20.3.0',
1441
c34e973587bd install: set upper limit for dependencies versions
Goffi <goffi@goffi.org>
parents: 1413
diff changeset
31 "zope.interface <5.5.0",
c34e973587bd install: set upper limit for dependencies versions
Goffi <goffi@goffi.org>
parents: 1413
diff changeset
32 'pyopenssl <21.0.0',
c34e973587bd install: set upper limit for dependencies versions
Goffi <goffi@goffi.org>
parents: 1413
diff changeset
33 "jinja2 >=2.9, <3.1",
c34e973587bd install: set upper limit for dependencies versions
Goffi <goffi@goffi.org>
parents: 1413
diff changeset
34 'shortuuid <1.1',
c34e973587bd install: set upper limit for dependencies versions
Goffi <goffi@goffi.org>
parents: 1413
diff changeset
35 "autobahn <21.4.0",
c34e973587bd install: set upper limit for dependencies versions
Goffi <goffi@goffi.org>
parents: 1413
diff changeset
36 "brython >=3.9.2, <3.10",
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
37 ]
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1212
diff changeset
38 long_description = """\
1442
a06a5b510e2e /!\ package is being renamed to libervia-web following global name change /!\
Goffi <goffi@goffi.org>
parents: 1441
diff changeset
39 Web frontend for Libervia (formerly Salut à Toi), a multi-frontends and multi-purposes XMPP client.
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
40 It features chat, blog, forums, events, tickets, merge requests, file sharing, photo albums, etc.
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
41 It is also a decentralized, XMPP based web framework.
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
42 """
360
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
43
1442
a06a5b510e2e /!\ package is being renamed to libervia-web following global name change /!\
Goffi <goffi@goffi.org>
parents: 1441
diff changeset
44 with open(os.path.join(DIR_NAME, "VERSION")) as v:
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
45 VERSION = v.read().strip()
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
46 is_dev_version = VERSION.endswith("D")
360
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
47
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
48
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
49 def libervia_dev_version():
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
50 """Use mercurial data to compute version"""
360
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
51
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
52 def version_scheme(version):
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
53 return VERSION.replace("D", ".dev0")
360
9834136b15ed added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff changeset
54
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
55 def local_scheme(version):
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
56 return "+{rev}.{distance}".format(rev=version.node[1:], distance=version.distance)
449
981ed669d3b3 /!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents: 447
diff changeset
57
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
58 return {"version_scheme": version_scheme, "local_scheme": local_scheme}
449
981ed669d3b3 /!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents: 447
diff changeset
59
981ed669d3b3 /!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents: 447
diff changeset
60
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
61 setup(
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
62 name=NAME,
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
63 version=VERSION,
1442
a06a5b510e2e /!\ package is being renamed to libervia-web following global name change /!\
Goffi <goffi@goffi.org>
parents: 1441
diff changeset
64 description="Web frontend for Libervia",
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
65 long_description=long_description,
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
66 author="Association « Salut à Toi »",
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
67 author_email="contact@goffi.org",
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
68 url="https://www.salut-a-toi.org",
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
69 classifiers=[
1223
4976eb0f5315 install (setup.py): updated classifiers
Goffi <goffi@goffi.org>
parents: 1222
diff changeset
70 "Programming Language :: Python :: 3 :: Only",
4976eb0f5315 install (setup.py): updated classifiers
Goffi <goffi@goffi.org>
parents: 1222
diff changeset
71 "Programming Language :: Python :: 3.7",
1398
556df721aa69 install (setup.py): update console script name and setup:
Goffi <goffi@goffi.org>
parents: 1357
diff changeset
72 "Programming Language :: Python :: 3.8",
556df721aa69 install (setup.py): update console script name and setup:
Goffi <goffi@goffi.org>
parents: 1357
diff changeset
73 "Programming Language :: Python :: 3.9",
1223
4976eb0f5315 install (setup.py): updated classifiers
Goffi <goffi@goffi.org>
parents: 1222
diff changeset
74 "Development Status :: 5 - Production/Stable",
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
75 "Environment :: Web Environment",
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
76 "Framework :: Twisted",
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
77 "License :: OSI Approved :: GNU Affero General Public License v3 "
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
78 "or later (AGPLv3+)",
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
79 "Operating System :: POSIX :: Linux",
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
80 "Topic :: Communications :: Chat",
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
81 ],
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
82 packages=["libervia", "libervia.common", "libervia.server", "twisted.plugins"],
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
83 include_package_data=True,
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
84 data_files=[(os.path.join("share", "doc", NAME), ["COPYING", "README", "INSTALL"])]
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
85 + [
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
86 (os.path.join("share", NAME, root), [os.path.join(root, f) for f in files])
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1212
diff changeset
87 for root, dirs, files in os.walk("themes")
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
88 ],
1272
3a3f3bccd65b server: Libervia server is now launched with a Python script, following backend change
Goffi <goffi@goffi.org>
parents: 1253
diff changeset
89 entry_points={
3a3f3bccd65b server: Libervia server is now launched with a Python script, following backend change
Goffi <goffi@goffi.org>
parents: 1253
diff changeset
90 "console_scripts": [
1398
556df721aa69 install (setup.py): update console script name and setup:
Goffi <goffi@goffi.org>
parents: 1357
diff changeset
91 "libervia-web = libervia.server.launcher:Launcher.run",
1272
3a3f3bccd65b server: Libervia server is now launched with a Python script, following backend change
Goffi <goffi@goffi.org>
parents: 1253
diff changeset
92 ],
3a3f3bccd65b server: Libervia server is now launched with a Python script, following backend change
Goffi <goffi@goffi.org>
parents: 1253
diff changeset
93 },
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
94 zip_safe=False,
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
95 setup_requires=["setuptools_scm"] if is_dev_version else [],
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
96 use_scm_version=libervia_dev_version if is_dev_version else False,
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
97 install_requires=install_requires,
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
98 package_data={"libervia": ["VERSION"]},
1253
6d49fae517ba pages: browser metadata + root `_browser`:
Goffi <goffi@goffi.org>
parents: 1249
diff changeset
99 python_requires=">=3.7",
1124
28e3eb3bb217 files reorganisation and installation rework:
Goffi <goffi@goffi.org>
parents: 1121
diff changeset
100 )