summaryrefslogtreecommitdiffstats
path: root/ext/tk/tcltklib.c
diff options
context:
space:
mode:
authoreban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-03-13 15:21:16 +0000
committereban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-03-13 15:21:16 +0000
commit7d74ab5b65ed9a50a760356b67f6a993402aa540 (patch)
tree283c90de0dae88cd812fdc3194dfad78c828c3c2 /ext/tk/tcltklib.c
parent6cd2603485b393a225fbe066906ba7db2ae082dd (diff)
* 2005-03-14
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/tcltklib.c')
0 files changed, 0 insertions, 0 deletions
='#n125'>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 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234
0.24.?
    Fixed #1232 - the rundir no longer specifies a user/group,
    and there are now client- and server-specific yaml directories.

    Fixed 1240 - puppet will function more like puppetd if graphing
    or reporting are enabled.

    Fixed #1006 - puppetrun --class works again.  I added the class
    membership testing to the Ldap node terminus, and added tests,
    so it shouldn't break again.

    Fixed #1114 - Facts in plugin directories should now be autoloaded,
    as long as you're using Facter 1.5.

    Fixed #1195 - Updated Gentoo init scripts

    Fixed #1367 - Updated Rakefile for new daily builds

    Fixed #1370 - removed test/util/loadedfile.rb tests
    
    Fixed #1221 - aliases to titles now work for resources.
    
    Fixed #1012 - templates in the templatedir are preferred to module templates.

    Fixed #707 - special '@reboot'-style cron jobs work again.

    Fixed #1360 - allowdupe works on groups again.

    Fixed #1369 - the init service provider now supports HP-UX.

    Removed support for the 'node_name' setting in LDAP and external node 
    lookups.

    Also removed support for 'default' nodes in external nodes.
    LDAP nodes now use the certificate name, the short name, and 'default',
    but external nodes just use the certificate name and any custom terminus
    types will use just the certificate name.
    
    Fixed #1201 - all external node attributes are converted to strings.

    Fixing #1168 (for 0.24.x) -- automatically downcasing the fqdn.
    Also requiring that passed in certnames be downcased; the setting
    system isn't currently flexible enough to automatically downcase
    it for the user.

    Adding a ResourceTemplate class for using templates directly
    within resources (i.e., client-side templates).  This would really
    only be used for composite resources that pass the results of the
    template on to generated resources.

    Exporting or collecting resources no longer raises an exception
    when no storeconfigs is enabled, it just produces a warning.

    Always using the cert name to store yaml files, which fixes #1178.
    The Master handler previously provided the support for the :node_name
    setting, and that functionality has now been moved into the Node
    class.  At the same time, the names to search through have been
    changed somewhat:  Previously, the certificate name and the 
    hostname were both used for searching, but now, the cert name
    is always searched first (unless node_name == facter), but only
    the Facter hostname, domain, and fqdn are used otherwise.  We no
    longer split the cert name, only the hostname/domain/fqdn.

    Fixing transaction support for prefetching generated resources.

    Adding support for settings within the existing Facter provider confines.

    Moving all confine code out of the Provider class, and fixing #1197. 
    Created a Confiner module for the Provider class methods, enhanced 
    the interface between it and the Confine class to make sure binary 
    paths are searched for fresh each time.

    Modified the 'factpath' setting to automatically configure
    Facter to load facts there if a new enough version of
    Facter is used.

    Crontab provider: fix a parse error when a line begins with a space 
    character (fixes #1216)

    Instead of deleting the init scripts (with --del) we should simply 
    disable it with chkconfig service off, and respectfully do the same 
    for enable => true;
 
    Added ldap providers for users and groups.

    Added support for the --all option to puppetca --clean.  If
    puppetca --clean --all is issued then all client certificates
    are removed.
 
    Resources now return the 'should' value for properties from
    the [] accessor method (they previously threw an exception when
    this method was used with properties).  This shouldn't have any
    affect functionally; it just makes the method equivalent to 'should'
    for properties, but it works for all attribute types now.

    Modified the 'master' handler to use the Catalog class to
    compile node configurations, rather than using the Configuration
    handler, which was never used directly.  I removed the Configuration
    handler as a result.

    Modified the 'master' handler (responsible for sending configurations
    to clients) to always return Time.now as its compile date, so
    configurations will always get recompiled.

    Fixed #1184 -- definitions now autoload correctly all of the time.

    Removed the code from the client that tries to avoid recompiling
    the catalog. The client will now always recompile, assuming it
    can reach the server.  It will still use the cached config if
    there's a failure.

    Fixing #1173 -- classes and definitions can now have the same
    name as a directory with no failures.

    Saving new facts now expires any cached node information.

    Switching how caching is handled, so that objects now all
    have an expiration date associated with them.  This makes it
    much easier to know whether a given cached object should be used
    or if it should be regenerated.

    Changing the default environment to production.

0.24.4
    Pass source to pkg_add via the PKG_PATH environment variable if
    it ends in a '/' indicating it is a directory. Allows pkg_add
    to resolve dependancies, and make it possible to specify packages
    without version numbers.

    Fixing #571 -- provider suitability is now checked at resource
    evaluation time, rather than resource instantiation time.  This
    means that you don't catch your "errors" as early, but it also
    means you should be able to realistically configure a whole host
    in one run.

    Moved the configuration of the Node cache to the puppetmasterd
    executable, since it otherwise causes caches to be used in all
    cases, which we don't want (e.g., bin/puppet was using them).

    Ported #198 man page creation functionality to 0.24.x branch and
    added man pages and man page creation logic to install.rb.  The
    man pages are stored in man/man8 and will install to config::CONFIG
    mandir/man8.

    Fixing #1138 -- the yamldir is automatically created by the
    server now that it's in the :puppetmasterd section rather than
    a separate :yaml section.

    Disabling http keep-alive as a means of preventing #1010.
    There is now a constant in Puppet::Network::HttpPool that will
    disable or enable this feature, but note that we determined
    that it can cause corruption, especially in file serving (but
    it's client-side corruption).

    Applying patch by Ryan McBride to fix OpenBSD package 
    matching.  The actual problem was caused by the fix to #1001.

    Found all instances of methods where split() is used without
    any local variables and added a local variable -- see
    http://snurl.com/21zf8.  My own testing showed that this
    caused memory growth to level off at a reasonable level.
    Note that the link above says the problem is only with class
    methods, but my own testing showed that it's any method that
    meets these criteria.  This is not a functional change, but
    should hopefully be the last nail in the coffin of #1131.

    Found an array that leaked pretty quickly between reparsing
    files, thanks to work by Adam Jacob and Arjuna Christenson
    (the finding, not the leak).  I'm going to act like this
    fixes #1131, at least for now, but I doubt it does,
    since that shows general memory growth over time, whereas
    the leak here should go away as soon as files are reparsed
    (because the parser is holding the reference to the leaking
    array).

    Fixed #1147: Cached nodes are correctly considered out of
    date if the node facts have been updated (thus causing
    node facts to again be available in manifests, for those
    cases where they were not).

    Fixed #1137: The certificate name is correctly being added
    to the facts hash.

    Fixed #1136: Verbose and Debug no longer clobber each other.

    Hopefully *finally* fixed the "already being managed" problem
    (#1036).  The problem only cropped up if there was a failure
    when trying to manage the system -- this would cause the
    setting-based resources not to get cleaned up.

0.24.3
    Modified the ldap node terminus to also use the facts version
    as the version for a node, which should similarly encourage the
    use of the yaml cache.  (Related to #1130)

    Caching node information in yaml (I figured caching in memory will
    cause ever-larger memory growth), and changing the external node
    terminus to use the version of the facts as their version.  This
    will usually result in the cached node information being used,
    instead of always hitting the external node app during file
    serving. Note that if the facts aren't changed by the client,
    then this will result in the cached node being used, but at this
    point, the client always updates its facts.  (#1130)

    Fixing #1132 -- host names can now have dashes anywhere.
    (Patch by freiheit.)

    Fixing #1118 -- downloading plugins and facts now ignores noop.
    Note that this changes the behaviour a bit -- the resource's
    noop setting always beats the global setting (previously,
    whichever was true would win).

    The change in checksums from 'timestamp' to 'mtime' no longer
    result in updates on every run (#1116).

    Aliases again work in relationships (#1094).

    The CA serial file will no longer ever be owned by
    root (#1041).

    Fixing the rest of #1113: External node commands can specify
    an environment and Puppet will now use it.

    Partially fixing #1113: LDAP nodes now support environments,
    and the schema has been updated accordingly.

    Always duplicating resource defaults in the parser, so that
    stacked metaparameter values do not result in all resources
    that receive a given default also getting those stacked
    values.

0.24.2
    Fixing #1062 by moving the yamldir setting to its own yaml
    section.  This should keep the yamldir from being created
    on clients.

    Fixed #1047 -- Puppet's parser no longer changes the order
    in which statements are evaluated, which means that case
    statements can now set variables that are used by other
    variables.

    Fixed #1063 -- the master correctly logs syntax errors when
    reparsing during a single run.

    Removed the loglevels from the valid values for `logoutput`
    in the Exec resource type -- the log levels are specified
    using the `loglevel` parameter, not `logoutput`.  This never
    worked, or at least hasn`t for ages, and now the docs are
    just correct.

    Somewhat refactored fileserving so that it no longer caches
    any objects, nor does it use Puppet's RAL resources.  In the
    process, I fixed #894 (you can now copy links) and refactored
    other classes as necessary.  Mostly it was fixing tests.

    Hopefully partially fixed #1010 -- clients should now fail
    to install files whose checksums do not match the checksum
    from the server.

    Fixed #1018 -- resources now have their namevars added as
    aliases in the resource catalog, just like they were added
    in the resource classes.

    Fixed #1037 -- remote unreadable files no longer have the
    permission denied exceptions caught, thus forbidding them
    from being replaced with 'nil'.

    Fixed #1043 -- autoloading now searches the plugins directory
    in each module, in addition to the lib directory.  The 'lib'
    directory is also deprecated, but supported for now to give
    people a chance to convert.

    Fixed #1003 -- Applying DavidS's patch to fix searching for
    tags in sql.

    Fixed #992 -- Puppet is now compatible with gems 1.0.1.

    Fixed #968 again, this time with tests -- parseonly works,
    including not compiling the configurations, and also storeconfigs
    is no longer required during parse-testing.

    Fixed #1021 -- the problem was that my method of determining
    the in-degree sometimes resulted in a lower number than the
    number of in-edges.

    Fixed #997 -- virtual defined types are no longer evaluated.
    NOTE: This introduces a behaviour change, in that you previously
    could realize a resource within a virtual defined resource, and now
    you must realize the entire defined resource, rather than just
    the contained resource.

    Fixed #1030 - class and definition evaluation has been significantly
    refactored, fixing this problem and making the whole interplay
    between the classes, definitions, and nodes, and the Compile class much
    cleaner.

    Exec resources must now have unique names, although the commands can still
    be duplicated.  This is easily accomplished by just specifying a unique
    name with whatever (unique or otherwise) command you need.

    Fixed #989 -- missing CRL files are correctly ignored, and the
    value should be set to 'false' to explicitly not look for these
    files.

    Fixed #1017 -- environment-specific modulepath is no longer ignored.

    Fixing #794 -- consolidating the gentoo configuration files.

    Fixing #976 -- both the full name of qualified classes and
    the class parts are now added as tags.  I've also
    created a Tagging module that we should push throughout
    the rest of the system that uses tags.

    Fixing #995 -- puppetd no longer dies at startup if the server
    is not running.

    Fixing #977 -- the rundir is again set to 1777.

    Fixed #971 -- classes can once again be included multiple
    times.

    Added builtin support for Nagios types using
    Naginator to parse and generate the files.

0.24.1
    Updated vim filetype detection. (#900 and #963)

    Default resources like schedules no longer conflict with
    managed resources. (#965)

    Removing the ability to disable http keep-alive, since
    it didn't really work anyway and it should no longer
    be necessary.

    Refactored http keep-alive so it actually works again.
    This should be sufficient enough that we no longer need the
    ability to disable keep-alive.  There is now a central
    module responsible for managing HTTP instances, along with
    all certificates in those instances.

    Fixed a backward compatibility issue when running 0.23.x
    clients against 0.24.0 servers -- relationships would
    consistently not work. (#967)

    Closing existing http connections when opening a new one,
    and closing all connections after each run. (#961)

    Removed warning about deprecated explicit plugins mounts.

0.24.0 (misspiggy)
    Modifying the behaviour of the certdnsnames setting.  It now defaults
    to an empty string, and will only be used if it is set to something
    else.  If it is set, then the host's FQDN will also be added as
    an alias.  The default behaviour is now to add 'puppet' and
    'puppet.$domain' as DNS aliases when the name for the cert being
    signed is equal to the signing machine's name, which will only
    be the case for CA servers.  This should result in servers always
    having the alias set up and no one else, but you can still override
    the aliases if you want.

    External node support now requires that you set the 'node_terminus'
    setting to 'exec'.  See the IndirectionReference on the wiki for more
    information.

    http_enable_post_connection_check added as a configuration
    option for puppetd.  This defaults to true, which validates the server
    SSL certificate against the requested host name in new versions of ruby.
    See #896 for more information.

    Mounts no longer remount swap filesystems.

    Slightly modifying how services manage their list of paths
    (and adding documention for it).  Services now default
    to the paths specified by the provider classes.

    Removed 'type' as a valid attribute for services, since it's been
    deprecated since the creation of providers.

    Removed 'running' as a valid attribute for services, since it's
    been deprecated since February 2006.

    Added modified patch by Matt Palmer which adds a 'plugins' mount,
    fixing #891.  See PluginsInModules on the wiki for information on
    usage.

    Empty dbserver and dbpassword settings will now be ignored when
    initializing Rails connections (patch by womble).

    Configuration settings can now be blank (patch by womble).

    Added calls to endpwent/endgrent when searching for user and group IDs,
    which fixes #791.

    Obviated 'target' in interfaces, as all file paths were automatically
    calculated anyway.  The parameter is still there, but it's
    not used and just generates a warning.

    Fixing some of the problems with interface management on Red Hat.
    Puppet now uses the :netmask property and does not try to set
    the bootproto (#762).

    You now must specify an environment and you are required to specify
    the valid environments for your site. (#911) 

    Certificates now always specify a subjectAltName, but it defaults
    to '*', meaning that it doesn't require DNS names to match.  You
    can override that behaviour by specifying a value for
    'certdnsnames', which will then require that hostname as a match (#896).

    Relationship metaparams (:notify, :require, :subscribe, and
    :before) now stack when they are collecting metaparam values
    from their containers (#446).  For instance, if a resource
    inside a definition has a value set for 'require', and you call
    the definition with 'require', the resource gets both requires,
    where before it would only retain its initial value.

    Changed the behavior of --debug to include Mongrel client
    debugging information.  Mongrel output will be written to
    the terminal only, not to the puppet debug log.  This should
    help anyone working with reverse HTTP SSL proxies. (#905)

    Fixed #800 -- invalid configurations are no longer
    cached.  This was done partially by adding a relationship
    validation step once the entire configuration is created,
    but it also required the previously-mentioned changes
    to how the configuration retrieval process works.

    Removed some functionality from the Master client,
    since the local functionality has been replaced
    with the Indirector already, and rearranging how configuration
    retrieval is done to fix ordering and caching bugs.

    The node scope is now above all other scopes besides
    the 'main' scope, which should help make its variables
    visible to other classes, assuming those classes were
    not included in the node's parent.

    Replaced GRATR::Digraph with Puppet::SimpleGraph as
    the base class for Puppet's graphing.  Functionality
    should be equivalent but with dramatically better
    performance.

    The --use-nodes and --no-nodes options are now obsolete.
    Puppet automatically detects when nodes are defined, and if
    they are defined it will require that a node be found,
    else it will not look for a node nor will it fail if it
    fails to find one.

    Fixed #832. Added the '--no-daemonize' option to puppetd and
    puppetmasterd.  NOTE: The default behavior of 'verbose' and
    'debug' no longer cause puppetd and puppetmasterd to not
    daemonize.

    Added k5login type. (#759)

    Fixed CA race condition. (#693)

    Added shortname support to config.rb and refactored addargs

0.23.2
    Fixed the problem in cron jobs where environment settings
    tended to multiple. (#749)

    Collection of resources now correctly only collects exported
    resources again.  This was broken in 0.23.0. (#731)

    'gen_config' now generates a configuration with
    all parameters under a heading that matches the
    process name, rather than keeping section headings.

    Refactored how the parser and interpreter relate,
    so parsing is now effectively an atomic process (thus
    fixing #314 and #729).  This makes the interpreter less
    prone to error and less prone to show the error to the
    clients.  Note that this means that if a configuration
    fails to parse, then the previous, parseable configuration
    will be used instead, so the client will not know that
    the configuration failed to parse.

    Added support for managing interfaces, thanks to work
    by Paul Rose.

    Fixed #652, thanks to a patch by emerose; --fqdn again
    works with puppetd.

    Added an extra check to the Mongrel support so that
    Apache can be used with optional cert checking, instead
    of mandatory, thus allowing Mongrel to function as the CA.
    This is thanks to work done by Marcin Owsiany.

0.23.1 (beaker)
    You can now specify relationships to classes, which work
    exactly like relationships to defined types:
        require => Class[myclass]
    This works with qualified classes, too.

    You can now do simple queries in a collection of
    exported resources.  You still cannot do multi-condition queries,
    though. (#703)

    puppetca now exits with a non-zero code if it cannot
    find any host certificates to clean. (Patch by Dean
    Wilson.)

    Fully-qualified resources can now have defaults. (#589)

    Resource references can now be fully-qualified names,
    meaning you can list definitions with a namespace as
    dependencies.  (#468)

    Files modified using a FileType instance, as ParsedFile
    does, will now automatically get backed up to the filebucket
    named "puppet".

    Added a 'maillist' type for managing mailing lists.

    Added a 'mailalias' type for managing mail aliases.

    Added patch by Valentin Vidic that adds the '+>' syntax to
    resources, so parameter values can be added to.

    The configuration client now pulls libraries down to $libdir,
    and all autoloading is done from there with full support
    for any reloadable file, such as types and providers. (#621)
    Note that this is not backward compatible -- if you're using
    pluginsync right now, you'll need to disable it on your clients
    until you can upgrade them.

    The Rails log level can now be set via (shockingly!) the
    'rails_loglevel' parameter (#710).  Note that this isn't
    exactly the feature asked for, but I could not find a
    way to directly copy ActiveRecord's concept of an environment.

    External node sources can now return undefined classes (#687). 

    Puppet clients now have http proxy support (#701).

    The parser now throws an error when a resource reference
    is created for an unknown type.  Also, resource references
    look up defined types and translate their type accordingly. (#706)

    Hostnames can now be double quoted.

    Adding module autoloading (#596) -- you can now 'include' classes
    from modules without ever needing to specifically load them.

    Class names and node names now conflict (#620).

0.23.0
    Modified the fileserver to cache file information, so that
    each file isn't being read on every connection.  Also,
    added londo's patch from #678 to avoid reading entire files
    into memory.

    Fixed environment handling in the crontab provider (#669).

    Added patch by trombik in #572, supporting old-style
    freebsd init scripts with '.sh' endings.

    Added fink package provider (#642), as provided by 'do'.

    Marked the dpkg package provider as versionable (#647).

    Applied patches by trombik to fix FreeBSD ports (#624 and #628).

    Fixed the CA server so that it refuses to send back a certificate
    whose public key doesn't match the CSR.  Instead, it tells the
    user to run 'puppetca --clean'.

    Invalid certificates are no longer written to disk (#578).

    Added a package provider (appdmg) able to install .app packages
    on .dmg files on OS X (#641).

    Applied the patch from #667 to hopefully kill the client hanging
    problems (permanently, this time).

    Fixed functions so that they accept most other rvalues as valid values
    (#548).

    COMPATIBILITY ALERT:
    Significantly reworked external node support, in a way that's NOT
    backward-compatible:

        Only ONE node source can be used -- you can use LDAP, code, or
        an external node program, but not more than one.
    
        LDAP node support has two changes:  First, the "ldapattrs" attribute is
        now used for setting the attributes to retrieve from the server (in
        addition to required attriutes), and second, all retrieved attributes
        are set as variables in the top scope.  This means you can set attributes
        on your LDAP nodes and they will automatically appear as variables
        in your configurations.

        External node support has been completely rewritten.  These programs must
        now generate a YAML dump of a hash, with "classes" and "parameters" keys.
        The classes should be an array, and the parameters should be a hash.  The
        external node program has no support for parent nodes -- the script must
        handle that on its own.

    Reworked the database schema used to store configurations with the
    storeconfigs option.  
    
    Replaced the obsolete RRD ruby library with the maintained
    RubyRRDtool library (which requires rrdtool2) (#659).

    The Portage package provider now calls eix-update automatically
    when eix's database is absent or out of sync (#666).

    Mounts now correctly handle existing fstabs with no pass or dump values
    (#550).

    Mounts now default to 0 for pass and dump (#112).

    Added urpmi support (#592).

    Finishing up the type => provider interface work.  Basically, package
    providers now return lists of provider instances.  In the proces,
    I rewrote the interface between package types and providers, and also
    enabled prefetching on all packages.  This should significantly speed
    up most package operations.

    Hopefully fixing the file descriptor/open port problems, with patches
    from Valentin Vidic.

    Significantly reworked the type => provider interface with respect to
    listing existing provider instances.  The class method on both
    class heirarchies has been renamed to 'instances', to start.  Providers
    are now expected to return provider instances, instead of creating
    resources, and the resource's 'instances' method is expected to
    find the matching resource, if any, and set the resource's
    provider appropriately.  This *significantly* reduces the reliance on
    effectively global state (resource references in the resource classes).
    This global state will go away soon.

    Along with this change, the 'prefetch' class method on providers now
    accepts the list of resources for prefetching.  This again reduces
    reliance on global state, and makes the execution path much easier
    to follow.

    Fixed #532 -- reparsing config files now longer throws an exception.

    Added some warnings and logs to the service type so
    users will be encouraged to specify either "ensure"
    or "enabled" and added debugging to indicate why
    restarting is skipped when it is.

    Changed the location of the classes.txt to the state
    directory.

    Added better error reporting on unmatched brackets.

    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.

    Removed 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