2015-02-05 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* grid_cli getjoboutput: fix for incorrect input stream status check

2015-01-21 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* remote_cgi, remote_app: can run behind firewalls now.
	* grid_cli: new default: try all servers in service to find ICache blob.
	* grid_cli: new command 'discover' to query LBSM.
	* grid_cli replay: new option '--dump-cgi-stdin'.

	* all applications: fixed service traversal with unresponsive NC server.

2014-12-23 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* cgi2rcgi: fix for when framework overrides Status header from template

2014-11-18 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* remote_cgi, remote_app: implicit affinity specification
	* grid_cli: support for NetStorage object attributes
	* remote_cgi, remote_app: NetCache parameters in NetSchedule servers
	* ncfetch.cgi: now works with NetStorage objects
	* remote_cgi, remote_app: new "offline" mode for development and testing
	* remote_cgi, remote_app: suspend (pause)/resume functionality
	* remote_cgi, remote_app: option to fail jobs without further retries
	* all applications: support for page hit IDs
	* remote_cgi, remote_app: can limit the number of parallel jobs per user
	* cgi2rcgi: support for JSONP
	* grid_cli: new option --try-all-servers to find an ICache blob
	* all applications: support for blob keys used by NetCache in HTTP mode
	* grid_cli: new option to cancel only the pending jobs
	* remote_cgi, remote_app: support for job groups
	* grid_cli reconf: new option --mirror to reconfigure NC mirrors on the fly
	* cgi2rcgi: new option add_job_id_to_response=true (the real CGI response)

	* all applications: mention relevant blob and job keys in error messages

	* remote_cgi, remote_app: fix for omission of standby/penalized NS servers
	* grid_cli: fix for dynamic queue creation
	* remote_cgi, remote_app: fix for timeout on Windows due to large job output

2013-12-11 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* grid_cli: support for NetStorage architecture.
	* all: support for NS and NC keys in CompoundID format.
	* all: NC keys generated by mirrored servers are now "mirrored".
	* remote_app, remote_cgi: print more info in reply to 'STAT'.
	* remote_app, remote_cgi: new arguments '-daemon', '-nodaemon'.
	* grid_cli: support for NetSchedule servers in 'health' command.
	* grid_cli: support for NetCache servers in 'drain' command.
	* grid_cli: new login option '--no-conn-retries'.

	* grid_cli: use new administrative NetSchedule commands.
	* remote_app, remote_cgi: on startup, wait for NS servers to appear.
	* all: ability to handle floating-point NS timeouts.
	* ncfetch.cgi: ability to set Content-Disposition type to inline.
	* remote_app, remote_cgi: verify that the executable actually exists.
	* remote_app, remote_cgi: send their affinities to each new NS server.

	* remote_app, remote_cgi: do not submit results for cancelled jobs.
	* remote_app, remote_cgi: fix for sending an empty list of affinities.
	* remote_app, remote_cgi: create procinfofile just before idle loop.
	* remote_app, remote_cgi: send the correct port number to NS.
	* remote_app, remote_cgi: support for floating point in NS RECO output.
	* remote_app, remote_cgi: fixed lock-up after failing an exclusive job.

2012-12-20 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* all: Job input/output NetCache blobs are prolonged for job liftime.
	* all worker nodes: New command line option -procinfofile.
	* all: Client identification is sent to NetSchedule for accountability.
	* all: Web client IP/session tracking in all applications.
	* grid_cli: Support for real-time job watching.
	* grid_cli: NetSchedule reconfiguration now produces a list of changes.
	* grid_cli: New options to submit and retrieve remote_app jobs.
	* grid_cli: New queueinfo option to show information on queue classes.
	* grid_cli: New command to purge NetCache databases.

	* all worker nodes: Improved NetSchedule server querying.
	* all worker nodes: Job result submission from a separate thread.
	* all worker nodes: Keep running even if all NS servers are down.
	* all worker nodes: When idle, terminate immediately upon request.
	* cgi2rcgi: Shorter job submission timeout to skip unresponsive servers.
	* grid_cli, ncfetch: enable_mirroring="if_key_mirrored" by default.
	* grid_cli: stats --ns --jobs-by-status now also work without --queue.

	* all worker nodes: Fixed occasional GET2 errors due to zero timeout.
	* all worker nodes: Recovery from ePrefAffExpired when no affinities.
	* remote_app, remote_cgi: Treat $PATH as case-insensitive on Windows.

2012-06-20 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* all: This release is not compatible with older NetSchedule anymore.
	* all workers: Support for job affinities.
	* grid_cli (login): New command to generate client session token for NS.
	* all: Cross-site connections to NS and NC servers through a proxy.
	* all: New configuration parameter smart_service_retries.
	* all workers: Display of client identification in STAT output.
	* grid_cli (replay): New command to reconstruct remote_cgi environment.
	* grid_cli (--admin): All admin commands now accept LBSM services.
	* grid_cli (drain): New command to switch NS to "draining" mode.

	* cgi2rcgi: Now accepts inline progress messages (versus NC keys).
	* cgi2rcgi: New parameter html_pass_through to pass HTML output as is.
	* ncfetch.cgi: Proper HTTP status codes for client-side errors.
	* cgi2rcgi: Faster job result retrieval.
	* all workers: Better handling of NetSchedule notifications.
	* all apps: Uniform version reporting across all Grid applications.
	* grid_cli (stats): Better command line option checking.
	* all: Ignore server logic errors when looking for a vacant server.
	* grid_cli, ncfetch.cgi: Auto switching to mirroring mode for reading.
	* grid_cli (stats): --active-job-count re-implemented using STAT JOBS.
	* grid_cli (stats): Options --aggregation-interval, --previous-interval.
	* remote_cgi, remote_app: Define $NCBI_NS_QUEUE along with $NCBI_NS_JID.

	* all: Fixed automatic mirroring mode for keys containing service name.

