- 02 Nov, 2015 2 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 30 Oct, 2015 7 commits
-
-
Kirill Smelkov authored
We added support for Go in the previous patch. Let's now illustrate how to use the toolchain and build simple service based on it. /cc @gabriel, @Camata
-
Kirill Smelkov authored
Add support for Go language in the form of providing component for Go toolchain and stdlib. Current Go stable series is 1.5.* but to bootstrap it one need to have Go 1.4.* available, which itself needs C compiler to bootstrap. We need Go support for upcoming GitLab SR, where one server is written in this language: https://gitlab.com/gitlab-org/gitlab-workhorse /cc @gabriel, @Camata
-
Kirill Smelkov authored
To illustrate how to build Ruby software, let's add helloweb-ruby component and integrate it into helloworld SR as a service. helloweb-ruby installation is a bit tricky, because we do not have it initially as a released gem, and have to build it with Bundler by hand. Changes for integration into helloworld services infrastructure are small, thanks for the "kind" rework we did in previous patch. /cc @kazuhiko
-
Kirill Smelkov authored
Prepare to have several helloweb programs each written in its own language, and installed into bin/ as helloworld-<language> and exposed as separate service to the web on its own port. For component/helloweb we just rename installed script and section. For software/helloworld we split helloweb & helloweb-promise section into base and generate requested helloweb-<kinds> & friends via jinja2 programming; the same for exposing url for each kind. So far it is only preparatory changes for new kinds - i.e. instance code now supports it, but the only kind so far is still python. /cc @jerome
-
Kirill Smelkov authored
Jinja2 is currently the preferred way to do instance templating, because it has control structures. We'll need control structures in the following patches, but even without it, it is better to show "how to" do instances the preferred way. /cc @jerome
-
Kirill Smelkov authored
This - better illustrates what components do (provide building recipes for programs) and what software do (gather components and provide recipes for instances). - illustrates how to build the software properly - usually we build eggs or scripts with zc.recipe.egg:* , not generate python programs via jinja2 templating. Because when installing via egg, it is possible to import other installed eggs relatively straghtforward, and for jinja2 way it is hard to do. The helloweb program itself is moved into newly introduced helloweb.git repository and, as almost all other software, becomes separate from slapos.git . /cc @jerome
-
Kirill Smelkov authored
Since 7cd2f953 (helloworld: Turn it into real web-service) helloworld SR implements real web-service which talks to outside world with the help of shipped-with-it "hello web" program. Buildout sections which create helloweb service and promise were named based on helloworld prefix though, which is not very consistent. Thus the change for such sections to the same name as the "hello web" program uses. Also for style consistency the "hello web" program is renamed from hello-web to helloweb, as this naming style is usually used for helloworld.{c,py.rb,go,etc} So the final naming is: helloweb for both program and related sections.
-
- 29 Oct, 2015 2 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
Slaprunner tries to leverage multicore, and spawns multiple jobs when compiling software, based on `cpu-usage-ratio` parameter. But this currently have effect only on Make-based projects (via setting `MAKEFLAGS=-j<n>`) and does not affect software with different build systems. Let's also provide support for parallel building for NumPy-based software and Ruby gems out of the box. /cc @cedric.leninivin, @kazuhiko, @alain.takoudjou /reviewed-by @jerome, @rafael (on !22)
-
- 28 Oct, 2015 10 commits
-
-
Kirill Smelkov authored
* next: X redis: v↑ (2.8.23) component/postgresql: v↑ postgresql92 (9.2.14) component/postgresql: Factor out common build stuff to postgresql-common software/postgresql: Don't build postgresql twice
-
Kirill Smelkov authored
-
Kirill Smelkov authored
* redis-vup: X redis: v↑ (2.8.23)
-
Kirill Smelkov authored
* pg-vup: component/postgresql: v↑ postgresql92 (9.2.14) component/postgresql: Factor out common build stuff to postgresql-common software/postgresql: Don't build postgresql twice
-
Kirill Smelkov authored
- update Redis software to latest upstream in 2.8.* series (which now supports IPv6 out of the box); - update Redis instance template to the one from 2.8.23 and re-merge our templating changes to it (file/dir locations, port and binding, master password). The whole diff to pristine 2.8.23 redis conf is now this: diff --git a/.../redis-2.8.23/redis.conf b/slapos/recipe/redis/template/redis.conf.in index 870959f..2895539 100644 --- a/.../redis-2.8.23/redis.conf +++ b/slapos/recipe/redis/template/redis.conf.in @@ -46 +46 @@ daemonize no -pidfile /var/run/redis.pid +pidfile %(pid_file)s @@ -50 +50 @@ pidfile /var/run/redis.pid -port 6379 +port %(port)s @@ -69,0 +70 @@ tcp-backlog 511 +bind %(ipv6)s @@ -108 +109 @@ loglevel notice -logfile "" +logfile %(log_file)s @@ -174 +175 @@ rdbcompression yes -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it +# hit to pay (around 10%%) when saving and loading RDB files, so you can disable it @@ -192 +193 @@ dbfilename dump.rdb -dir ./ +dir %(server_dir)s @@ -217 +218 @@ dir ./ -# masterauth <master-password> +%(master_passwd)s XXX tests failure https://github.com/antirez/redis/issues/2715 XXX 2.8 because GitLab uses this series /cc @alain.takoudjou
-
Kirill Smelkov authored
-
Kirill Smelkov authored
* master: Advertise development of new version use slapos.cookbook 1.0.16 and slapos.core 1.3.14 Release 1.0.16 kvm recipe fixup: disk creation and image download component/xz: v↑ (5.2.2)
-
Kirill Smelkov authored
Compared to 9.2.8 postgresql 9.2.14 contains a lot of fixes including security ones: http://www.postgresql.org/docs/current/static/release-9-2-9.html http://www.postgresql.org/docs/current/static/release-9-2-10.html http://www.postgresql.org/docs/current/static/release-9-2-11.html http://www.postgresql.org/docs/current/static/release-9-2-12.html http://www.postgresql.org/docs/current/static/release-9-2-13.html http://www.postgresql.org/docs/current/static/release-9-2-14.html
-
Kirill Smelkov authored
Currently we have recipes to build both postgresql 9.1 and 9.2 (see 9f1f0759 "provide both postgres 9.1 and 9.2") which mostly duplicate each other with minor difference that 9.1 is built with perl and 9.2 without (perl added to 9.1 in dbbd9a96 "Include Perl in Postgres"). To reduce the duplication let's move common compilation bits to common section. NOTE I've tried to add perl to postgresql 9.2 as well and got the following compilation error: ld: .../perl/libs-c/libperl.a(op.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC .../parts/perl/libs-c/libperl.a: could not read symbols: Bad value which happens because libperl.a is not compiled with fPIC. For now we don't need perl in postgresql92 and this is not handled, and we just deduplicate building recipes without any actual change for resulting commands how the software is built.
-
Kirill Smelkov authored
component/postgresql/buildout.cfg defines both postgresql92 and postgresql sections, with postgresql being just [postgresql] <= postgresql92 On the other hand, software/postgresql uses postgresql92 in parts, but bin = ${postgresql:location}/bin in instance, which leads to _both_ postgresql and postgresql92 being built, and postgresql92 not used at all. Let's fix it and use postgresql92 everywhere. /cc @kazuhiko
-
- 27 Oct, 2015 8 commits
-
-
Alain Takoudjou authored
-
Alain Takoudjou authored
-
Alain Takoudjou authored
-
Alain Takoudjou authored
-
Kirill Smelkov authored
Most Ruby projects are built via Bundler[1], e.g. the upcoming GitLab, and Bundler supports building/fetching dependency gems in parallel: http://bundler.io/v1.10/bundle_install.html#jobs via using `--jobs <n>` command line option. All bundler options can be also passed in via environment variable, and this way we can use BUNDLE_JOBS=<n> for default `--jobs <n>`. Let's use it, and this way speedup Ruby-related builds (like we already do for Make- and NumPy- based software). [1] http://bundler.io/ /cc @jerome, @cedric.leninivin, @kazuhiko
-
Kirill Smelkov authored
Starting from NumPy 1.10 numpy's distutils support parallel building http://docs.scipy.org/doc/numpy/user/install.html#basic-installation https://github.com/numpy/numpy/commit/23d54617 and this way software which uses numpy's distutils (scipy, scikit-learn, etc) should support it too. Let's use it, like we currently already use MAKEFLAGS for speeding up make-based projects. /cc @jerome, @cedric.leninivin, @kazuhiko
-
Kirill Smelkov authored
Currently we use '%d' and string formatting on max(1, ncpu / cpu-usage-ratio), because `ncpu / cpu-usage-ratio` is float: In [1]: from __future__ import division In [2]: 8 / 4 Out[2]: 2.0 and jinja2 uses future division by default: {{ 8 / 4 }} -> 2.0 We can however make things more explicit, by explicitly using integer division (// operator) and this way avoid the need for '%d' and string formatting. /cc @jerome, @cedric.leninivin
-
Kirill Smelkov authored
The calculation is full line long, and we are going to reuse this number in a couple of new places, so this way it makes sense to first compute jobs number separately, and then reuse the variable. /cc @jerome, @cedric.leninivin
-
- 26 Oct, 2015 11 commits
-
-
Kirill Smelkov authored
/reviewed-by @kazuhiko (on !21)
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Alain Takoudjou authored
-
Alain Takoudjou authored
-
Alain Takoudjou authored
-
Alain Takoudjou authored
-
Alain Takoudjou authored
-