chaoss / grimoirelab-graal

A Generic Repository AnALyzer
GNU General Public License v3.0
21 stars 62 forks source link

[analyzers] Evaluate the integration of Sloc Cloc and Code (scc) #62

Closed valeriocos closed 4 years ago

valeriocos commented 5 years ago

Sloc Cloc and Code (scc) is a tool similar to cloc, sloccount and tokei. It is able to count lines of code, blank lines, comment lines from many programming languages. Its goal is to is to be the fastest code counter possible, but also perform COCOMO calculation like sloccount and to estimate code complexity similar to cyclomatic complexity calculators. (cc @jgbarah)

inishchith commented 5 years ago

@valeriocos Thanks for raising this. We can try and evaluate (scc) against lizard( which is currently in place).

valeriocos commented 5 years ago

yes, sure @inishchith ! we can try to integrate it as another analyzer

sarthak0906 commented 5 years ago

I would like to work on this if this issue is still open

inishchith commented 5 years ago

Hi @sarthak0906, I've actually worked on this issue and would be opening the PR in some time. (sorry for not updating the thread). Please feel free to look around ;)

sarthak0906 commented 5 years ago

ok no problem

valeriocos commented 5 years ago

Hi @sarthak0906 thank you for you interest! if you are looking for contributions, would you be interested in preparing a backend for sonarqube or other source code analysis tools?

sarthak0906 commented 5 years ago

@valeriocos yes I would love to contribute

sarthak0906 commented 5 years ago

@valeriocos can you please tell once again which project are you referring to, can't find the mentioned project in the org

valeriocos commented 5 years ago

Great @sarthak0906!

The backend could be integrated to Perceval. An initial version of the backend is available at https://github.com/crossminer/scava/blob/master/web-dashboards/perceval-scava/perceval/backends/sonarqube/sonarqube.p, but it should be improved since (i) it's not retrieving historical data, (ii) it doesn't have tests.

A good starting point is to have a look at the API, and in particular at: https://sonarcloud.io/web_api/api/measures/search_history

Let me know how do you want to proceed, for instance you can try to improve the backend after checking the existing backends in perceval, we can work together on one of your branches, etc.

It may be useful to read a paper about Perceval to get an overview of what it does.

Thanks!

sarthak0906 commented 5 years ago

I would love to contribute to it, Just had a question, why didn't you make a new repo for it. Also, I couldn't figure out what framework are you using. Please assign me a task to start the development, so that I don't mess someone else working.

valeriocos commented 5 years ago

Great!

Please fork the repo https://github.com/chaoss/grimoirelab-perceval in your GitHub profile. Then clone the forked repo in your machine and execute the following command in the directory where you cloned it

> git remote add upstream https://github.com/chaoss/grimoirelab-perceval

In this way, you can be able to keep your fork updated with the upstream repo by doing:

> git fetch upstream
> git rebase upstream/master

If you want to work on a new feature (such as creating a new backend in Perceval), you have just to create a branch (git checkout -b <name-of-the-new-branch> master) and write your code there. If you want to create a pull request, you have just to push your code (git push origin). GitHub will automatically detect it, and show up a button to create a pull request (shown on the upstream repo).

WRT the framework used, we don't use any of it, just pure python3 and Perceval concepts. If you want to read about the main concepts of Perceval and/or Graal, feel free to read the papers:

Instead of assigning a task, I would ask you to open an issue on Perceval about creating a backend for a new data source (e.g., sonarqube, [zulip](https://zulipchat.com/api/, a csv, or whatever you would like to integrate). Please have a look at the backends already implemented (https://github.com/chaoss/grimoirelab-perceval/tree/master/perceval/backends/core)

Thanks for your time @sarthak0906