summaryrefslogtreecommitdiffstats
path: root/CHANGELOG
blob: b97acb323d15f8ff22a9df52455f73e62e327d70 (plain)
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
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
    Moved puppetd and puppetmasterd to sbin in svn and fixed install.rb
    to copy them into sbin on the local system appropriately.  (#323)

    Added a splay option (#501).  It's disabled when running under
    --test in puppetd.  The value is random but cached.  It defaults
    to the runinterval but can be tuned with --splaylimit

    Changing the notify type so that it always uses
    the loglevel.

    Fixing #568 - nodes can inherit from quoted node names.

    Tags (and thus definitions and classes) can now be a single
    character. (#566)

    Added an 'undef' keyword (#629), which will evaluate to ""
    within strings but when used as a resource parameter value
    will cause that parameter to be evaluated as undefined.

    Changed the topological sort algorithm (#507) so it will always
    fail on cycles.

    Added a 'dynamicfacts' configuration option; any facts in that
    comma-separated list will be ignored when comparing facts to 
    see if they have changed and thus whether a recompile is necessary.

    Renamed some poorly named internal variables:
        @models in providers are now either @resource or
        @resource_type (#605).

        @children is no longer used except by components (#606).

        @parent is now @resource within parameters (#607).

    The old variables are still set for backward compatibility.

    Significantly reworking configuration parsing.  Executables all now
    look for 'puppet.conf' (#206), although they will parse the old-style
    configuration files if they are present, although they throw a deprecation
    warning.  Also, file parameters (owner, mode, group) are now set on the
    same line as the parameter, in brackets. (#422)

    Added transaction summaries (available with the --summarize option),
    useful for getting a quick idea of what happened in a transaction.
    Currently only useful on the client or with the puppet interpreter.

    Changed the interal workings for retrieve and removed the :is attribute
    from Property.  The retrieve methods now return the current value of
    the property for the system.

    Rmoved acts_as_taggable from the rails models.

0.22.4
    Execs now autorequire the user they run as, as long as the user
    is specified by name. (#430)

    Files on the local machine but not on the remote server during
    a source copy are now purged if purge => true. (#594)

    Providers can now specify that some commands are optional (#585).
    Also, the 'command' method returns nil on missing commands,
    rather than throwing an error, so the presence of commands
    be tested.

    The 'useradd' provider for Users can now manage passwords.
    No other providers can, at this point.

    Parameters can now declare a dependency on specific
    features, and parameters that require missing features
    will not be instantiated.  This is most useful for
    properties.

    FileParsing classes can now use instance_eval to add
    many methods at once to a record type.

    Modules no longer return directories in the list of found
    manifests (#588).

    The crontab provider now defaults to root when there is no
    USER set in the environment.

    Puppetd once again correctly responds to HUP.

    Added a syntax for referring to variables defined in
    other classes (e.g., $puppet::server).

    STDIN, STDOUT, STDERR are now redirected to /dev/null in
    service providers descending from base.

    Certificates are now valid starting one day before they are
    created, to help handle small amounts of clock skew.

    Files are no longer considered out of sync if some properties
    are out of sync but they have no properties that can create
    the file.

0.22.3
    Fixed backward compatibility for logs and metrics from older clients.

    Fixed the location of the authconfig parameters so there aren't
    loading order issues.

    Enabling attribute validation on the providers that subclass
    'nameservice', so we can verify that an integer is passed to
    UID and GID.

    Added a stand-alone filebucket client, named 'filebucket'.

    Fixed the new nested paths for filebuckets; the entire md5 sum was
    not being stored.

    Fixing #553; -M is no longer added when home directories are being
    managed on Red Hat.

0.22.2 (grover)
    Users can now manage their home directories, using the managehome
    parameter, partially using patches provided by Tim Stoop and
    Matt Palmer. (#432)

    Added 'ralsh' (formerly x2puppet) to the svn tree.  When possible it
    should be added to the packages.

    The 'notify' type now defaults to its message being the same as its name.

    Reopening $stdin to read from /dev/null during execution, in hopes that
    init scripts will stop hanging.

    Changed the 'servername' fact set on the server to use the server's fqdn,
    instead of the short-name.

    Changing the location of the configuration cache.  It now defaults to being
    in the state directory, rather than in the configuration directory.

    All parameter instances are stored in a single @parameters instance variable
    hash within resource type instances.  We used to use separate hashes for
    each parameter type.

    Added the concept of provider features.  Eventually these should be able
    to express the full range of provider functionality, but for now they can
    test a provider to see what methods it has set and determine what features it
    provides as a result.  These features are integrated into the doc generation
    system so that you get feature documentation automatically.

    Switched apt/aptitide to using "apt-cache policy" instead of "apt-cache showpkg"
    for determining the latest available version. (#487)

    FileBuckets now use a deeply nested structure for storing files, so
    you do not end up with hundreds or thousands of files in the same
    directory. (#447)

    Facts are now cached in the state file, and when they change the configuration
    is always recompiled. (#519)

    Added 'ignoreimport' setting for use in commit hooks.  This causes the
    parser to ignore import statements so a single file can be parse-checked.  (#544)

    Import statements can now specify multiple comma-separated arguments.

    Definitions now support both 'name' and 'title', just like any other
    resource type. (#539)

    Added a generate() command, which sets values to the result of an external
    command. (#541)

    Added a file() command to read in files with no interpolation.  The first
    found file has its content returned.

    puppetd now exits if no cert is present in onetime mode. (#533)

    The client configuration cache can be safely removed and the client
    will correctly realize the client is not in sync.

    Resources can now be freely deleted, thus fixing many problems introduced
    when deletion of required resources was forbidden when purging was introduced.
    Only resources being purged will not be deleted.

    Facts and plugins now download even in noop mode (#540).

    Resources in noop mode now log when they would have responded to an event (#542).

    Refactored cron support entirely.  Cron now uses providers, and there
    is a single 'crontab' provider that handles user crontabs.  While this
    refactor does not include providers for /etc/crontab or cron.d, it should
    now be straightforward to write those providers.

    Changed the parameter sorting so that the provider parameter comes
    right after name, so the provider is available when the other parameters
    and properties are being created.

    Redid some of the internals of the ParsedFile provider base class.
    It now passes a FileRecord around instead of a hash.

    Fixing a bug related to link recursion that caused link directories
    to always be considered out of sync.

    The bind address for puppetmasterd can now be specified with 
    --bindaddress.

    Added (probably experimental) mongrel support.  At this point you're
    still responsible for starting each individual process, and you have to
    set up a proxy in front of it.

    Redesigned the 'network' tree to support multiple web servers, including
    refactoring most of the structural code so it's much clearer and more
    reusable now.

    Set up the CA client to default to ca_server and ca_port, so you can
    easily run a separate CA.

    Supporting hosts with no domain name, thanks to a patch from
    Dennis Jacobfeuerborn.

    Added an 'ignorecache' option to tell puppetd to force a recompile, thanks to
    a patch by Chris McEniry.

    Made up2date the default for RHEL < 4 and yum the default for the rest.

    The yum provider now supports versions.

    Case statements correctly match when multiple values are provided,
    thanks to a patch by David Schmitt.

    Functions can now be called with no arguments.

    String escapes parse correctly in all cases now, thanks to a patch by
    cstorey.

    Subclasses again search parent classes for defaults.

    You can now purge apt and dpkg packages.

    When doing file recursion, 'ensure' only affects the top-level directory.

    States have been renamed to Properties.

0.22.1 (kermit) -- Mostly a bugfix release
    Compile times now persist between restarts of puppetd.

    Timeouts have been added to many parts of Puppet, reducing the likelihood
    if it hanging forever on broken scripts or servers.

    All of the documentation and recipes have been moved to the wiki by Peter
    Abrahamsen and Ben Kite has moved the FAQ to the wiki.

    Explicit relationships now override automatic relationships, allowing you
    to manually specify deletion order when removing resources.

    Resources with dependencies can now be deleted as long as all of their
    dependencies are also being deleted.

    Namespaces for both classes and definitions now work much more consistently.
    You should now be able to specify a class or definition with a namespace
    everywhere you would normally expect to be able to specify one without.

    Downcasing of facts can be selectively disabled.

    Cyclic dependency graphs are now checked for and forbidden.

    The netinfo mounts provider was commented out, because it really doesn't
    work at all.  Stupid NetInfo stores mount information with the device as
    the key, which doesn't work with my current NetInfo code.

    Otherwise, lots and lots of bugfixes.  Check the tickets associated with the
    'kermit' milestone.

0.22.0
    Integrated the GRATR graph library into Puppet, for handling resource
    relationships.

    Lots of bug-fixes (see bugs tickets associated with the 'minor' milestone).

    Added new 'resources' metatype, which currently only includes the ability
    to purge unmanaged resources.

    Added better ability to generate new resource objects during transactions
    (using 'generate' and 'eval_generate' methods).

    Rewrote all Rails support with a much better database design.  Export/collect
    now works, although the database is incompatible with previous versions.

    Removed downcasing of facts and made most of the language case-insensitive.

    Added support for printing the graphs built during transactions.

    Reworked how paths are built for logging.

    Switched all providers to directly executing commands instead of going through
    a subshell, which removes the need to quote or escape arguments.

0.20.1
    Mostly a bug-fix release, with the most important fix being the
    multiple-definition error.

    Completely rewrote the ParsedFile system; each provider is now much
    shorter and much more maintainable.  However, fundamental problems
    were found with the 'port' type, so it was disabled.  Also, added
    a NetInfo provider for 'host' and an experimental NetInfo provider
    for 'mount'.

    Made the RRDGraph report *much* better and added reference
    generation for reports and functions.

0.20.0
    Significantly refactored the parser.  Resource overrides now consistently
    work anywhere in a class hierarchy.

    The language was also modified somewhat.  The previous export/collect syntax
    is now used for handling virtual objects, and export/collect (which is still
    experimental) now uses double sigils (@@ and <<| |>>).

    Resource references (e.g., File["/etc/passwd"]) now have to be capitalized,
    in fitting in with capitalizing type operations.

    As usual, lots of other smaller fixes, but most of the work was in the language.

0.19.3
    Fixing a bug in server/master.rb that causes the hostname
    not to be available in locally-executed manifests.

0.19.2
    Fixing a few smaller bugs, notably in the reports system.

    Refreshed objects now generate an event, which can result in further
    refreshes of other objects.

0.19.1
    Fixing two critical bugs:  User management works again and cron jobs are
    no longer added to all user accounts.

0.19.0
    Added provider support.

    Added support for %h, %H, and %d expansion in fileserver.conf.

    Added Certificate Revocation support.

    Made dynamic loading pervasive -- nearly every aspect of Puppet will now
    automatically load new instances (e.g., types, providers, and reports).

    Added support for automatic distribution of facts and plugins (custom types).

0.18.4
    Another bug-fix release.  The most import bug fixed is that
    cronjobs again work even with initially empty crontabs.

0.18.3
    Mostly a bug-fix release; fixed small bugs in the functionality added in
    0.18.2.

0.18.2
    Added templating support.

    Added reporting.

    Added gem and blastwave packaging support.

0.18.1
    Added signal handlers for HUP, so both client and server deal correctly with it.

    Added signal handler for USR1, which triggers a run on the client.

    As usual, fixed many bugs.

    Significant fixes to puppetrun -- it should behave much more correctly now.

    Added "fail" function which throws a syntax error if it's encountered.

    Added plugin downloading from the central server to the client.  It must be
    enabled with --pluginsync.

    Added support for FreeBSD's special "@daily" cron schedules.

    Correctly handling spaces in file sources.

    Moved documentation into svn tree.
    
0.18.0
    Added support for a "default" node.

    When multiple nodes are specified, they must now be comma-separated (this
    introduces a language incompatibility).

    Failed dependencies cause dependent objects within the same transaction
    not to run.

    Many updates to puppetrun

    Many bug fixes

    Function names are no longer reserved words.

    Links can now replace files.

0.17.2
    Added "puppetrun" application and associated runner server and client classes.

    Fixed cron support so it better supports valid values and environment settings.

0.17.1
    Fixing a bug requiring rails on all Debian boxes

    Fixing a couple of other small bugs

0.17.0
    Adding ActiveRecord integration on the server

    Adding export/collect functionality

    Fixing many bugs

0.16.5
    Fixing a critical bug in importing classes from other files

    Fixing nodename handling to actually allow dashes

0.16.4
    Fixing a critical bug in puppetd when acquiring a certificate for the first
    time

0.16.3
    Some significant bug fixes

    Modified puppetd so that it can now function as an agent independent
    of a puppetmasterd process, e.g., using the PuppetShow web application.

0.16.2
    Modified some of the AST classes so that class names, definition names, and
    node names are all set within the code being evaluated, so 'tagged(name)' returns
    true while evaluating 'name', for instance.

    Added '--clean' argument to puppetca to remove all traces of a given
    client.

0.16.1
    Added 'tagged' and 'defined' functions.

    Moved all functions to a general framework that makes it very easy to add new
    functions.

0.16.0
    Added 'tag' keyword/function.

    Added FreeBSD Ports support

    Added 'pelement' server for sending or receiving Puppet objects, although
    none of the executables use it yet.

0.15.3
    Fixed many bugs in :exec, including adding support for arrays of checks

    Added autoloading for types and service variants (e.g., you can now
    just create a new type in the appropriate location and use it in Puppet,
    without modifying the core Puppet libs).

0.15.2
    Added darwinport, Apple .pkg, and freebsd package types
    Added 'mount type
    Host facts are now set at the top scope (Bug #103)
    Added -e (inline exection) flag to 'puppet' executable
    Many small bug fixes

0.15.1
    Fixed 'yum' installs so that they successfully upgrade packages.
    Fixed puppetmasterd.conf file so group settings take.

0.15.0
    Upped the minor release because the File server is incompatible with 0.14,
        because it now handles links.

    The 'symlink' type is deprecated (but still present), in favor of using
        files with the 'target' parameter.

    Unset variables no longer throw an error, they just return an empty string

    You can now specify tags to restrict which objects run during a given run.

    You can also specify to skip running against the cached copy when there's
    a failure, which is useful for testing new configurations.

    RPMs and Sun packages can now install, as long as they specify a package
        location, and they'll automatically upgrade if you point them to a new
        file with an upgrade.
    Multiple bug fixes.


0.14.1
    Fixed a couple of small logging bugs
    Fixed a bug with handling group ownership of links

0.14.0
    Added some ability to selectively manage symlinks when doing file management
    Many bug fixes
    Variables can now be used as the test values in case statements and selectors
    Bumping a minor release number because 0.13.4 introduced a protocol
        incompatibility and should have had a minor rev bump

0.13.6
    Many, many small bug fixes
    FreeBSD user/group support has been added
    The configuration system has been rewritten so that daemons can now generate
        and repair the files and directories they need. (Fixed bug #68.)
    Fixed the element override issues; now only subclasses can override values.

0.13.5
    Fixed packages so types can be specified
    Added 'enable' state to services, although it does not work everywhere yet

0.13.4
    A few important bug fixes, mostly in the parser.

0.13.3
    Changed transactions to be one-stage instead of two
    Changed all types to use self[:name] instead of self.name, to support
        the symbolic naming implemented in 0.13.1

0.13.2
    Changed package[answerfile] to package[adminfile], and added package[responsefile]
    Fixed a bunch of internal functions to behave more consistently and usefully

0.13.1
    Fixed RPM spec files to create puppet user and group (lutter)
    Fixed crontab reading and writing (luke)
    Added symbolic naming in the language (luke)

0.13.0
    Added support for configuration files.
    Even more bug fixes, including the infamous 'frozen object' bug, which was a
        problem with 'waitforcert'.
    David Lutterkort got RPM into good shape.

0.12.0
    Added Scheduling, and many bug fixes, of course.

0.11.2
    Fixed bugs related to specifying arrays of requirements
    Fixed a key bug in retrieving checksums
    Fixed lots of usability bugs
    Added 'fail' methods that automatically add file and line info when possible,
    and converted many errors to use that method

0.11.1
    Fixed bug with recursive copying with 'ignore' set.
    Added OpenBSD package support.

0.11.0
    Added 'ensure' state to many elements.
    Modified puppetdoc to correctly handle indentation and such.
    Significantly rewrote much of the builtin documentation to take advantage
        of the new features in puppetdoc, including many examples.

0.10.2
    Added SMF support
    Added autorequire functionality, with specific support for exec and file
        Exec elements autorequire any mentioned files, including the scripts,
        along with their CWDs.
        Files autorequire any parent directories.
    Added 'alias' metaparam.
    Fixed dependencies so they don't depend on file order.

0.10.1
    Added Solaris package support and changed puppetmasterd to run as
    a non-root user.

0.10.0
    Significant refactoring of how types, states, and parameters work, including
    breaking out parameters into a separate class.  This refactoring did not
    introduce much new functionality, but made extension of Puppet significantly
    easier

    Also, fixed the bug with 'waitforcert' in puppetd.

0.9.4
    Small fix to wrap the StatusServer class in the checks for required classes.
    
0.9.3
    Fixed some significant bugs in cron job management.

0.9.2
    Second Public Beta

0.9.0
    First Public Beta