v0.3.0 2018-08-21 * Interfaces in 'vocab' now properly contain all of the unknown methods available for all properties. These methods were available on the structs themselves but only partially listed in the interfaces. Specifically, multiply-typed properties (regardless of being functional or not) were omitted. * 'pub' now supports Announce activities' default behavior. Upon receiving an Announce activity via S2S, it is added to the 'shares' property of object(s) owned in the application. * Add the missing 'shares' property to 'vocab.Object' and its child types as well as 'streams.Object' and its child types. It is an ActivityPub specific property not a part of the ActivityStreams specification. * The Callbackers for the SocialAPI and FederateAPI can have additional methods of the form 'X(c context.Context, s *streams.X) error' where X is a Core or Extended type not already a part of the Callbacker interface. This lets client applications decide which Activity types need further handling, without being burdened of implementing unused stub methods. The new Activities supported have no default behavior supported by 'pub', except for the Announce activity as desribed above. An exhaustive list of Activities that can be X (as mentioned above) are: - Announce - Arrive - Dislike - Flag - Ignore - Invite - Join - Leave - Listen - Move - Offer - Question - Read - TentativeAccept - TentativeReject - Travel - View * The 'vocab' package now properly generates Intransitive Activity subtype structs such that they are now convertible to the vocab.IntransitiveActivityType interface. * Types in the 'vocab' package now support setting, getting, removing, and testing existence for unknown properties (extended properties). v0.2.1 2018-08-19 * Request body is now correctly copied when sending federation messages. * Change RWType and FollowResponse to bool and uint8, respectively. * Update README with applications using the go-fed/activity library. * Update README with links to official implementation reports for go-fed. * Add unit test to document behavior when maxDeliveryDepth is set to zero. v0.2.0 2018-08-04 * Begin FederateAPI unofficial implementation report. * All 'vocab.Object' types and types extending from 'vocab.Object' now have an 'IsPublic' method that will return true if the 'to', 'bto', 'cc', or 'bcc' properties have the ActivityPub special Public collection IRI. The 'streams' types also have a corresponding 'IsPublic' method. * Use 'OrderedCollection' as the default type for 'likes', 'liked', 'following', and 'followers' properties if the actor or object does not have an IRI, 'Collection', or 'OrderedCollection' set for these properties. * Examine the IRI of 'objects' when applying the Origin Check policy for Update and Delete activities. * If a federated Activity was already received, do not execute its side effects a second time. * Add 'Like' activities to the 'likes' collection, instead of adding the actors. This was a specification-violating behavior. * No longer try to fetch IRIs when deduping by IRI. * Remove unused methods from fed_test.go. * Fix Media Type header detection for ActivityPub messages. * Improve code generation to remove 230,000 lines of code from the vocab package. * Add list of contributors to CONTRIBUTING.md. * README examples are tagged with golang syntax highlighting. v0.1.1 2018-06-13 * Begin SocialAPI unofficial implementation report. * Improved HTTP header detection for ActivityPub requests. * Activities added to outboxes are now Set (in addition to the outbox itself). * Fixed panic where the 'bcc' and 'bto' properties were improperly guarded. * Fixed authn/authz shadowing when serving ActivityStream objects, causing only HTTP Signatures to be enforced. * Under certain circumstances, IRIs will be fetched when an Add Activity is received. This behavior is a stepping stone towards a comprehensive solution in a future patch. * SocialAPI Undo Activity has actors enforced the same way as the FederatedAPI. * IRI normalization: Objects, Activities, and Links will no longer be duplicated when added to Collection types. Instead, IRIs are added. * Serving ActivityStream objects will now remove the 'bcc' and 'bto' properties. * Serving a Tombstone ActivityStream response now uses the HTTP 410 Gone status code. * The 'vocab' and 'streams' subpackages now generate code to multiple files instead of a single large one. * The 'deliverer' subpackage now has test coverage. v0.1.0 2018-05-30 * Initial release of the 'deliverer' subpackage. * Initial release of the 'pub' subpackage. * Initial release of the 'streams' subpackage. * Initial release of the 'tools' subpackage. * Initial release of the 'vocab' subpackage. * Support for ActivityStream static types in Go. * Support for ActivityStream serialization and deserialization. * Support for ActivityPub POST and GET to actor inboxes. * Support for ActivityPub POST and GET to actor outboxes. * Support for SocialAPI, FederatedAPI, or both for inbox and outboxes. * Support for ActivityPub GET to fetch ActivityStreams. * Support for HTTP Signature verification. * Support for basic SocialAPI Activity behaviors. * Support for basic FederatedAPI Activity behaviors. * Support for Application-customized authn/authz behaviors. * Support for Tombstone for Delete Activities. * Test 'vocab' against examples in the spec. * Test 'streams' against the test repository. * Test 'pub' with over >100 end-to-end black box tests.