• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# sig_programanalysis
2
3English | [简体中文](./README.md)
4
5## SIG Group Work Objectives and Scope
6
7### Work Objectives
8
9* Sig_programanalysis aims to carry out program analysis technology exploration, key technology identification, and competitiveness building for OpenHarmony systems and apps, striving to become the gathering place for OpenHarmony system and app analysis capabilities and an incubation place for related engineering tools.
10
11* Sig_programanalysis will build a basic program analysis framework for OpenHarmony apps, and subsequently based on it to provide application developers with out-of-the-box defect scanning and analysis tools, making it possible to automatically vet code for scenarios such as IDE, CI/CD pipelines, etc.
12
13### Work Scope
14
15* Responsible for building and maintaining the key technology map of program analysis, as well as the decomposition of functional modules in the field, interface definition, and maintenance management.
16
17* Responsible for the architecture design, open source development, and project maintenance of projects related to program analysis.
18
19
20### Projects
21
22Sig_programanalysis currently incubates the following projects. Everyone is welcome to participate (you can apply to participate in the co-construction of existing projects, or you can apply to create a new program analysis project).
23
24
25* ArkAnalyzer:
26The Static Analysis Framework for ArkTS-based OpenHarmony Apps.
27
28* ArkCheck:
29Checking OpenHarmony Apps for Potential Code-level Defects
30
31
32## SIG Members
33
34
35### Leader
36
37- [lilicoding](https://gitee.com/lilicoding)
38
39
40### Committers
41- [kubigao](https://gitee.com/kubigao)
42- [yifei-xue](https://gitee.com/yifei_xue)
43- [kubrick-hjh](https://gitee.com/kubrick-hjh)
44- [speed9](https://gitee.com/speeds)
45- [bbsun](https://gitee.com/bbsun)
46- [chn](https://gitee.com/chn)
47- [Elouan](https://gitee.com/Elouan)
48- [Rnine](https://gitee.com/Rnine)
49- [workspace_cb](https://gitee.com/workspace_cb)
50- [longyuC](https://gitee.com/longyuC)
51- [xyji95](https://gitee.com/xyji95)
52- [xulingyun-red](https://gitee.com/xulingyun-red)
53
54
55### Meetings
56 - Meeting Time: Bi-weekly meeting, Thursday 19:30 Beijing time
57 - Meeting Application:[Link](https://shimo.im/forms/B1Awd60W7bU51g3m/fill)
58 - Meeting Link: Welink or Others
59 - Meeting Notification: [Subscribe to](https://lists.openatom.io/postorius/lists/dev.openharmony.io) mailing list dev@openharmony.io for the meeting link
60 - Meeting Summary: [Archive link address](https://gitee.com/openharmony-sig/sig-content)
61
62### Contact
63
64- Mailing list: [dev@openharmony.io](https://lists.openatom.io/postorius/lists/dev@openharmony.io/)
65
66***
67# ArkAnalyzer: Static Program Analysis Framework for the ArkTS Language
68## Develope environment setup
691. [Download Visual Studio Code](https://code.visualstudio.com/download) or other IDEA;
702. [Download Node.js](https://nodejs.org/en/download/current) and install it. Node.js is a runtime environment for JavaScript, which comes with its own package manager, npm.
713. Install Typescript via npm:
72```shell
73npm install -g typescript
74```
754. Install dependency libraries
76```shell
77cd arkanalyzer
78npm install
79```
805. [Optional] Generate the latest API documentation, which will be created at docs/api_docs.
81```shell
82npm run gendoc
83```
84
85## Docmentations
86
871. ArkAnalyzer API docmentations,refer to the [link](https://gitcode.com/openharmony-sig/arkanalyzer/wiki/globals.md).
88
89## Commit codes
90Follow the code repository standards of Openharmony-Sig, refer to the [link](docs/HowToCreatePR.md#english)
91
92## Debug
93Modify the `args` parameter array in the debug configuration file `.vscode/launch.json` to the path of the test file you want to debug, and then start the debugging process.
94
95## Add test cases
96Place all new test codes in the `tests` directory. Corresponding sample code and other resource files should be placed in the ``tests\resources` directory, and create different folders for each testing scenario.