~jocave/checkbox/hybrid-amd-gpu-mods

« back to all changes in this revision

Viewing changes to plainbox/docs/changelog.rst

  • Committer: Sylvain Pineau
  • Date: 2014-07-29 16:05:54 UTC
  • mto: This revision was merged to the branch mainline in revision 3149.
  • Revision ID: sylvain.pineau@canonical.com-20140729160554-qev8887xbunn9tmi
checkbox-ng:launchers:checkbox-cli: The checkbox-cli launcher

Running the default whitelist (with the suite selection screen skipped)

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
    accounting of development history please inspect the source history
7
7
    directly.
8
8
 
9
 
.. _version_0_25:
10
 
 
11
 
Plainbox 0.25 (unreleased)
12
 
^^^^^^^^^^^^^^^^^^^^^^^^^^
13
 
 
14
 
* `plainbox startprovider` may now be run with an `--empty` option that
15
 
  generates very basic provider that has only `./manage.py` file. Use this
16
 
  option when you know your way around, and you want to quickly start
17
 
  developing plainbox jobs without any other jobs polluting your provider.
18
 
 
19
 
* Plainbox now supports a new flag :ref:`explicit-fail
20
 
  <job_flag_explicit_fail>`. Using that flag makes manual failing of the job
21
 
  require a comment to be entered. This flag naturally makes sense only for
22
 
  'manual', 'user-interact-verify', 'user-verify' jobs.
23
 
 
24
 
.. _version_0_24:
25
 
 
26
 
Plainbox 0.24
27
 
^^^^^^^^^^^^^
28
 
 
29
 
* Add a dependency on guacamole.
30
 
 
31
 
* Plainbox ignores trailing garbage after EOF while reading IOLog zip.
32
 
  See https://bugs.python.org/issue24301.
33
 
 
34
 
* Session assistant now preserves job ordering from test plans.
35
 
 
36
 
* Session assistant ignores calls to finalize_session when the session has
37
 
  already been finalized. This lets application call finalization freely
38
 
  without having to keep that state information in them.
39
 
 
40
 
* Plainbox expands the SessionAssistant initializer API
41
 
 
42
 
  **app_version**: so that we can use this implicitly in some places,
43
 
     e.g. don't resumes sessions created by future versions, etc.
44
 
  **api_version**: so that we can change usage expectations over time
45
 
    but let applications stay compatible by using a fixed API version.
46
 
    This can be changed to a __new__ call that returns a versioned
47
 
    SA class instead of doing if-then-else magic in all the places.
48
 
  **api_flags**: so that we can allow applications to opt-into optional
49
 
    features and so that we can adjust expectations accordingly. This
50
 
    will also allow us to easily compare applications for feature
51
 
    parity.
52
 
 
53
 
  For now all new arguments have sane defaults. Once all applications are
54
 
  patched the defaults will go away.
55
 
 
56
 
* Plainbox now supports a new way to express the estimated duration of
57
 
  :ref:`jobs <job_estimated_duration>` and
58
 
  :ref:`test plans <testplan_estimated_duration>` that is much easier for
59
 
  humans to read and write. Instead of having to mentally parse ``3725`` you
60
 
  can just write ``1h 2m 5s`` or ``1h:2m:5s``.
61
 
 
62
 
* Plainbox now supports an *after* job ordering constraint. This constraint is
63
 
  very similar to the existing *depends* constraint, except that the outcome of
64
 
  the referenced job is not important. In practical terms, even if one job runs
65
 
  and fails, another job that runs *after* it, will run.
66
 
 
67
 
  This constraint is immediately useful to all *attachment* jobs that want to
68
 
  collect a log file from some other operation, regardless of the outcome of
69
 
  that operation. In the past those would have to be carefully placed in the
70
 
  test plan, in the right order. By using the *after* constraint, the
71
 
  attachment jobs will automatically pull in their log-generating cousins and
72
 
  will run at the right time no matter what happens.
73
 
 
74
 
* Plainbox now allows more than one resource object to be used in a resource
75
 
  expression. This can be used to construct resource expressions that combine
76
 
  facts from multiple sources (e.g. the manifest resource with something else).
77
 
 
78
 
  As an **important** implementation limitation please remember that the
79
 
  complexity of such resource programs is proportional to the product of the
