~launchpad-committers/storm/lp

« back to all changes in this revision

Viewing changes to README

  • Committer: Colin Watson
  • Date: 2023-07-06 10:51:34 UTC
  • mfrom: (386.34.138 storm)
  • Revision ID: cjwatson@canonical.com-20230706105134-rzpb4opv8nfpg56r
Merge Storm 0.26 release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 * Storm is well designed (different classes have very clear
23
23
   boundaries, with small and clean public APIs).
24
24
 * Designed from day one to work both with thin relational
25
 
   databases, such as SQLite, and big iron systems like PostgreSQL.
 
25
   databases, such as SQLite, and big iron systems like PostgreSQL
 
26
   and MySQL.
26
27
 * Storm is easy to debug, since its code is written with a KISS
27
28
   principle, and thus is easy to understand.
28
29
 * Designed from day one to work both at the low end, with trivial
89
90
is below.
90
91
 
91
92
 $ dev/ubuntu-deps
 
93
 $ echo "$PWD/** rwk," | sudo tee /etc/apparmor.d/local/usr.sbin.mysqld >/dev/null
 
94
 $ sudo aa-enforce /usr/sbin/mysqld
92
95
 $ make develop
93
96
 $ make check
94
97
 
103
106
The following instructions assume that you're using Ubuntu.  The same procedure
104
107
will probably work without changes on a Debian system and with minimal changes
105
108
on a non-Debian-based linux distribution.  In order to run the test suite, and
106
 
exercise all supported backends, you will need to install PostgreSQL, along
107
 
with the related Python database drivers:
 
109
exercise all supported backends, you will need to install MySQL and
 
110
PostgreSQL, along with the related Python database drivers:
108
111
 
109
112
 $ sudo apt-get install \
 
113
       mysql-server \
110
114
       postgresql pgbouncer \
111
115
       build-essential
112
116
 
113
 
These will take a few minutes to download (its a bit under 200MB all
114
 
together).
 
117
These will take a few minutes to download.
115
118
 
116
119
The Python dependencies for running tests can mostly be installed with
117
120
apt-get:
135
138
This ensures that all dependencies are available, downloading from
136
139
PyPI as appropriate.
137
140
 
138
 
Setting up database users and access security
139
 
---------------------------------------------
140
 
 
141
 
PostgreSQL needs to be setup to allow TCP/IP connections from
142
 
localhost.  Edit /etc/postgresql/8.3/main/pg_hba.conf and make sure
143
 
the following line is present:
144
 
 
145
 
 host all all 127.0.0.1/32 trust
146
 
 
147
 
This will probably (with PostgresSQL 8.4) entail changing 'md5' to
148
 
'trust'.
149
 
 
150
 
In order to run the two-phase commit tests, you will also need to
151
 
change the max_prepared_transactions value in postgres.conf to
152
 
something like
153
 
 
154
 
  max_prepared_transactions = 200
155
 
 
156
 
Now save and close, then restart the server:
157
 
 
158
 
 $ sudo /etc/init.d/postgresql-8.4 restart
159
 
 
160
 
Lets create our PostgreSQL user now.  As noted in the Ubuntu PostgreSQL
161
 
documentation, the easiest thing is to create a user with the same name as your
162
 
username.  Run the following command to create a user for yourself (if prompted
163
 
for a password, leave it blank):
164
 
 
165
 
 $ sudo -u postgres createuser --superuser $USER
166
 
 
167
 
Creating test databases
168
 
-----------------------
169
 
 
170
 
The test suite needs some local databases in place to exercise PostgreSQL
171
 
functionality. Run:
172
 
 
173
 
 $ createdb storm_test
 
141
Database setup
 
142
--------------
 
143
 
 
144
Most database setup is done automatically by the test suite.  However,
 
145
Ubuntu's default MySQL packaging ships an AppArmor profile that prevents it
 
146
from writing to a local data directory.  To allow the test suite to do this,
 
147
you will need to grant it access, which is most easily done by adding a line
 
148
such as this to /etc/apparmor.d/local/usr.sbin.mysqld:
 
149
 
 
150
  /path/to/storm/** rwk,
 
151
 
 
152
Then reload the profile:
 
153
 
 
154
  $ sudo aa-enforce /usr/sbin/mysqld
174
155
 
175
156
Running the tests
176
157
-----------------