Revision history for Riap

1.2.2   2014-10-30 (PERLANCAR)

        - Support Rinci's partial argument/result as well as input/output stream
          (in Riap as well as Riap::HTTP, but not in Riap::Simple).


1.2.1   2014-10-23 (PERLANCAR)

	- No spec changes.

	- Typo: unimplemented status is 501, not 502.


1.2.0    2014-10-23 (PERLANCAR)

         - Bump version to 1.2. This version addresses sending/receiving binary
           data over JSON by base64-encoding.

         - Client can send base64-encoded binary data in arguments using the
           C<ARGNAME:base64> key in 'args' Riap request key.

         - Server can return base64-encoded binary data in result by setting
           result metadata property 'riap.result_encoding' to 'base64'.

         - Server now MUST return result metadata with at least 'riap.v' with
           the value of 1.2. The 'info' action is now not required to send Riap
           protocol version ('v').

         - Client MUST check and strip all 'riap.*' keys in result metadata.
           Client must fail when it encounters an unknown 'riap.*' key or a
           known key with an invalid/unknown value. This is so that future
           incompatibilities can be handled/detected.


1.1.24	 2014-08-18 (SHARYANTO)

         - No spec changes.

         - Mention JSON RPC.


1.1.23	 2014-06-18 (SHARYANTO)

         [ENHANCEMENTS]

         - Introduce new action 'complete_arg_elem'.


1.1.22	 2013-12-21 (SHARYANTO)

         [INCOMPATIBLE CHANGES]

         - Remove 'marklog' request key, merge it into 'loglevel'. This is
           because, if separate chunks are not marked, result is mixed with log
           message(s).


1.1.21	 2013-12-21 (SHARYANTO)

         - Introduce 'X-Riap-V' (require HTTP response header) to let server
           declare Riap::HTTP protocol version.

         - Allow server to decline 'loglevel' and 'marklog' request, by
           requiring client to read the value of 'X-Riap-Logging' HTTP response
           header. The absence of this HTTP header means server does not
           support it.


1.1.20	 2013-11-27 (SHARYANTO)

         - list action: should return relative URIs to be more tree-like.


1.1.19	 2012-08-29 (SHARYANTO)

         - call action: Specify 'dry_run' and 'confirm'.

         - call action: Advise not to pass special arguments.

         - Riap: Mention tx_id and link to Riap::Transaction.


1.1.18	 2012-08-17 (SHARYANTO) - "Selamat ulang tahun ke-67, negaraku. Merdeka!"

         - Move most details of transaction behavior to Rinci::Transaction
           1.1.24, to avoid duplication.


1.1.17	 2012-08-01 (SHARYANTO)

         - Allow riap+pipe scheme to specify program arguments.


1.1.16	 2012-07-31 (SHARYANTO)

         - Rename Riap::TCP to Riap::Simple.

         - Introduce schemes: riap+unix (previously mixed together with
           riap+tcp), riap+pipe.


1.1.15	 2012-07-19 (SHARYANTO)

         - Riap::TCP: Allow single-line request using j<JSON><CRLF>


1.1.14	 2012-06-22 (SHARYANTO)

         - Some small changes, mainly transaction status labels (final statuses
           are in uppercase: C, R, U, X; while transient statuses are in
           lowercase: i, a, u, d, e).

         - Now requires Rinci 1.1.19.


1.1.13	 2012-05-31 (SHARYANTO)

         - Some revision and incompatible changes to Riap::Transaction
           specification: rename requests (begin -> begin_tx, commit ->
           commit_tx, and so on), tweak some status codes, mention status E
           (prepared).

         - Now requires Rinci 1.1.17.


1.1.12	 2012-05-03 (SHARYANTO)

         - (NEW) Riap::Transaction, specification for doing transaction and undo
           over Riap.


1.1.11	 2012-04-03 (SHARYANTO)

         - (REMOVED) Remove mention of 'riap+http' and 'riap+https' as they are
           useless. Use 'http' and 'https'.


1.1.10	 2012-04-03 (SHARYANTO)

         - (Change, or rather define, as it has not been specified formally)
           'pm' URI scheme to (or, as) 'pl'.


1.1.9	 2012-03-08 (SHARYANTO)

         - Add new action for variable: get


1.1.8	 2012-03-01 (SHARYANTO)

         - Add new action for package: child_metas

         - HTTP: Add new action: srvinfo

         - HTTP: The valid values of 'fmt' is now up to the implementation
           (except that 'json' still needs to be supported).


1.1.7	 2012-02-22 (SHARYANTO)

         - (REMOVE, INCOMPATIBLE) Remove action 'complete_arg_name'. This action
           can be implemented in the client side by retrieving function metadata
           using 'meta' action (this requires larger bandwidth, but clients can
           do caching). It is better to implement this on the client side due to
           specific requirements like --foo vs -foo, --boolopt as well as
           --noboolopt (or --no-boolopt), and so on.


1.1.6	 2012-02-22 (SHARYANTO)

         - Add new action 'actions'. To list available actions on a code entity,
           use this action now instead of 'info'.

         - (INCOMPATIBLE) Rename 'complete' action to 'complete_arg_val'.

         - Add new action 'complete_arg_name'.


1.1.5	 2012-02-15 (SHARYANTO)

         - Some fixes (build/deps, examples, 'info' action should contain
           'acts') and minor updates.


1.1.4	 2012-02-01 (SHARYANTO)

         - Declare that in 1.1 series, minor backward compatibility problems
           between revisions are to be expected.

         - Make 'v' request key optional, defaults to 1.1.

         - Rename 'ofmt' request key to 'fmt'.

         - Change required result keys of 'info' action.


1.1.3	 2012-01-27 (SHARYANTO)

	 - Specify riap URI scheme (moved from Rinci).

         - Add Riap::TCP.


1.1.2	 2012-01-17 (SHARYANTO)

	 - Rename distribution from Rinci-HTTP as Riap.


1.1.1    2012-01-15 (SHARYANTO)

         - No spec changes. Fix misplaced section in POD.


1.1.0    2012-01-15 (SHARYANTO)

         - First release. Renamed from Sub::Spec::HTTP. Now follow the Rinci
           specification instead of Sub::Spec. Generalized to perform actions on
           any code entities instead of just functions. Change terminologies.