1. 04 Aug, 2020 1 commit
    • Hannah Howard's avatar
      Release infrastructure (#81) · 7dbe280c
      Hannah Howard authored
      * style(imports): fix import formatting
      
      Fix import formatting via script. Also add script for import fixes and release log
      
      * docs(CHANGELOG): add changelog, contributing
      
      Add the changelog and a contributing guidelines doc
      7dbe280c
  2. 08 Jul, 2020 1 commit
    • Hannah Howard's avatar
      All changes to date including pause requests & start paused, along with new... · caa872f6
      Hannah Howard authored
      All changes to date including pause requests & start paused, along with new adds for cleanups and checking of execution (#75)
      
      * WIP
      
      * feat(graphsync): pause/unpause requests
      
      Allow graphsync requests to be paused and unpaused via request cancelling and DoNotSendCIDs
      extension
      
      * fix(requestmanager): refactor executor
      
      remove extraneous allocation of closure functions
      
      * feat(graphsync): support external request pauses
      
      allow pausing requests imperatively via PauseRequest function
      
      * fix(lint): fix lint errors
      
      * feat(responsemanager): start requests paused
      
      add the ability for a hook to pause a response right when it's first received
      
      * feat(responsemanager): improve cancellation UX
      
      provide a mechanism for responders to learn a requestor cancelled a request and for requestors to
      learn a request was cancelled
      
      * feat(requestmanager): process request cancelled status
      
      process the responder returning a request cancelled error code and also support sentinel errors
      
      * feat(executor): refactor to remove loader
      
      remove loader, also only fire restart request as needed
      
      * fix(asyncloader): load requests synchronously when possible
      
      * fix(responsemanager): fix external pause
      
      Fix external pauses missing a block
      
      * fix(responsemanager): do not delay complete listener
      
      Run complete listener in same thread as response processing, making it less susceptable to
      interruption via cancel
      
      * fix(responsemanager): fix context check
      
      fix checking for context cancellation errors based off of the way ipld-prime does not wrap errors
      
      * fix(responsemanager): more precise cancel
      
      make cancels only get recorded if actual blocks are not sent -- otherwise the request is considered
      complete -- and the complete hook always runs
      
      * fix(requestmanager): handle non processed pauses
      
      Handler the case where a pause is requested but never actually takes place
      
      * refactor(responsemanager): handle cancels, correctly this time
      
      Properly handle cancels for both paused and unpaused states
      
      * fix(errors): remove regex cause it appears to be very slow
      
      * fix(traverser): fix race condition for shutdown
      
      make sure that the traverser is finished in the request executor
      
      * fix(deps): mod tidy
      
      * fix(executor): add back network error
      caa872f6
  3. 01 Jul, 2020 1 commit
  4. 28 Apr, 2020 1 commit
    • Hannah Howard's avatar
      Update of IPLD Prime (#66) · 6e4ddab1
      Hannah Howard authored
      * Updating go-ipld-prime to NodeAssembler era.
      
      The 'testutil/chaintypes' codegen is currently dropped, and I ported
      the testchain fixtures to using basicnode instead.  We can restore this
      to using codegen soon, but it's easier to complete this set of changes
      by temporarily switching to using basicnode.
      
      Tests using 'NewUnencodableSelectorSpec' were discarded -- this more or
      less exercised what would happen if an uninitialized zero value got
      into a program, and this is now happily statically impossible.
      
      Some tests are not passing; have not sussed yet.
      
      * fix(deps): upgrade ipld-prime with bug fix
      
      use ipld prime with fixed marshalling bug to get tests passing
      
      * fix(lint): fix lint error
      Co-authored-by: default avatarEric Myhre <hash@exultant.us>
      6e4ddab1
  5. 21 Apr, 2020 1 commit
    • Hannah Howard's avatar
      Add pausing and unpausing of requests (#62) · 79c195c8
      Hannah Howard authored
      * feat(deps): upgrade IPLD prime to last before refactor
      
      * refactor(responsemanager): refactor traversal
      
      switch to iterative traversal that is more amenable to interruption
      
      * feat(peerresponsemanager): add bytes sent to peer response sender
      
      Add a return value to SendResponse in peer response sender to return the number of block bytes
      transmitted. Note: does not count unsent blocks. Also convert block size measurements to uint64
      
      * feat(responsemanager): add response pausing
      
      add first implementation of response pausing in response manager
      
      * refactor(responsemanager): extract classes to simplify response manager
      
      extract hooks as independant functionality
      
      * test(responsemanager): add tests for block hooks and request hooks
      
      * test(graphsync): add pause/resume integration test
      
      * fix(responsemanager): fix directory misname
      
      requesthooks.go directory -> requesthooks
      
      * fix(tests): cleanup races & lint
      
      * test(graphsync): fix flaky test
      79c195c8
  6. 06 Apr, 2020 1 commit
    • Hannah Howard's avatar
      Feat/request hook loader chooser (#60) · 40a6408d
      Hannah Howard authored
      * feat(ipldutil): add NodeBuiderChooser to traverse
      
      Add the option to set NodeBuilderChooser on traverse, using default when nil
      
      * feat(responsemanager): set loader and chooser in hooks
      
      Add the ability to set a custom loader and custom node builder chooser in a response hook
      40a6408d
  7. 23 Mar, 2020 1 commit