80
 
  number of resource objects associated with each resource in an expression.
81
 
  In practice it is not advised to use resource objects with more than a few
82
 
  resource records associated with them. This is just an implementation detail
83
 
  that can be lifted in subsequent versions.
84
 
 
85
 
  Examples of the usage of this feature can be found in the TPM (Trusted
86
 
  Platform Module) provider.
87
 
 
88
 
* https://launchpad.net/plainbox/+milestone/0.24
89
 
 
90
 
.. _version_0_23:
91
 
 
92
 
Plainbox 0.23
93
 
^^^^^^^^^^^^^
94
 
 
95
 
* Mandatory jobs - jobs may be marked as mandatory - this way they are always
96
 
  executed - useful for jobs that get information about hardware. Use
97
 
  mandatory_include test plan field to mark the jobs you want always to be run.
98
 
 
99
 
* Bootstrapping jobs - applications may run jobs that generate other jobs prior
100
 
  to the execution of the 'normal' list of jobs. Use bootstrap_include field of
101
 
  the test plan to list all jobs that generate other jobs.
102
 
 
103
 
  Read more about mandatory and bootstrapping jobs in
104
 
  :doc:`plainbox test plan unit <manpages/plainbox-test-plan-units>`
105
 
 
106
 
* Plainbox now supports a new flag :ref:`has-leftovers
107
 
  <job_flag_has_leftovers>`, that governs the behavior of leftover file
108
 
  detection feature. When this flag is added to a job definition files left
109
 
  over by the execution of a command are silently ignored.
110
 
 
111
 
* Plainbox now supports a new flag on job definitions :ref:`simple
112
 
  <job_flag_simple>` that is meant to cut the boiler-plate from fully automated
113
 
  test cases. When this flag is added to a job definition then many otherwise
114
 
  mandatory or recommended features are disabled.
115
 
 
116
 
.. _version_0_18:
117
 
 
118
 
Plainbox 0.18
119
 
^^^^^^^^^^^^^
120
 
 
121
 
.. note::
122
 
    This version is under active development. The details in the milestone page
123
 
    may vary before the release is finalized.
124
 
 
125
 
This is a periodic release, containing both bug fixes and some minor new
126
 
features. Details are available at:
127
 
 
128
 
* https://launchpad.net/plainbox/+milestone/0.18
129
 
 
130
 
.. warning::
131
 
    API changes were not documented for this release. We are working on a new
132
 
    system that will allow us to automatically generate API changes between
133
 
 
134
 
.. _version_0_17:
135
 
 
136
 
Plainbox 0.17
137
 
^^^^^^^^^^^^^
138
 
 
139
 
This is an (out-of-cycle) periodic release, containing both bug fixes and some
140
 
minor new features. Details are available at:
141
 
 
142
 
* https://launchpad.net/plainbox/+milestone/0.17
143
 
 
144
 
.. warning::
145
 
    API changes were not documented for this release. We are working on a new
146
 
    system that will allow us to automatically generate API changes between
147
 
    releases without the added manual maintenance burden.
148
 
 
149
 
.. _version_0_16:
150
 
 
151
 
Plainbox 0.16
152
 
^^^^^^^^^^^^^
153
 
 
154
 
This is a periodic release, containing both bug fixes and some minor new
155
 
features. Details are available at:
156
 
 
157
 
* https://launchpad.net/plainbox/+milestone/0.16
158
 
 
159
 
.. warning::
160
 
    API changes were not documented for this release. We are working on a new
161
 
    system that will allow us to automatically generate API changes between
162
 
    releases without the added manual maintenance burden.
163
 
 
164
 
.. _version_0_15:
165
 
 
166
 
Plainbox 0.15
167
 
^^^^^^^^^^^^^
168
 
 
169
 
This is a periodic release, containing both bug fixes and some minor new
170
 
features. Details are available at:
171
 
 
172
 
* https://launchpad.net/plainbox/+milestone/0.15
173
 
 
174
 
.. warning::
175
 
    API changes were not documented for this release. We are working on a new
176
 
    system that will allow us to automatically generate API changes between
177
 
    releases without the added manual maintenance burden.
178
 
 
179
 
.. _version_0_14:
180
 
 
181
 
