Release Notes

v0.0.23

Notable changes:

  • CrossReferences API: hide signature generation behind feature flag
  • Java indexer: emit ref/imports anchors for imported symbols

Notable additions:

  • Java indexer: emit basic format facts

v0.0.22

Notable changes:

  • Schema: callable nodes and callableas edges have been removed.
  • xrefs.CrossReferences: change Anchors in the reply to RelatedAnchors
  • Removed search API

v0.0.21

Notable changes:

  • xrefs service: replace most repeated fields with maps
  • xrefs service: add ordinal field to each EdgeSet edge
  • xrefs.CrossReferences: group declarations/definitions for incomplete nodes
  • C++ indexer: --flush_after_each_entry now defaults to true

Notable additions:

  • xrefs.Decorations: add experimental target_definitions switch
  • kythe tool: add --graphviz output flag to edges subcommand
  • kythe tool: add --target_definitions switch to decor subcommand

Notable fixes: write_tables: correctly handle nodes with missing facts

  • Javac extractor: add processors registered in META-INF/services
  • javac-wrapper.sh: prepend bootclasspath jar to use packaged javac tools

v0.0.20

Notable fixes:

  • Java indexer: reduce redundant AST traversals causing large slowdowns

v0.0.19

Notable changes:

  • C++ extractor: KYTHE_ROOT_DIRECTORY no longer changes the working directory during extraction, but does still change the root for path normalization.
  • http_server: ensure the given --serving_table exists (do not create, if missing)
  • Java indexer: fixes/tests for interfaces, which now have extends edges
  • kythe tool: display subkinds for related nodes in xrefs subcommand

Notable additions:

  • entrystream: add --unique flag
  • write_tables: add --entries flag

v0.0.18

Notable changes:

  • C++ indexer: --ignore_unimplemented now defaults to true
  • Java indexer: emit single anchor for package in qualified identifiers

Notable additions:

  • Java indexer: add callgraph edges
  • Java indexer: add Java 8 member reference support

v0.0.17

Notable additions:

  • write_tables: produce serving data for xrefs.CrossReferences method
  • write_tables: add flags to tweak performance
    • --compress_shards: determines whether intermediate data written to disk should be compressed
    • --max_shard_size: maximum number of elements (edges, decoration fragments, etc.) to keep in-memory before flushing an intermediary data shard to disk
    • --shard_io_buffer: size of the reading/writing buffers for the intermediary data shards

v0.0.16

Notable changes:

  • Denormalize the serving table format
  • xrefs.Decorations: only return Reference targets in DecorationsReply.Nodes
  • Use proto3 JSON mapping for web requests: https://developers.google.com/protocol-buffers/docs/proto3#json
  • Java indexer: report error when indexing from compilation's source root
  • Consistently use corpus root relative paths in filetree API
  • Java, C++ indexer: ensure file node VNames to be schema compliant
  • Schema: File nodes should no longer have the language VName field set

Notable additions:

  • Java indexer: emit (possibly multi-line) snippets over entire surrounding statement
  • Java indexer: emit class node for static imports

Notable fixes:

  • Java extractor: correctly parse @file arguments using javac CommandLine parser
  • Java extractor: correctly parse/load -processor classes
  • xrefs.Edges: correctly return empty page_token on last page (when filtering by edge kinds)

v0.0.15

Notable changes:

  • Java 8 is required for the Java extractor/indexer

Notable fixes:

  • write_tables: don't crash when given a node without any edges
  • Java extractor: ensure output directory exists before writing kindex

v0.0.14

Notable fixes:

  • Bazel Java extractor: filter out Bazel-specific flags
  • Java extractor/indexer: filter all unsupported options before yielding to the compiler

v0.0.13

Notable additions:

  • Java indexer: add ref/doc anchors for simple class references in JavaDoc
  • Java indexer: emit JavaDoc comments more consistently; emit enum documentation

v0.0.12

Notable changes:

  • C++ indexer: rename /kythe/edge/defines to /kythe/edge/defines/binding
  • Java extractor: change failure to warning on detection of non-java sources
  • Java indexer: defines anchors span an entire class/method/var definition (instead of just their identifier; see below for defines/binding anchors)
  • Add public protocol buffer API/message definitions

Notable additions:

  • Java indexer: ref anchors span import packages
  • Java indexer: defines/binding anchors span a definition's identifier (identical behavior to previous defines anchors)
  • http_server: add --http_allow_origin flag that adds the Access-Control-Allow-Origin header to each HTTP response

v0.0.11

Notable additions:

  • Java indexer: name node support for array types, builtins, files, and generics

Notable fixes:

  • Java indexer: stop an exception from being thrown when a line contains multiple comments

v0.0.10

Notable additions:

  • http_server: support TLS HTTP2 server interface
  • Java indexer: broader name node coverage
  • Java indexer: add anchors for method/field/class definition comments
  • write_table: add --max_edge_page_size flag to control the sizes of each PagedEdgeSet and EdgePage written to the output table

Notable fixes:

  • entrystream: prevent panic when given --entrysets flag

v0.0.9

Notable changes:

  • xrefs.Decorations: nodes will not be populated unless given a fact filter
  • xrefs.Decorations: each reference has its associated anchor start/end byte offsets
  • Schema: loosened restrictions on VNames to permit hashing

Notable additions:

  • dedup_stream: add --cache_size flag to limit memory usage
  • C++ indexer: hash VNames whenever permitted to reduce output size

Notable fixes:

  • write_tables: avoid deadlock in case of errors

v0.0.8

Notable additions:

Notable fixes:

  • write_tables: ensure that all edges are scanned for FileDecorations
  • kythe refs command: normalize locations within dirty buffer, if given one

v0.0.7

Notable changes:

  • Dependencies: updated minimum LLVM revision. Run tools/modules/update.sh.
  • C++ indexer: index definitions and references to member variables.
  • kwazthis: replace --ignore_local_repo behavior with --local_repo=NONE

Notable additions:

  • kwazthis: if found, automatically send local file as --dirty_buffer
  • kwazthis: return /kythe/edge/typed target ticket for each node

v0.0.6

Notable additions:

  • kwazthis: allow --line and --column info in place of a byte --offset
  • kwazthis: the --api flag can now handle a local path to a serving table

Notable fixes:

  • Java indexer: don't generate anchors for implicit constructors

v0.0.5

Notable additions:

  • Bazel extra_action extractors for C++ and Java
  • Implementation of DecorationsRequest.dirty_buffer in xrefs serving table

v0.0.4

Notable changes:

  • kythe tool: merge --serving_table flag into --api flag

Notable fixes:

  • Allow empty requests in http_server's /corpusRoots handler
  • Java extractor: correctly handle symlinks in KYTHE_ROOT_DIRECTORY

v0.0.3

Notable changes:

  • Go binaries no longer require shared libraries for libsnappy or libleveldb
  • kythe tool: --log_requests global flag
  • Java indexer: --print_statistics flag

v0.0.2

Notable changes:

  • optimized binaries
  • more useful CLI --help messages
  • remove sqlite3 GraphStore support
  • kwazthis: list known definition locations for each node
  • Java indexer: emit actual nodes for JDK classes

v0.0.1

Initial release