forked from xenserver/planex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
353 lines (305 loc) · 14.3 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
4.2.0
* Allow planex-fetch to apply custom http headers
4.1.4
* Only add commit if tarball is being unpacked. Items in sources directory other than tarball may exist
4.1.3
* Fix planex-clone issue where we couldn't clone certain pins due to path issues, as well as files being treated as archives.
4.1.2
*Clone to paths based on repo name and not package
*Add all files from tarball to initial git repo
4.1.1
* Correct error path on RequestException
* make clean: cleanup RPM / MANIFESTS symbolic links and mock cfg
* Add "show" and "unpin" options to planex-pin
* repository: fix Bitbucket branch handling
* clone: add support for archives containing patches
4.1.0
* Add dependency for pathlib
* clone: implement cloning of non-git resources
* clone: Jenkins form should only process terminal resource
* clone: fix destination for Groovy clone
* fix multiple pins not being appended
* Restore groovy file output
* clone: fix Jenkins/patchqueue interaction
* clone: fix cloning of plain repositories
* add output option to planex-clone
* clone: automatically apply patches and/or patchqueue
* pin: simplify pinning operation
* blob: allow patchqueues to contain sources
* pin: exclude Source0 prefix from pin
* fetch: add debug when archiving repositories
* Replace planex-jenkins clone with json
* Makefile.rules: includes pin in specs and LINKS
* spec.py: prepend source directory to soruces and patches
* pin: create output directory is it does not exist
* Add a configuration class - support reading config from global, user and local files
4.0.0
* pin: simplify repo_or_path()
* clone: Fix indent disagreement between pylint and pycodestyle
* planex-create-mock-config: support metalink
* link: fix dictionary iteration
4.0.0-beta6
* Handle str vs bytes mismatches in python3
* clone: implement apply-repatched as experimental feature
* pin: add workaround for complex branch names failing certain regexes
* clone: improve output of assemble patchqueue
* clone: fix regression introduced in assemble-patchqueue
* fetch: refactor to allow clone to use it
* Import urlparse using six
v4.0.0-beta5
* clone: fix for missing attribute
* clone.py: prepare structure for assemble_repatched workflow
* Add message explaining how to modify the pin file to build the assembled patchqueue from sources only
* clone: refactor code to separate clone and assemble phases
4.0.0-beta4
* blobs.py: GitBlob prefix default to %{name}-%{version} if not present
* spec.py: add the manifest to all binary subpackages
* fetch.py: make more robust against tags
* Introduce planex.blobs and planex.macros to simplify maintainance
* fetch.py: re-introduce best-effort get git commitish
* makesrpm.py: use resources for computing the manifests
* makesrpm.py: further cleanup and use of semantically correct names
* planex.spec: remove planex manifest
* tests: refactor after deleting planex-manifest
* makesrpm: add manifest metadata to srpms using the new .origin files and .gitarchive-info files when present
* spec.py: add optional parameters to include metadata and manifest information in the rewritten spec file
* Makefile.rules, depend.py: disable the force rule as the semantics of fetch have changed
* spec.py: rely on the Spec class metadata instead of the rpmlib spec
* pin.py: rewrite archive0 only if the url matches the patchqueue one
* pin.py: add additional sources to the link in any case
* pin.py: infer git repository url and commitish when possible
* pin.py: update code to support non mutually exclusive source and patchqueue overrides
* clone.py: enable a limited workflow that supports current source and patchqueue links
* clone.py: enable planex-clone for the Jenkins scm workflows
* planex-pin: implement the new planex-pin
* spec.py: add resources dict to simplify planex-pin and planex-clone
4.0.0-beta3
* manifest.py: add schemaVersion for the manifest output for easier parsing
* manifest.py: produce some less rubbishy output
* spec.py: add support for git urls in Archives and Patchqueues
* link.py: parse SchemaVersion on load
* spec.py: update v3 parser to use the Archive object and the prefix field
* link.py: add support for the Archive field
* link.py: cleanup after dropping support for SchemaVersion 1
4.0.0-beta2
* depend: do not produce multiple coinciding requirements
* depend: introduce --no-requires flag
4.0.0-beta1
* add support for the boolean IgnoreAutosetup in links
* do not extract the same resource multiple times
* add bulk extraction for tarball-type sources
* update links to schemaVersion 3
* drop support for schemaVersion=1
* fetch: do not use an intermediate temporary fetch file
* fetch: mitigate race condition when fetching to a temp file
* port code from pycurl to requests
* README: Add a section on design principles
* README: High level overview of links and pins
* README: Add a section on spec files and spec repository structure
* improve look of rewritten spec files
* spec.py: Expand macros in links when loading
* do a proper specfile rewrite when creating srpms
* make links replace source/patch/patchqueue fields in the spec file
* follow specfile sourcename semantics when parsing links
* fetch: Take spec file and an optional link as arguments
* spec: Rename File and GitArchive to Blob and GitBlob
* fetch: Add support for generating archives from local Git repositories
* spec: Expand patchqueues
* spec: Add extract_source() methods to spec and resource classes
* spec: Add a separate list of resources, with methods to add to it
* spec: Add decorator to expand RPM macros in strings
* overall code cleanups and refactorings
3.1.0
* planex-makesrpm: Search for source files in patch archives
3.0.0
* Makefile.rules: Do not make links to _build/RPMS and _build/MANIFESTS
* planex-fetch: Remove --mirror argument
* planex-fetch: Do not create path to downloaded file - Makefile.rules
now does this
* planex-mock: Do not pass _topdir through to mock
* planex-mock: Use RPM library to find the correct repository path for
createrepo, instead of a hard-coded path
* planex-make-srpm: Fix crash when reading a .gitarchive-info file
containing unexpanded Git format strings
* planex-patchqueue: Apply patchqueues to specs with %autopatch directives
as well as %autosetup directives
2.2.0
* planex-makesrpm: Support multiple patchqueues
* planex-patchqueue: Insert new patches after existing patches
* planex-manifest: Only generate manifest if link URL is present
* planex-create-mock-config: add 'disablerepo' option
* planex-depend: Ensure that a package's runtime dependencies
are available before it is built, so that the resulting package
can be installed immediately
* Docker: Use latest CentOS base image
2.1.2
* Makefile.rules: Work around a race in the ln command
2.1.1
* planex-mock: Properly create the RPMS top-level symlink
* planex-make-srpm: Don't cause RPM to choke on a malformed gitsha
* planex-create-mock-config: honour exclude and includepkgs
* planex-pin: Add an option to specify the location of the pin file
2.1.0
* planex-pin: Reintroduce utility to override a package's sources with
a local repo
* Makefile.rules: Split up centralized _build/ directory creation
* planex-clone: Remove unused --pins-dir argument
* planex-clone: Add --skip-base argument
* planex-create-mock-config: add --environment argument
2.0.1
* depend: Handle pinned packages without patchqueues correctly
2.0.0
* patchqueue: Patch queues no longer contain spec files
* depend: Specs and links listed earlier on the command line override
those listed later
* depend: Remove --pins-dir option
* extract: Remove obsolete utility
* link: Store the path from which the link was loaded
1.0.0
* git: Remove unused describe() and current_branch() methods
0.23.1
* depend: Do not make an SRPM depend on a link if a pin is also present
* Makefile.rules: add RPMBUILD_EXTRA_FLAGS variable
* depend: Remove unused --repos_path argument
0.23.0
* planex-makesrpm: Do not rewrite %autosetup rules in spec files
0.22.1
* planex-patchqueue: Handle static tarballs in patchqueue repositories
correctly
0.22.0
* mock: Restore loglevel to normal and allocate a pty so that it
continues to print standard error logging when running in a container.
0.21.0
* Add planex-create-mock-config, which constructs a mock configuration
file from the system yum configuration.
* planex-make-srpm: Add Provides: tags containing the Git hashes of the
sources used to build binary RPMs, if this information is available.
* Makfile.rules, planex-patchqueue: Always rebuild pinned patchqueue tarballs,
but short-circuit the rebuilding of dependent source and binary RPMs if the
contents of the patchqueue have not changed
* planex-clone: Continue if cloning one of a series of pinned repos fails
* Makefile.rules: add a dependency on the mock config
0.20.0
* planex-build-mock: Add '--loopback-config-extra' option to pass extra
lines to the loopback repository configuration
* planex-depend: Add option to disable generation of buildrequires
dependencies
* planex-fetch: Fix a TOCTOU race when creating directories
* planex-container: Pass SSH agent socket through to container
0.19.0
* planex-build-mock: Pass --verbose to mock if --quiet is not supplied
so that logs are produced inside docker with concurrent builds which
use make's output --output-sync=target option
* planex-patchqueue: Check that pinned spec file contains the
%autosetup -p1 macro which is needed to apply patch queue
* planex-clone: Improve handling of pins to branches, tags and commit
hashes
0.18.0
* planex-clone-sources has been removed and replaced by planex-clone
* planex-extract: Remove support for heavyweight branches
* Makefile.rules: It is now possible to override the Mock configuration
used to build packages by defining the MOCK_CONFIGDIR and MOCK_ROOT
variables
0.17.0
* planex-clone: Add ability to clone repositories with patchqueues
0.16.2
* planex-clone: Fix typo in Jenkinsfile fragment template
0.16.1
* planex-clone: Allow list of pin files to be empty
0.16.0
* planex-build-mock: Add --init option to pre-warm root cache
0.15.1
* git library: Add current_branch function
0.15.0
* planex-patchqueue: If a pin specifies a remote URL, look for a local
clone of the repository
* planex-clone: Add utility to clone repositories listed in pin files
0.14.0
* planex-mock: enable concurrent package builds
0.13.0
* planex-mock: automatically generate loopback repository
configuration
* planex-cache has been removed
0.12.0
* Docker: allow passwordless sudo for the build user
* planex-patchqueue: Add a new utility to create a patchqueue based on
a spec file and a locally checked-out Git repository
* planex-pin has been removed and replaced by planex-patchqueue
* planex-makesrpm: Do not extract all files in source directories
* spec: Report local sources and patches separately
* makesrpm: Extract patches and sources separately
* Add utility classes for dealing with links, tarballs and patchqueues
* planex-makesrpm: Require 'patches' to be declared explicitly in
link files
* Tools which accepted the --topdir and --dist arguments now accept
rpmbuild-style --define arguments
* planex-extract: Do not unpack patches or rewrite spec files
* planex-makesrpm: Consume the patch queue tarball directly, rather
than requiring it to be unpacked
* Makefile.rules: Don't symlink SOURCES into _build, and keep local
and downloaded sources separate
0.11.0
* planex-clone-sources: Add a tool to check out source repositories
* planex-manifest: Add a tool to record repository hashes
* planex-build-mock: Add a wrapper around mock
* planex-container: Add a wrapper to run planex in a Docker container
* planex-extract: Don't prepend package name to patch filename
* Add utility classes for links, patch queues, repositories and tarballs
* Makefile.rules: Fail if _build/deps can't be rebuilt
0.10.0
* Several commands can now accept multiple --define arguments to
set or override RPM macro definitions
* planex-depend: Generate short name targets for SRPMS
* planex-depend: Remove --ignore and --ignore-from flags
* planex-extract: prepend manifest of sources (and branch variable)
* Makefile.rules: make _build/SPECS a directory, not a symlink
0.9.0
* Add planex-extract, which extracts and processes files from tarballs
* Planex-fetch: Add support for fetching over FTP and for tar.xz files
* planex-fetch: Teach planex-planex-fetch about links
* planex-fetch: Add support for fetching specs and sources from remote
repositories
* planex-make-srpm: Remove patchqueue expansion, now handled by
planex-extract
* planex-make-srpm: Don't create _build directory in temporary working
space
* Makefile.rules: Don't link SRPMS to _build/SRPMS
* Docker: Rewrite Dockerfile to reduce image size and support Docker Hub
0.8.0
* planex-make-srpm: Add a wrapper around rpmbuild which expands patchqueue
repositories as inline patches in the SRPM
* Add initial support for running Planex in a Docker container
* Remove unmaintained, experimental Debian package-generation scripts
0.7.3
* planex-fetch: Handle Source URLs with fragments correctly
0.7.2
* planex-pin: It is now possible to pin to a bare Git repository
* planex-cache: Use yum configuration but not mock configuration when
calculating hash
* planex-cache: When writing back to the cache, do not exit if the binary
package already exists
* Locally-built packages now override newer packages of the same name in
distribution repositories
0.7.1
* planex-cache: Update cached files' timestamps on cache hits
* planex-cache: Print mock's logs if it fails
* planex-pin: Improve formatting of the pins file
0.7.0
* Build products are now written to the _build subdirectory by default
* Add planex-pin, which overrides a package's sources with a local repo
* Add planex-init, which sets up the planex environment
* Add planex-fetch, replacing planex-downloader
* Remove planex-configure, which is superseded by planex-pin
* Rename Makefile.common to Makefile.rules
0.6.0
* planex-specdep is now known as planex-depend
* planex-depend: By default, produce packages for the host system
* planex-depend: Add a --topdir parameter to set rpmbuild working directory
* planex-depend, planex-configure: Package name checking is now optional
* planex-configure: SRPM building is now optional
* planex-clone, planex-configure: Default configuration directory is now '.'
* planex-cache: Support multiple cache locations
* planex-depend: Add support for git:// and hg:// source URLs
* Add Makefile.common, containing useful generic make rules
0.5.0:
* Initial release