Plainbox 0.14
182
 
^^^^^^^^^^^^^
183
 
 
184
 
This is a periodic release, containing both bug fixes and some minor new
185
 
features. Details are available at:
186
 
 
187
 
* https://launchpad.net/plainbox/+milestone/0.14
188
 
 
189
 
.. warning::
190
 
    API changes were not documented for this release. We are working on a new
191
 
    system that will allow us to automatically generate API changes between
192
 
    releases without the added manual maintenance burden.
193
 
 
194
 
.. _version_0_13:
195
 
 
196
 
Plainbox 0.13
197
 
^^^^^^^^^^^^^
198
 
 
199
 
This is a periodic release, containing both bug fixes and some minor new
200
 
features. Details are available at:
201
 
 
202
 
* https://launchpad.net/plainbox/+milestone/0.13
203
 
 
204
 
.. warning::
205
 
    API changes were not documented for this release. We are working on a new
206
 
    system that will allow us to automatically generate API changes between
207
 
    releases without the added manual maintenance burden.
208
 
 
209
 
.. _version_0_12:
210
 
 
211
 
Plainbox 0.12
212
 
^^^^^^^^^^^^^
213
 
 
214
 
This is a periodic release, containing both bug fixes and some minor new
215
 
features. Details are available at:
216
 
 
217
 
* https://launchpad.net/plainbox/+milestone/0.12
218
 
 
219
 
.. warning::
220
 
    API changes were not documented for this release. We are working on a new
221
 
    system that will allow us to automatically generate API changes between
222
 
    releases without the added manual maintenance burden.
223
 
 
224
 
.. _version_0_11:
225
 
 
226
 
Plainbox 0.11
227
 
^^^^^^^^^^^^^
228
 
 
229
 
This is a periodic release, containing both bug fixes and some minor new
230
 
features. Details are available at:
231
 
 
232
 
* https://launchpad.net/plainbox/+milestone/0.11
233
 
 
234
 
.. warning::
235
 
    API changes were not documented for this release. We are working on a new
236
 
    system that will allow us to automatically generate API changes between
237
 
    releases without the added manual maintenance burden.
238
 
 
239
 
.. _version_0_10:
240
 
 
241
 
Plainbox 0.10
242
 
^^^^^^^^^^^^^
243
 
 
244
 
This is a periodic release, containing both bug fixes and some minor new
245
 
features. Details are available at:
246
 
 
247
 
* https://launchpad.net/plainbox/+milestone/0.10
248
 
 
249
 
.. warning::
250
 
    API changes were not documented for this release. We are working on a new
251
 
    system that will allow us to automatically generate API changes between
252
 
    releases without the added manual maintenance burden.
253
 
 
254
 
.. _version_0_9:
255
 
 
256
 
Plainbox 0.9
257
 
^^^^^^^^^^^^
258
 
 
259
 
This is a periodic release, containing both bug fixes and some minor new
260
 
features. Details are available at:
261
 
 
262
 
* https://launchpad.net/plainbox/+milestone/0.9
263
 
 
264
 
.. warning::
265
 
    API changes were not documented for this release. We are working on a new
266
 
    system that will allow us to automatically generate API changes between
267
 
    releases without the added manual maintenance burden.
268
 
 
269
 
.. _version_0_8:
270
 
 
271
 
Plainbox 0.8
272
 
^^^^^^^^^^^^
273
 
 
274
 
This is a periodic release, containing both bug fixes and some minor new
275
 
features. Details are available at:
276
 
 
277
 
* https://launchpad.net/plainbox/+milestone/0.8
278
 
 
279
 
.. warning::
280
 
    API changes were not documented for this release. We are working on a new
281
 
    system that will allow us to automatically generate API changes between
282
 
    releases without the added manual maintenance burden.
283
 
 
284
 
.. _version_0_7:
285
 
 
286
 
Plainbox 0.7
287
 
^^^^^^^^^^^^
288
 
 
289
 
This is a periodic release, containing both bug fixes and some minor new
290
 
features. Details are available at:
291
 
 
292
 
* https://launchpad.net/plainbox/+milestone/0.7
293
 
 
294
 
.. warning::
295
 
    API changes were not documented for this release. We are working on a new
296
 
    system that will allow us to automatically generate API changes between
