diff --git a/Changelog b/Changelog index e21c146..33caf54 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,126 @@ +2013-10-01 - Version 3.0.0 + +Summary: + +Version 3 was a major rewrite to fix some internal dependency issues, and to +make the new Public API more clear. As a consequence a lot of things have +changed for version 3 and older revisions that we will try to outline here. + +(NOTE: The format of this CHANGELOG differs to normal in an attempt to +explain the scope of changes) + +* Server specific objects now moved under `postgresql::server::` namespace: + +To restructure server specific elements under the `postgresql::server::` +namespaces the following objects were renamed as such: + +`postgresql::database` -> `postgresql::server::database` +`postgresql::database_grant` -> `postgresql::server::database_grant` +`postgresql::db` -> `postgresql::server::db` +`postgresql::grant` -> `postgresql::server::grant` +`postgresql::pg_hba_rule` -> `postgresql::server::pg_hba_rule` +`postgresql::plperl` -> `postgresql::server::plperl` +`postgresql::contrib` -> `postgresql::server::contrib` +`postgresql::role` -> `postgresql::server::role` +`postgresql::table_grant` -> `postgresql::server::table_grant` +`postgresql::tablespace` -> `postgresql::server::tablespace` + +* New `postgresql::server::config_entry` resource for managing configuration: + +Previously we used the `file_line` resource to modify `postgresql.conf`. This +new revision now adds a new resource named `postgresql::server::config_entry` +for managing this file. For example: + +```puppet + postgresql::server::config_entry { 'check_function_bodies': + value => 'off', + } +``` + +If you were using `file_line` for this purpose, you should change to this new +methodology. + +* `postgresql_puppet_extras.conf` has been removed: + +Now that we have a methodology for managing `postgresql.conf`, and due to +concerns over the file management methodology using an `exec { 'touch ...': }` +as a way to create an empty file the existing postgresql\_puppet\_extras.conf +file is no longer managed by this module. + +If you wish to recreate this methodology yourself, use this pattern: + +```puppet + class { 'postgresql::server': } + + $extras = "/tmp/include.conf" + + file { $extras: + content => 'max_connections = 123', + notify => Class['postgresql::server::service'], + }-> + postgresql::server::config_entry { 'include': + value => $extras, + } +``` + +* All uses of the parameter `charset` changed to `encoding`: + +Since PostgreSQL uses the terminology `encoding` not `charset` the parameter +has been made consisent across all classes and resources. + +* The `postgresql` base class is no longer how you set globals: + +The old global override pattern was less then optimal so it has been fixed, +however we decided to demark this properly by specifying these overrides in +the class `postgresql::global`. Consult the documentation for this class now +to see what options are available. + +Also, some parameter elements have been moved between this and the +`postgresql::server` class where it made sense. + +* `config_hash` parameter collapsed for the `postgresql::server` class: + +Because the `config_hash` was really passing data through to what was in +effect an internal class (`postgresql::config`). And since we don't want this +kind of internal exposure the parameters were collapsed up into the +`postgresql::server` class directly. + +* Lots of changes to 'private' or 'undocumented' classes: + +If you were using these before, these have changed names. You should only use +what is documented in this README.md, and if you don't have what you need you +should raise a patch to add that feature to a public API. All internal classes +now have a comment at the top indicating them as private to make sure the +message is clear that they are not supported as Public API. + +* `pg_hba_conf_defaults` parameter included to turn off default pg\_hba rules: + +The defaults should be good enough for most cases (if not raise a bug) but if +you simply need an escape hatch, this setting will turn off the defaults. If +you want to do this, it may affect the rest of the module so make sure you +replace the rules with something that continues operation. + +* `postgresql::database_user` has now been removed: + +Use `postgresql::server::role` instead. + +* `postgresql::psql` resource has now been removed: + +Use `postgresql_psql` instead. In the future we may recreate this as a wrapper +to add extra capability, but it will not match the old behaviour. + +* `postgresql_default_version` fact has now been removed: + +It didn't make sense to have this logic in a fact any more, the logic has been +moved into `postgresql::params`. + +* `ripienaar/concat` is no longer used, instead we use `puppetlabs/concat`: + +The older concat module is now deprecated and moved into the +`puppetlabs/concat` namespace. Functionality is more or less identical, but +you may need to intervene during the installing of this package - as both use +the same `concat` namespace. + 2013-09-09 Release 2.5.0 ======================= diff --git a/Modulefile b/Modulefile index ae89412..4a026f6 100644 --- a/Modulefile +++ b/Modulefile @@ -1,5 +1,5 @@ name 'puppetlabs-postgresql' -version '2.5.0' +version '3.0.0-rc1' source 'git://github.com/puppetlabs/puppet-postgresql.git' author 'Inkling/Puppet Labs' description 'PostgreSQL defined resource types' diff --git a/README.md b/README.md index f9bf59f..2e8693a 100644 --- a/README.md +++ b/README.md @@ -127,16 +127,16 @@ Version 3 was a major rewrite to fix some internal dependency issues, and to mak To restructure server specific elements under the `postgresql::server::` namespaces the following objects were renamed as such: -* `postgresql::database` -> `postgresql::server::database` +* `postgresql::database` -> `postgresql::server::database` * `postgresql::database_grant` -> `postgresql::server::database_grant` -* `postgresql::db` -> `postgresql::server::db` -* `postgresql::grant` -> `postgresql::server::grant` -* `postgresql::pg_hba_rule` -> `postgresql::server::pg_hba_rule` -* `postgresql::plperl` -> `postgresql::server::plperl` -* `postgresql::contrib` -> `postgresql::server::contrib` -* `postgresql::role` -> `postgresql::server::role` -* `postgresql::table_grant` -> `postgresql::server::table_grant` -* `postgresql::tablespace` -> `postgresql::server::tablespace` +* `postgresql::db` -> `postgresql::server::db` +* `postgresql::grant` -> `postgresql::server::grant` +* `postgresql::pg_hba_rule` -> `postgresql::server::pg_hba_rule` +* `postgresql::plperl` -> `postgresql::server::plperl` +* `postgresql::contrib` -> `postgresql::server::contrib` +* `postgresql::role` -> `postgresql::server::role` +* `postgresql::table_grant` -> `postgresql::server::table_grant` +* `postgresql::tablespace` -> `postgresql::server::tablespace` ####New `postgresql::server::config_entry` resource for managing configuration @@ -148,9 +148,9 @@ Previously we used the `file_line` resource to modify `postgresql.conf`. This ne If you were using `file_line` for this purpose, you should change to this new methodology. -####`postgresql_extras.conf` has been removed +####`postgresql_puppet_extras.conf` has been removed -Now that we have a methodology for managing `postgresql.conf`, and due to concerns over the file management methodology using an `exec { 'touch ...': }` as a way to create an empty file the existing postgresql\_extras.conf file is no longer managed by this module. +Now that we have a methodology for managing `postgresql.conf`, and due to concerns over the file management methodology using an `exec { 'touch ...': }` as a way to create an empty file the existing postgresql\_puppet\_extras.conf file is no longer managed by this module. If you wish to recreate this methodology yourself, use this pattern: @@ -200,7 +200,7 @@ Use `postgresql_psql` instead. In the future we may recreate this as a wrapper t It didn't make sense to have this logic in a fact any more, the logic has been moved into `postgresql::params`. -####`ripieenar/concat` is no longer used, instead we use `puppetlabs/concat` +####`ripienaar/concat` is no longer used, instead we use `puppetlabs/concat` The older concat module is now deprecated and moved into the `puppetlabs/concat` namespace. Functionality is more or less identical, but you may need to intervene during the installing of this package - as both use the same `concat` namespace.