# 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:
- Java extractor: add JavaDetails to each CompilationUnit
- Release the indexer verifier tool (see http://www.kythe.io/docs/kythe-verifier.html)
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