297
 
    releases without the added manual maintenance burden.
298
 
 
299
 
.. _version_0_6:
300
 
 
301
 
Plainbox 0.6
302
 
^^^^^^^^^^^^
303
 
 
304
 
This is a periodic release, containing both bug fixes and some minor new
305
 
features. Details are available at:
306
 
 
307
 
* https://launchpad.net/plainbox/+milestone/0.6
308
 
 
309
 
.. warning::
310
 
    API changes were not documented for this release. We are working on a new
311
 
    system that will allow us to automatically generate API changes between
312
 
    releases without the added manual maintenance burden.
313
 
 
314
9
.. _version_0_5:
315
10
 
316
 
Plainbox 0.5.4
 
11
PlainBox 0.5.4
317
12
^^^^^^^^^^^^^^
318
13
 
319
14
This is a maintenance release of the 0.5 series.
322
17
 
323
18
* Bugfixes: https://launchpad.net/plainbox/+milestone/0.5.4
324
19
 
325
 
Plainbox 0.5.3
 
20
PlainBox 0.5.3
326
21
^^^^^^^^^^^^^^
327
22
 
328
23
This is a maintenance release of the 0.5 series.
337
32
API changes
338
33
-----------
339
34
 
340
 
* Plainbox now has an interface for transport classes.
 
35
* PlainBox now has an interface for transport classes.
341
36
  :class:`plainbox.abc.ISessionStateTransport` that differs from the old
342
37
  implementation of the certification transport (the only one that used to
343
38
  exist). The new interface has well-defined return value, error semantics and
344
39
  takes one more argument (session state). This change was required to
345
40
  implement the launchpad transport.
346
 
* Plainbox now has support for pluggable build systems that supply automatic
 
41
* PlainBox now has support for pluggable build systems that supply automatic
347
42
  value for the build_cmd argument in manage.py's setup() call. They existing
348
43
  build systems are available in the :mod:`plainbox.impl.buildsystems` module.
349
44
* All exporters can now make use of key=value options.
353
48
* The provider class can now keep track of the src/ directory and the build/bin
354
49
  directory, which are important for providers under development. This feature
355
50
  is used to run executables from the build/bin directory.
356
 
* Plainbox will now load the src/EXECUTABLES file, if present, to enumerate
 
51
* PlainBox will now load the src/EXECUTABLES file, if present, to enumerate
357
52
  executables built from source. This allows manage.py install to be more
358
53
  accurate and allows manage.py info do display executables even before they
359
54
  are built.
360
55
 
361
 
Plainbox 0.5.2
 
56
PlainBox 0.5.2
362
57
^^^^^^^^^^^^^^
363
58
 
364
59
This is a maintenance release of the 0.5 series.
373
68
API changes
374
69
-----------
375
70
 
376
 
* Plainbox now remembers the base directory (aka location) associated with each
 
71
* PlainBox now remembers the base directory (aka location) associated with each
377
72
  provider. This is available as and
378
73
  :attr:`plainbox.impl.secure.providers.v1.Provider1.base_dir`
379
 
* The :class:`plainbox.impl.commands.checkbox.CheckboxInvocationMixIn` gained a
 
74
* The :class:`plainbox.impl.commands.checkbox.CheckBoxInvocationMixIn` gained a
380
75
  new required argument to pass the configuration object around. This is
381
76
  required to fix bug https://bugs.launchpad.net/checkbox/+bug/1298166. This
382
77
  API change is backwards incompatible and breaks checkbox-ng << 0.3.
383
 
* Plainbox now offers the generic extensibility point for build systems for
 
78
* PlainBox now offers the generic extensibility point for build systems for
384
79
  provider executables. Entry points for classes implementing the
385
80
  :class:`plainbox.abc.IBuildSystem` interface can be registered in the
386
81
  ``plainbox.buildsystems`` pkg-resources entry point.
387
 
* Plainbox has a better job validation subsystem. Job validation parameters
 
82
* PlainBox has a better job validation subsystem. Job validation parameters
388
83
  (eventually passed to
389
 
  :meth:`plainbox.impl.job.CheckboxJobValidator.validate()`) can be set on the
 
84
  :meth:`plainbox.impl.job.CheckBoxJobValidator.validate()`) can be set on the
