Skip to content

Commit f19f787

Browse files
committed
Add result reporter tool project
Closes #555
1 parent 0aee8f7 commit f19f787

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

_projects/result-reporter-tool.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
---
2+
collaborating_projects:
3+
- coala
4+
desc: "Implement a result reporter tool that converts linter/bear results
5+
into various formats"
6+
difficulty: medium
7+
initiatives:
8+
- GSoC
9+
issues:
10+
- "https://github.com/coala/projects/issues/555"
11+
- "https://github.com/coala/coala/issues/2757"
12+
- "https://github.com/coala/coala/issues/5910"
13+
- "https://gitlab.com/coala/coala-json/issues/3"
14+
markdown: result-reporter-tool.md
15+
mentors:
16+
- li-boxuan
17+
name: "Result Reporter Tool"
18+
requirements:
19+
- "The applicant should have at least one non-trivial patch merged to
20+
coala or coala-bears."
21+
- "The applicant should be familiar with Python."
22+
- "Familiarity with continuous integration tools (e.g. Jenkins) is a plus."
23+
tags:
24+
- Core
25+
- Linter
26+
- CI
27+
---
28+
29+
Apart from common CLI output, coala provides json format output. However, there
30+
are other formats which are useful for reporting tests and failures, but coala
31+
does not support at the moment.
32+
33+
This is not only for coala, result format inconsistencies has been a problem for
34+
a long time. Converting the static analysis results into a test results format
35+
has been done a few times, such as early PEP8 plugins to Jenkins. The mapping
36+
isn't exact, but the benefits of using the test result format is tight
37+
integration with various systems.
38+
39+
Most commonly used is JUnit format. CircleCI can accept
40+
[this format](https://circleci.com/docs/2.0/collect-test-data). AppVeyor can
41+
receive test results in [XML format](https://www.appveyor.com/docs/running-tests/#uploading-xml-test-results).
42+
Other formats include [TAP](https://testanything.org/),
43+
[Clover](http://openclover.org/doc/manual/latest/ant--clover-report.html),
44+
There are some systems, such as Phabricator, which have a
45+
[custom format](https://github.com/facebook/infer/issues/673) they expect.
46+
47+
The applicant is welcomed to propose additional ideas around format topic, to
48+
improve coala workflow, continuous integration workflow or linters workflow.
49+
For example, pulling the coala results from CI could be a way to inform newbies
50+
of the style problems with their PRs. Pushing the unit test results as XML to
51+
the CI (using combination XML files if necessary). It might also provide
52+
linters with a solid set of classes and output formats for their CLI, letting
53+
them focus on linting algorithms.
54+
55+
#### Milestones
56+
57+
##### PREPARATION/BONDING
58+
59+
- The applicant has created and merged a cEP for this project.
60+
- The applicant has done research on different formats, including JUnit,
61+
checkstyle, TAP, Language Server Protocol (LSP), etc.
62+
- The applicant has done research on different formats required by CI
63+
tools and platforms, including Jenkins, Circle CI, Appveyor, Phabricator, etc.
64+
65+
##### CODING PHASE 1
66+
67+
- A tool that converts JSON results to JUnit format is implemented, tested,
68+
and documented.
69+
- Test and add doc regarding how to upload coala results into Circle CI and
70+
Appveyor.
71+
- Add infrastructure (CI, doc) to coala-json repository, where most part of
72+
this project will probably reside.
73+
74+
##### CODING PHASE 2
75+
76+
- Extend the tool to support different formats, including Checkstyle format,
77+
TAP, Clover.
78+
- Test and add doc regarding how to upload coala results into Jenkins and
79+
Phabricator.
80+
- Import converters into coala main repository to improve coala output mode.
81+
82+
##### CODING PHASE 3
83+
84+
- Provide various linters with a solid set of classes and output formats for
85+
their CLI.
86+
- Handle JSON/xml reports from linters before feeding into linter bears.

0 commit comments

Comments
 (0)