From bd663f9cbc3c0a381728856f40c81c0515fce918 Mon Sep 17 00:00:00 2001 From: dbs Date: Mon, 28 Feb 2011 04:36:59 +0000 Subject: [PATCH] Commit the full version of the Changelog for the 2.0 release git-svn-id: svn://svn.open-ils.org/OpenSRF/tags/rel_2_0_0_rc1@2186 9efc2488-bf62-4759-914b-345cdb29e865 --- ChangeLog | 500 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 499 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 3323187..47ddb2f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1 +1,499 @@ -#ChangeLog +Change log from 2.0.0-beta1 to 2.0.0-rc1 +======================================== + +2011-02-22 dbs + + * examples/opensrf.xml.example: Remove max_requests config stanza from C language + implementations in example config + + Only Perl implementations support the max_requests stanza, so let's not confuse + matters with an unused element. + + * examples/opensrf-rsyslog.conf: added sample rsyslog opensrf configuration file + + * src/python/osrf/app.py: Trivial typo fix (also tests OpenSRF buildbot) + + * README: Remove extraneous line for dnsmasq / Python + + * src/libopensrf/osrf_prefork.c: Get that brace back in the right place + + Unbreak the build. Argh. + + * src/libopensrf/osrf_prefork.c, src/perl/lib/OpenSRF/Server.pm: Add hints to + increase max_children config variable if we're hitting the maximum + + Already added this hint to the Python implementation, now propagating to + C and Perl. + + * src/python/osrf/server.py: Clean up Python server implementation, guided by + pylint + + Add some docstrings, keep line lengths at 80 or less (MORE + WHITESPACE!), remove some dead code, and add a hint to check + max_children config value if we're bumping up against the + limit. + + * src/perl/lib/OpenSRF/Application.pm: on second thought, removing debug sleep + method, which is (more than most) a DOS waiting to happen. + + * src/c-apps/Makefile.am: Apply libtools versioning to OpenSRF c-apps as well + + We apply a -version-info argument of 2:0:2, meaning: + * interface = 2: interface '2' of this library + * revision = 0: first implementation of interface '2' + * age = 2: this library can be linked with executables going back + two interface versions + + See http://sourceware.org/autobook/autobook/autobook_91.html for more + information on the -version-info argument. + + * src/libopensrf/Makefile.am: Prepare for version 2.0.0 with versioning for 2.0.0 + + Use the libtool -version-info option to provide an explicit version + for the libopensrf.so library. Introducing versioned libraries will + give us the ability to force recompiles of linked applications when + binary compatibility has been broken. + + * src/perl/lib/OpenSRF/Application.pm: added opensrf.system.sleep method; takes 1 + param (seconds); useful for debugging child process management + + * src/perl/lib/OpenSRF/Server.pm: Resolve encoding problem found by attempting to + register patrons with Unicode names + + Symptoms were: + + 1. a gateway.log entry showing http_translator receiving an XMPP error message + 2. a corresponding osrfsys.log entry "server: died with error Wide character in + syswrite at /usr/local/share/perl5/OpenSRF/Server.pm line 239" + + Per normal Perl Unicode handling practices, decoding input and encoding output + using the Encode module and decode_utf8() / encode_utf8() appears to resolve + the problem. + +2011-01-31 dbs + + * Makefile.am: Whitespace consistency (tabs for Makefiles I guess) + + * src/perl/lib/OpenSRF.pm: Use an Exporter-approved version number (only one + decimal place) + + * src/perl/Build.PL: Correct copy/paste error in Build.PL metadata + + OpenSRF uses GPL v2 or later, not the Perl license. + +2011-01-28 dbs + + * src/perl/t/08-Server.t, src/perl/t/08-UnixServer.t: OpenSRF::UnixServer doesn't + live here any more + + This test was still succeeding on hosts that had installed + previous versions of OpenSRF, but failed on a shiny new + test instance. + +2011-01-26 dbs + + * src/perl/t/07-Transport.t: Set the correct number of expected tests so that we + don't fail 100% of the time + + I guess we haven't run "make test" here since r2024 - heh. + +2011-01-21 erickson + + * src/libopensrf/osrf_application.c, src/perl/lib/OpenSRF/Application.pm: make the + api CALL log line consistent across Perl and C and make it something that can be + pasted directly into srfsh + + * src/python/srfsh.py: repaired call to handle_request for router query; cannot + survive without the self. + +2010-12-20 erickson + + * src/python/srfsh.py: repaired bug in total request time calc, particularly when + a request returns no response + +2010-12-20 dbs + + * src/extras/Makefile.install: Straighten out -f / -d flag confusion in + libmemcached prerequisite + + There are two different styles of checking for previously downloaded + tarballs in this Makefile; the libmemcached entry combined them both + with unfortunate results. + +2010-12-20 erickson + + * src/python/srfsh.py: Python srfsh enhancements + + * Srfsh plugins can now insert new commands and add words to the tab + completion word bank. + * Addded support reading script files + * Added support for service open/close (connect/disconnect) for stateful + connections + * Moved to class-based srfsh module for easier state maintenance + * More doc strings + +2010-12-13 erickson + + * src/perl/lib/OpenSRF/Application.pm: on second thought, removing debug sleep + method, which is (more than most) a DOS waiting to happen. + + * src/python/osrf/server.py: improved select/read/write fault tolerance; cleaner + and more efficient child process idle/active list management; improved logging + +2010-12-01 dbs + + * README: Apply patch for dnsmasq documentation + + Thanks to Michael Giarlo for + providing this correction to the dnsmasq configuration line! + +2010-11-30 erickson + + * src/python/opensrf.py.in: fail gracefully when opensrf.settings is not up and + running + +2010-11-29 erickson + + * src/perl/lib/OpenSRF/Server.pm: don't clean up child attributes until we're done + with them; added pid map hash for easy/quick access to child via pid + + * src/perl/lib/OpenSRF/Server.pm: add fault tolerance (e.g. recover from + interrupted select/sysread); always perform idle maintenance when there are any + active child processes; exit check status early when no active processes exist + + * src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm: avoid calling sysread + when select exited from interruption. + + * src/perl/lib/OpenSRF/Application.pm: added opensrf.system.sleep method; takes 1 + param (seconds); useful for debugging child process management + +2010-11-29 dbs + + * src/extras/Makefile.install: Lenny needs zlib1g-dev package to install + XML::LibXML and others + + Per https://rt.cpan.org/Public/Bug/Display.html?id=51439; also, + libmemcached failed to configure and build without this. + +2010-11-24 gmc + + * src/extras/Makefile.install, src/perl/Build.PL: no longer need FreezeThaw + + Signed-off-by: Galen Charlton + +2010-11-22 erickson + + * src/libopensrf/osrf_prefork.c: in the rare case the select() is interrupted + while waiting on child statuses, exit early to prevent read()'s on invalid file + handles and allow the calling code to loop back around and try again + +2010-11-20 erickson + + * src/python/srfsh.py: added support for introspect operation + + * src/Makefile.am: install srfsh.py when --enable-python is set + + * src/python/srfsh.py: added support for paging through 'less' (like C); added + 'router' query docs; added separate env vars for pretty printing json and for + print network object keys; explicit opensrf disconnect on exit + + * src/python/osrf/system.py: added network disconnect func + +2010-11-19 erickson + + * src/python/srfsh.py: added 'router' command for router class info queries; + improved redline tab completion; more changes for consistency with C version; + general cleanup + +2010-11-16 erickson + + * src/python/osrf/net_obj.py: repaired logic in the as-yet-unused + import_array_data; use the more efficient enumerate func; capture array length + outside of loop for efficiency; avoid calls to set/get_field and access _data + directly inside of the NetworkObject class for faster accessor/mutator's + + * src/python/srfsh.py: removed debug print statement + + * src/python/osrf/net_obj.py: rely on logic, not failure through try/catch, to + determine of an object is a registered network object; if an object is + unregistered, do not treat it as an __unknown network object (which obfuscates + and provides no value). + + * src/python/srfsh.py: killed the terminal colors in srfsh.py output. They are + cute and all, but are likely the cause of readline oddities/artifacts (and kind + of distracting). Default to raw (json) output for consistency + +Change log for 2.0.0-beta1 +========================== + +2010-11-15 dbs + + * src/perl/lib/OpenSRF.pm: Bump version number for 2.0 branch + +2010-11-15 dbs + + * .: Create rel_2_0 branch for next major OpenSRF release + +2010-11-14 dbs + + * Limit list of Python services to those within the domain-specific activeapps + section + + Fix up help with correct default PID directory and document list_all action + +2010-11-11 dbs + + * If an alternate config file is pointed to in osrf_ctl.sh, respect it + + In a previous edit, I accidentally removed the config file option + from the start_python command, which would break if anything other + than the configured default config file was specified as an option to + osrf_ctl.sh. This makes opensrf.py once again respect the authority + of osrf_ctl.sh. + + * Use the same PID directory as the opensrf-perl.pl and opensrf.py scripts + + The default PID directories for the opensrf-perl.pl and opensrf.py scripts + was /openils/var/run/opensrf (assuming a prefix of '/openils'), while the + default PID directory for osrf_ctl.sh was /openils/var/run. This complicated + matters when trying to restart individual Python or Perl services, as without + passing an explicit PID directory argument the restart command from the + language-specific script would check for a PID in a different PID directory, + find none, and end up running a second copy of the service instead of + restarting the existing service. + + The change groups all PIDs in the 'run/opensrf' subdirectory to avoid any + PID file conflicts (as unlikely as that might be) if OpenSRF is installed + in the default location - so rather than /var/local/run/*.pid, one will + be able to look at /var/local/run/opensrf/*.pid + +2010-11-10 dbs + + * Add the sanity-saving step of a munged PERL5LIB to the README + + Thanks for the nudge from Thomas Berezanksy! + + * Commit some unit tests for Python osrf.json module + + Recommendation: add *_test.py scripts that mirror each + osrf.* module in src/python/tests. Boo-yah. + +2010-11-09 dbs + + * osrf.json clean up + + * Use the right variable name in to_json_raw() + * PEP8 compliance for variable naming + * Add docstrings + * Simpler __tabs() implementation + + * A solution for starting all Python services: make sh do the work + + * Enhanced do_start() implementation in Python management script + + Unclean shutdowns and fork() misery can create PID files that have + no actual process behind them. Instead of just trusting the PID file, check + for the running PID; if the process is not running, then remove the PID file + and actually start the service. + + * Assign, don't test equality (thanks berick) + + * Make start_all automatically daemonize services + + * Give opensrf.py reasonable defaults for options + + Rather than: + opensrf.py -l -d -f /openils/conf/opensrf_core.xml -p /openils/var/run/ -a + start_all + + you can now use: + opensrf.py -l -d -a start_all + + Isn't that better? Note that we put the PIDs into PID_DIR/run/opensrf/ + so that if/when OpenSRF is installed outside of the /openils/ prefix, + the names of the processes won't conflict with any other application PIDs. + Unlikely, but you never know. + + * Try not to stomp on global variable names and built-ins, add docstrings + + * Typos: s/wait_for_child/try_wait_child/ and s/min_childen/min_children/ + + * Typo: Pass in the array of servers to the memcached client if we have one + + * Reference constants properly + + * Make pylint happier with PEP8-compliant argument name + + * Fix daemonize problem that surfaced in start_all + + Thanks to Michael Giarlo for reporting the problem, Bill Erickson + for pointing the way to the solution, and http://bugs.python.org/issue5313 + for providing me with more context for the problem & solution. + + * More debuggery for the spawning of child processes + + * Minutes and months were reversed in Python logging timestamps + + * Add a Python and curl example of invoking the Perl simpletext services + + * Add a streaming version of the split() method in simpletext example + +2010-11-08 dbs + + * Make opensrf-perl.pl handle missing configuration for services more gracefully + + As we might want to ship configuration files with commented out sections, + this will alert the user that a service was listed in the hosts section + but the configuration for that service could not be found. + +2010-11-05 erickson + + * Patch from Michael Giarlo to integrate python service control into osrf_ctl.sh. + + I made the following additional changes: + + 1. copy opensrf.py into the BIN dir during install when --enable-python is used. + + 2. osrf_ctl.sh will not attempt to control python services when python is not + enabled for opensrf. + + * patch from Michael Giarlo for better sanity checking during settings file + reading in python (avoid #comment's) + + * added osrf.apps to installed pachages (thanks for the tip, dbs). bumped version + in prep for 2.0 + + * socket_bundle typo patch from Jason Stephenson + + Further discussion and DCO: + + http://libmail.georgialibraries.org/pipermail/open-ils-dev/2010-November/006476.html + +2010-10-26 erickson + + * consistent w/ the C libs, only log server message processing duration at INFO. + log server response processing duration at debug and w/ slighly different + wording. let the processing duration log message act as the indication of a + successfully handled message to reduce logging + +2010-10-25 erickson + + * log message processing duration at INFO level, instead of DEBUG, consistent with + the C libs + +2010-10-14 scottmk + + * Plug a minor memory leak that could occur when we opened a TCP connection + to a server. In practice this meant whenever we opened a Jabber session. + + We call getaddrinfo() to get a dynamically allocated linked list of + addresses for a given server name. Then we traverse the list, looking + for one that accepts streaming connections over IPV4, in order to get + an IP address. + + At the end, we call freeaddrinfo() to free the linked list. + + Previously we would pass to freeaddrinfo() a pointer, not to the + head of the list, but to the node that we used for getting an IP + address. Prior nodes, if any, would leak. + + Also: added calls to freeaddrinfo() in the case of early returns, to + avoid leaking the list in the event of an error. + + M src/libopensrf/socket_bundle.c + +2010-10-12 erickson + + * implemented an optional per-service stderr log for capturing miscellaneous + stderr output from services, similar to the old-style _unix.log files, since + there are often useful warnings and error messages that never bubble up to + syslog. for clarity, the files now use _stderr as a suffix instead of _unix. + stderr logs are enabled by default. included opensrf.xml example of how to + disable it for a given service + + * when we add xhr responses onto the end of the queue, stash the original session + as well, otherwise we're attempting to ask a session questions about requests + it's not tracking + +2010-10-07 erickson + + * in json encoder, replace 2 sub calls w/ 1 hash lookup in heavily called code + path. we lose some abstraction, but it's probably worth it here + +2010-09-28 dbs + + * Work around a Net::Domain bug that can result in fqdn's like + foo.example.com,bar.com + + The bug manifested when trying to run autogen.sh, with the output: + Updating fieldmapper + No Response from settings server...going to sleep + + This was because SettingsParser was generating invalid XPath and consquently + errors in the opensrf.settings service; with no response, the attempt to run + autogen.sh would die. + + This workaround splits the fqdn on commas and tries each possible domain in + the server setting XPath. Long term we either need to wait for Net::Domain + bug #60729 (https://rt.cpan.org/Public/Bug/Display.html?id=60729) to be + resolved, or consider alternatives. + +2010-09-28 miker + + * return the trace-augmented message as written to the log + +2010-09-13 erickson + + * removing vestigial references to Inbound.pm, which no longer exists in the + repository. this also removes get/set_listener, which were never taken advantage + of and are no longer of use since the listener is thoroughly hard-coded into the + opensrf stack now + +2010-09-09 dbs + + * Bump trunk version number for OpenSRF up to 1.8.0; better than 1.4.0. + + perlmodstyle says "A correct CPAN version number is a floating point + number with at least 2 digits after the decimal." so we're not in + compliance in any case. Oh well. + +2010-09-05 dbs + + * Update the manifest for Perl modules to avoid build warnings + + r2016 removed two Perl modules, + src/perl/lib/OpenSRF/Transport/SlimJabber/Inbound.pm + and src/perl/lib/OpenSRF/UnixServer.pm, and the build gets upset because the + manifest suggests they're missing. But no, we know where they are, and we + don't expect them to come back. + +2010-09-01 erickson + + * added support for reading ContinueStatus opensrf messages in the JS opensrf lib + +2010-09-01 gmc + + * updated mailing address of the FSF + + * remove executable bit from module files that don't need it + + Small nit to pick for Debianization. + +2010-09-01 erickson + + * Replace Net::Server with local pre-forking server + + Support max/min children and max/min spare children + For more, see + http://libmail.georgialibraries.org/pipermail/open-ils-dev/2010-May/006068.html + +2010-08-31 gmc + + * remove ntp and ntpdate dependencies + + Not used by OpenSRF; these are legacies of + Evergreen dependencies at the time OpenSRF was + split off. Quite likely a bunch of deps in + Makefile.install aren't needed by OpenSRF + proper. + -- 2.43.2