Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gix corpus MVP #897

Merged
merged 18 commits into from
Jun 16, 2023
Merged

gix corpus MVP #897

merged 18 commits into from
Jun 16, 2023

Conversation

Byron
Copy link
Member

@Byron Byron commented Jun 13, 2023

Related to #858.

Tasks

  • db-schema MVP
  • a way to uniquely identify the version of gix as part of the CLI
  • a way to identify the runner and keep that information with runs along with the gix version
  • find repos on disk and store classification in corpus
  • a refresh command to force re-reading all repos in a corpus
  • run the 'open repo' tasks in parallel
  • use tracing-core to collect open-repo timing information and collect it with each run
  • --trace flag for gix to print trees using progress
  • gix-features toggle for enabling tracing spans usage (with or without tracing-core)
  • enable gix-features/tracing and tactical tracing usage in gix with gix_features::tracing

Idea

  • Using tracing-core would allow to slowly build-out timing information for gix and make it ready for server-applications which would use tracing-core as well. It can be very useful to autoamically
    provide call-trees with timings along with complex and arbitrary metadata.
  • prodash-tracing to digest spans/events and use progress.info to visually create a log of spans and events with timings. That way they could at least be represented without interfering with progress.

If the obtained list is empty, we update against that empty list which
fills the repositories tables for the first time.

Additionally we provide a new sub-command to refresh the list (additions only).
This properly communicates that they will only be called once per thread,
while providing more options to the implementor.
@Byron Byron force-pushed the corpus branch 3 times, most recently from fe2eaea to 5cbc464 Compare June 16, 2023 15:18
This API is based on `tracing-core`, not on tracing, and provides a limited
API that is always available, while being a no-op if `tracing` isn't enabled.

That way, plumbing crates can add instrumentation at will.
This is just the beginning and more crates will integrate with it over time.
Otherwise `time-core` doesn't build anymore
And we don't make it a breaking change as this is what the community
seems to settle with.
@Byron Byron merged commit aa16c8c into main Jun 16, 2023
@Byron Byron deleted the corpus branch June 16, 2023 20:08
@Byron Byron mentioned this pull request Jun 16, 2023
27 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant