[logdog-stream-view] Fix loading loop.

Fix the log loading loop construction for LogDog stream view. The
current form included indefinite recursion and no clear terminal point.
This is an artifact of the transition to async notation.

Now, an operation is scoped to the lifecycle of its initiating request,
regardless of how many fetches it is composed of. The fetch loop is
clearly defined in a "for" loop that performs the fetch cycle repeatedly
until a terminal condition is hit.

The "been a while" timer is now fully scoped to a given fetch loop,
avoiding a bug where old timers would trigger during later cycles,
maintaining a near-perpetual state of "been a while" messaging
regardless of log throughput.

BUG=None
TEST=local
  - Ran in local browser against development instance, works.

Review-Url: https://codereview.chromium.org/2893783002
1 file changed
tree: c4c20f8ff8a0f17ca6f68d271f18cb83a94cd4bf
  1. appengine/
  2. buildbucket/
  3. cipd/
  4. client/
  5. common/
  6. deploytool/
  7. dm/
  8. examples/
  9. grpc/
  10. hardcoded/
  11. infra/
  12. logdog/
  13. luci_config/
  14. lucictx/
  15. milo/
  16. scheduler/
  17. scripts/
  18. server/
  19. swarming/
  20. tokenserver/
  21. tools/
  22. tumble/
  23. vpython/
  24. web/
  25. .travis.yml
  26. AUTHORS
  27. codereview.settings
  28. CONTRIBUTORS
  29. LICENSE
  30. luci-deploy.cfg
  31. pre-commit-go.yml
  32. PRESUBMIT.py
  33. README.md
  34. WATCHLISTS
README.md

luci-go: LUCI services and tools in Go

GoDoc Build Status Coverage Status

Installing

go get -u github.com/luci/luci-go/client/cmd/...
go get -u github.com/luci/luci-go/server/cmd/...

Code layout

  • /appengine/... contains AppEngine server code. It imports packages from /common/... and /server/....
  • /client/... contains all client code.
  • /common/... contains code and structures shared between all of /appengine/..., /client/... and /server/...; for example, the structures used by the server APIs. These are inherently APIs.
  • /deploytool/... contains the LUCI cloud services deployment tool.
  • /logdog/... contains LogDog client and server code, as well as APIs, protobufs, and support libraries.
  • /server/... contains standalone server code. Its packages are reusable by /appengine/....
  • /tools/... contains support tools used by other LUCI components.

Versioning

  • Branch go1 contains the stable code.
  • Branch master constains the latest code.

Contributing

  • Sign the Google CLA.
  • Make sure your user.email and user.name are configured in git config.
  • Install test-only packages: go get -u -t github.com/luci/luci-go/client/...
  • Install the pcg git hook: go get -u github.com/maruel/pre-commit-go/cmd/... && pcg

Run the following to setup the code review tool and create your first review:

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/src/depot_tools
export PATH="$PATH:$HOME/src/depot_tools"
cd $GOROOT/github.com/luci/luci-go
git checkout -b work origin/master

# hack hack

git commit -a -m "This is awesome\nR=joe@example.com"
# This will ask for your Google Account credentials.
git cl upload -s
# Wait for LGTM over email.
# Check the commit queue box in codereview website.
# Wait for the change to be tested and landed automatically.

Use git cl help and git cl help <cmd> for more details.