2012-04-05 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* all: Support for NetSchedule client identification.
	* grid_cli (readjob): New job "reading" semantics.
	* grid_cli (submitjob): New option to wait for job completion.
	* grid_cli (getconf): Now works for NetSchedule as well.
	* all: Support for server initiated warnings (NetSchedule).
	* grid_cli (stats): New option to retrieve NetSchedule client registry.
	* grid_cli (stats): Option to print current NS notification subscribers.
	* grid_cli (stats): New option to print information on affinities (NS).
	* grid_cli (dumpqueue): Options for pagination and selection by status.
	* grid_cli: Support for NetSchedule job groups.
	* grid_cli (canceljob): Options to cancel all jobs or job group.
	* grid_cli: Support for NetSchedule extended version output.
	* grid_cli: Multiple options for NetSchedule testing and debugging.

	* all: Better support of NetCache mirroring.
	* grid_cli (jobinfo): Pretty-printing of NetSchedule job events.
	* all: Dropped support for NetSchedule tags and deprecated commands.
	* grid_cli (help): Separation of command synopses by topic.
	* grid_cli (serverinfo): Now works for LBSM services too.
	* grid_cli: Alphabet for affinity tokens: alphanumerics + '.' + '_'

	* all: Fixed a bug in iteration over mirrored NetCache servers.
	* grid_cli (deletequeue): Fixed argument parsing.
	* grid_cli (blobinfo): Now works in ICache mode.
	* grid_cli: Fixed a race condition in saving job progress message.

2011-06-22 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* grid_cli: Support for worker nodes (serverinfo, stats, shutdown).
	* grid_cli: New submitjob option '--progress-message'.

	* remote_cgi, remote_app: Dropped NetSchedule commands REGC, URGC.

	* grid_cli, netcache_control: Restored NetCache backward compatibility.
	* remote_cgi, remote_app: Do not send binary zeros over control socket.

2011-06-09 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* grid_cli: Initial release.
	* cgi2rcgi.cgi: Now allows to narrow the set of job affinities.
	* netcache_control: New option to override blob server address.
	* netschedule_control: New option to override job server address.
	* netcache_control: New parameter -blobinfo.

	* all worker nodes: Fixed listening port allocation on Windows.
	* cgi2rcgi: Does not create blobs for empty progress messages anymore.
	* cgi2rcgi: Fix for: some substitutions missing if expect_complete = 0.

2010-09-28 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* cgi2rcgi.cgi: Support for JSON output.
	* ncfetch.cgi: New CGI parameter "filename".

	* netcache_control: New command -remove.
	* cgi2rcgi.cgi: job_key parameter can contain spaces now.

	* cgi2rcgi.cgi: User-visible errors are also logged now.
	* ncfetch.cgi: No-password error is correctly reported now.

2010-08-16 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* ncfetch.cgi: Now can use password-protected NetCache API.
	* cgi2rcgi: Affinity token for NetSchedule can be specified.
	* netcache_control: New parameters -reinit, -reconf, -auth.
	* cgi2rcgi: Custom (error-specific) HTML and header templates.

	* cgi2rcgi: HTTP headers to disable caching by proxy servers.
	* remote_app, remote_cgi: tmp_dir now allows substitutions.
	* all worker nodes: New retry logic to reconnect to NS/NC.

	* remote_app: Now survives "Not all data sent to child process".
	* all worker nodes: No "basic_ios::clear" error anymore.
	* cgi2rcgi: A bug associated with donot_parse_content was fixed.
	* remote_app: Job is now failed if unable to send results to NC.
	* remote_app, remote_cgi: Proper handling of job cancellation.
	* cgi2rcgi: No excessive polling of NC while waiting for results.

	* netcache_control: Commands -dropstat and -log were removed.

2009-07-17 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* remote_app, remote_cgi: Timeouts are now treated as failures.
	* save_to_nc, netcache_control: Fixed binary IO on Windows.
	* remote_app: Fixed temporary directory removal on Windows.
	* remote_app: Fix: send the END line after multiline ouptut.

	* NS/NC API: Pass along ClientIP and SessionID to the server.
	* remote_app, remote_cgi: Implemented the INIT NS command.
	* ns_remote_job_control: Implemented bulk dump of output.

	* netschedule control: Implemented the 'cancel' action.
	* NC API: Added a method to retrieve blob size.
	* remote_app, remote_cgi: Introduced [log]/merge_lines=yes/no.

	* netbvstore: The server and its client API were removed.

2008-10-07 Dmitry Kazimirov <kazimird@ncbi.nlm.nih.gov>

	* GRID 1.0.0: The first packaged release.
