* update for reorganized headers in gRPC v1.1: https://github.com/grpc/grpc/pull/7559
* update nix files
* rename all gpr_slice to grpc_slice since we can't be backwards compatible anyway
* use gRPC 1.1.4
* now compatible with gRPC 1.2.0
* use nixpkgs 17.03 to get protobuf3_2, newer proto3-* deps, fix some warnings
* another warning
* Update `proto3-suite` gitrev in `stack.yaml` to `8db2ceb8c48a3f8dc2cbdc492d1e8cbaf8b62a15`
* Update `proto3-suite` gitrev in `nix/proto3-suite.nix` to `8db2ceb8c48a3f8dc2cbdc492d1e8cbaf8b62a15`
* Regenerate `Echo.hs` via new `proto3-suite` + `compile-proto-file`
* Remove additional warnings
* Pin nixpkgs to `7ae9da426924537755ce9164fd5b5f81ce16a1c3`; minor documentation tweaks
* Remove use of `fetchgitPrivate` from `proto3-suite` toplevel pkg override attr def
You can use `nix-env` to install any derivation that outputs binaries underneath
a `bin/` directory, so we can reuse `nix-env` for installing binaries built by
this project.
* echo client/server example: dead code removal, add command line params, improve output messages
* Add nix-build result to .gitignore
* Merge echo-client and echo-server directories to echo-hs/ directory; rename main modules accordingly
* Use our protobuf compiler to generate bindings for the Echo service
* Simplify echo.proto to just one endpoint; use highlevel client/server interfaces and codegen for echo example
* Remove repetition counts and thread spawns from echo client, parameterize payload
* Update default.nix
* Use GRPC v1.01 (grpc-1.0.1-6040b47)
* Minor tweaks to GRPC request result processing (less exact matching on some StatusDetails due to GRPC rev bump)
* Update tests.patch
* release.nix fixes for building and running cabal test suite from inside the nix-shell environment
* Update build instructions
* More README updates
* Fix stack tooling and improve documentation
* Update grpc sha256, cleanup build instructions
* Whups, DYLD_LIBRARY_PATH and substituteInPlace is still needed for hydra / macos builds with no brew-installed grpc!
* PR feedback tweaks
This updates the `release.nix` to now correctly run the test suite. You can
now build and test `grpc-haskell` by running:
```
$ nix-build -A grpc-haskell release.nix
```
... and `nix-shell` has been updated, too, so that you can do `cabal`
development inside of a `nix-shell` by running:
```
$ nix-shell -A grpc-haskell.env release.nix
```
For people who prefer to use `stack` you can still just build the `grpc`
library by running:
```
$ nix-build -A grpc release.nix
```
... then pass that library as input to `stack`
* add ServiceOptions for generated servers
* drop opt prefix in ServiceOptions fields
* add default options
* tweak exports, add docs
* re-export stuff from Generated so that users need don't need to import lots of modules
* remove threaded from library -- doesn't do anything
* add defaultServiceOptions export
* more exports
* export GRPCMethodType
* begin security bindings
* secure channel creation
* SSL credentials support
* add client-side ssl support
* ssl test
* read file before passing to channel credentials, free credentials when done creating
* use localhost key/cert for test
* WIP sketch of callbacks for metadata plugins
* conversion from Haskell auth processor to C
* add test for custom server metadata auth processor
* wip auth failure test
* rebase tweak
* working test of custom auth metadata server processor
* improve security docs, clean up
* add unsafe layer client-side auth metadata plugin functionality
* add client config option for custom auth metadata
* WIP client-side metadata auth plugin. Crashing when calling C callback.
* get initial version of client-side metadata plugins working
* replace String with ByteString in a few places, add function for getting AuthProperty
* AuthContext utilities and more documentation
* end-to-end test of client and server auth plugins
* remove redundant tests
* function for parents in unary calls, add deactivated failing test for auth metadata propagation from parent to child
* some cleanup
* tweaks
* more tweaks
* remove unused file
* docs tweak
* consolidate exports
* update protobuf-wire commit
* make metadatamap a newtype of multimap
* update tests for new MetadataMap
* remove multimap dependency, reproduce needed functionality instead
* add repeated key to payload test
* QuickCheck properties for C bindings, fix bug in metadata FFI wrappers
* add quickcheck bound
* fix merge
* (wip) Change ClientRWHandler to use an IO action for metadata acqui
* Demonstrate placement of WaitForInitialMetadata() in hellos_client
* Make hellos cpp server always send metadata first, for now
* Show getMD placement in haskell hellos-client
* Add prelim bidi metadata exchange behavior tweaks to line up with C++ API conventions
* update channel arg names, add compression level arg support, add compression level arg test
* switch to temp test demonstrating bug in grpc 0.15.0
* memset op array to 0
* switch examples back
* Switch to newer `grpc` and enable tests in `release.nix`
* Split out `simple-server` test into separate shell script
* Fix bash invocation
* Add intermediate `./default-tests.nix` build
* Add `tests.patch` to version control
* Split `python` command into separate script
* Provide `python` via `nix`
We now have Jenkins enabled for `gRPC-haskell` which verifies that
`nix-build release.nix` passes for each pull request.
`master` currently doesn't build, and this is the first pull request to fix the
build by adding the recently introduced `sorted-list` dependency to the `nix`
build. This was done by running `cabal2nix . > default.nix` and also adding a
newer version of `sorted-list` to the `release.nix` file. `nixos-16.03`
uses an older version of `sorted-list` which doesn't have an `IsList` instance for
`SortedList`.
* make metadatamap a newtype of multimap
* update tests for new MetadataMap
* remove multimap dependency, reproduce needed functionality instead
* add repeated key to payload test
* bump LTS version for sorted-list, use SortedList for MetadataMap
* remove unneeded conversion
* MetadataMap documentation
* minor fixes
The purpose of this is two-fold:
* To demonstrate an example of how to build the repository (which is non-trivial
due to the `grpc` dependency)
* To eventually be used within CI (via `nix-build release.nix`)