Skip to content

Instantly share code, notes, and snippets.

@satwikkansal
Last active March 29, 2019 13:14
Show Gist options
  • Save satwikkansal/b72265a0d0ec678b9291ea8e21a398ec to your computer and use it in GitHub Desktop.
Save satwikkansal/b72265a0d0ec678b9291ea8e21a398ec to your computer and use it in GitHub Desktop.
Work Report for Google Summer Of Code 2017
Orgainization coala
Project name Enhance coala-quickstart
Primary repository coala-quickstart
Project Mentors Adhityaa, Zatreanu Adrian-Gabriel
Project Page Summer of Code Project Page
Status Completed

Project Abstract

coala is a modular and language-agnostic tool for performing static code analysis. coala-quickstart is a tool designed to do all the boilerplate work for coala and help users to quickly get started with coala.

Major tasks of the project:

  • Developing a framework for extracting Infromation of interest from different kinds of project files.

  • Extracting useful information from the following files:

    • Gruntfile.js
    • .editorconfig
    • package.json
    • Gemfile

    More information about each of the files can be found here

  • Utilizing the information extracted from project files to

    • Suggest static code analysis routines to users
    • Automatically identify values required for settings in .coafile (coala's configuration file)
    • Detect inconsistencies among files
  • Recommending and Filtering static code analysis routines to users based on:

    • Capabilities selected by the users.
    • A curated list of static code analysis routines.
    • Insights about static code analysis tools already used by the project.
  • Improving the existing CLI by

    • Adding auto-complete feature for project files
    • Allowing flexibility in user input (Example: "yeah!!", "obviously", etc will be automatically mapped to True in boolean-type inputs)
    • Validating user inputs
  • Adding Continuous Integration support for Windows.

Statistics

Lines added 6092
Lines removed 409
Files changed 130
Total commits 52

Commits (in chronological order)

Commit SHA Date Shortlog Files Changed Lines added Lines Removed
eb4f194 Thu, 25 May 2017 cEP 9: Extract and use information 1 209 0
de552a2 Sun, 04 Jun 2017 CI: Add Travis 1 29 0
a33c3b1 Sun, 04 Jun 2017 info_extraction: Add Info class 3 59 0
7ae3630 Sun, 04 Jun 2017 info_extraction: Add InfoExtractor class 4 268 0
f9bd418 Sun, 04 Jun 2017 Project.py: Remove OS specific doctest 1 0 2
e34a334 Thu, 08 Jun 2017 tests/FileGlobs.py: Normalize case for path 1 15 9
d25f3ca Fri, 09 Jun 2017 CI: Add appveyor 2 90 0
b82cd81 Mon, 12 Jun 2017 Info.py: Add extractor field 4 32 4
478aa44 Wed, 14 Jun 2017 Info.py: Validate value type 2 28 8
e43bcd5 Sat, 17 Jun 2017 InfoExtractor: Add file name field to parse method 2 30 7
060d3ff Sat, 17 Jun 2017 InfoExtractor: Validate supported files 3 75 16
5ffd9b8 Sat, 17 Jun 2017 info_extraction: Add Info classes 1 58 0
299c5e2 Sat, 17 Jun 2017 info_extractors: Add package.json extractor 3 145 0
d23329a Sun, 18 Jun 2017 info_extractors: Extract info from Gemfile 3 103 0
b9e9746 Sun, 18 Jun 2017 InfoExtractor: Validate information kind 2 45 0
a1f9dc0 Tue, 20 Jun 2017 info_extraction: Add Info classes 1 50 0
37573da Tue, 20 Jun 2017 info_extractors: Add editorconfig extractor 2 261 0
7a3a8d3 Tue, 20 Jun 2017 Info.py: Validate value with type signature 3 50 5
7ac90f0 Thu, 22 Jun 2017 .coafile: Add test files to default section 8 61 54
1d16901 Sun, 25 Jun 2017 InfoExtractor: Add spec_references field 2 15 0
a348113 Sun, 25 Jun 2017 Info: Add example_values field. 2 9 2
8d3f13e Tue, 27 Jun 2017 cEP-0014: Generate relevant coafile sections 1 767 0
2d8274c Tue, 27 Jun 2017 cEP-009: Change status 1 1 1
396d1e0 Fri, 30 Jun 2017 Inforamtion: Add linter Info classes 1 31 0
6cdfb37 Sun, 02 Jul 2017 requirements.txt: Add pyjsparser 1 2 1
ddf0779 Mon, 03 Jul 2017 info_extractor/Utilities: Add search functions 2 208 0
b40f50c Mon, 03 Jul 2017 info_extractors: Extract info from Gruntfile.js 2 511 0
3c306db Thu, 13 Jul 2017 TestUtilities: Fix file generation 1 7 2
cdc38eb Thu, 13 Jul 2017 InfoCollector: Collect info from project files 2 145 0
1950044 Thu, 13 Jul 2017 InfoScope: Implement InfoScope class 2 222 0
5462996 Thu, 13 Jul 2017 InfoMapping: Add mappings for editorconfig 1 40 0
f199a54 Thu, 13 Jul 2017 Settings: Autofill setting values 7 432 1
82dfddf Fri, 14 Jul 2017 Bears: Suggest bears using dependecy info 8 434 33
88f6996 Fri, 14 Jul 2017 Bears.py: Add bears based on capabilties 3 173 5
02369a9 Fri, 14 Jul 2017 Bears.py: Ask users for capabilities 5 177 34
ed283f7 Sun, 23 Jul 2017 SectionFilling: Allow custom fill_section method 1 54 41
3f197eb Sun, 23 Jul 2017 requirements.txt: Upgrade coalib version 1 1 1
4ceaf2f Sat, 29 Jul 2017 coala_quickstart: Fix errors due to logging 1 3 0
cd7a7dd Sat, 05 Aug 2017 SettingsFilling: Validate settings value type 3 130 19
485b28b Sat, 05 Aug 2017 SettingsFilling: Flexible boolean input 2 55 1
4802812 Sat, 05 Aug 2017 SettingsFilling: Autofill language setting 3 30 1
c22b630 Sat, 05 Aug 2017 Bears: Silence .coafile not found warnings 1 2 1
9de6241 Sat, 05 Aug 2017 ConfigurationGathering: Silence warnings 2 39 7
4520477 Mon, 07 Aug 2017 requirement.txt: Pin lxml version 1 2 0
58b55c3 Wed, 09 Aug 2017 FilePathCompleter: Implement autocompletion 2 110 0
462beb3 Wed, 09 Aug 2017 requirements.txt: Upgrade coala-utils version 1 1 1
eb5053f Thu, 10 Aug 2017 CLI: Complete file paths with Tab 3 33 9
a253a54 Mon, 14 Aug 2017 EditorconfigExtractor: Update scope field 3 65 99
2a1aeed Wed, 16 Aug 2017 InfoMapping: Check for section files 7 601 27
7d357ec Wed, 16 Aug 2017 Bears.py: Suggest bears based on Gruntfile.js 4 153 15
48bf6e4 Sun, 20 Aug 2017 FilePathcompleter: Use pyreadline for windows 6 24 3
d6d4e93 Tue, 22 Aug 2017 setup.py: Add missing params 1 7 0

Milestones

Progress blog posts (in chronological order)

Title URL
My GSoC story begins https://satwikkansal.wordpress.com/2017/05/08/my-gsoc-story-begins/
My GSoC project overview https://satwikkansal.wordpress.com/2017/05/15/my-gsoc-project-overview/
After two weeks into Community Bonding https://satwikkansal.wordpress.com/2017/05/20/after-two-weeks-into-community-bonding/
Final Week, community bonding https://satwikkansal.wordpress.com/2017/05/29/final-week-community-bonding/
GSoC Update: Mid of Phase 1 https://satwikkansal.wordpress.com/2017/06/11/gsoc-update-mid-of-phase-1/
GSoC: Final Week of Phase 1 https://satwikkansal.wordpress.com/2017/06/22/gsoc-final-week-of-phase-1/
Marking the end of GSoC Phase 1 https://satwikkansal.wordpress.com/2017/06/26/marking-the-end-of-gsoc-phase-1/
GSoC: Mid of Phase 2 update https://satwikkansal.wordpress.com/2017/07/09/gsoc-mid-of-phase-2-update/
GSoC: Final week of Phase 2 https://satwikkansal.wordpress.com/2017/07/24/gsoc-final-week-of-phase-2/
GSoC – Mid of Phase 3 https://satwikkansal.wordpress.com/2017/08/10/gsoc-mid-of-phase-3/
GSoC - The final Week! https://satwikkansal.wordpress.com/2017/08/23/gsoc-the-final-week/

Working Project

Checkout the latest release of coala-quickstart.

Edit: The summary of my work is also published at http://projects.coala.io/GSoC/2017/StatusReport/satwikkansal

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment