summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Bogomazov <ibogomazov@mirantis.com>2016-03-21 16:53:54 +0300
committerIvan Bogomazov <ibogomazov@mirantis.com>2016-06-06 15:40:13 +0300
commitbd8d86825a6af993e0ce281a53bd93ccb6ae70ce (patch)
tree4b5726bb58bbc5c772c7f7a34dd1303e2e130f50
parentfc2425102823087b0e432b17997b48a3ecdb8c97 (diff)
Add 0.2.0 specHEADmaster
Notes
Notes (review): Code-Review+1: Vladimir Kozhukalov <vkozhukalov@mirantis.com> Code-Review+1: Roman Vyalov <rvyalov@mirantis.com> Code-Review+1: Dmitry Burmistrov <dburmistrov@mirantis.com> Code-Review+2: Sergey Kulanov <skulanov@mirantis.com> Workflow+1: Sergey Kulanov <skulanov@mirantis.com> Verified+2: Jenkins Submitted-by: Jenkins Submitted-at: Mon, 06 Jun 2016 14:17:05 +0000 Reviewed-on: https://review.openstack.org/295282 Project: openstack/packetary-specs Branch: refs/heads/master
-rw-r--r--AUTHORS1
-rw-r--r--ChangeLog1
-rw-r--r--doc/source/conf.py2
-rw-r--r--specs/0.2.0/.placeholder0
-rw-r--r--specs/0.2.0/build-packages.rst174
-rw-r--r--specs/0.3.0/.placeholder0
6 files changed, 177 insertions, 1 deletions
diff --git a/AUTHORS b/AUTHORS
index 4416d2e..a0a5a18 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1 +1,2 @@
1Ivan Bogomazov <ibogomazov@mirantis.com>
1Vladimir Kozhukalov <vkozhukalov@mirantis.com> 2Vladimir Kozhukalov <vkozhukalov@mirantis.com>
diff --git a/ChangeLog b/ChangeLog
index 5f3851d..14f815c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
1CHANGES 1CHANGES
2======= 2=======
3 3
4* Add 0.2.0 spec
4* Initial commit 5* Initial commit
5* Added .gitreview 6* Added .gitreview
diff --git a/doc/source/conf.py b/doc/source/conf.py
index f8ead6e..cf3d280 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -172,7 +172,7 @@ htmlhelp_basename = 'Packetary-Specsdoc'
172confdir = os.path.dirname(os.path.abspath(__file__)) 172confdir = os.path.dirname(os.path.abspath(__file__))
173workdir = os.path.join(confdir, "..", "..") 173workdir = os.path.join(confdir, "..", "..")
174releases = [os.path.basename(dirname) for dirname in 174releases = [os.path.basename(dirname) for dirname in
175 glob.iglob("{0}/specs/[0-9]*.[0-9]*(.[0.9]*)*".format(workdir))] 175 glob.iglob("{0}/specs/[0-9]*.[0-9]*.[0.9]*".format(workdir))]
176 176
177with open(os.path.join(confdir, 'header.rst.template')) as f: 177with open(os.path.join(confdir, 'header.rst.template')) as f:
178 header = f.read() 178 header = f.read()
diff --git a/specs/0.2.0/.placeholder b/specs/0.2.0/.placeholder
deleted file mode 100644
index e69de29..0000000
--- a/specs/0.2.0/.placeholder
+++ /dev/null
diff --git a/specs/0.2.0/build-packages.rst b/specs/0.2.0/build-packages.rst
new file mode 100644
index 0000000..2ceb767
--- /dev/null
+++ b/specs/0.2.0/build-packages.rst
@@ -0,0 +1,174 @@
1..
2 This work is licensed under a Creative Commons Attribution 3.0 Unported
3 License.
4
5 http://creativecommons.org/licenses/by/3.0/legalcode
6
7=======================
8Build packages from src
9=======================
10
11https://blueprints.launchpad.net/packetary/+spec/build-packages
12
13Implement package building module in Packetary to provide single application to
14solve full range of tasks of packaging and repositories management.
15
16
17--------------------
18Problem description
19--------------------
20
21Repository management and packets/packages building is
22held in different interfaces that take a long time.
23It is more convenient to build packages using the same interface.
24
25----------------
26Proposed changes
27----------------
28
29We propose to implement building scripts to integrate it in
30the Packetary and provide a Python application that wraps the
31process to create a rpm and deb packages, relying on Mock to build rpm
32packages and Sbuild to build deb packages in isolated environment.
33
34
35
36------------
37Alternatives
38------------
39
40* Koji:
41 Supports rpm based distributions only
42 https://fedoraproject.org/wiki/Koji
43
44* Automated build farm (ABF):
45 Supports rpm based distributions only
46 http://www.rosalab.ru/products/rosa_abf
47 https://abf.io/
48
49* Delorean
50 Supports rpm based distributions only
51 Supports python packages only
52 Requires separate docker image for each supported distribution
53 https://github.com/openstack-packages/delorean
54
55* docker-rpm-builder
56 Supports rpm based distributions only
57 Requires separate docker image for each supported distribution
58 https://github.com/alanfranz/docker-rpm-builder
59
60--------------
61Implementation
62--------------
63
64
65* Use standard upstream Linux distro tools to build packages (mock, sbuild)
66
67* Every package should be built in a clean and up-to-date buildroot.
68
69* Package build tool is able to run build stage for different revisions
70 of the same package in parallel on the same host.
71
72* Packages are built from git repositories with unpacked source
73 (it's not necessary to commit source tarballs into git).
74
75Packager should support following source layouts:
76
77- Source rpm file (.src.rpm)
78
79- Standard source layout (git project):
80
81
82 ./source tarball (.tar.*z)
83
84 ./rpm specfile (.spec)
85
86 ./other files related to package (.patch .init etc)
87
88
89Shell command:
90
91.. code-block:: bash
92
93 packetary build --repo-config repos.yaml \
94 --packages-config packages.yaml \
95 --output ./dest
96
97Format of repos.yaml and packages.yaml provided below
98
99Repo.yaml format:
100
101.. code-block:: yaml
102
103 rpm:
104 - name: repo-name
105 uri: http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=i386
106
107 - name: another-repo-name
108 uri: http://fedoraproject.org/repos/dist-5E-epel-build/latest/i386/
109
110 deb:
111 - name: example
112 type: deb
113 uri: http://site.example.com/debian
114 suite: trusty
115 section:
116 - main
117 - restricted
118
119 - name: example
120 type: deb-src
121 uri: http://site.example.com/debian
122 suite: trusty
123 section:
124 - main
125 - restricted
126
127Packages YAML format:
128
129.. code-block:: yaml
130
131 - source: /home/arno/projects/mirantis/mock-sandbox/zeromq
132 release: centos-7-x86_64
133
134 - source: /home/arno/projects/mirantis/mock-sandbox/zeromq
135 release: centos-7-x86_64
136
137
138
139Assignee(s)
140===========
141
142Primary assignee:
143 Ivan Bogomazov <ibogomazov@mirantis.com>
144
145Other contributors:
146 None
147
148Mandatory design review:
149 None
150
151
152Work Items
153==========
154
155* Write rpm-build packetary driver, which wrapping system mock-build
156
157* Write deb-build packetary driver, which wrapping system sbuild
158
159* Write tool to update build chroot package manager configs
160
161* Implement YAML based interface, to be able to mass build packages
162
163
164
165Dependencies
166============
167
168None
169
170----------
171References
172----------
173https://fedoraproject.org/wiki/Mock
174https://wiki.debian.org/sbuild
diff --git a/specs/0.3.0/.placeholder b/specs/0.3.0/.placeholder
deleted file mode 100644
index e69de29..0000000
--- a/specs/0.3.0/.placeholder
+++ /dev/null