##// END OF EJS Templates
release preparations
ergo -
Show More
@@ -1,28 +1,28 b''
1 1 # Changelog
2 2
3 3 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
4 4
5 5 <!--
6 6 PRs should document their user-visible changes (if any) in the
7 7 Unreleased section, uncommenting the header as necessary.
8 8 -->
9 9
10 10 <!-- ## Unreleased -->
11 11 <!-- ### Changed -->
12 12 <!-- ### Added -->
13 13 <!-- ### Removed -->
14 14 <!-- ### Fixed -->
15 15
16 16
17 ## Unreleased [2.0.0 - 2019-04-XX]
17 ## [2.0.0rc1 - 2019-04-13]
18 18 ### Changed
19 19 * require Elasticsearch 6.x
20 20 * move data structure to single document per index
21 21 * got rid of bower and moved to npm in build process
22 22 * updated angular packages to new versions
23 23
24 24 ## [1.2.0 - 2019-03-17]
25 25 ### Changed
26 26 * Replaced elasticsearch client
27 27 * Bumped a most deps to latest version
28 28 * Preparing to move from elasticsearch 2.x to modern versions
@@ -1,110 +1,105 b''
1 1 AppEnlight
2 2 -----------
3 3
4 4 Automatic Installation
5 5 ======================
6 6
7 7 Use the ansible scripts in the `automation` repository to build complete instance of application
8 8 You can also use `packer` files in `automation/packer` to create whole VM's for KVM and VMWare.
9 9
10 10 Manual Installation
11 11 ===================
12 12
13 13 To run the app you need to have meet prerequsites:
14 14
15 15 - python 3.5+ (currently 3.6 tested)
16 16 - running elasticsearch (6.6.2 tested)
17 17 - running postgresql (9.5+ required, tested 9.6 and 10.6)
18 18 - running redis
19 19
20 20 Install the app by performing
21 21
22 22 pip install -r requirements.txt
23 23
24 24 python setup.py develop
25 25
26 26 Install the appenlight uptime plugin (`ae_uptime_ce` package from `appenlight-uptime-ce` repository).
27 27
28 28 For production usage you can do:
29 29
30 30 pip install appenlight
31 31 pip install ae_uptime_ce
32 32
33 33
34 34 After installing the application you need to perform following steps:
35 35
36 36 1. (optional) generate production.ini (or use a copy of development.ini)
37 37
38 38
39 39 appenlight-make-config production.ini
40 40
41 41 2. Setup database structure:
42 42
43 43
44 44 appenlight-migratedb -c FILENAME.ini
45 45
46 46 3. To configure elasticsearch:
47 47
48 48
49 49 appenlight-reindex-elasticsearch -t all -c FILENAME.ini
50 50
51 51 4. Create base database objects
52 52
53 53 (run this command with help flag to see how to create administrator user)
54 54
55 55
56 56 appenlight-initializedb -c FILENAME.ini
57 57
58 58 5. Generate static assets
59 59
60 60
61 61 appenlight-static -c FILENAME.ini
62 62
63 63 Running application
64 64 ===================
65 65
66 66 To run the main app:
67 67
68 68 pserve development.ini
69 69
70 70 To run celery workers:
71 71
72 72 celery worker -A appenlight.celery -Q "reports,logs,metrics,default" --ini FILENAME.ini
73 73
74 74 To run celery beat:
75 75
76 76 celery beat -A appenlight.celery --ini FILENAME.ini
77 77
78 78 To run appenlight's uptime plugin:
79 79
80 80 appenlight-uptime-monitor -c FILENAME.ini
81 81
82 82 Real-time Notifications
83 83 =======================
84 84
85 85 You should also run the `channelstream websocket server for real-time notifications
86 86
87 87 channelstream -i filename.ini
88 88
89 89 Testing
90 90 =======
91 91
92 92 To run test suite:
93 93
94 94 py.test appenlight/tests/tests.py --cov appenlight (this looks for testing.ini in repo root)
95 95
96 96
97 97 Development
98 98 ===========
99 99
100 100 To develop appenlight frontend:
101 101
102 102 cd frontend
103 103 npm install
104 104 grunt watch
105 105
106
107 Tagging release
108 ===============
109
110 bumpversion --current-version 1.1.1 minor --verbose --tag --commit --dry-run
@@ -1,89 +1,88 b''
1 1 import os
2 2 import re
3 3
4 4 from setuptools import setup, find_packages
5 5
6 6 here = os.path.abspath(os.path.dirname(__file__))
7 7 README = open(os.path.join(here, "README.md")).read()
8 8 CHANGES = open(os.path.join(here, "CHANGELOG.md")).read()
9 9
10 10 REQUIREMENTS = open(os.path.join(here, "requirements.txt")).readlines()
11 11
12 12 compiled = re.compile("([^=><]*).*")
13 13
14 14
15 15 def parse_req(req):
16 16 return compiled.search(req).group(1).strip()
17 17
18 18
19 19 requires = [_f for _f in map(parse_req, REQUIREMENTS) if _f]
20 20
21 21
22 22 def _get_meta_var(name, data, callback_handler=None):
23 23 import re
24 24
25 25 matches = re.compile(r"(?:%s)\s*=\s*(.*)" % name).search(data)
26 26 if matches:
27 27 if not callable(callback_handler):
28 28 callback_handler = lambda v: v
29 29
30 30 return callback_handler(eval(matches.groups()[0]))
31 31
32 32
33 33 with open(os.path.join(here, "src", "appenlight", "__init__.py"), "r") as _meta:
34 34 _metadata = _meta.read()
35 35
36 with open(os.path.join(here, "VERSION"), "r") as _meta_version:
37 __version__ = _meta_version.read().strip()
38
39 36 __license__ = _get_meta_var("__license__", _metadata)
40 37 __author__ = _get_meta_var("__author__", _metadata)
41 38 __url__ = _get_meta_var("__url__", _metadata)
42 39
43 40 found_packages = find_packages("src")
44 41 found_packages.append("appenlight.migrations.versions")
45 42 setup(
46 43 name="appenlight",
47 44 description="appenlight",
48 long_description=README + "\n\n" + CHANGES,
45 long_description=README,
49 46 classifiers=[
50 47 "Programming Language :: Python",
51 48 "Framework :: Pylons",
52 49 "Topic :: Internet :: WWW/HTTP",
53 50 "Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
54 51 ],
55 version=__version__,
52 version='2.0.0rc1',
56 53 license=__license__,
57 54 author=__author__,
58 55 url=__url__,
59 keywords="web wsgi bfg pylons pyramid",
56 keywords="web wsgi bfg pylons pyramid flask django monitoring apm instrumentation appenlight",
57 python_requires=">=3.5",
58 long_description_content_type="text/markdown",
60 59 package_dir={"": "src"},
61 60 packages=found_packages,
62 61 include_package_data=True,
63 62 zip_safe=False,
64 63 test_suite="appenlight",
65 64 install_requires=requires,
66 65 extras_require={
67 66 "dev": [
68 67 "coverage",
69 68 "pytest",
70 69 "pyramid",
71 70 "tox",
72 71 "mock",
73 72 "pytest-mock",
74 73 "webtest",
75 74 ],
76 75 "lint": ["black"],
77 76 },
78 77 entry_points={
79 78 "paste.app_factory": ["main = appenlight:main"],
80 79 "console_scripts": [
81 80 "appenlight-cleanup = appenlight.scripts.cleanup:main",
82 81 "appenlight-initializedb = appenlight.scripts.initialize_db:main",
83 82 "appenlight-migratedb = appenlight.scripts.migratedb:main",
84 83 "appenlight-reindex-elasticsearch = appenlight.scripts.reindex_elasticsearch:main",
85 84 "appenlight-static = appenlight.scripts.static:main",
86 85 "appenlight-make-config = appenlight.scripts.make_config:main",
87 86 ],
88 87 },
89 88 )
1 NO CONTENT: file was removed
1 NO CONTENT: file was removed
General Comments 4
Under Review
author

Auto status change to "Under Review"

Under Review
author

Auto status change to "Under Review"

You need to be logged in to leave comments. Login now