Release Notes
[v0.0.30] - 2019-02-07
Features
- api:
- add DecorationsRequest filter for build config (#3449) (2480a935)
- structured entries in DirectoryReply (#3425) (53e3a097)
- build_details: add a build_config field to BuildDetails proto (#3303) (ed5ce4d5)
- columnar:
- add Seek method to keyvalue.Iterator interface (#3211) (753c91ae)
- support build_config filtering of columnar decorations (#3450) (810c9211)
- add definitions for related node xrefs (#3228) (52a635eb)
- handle columnar decl/def CrossReferences (#3204) (eec113df)
- cxx_indexer:
- copy in utf8 line index utils (#3276) (93e69d29)
- support emitting USRs for other kinds of declarations (#3268) (4d705cf9)
- Support adding Clang USRs to the graph (#3226) (15535c65)
- include build/config fact on anchors when present (#3437) (96c7d6bc)
- Add support for member pointers and uses of them a… (#3258) (a83e856d)
- read all compilations from a kzip file (#3232) (3bd99ee7)
- gotool_extractor:
- canonicalize corpus names as package/repo roots (#3377) (f2630cbc)
- add Docker image for Go extractor (#3340) (f1ef34b5)
- use Go tool to extract package data (#3338) (a97f5c0e)
- java_indexer: emit implicit anchors for default constructors (#3317) (90d1abfe)
- objc_indexer:
- support marked source for @property (#3320) (b79d49bd)
- marked source for category methods (#3311) (414bdf2d)
- post_processing:
- limit disksort memory by custom Size method (#3201) (7919fcf1)
- pass-through build config in pipeline (#3444) (59be834f)
- add build configuration to anchors in serving data (#3440) (e3c7fa18)
- add diagnostics to file decorations (#3277) (0cd5dfca)
- add support for Riegeli input files (#3223) (4035f931)
- emit columnar callers (#3220) (e1fe01a6)
- allow
write_tables
to compact output LevelDB (#3215) (2895c1c7)
- sample-web-ui:
- add link to related node definitions (#3227) (854ab489)
- display callers in xrefs panel (#3221) (5c563dc7)
- tools:
- entrystream: support aggregating entries into an EntrySet (#3363) (e1b38f50)
- kindex: support reading kzip files (#3293) (2be0c1f0)
- release:
- add extract_kzip tool to release archive (#3454) (3ab6111d)
- add protobuf indexer to release (#3358) (ae537104)
Bug Fixes
- api: properly marshal protos with jsonpb (#3424) (358b4060)
- cxx_common:
- add enumerator for kDocUri fact (#3378) (4b8925e0)
- Add a dependency for strict dependency checking (#3269) (5a5a230e)
- cxx_extractor: segfault when given nonexistent file (#3234) (6c0fef7a)
- cxx_indexer:
- set CompilationUnit.source_file for unpacked input (#3254) (35706fb1)
- don't crash on empty function/enum bodies (#3281) (f06d335d)
- gotool_extractor: when no global corpus is given, use package's corpus for each file (#3290) (6bc18f57)
- java_common: allow analyzers to throw InterruptedExceptions (#3330) (01617d9c)
- java_indexer:
- make workaround source compatible with JDK 11 (#3275) (7284ac2c)
- ensure static import refs are accessible (#3305) (c453a319)
- ensure static import refs are static (#3294) (0f80fe48)
- do not close System.out after first analysis (#3199) (e2af342f)
- jvm_indexer: prepare code using ASM for Java 11 (#3214) (94810956)
- post_processing: remove anchors from edge/xref relations (#3198) (b81ef3af)
[v0.0.29] - 2018-10-29
Added
- KZip support has been added to all core extractors/indexers
cxx_indexer
: define a deprecated tag and use it for C++ (#2982)java_indexer
: analyze default annotation values (#3004)
Changed
java_indexer
: do not include Symbol modifiers in hashes (#3139)javac_extractor
: migrate javac_extractor to use ambient langtools (#3093)verifier
: recover file VNames using file content; reorder singleton checking (#3166)
Deprecated
- Index packs and
.kindex
files have been deprecated in favor of .kzip
files
Fixed
go_indexer
: mark result parameters as part of the TYPE in MarkedSource (#3021)java_indexer
: avoid NPE with erroneous compilations missing identifier Symbols (#3007)java_indexer
: guard against null inferred lambda types (#3132)java_indexer
: support JDK 11 API change (#3149)javac_extractor
: ignore JDK 9 modules as well as JDK 8 jars (#2889)javac_extractor
: pass through -processorpath; don't delete gensrcdir early (#3063)
[v0.0.28] - 2018-07-18
Added
write_tables
: --experimental_beam_pipeline
runs the post-processor as an Apache Beam pipeline- Go: support extracting/analyzing packages with
vendor/
dirs go_indexer
: add --continue
flag to log errors without halting analysisviewindex
: add --file flag to print a single file's contentsentrystream
: support for reading/writing Riegeli record files- First release of the ExploreService APIs
Deprecated
entrystream
: --read_json
/--write_json
are marked to be replaced by --read_format=json
/--write_format=json
Fixed
- Java indexer: search for ClassSymbol in all Java 9 modules
- Java/JVM indexers: obtain JVM (a.k.a. “external”) names in a principled way
[v0.0.27] - 2018-07-01
Due to the period of time between this release and v0.0.26, many relevant changes and fixes may not appear in the following list. For a complete list of changes, please check the commit logs: https://github.com/kythe/kythe/compare/v0.0.26...v0.0.27
Added
- First release of Go indexer and Go extractors.
- Objective C is now supported in the C++ indexer.
- identifier.proto: adds a new
IdentifierService
API. - Runtime plugins can be added to the Java indexer.
Changed
- Remove gRPC server and client code.
- Schema:
- Anchors no longer have
childof
edges to their parent file
. - Anchor nodes must share their
path
, root
, and corpus
VName
components with their parent file
.
- Format strings have been replaced by the
MarkedSource
protobuf message. - C++ analysis:
- Included files are referenced by the
ref/file
edge. code
facts (containing MarkedSource
protos) are emitted.- Better support for C++11, 14, and 17.
- Limited CUDA support.
- Improvements to indexing and rendering of documentation.
- Added a plugin for indexing proto fields in certain string literals.
- Type ranges for builtin structural types are no longer destructured (
T*
is now [T]*
, not [[T]*]
). - Decoration of builtin types can be controlled with
--emit_anchors_on_builtins
. - Namespaces are never
define
d, only ref
d. - Old-style
name
nodes removed. - The extractor now captures more build state, enabling support for
__has_include
anchor
s involved in completes
edges now contain their targets mixed with their signatures, making each completion relationship unique.- Support for indexing uses of
make_unique
et al as direct references to the relevant constructor. - Template instantiations can be aliased together with
--experimental_alias_template_instantiations
, which significantly decreases output size at the expense of lower fidelity.
- Java analysis:
name
nodes are now defined as JVM binary names.diagnostic
nodes are emitted on errors.code
facts (MarkedSource
protos) are emitted.- Add callgraph edges for constructors.
- Non-member classes are now
childof
their enclosing method. - Local variables are now
childof
their enclosing method. - Blame calls in static initializers on the enclosing class.
- Emit references for all matching members of a static import.
- Reference
abs
nodes for generic classes instead of their record
nodes. - Emit data for annotation arguments.
- Emit package relations from
package-info.java
files.
- Protocol Buffers:
- analysis.proto: add revision and build ID to AnalysisRequest.
- analysis.proto: add AnalysisResult summary to AnalysisOutput.
- analysis.proto: remove
revision
from CompilationUnit. - graph.proto: new location of the GraphService API
- xref.proto: remove
DecorationsReply.Reference.source_ticket
. - xref.proto: add
Diagnostic
messages to DecorationsReply
. - xref.proto: replace
Location.Point
pairs with common.Span
. - xref.proto: by default, elide snippets from xrefs/decor replies.
- xref.proto: replace
Printable
formats with MarkedSource
. - xref.proto: allow filtering related nodes in the xrefs reply.
- xref.proto: optionally return documentation children.
- xref.proto: return target definitions with overrides.
[v0.0.26] - 2016-11-11
Changed
- Nodes and Edges API calls have been moved from XRefService to GraphService.
[v0.0.25] - 2016-10-28
Changed
- Replace google.golang.org/cloud dependencies with cloud.google.com/go
- Update required version of Go from 1.6 to 1.7
[v0.0.24] - 2016-08-16
Fixed
- write_tables now tolerates nodes with no facts. Previously it could sometimes crash if this occurred.
[v0.0.23] - 2016-07-28
Changed
- CrossReferences API: hide signature generation behind feature flag
- Java indexer: emit
ref/imports
anchors for imported symbols
Added
- Java indexer: emit basic
format
facts
[v0.0.22] - 2016-07-20
Changed
- Schema:
callable
nodes and callableas
edges have been removed. xrefs.CrossReferences
: change Anchors in the reply to RelatedAnchors- Removed search API
[v0.0.21] - 2016-05-12
Changed
- 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
Added
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
Fixed
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] - 2016-03-03
Fixed
- Java indexer: reduce redundant AST traversals causing large slowdowns
[v0.0.19] - 2016-02-26
Changed
- 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
Added
entrystream
: add --unique
flagwrite_tables
: add --entries
flag
[v0.0.18] - 2016-02-11
Changed
- C++ indexer:
--ignore_unimplemented
now defaults to true
- Java indexer: emit single anchor for package in qualified identifiers
Added
- Java indexer: add callgraph edges
- Java indexer: add Java 8 member reference support
[v0.0.17] - 2015-12-16
Added
write_tables
: produce serving data for xrefs.CrossReferences methodwrite_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] - 2015-12-08
Changed
- 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
Added
- Java indexer: emit (possibly multi-line) snippets over entire surrounding statement
- Java indexer: emit class node for static imports
Fixed
- 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] - 2015-10-13
Changed
- Java 8 is required for the Java extractor/indexer
Fixed
write_tables
: don't crash when given a node without any edges- Java extractor: ensure output directory exists before writing kindex
[v0.0.14] - 2015-10-08
Fixed
- Bazel Java extractor: filter out Bazel-specific flags
- Java extractor/indexer: filter all unsupported options before yielding to the compiler
[v0.0.13] - 2015-09-17
Added
- 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] - 2015-09-10
Changed
- 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
Added
- 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] - 2015-09-01
Added
- Java indexer: name node support for array types, builtins, files, and generics
Fixed
- Java indexer: stop an exception from being thrown when a line contains multiple comments
[v0.0.10] - 2015-08-31
Added
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
Fixed
entrystream
: prevent panic when given --entrysets
flag
[v0.0.9] - 2015-08-25
Changed
- 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
Added
- dedup_stream: add
--cache_size
flag to limit memory usage - C++ indexer: hash VNames whenever permitted to reduce output size
Fixed
- write_tables: avoid deadlock in case of errors
[v0.0.8] - 2015-07-27
Added
Fixed
- write_tables: ensure that all edges are scanned for FileDecorations
- kythe refs command: normalize locations within dirty buffer, if given one
[v0.0.7] - 2015-07-16
Changed
- 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
Added
- kwazthis: if found, automatically send local file as
--dirty_buffer
- kwazthis: return
/kythe/edge/typed
target ticket for each node
[v0.0.6] - 2015-07-09
Added
- 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
Fixed
- Java indexer: don't generate anchors for implicit constructors
[v0.0.5] - 2015-07-01
Added
- Bazel
extra_action
extractors for C++ and Java - Implementation of DecorationsRequest.dirty_buffer in xrefs serving table
[v0.0.4] - 2015-07-24
Changed
kythe
tool: merge --serving_table
flag into --api
flag
Fixed
- Allow empty requests in
http_server
's /corpusRoots
handler - Java extractor: correctly handle symlinks in KYTHE_ROOT_DIRECTORY
[v0.0.3] - 2015-07-16
Changed
- 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] - 2015-06-05
Changed
- 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] - 2015-05-20
Initial release
[Unreleased] https://github.com/kythe/kythe/compare/v0.0.30...HEAD [v0.0.30] https://github.com/kythe/kythe/compare/v0.0.29...v0.0.30 [v0.0.29] https://github.com/kythe/kythe/compare/v0.0.28...v0.0.29 [v0.0.28]: https://github.com/kythe/kythe/compare/v0.0.27...v0.0.28 [v0.0.27]: https://github.com/kythe/kythe/compare/v0.0.26...v0.0.27 [v0.0.26]: https://github.com/kythe/kythe/compare/v0.0.25...v0.0.26 [v0.0.25]: https://github.com/kythe/kythe/compare/v0.0.24...v0.0.25 [v0.0.24]: https://github.com/kythe/kythe/compare/v0.0.23...v0.0.24 [v0.0.23]: https://github.com/kythe/kythe/compare/v0.0.22...v0.0.23 [v0.0.22]: https://github.com/kythe/kythe/compare/v0.0.21...v0.0.22 [v0.0.21]: https://github.com/kythe/kythe/compare/v0.0.20...v0.0.21 [v0.0.20]: https://github.com/kythe/kythe/compare/v0.0.19...v0.0.20 [v0.0.19]: https://github.com/kythe/kythe/compare/v0.0.18...v0.0.19 [v0.0.18]: https://github.com/kythe/kythe/compare/v0.0.17...v0.0.18 [v0.0.17]: https://github.com/kythe/kythe/compare/v0.0.16...v0.0.17 [v0.0.16]: https://github.com/kythe/kythe/compare/v0.0.15...v0.0.16 [v0.0.15]: https://github.com/kythe/kythe/compare/v0.0.14...v0.0.15 [v0.0.14]: https://github.com/kythe/kythe/compare/v0.0.13...v0.0.14 [v0.0.13]: https://github.com/kythe/kythe/compare/v0.0.12...v0.0.13 [v0.0.12]: https://github.com/kythe/kythe/compare/v0.0.11...v0.0.12 [v0.0.11]: https://github.com/kythe/kythe/compare/v0.0.10...v0.0.11 [v0.0.10]: https://github.com/kythe/kythe/compare/v0.0.9...v0.0.10 [v0.0.9]: https://github.com/kythe/kythe/compare/v0.0.8...v0.0.9 [v0.0.8]: https://github.com/kythe/kythe/compare/v0.0.7...v0.0.8 [v0.0.7]: https://github.com/kythe/kythe/compare/v0.0.6...v0.0.7 [v0.0.6]: https://github.com/kythe/kythe/compare/v0.0.5...v0.0.6 [v0.0.5]: https://github.com/kythe/kythe/compare/v0.0.4...v0.0.5 [v0.0.4]: https://github.com/kythe/kythe/compare/v0.0.3...v0.0.4 [v0.0.3]: https://github.com/kythe/kythe/compare/v0.0.2...v0.0.3 [v0.0.2]: https://github.com/kythe/kythe/compare/v0.0.1...v0.0.2 [v0.0.1]: https://github.com/kythe/kythe/compare/d3b7a50...v0.0.1