= Release History == 3.3: November 17, 2023 - Adapt tests to zsh - Use ${RUBY} instead of 'ruby' for test runner - Avoid using 'set +o posix' for compatibility with Alpine == 3.2: April 13, 2022 - flattenjs: exit 0 if the input is empty - Drop ddl_compare(1) == 3.1: October 01, 2020 - Minor revisions to README and Makefile - No longer set 'wal_keep_segments' for compatibility with 13 == 3.0: March 27, 2020 - Add ddl_compare(1), a utility for creating schema diffs - Listen on '*' when the '-t' option is specified == 2.9: November 21, 2019 - More portable integration tests - Add contrib/flattenjs - Detect version based on pg_ctl(1), not psql(1) == 2.8: September 25, 2019 - Move hosting from bitbucket.org to github.com - Rename tag names from ephemeralpg-X.Y to X.Y == 2.7: May 22, 2019 - '-w 0' leaves the server running indefinitely - New '-k' flag prevents the temporary directory from being cleaned up - Only repeat the last 10 lines of the postgres log if createdb(1) fails - Set default check interval to 5 seconds for 'stop' == 2.6: March 27, 2019 - Only run getsocket(1) if a port was not specified - Reduce disk usage by running checkpoints after 64MB of WAL (default is 1GB) == 2.5: March 01, 2018 - Skip over pre-initialized database directories that are not owned by the current user - Guard against a variant race condition introduced in ephemeralpg-2.4 == 2.4: February 02, 2018 - Ignore .psqlrc to prevent indeterminate behaviors - Guard against race condition if pg_tmp is executed concurrently == 2.3: August 11, 2017 - Allow irregular version strings such as "10beta3" - Use still-alive query compatible with 10 and 9.x == 2.2: December 13, 2016 - Include username in URL when '-t' is specified == 2.1: October 31, 2016 - Fix build for getsocket(1) on FreeBSD - Add instructions for building getsocket(1) on Solaris == 2.0: March 29, 2016 - Allow a temporary directory to be used in combination with the optional arguments 'initdb', 'start', and 'stop' - 'stop' only sleeps if '-w' was specified == 1.9: March 09, 2016 - Unbreak directory cleanup with PG 9.3 - Turn off synchronous_commit by default - Unix sockets are specified using ?host= for compatibility with SQLAlchemy == 1.8: January 05, 2016 - Stop a running instance if query for open connections fails - Ignore SIGHUP instead of relying on nohup(1) - Properly support multiple extra-options to using the flag '-o' == 1.7: December 12, 2015 - Properly stop the server that is listening on a TCP port - More extensive test framework included: 'make test' == 1.6: December 10, 2015 - Exit non-zero if getopt(1) fails - Raise an error early if initdb(1) cannot be found - Run background initdb and timed stop even if postgres fails to start == 1.5: December 01, 2015 - Allow extra-options to be passed directly to postgres(1) on start using '-o' - Copy log to STDERR and exit non-zero if server startup fails == 1.4: October 30, 2015 - Only remove the temporary directory if postgresql.auto.conf exists - Database is started under /tmp/ephemeralpg.*/$PGVER/ instead of /tmp/ephemeralpg$PGVER.*/db/ - More aggressively suppress warnings from nohup(1) == 1.3: October 23, 2015 - Display ephemeralpg release number along with usage help text - Unrecognized options display usage - Temporary directory is named with the major version number - Simplify socket URL - Drop log file location flag == 1.2: January 24, 2015 - Log statements and connect/disconnects. - Specify log file location with '-l' flag - Database is shutdown only after clients have disconnected. The timeout now specifies a check interval - Newline is not suppressed if run in a terminal - Bugfix in getsock(1) so that only ports above 1024 are returned == 1.1: January 17, 2015 - Timeout flag changed to '-w' to match netcat(1) - Use '-t' flag to bind to a TCP port using bundled getsocket(1) utility == 1.0: January 07, 2015 - Initial release at https://bitbucket.org/eradman/ephemeralpg - Cross-platform implementation in less then 100 lines of code