The coding period is over and this blog post summarizes the work done by me during the short span of 2 months(June 1 - August 23). I would like to express my gratitude to coala for giving me the opportunity to work on this project and my mentor @Makman2. A big shoutout to Google for promoting the OSS (Open Source Software) culture.
The coolest part was that I could actually run the InvalidLinkBear to make sure that all the links were working.
Work Summary
The milestones achieved were :
- Community Bonding
- Designing the new testing API yielding useful results
- Trying out all the linters manually
- Updating the projects page
- Phase 1
- Add doctests for
generate_ordering - Add abstract base class to group classes annotated with
generate_eqorgenerate_ordering - Performance improvement for
RubocopBear - Annotate objects implementing
generate_eqorgenerate_orderingwith a new field - Fix docker image
- Implementation of the
StylintBear - Implementation of settings for the
StylintBearsupported from the coala side - A basic merge supporting a config file for stylint
- Add
stylintto docker - Implementation of the
TextLintBear - Add textlint to docker
- Complete the implementation of the testing API yielding useful results
- Add doctests for
- Phase 2
- MarkdownBear: Use
remark-lintto report useful messages - MarkdownBear: Add
remark-validate-linksplugin - MarkdownBear: Replace
markdown_horizontal_rule - Implementation of the
TravisLintBear - Implementation of the
PugLintBear - Implementation of the
ArtisticStyleBear - Add all the bears implemented during PHASE 2 to docker
- Design and implement the testing API to yield stderr and stdout
- execute_bear: Improve AssertionError message generation
- LocalBearTestHelper: Remove
check_order=Falsefromcheck_line_result_count - Fix breakage for rubocop version > 0.47.1
- MarkdownBear: Use
- Phase 3
- Remove
pragma: no coverfromElmLintBear - TravisLintBear: Check for internet connection
- Fix unexpected keyword argument in
new_process_output(...) - Introduce virtual base class for linters and use it to improve the check inside
LocalBearTestHelper - Implementation of the
HttpoliceBear - Implementation of the
CSSCombBear - Implementation of the
HTMLHintBear - Add all the bears implemented during PHASE 3 to docker
- Remove
- Conceptually, this milestone turned out to be quite difficult, but basic improvement for that topic has been approved. (See this issue).
Repository : coala-bears
| Issue reference | Pull Request | Commit shortlog | Commit hash | Status |
|---|---|---|---|---|
| #754 | #1610 | bears/stylus: Add StylintBear | 47d3956 | Merged |
| #1795 | #1796 | StylintBear: Implement settings | e4a9d34 | Merged |
| #1839 | #1841 | RubocopBear: Optional generation of config_file |
45dfb62 | Merged |
| #1576 | #1597 | bears/general: Add TextLintBear | d09c8f9 | Merged |
| #294 | #1879 | bears/yaml: Add TravisLintBear | 2f004bc | Merged |
| #1548 | #1890 | RuboCopBear: Fix CI breakage for version > 0.47.1 | d35b120 | Merged |
| #1907 | #1908 | MarkdownBear: Replace markdown_horizontal_rule |
e2cf115 | Merged |
| #924 | #1919 | MarkdownBear: Add validate-links plugin |
f68bd91 | Merged |
| - | #1919 | MarkdownBear: Rename test classname | 2a21048 | Merged |
| - | #1919 | MarkdownBear: Rename remark_configs_plugins |
d83fe5f | Merged |
| - | #1919 | MarkdownBear: Improve result message | 71f6bc5 | Merged |
| - | #1919 | MarkdownBear: Rename remark_configs_settings |
d6100ce | Merged |
| #290 | #1936 | bears/pug: Add PugLintBear | 1d31827 | Merged |
| #388 | #1882 | bears/c_languages: Add ArtisticStyleBear | 65d6304 | Merged |
| #926 | #1942 | MarkdownBear: Add remark-lint settings |
3dc08bf | Merged |
| - | #1958 | requirements.txt: Update coala | 04f490c | Merged |
| #634 | #1957 | bears/css: Add CSSCombBear | 2bef3df | Merged |
| #596 | #1962 | bears/hypertext: Add HTTPoliceLintBear.py | 40dd5d4 | Merged |
| #635 | #1987 | bears/hypertext: Add HTMLHintBear | b49553a | Merged |
| #1996 | #1997 | ElmLintBear: Remove pragma: no cover |
0a25352 | Merged |
| #1978 | #1982 | TravisLintBear: Check for internet connection | f51e54d | Merged |
Repository : coala
| Issue reference | Pull Request | Commit shortlog | Commit hash | Status |
|---|---|---|---|---|
| #4418 | #4417 | execute_bear: Improve AssertionError message |
0edf040 | Merged |
| #4451 | #4453 | LocalBearTestHelper: Remove check_order |
0aa077 | Merged |
| #455 | #4554 | Show stdout and stderr for linter bears |
bbb99f9 | Merged |
| #4576 | #4579 | LocalBearTestHelper: Add **process_output_kwargs | 2868324 | Merged |
| #4594 | #4595 | coalib/abstractions: Add LinterClass.py | 9f279e4 | Merged |
| #4594 | #4595 | Introduce isinstance(cls, LinterClass) |
2816dc6 | Merged |
| #4302 | #4310 | LocalBearTestHelper: Add assertObjectsEqual |
7f89dca | Approved |
Repository : docker-coala-base
| Issue reference | Pull Request | Commit shortlog | Commit hash | Status |
|---|---|---|---|---|
| #181 | #185 | Remove uninstallation of packages not installed | 79a0da1 | Merged |
| #184 | #185 | Install packages libxml2-devel and libxslt-devel | 17c883d | Merged |
| #182 | #185 | Use a lower version of node (nodejs6) | 51fb17d | Merged |
| #213 | #208 | Add dependency astyle |
ee1fbda | Merged |
Conclusion
Many new high quality bears along with an exhaustive documentation were merged and are usable. There were workflow improvements for developers regarding tests and bear writing. Developers will now be able to write better bears along with more robust tests. Although GSoC has ended, my contributions for OSS won’t stop. These 2 months have evolved my life and I’ve learnt so many things that would definitely help me grow as a developer.
