-
Notifications
You must be signed in to change notification settings - Fork 184
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GSoC Idea: Support of Source Code Related Metrics #182
Comments
Why is Pycharm necessary? Does it have something to do with Graal or SoftwareHeritage? |
Hi @Polaris000 sorry for the late reply. Pycharm is not related to Graal or SoftwareHeritage, however is the IDE we commonly use with GrimoireLab. It has a good debug mode and allows to create a virtual env where to install external packages. Furthermore, it provides a mechanism to define a project structure (which allows to execute the source code of different packages without installing them via pip), so you can easily work on features that may require changes in several GrimoireLab components at the same time. |
Thanks for the reply! I used pycharm in 2017 and 2018, mainly for basic data analytics and backend web development with django. |
I'm interested in this Project and have been working on the microtasks. @jgbarah @valeriocos I had some doubts though.
Thanks |
Thank you @inishchith for your interest in this idea. For task 0 it is not needed to show something. WRT tasks 1 and 5, a screenshot of the configurations should be enough, something like the image below, for instance WRT 2., you can work on a private repo if it suits you. What do you think @jgbarah ? |
@valeriocos Thanks for the response 👍 |
@jgbarah @valeriocos @aswanipranjal
Thanks |
great @inishchith ! wrt 1, the idea is to take projects (e.g., github repositories) made of 1000, 10000 or more commits and benchmark the time needed by graal to process them. Ideally, this will allow to better understand where optimization efforts should be applied in the future. wrt 2. sure! if you point us to your repo (public or private), we will have a look and give feedback. |
@valeriocos Thanks for the response.
Yes, Thanks ;)
I've got a private repository as of now. Do i add mentors as collaborators? if there's any other way i could give access, please do let me know. |
yes, add us as collaborators. |
Hii, I am Sumit Kumar Jangir, I am really interested in this project and have done some microtasks as well and will try to solve all. |
welcome @sumitskj ! don't hesitate to ping us if you have some questions or need feedback on your microtasks. |
Hi! So I've been going through the tutorial. When I run Kibiter (Which I decided to use over Kibana), I get the following warning:
I am running Kibiter community-v6.1.4-3 which is based on Kibana 6.1.0. So, I decided to install ElasticSearch 6.1.0 as well. Was I supposed to install some other version? The ElasticSearch support matrix says that all 6.1.x versions of ElasticSearch are compatible with all 6.1.x versions of Kibana. Is there anything I can (or should) do to take that warning away? |
Hi @apoorvaanand1998 sorry for the late reply. Ideally ElasticSearch and Kibana should have the same versions (at least major and minor), however some time ago we decided to use Kibana 6.1.4 to benefit of some new features. You can ignore the warning, since it doesn't break anything in the platform. Btw, I have prepared some docs to get started with grimoirelab (https://github.com/chaoss/grimoirelab-sirmordred/blob/master/README.md#getting-started). Hope this helps (and any feedback is welcome). |
@valeriocos I've added all the mentors as collaborators to the repository as you suggested. Looking forward for suggestions ;) |
Hi @valeriocos, I am very interested in this project and have already completed several microtasks. |
@SunflowerPKU |
Hi @SunflowerPKU, thank you for your interest in this project. The
If you plan to use scancode, you should:
|
sorry @inishchith I have just seen your message |
@valeriocos I was doing microtask 8 and I got stuck at how to checkout at a given commit SHA. I searched graal documentation and other things but I didn't get it. Can you help? |
Hi @sumitskj Hope this helps |
Thanks it worked |
@valeriocos @jgbarah I have done the microtasks and I have also made a private repo to show what I have done. Can I add you both the mentors as collaborators to my repo, to give me feedback on any improvements that can be made. |
@sumitskj feel free to add me as collaborator, thank you |
@jgbarah @valeriocos When i was exploring the codebase, i found out that Please do let me know if there's something i missed out or there's a different way to create a dashboard. :) |
Hi @inishchith , the dashboards are created directly in Kibiter (soft-fork of Kibana) and then exported with kidash, For example, the command below allows to export a dashboard with id
For testing the platform, we currently use micro-mordred, which provides the same functionalities of mordred except for the scheduling. Thus, micro-mordred also allows to upload the dashboards related to a setup.cfg (by calling Kidash). They are loaded from Sigils, which contains all dashboards provided by GrimoireLab. If you want to know more about micro-mordred, please have a look at: https://github.com/chaoss/grimoirelab-sirmordred#micro-mordred Let me know if you have more questions :) |
@valeriocos Thanks for the response. The configuration really helped :)
Please do let me know if i got something wrong here. |
Thank you @inishchith for raising this point. I'd say that it will be discussed with mentors during the period. Probably we could start with some metrics already defined in CHAOSS (LOC, licenses), and then based on the data extracted with Graal, add more (e.g., code complexity) or refine the existing ones. We could also focus just on some category metrics, for instance only the ones about licenses and code complexity since the corresponding backends are agnostic wrt the programming languages used in a repository, thus the work done during GSoC could be applied to a wide range of projects. What do you think @jgbarah @inishchith ? |
@valeriocos Thanks for the response. This gives some clarity. And Yes, discussion with mentors would also be beneficial during the period.
Yes. I feel this can be incremental even during the GSoC period.
Thanks |
Sorry @inishchith for the late reply. I guess it is possible, any thoughts @jgbarah ? |
@valeriocos @jgbarah Can we have an issue ticket open at Graal in order to have discussions related to improvements in existing analyzers and for addition of new ones under corresponding backends, I feel that would work as a guide for future work. |
Sure @inishchith ! Thanks The issue for improvements is here: chaoss/grimoirelab-graal#18 |
@valeriocos @jgbarah can you review my proposal https://docs.google.com/document/d/1K2i_nPKQqTCFxi6mNhQGll83Mr-C4KqTaK3W2tL7Qvk/edit?usp=sharing |
I've submitted my Final Proposal for the project. |
@valeriocos @jgbarah @aswanipranjal Let me know what you think :) |
Thank you @inishchith , that's a good idea in my opinion. |
Thanks for the response @valeriocos and @aswanipranjal for a 👍 . Thanks |
A summary and details of the work carried on for this idea are available @inishchith blog. |
[ This issue for addressing questions and comments related to this GSoC idea, which is one of the ideas proposed by the CHAOSS group for the 2019 edition of GSoC.]
Description
Currently, GrimoireLab allows to produce analytics with data extracted from more than 30 tools related with contributing to Open Source development such as version control systems, issue trackers and forums. Despite the large set of metrics available in GrimoireLab, none of them relies on information extracted from source code, thus limiting the end-users to benefit of a wider spectrum of software development data.
Graal is a tool that allows to conduct customizable and incremental analysis of source code by leveraging on existing tools, and produce an output that conforms to the data that can be processed by GrimoireLab. Graal already offers analysis about code complexity, quality, dependencies, security and licensing, however currently it is not integrated with GrimoireLab.
This idea is about adding support to GrimoireLab to produce source code related metrics using Graal.
The aims of the project are as follows:
Other aims, such as enhancing Graal to support more analysis or improve existing ones are completely within scope.
The aims will require extending GrimoireLab functionality to integrate Graal.
Microtasks
For becoming familiar with GrimoireLab, you can start by reading some documentation. You can find useful information at:
Once you're familiar with Grimoirelab, you can have a look at the following microtasks.
Microtask 0:
Download PyCharm and get familiar with it (for instance, you can follow this tutorial).
Microtask 1:
Set up Perceval to be executed from PyCharm.
Microtask 2:
Create a Python script to execute Perceval via its Python interface using the Git and GitHub backends. Feel free to select any target repository, for instance the GitHub repository hosting Perceval.
Microtask 3:
Based on the JSON documents produced by Perceval and its source code, try to answer the following questions:
Microtask 4:
Create a Python script to fetch data from SoftwareHeritage using its API.
Given a target GitHub repository, the script should return a message if the repository is not available on SoftwareHeritage or the date of the last visit.
The script should rely on the endpoints: origin and visits.
Please use the Python library requests to issue requests to the SofwareHeritage API.
Microtask 5:
Set up Graal to be executed from PyCharm.
Microtask 6:
Create a Python script to execute Graal via its Python interface using the CoCom and CoLic backends. Feel free to select any target repository, for instance the GitHub repository hosting Toolkit.
Microtask 7:
Based on the JSON documents produced by Graal and its source code, try to answer the following questions:
Microtask 8:
Create a Python script to execute flake8 for a given commit of any Git repository. Given a commit SHA and a Git repository, the script should clone the repository (if it doesn't exist locally), perform a checkout based on the commit SHA and execute flake8 on that checkout. The script should return a message that either lists the errors found or "OK" if flake8 successfully ended.
Microtask 9:
Submit at least a PR to one of the GrimoireLab repositories to fix an issue, improve the documentation, etc.
Showing the work you did
If you want to show the work you did, open a GitHub repository, and upload to it:
A README.md file explaining what you did, and linking to the results (which will be in the same repository, see below). This will be the main file to show your skills and interest on the project, so try to make it organized and clear, in a way that we can easily understand what you did.
Submitting information for the application process
You must complete microtask 0, and at least 6 microtasks, in the case you're interested in this idea.
Once you completed at least one microtask, go to the governance repository and create a pull request to add yourself, your information, and a link to your repository with the completed micro-task(s) in the GSoC-interest.md file.
You are welcome to include in your repository other information that could be of interest, such as open issues or pull requests submitted to the project to which you intend to contribute during GSoC, contributions to other projects, skills, and other related information.
You must complete these things by GSoC deadline for proposals. Make sure to also submit the information required by GSoC for applicants (i.e., project proposal), linking to it from your pull request in the GSoC-interest.md file.
Getting feedback for your proposal & microtasks
Our idea is to have a look at proposals that are registered in the governance repository starting after 25th March, when students can formally apply. But if you have specific doubts, comments, or whatever, use this issue.
In general, we don't want to give advice too specific to one case, because that could give some advantage to some person with respect to the others. Answering questions and addressing comments (if you want, based on your proposal) is not a problem as long as that's done in public, hence the threads in this issue.
Asking for help
If you need help, please use the following channels:
The text was updated successfully, but these errors were encountered: