Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

kythe-languageserver

google13Apache-2.00.1.1TypeScript support: included

A language server for Kythe

readme

Building

Be sure to run npm install from the languageserver directory in order to fetch dependencies.

We also need to compile the appropriate protos so be sure to run:

npm run proto

This is only required on first setup and when the protos change.

To build the server, run:

npm run compile

or

npm run watch

Testing

In order to test the server, run:

npm run test

If you wish to run a watch build on tests, run:

npm run watch_test

Running

The server communicates over the (Language Server Protocol](https://github.com/Microsoft/language-server-protocol) (specifically v2).

The server, by default, makes requests to localhost:8080 which should be running an HTTP interface for the Kythe xref service.

A .kythe-settings.json file is required in the root of your project. See Configuration for more details.

STDIO communication

node dist/src/bin/kythe-languageserver.js --stdio

Socket communication

node dist/src/bin/kythe-languageserver.js --pipe=/tmp/socket.sock

Node IPC

node dist/src/bin/kythe-languageserver.js --ipc

Configuration

The server looks for a kythe-settings.json file in the root of the workspace. See this example config file containing all possible options:

{
    "mappings": [{
        "local": ":file*",
        "vname": {
            "path": "kythe.io/:file*",
            "corpus": "kythe"
        }
    }],

    "xrefs": {
        "host": "localhost",
        "port": 8080
    }
}

Editor specific instructions

Neovim

If you're using LanguageClient-neovim, it sets its workspace root as the directory containing the first file opened with the proper extension. The most expeditious workaround is to just open a file at the top level first then open anything else. There is an open issue about this: https://github.com/autozimu/LanguageClient-neovim/issues/70

changelog

Release Notes

[v0.0.74] - 2025-11-07

Bug Fixes

  • bazel: Fix multiple corpora issue by defaulting to simple_vnames.json (#6207) (a182743)

[v0.0.73] - 2025-08-22

Bug Fixes

  • cxx_extractor: Remove some warning options that Clang now supports from the unsupported_args_re. (#6191) (be219f8d)

Features

  • go_indexer: add provides edge (#6184) (53011f2d)
  • rust_extractor: add flag to set build config (#6186) (ad6063bd)

[v0.0.72] - 2025-06-09

changelog written. (took 17 ms)

[v0.0.71] - 2025-05-21

Adds a rust-project.json extractor and fixes various bugs in it.

[v0.0.68] - 2025-01-06

Bug Fixes

  • go_indexer:
    • emit docs nodes for interface methods (#6060) (07be8602)
    • emit bindings for named interface method params (#6061) (e1713667)
    • emit nodes for anonymous interface params (#6062) (1d7a58a1)
    • only handle top-level flags (#6063) (f6b2e265)
  • bazel:
    • remove cyclic dependency by removing usage of assign_external_projects_to_separate_corpora config_setting flag (#6146) (46275ee6)
  • java_indexer:
    • emit node kinds for jvm nodes (#6077) (22726c4e)
    • emit jvm refs for enum constants (#6103) (b6c04946)
  • cxx_indexer:
    • use flat_hash_map, not unordered_map; fix rehashing (#6083) (cba4452d)
    • clarify the use of llvm::dyn_cast on ClaimTokens (#6093) (ae3434e7)
  • verifier_test: ensure tools use the same configuration as indexer (#6113) (d19f7f30)
  • extraction: add proto rule to simple vnames config (#6068) (28c16cff)

Features

  • go_indexer:
    • support flag field vars (#6064) (df747be8)
    • ref/writes for flag.Set invocations (#6085) (ae1f3644)
  • cxx_indexer:
    • experiment with variable initializer types (#6080) (68671474)
    • only emit flattened type representations once (#6082) (a7f7af76)
    • look through the obvious casts for init types (#6081) (49d98e25)
    • emit symbols for extern C function defns (#6104) (5b920720)
    • emit name nodes for flags (#6094) (b1cc57f6)
  • typescript_indexer:
    • support xrefs in nested object literals (#6125) (3a66d508)
    • add flag to fail analysis on plugin error (#6079) (65d37c97)
  • java_indexer:
    • add names for native methods (#6108) (f13abd65)
  • protobuf: add types for protobuf service RPCs (#6109) (9cd1af59)
  • tools: --render_marked_source added to kythe docs cli (#6097) (cc445fd5)
  • tooling: entrystream support for textproto output (#6087) (94e76f87)
  • define a Language schema enum (#6067) (7206b16d)
  • build: regenerate checked-in source artifacts in pre-commit (#6072) (9db7d1c4)
  • testing: provide ability to save logs from indexers in verifier_test (#6075) (97d1980e)

[v0.0.67] - 2024-03-14

Bug Fixes

  • add jvm flag exports to release binaries (#6053) (6f9d9886)
  • don't use -1 for whole file offsets (#6043) (ead8c9a4)
  • bazel: alternate method of installing bazelisk in docker image (#6041) (af62dcef)
  • cxx_extractor: allow empty PathEntry flag values (#6050) (923c25c1)
  • go_indexer:
    • avoid nil panic (#6046) (6e140385)
    • guard against missing package data (#6032) (9772b080)
  • typescript_indexer: Fully log errors from plugins. (#6025) (5c926f85)

Features

  • add FILE_DEFINES for files that generate files (#6044) (9b672e45)
  • cxx_indexer:
    • add an emit function for denotes edges (#6028) (68170867)
    • add denotes edge kind (#6026) (fbd57f81)
  • go_indexer:
    • add doc link references (#6051) (a40d6360)
    • mark flag as deprecated if documented as such (#6048) (b2e55a5f)
    • add references to literal flag lookups (#6045) (fb5addb7)
    • support vars denoting flags (#6037) (02543b10)
    • add support for Func/Var flag constructors (#6033) (01b4ba8d)
    • extract flag constructors as config (#6031) (043cd45f)
    • add experimental flag support (#6022) (fecdc768)
  • java: Switch to add_exports (#6049) (f65a72d7)
  • schema: add denotes edge (#6030) (bbf72650)

[v0.0.66] - 2024-02-13

Bug Fixes

  • remove slog Context log calls (#6018) (2589380b)

Features

  • java_indexer: support more metadata types (#6017) (28cf6700)

[v0.0.65] - 2024-02-09

Features

  • kzip: add option for providing input list via file (#5970) (052a0bb5)

[v0.0.64] - 2024-01-24

Bug Fixes

  • tolerate missing boot_classpath (#5914) (5145c7b9)
  • ensure lookup kinds are correct for resolved MarkedSource (#5789) (c220dc75)
  • c++ should handle post_child_text correctly (#5783) (a92f67cc)
  • render BOX post_child_text if child is rendered (#5782) (9b571ec3)
  • cxx_extractor:
    • remove inapplicable CUDA driver and LLVM flags (#5913) (80d78947)
    • preserve order of exclusive action flags when munging args (#5912) (5a765964)
    • fix cc proto_lang_toolchain in release.BUILD (#5853) (259e26c1)
    • fix cc proto_lang_toolchain (#5843) (44ffda5b)
  • cxx_indexer:
    • use correct definition anchor spans for lambdas (#5890) (3d0a2d92)
    • address issue #5935 (when aliasing is on) (#5937) (1ac7b163)
    • document issue #5935 (using template-name) (#5936) (7bb8054d)
    • refactor IndexVFS to handle pragma_once (#5927) (321efb37)
    • avoid crashing in dependent specialization w/o written arguments (#5903) (205cb366)
    • use operator symbols for markedsource; add flag (#5823) (5105aa0c)
    • properly handle dependent using decl names (#5808) (7864f66d)
  • extractor: fix Dockerfile and extraction script (#5774) (18c44b66)
  • go_indexer:
    • ignore unresolved C imports (#5900) (ff79ac58)
    • mark variadics in all contexts (#5845) (b662dce7)
    • use simple type name for constraints (#5844) (23ec6cb7)
    • handle more type name kinds (#5822) (ae7544ae)
    • handle named return type signatures (#5820) (07a1cd37)
    • detect top-level when using file-level scopes (#5817) (afdcec6a)
    • fix builtin type references (#5812) (78888127)
    • emit tbuiltin nodes for special builtin pkg (#5810) (a0c5592f)
    • restore parens to recv MarkedSource (#5786) (9f328b2e)
    • use LOOKUP_BY_PARAM for method recv (#5781) (69fb2aee)
  • java_indexer:
    • add basic MarkedSource for wildcards (#5897) (3ca64733)
    • fix ctor/generic signatures (#5814) (e03e06f3)
  • proto_indexer:
    • use modern presence check (#5856) (9c7b2dd6)
    • handle proto3 presence in signatures (#5855) (5a8aab9d)
    • handle map types in signatures (#5839) (b3e3ff6e)
  • rust_common: finish removing rust (#5803) (87ae5e2b)
  • schema:
    • define anchors with [0,0) spans to refer to entire files (#5984) (a182fa9f)
    • remove ref/call/thunk (#5874) (ba7bad37)
  • serving: understand markdown escapes for spacing (#5846) (26c7439d)
  • typescript: always return values, even if they're undefined (#5957) (fd6d1b53)
  • typescript_indexer:
    • add ... to vararg parameters (#5842) (608d1cb9)
    • improve handling of anonymous functions (#5795) (26521394)
  • verifier:
    • use the fast solver by default. (#5972) (4261c854)
    • give more useful diagnostics during recovery (#5971) (922b4d38)
    • provide reasonable default corpus/path values (#5943) (f358c2e2)
    • request larger stack size for new solver (#5883) (4708608b)
    • various fixes for new solver (#5830) (a40be3e3)
    • flush stdout before printing verifier results (#5788) (8ca60068)

Features

  • include canonical node info for identifier service (#5917) (3db77399)
  • allow MarkedSource to remove itself from includes (#5873) (0d4624e4)
  • allow deeper nested MarkedSource rendering (#5862) (daf1c0b3)
  • add option to resolve code facts for verifier (#5790) (75dd26bc)
  • api:
    • mark speculative xrefs (#5959) (096ed9df)
    • support sending CU digest along with AnalysisRequest (#5796) (783263dc)
    • support MarkedSource MODIFIER type (#5778) (721031fc)
  • cxx: add --emit_anchor_scopes and implement childof edges for lambdas (#5901) (097f7c42)
  • cxx_extractor: add ability to canonicalize VName paths per-file (#5909) (9f9bc455)
  • cxx_indexer:
    • allow skipping analysis of files which match a regex (#5962) (a2f9d892)
    • Index dependent template specialization types. (#5863) (3a8d7b9f)
    • support decayed types (#5852) (77ff9e48)
  • dev: add aspect-based implementation of extra actions for tests (#5923) (54f6198b)
  • extraction: allow using a capturing group with generic bazel extractor (#5973) (7881f8fb)
  • extractor: add a flag for filtering on input file size (#5768) (be23cc2b)
  • go_indexer:
    • add subkinds to variable nodes (#5888) (8b4773db)
    • link type parameter constraints (#5884) (da52730b)
    • add anchor scope to func literals (#5840) (f3c56bcb)
    • add type args to return types (#5836) (aca6a8af)
    • add constraints to generic signatures (#5835) (e07111f0)
    • link return vars (#5821) (8f5d2864)
  • java_indexer: add method type parameters to MarkedSource (#5882) (dc4b0053)
  • proto_indexer:
    • link the rest of the MarkedSource (#5866) (7835faa3)
    • link proto field types in MarkedSource (#5857) (1c0347d4)
    • link proto field names in signatures (#5847) (a05f442b)
    • add labels to field MarkedSource (#5838) (1552f67c)
    • add types to field MarkedSource (#5837) (71b50385)
    • add kinds to signatures (#5827) (758a73d2)
  • schema:
    • add /thunk edges and clean up ref/writes (#5848) (07c418fa)
    • add narrows edge (#5773) (52eab883)
  • service: support searching by unit corpus in KCD (#5770) (c487141c)
  • serving:
    • render MODIFIERs in signatures (#5819) (f9d97b29)
    • return estimates for all ref edge subkinds (#5784) (a9402c76)
    • allow corpus specific includes filters (#5767) (29ddcf9f)
  • verifier:
    • support graphviz output with the fast solver (#5967) (0f546f6e)
    • print inspections with fast solver (#5960) (cf876c37)
    • warn on and allow specifying default file corpora (#5933) (3c922e0a)
    • support error recovery with the fast solver (#5915) (6584e2fc)
    • Print phase time information from the verifier. (#5859) (4ec79a57)

[v0.0.63] - 2023-07-18

Bug Fixes

  • cxx_indexer:
    • don't create a temporary and use its address for usrs (#5720) (aefac5c6)
    • ensure the working directory is absolute (#5709) (df7353e3)
    • ensure the working directory is absolute (#5708) (d73735b8)
  • go_indexer: visit anon members in struct type (#5734) (8bec7289)
  • proto_verifier_test: remove proto static reflection option (#5702) (ce9303db)
  • serving: scan all identifier matches for reply (#5735) (47b5f65c)
  • typescript_indexer:
    • emit edges for methods that are 2+ levels away (#5725) (580ced87)
    • improve childof coverage (#5727) (1ad4c6dd)
    • limit ref/call spans to identifiers (#5695) (2eedf34f)

Features

  • cc_proto_verifier_test: optionally enable proto static reflection (#5700) (d352a0bc)
  • cxx_indexer:
    • add GraphObserver.recordDiagnostic() (#5730) (49f57689)
    • provide InspectDeclRef access to Expr (#5726) (d2258d15)
    • optionally use the compilation unit corpus for USRs (#5710) (22798b44)
  • go_indexer:
    • support custom GeneratedCodeInfo edges (#5740) (79aba518)
    • add --emit_ref_call_over_identifier flag (#5692) (8cd5f34e)
  • java_indexer: add --emit_ref_call_over_identifier flag (#5693) (7e74fea3)
  • proto_verifier_test: add cc_deps and cc_indexer parameters (133d3790)
  • typescript: add semantic/generated fact name (#5736) (e1433ba3)

[v0.0.62] - 2023-06-07

Features

  • add InspectFunctionDecl callback to LibrarySupport (#5596) (5a9af6e3)
  • add KytheURI#toCorpusPath() (#5592) (eb169e6d)
  • api:
    • support returning scopes for xrefs (#5595) (5e3377ef)
    • also filter directories containing only textless entries (#5582) (bd0277bb)
    • guard returning file entries with missing text (#5580) (3ec5f315)
  • build: add and use permissive wrapper for select.with_or (#5587) (45379cc0)
  • cli:
    • show kind for xref sites (#5607) (c0b848bb)
    • add flag for xref semantic scopes (#5602) (e2de9576)
  • cxx_common:
    • optionally dispose of unselected filesets (#5689) (649d1560)
    • use a more compact serialization and in-memory format for selection (#5652) (2b14f986)
  • cxx_indexer:
    • optionally set protobuf aliases as writes (#5636) (0efe65e1)
    • support kTakeAlias semantics in simple alias exprs (#5541) (5719e42c)
    • support simple aliases to declrefexprs (#5538) (b0561485)
    • add alias-taking semantic (#5540) (0155c524)
    • prepare to eliminate simple aliases (#5535) (12de694d)
  • go_indexer:
    • add support for using file as top-level caller (#5637) (da6a8bdd)
    • render context namespaces recursively in RenderQualifiedName. (#5608) (bd44dd42)
    • support metadata semantic types (#5598) (e79d8ee9)
    • struct refs in composite literals should be writes (#5606) (b8e27f30)
  • go_tools: allow sorting units before files on merge (#5562) (e199abd5)
  • java: add semantic/generated=set facts for annotated proto accessors (#5629) (cfb0fc78)
  • java_common: update shims to more clearly indicated supported version (#5590) (d418a5d6)
  • java_indexer:
    • try to handle unsupported -source flags (#5668) (5e8ab468)
    • add set semantic to AutoValue setters (#5661) (8cbd40c1)
    • use file as scope for top-level anchors (#5639) (f9202daf)
    • mark this/super ctor calls as direct (#5611) (656d67bc)
    • mark ctor calls as direct (#5610) (7d006726)
    • add java20 shim for java indexer (#5583) (bf8a2798)
  • objc_indexer: output usr for ObjCMethodDecl (#5564) (96304cca)
  • schema:
    • add semantic/generated fact (#5628) (4101e315)
    • add ref/writes (#5581) (33ef4d5e)
  • serving: support scoped cross-references (#5530) (2387903e)
  • textproto_indexer: mark fields as ref/writes (#5679) (e30b5e83)
  • typescript:
    • merge constructor nodes (#5609) (01de9808)
    • use unique vnames for anonymous functions (#5593) (7ef0880b)
    • emit marked sources for functions, classes and enums (#5578) (02c7c215)
    • add ref/id edges for shorthand properties (#5569) (14d3c9d7)
    • add flag follow aliases when emitting refs (#5563) (18c2093d)
    • emit code nodes for tsx attributes (#5561) (91a76289)
    • launch edge reassignment for import statements (#5560) (a66de2f9)
  • typescript_indexer:
    • improve marked source CONTEXT nodes (#5642) (a3904172)
    • add flag to emit zero-width spans for module nodes (#5632) (dfa25327)
    • handle type nodes when emitting ref/id from object bindings (#5631) (d282495d)
    • clean up unused options and rename allFiles to rootFiles for clarity (#5533) (e88d5c69)
    • add ref/id from constructor calls to class nodes (#5534) (fbf4be95)
    • implement ref inlining for imported symbols (#5527) (ff8bbd15)
    • support dynamic imports (ref to modules only) (#5514) (827dc161)
  • verifier:
    • naive implementation of groups for new solver (#5680) (7e3665d1)
    • add a relation for anchors (#5667) (30b40393)
    • begin supporting some forms (#5665) (91d7cd04)
    • unknot some deps and call into the fast solver (#5662) (157e8d1d)
    • generate and run an empty but typed program (#5659) (67a19fbb)

Bug Fixes

  • removal license export (#5634) (cc8f9c37)
  • fix reversed op (#5599) (d838ac67)
  • api: explicitly mark source_text optional ∵ File.text is optional (#5666) (c1a4536b)
  • cxx_common:
    • fix and test minor issue with fileset id 0 (#5655) (b65dfcf1)
    • select artifacts from failed targets (#5644) (2bae2d54)
    • attempt to reduce memory usage of bazel artifact selector (#5638) (3d737714)
  • cxx_extractor:
    • compile fix when absl::string_view != std::string_view (#5588) (0389aa8e)
    • don't validate pchs (#5571) (de71b9cb, breaks #)
    • don't crash when modules are on (#5554) (a18df6c8)
    • the main source file should be marked always_process (#5537) (ad0966ba)
  • cxx_indexer:
    • mark DesignatedInitExprs as writes (#5616) (714358f4)
    • find vnames for pch/pcm files (const edition) (#5614) (152f9f67)
    • find vnames for pch/pcm files (#5612) (33b2c6e1)
    • don't validate pchs (#5573) (a0393adc)
    • emit proper marked source for macro-renamed functions (#5542) (89612794)
  • cxx_verifier: ensure primitive members are always initialized (#5640) (1625b495)
  • go:
    • use %s to format protos in kzip validation error messages (#5674) (7ed207bf)
    • avoid formatting protos via "%v" for non-debug uses (#5673) (76110120)
  • go_indexer:
    • do not mark map keys as ref/writes (#5641) (f34d984b)
    • don't strip extensions from import paths (#5568) (ac48a010)
  • java: explicitly define toolchains for the Java versions we support (#5615) (05fe9086)
  • presubmit: omit manual targets from both input and output sets (#5574) (d12a0ba3)
  • proto_indexer: use extends relation for proto field extensions (#5521) (d9213d32)
  • serving:
    • cleanup/fix crossrefs paging (#5600) (c2314b7a)
    • don't checklines in diffmatchpatch (#5557) (10beac0a)
  • tools: use vfs.Stat instead of os.Stat in kzip tool (#5566) (e27ce6b2)
  • typescript: emit code blocks for interface properties and fix TODO (#5513) (8efd1273)
  • typescript_indexer:
    • remove console.log left from debugging (#5622) (185f8e16)
    • fix context in marked sources (#5620) (1e2c50c4)
    • fix import xref from .ts to .tsx file (#5549) (a657cc88)
  • verifier:
    • flat_hash_map + fix spurious warning (#5671) (eaf9db8b)
    • depend on absl optional library (#5670) (beb2f6ad)
    • parameterize tests over solver (#5645) (763a65b9)
  • xrefs_filter: properly merge page lists that represent allPages (#5624) (6fe9ba39)

Breaking Changes

  • cxx_extractor: don't validate pchs (#5571) (de71b9cb, breaks #)

[v0.0.61] - 2023-01-19

Bug Fixes

  • include TsProject as a typescript rule mnemonic for extraction extra action (#5504) (a80fd84d)
  • correctly patch zero-width spans (#5442) (2f5811d9)
  • passthrough nil Spans without work (#5438) (a8f3b96e)
  • guard against nil patcher from errors (#5395) (9a4281bf)
  • log patcher errors; continue (#5394) (cbec0f7c)
  • update gofmt path in pre-commit docker image (#5376) (837db591)
  • api: only count xrefs cut by CorpusPathFilters (#5451) (781cbf2b)
  • cxx: use canonical clang include path (#5468) (8b5bc95c)
  • cxx_common: address bug with zero sized files (#5445) (6a1dcbfc)
  • cxx_indexer:
    • remove unnecessary precondition (#5461) (1c481fc0)
    • reintroduce dereferencing to BuildNodeIdForTemplateName (#5383) (7f6be7a2)
    • dereference member templates (#5381) (a57e0fdb)
    • make logic less tricky and more functional (#5377) (e8e05c23)
    • fix tvar support with aliasing on (#5373) (12fd89d0)
    • fix crash when logging non-identifier names (#5364) (2ac93dae)
  • go: re-add Compilation struct and associated methods (#5351) (3b640116)
  • go_indexer:
    • compound assignments should be rw (#5446) (3f41a10b)
    • fix go package marked source (#5375) (2b64f9fd)
  • java: move runtime dependencies to runtime_deps (#5433) (29037261)
  • java_extractor: disable service processors when extracting from Bazel (#5368) (1920ad60)
  • java_indexer:
    • properly handle null parent trees (#5448) (e0c175ab)
    • return null instead of throwing for unsupported attribute views (#5441) (e5d3e384)
    • fix marked source test in JDK19 (#5435) (ba71f5f2)
    • assign all diagnostics a corpus (#5337) (024aba95)
  • proto_indexer:
    • only decorate the type name in service definitions (#5478) (272cac30)
    • properly handle comments that end with an empty commented line (#5427) (e979b1e3)
  • rust_common:
    • migrate from tempdir crate to tempfile (#5489) (0fa54f72)
    • fix compatibility with 2022-12-21 (#5482) (8d422877)
    • fix clippy lints of new rust version (#5425) (d746a506)
    • fix rustc_lib location in release (#5339) (5036c159)
  • rust_extractor:
    • ensure glob result is a file (#5470) (8e023633)
    • set extractor_test script as executable (#5382) (329663bf)
    • improve logic for finding the save analysis file (#5354) (c3bae69e)
  • rust_indexer: set root when creating vname for reference (#5471) (f87b41e7)
  • schema: get rid of more abs stuff (#5420) (#5439) (dfb439a6)
  • serving:
    • only count unskipped pages (#5477) (2dbe8785)
    • ensure page read ahead stops promptly (#5473) (005a6fb6)
    • clear empty xref sets after all reads (#5465) (48cd9d01)
    • fix reversed inequality (#5464) (1b69b531)
    • skip PageSet check when given no filters (#5463) (207c04ff)
  • textproto: use ref/file for proto-file schema comments (#5416) (e055c8a0)
  • typescript:
    • update typescript dependency to 4.8.4, move to apsect-build/rules_ts (#5495) (301a10ab)
    • emit code/json not code facts; remove proto dependency (#5494) (2996b793)
    • add knob to disable some tests (#5479) (dddd1dd2)
  • typescript_indexer: fix linting issues (#5455) (b5af7ecf)

Performance

  • update patcher to use binary search (#5434) (dda61f6f)
  • serving:
    • only filter groups that match requested kinds (#5454) (519da956)
    • reduce patching to offsets; drop text (#5422) (69bef08d)

Features

  • api: add filtered xrefs counts to reply (#5447) (4035fe45)
  • cxx: emit member visibility facts (#5467) (9f6d6847)
  • cxx_indexer:
    • distinguish direct function calls (#5378) (134d58a5)
    • handle deprecation via clang::availability (#5365) (21d416c7)
  • go_indexer:
    • implement ref/writes edges for members (#5399) (50e7e238)
    • implement ref/writes edges (#5398) (6c8237dc)
    • rework --use_compilation_corpus_as_default (#5338) (9a4050a3)
  • go_serving: add ResolveVName to Unit interface (#5474) (90ee7a3c)
  • indexing:
    • support rewriting JSON-encoded code facts in proxy (#5491) (c8359d19)
    • allow an AnalysisResult return from the driver (#5481) (872432aa)
    • add details field for AnalysisResults (#5480) (6f17a714)
  • java_common:
    • improve JDK19 source compatibility (#5432) (ce8e3b13)
    • include reflective fallback for compatibility shims (#5428) (dba039ca)
    • add function to render signature as plaintext (#5400) (a70ccc01)
  • java_indexer: implement ref/writes edges (#5423) (b426d6db)
  • schema:
    • document ref/writes edges (#5452) (cfe09e00)
    • document canonical order of schema tags (#5440) (7c9bf1b0)
  • serving:
    • add option to read xref pages concurrently (#5469) (9493a8d4)
    • allow some leeway time to return before xrefs deadline (#5460) (a9cc5003)
    • trigram search index for xref pages (#5456) (78c7db93)
    • support marshalling Patchers (#5424) (54a8664a)
  • tooling:
    • mark conflicting /kythe/code facts as ok with ignore flag and add tests (#5410) (73dab3e8)
    • add a flag to ignore conflicting /kythe/code facts (#5409) (e99afd28)
  • typescript_indexer: add support for ref/writes (#5444) (9d5400d2)
  • verifier: support code/json fact (#5493) (0a9814e9)

[v0.0.60] - 2022-08-01

Bug Fixes

  • build: remove use of managed_directories (issue #5287) (#5288) (8ad0e685)
  • cxx_indexer: emit non-implicit refs to explicit template specializations (#5290) (9f0a3379)
  • java: rollback recent annotation ref/id changes (#5294) (77a9a8e6)
  • java_indexer:
    • guard against NPE in ImmutableList (#5310) (74dc8410)
    • assert that annotation invocations aren't refs (#5284) (4b3e0f44)
  • rust_extractor: find the analysis file based on crate name (#5306) (48b4edf3)
  • rust_indexer:
    • set the VName root on emitted Rust anchors (#5329) (d282719f)
    • clean relative paths in indexer to match vname paths (#5279) (0cd64758)
    • set corpus+lang on diagnostic (#5263) (7274df4c)
  • textproto: workaround upstream proto path bug (#5307) (e770a7b0)
  • typescript_indexer:
  • verifier: include @ in anchor labels and support EVars (#5291) (992a3e94)

Features

  • api: add resolved path filters for xrefs (#5274) (cdde24e7)
  • cxx_indexer:
    • record full signatures in a separate file (#5323) (179c0282)
    • implement directory traversal in indexer VFS (#5325) (541aa64b)
  • go_indexer:
    • add --override_stdlib_corpus flag (#5314) (5617eb8f)
    • optionally put builtins and stdlib items in main corpus (#5124) (f83f9321)
  • java extractor:
    • use default value if corpus is ambiguous (#5305) (40808f97)
    • assign a corpus to compilation units (#5320) (aa76256b)
  • java_indexer:
    • use ref/id in annotation utterance contexts (#5281) (584f65e7)
    • log error when CU VName has empty corpus (#5303) (c22d736b)
  • proto: add a proto field to signify whether a file is protected (#5308) (d08fbe6b)
  • rust_indexer: emit proper xrefs to files generated by dependencies (#5326) (82a61189)
  • tooling:
    • add --workspace_uri to kythe decor cmd (#5313) (18f24c21)
    • treat absolute kzips as a set (#5271) (b5e81531)
  • typescript_indexer:
    • emit field subkind fact for class/interface/ojbect literal properties (#5293) (3a3c772b)
    • use ref/id for destructuring variables (#5292) (60c0e854)
    • emit edges from object literals to corresponding types (#5262) (c496c5c0)
  • verifier:
    • allow simplifying graph output data (#5286) (b6554980)
    • add a flag to elide nodes not bound as goals (#5269) (2d4bc69e)

[v0.0.59] - 2022-04-18

Features

  • api:
    • support patching Documentation definitions (#5244) (fa5b6aa9)
    • support filtering xrefs by their enclosing files (#5242) (bf5b1ac0)
    • support patching FileDecorations definitions (#5241) (44cece43)
    • allow a Workspace to be passed for xrefs patching (#5224) (38c43a11)
  • go_indexer: populate ReleaseTags/ToolTags with defaults (#5237) (0ad2c8ae)
  • java: bump Java version to 11 (#5223) (f4af9da3)
  • schema: add flag nodes (#5243) (e72c520a)

Bug Fixes

  • cxx_indexer: remove another source of corpusless nodes (#5247) (33fb1f0d)
  • doc: update description and examples for extends edge kind (#5229) (be6d3fd4)
  • extraction: fix javac9 extractor path (#5234) (e57ba0a6)
  • go_extractor: handle top-level source files in modules (#5239) (888c26d9)
  • go_indexer: fix satisfies check for 1.18beta2 (#5235) (60bd2fad)
  • java: emit wildcard generics in default corpus (#5210) (e8886d54)
  • serving: close MultiFilePatcher when requests exit early (#5245) (26df4b61)

[v0.0.58] - 2022-02-22

Deprecation

  • java: last release with JDK 8 support

Bug Fixes

  • cxx_indexer:
    • constructer initializers should be writes (#5220) (9efa5c92)
    • don't traverse field decls in lambdas (#5215) (ae62778b)
    • use function names, not exps, for semantics (#5213) (a11bf38f)
    • treat calls to inherited constructors like other members (#5198) (3db22d38)
  • go extractor image: updates for extracting to a single corpus (#5173) (8697a6c4)
  • go_indexer:
    • fix refs to anonymous members across packages (#5195) (e40b0a0c)
    • ensure generic references work across packages (#5166) (f2701611)
  • java:
    • do not emit doc nodes for non-javadoc commits by default (#5191) (b3b97642)
  • java_indexer:
    • use ref/id edges for class references in new expressions (#5211) (e151c464)
    • set the corpus path of diagnostics (#5203) (cf72c6e8)
    • fix ambiguous variable def position (#5196) (159055e4)
  • proto_indexer:
    • actually elide refs for top-level map types (#5219) (84181c2a)
    • elide references to builtins and maps (#5212) (0501c36b)
  • rust_common:
    • update Rust toolchain to fix tests on macOS Monterey (#5183) (86dbcbb8)
    • clippy fixes for new Rust version (#5161) (d65a6871)
    • ensure release rust extractor script is executable (#5155) (64969a85)
  • rust_extractor: set the working_directory (#5200) (07f4e5e5)
  • rust_indexer: emit built-in types in the same corpus as the CU (#5202) (63bc29e3)
  • serving: do not unnecessarily read indirection pages (#5178) (4b9c4789)

Features

  • cxx_indexer:
    • handle more proto functions (#5209) (effb97ae)
    • guess protobuf semantics (#5188) (7ddc015f)
    • support r/w and influence for user-defined operators (#5187) (c3236f7d)
  • go extractor: add flag to put deps in default corpus (#5169) (234f17f6)
  • go_indexer:
    • add definition links to MarkedSource (#5194) (86948564)
    • correct instantiated member references (#5163) (fccf5440)
    • add receiver type parameters to MarkedSource (#5160) (19e1699c)
    • add MarkedSource for function type parameters (#5159) (9bad9c81)
    • emit tapps for instantiated Named types (#5158) (dd574ee5)
    • ensure references are to non-instantiated methods (#5157) (7dc3b79f)
    • support satisfies edges for instance types (#5156) (eed1ece4)
  • rust_indexer:
    • add flag to disable emitting xrefs for stdlib (#5197) (1aa5b943)
    • remove need for save-analysis files to be saved to fs (#5193) (3806d62d)
  • schema: include Go generics examples (#5154) (4b7ae7b2)
  • serving: add Hash to FileInfo protos (#5207) (dd53bcde)
  • tooling: Support filtering of kzips by language. (#5167) (d3cea029)

[v0.0.57] - 2021-12-16

Bug Fixes

  • java: Update Flogger dependency to 0.7.3 due to log4j (#5152) (9a9fb44))

[v0.0.56] - 2021-12-13

Bug Fixes

  • java: Update Flogger dependency to 0.7.2 due to log4j (#5147) (ec0359e))

[v0.0.55] - 2021-10-18

  • Fixes an issue with the Bazel Rust extractor

[v0.0.54] - 2021-10-04

fuchsia_extractor has been updated to no longer include .rlib files

[v0.0.53] - 2021-08-27

Bug Fixes

  • style nit in the TS indexer (#5044) (2f1f2a37)
  • Added correct underline syntax (#4967) (733a6cf6)
  • update link to re2 syntax (#4952) (e8808410)
  • force selection of ar to unbreak os x build of libffi (#4905) (99ccb48d)
  • build: move BUILD rules next to go code (#5009) (3dc332be)
  • cc_indexer_test: use short_path for generated files (#5036) (da29f512)
  • cxx_indexer:
    • fix dangling reference (#5039) (8c0140b4)
    • assign usr nodes to the empty corpus (#4928) (12f483af)
    • refactor lvalue handling for dataflow (#4907) (9035307b)
  • docs:
    • include a note about anchor-to-file childof edges (#5007) (98391d0a)
    • use wrapper script for extracting make-based projects (#4997) (1df8f54c)
    • better highlight macos link, remove bazelisk recommendation (#4939) (dee76d77)
  • fuschia-extractor: Fix panic format string for Rust 2021 (#4958) (5edce0e5)
  • go_indexer: check whether embedded type is Named (#5028) (7babd407)
  • java:
    • guard against possible null sym field (#4892) (b5e52f15)
    • properly elide type arguments for constructor calls (#4889) (160b28af)
    • verifier test exposing the compiler implicitly tagging enum values as "static" (#4887) (9b4aace9)
  • java indexer: --override_jdk_corpus takes precedence over default corpus (#5043) (08aea04e)
  • java_extractor: properly filter/normalize Bazel javacopts (#4977) (59a94bf7)
  • kzip info: allow paths that begin with /kythe_builtins/ (#5030) (7a909d91)
  • rust_common:
    • remove reference to PROTO_COMPILE_DEPS (#5018) (bbaf4eb6)
    • remove references to PROTO_COMPILE_DEPS (#4992) (efa7141f)
  • rust_extractor:
    • process env vars and compiler args passed to wrapper (#5014) (d315b5be)
    • fix running the Rust extractor on macOS (#5013) (5db173cd)
    • make extractor tests more resilient (#5002) (6f719653)
    • change argument processing due to rules_rust change (#4996) (3044115c)
    • fix --out-dir path (#4993) (c1afdc7a)
    • Remove assert_cmd dependency from integration test (#4972) (f36068ae)
  • rust_indexer:
    • properly handle empty file contents (#5034) (b89f1678)
    • Fix proxy indexer (#5032) (d1ccce08)
    • allow files to be passed in for the extractor (#5024) (65ec646d)
    • remove reference to go_verifier_test (#5020) (8dd99679)
    • copy all generated proto files (#4968) (1e199931)
    • rustfmt everything (#4941) (82504c0a)
    • update to a recent nightly toolchain (#4940) (e77b26d4)
  • tool: add alias support to kythe command, add alias for "decor" (#4937) (9fe7e8ea)
  • typescript_indexer: fix compilation issues with TypeScript 4.3 (#4945) (828d622c)
  • verifier: remove darwin stubs and alwayslink libffi to satisfy dyld (#4906) (795ce805)
  • vscode: update vscode dependencies (#4920) (ed78ca68)

Features

  • api: add set of languages appearing in Origin (#4947) (d5419f31)
  • build:
    • add image and cloudbuild configs for pre-commit (#4898) (63fa149b)
    • include a custom bazelrc for cloud builder (#4897) (b0c64e1d)
    • add cloud build configuration for presubmit tests (#4894) (407fa2b6)
  • corpus checker: allow specifying an allowlist of corpora (#5033) (14585948)
  • cxx_common: properly index generated protos (#4984) (19c7da51)
  • cxx_indexer:
    • Allow VNames as NodeIds for #5037 (#5041) (3040754f)
    • Read the semantic field into metadata for #5037 (#5040) (06c49fc1)
    • Add semantics to metadata for #5037 (#5038) (96ed0a4b)
    • use default corpus for meta, builtin nodes (#5008) (fd30e097)
    • add kRefFile to EdgeKinds (#4931) (c0e92993)
    • r/w refs and influence for += style operators (#4909) (9dd66234)
    • support ++ and -- for influence and r/w refs (#4908) (fe3b10dc)
  • dev: add rustfmt checks in linter (#4989) (f21f37e4)
  • empty_corpus_checker: print out all corpora seen in the input (#5027) (b263fd0d)
  • extraction:
    • accept "arguments" in addition to "command" in compdb (#4986) (c71a871e)
    • support tree artifacts in bazel extractor (#4932) (147034d1)
  • go_indexer:
    • load inline metadata (#5001) (23a9265f)
    • add option to put tapp nodes in the CU corpus (#4951) (a367ca6f)
  • indexing: add metadata support for generated protos (#5021) (baed7a22)
  • java:
    • add empty corpus test and assign corpus to PACKAGE nodes (#5026) (24740e0e)
    • emit visibility and other modifier facts (#4886) (04347f60)
  • java indexer: use compilation corpus for jvm and jdk nodes (#5035) (fb7df986)
  • java_indexer:
    • place builtins in the compilation unit corpus (#4976) (0291fced)
    • add option to put tapps in the CU corpus (#4960) (0198d461)
  • kzip info: check for invalid absolute paths (#5022) (3bb00e01)
  • post_processing: implement extends_overrides. (#4995) (6889771f)
  • proxy: Add support for transmitting protos in wire format (#4983) (ae132ac1)
  • rust_common: prepare for Kythe release (#5055) (a5f0fdfa)
  • rust_extractor:
    • add support for processing vname configuration (#5053) (3139303d)
    • add script to automatically set LD_LIBRARY_PATH (#4998) (8a4c2498)
  • rust_indexer:
    • add cli argument for temporary directory (#5051) (6faca9f8)
    • Add support for communicating with the analyzer driver (#4985) (7e542813)
    • Get source file contents from the FileProvider (#4974) (70e517d4)
    • generate and check in rust protos (#4949) (703eb64f)
  • schema: add ref/writes to edge kinds (#4933) (ddb0c19c)
  • site: add a target for serving website locally (#4970) (b43e03f4)
  • testing: refactor empty corpus test and add one for golang (#5017) (dd19c9ff)

Performance

  • serving: default to more performant approximate totals (#4896) (0ebe1919)

[v0.0.52] - 2021-04-09

Features

  • build: allow in-tree lex/yacc toolchains (#4880) (ad8f0987)
  • common: allow named captures in vnames.json rules (#4883) (4398f3f5)
  • verifier: add stub for souffle support (#4881) (fe68af99)

Bug Fixes

  • go_vnames: add go vname archives to simple_vnames.json (#4882) (44e45a63)

[v0.0.51] - 2021-04-05

Bug Fixes

  • go_vnames: properly map .x file vnames (#4878) (00d8e038)

[v0.0.50] - 2021-03-31

Bug Fixes

  • allow print_extra_actions to print ObjcCompile (#4838) (2d995633)
  • revert #4813 (breaks darwin) (#4815) (50286c1c)
  • bazel_go_extractor: include .x files in required input (#4874) (a0a72617)
  • cxx_indexer: function definitions should influence declarations (#4812) (c741a386)
  • cxx_verifier: properly attribute srcs/hdrs to avoid ODR (#4821) (b802f32b)
  • docs: Use rules_ruby to hermetically generated the web site (#4857) (f975ce26)
  • go_indexer: fallback to method ownership by pos (#4867) (4097379d)
  • java:
    • emit "static" facts for classes and methods (#4861) (9c061944)
    • ensure a corpus is always set in extracted compilation units (#4849) (e7326868)
  • platform: use proper JSON marshalling in proxy (#4804) (d5a03e10)
  • proto: only decorate the relative type name in fields (#4872) (d24403f2)
  • serving:
    • move defer to after error check (#4862) (6e4b9aea)
    • use nearest FileInfo for revision data (#4827) (f734fb09)
  • tooling:
    • guard adding nil Entry to EntrySet (#4835) (24735fa1)
    • use protojson for metadata marshalling (#4806) (2d265641)
    • use protojson for Entry stream encoding (#4805) (6eaf95d2)
  • typescript:
    • prepare for breakage for upcoming 4.2 migration (#4864) (9abccb21)
    • tslints (#4843) (891120a3)
  • verifier:
    • use absl::Span instead of std::initializer_list elsewhere (#4834) (875a36f6)
    • refactor the assertion AST into a library (#4814) (de6b0c42)

Features

  • cxx_indexer:
    • add fields to the influence graph (#4820) (77f6424a)
    • track influence through vardecls (#4818) (b7025ca0)
  • docs: begin to document the influence relation (#4791) (ce3200a2)
  • indexing: add synchronous FDS method (#4817) (eaea3792)
  • java_extractor: allow specifying java sources batch size for extractor (#4823) (3bb67881)
  • schema: add ref/id to edge kinds (#4840) (fbad5f9a)
  • serving:
    • handle dirty_buffer in columnar decorations (#4858) (adb5eb51)
    • handle dirty_buffer in columnar decorations (#4858) (cbf4a453)
  • typescript: returns influence functions (#4841) (577446b7)
  • verifier:
    • don't spend time sorting input for the fast solver (#4863) (7f4c3f03)
    • convenience functions for building predicates and ranges (#4833) (1b160dab)
    • set up a library/tests for lowering assertions to souffle (#4832) (c8df46d2)

[v0.0.49] - 2021-01-22

Bug Fixes

  • disable TS function deprecation tagging (#4793) (2c0bafa8)
  • avoid non-inclusive language (#4683) (18401be2)
  • build: use @io_kythe// instead of @// in bazel build file template (#4711) (ca9e8881)
  • cxx_common:
    • change selector serialization to work better with protos (#4785) (55231f7e)
    • always initialize fields in FileOutputStream (#4757) (22f821c5)
  • cxx_indexer:
    • add missing cases and remove default from clang enum switches (#4799) (a6804702)
  • java_common: keep rooted URI paths rooted (#4691) (4f96ed5d)
  • java_indexer:
    • add MarkedSource for class initializer (#4758) (58bf4fad)
    • emit references to .class literals (#4756) (a54f6970)
    • handle doc refs to primitives (#4741) (76939133)
    • blame callsites under static fields on the clinit (#4740) (625299dc)
    • add zero-length definition for cinit (#4739) (f43841b6)
    • special-case builtin Array class lookup (#4738) (a4441336)
    • blame instance/static callsites on ctor/cinit methods (#4734) (34ee6628)
  • verifier: correctly pull out edge kinds and cache empty vnames/symbols (#4769) (5d627e80)

Features

  • create a localrun script (#4235) (dd6d7c96)
  • api:
    • add revision to non-anchor locations that may ref a file (#4699) (51c92b9b)
    • add revision fields for file/anchor locations (#4698) (2918c49b)
  • common: add kytheuri CorpusPath helpers (#4707) (371a5d65)
  • cxx_common:
    • allow any range-of-string-like-types for RegexSet::Build (#4787) (9e57829d)
    • allow matching with RE2 pattern in addtion to flat_hash_set (#4779) (761465a6)
    • extend bazel artifact selection to allow stateful selectors (#4764) (228c3070)
  • cxx_extractor:
    • use a stable working_directory if possible (#4771) (410f69c5)
    • allow specifiying build target name in environment (#4686) (a95f69ab)
  • cxx_indexer:
    • add user-provided template instantiation excludelist (#4701) (43f7d4de)
    • opt-in to emitting influence edges (#4700) (d62cf15c)
    • trace influence through function calls (#4696) (16c6730f)
    • distinguish field writes from reads (#4687) (582c4430)
    • add blame scopes for field references (#4682) (61a22a16)
  • java_indexer: tag abstract methods/classes as such (#4746) (0d455662)
  • serving:
    • plumb revision data for XRefService responses (#4710) (22f144ad)
    • add revision serving fields for #4699/#4698 (#4708) (d38aa957)
  • textproto:
    • allow compilation units to contain multiple sources (#4772) (37d71252)
    • expose DescriptorPool in plugin api (#4721) (c9b8c15c)
    • put example plugin behind a flag (#4695) (16a2eb53)
    • accept proto_library targets instead of .proto files (#4689) (659de4d2)
  • tooling: add optional analysis timeout to driver (#4714) (14d4fa59)
  • verifier:
    • build a souffle frontend that can read an entrystream (#4768) (0e9dc6a9)

[v0.0.48] - 2020-09-01

  • runextractor:
    • Pass flags to the compdb extractor (#4663) (38fd346)

[v0.0.47] - 2020-08-18

  • Include stacktraces from assertion failures in C++ tools (#4655) (784e8ee7)

[v0.0.46] - 2020-08-13

Features

  • Create new Rust Bazel extractor (#4602) (a030ce48)
  • Add library for generating Rust save_analysis files (#4594) (c84b2373)
  • Add support for defining environment variables passed to extractors (#4592) (ade706d5)
  • cxx_indexer:
    • record var-to-var influence (#4559) (e8461650)
    • annotate edges we know are writes to vars and ivars (#4558) (c3f64566)
    • blame variable references on the surrounding context (#4556) (b9ea1a9c)
  • extraction: generate build metadata kzip in bazel-extractor docker image (#4554) (7a528667)
  • fuchsia: Fuchsia-specific extractor (#4624) (38346f2e, closes #4606)
  • go-extractor image: record commit timestamp in kzip (#4582) (5813326c)
  • java_common: add ByteString overloads for fact value conversions (#4610) (a95d2e06)
  • rust:
    • Add support for Rust cross-references (#4641) (8555988e)
    • Makes the extractor more robust (#4640) (358eac11, breaks #)
    • Support emitting remaining definition types (#4638) (61dc64c1)
    • Add support for indexing enums (#4633) (b9844877)
    • Adds Fuchsia Rust extractor to release (#4634) (29d7f12e)
    • Add support to the Rust indexer for emitting module definitions and anchors (#4629) (405ee13f)
    • Support emitting function definitions (#4617) (b2876116)
    • Add Bazel rule for running Rust indexer tests (#4612) (a0f1f67b)
    • Create Rust indexer CLI (#4605) (2dba4dd9)
    • Unify Kythe Rust dependencies (#4611) (545968b9)
    • Create KytheWriter component for Rust indexer (#4565) (bf8c25a8)
    • Change Rust indexer FileProvider (#4564) (7852fc43)
    • Create provider and error modules for Rust indexer library (#4550) (d47857e7)
  • textproto: index enum values (#4615) (573ffff4)

Breaking Changes

  • rust: Makes the extractor more robust (#4640) (358eac11, breaks #)

Bug Fixes

  • Remove old cargo-kythe directory (#4601) (e71ea980)
  • Clean up old Rust tools (#4600) (9e316b15)
  • allow PushScope to work with braced-init (#4567) (70374dff)
  • bazel extractor: fix path to bazelisk in docker image (#4555) (468ad47f)
  • cxx_indexer:
    • avoid an assert check in Clang, silence errors (#4631) (0a700ac0)
    • handle null init expr (#4622) (bcdc8e9d)
    • report errors more directly rather than stderr (#4613) (9e12b4a4)
    • handle list-init on incomplete types (#4584) (0bcb51ef)
    • increase flexibility of proto library plugin (#4580) (d5f3e41b)
    • make sure init-list-expr has a type (#4571) (bfc03501)
    • properly filter empty ref/init exprs (#4560) (9fd021cd)
  • java_indexer: workaround JDK bug on Java 11 (#4614) (15cea9b3)
  • rust:
    • Fixes the kzip generation (#4650) (5b74224c)
    • Fix definition anchors and xrefs in the indexer (#4645) (00bb6402)
    • write_all instead of write in the extractor (#4646) (8cab33ed)
    • Fix Rust indexer issue with Trait definitions (#4644) (8750956d)
    • Fix bugs in the Rust implementation (#4642) (bfc0cc58)
    • Fix fuchsia_extractor test data (#4637) (9e1eedcd)
    • Ensure that Rust extractor creates a top-level folder (#4616) (297d4440)
  • schema:
    • add defines/implicit and examples (#4628) (0a500b8f)
    • document the use of special spans for implicit modules (#4625) (f1f9a814)
  • serving: turn diffmatchpatch panics into internal errors (#4621) (88c36a09)
  • tools: kzip merge uses proto as default encoding (#4649) (5b77cd64)
  • verifier: compile with the xcode clang (#4553) (9e75b8af)

[v0.0.45] - 2020-06-11

Bug Fixes

  • cxx_indexer: don't emit ref/init for unspecified fields (#4516) (6e60a52c)
  • java_indexer:
    • don't emit JVM nodes for erroneous types (#4509) (7f9e3d98)
  • serving: avoid returning a nil node in map (#4487) (4e303666)
  • ts_indexer: emit ref/call edges from calls. (#4478) (920aeaae)

Features

  • Change kzip writer implementations to use proto kzip encoding by default. (#4547) (566a83bd)
  • compdb:
    • print out command for failed extractions (#4546) (da636ca2)
    • continue processing other compilations on error (#4544) (a6022c91)
  • java_indexer: experimentally emit named edges to JVM nodes (#4490) (9753c0f6)
  • kzip: add subcommand and proto for metadata kzips (#4545) (f063dae5)
  • rust:

[v0.0.44] - 2020-04-21

Features

  • add lib for reading artifacts from bazel event streams (#4460) (0a124804)
  • api: return Documentation node defs even if no facts are found (#4458) (f03e8e67)
  • build: have arc run build test with named config (#4438) (756521e8)
  • cxx_extractor: cache symlink resolution in PathRealizer (#4483) (0f3c7f47)
  • cxx_indexer:
    • emit ref/id to class when class and ctor overlap (#4476) (0f9ced3e)
    • expose a useful internal metadata loading function (#4459) (f196b3e8)
  • indexing: add ref/id edge (#4435) (82ce8fc6)
  • runextractor cmake: add -extra_cmake_args option (#4436) (489b5aec)

Bug Fixes

  • require flex version 2.6 or newer (#4456) (70f2eeea)
  • cxx_indexer:
    • don't check-fail on copy-init-list (#4471) (addc2410)
    • properly emit ref/init edges in all cases (#4468) (62d89fe8)
    • emit ref and ref/init for designated inits (#4462) (5522b38a)
    • emit zero-width spans for entities in macro bodies (#4461) (118afbe2)
    • update proto literal support to mirror current lib (#4439) (74dfc7b2)
  • extraction: deterministically write files to kzip (#4479) (04e2fc9e)
  • java_indexer:
    • only consider Symbols without a source file external (#4472) (059806cf)
    • ensure annotated type vars generate consistent VNames (#4441) (fd91ce0a)
    • only apply jdk override for non-source symbols (#4434) (1d4ced6c)
  • java_tests: export jdk_kzip (#4443) (c76ad892)
  • ts_indexer: bug related to overridden functions. (#4463) (7288552a)

[v0.0.43] - 2020-03-10

Bug Fixes

  • bazel_go_extractor: record canonical importpath for archives (#4425) (9f999295)
  • cmake docs: make output directory before extracting (#4409) (2ceb0305)
  • cxx_indexer:
    • emit ref to class from ctor (#4400) (3a9b2a7c)
  • objc_tests: run objc tests on more platforms (#4426) (9ddf0176)
  • runextractor: set --build_file default to build.gradle (#4393) (eff63cb2)

Features

  • build: switch to an autoconfigured ubuntu 18.04 image and C++17 (#4385) (509d7c61)
  • example: recommend a way to handle TypeScript/&c-style modules (#4357) (9e9a6571)
  • go_indexer: support GeneratedCodeInfo .meta textproto files (#4414) (7c44d34c)
  • java_extractor: attribute corpus based on sources if unambiguous (#4399) (7f3868cf)

[v0.0.42] - 2020-02-19

Bug Fixes

  • copy_kzip:
    • hard links always fail under bazel so don't try (#4365) (10540135)
  • cxx_indexer:
    • address marked-source differences on builtin functions (#4379) (cbd9244c)
    • emit exactly one file-file generates edge for proto (#4377) (5ab67169)
    • use anchor not decl for file-file generates endpoint (#4372) (6e14dbde)
  • go_indexer: use the anchor for the file-file generates edges (#4348) (3d658d1d)
  • tooling:
    • ensure VNameRewriteRule JSON encoding is canonical (#4352) (124e000a)
    • keep track of added source file paths (#4351) (e753a99a)

Features

  • cxx_indexer:
    • add test for proto/c++ xrefs with included proto (#4363) (90f7c4e0)
    • emit USRs for macros (#4315) (#4358) (87d3be72)
  • extractors: add a passthrough bazel extractor (#4354) (e22e87aa)
  • go extractor: relative paths against KYTHE_ROOT_DIRECTORY (#4380) (18c0563f)
  • go indexer: add option to only emit doc/uri facts for stdlib pkgs (#4383) (255331cb)
  • go_indexer: add generates edges for proto-generated files (#4337) (2f01e628)
  • kzip_merge: allow applying vname rules during merge (#4366) (21d68ce6)
  • tooling: add vnames utility for handling rewrite rules (#4347) (4a75aef1)

[v0.0.41] - 2020-01-31

Features

  • cxx_indexer: add generates edges for proto-generated files (#4332) (299950d0)
  • java_extractor:
    • allow passing search paths as a map (#4323) (2ebd4c9f)
    • allow excluding modules from openjdk11 extraction (#4341) (b09b9a7f)
    • allow openjdk11 build and src dirs to differ (#4338) (b6bb46d4)
  • java_indexer: add generates edges for proto-generated java files (#4321) (8f2080d4)

Bug Fixes

  • cxx_common: rework VNameRef to conform to VName, templatize VNameLess (#4331) (2a83959d)
  • go extractor: treat -arc flag like -importpath (#4324) (0f75ac02)
  • java_extractor:
    • indirect runfiles path in opendjk11 extractor (#4335) (0354d63a)
    • wrong number of logger arguments (#4330) (e645e980)
    • use a stable working directory if possible (#4329) (75dd01f0)

[v0.0.40] - 2020-01-24

Bug Fixes

  • java_extractor:
    • add the processor classpath to the extractor action (#4301) (b079ce3e)
  • java_indexer:
    • only attempt to load implicit metadata if it exists (#4307) (188b1cec)
    • correctly reference JVM field nodes (#4304) (3e4c8add)
    • use in-memory class_output path for modular builds (#4299) (c8d23078)
    • handle --system none properly (#4297) (dc585623)
    • handle null FileObjects in readAhead (#4290) (0b7b623d)
    • enable readahead in new filemanager (#4284) (078aba28)

Features

  • java_indexer: support implicit protobuf metadata (#4262) (cace853f)
  • runextractor: Tell cmake to use clang (#4319) (5d10af8b)
  • kzip:
    • add source/input directories recursively (#4302) (d9442588)
    • relativize input paths (#4303) (fff4f9c3)

[v0.0.39] - 2019-12-19

Bug Fixes

  • java: disable errorprone plugin for java extraction (#4268) (08b674ea)
  • serving: avoid nil when serving data is missing SourceNode (#4269) (02a41e88, closes #4128)
  • typescript_indexer: emit refs to TYPE nodes in export statements (#4247) (cd3f14df)

[v0.0.38] - 2019-12-12

Bug Fixes

  • Retain exception cause in JavaCompilationUnitExtractor (#4258) (70120e55)
  • bazel extractor: change vnames for external paths (#4241) (22928892)
  • cxx_tools: replace sandboxed directory with bazel execroot (#4240) (4814f9f3)
  • java_common: fixes and utilities for exploded system directories (#4242) (13f0fa7d, closes #4213)
  • textproto: support direct instantiation of protobuf.Any messages (#4259) (b64188e4)

Features

  • textproto: index contents of google.protobuf.Any fields (#4254) (d429a737)

[v0.0.37] - 2019-12-03

Bug Fixes

  • extractors: use distinct proto meta files for cc_proto_library (#4234) (24d64419)

[v0.0.36] - 2019-12-02

Bug Fixes

  • bazel extractor: give external paths a root (#4233) (bddf41f9)
  • kzip: --encoding flag was previously ignored (#4216) (0f1bea83)

Features

  • java indexer: better support system modules (#4218) (a8cda826)

[v0.0.35] - 2019-11-15

Bug Fixes

  • release: include jsr250-api.jar in release archive (#3778) (1d8fcb97)

Features

  • java_indexer: plumb CorpusPaths for JVM nodes (#4205) (d83ee7ca)
  • jvm_indexer: allow JVM nodes to be refined by corpus/root/path (#4204) (952d1568)
  • serving: return known generators in DecorationsReply (#4201) (486c10a3)

[v0.0.34] - 2019-11-08

Bug Fixes

  • java extractor: Handle source files in jars (#4188) (df711e31, closes #4186)
  • jvm extractor: use class files as srcs, not jar (#4191) (907857c7)
  • kzip info: don't count compilation units by corpus (#4195) (88f5db4b)

Features

  • bazel extractor: put everything in the same corpus by default (#4192) (3966e3f7)
  • go_indexer: option to emit an edge for an anchor's semantic scope (#4187) (738f5fab)
  • java extractor: Include system modules in the compilation unit (#4194) (b4b1b975)
  • java_indexer: add generates edge to generated AutoValue sources (#4193) (f7614b19)
  • runextractor: pipe underlying cmake stderr to stderr (#4178) (aacea997)
  • typescript_indexer: add references to imports of 3rd party modules. (#4165) (1ed21f01)

[v0.0.33] - 2019-10-30

Features

  • release: Add runextractor to the release (#4171) (5d16675f)

[v0.0.32] - 2019-10-28

Bug Fixes

  • bazel-extractor: fix permissions when extracting release archive (#4168) (063dea79)
  • docs: update note on Go stdlib corpus name (#4148) (6f79e64b)
  • java: record EntrySet emission before calling emitter (#4145) (019f297f)
  • tools: fix generate_compilation_database on macOS (#4166) (#4167) (1999be3e)

Features

  • kzip info: default --read_concurrency to numcpu (#4157) (7fb5423d)
  • release: add extractors.bazelrc to release (#4163) (b1e68e29)

[v0.0.31] - 2019-10-10

Features

  • api:
    • add CrossReferencesRequest.totals_method flag (#4024) (3940fde5)
    • add build config to each related Anchor (#3738) (b8f01f6d)
    • allow a semantic scope to be associated per decoration (#3707) (643cc854)
    • add set of build configs per Corpus in CorpusRootsReply (#3572) (96cb400a)
    • add build configurations per FileTree entry (#3523) (b5eddd52)
    • add CrossReferencesRequest filter for build config (#3512) (cc9d2d66)
  • cxx_common:
    • support proto encoding of compilation units in kzips (#3940) (512fe0df)
    • document and implement kythe metadata as proto (#3912) (b19a1745)
    • Add ref imports edge field (#3465) (c9c6f6e5)
  • cxx_extractor:
    • use a toolchain for configuring cxx_extractor (#4030) (f1bed7e9)
    • allow resolving symlinks when creating vname paths (#4009) (a5c4bc39)
  • cxx_indexer:
    • provide defines spans for functions (#3708) (8cd2434b)
    • add tests and fix support for C++/proto metadata references (#3531) (dd8fe901)
  • docker_extract: support selecting encoding for kzip generation (#3947) (154cec53)
    • support package installation at extraction time to support system dependencies (#3641) (e7d15468)
    • Use bazelisk in Bazel extractor Dockerfile extraction. (#3596) (94e70cde)
    • add generic GCB Bazel extraction config (#3509) (abeff3e6)
    • add Bazel extraction Docker image (#3499) (2af62973)
  • extraction:
    • allow details to be added to a kindex required input (#4017) (255fb53d)
    • allow extractor to infer corpus from sources (#45) (bc7fc996)
  • go extractor:
    • add vnames.json support (#4069) (99cecdb6)
    • allow specifying go +build tags (#3851) (b8b89d1f)
  • go_indexer:
    • emit parameter comments (#4134) (93518511)
    • emit line comments when no preferred doc is present (#4132) (b3a278d5)
    • add deprecation facts for go (#3692) (09f04420)
    • use LOOKUP_BY_TYPED MarkedSource child for variables (#3689) (fc3ebd0f)
    • overriding method type satisfies interface method type (#3635) (426b1bf1)
    • add MarkedSource for tapp/tbuiltin nodes (#3631) (bbe98047)
    • add receiver type to function types (#3627) (3313fb3b)
    • convert variadic function parameters from slice (#3615) (0f638176)
    • add typed edges for bindings (#3611) (7f70f99d)
    • emit bindings for anonymous interface members (#3610) (d7af13c2)
  • java_common:
    • add forwarding method for setPathFactory (#4101) (699004c1)
    • use the standard compilation unit digest for kzip (#4060) (e5ef23b2)
    • implement standard compilation unit digesting (#4048) (55542254)
    • rudimentary CompilationUnit FileSystem (#3928) (8cb8d6d2)
    • add utility to convert schema proto enums (#3696) (c0b74290)
  • java_indexer:
    • Record @deprecated javadoc tags in the Java indexer (#2977) (84a77bf9)
    • move path-based file manager config to base class (#4133) (831b73ec)
    • command line option to use path-based file manager (#4122) (01858aba)
    • Initial path-based JavaFileManager implementation (#4115) (800002ca)
    • add typed edges for this/super (#4058) (dceb969d, closes #4055)
    • add property/* edges for @AutoValue classes (#3993) (0abf28c9)
    • add basic tests for java-9-10-11 features (#3898) (2139771c)
    • emit refs to JVM graph for externally defined nodes (#3800) (0d7614ed)
    • add receiver type to function types (#3628) (fe7aa759)
    • add MarkedSources for function tapp nodes (#3601) (f36eceff)
    • add MarkedSources for array/generic tapp nodes (#3561) (e2aaf23c)
  • jdk_indexing: allow extracting only specific make targets (#3935) (2978be61)
  • post_processing:
    • support Riegeli Snappy compression (#4072) (a7631889)
    • add Nodes.fromSource conversion utility (#3755) (03bdb570)
    • allow nodes/anchors to be ranked (#3750) (466b7bc4)
    • implement basic callers in PagedCrossReferences (#3712) (87f273d1)
    • support reading input files from a directory (#3497) (e907832f)
  • proto:
    • Add standalone proto extractor (#21) (c1c53ce4)
    • add extra_action and action_listener (#43) (956304df)
    • emit deprecation tags for proto fields (#3677) (418a3d9a)
    • proto plugin to embed metadata in C++ headers (#3511) (0d2ea56e)
  • schema:
    • embed metadata in schema.proto source file (#4020) (902b1344)
    • add Java utility to convert Node/Entry protos (#3714) (19567cea)
    • add schema proto representation of a Kythe Entry (#3704) (058565aa)
  • serving:
    • add wildcard node kind support to xrefs indirection (#3984) (2f8a5bcf)
    • experimental support for xrefs indirection (#3980) (bfb2c24c)
    • add build configs per corpus (#3580) (0292676f)
    • add build configs to FileTree serving data (#3527) (448d46e8)
  • textproto_indexer:
    • add indexer for text-format protobuf (#39) (d9c96147)
    • add standalone extractor for textproto (#35) (72cd0129)
    • add library for parsing textproto schema comments (#31) (b6f38f05)
    • support inline repeated field syntax (#46) (832e1583)
    • add refs for schema comments (#53) (93e69912)
  • tooling:
    • implement (*riegeli.Writer).Position (#3919) (94637264)
    • add --semantic_scopes flag to kythe decor command (#3719) (bd17d082)
    • add --build_config filter to 'kythe xrefs' command (#3588) (8cd01247)
    • add --build_config filter to 'kythe decor' command (#3587) (9cae15ee)
    • add KytheFS tool to mount index to filesystem (#3419) (cddcda7c)
    • migrate kythe CLI to new filetree API (#3487) (59aee1e3)
    • kzip can merge into the existing output file (#3679) (ea0f3de7)
    • add kzip subcommand for creating trivial kzips (#3537) (dc839a1e)
    • add function for merging multiple KzipInfos together (#4084) (e2202c5a)
    • change Unit.Digest() to return hex string representation (#4044) (f81e09b3)
    • thread encoding into kzip_extractor bazel rule (#4027) (3f81db7f)
    • add filter subcommand to kzip tool (#3998) (7d4e7de4)
    • add kzip view command (#3957) (5d4b4003)
    • support both proto and JSON encodings in Java for compilations in kzips. Also move kzip testdata to common location. (#3852) (4d86c48d)
    • create permits specifying encoding (#3842) (18ad24ed)
    • add support for encoding compilation units as proto and/or JSON in kzips. (#3836) (3643205e)
    • add info command to kzip tool which returns count of compilation units and referenced corpus names. (#3840) (6f83e91f)
    • add option to read compilation units in parallel (#4096) (1db42c19)
    • add proto output format to kzip info (#3991) (d32202eb)
    • use vfs to allow for changing filesystem impl (#3971) (cb882e9a)
    • add more details and json output mode to kzip info (#3933) (09cb07d9)
    • allow complete specification of a compilation unit (#3542) (7f82fe42)
    • allow embedding details messages in kzips (#3538) (d0255f56)
  • typescript: Support AngularTemplateCompile mnemonic (#4105) (98808c0a)
  • typescript_indexer:
    • don't emit duplicate nodes for namespaces (#4062) (3abf05cf)
    • print plugin names (#4061) (f4f15815)
    • emit references to hops in imports (#3990) (e385c8c3)
    • add minimal support for JSX (#3888) (c9f999d0)
    • expose getSymbolName through IndexerHost (#3909) (6d55e1e0)
    • add support for utf-16 offset lookup (#3908) (eae1ff81)
    • add support for indexing literal properties (#3899) (b4d64007)
    • define VName specification (#3783) (ca76e298)
    • emit "aliases" edge on aliased types (#3870) (7dd02837)
    • emit "overrides" edges for overridden methods (#3872) (ce043510)
    • index export equals and import equals nodes (#3871) (1c54c8a1)
    • add support for indexing module decls (#3873) (dd53f6b1)
    • add xrefs for declarations in objects (#3864) (e7e41b67)
    • reference modules in export statements (#3863) (f3eb65f1)
    • pass module name creation logic to plugins (#3828) (5756795f)
    • VName schema compliance for constructors (#3785) (cdee8bf8)
    • Getter/Setter entries (#3784) (0e2dd884)
    • add defines anchors for functions (#3775) (f03ecc89)

Bug Fixes

  • bump nokogiri to 1.10.4 (#4007) (870a5830)
  • update vulnerable outdated js-yaml NPM package (#3740) (b873a1c6)
  • get toolchains for remote builds working correctly (#7) (b034a8f3)
  • api: filter decoration overrides by desired build configs (#3739) (3f4ef51b)
  • cxx_common:
    • fix path_utils_test when tempdir is a symlink (#4022) (f71af3dd)
    • update LLVM to r367622 (#3944) (1d7123f9)
    • anticipate changes in Bison 3.3 syntax (#3513) (d14cb507)
  • cxx_extractor:
    • use the right compiler executable (#4032) (a2015717)
    • better support cuda extractions (#3747) (2d7f89c6)
    • include executable name in extracted arguments (#4023) (58a62498)
    • Set cxx extractor kzip times to a constant (#4086) (642c9330)
  • cxx_indexer:
    • emit references to dependent names based on name, not location (#4097) (28cf259b)
    • allow and test std::make_shared (#4059) (4016c5b3)
    • allow protobuf metadata in .stubby.h files (#4004) (29cdef09)
    • properly reference C++17 deduced templates (#3900) (69ef278c)
    • normalize windows paths (#3742) (167786ac)
    • insist that compilation units have working directories (#3716) (d3e059d1)
    • always add . to the VFS (#3715) (a8e95930)
    • use URI-friendly encoding for VName fields (#3705) (f9a7e299)
    • use build_config when claiming implicit AST subtrees (#3619) (8868db03)
    • attach build_config to file claim tokens (#3590) (05800883)
  • cxx_verifier: fix MSAN error on use-of-uninitialized (#4010) (08fa1823)
  • go extractor:
    • fix invalid Details messages for packages (#4120) (426a9b0b)
    • Change action go bazel extractor runs on (#4087) (27626173)
    • -tags is space-separated, not comma (#3856) (c932970f)
  • go_common: use nondeprecated zip file handle mod time (#4047) (b9e9c011)
  • go_indexer:
    • use only name for a named type's MarkedSource (#3850) (f363e506)
    • handle overrides for structs in a other packages (#3606) (f3364504)
    • always emit anchor for anon value types (#3605) (d97ca443)
  • java:
    • handle more null data from java (#4082) (e878b5f5)
    • accept either JRE 8 or JRE 9 style classpath in test (#3972) (3ea7de6c)
  • java_build: remove jvm_flags which complicate running on newer JDKs (#3955) (b4bdb395)
  • java_common:
    • normalize paths before looking them up (#4106) (d4155894)
    • adjust case when getting default format (#4104) (64659661)
    • add file digest as Path URI host (#3975) (2ead1aa4)
    • allow resolving relative paths against CU working dir (#3937) (8050ceec)
    • replace or remove JDK9+ methods (#3930) (b1810d84)
  • java_extractor:
    • include working directory in extracted proto (#4130) (bc363f87)
    • and tests should use ambient langtools (#4053) (7f680e94)
    • support missing -s in aspect extraction (#3986) (7609b970)
    • deal with both kinds of Generated annotations (#3889) (048134fd)
    • remove Option.D from compilation unit again (#3670) (8a0bdfda)
    • use reflection to access/override JDK bits. (#3612) (72915498)
    • Don't include time in kzips for java (#4085) (3c25f1a0)
  • java_indexer:
    • cast to base with asPath to support JDK8 (#4137) (1ab8b883)
    • address part of #3459 by claiming comments for annotation lines (#3489) (bcddb97c)
    • use Path to resolve metadata (fixes #4135) (#4136) (e03d4726)
    • accept AutoValue.Builder interface definitions (#4054) (e12eee78)
    • implement JDK9+ path-based FileObject methods (#3976) (bb70a39f)
    • dynamically resolve JRE 9 bootclasspath (#3970) (f95e4395)
    • emit and test type parameter MarkedSources (#3832) (7cb46e3f)
    • emit MarkedSource for defined nodes referenced earlier in analysis (#3826) (e3d031cc)
    • avoid NPE when referencing Java package in comment (#3803) (42f94049)
    • only emit MarkedSource for defined symbols (#3792) (3079f619)
    • only emit MarkedSource for defined symbols (#3788) (6bfb2f7a)
    • box LOOKUP_BY_PARAM MarkedSources with text (#3632) (44771993)
  • jdk_extractor: bazel runfiles no longer expect the workspace name (#4131) (ae19c938)
  • pipeline: beam output path can contain a filesystem scheme (#3532) (eba6ff48)
  • post_processing:
    • split semantic callers within xrefs group (#3776) (87e1e2ed, closes #3768)
    • convert DirectoryReply to FileDirectory for serving data (#3604) (0ef9b748)
    • make pipeline more tolerant to some errors (#3490) (dc33424b)
  • proto:
    • include deprecation tags for messages, enums and enum values. (#3822) (c602555d)
    • link BuildDetails proto (#49) (e9b68f17)
    • proto fields have subkind "field" (#4098) (ac6cb14b)
    • empty deprecation message and additional test case (#3678) (d56bc1d3)
    • skip synthesized map entry types (#26) (c23d4d52)
    • close file after use in SourceTree.Read() (#18) (da1c9cc0)
    • extract test files in TEST_TMPDIR instead of runfiles dir (#29) (f94a1299)
  • serving:
    • properly return lookup errors (#3764) (d5c0e4ec)
  • tests:
    • make proto/textproto tests not rely on jq (#3967) (28986284)
    • remove deadline option from proto testdata (#8) (7f2f889d)
  • textproto_indexer:
    • continue analysis even if schema comments are invalid (#3859) (07e5eda4)
    • handle relative paths correctly in textproto and proto extractors (#3694) (dbaa0a8b)
    • implement and test repeated extension fields (#50) (e658b1cb)
    • improve error handling around optionals (#42) (24455b8a)
  • tooling:
    • do not consider the empty kzip an error (#4111) (7dc45432)
    • check error before result (#4110) (3207a48f)
    • use uncompressed riegeli block size when decompressing (#3997) (a6040e85)
    • correct chunk position starting a block boundary (#3782) (341fd2cf)
    • fix #3246 (#3737) (c2d7ee67)
    • allow sample UI dependencies to be disabled (#3717) (4c687714)
    • migrate 'kythe ls' filters from deprecated FileTree API (#3566) (5c3e9c27)
    • migrate kythefs from deprecated FileTree API (#3564) (3ffd2597)
    • populate KzipInfo.total_files in info.go (#4018) (d1b99218)
    • make default kzip encodings explicit (#4012) (b526e547)
    • use proper incantation so testdata still found on import (#3846) (06f9aa46)
    • EncodingFlag fully implements flag.Getter and flag.Value (#3843) (55cf0dd2)
    • determine unit corpus and file language more robustly (#4095) (c4a354e8)
    • implement flag.Getter for all flat types (#3544) (a47b32ed)
    • Don't include kzip creation time in kzip (#4083) (5092d9d5)
  • typescript_indexer:
    • add anon signature part for function expressions (#3880) (b805d3a9)
    • don't throw on unfound module path (#3882) (e8f2c5ec)
    • do not give anonymous names to binding patterns (#3857) (f4fa3d58)
    • Do not name scopes created by rvalues (#3841) (4e6d241f, closes #3834)
    • differentiate signatures of static and instance members (#3819) (74e1e4a2)
    • point class type and values at the class name (#3835) (35f41ccd)
    • remove deprecated childof edge from anchor to file (#3724) (5533e861)
    • properly lookup file VNames (#3686) (34369679)
    • obey VNames that come in from the input (#3467) (a2bc9861)

Performance

  • post_processing: use heap.Fix in disksort (#4063) (3cfd3b3b)

[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 analysis
  • viewindex: add --file flag to print a single file's contents
  • entrystream: 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 defined, only refd.
    • Old-style name nodes removed.
    • The extractor now captures more build state, enabling support for __has_include
    • anchors 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 flag
  • write_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 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] - 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.74...HEAD [v0.0.74] https://github.com/kythe/kythe/compare/v0.0.73...v0.0.74 [v0.0.73] https://github.com/kythe/kythe/compare/v0.0.72...v0.0.73 [v0.0.72] https://github.com/kythe/kythe/compare/v0.0.71...v0.0.72 [v0.0.71] https://github.com/kythe/kythe/compare/v0.0.70...v0.0.71 [v0.0.70] https://github.com/kythe/kythe/compare/v0.0.69...v0.0.70 [v0.0.69] https://github.com/kythe/kythe/compare/v0.0.68...v0.0.69 [v0.0.68] https://github.com/kythe/kythe/compare/v0.0.67...v0.0.68 [v0.0.67] https://github.com/kythe/kythe/compare/v0.0.66...v0.0.67 [v0.0.66] https://github.com/kythe/kythe/compare/v0.0.65...v0.0.66 [v0.0.65] https://github.com/kythe/kythe/compare/v0.0.64...v0.0.65 [v0.0.64] https://github.com/kythe/kythe/compare/v0.0.63...v0.0.64 [v0.0.63] https://github.com/kythe/kythe/compare/v0.0.62...v0.0.63 [v0.0.62] https://github.com/kythe/kythe/compare/v0.0.61...v0.0.62 [v0.0.61] https://github.com/kythe/kythe/compare/v0.0.60...v0.0.61 [v0.0.60] https://github.com/kythe/kythe/compare/v0.0.59...v0.0.60 [v0.0.59] https://github.com/kythe/kythe/compare/v0.0.58...v0.0.59 [v0.0.58] https://github.com/kythe/kythe/compare/v0.0.57...v0.0.58 [v0.0.57] https://github.com/kythe/kythe/compare/v0.0.56...v0.0.57 [v0.0.56] https://github.com/kythe/kythe/compare/v0.0.55...v0.0.56 [v0.0.55] https://github.com/kythe/kythe/compare/v0.0.54...v0.0.55 [v0.0.54] https://github.com/kythe/kythe/compare/v0.0.53...v0.0.54 [v0.0.53] https://github.com/kythe/kythe/compare/v0.0.52...v0.0.53 [v0.0.52] https://github.com/kythe/kythe/compare/v0.0.51...v0.0.52 [v0.0.51] https://github.com/kythe/kythe/compare/v0.0.50...v0.0.51 [v0.0.50] https://github.com/kythe/kythe/compare/v0.0.49...v0.0.50 [v0.0.49] https://github.com/kythe/kythe/compare/v0.0.48...v0.0.49 [v0.0.48] https://github.com/kythe/kythe/compare/v0.0.47...v0.0.48 [v0.0.47] https://github.com/kythe/kythe/compare/v0.0.46...v0.0.47 [v0.0.46] https://github.com/kythe/kythe/compare/v0.0.45...v0.0.46 [v0.0.45] https://github.com/kythe/kythe/compare/v0.0.44...v0.0.45 [v0.0.44] https://github.com/kythe/kythe/compare/v0.0.43...v0.0.44 [v0.0.43] https://github.com/kythe/kythe/compare/v0.0.42...v0.0.43 [v0.0.42] https://github.com/kythe/kythe/compare/v0.0.41...v0.0.42 [v0.0.41] https://github.com/kythe/kythe/compare/v0.0.40...v0.0.41 [v0.0.40] https://github.com/kythe/kythe/compare/v0.0.39...v0.0.40 [v0.0.39] https://github.com/kythe/kythe/compare/v0.0.38...v0.0.39 [v0.0.38] https://github.com/kythe/kythe/compare/v0.0.37...v0.0.38 [v0.0.37] https://github.com/kythe/kythe/compare/v0.0.36...v0.0.37 [v0.0.36] https://github.com/kythe/kythe/compare/v0.0.35...v0.0.36 [v0.0.35] https://github.com/kythe/kythe/compare/v0.0.34...v0.0.35 [v0.0.34] https://github.com/kythe/kythe/compare/v0.0.33...v0.0.34 [v0.0.33] https://github.com/kythe/kythe/compare/v0.0.32...v0.0.33 [v0.0.32] https://github.com/kythe/kythe/compare/v0.0.31...v0.0.32 [v0.0.31] https://github.com/kythe/kythe/compare/v0.0.30...v0.0.31 [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