390
85
  provider loader class and they will propagate across the stack. Along with
391
86
  more fine-tuned controls for strict validation and deprecated fields
392
 
  validation this offers tools better ways to discover potential problems.
 
87
  validation this offers tools better ways to discover potential problems. 
393
88
 
394
 
Plainbox 0.5.1
 
89
PlainBox 0.5.1
395
90
^^^^^^^^^^^^^^
396
91
 
397
92
First working release of the 0.5 series, 0.5 was missing one critical patch and
398
93
didn't work. Basically, The tag was applied on the wrong revision.
399
94
 
400
 
Plainbox 0.5
 
95
PlainBox 0.5
401
96
^^^^^^^^^^^^
402
97
 
403
98
New Features
404
99
------------
405
100
 
406
 
* Plainbox is now a better development tool for test authors. With the new
 
101
* PlainBox is now a better development tool for test authors. With the new
407
102
  'plainbox startprovider' command it is easy to bootstrap  development of
408
103
  third party test collections. This is further explained in the new
409
104
  :ref:`tutorial`. The template is described in :doc:`provider template
412
107
  authors to freely name job definitions without any central coordination
413
108
  authority. See more about :doc:`provider namespaces
414
109
  <author/provider-namespaces>`.
415
 
* Plainbox is now fully internationalized, making it possible to translate all
 
110
* PlainBox is now fully internationalized, making it possible to translate all
416
111
  of the user interface. Certain extensible features such as commands and test
417
112
  job providers are also translatable and can be shipped by third party
418
113
  developers. All the translations are seamlessly enabled, even if they come
442
137
Workflow Changes
443
138
----------------
444
139
 
445
 
* Plainbox is now available in Debian as the ``python3-plainbox`` and
 
140
* PlainBox is now available in Debian as the ``python3-plainbox`` and
446
141
  ``plainbox`` packages. Several of the Checkbox project developers are
447
142
  maintaining packages for the core library, test providers and whole test
448
143
  applications.
449
 
* Plainbox dropped support for Ubuntu 13.04 (Raring Rigtail), following
 
144
* PlainBox dropped support for Ubuntu 13.04 (Raring Rigtail), following
450
145
  scheduled end-of-life of that release.
451
 
* Plainbox dropped support for Ubuntu 13.10 (Saucy Salamander) given the
 
146
* PlainBox dropped support for Ubuntu 13.10 (Saucy Salamander) given the
452
147
  imminent release of the next version of Ubuntu.
453
 
* Plainbox now supports Ubuntu 14.04 (Trusty Thar), scheduled for release on
 
148
* PlainBox now supports Ubuntu 14.04 (Trusty Thar), scheduled for release on
454
149
  the 17th of April 2014.
455
150
 
456
151
This implies that any patch merged into trunk is only tested on Ubuntu 12.04
463
158
General Changes
464
159
...............
465
160
 
466
 
* Plainbox now supports Python 3.4. This includes existing support for Python
 
161
* PlainBox now supports Python 3.4. This includes existing support for Python
467
162
  3.2 and 3.3. Effective Ubuntu coverage now spans two LTS releases.
468
163
  This will be maintained until the end of Ubuntu 12.04 support.
469
164
 
470
165
New Modules
471
166
...........
472
167
 
473
 
* Plainbox now has a dedicated module for implementing versatile command line
 
168
* PlainBox now has a dedicated module for implementing versatile command line
474
169
  utilities :mod:`plainbox.impl.clitools`. This module is used to implement the
475
170
  new :mod:`plainbox.provider_manager` which is what backs the per-provider
476
171
  management script.
477
172
* The new :mod:`plainbox.provider_manager` module contains the implementation
478
173
  of the ``manage.py`` script, which is generated for each new provider. The
479
174
  script implements a set of subcommands for working with the provider from a
480
 
  developer's point of view.
 
175
  developer's point of view. 
481
176
* The vendor package now contains a pre-release version of
482
177
  :mod:`~plainbox.impl.vendor.textland` - a text mode, work-in-progress,
483
178
  compositor for console applications. TextLand is used to implement certain
489
184
API changes (Job Definitions)
490
185
.............................
491
186
 
492
 
* Plainbox now offers two new properties for identifying (naming) job
 
187
* PlainBox now offers two new properties for identifying (naming) job
493
188
  definitions, :meth:`plainbox.impl.job.JobDefinition.id` and
494
189
  :meth:`plainbox.impl.job.JobDefinition.partial_id`. The ``id`` property is
495
190
  the full, effective identifier composed of ``partial_id`` and
496
191
  ``provider.namespace``, with the C++ scope resulution operator, ``::``
497
192
  joining both into one string. The ``partial_id`` field is loaded from the
498
193
  ``id`` key in  RFC822-like job definition syntax and is the part without the
499
 
  name-space. Plainbox now uses the ``id`` everywhere where ``name`` used to be
 
194
  name-space. PlainBox now uses the ``id`` everywhere where ``name`` used to be
500
195
  used before. If the ``id`` field (which defines ``partial_id`` is not present
501
196
  in a RFC822 job definition then it defaults to ``name`` making this change
502
197
  fully backwards compatible.
503
198
* The :meth:`plainbox.impl.job.JobDefinition.name` property is now deprecated.
504
199
  It is still available but is has been entirely replaced by the new ``id`` and
505
200
  ``partial_id`` properties. It will be removed as a property in the next
506
 
  release of Plainbox.
507
 
* Plainbox now offers the new :meth:`plainbox.impl.job.JobDefinition.summary`
 
201
  release of PlainBox.
 
202
* PlainBox now offers the new :meth:`plainbox.impl.job.JobDefinition.summary`
508
203
  which is like a short, one line description of the provider. It should be
509
204
  used whenever a job definition needs to be listed (in user interfaces,
510
205
  reports, etc). It can be translated and a localized version is available as
511
206
  :meth:`plainbox.impl.job.JobDefinition.tr_summary()`
512
 
* Plainbox now offers a localized version of a job description as
 
207
* PlainBox now offers a localized version of a job description as
513
208
  :meth:`plainbox.impl.job.JobDefinition.tr_description()`.
514
209
 
515
210
API changes (White Lists)
516
211
.........................
517
212
 
518
 
* Plainbox now offers new and improved APIs for loading whitelists
 
213
* PlainBox now offers new and improved APIs for loading whitelists
519
214
  :meth:`plainbox.impl.secure.qualifiers.WhiteList.from_string()` and
520
215
  :meth:`plainbox.impl.secure.qualifiers.WhiteList.from_file()`.
521
 
* Plainbox now tracks the origin of whitelist, knowing where they were defined
 
216
* PlainBox now tracks the origin of whitelist, knowing where they were defined
522
217
  in. Origin is available as
523
218
  :meth:`plainbox.impl.secure.qualifiers.WhiteList.origin`
524
 
* Plainbox can now optionally store and use the implicit name-space of a
 
219
* PlainBox can now optionally store and use the implicit name-space of a
525
220
  WhiteList objects. This name space will be used to qualify all the patterns
526
221
  that don't use the scope resolution operator ``::``.
527
222
  The implicit name-space is available as
530
225
API changes (Providers)
531
226
.......................
532
227
 
533
 
* Plainbox can validate providers, jobs and whitelists better than before. In
 
228
* PlainBox can validate providers, jobs and whitelists better than before. In
534
229
  particular, broken providers are now verbosely ignored. This is implemented
535
230
  as a number of additional validators on
536
231
  :class:`plainbox.impl.secure.providers.v1.Provider1Definition`
537
 
* Plainbox can now enumerate all the executables of a provider
 
232
* PlainBox can now enumerate all the executables of a provider
538
233
  :meth:`plainbox.abc.IProvider1.get_all_executables()`
539
 
* Plainbox now offers new APIs for applications to load as much of provider
 
234
* PlainBox now offers new APIs for applications to load as much of provider
540
235
  content as possible, without stopping on the first encountered problem.
541
236
  :meth:`plainbox.impl.secure.providers.v1.Provider1.load_all_jobs()`
542
237
* The ``Provider1.load_jobs()`` method has been removed. It was only used
543
238
  internally by the class itself. Identical functionality is now offered by
544
239
  :class:`plainbox.impl.secure.plugins.FsPlugInCollection` and
545
240
  :class:`plainbox.impl.secure.providers.v1.JobDefinitionPlugIn`.
546
 
* Plainbox now associates a gettext domain with each provider. This
 
241
* PlainBox now associates a gettext domain with each provider. This
547
242
  information is available both in
548
243
  :attr:`plainbox.impl.secure.providers.v1.Provider1Definition.gettext_domain`
549
244
  and :attr:`plainbox.impl.secure.providers.v1.Provider1.gettext_domain`
550
 
* Plainbox now derives a namespace from the name of the provider. The namespace
 
245
* PlainBox now derives a namespace from the name of the provider. The namespace
551
246
  is defined as  the part of the provider name up to the colon. For example
552
247
  provider name ``2013.com.canonical.ceritifaction:resources`` defines provider
553
248
  namespace ``2013.com.canonical.certification``. The computed namespace is
554
249
  available as :meth:`plainbox.impl.secure.providers.v1.Provider1.namespace`
555
 
* Plainbox now offers a localized version of the provider description string as
 
250
* PlainBox now offers a localized version of the provider description string as
556
251
  :meth:`plainbox.impl.secure.providers.v1.Provider1.tr_description()`
557
 
* Plainbox now passes the provider namespace to both whitelist and job
 
252
* PlainBox now passes the provider namespace to both whitelist and job
558
253
  definition loaders, thus making them fully aware of the namespace they come
559
254
  from.
560
255
* The implementation of various directory properties on the
561
256
  :class:`plainbox.impl.secure.providers.v1.Provider1` class have changed. They
562
257
  are now explicitly configurable and are not derived from the now-gone
563
 
  ``location`` property. This affects
 
258
  ``location`` property. This affects 
564
259
  :meth:`plainbox.impl.secure.providers.v1.Provider1.jobs_dir`,
565
260
  :meth:`plainbox.impl.secure.providers.v1.Provider1.whitelists_dir`,
566
261
  :meth:`plainbox.impl.secure.providers.v1.Provider1.data_dir`,
568
263
  :meth:`plainbox.impl.secure.providers.v1.Provider1.locale_dir`.  This change
569
264
  makes the runtime layout of each directory flexible and more suitable for
570
265
  packaging requirements of particular distributions.
571
 
* Plainbox now associates an optional directory with per-provider locale data.
 
266
* PlainBox now associates an optional directory with per-provider locale data.
572
267
  This allows it to pass it to ``bindtextdomain()``.  The locale directory is
573
268
  available as :meth:`plainbox.impl.secure.providers.v1.Provider1.locale_dir`.
574
 
* Plainbox now offers a utility method,
 
269
* PlainBox now offers a utility method,
575
270
  :meth:`plainbox.impl.secure.providers.v1.Provider1.from_definition()`, to
576
271
  instantiate a new provider from
577
272
  :class:`plainbox.impl.secure.providers.v1.Provider1Definition`
603
298
API changes (Qualifiers)
604
299
........................
605
300
 
606
 
* Plainbox now has additional APIs that correctly preserve order of jobs
 
301
* PlainBox now has additional APIs that correctly preserve order of jobs
607
302
  selected by a :term:`WhiteList`, see:
608
303
  :func:`plainbox.impl.secure.qualifiers.select_jobs`.
609
 
* Plainbox has new APIs for converting any qualifier into a list of primitive
 
304
* PlainBox has new APIs for converting any qualifier into a list of primitive
610
305
  (non-divisible) qualifiers that express the same selection,
611
306
  :meth:`plainbox.abc.IJobQualifier.get_primitive_qualifiers()` and
612
307
  :meth:`plainbox.abc.IJobQualifier.is_primitive()`.
613
 
* Plainbox has new APIs for qualifiers to uniformly include and exclude jobs
 
308
* PlainBox has new APIs for qualifiers to uniformly include and exclude jobs
614
309
  from the selection list. This is implemented as a voting system described in
615
310
  the :meth:`plainbox.abc.IJobQualifier.get_vote()` method.
616
 
* Plainbox has new APIs for creating almost arbitrary job qualifiers out of the
 
311
* PlainBox has new APIs for creating almost arbitrary job qualifiers out of the
617
312
  :class:`plainbox.impl.secure.qualifiers.FieldQualifier` and
618
313
  :class:`plainbox.impl.secure.qualifiers.IMatcher` implementations such as
619
314
  :class:`plainbox.impl.secure.qualifiers.OperatorMatcher` or
620
315
  :class:`plainbox.impl.secure.qualifiers.PatternMatcher`. Older qualifiers
621
316
  will likely be entirely dropped and replaced by one of the subsequent
622
 
  releases.
 
317
  releases. 
623
318
 
624
319
API changes (command line tools)
625
320
--------------------------------
626
321
 
627
322
* :class:`plainbox.impl.clitools.ToolBase` now offers additional methods for
628
323
  setting up translations specific to a specific tool. This allows a library
629
 
  (such as Plainbox) to offer a basic tool that other libraries or applications
 
324
  (such as PlainBox) to offer a basic tool that other libraries or applications
630
325
  subclass and customize, part of the tool implementation (including
631
326
  translations) will come from one library while the rest will come from
632
327
  another. This allows various strings to use different gettext domains. This
663
358
API changes (Execution Controllers)
664
359
-----------------------------------
665
360
 
666
 
* :class:`plainbox.impl.ctrl.CheckboxExecutionController` no longer puts all of
 
361
* :class:`plainbox.impl.ctrl.CheckBoxExecutionController` no longer puts all of
667
362
  the provider-specific executables onto the PATH of the execution environment
668
363
  for each job definition. Now only executables from providers that have the
669
364
  same name-space as the job that needs to be executed are added to PATH.  This
693
388
  new :class:`plainbox.impl.secure.config.NotUnsetValidator`. Unlike all other
694
389
  validators, it is allowed to inspect the special
695
390
  :data:`plainbox.impl.secure.config.Unset` value.
696
 
* Plainbox now stores application identifier
 
391
* PlainBox now stores application identifier
697
392
  :meth:`plainbox.impl.session.state.SessionMetaData.app_id` which complements
698
393
  the existing application-specific blob property
699
394
  :meth:`plainbox.impl.session.state.SessionMetaData.app_blob` to allow
700
395
  applications to resume only the session that they have created. This feature
701
396
  will allow multiple plainbox-based applications to co-exist their state
702
397
  without clashes.
703
 
* Plainbox now stores both the normalized and raw version of the data produced
 
398
* PlainBox now stores both the normalized and raw version of the data produced
704
399
  by the RFC822 parser. The raw form is suitable as keys to gettext. This is
705
400
  exposed through the RFC822 and Job Definition classes.
706
401
 
713
408
* https://launchpad.net/checkbox/+milestone/plainbox-0.5b1
714
409
* https://launchpad.net/checkbox/+milestone/plainbox-0.5
715
410
 
716
 
Plainbox 0.4
 
411
PlainBox 0.4
717
412
^^^^^^^^^^^^
718
413
 
719
414
* Bugfixes: https://launchpad.net/checkbox/+milestone/plainbox-0.4
720
415
 
721
 
Plainbox 0.4 beta 2
 
416
PlainBox 0.4 beta 2
722
417
^^^^^^^^^^^^^^^^^^^
723
418
 
724
419
* Bugfixes: https://launchpad.net/checkbox/+milestone/plainbox-0.4b2
725
420
 
726
 
Plainbox 0.4 beta 1
 
421
PlainBox 0.4 beta 1
727
422
^^^^^^^^^^^^^^^^^^^
728
423
 
729
424
* Lots of production usage, bug fixes and improvements. Too many to
752
447
  keep the DBus interface though so this was a good move for the core
753
448
  itself.
754
449
 
755
 
Plainbox 0.3
 
450
PlainBox 0.3
756
451
^^^^^^^^^^^^
757
452
 
758
453
* Added support for all job types (manual, user-interact, user-verify, attachment, local)
765
460
* Numerous internal re-factorings, changes and improvements.
766
461
* Improved unit and integration testing coverage
767
462
 
768
 
Plainbox 0.2
 
463
PlainBox 0.2
769
464
^^^^^^^^^^^^
770
465
 
771
466
* Last release made from the standalone github tree.
772
467
* Added support for discovering dependencies and automatic dependency
773
468
  resolution (for both job dependencies and resource dependencies)
774
469
 
775
 
Plainbox 0.1
 
470
PlainBox 0.1
776
471
^^^^^^^^^^^^
777
472
 
778
473
* Initial release