-
Notifications
You must be signed in to change notification settings - Fork 526
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ink! analyzer (phase 2) - milestone 1
- Loading branch information
1 parent
08f142c
commit 55f80a9
Showing
1 changed file
with
27 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Milestone Delivery :mailbox: | ||
|
||
**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this milestone and the delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** | ||
|
||
* **Application Document:** [ink! Analyzer (Phase 2)](https://github.com/w3f/Grants-Program/blob/master/applications/ink-analyzer-phase-2.md) | ||
* **Milestone Number:** 1 | ||
|
||
**Context** (optional) | ||
|
||
Please see the [README](https://github.com/ink-analyzer/ink-analyzer#readme) for additional architectural details. | ||
|
||
**Deliverables** | ||
|
||
| Number | Deliverable | Link | Notes | | ||
|---------|------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| **0a.** | License | [MIT](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-MIT) or [Apache 2.0](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-APACHE). | Dual-licensed under either of MIT or Apache 2.0 licenses at the downstream user's option. | | ||
| **0b.** | Documentation | [Project README](https://github.com/ink-analyzer/ink-analyzer#readme) and [semantic analyzer (ink-analyzer) crate README](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer#readme) on GitHub, [semantic analyzer crate (ink-analyzer) rustdoc](https://docs.rs/ink-analyzer/latest/ink_analyzer/) documentation on docs.rs and extensive inline source documentation. | The semantic analyzer crate's README is published on both [GitHub](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer#readme) and [crates.io](https://crates.io/crates/ink-analyzer). It contains instructions for installation and usage, and links to crate specific documentation on docs.rs. | | ||
| **0c.** | Testing and Testing Guide | [Testing guide](https://github.com/ink-analyzer/ink-analyzer#testing). | See notes for each deliverable below for details about unit and integration tests. In general, integration tests are found in the [tests directory of the semantic analyzer (ink-analyzer) crate](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/tests) (e.g. [tests/diagnostics](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/diagnostics.rs)) with related fixtures found in [test-utils/fixtures](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/test-utils/src/fixtures.rs) while unit tests are defined in related modules/submodules. Checking out the [parse_offset_at](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/test-utils/src/lib.rs#L55-L86) utility may be useful as it is extensively used in both the unit and integration tests. | | ||
| **0d.** | Docker | [Dockerfile](https://github.com/ink-analyzer/ink-analyzer/blob/master/Dockerfile). | | | ||
| 1. | Semantic Analyzer: Rust crate update: Quick fixes for all existing diagnostic errors and warnings | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [diagnostics module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/diagnostics.rs), [diagnostics type with quickfixes field](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/diagnostics.rs#L44-L55) and [extensive updates adding quickfixes to all diagnostics and related tests](https://github.com/search?q=repo%3Aink-analyzer%2Fink-analyzer+quickfixes&type=code). | [Extensive updates adding quickfixes to all diagnostics and related tests](https://github.com/search?q=repo%3Aink-analyzer%2Fink-analyzer+quickfixes&type=code) span the entire [diagnostics module](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/diagnostics.rs) and [entity-specific and generic submodules](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/diagnostics). Unit tests are found throughout the [entity-specific and generic submodules](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/diagnostics) of the [diagnostics module](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/diagnostics.rs). [Integration tests](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/diagnostics.rs) are found in the `tests/diagnostics` module with related fixtures in [test-utils/fixtures](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/test-utils/src/fixtures.rs). Quick fixes for diagnostics can also be manually tested using the latest version of the [VS Code Extension](https://marketplace.visualstudio.com/items?itemName=ink-analyzer.ink-analyzer). | | ||
| 2. | Semantic Analyzer: Rust crate update: ink_e2e macro support | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer) and [updates across the semantic analyzer (ink-analyzer) and intermediate representation (ink-analyzer-ir) crates to support ink_e2e macro analysis](https://github.com/search?q=repo%3Aink-analyzer%2Fink-analyzer%20ink_e2e&type=code). | [Updates span the semantic analyzer (ink-analyzer) and intermediate representation (ink-analyzer-ir) crates](https://github.com/search?q=repo%3Aink-analyzer%2Fink-analyzer%20ink_e2e&type=code) and also include updates to related unit tests (found in each relevant module e.g. [completions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/completions.rs)) and integration tests (found in the relevant module in the [tests](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/tests) directory e.g [completions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/completions.rs) and related [fixtures](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/test-utils/src/fixtures.rs)). Support for the ink_e2e macro can also be manually tested using the latest version of the [VS Code Extension](https://marketplace.visualstudio.com/items?itemName=ink-analyzer.ink-analyzer). | | ||
| 3. | Semantic Analyzer: Rust crate update: Command for creating a new ink! project with a contract stub | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [new_project function](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/codegen.rs#L42-L88) and [codegen module](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/codegen.rs). | The [new_project function](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/codegen.rs#L42-L88) function is part of the [public interface](https://docs.rs/ink-analyzer/latest/ink_analyzer/#functions) for the semantic analyzer (ink-analyzer) crate via a [re-export](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/lib.rs#L60). [Unit tests](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/codegen.rs#L95-L127) can be found in the [codegen module](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/codegen.rs). | | ||
| 4. | Semantic Analyzer: Rust crate update: Code/intent actions for inserting code stubs/snippets for relevant ink! entities | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [codegen/snippets submodule](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/codegen/snippets.rs), and [actions/item](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/actions/item.rs) and [actions/entity](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/actions/entity.rs) actions submodules. | The highest level utilities are the [item::actions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/actions/item.rs#L71-L105), [item::item_ink_entity_actions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/actions/item.rs#L257-L425), [item::root_ink_entity_actions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/actions/item.rs#L427-L450) functions in the [actions/item submodule](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/actions/item.rs). [Unit tests](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/actions/item.rs#L488-L968) can be found in the `actions/item` submodule and [integration tests](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/actions.rs) are found in the `tests/actions` module with related fixtures in [test-utils/fixtures](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/test-utils/src/fixtures.rs). | | ||
|
||
**Additional Information** | ||
|
||
Please use the [master branch](https://github.com/ink-analyzer/ink-analyzer/tree/master) for testing, another branch will be used for continued work until the completion of the review. |