Mercurial > libervia-backend
annotate setup.py @ 2716:06160b529da6
core (memory/sqlite): changed history constraint
/!\ Database schema change /!\
History was using a unique constraint on `profile_id, timestamp, source, dest, source_res, dest_res`, which can cause trouble because several messages send quickly by the same person can have a common timestamp (specially with delayed messages where precision is second), resulting in message loss.
The new constraint use `profile_id, stanza_id, source, dest` where `stanza_id` is XEP-0359 stanza_id, so it's unique by definition, and no message should be lost anymore.
Because sqlite doesn't support altering table with a constraint change, we have to create new tables and copy old data to new one, which can be pretty long.
Sqlite update mechanism with "specifics" has been fixed when several updates are applied (e.g. moving from v5 to v7) and a specific is in the workflow.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 09 Dec 2018 14:07:26 +0100 |
parents | d51a3381cb78 |
children | eb58f26ed236 |
rev | line source |
---|---|
884 | 1 #!/usr/bin/env python2 |
225 | 2 # -*- coding: utf-8 -*- |
3 | |
2574 | 4 # SAT: an XMPP client |
1766 | 5 # Copyright (C) 2009-2016 Jérôme Poisson (goffi@goffi.org) |
6 # Copyright (C) 2013-2016 Adrien Cossa (souliane@mailoo.org) | |
238
83d2bc0abf2a
version, README, CHANGELOG and INSTALL updates
Goffi <goffi@goffi.org>
parents:
237
diff
changeset
|
7 |
609
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
607
diff
changeset
|
8 # This program is free software: you can redistribute it and/or modify |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
607
diff
changeset
|
9 # it under the terms of the GNU Affero General Public License as published by |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
607
diff
changeset
|
10 # the Free Software Foundation, either version 3 of the License, or |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
607
diff
changeset
|
11 # (at your option) any later version. |
238
83d2bc0abf2a
version, README, CHANGELOG and INSTALL updates
Goffi <goffi@goffi.org>
parents:
237
diff
changeset
|
12 |
609
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
607
diff
changeset
|
13 # This program is distributed in the hope that it will be useful, |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
607
diff
changeset
|
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
607
diff
changeset
|
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
607
diff
changeset
|
16 # GNU Affero General Public License for more details. |
238
83d2bc0abf2a
version, README, CHANGELOG and INSTALL updates
Goffi <goffi@goffi.org>
parents:
237
diff
changeset
|
17 |
609
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
607
diff
changeset
|
18 # You should have received a copy of the GNU Affero General Public License |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
607
diff
changeset
|
19 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
238
83d2bc0abf2a
version, README, CHANGELOG and INSTALL updates
Goffi <goffi@goffi.org>
parents:
237
diff
changeset
|
20 |
2562 | 21 from setuptools import setup, find_packages |
586
6a718ede8be1
Fix coding style in setup.py.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
581
diff
changeset
|
22 import os |
2562 | 23 |
24 NAME = 'sat' | |
1100
2be46f391cfa
setup: SAT_INSTALL environment variable handles "clean" and "purge" options
souliane <souliane@mailoo.org>
parents:
1054
diff
changeset
|
25 |
2562 | 26 install_requires = [ |
27 'babel', | |
28 'dbus-python', | |
29 'html2text', | |
30 'jinja2', | |
31 'langid', | |
32 'lxml >= 3.1.0', | |
33 'markdown', | |
34 'miniupnpc', | |
35 'mutagen', | |
36 'netifaces', | |
37 'pillow', | |
38 'progressbar', | |
39 'pycrypto >= 2.6.1', | |
40 'pygments', | |
41 'pygobject', | |
42 'PyOpenSSL', | |
2611
c180ca699e72
install (setup): added python-dateutil as dependency (was already a dependency of Wokkel)
Goffi <goffi@goffi.org>
parents:
2576
diff
changeset
|
43 'python-dateutil', |
2562 | 44 'python-potr', |
45 'pyxdg', | |
2567
ecb14a6036ae
setup: minimal version of sat_tmp is 0.0.3
Goffi <goffi@goffi.org>
parents:
2565
diff
changeset
|
46 'sat_tmp>=0.0.3', |
2562 | 47 'service_identity', |
48 'shortuuid', | |
49 'twisted >= 15.2.0', | |
50 'urwid >= 1.2.0', | |
51 'urwid-satext >= 0.6.1', | |
52 'wokkel >= 0.7.1', | |
2679
d51a3381cb78
install: don't do conditional requirement for omemo anymore, it should now work on all unixes
Goffi <goffi@goffi.org>
parents:
2677
diff
changeset
|
53 'omemo', |
2562 | 54 ] |
1123 | 55 |
1150
beaf8d4475e4
misc (D-Bus, installation): added a .service file for D-Bus auto-launch feature + installation from setup.py (path adaptation now use regex).
Goffi <goffi@goffi.org>
parents:
1138
diff
changeset
|
56 DBUS_DIR = 'dbus-1/services' |
2637 | 57 DBUS_FILE = 'misc/org.salutatoi.SAT.service' |
2574 | 58 with open(os.path.join(NAME, 'VERSION')) as f: |
2571
4aca060075b7
setup: version is now set in SAT/VERSION, sat is not imported anymore in setup
Goffi <goffi@goffi.org>
parents:
2567
diff
changeset
|
59 VERSION = f.read().strip() |
2572 | 60 is_dev_version = VERSION.endswith('D') |
61 | |
62 | |
63 def sat_dev_version(): | |
64 """Use mercurial data to compute version""" | |
65 def version_scheme(version): | |
2576
cb7bf936d8e8
setup, tools(utils): fixed versioning in setup and getRepositoryData
Goffi <goffi@goffi.org>
parents:
2574
diff
changeset
|
66 return VERSION.replace('D', '.dev0') |
2572 | 67 |
68 def local_scheme(version): | |
2576
cb7bf936d8e8
setup, tools(utils): fixed versioning in setup and getRepositoryData
Goffi <goffi@goffi.org>
parents:
2574
diff
changeset
|
69 return "+{rev}.{distance}".format( |
2572 | 70 rev=version.node[1:], |
71 distance=version.distance) | |
72 | |
73 return {'version_scheme': version_scheme, | |
74 'local_scheme': local_scheme} | |
1150
beaf8d4475e4
misc (D-Bus, installation): added a .service file for D-Bus auto-launch feature + installation from setup.py (path adaptation now use regex).
Goffi <goffi@goffi.org>
parents:
1138
diff
changeset
|
75 |
2565
ea106dfa2145
setup, constant: use https address in APP_URL, and keep pypi NAME separated from constants
Goffi <goffi@goffi.org>
parents:
2564
diff
changeset
|
76 |
ea106dfa2145
setup, constant: use https address in APP_URL, and keep pypi NAME separated from constants
Goffi <goffi@goffi.org>
parents:
2564
diff
changeset
|
77 setup(name=NAME, |
2571
4aca060075b7
setup: version is now set in SAT/VERSION, sat is not imported anymore in setup
Goffi <goffi@goffi.org>
parents:
2567
diff
changeset
|
78 version=VERSION, |
2562 | 79 description=u'Salut à Toi multipurpose and multi frontend XMPP client', |
2620 | 80 long_description=u'Salut à Toi (SàT) is a XMPP client based on a daemon/frontend ' |
81 u'architecture. Its multi frontend (desktop, web, console ' | |
82 u'interface, CLI, etc) and multipurpose (instant messaging, ' | |
83 u'microblogging, games, file sharing, etc).', | |
1123 | 84 author='Association « Salut à Toi »', |
85 author_email='contact@goffi.org', | |
2571
4aca060075b7
setup: version is now set in SAT/VERSION, sat is not imported anymore in setup
Goffi <goffi@goffi.org>
parents:
2567
diff
changeset
|
86 url='https://salut-a-toi.org', |
225 | 87 classifiers=['Development Status :: 3 - Alpha', |
88 'Environment :: Console', | |
89 'Framework :: Twisted', | |
2620 | 90 'License :: OSI Approved :: GNU Affero General Public License v3 ' |
91 'or later (AGPLv3+)', | |
225 | 92 'Operating System :: POSIX :: Linux', |
93 'Topic :: Communications :: Chat'], | |
2562 | 94 packages=find_packages() + ['twisted.plugins'], |
2640
f93619e16ea0
install (setup.py): don't use sys.prefix for locales
Goffi <goffi@goffi.org>
parents:
2637
diff
changeset
|
95 data_files=[('share/locale/fr/LC_MESSAGES', |
2620 | 96 ['i18n/fr/LC_MESSAGES/sat.mo']), |
97 (os.path.join('share/doc', NAME), | |
98 ['CHANGELOG', 'COPYING', 'INSTALL', 'README', 'README4TRANSLATORS']), | |
2562 | 99 (os.path.join('share', DBUS_DIR), [DBUS_FILE]), |
227 | 100 ], |
2562 | 101 scripts=['sat_frontends/jp/jp', 'sat_frontends/primitivus/primitivus', 'bin/sat'], |
230
b25cbec73c1e
distutils: removes build and dist from manifest's prune
Goffi <goffi@goffi.org>
parents:
227
diff
changeset
|
102 zip_safe=False, |
2572 | 103 setup_requires=['setuptools_scm'] if is_dev_version else [], |
104 use_scm_version=sat_dev_version if is_dev_version else False, | |
2562 | 105 install_requires=install_requires, |
2571
4aca060075b7
setup: version is now set in SAT/VERSION, sat is not imported anymore in setup
Goffi <goffi@goffi.org>
parents:
2567
diff
changeset
|
106 package_data={'sat': ['VERSION']}, |
2562 | 107 python_requires='~=2.7', |
1846
fdc1dfcee35e
install: removed "nox" option as there is no more X dependency since WIX has been deprecated
Goffi <goffi@goffi.org>
parents:
1809
diff
changeset
|
108 ) |