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_eq
orgenerate_ordering
- Performance improvement for
RubocopBear
- Annotate objects implementing
generate_eq
orgenerate_ordering
with a new field - Fix docker image
- Implementation of the
StylintBear
- Implementation of settings for the
StylintBear
supported from the coala side - A basic merge supporting a config file for stylint
- Add
stylint
to 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-lint
to report useful messages - MarkdownBear: Add
remark-validate-links
plugin - 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=False
fromcheck_line_result_count
- Fix breakage for rubocop version > 0.47.1
- MarkdownBear: Use
- Phase 3
- Remove
pragma: no cover
fromElmLintBear
- 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.