1
1
mirror of https://github.com/github/semantic.git synced 2024-11-28 01:47:01 +03:00
semantic/ROADMAP.md

108 lines
2.9 KiB
Markdown
Raw Normal View History

2017-04-27 21:35:47 +03:00
# Semantic Roadmap
2015-09-15 23:25:02 +03:00
2017-04-27 21:35:47 +03:00
Semantic Code produces data around codes structure and meaning. This is made available via GraphQL APIs, enabling others (both at GitHub and elsewhere) to build features.
2016-09-13 17:51:25 +03:00
2017-05-15 17:45:16 +03:00
See also our [roadmap project][] for our current efforts.
2017-05-15 17:07:23 +03:00
## Objectives
2017-05-01 19:04:55 +03:00
2017-05-15 17:58:59 +03:00
- [Run a resilient, scalable service](#run-a-resilient--scalable-service)
2017-05-01 19:04:55 +03:00
- Help developers understand, [navigate][], and improve their code.
2017-05-15 17:58:59 +03:00
### Run a resilient, scalable service
Our service should operate with a minimum of headaches. Our service should scale with GitHubs customer base and our language support.
Task | PRP | Priority (1 to 3) | Amount of work (1 to 4)
---- | --- | ----------------- | -----------------------
Production readiness | @tclem | 1 | 3
### GraphQL APIs
2017-04-27 21:35:47 +03:00
- Parse tree.
- Integration with code search 2.0
2017-04-28 21:43:24 +03:00
- [Semantic notifications](https://github.com/github/semantic-diff/issues/744)
2017-04-27 21:35:47 +03:00
- Diff.
- Repository and/or project-level (semantic index)
- Dependencies
- Some sort of persistence to “link” together different parse trees/repositories/etc.
2017-05-01 19:04:55 +03:00
**Ongoing Work:**
- Extend/improve the data provided via GraphQL. API consumers will have to specifically opt in to any new fields in order to receive them.
### LSP integration
Enables:
- Find References from blobs
- Go To definition
- Find workspace symbols
2017-05-01 19:04:55 +03:00
**Ongoing Work:**
- Hosting language servers
- Hosting LSP servers in containers
- Persistence or caching of requests
### Semantic analysis
- À la carte syntax
- Cyclomatic complexity
- Modular abstract interpreters
- Type inference
- Is this program well-typed?
- What is the type at any particular node?
2017-05-01 19:04:55 +03:00
**Ongoing Work:**
- type signatures,
- parse/type errors,
- callers/callees,
- labelling symbol declarations (for e.g. jump to…/ToC as well as code search)
- linking symbol references to declarations.
### Language support
- Python
2017-05-01 19:04:55 +03:00
**Ongoing Work:**
- Extend the set of supported languages, guided by data on language usage.
- Provide/improve tooling for writing/testing tree-sitter grammars.
- Review contributions to open-source grammars.
- Automate as much as possible to keep us focused on the core. Can we reduce/offload this in other ways?
### Operability/Production readiness
- Containerization/[-as-a-service architecture](https://github.com/github/semantic-diff/projects/8)
- Caching
- Performance
- Security review of tree-sitter
- Resolving tree-sitter error recovery hangs
2016-07-05 17:41:05 +03:00
2017-05-01 19:04:55 +03:00
**Ongoing Work:**
- Performance improvements.
- Resiliency improvements/maintenance/operational excellence.
- Metrics. How does it perform, how are people using it, what data do people care about, what dont they use at all.
2016-07-05 17:41:05 +03:00
### ToC
2016-01-06 20:59:58 +03:00
- Performance with large parse trees
- Depends on improved operability
- Production ready tree-sitter
- ToC in Enterprise
2016-07-05 17:41:05 +03:00
2016-09-13 17:51:25 +03:00
[roadmap project]: https://github.com/github/semantic-diff/projects/5
2017-04-27 21:35:47 +03:00
[navigate]: https://github.com/github/semantic-diff/issues/909