chaoss / grimoirelab

GrimoireLab: platform for software development analytics and insights
https://chaoss.github.io/grimoirelab/
GNU General Public License v3.0
476 stars 180 forks source link

GSoC Idea: Implement the Social Currency Metrics System in GrimoireLabs #288

Closed GeorgLink closed 4 years ago

GeorgLink commented 4 years ago

Idea: Implement the Social Currencyy Metrics System in Grimoire Labs

The Social Currency Metrics System (SCMS) is a qualitative data collection, processing, and measurement system that augments quantitative community management metrics already available in CHAOSS properties. Implementing the SCMS will ultimately help community leaders, power users, and other stakeholders leverage qualitative data for social listening so that they can rely less on the behaviors quantitative data tracks and more on community sentiment. The SCMS empowers community leaders to make decisions based on what community members freely share about their opinions, wants, and needs.

The SCMS shows why trends occur and identifies commonly missed pitfalls in conclusions taken from quantitative data. With an SCMS platform built natively into a CHAOSS Bitergia property, open-source communities can use it to facilitate members’ input in decisions essential to community health.

The purpose of this project is to: Build the SCMS in one of CHAOSS project’s systems that collects qualitative data from several channels, displays that information for manipulation and tagging, and outputs it to a metric dashboard such as the SCMS information page found here.

The aims of this project are to:

Difficulty: Medium to Hard based on the level of implementation (machine learning).

Requirements: Python programming. Interest in machine learning. API Development some understanding of the social scientific process and qualitative data analysis

Recommended: Other API languages, interest in science of community management and anthropological studies of online worlds, willingness to learn CHAOSS Property Structures

Mentors: Dylan Marcy (SociallyConstructed.Online), Venia Logan (SociallyConstructed.Online), Valereo (Grimoire Labs), Georg (Advising only)

Micro-tasks

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.

valeriocos commented 4 years ago

For all students interested in this idea, please comment on this issue to get in touch with the mentors. This is the main communication channel.

animeshk08 commented 4 years ago

Hello Mentors, I am Animesh Kumar. I am a student at NITK Surathkal. I would be interested in working on this idea. I have started working on the micro-tasks and will send a PR for the same soon.

valeriocos commented 4 years ago

Thank you @animeshk08 for your interest in this idea! Don't hesitate to write here if you need feedback or help!

abhiandthetruth commented 4 years ago

Hello everyone, I am currently working on the micro-tasks, will send the pr on completion. Hoping to have a good coding community ahead!

valeriocos commented 4 years ago

HI @abhiandthetruth , great! Don't hesitate to write here if you need any help/clarification/feedback, thanks!

kunakl07 commented 4 years ago

Hey everyone, I am Kunal Mehta currently in my Final Year of Computer Engineering and I really loved this project topic. I am currently working on micro-tasks and would love to contribute as much as I can to the open-source and would strive to be an active part of this organization in the future.

valeriocos commented 4 years ago

Hi @kunakl07, thank you for your interest! If you are looking for contributions, don't hesitate to have a look at the issues in the https://github.com/chaoss/grimoirelab* repos. Fixes and improvements on the grimoirelab tools documentation and tutorial are also welcomed! Finally, if you have some ideas in mind which aren't reflected in any existing issue, feel free to open a new issue. Thanks!

kunakl07 commented 4 years ago

Sure, Thank you for replying.

abhiandthetruth commented 4 years ago

@valeriocos I had an Idea in my mind. Should I make an Issue or are we free to discuss here?

valeriocos commented 4 years ago

If the idea isn't related to this issue, please open a new one in this repo, thanks!

abhiandthetruth commented 4 years ago

Sure Thanks!

abhiandthetruth commented 4 years ago

@valeriocos sorry for mentioning it here but I just wanted your opinion before creating the issue since I am new to grimoire labs. Is adding a voice query feature relevant? It will be a great feature which will help the target analysts in their research in this age of voice assistants but may not make sense if grimoire lab is not that end user oriented. Do you think it is feasible? If it is I have a detailed proposal ready. Thanks in advance :).

valeriocos commented 4 years ago

@abhiandthetruth thank you for sharing this interesting idea!

Having a voice assistant help to create queries in ElasticSearch could be useful from an end-user/analyst perspective. This could be interesting not just for GrimoireLab, but for the ElasticSearch community.

Maybe we can explore this idea (or voice assistant related ones) in one of your personal repositories. Once the implementation is mature, we can propose the inclusion of this repo in CHAOSS. WDYT?

abhiandthetruth commented 4 years ago

Glad that you liked the idea! Certainly voice interfaces are the future and the sooner we adopt it the better. I am excited to work on it but my priority is GSoC so I have to complete the microtasks. I will be working on the idea definitely. First we need to plan the structure of the software. I initially planned to use Sir Perceval as our first voice agent ;) and try to implement voice queries on him. Shall I proceed to create a fresh repo and add you as a contributor so that we can discuss there?

valeriocos commented 4 years ago

Cool! Using Perceval is a good starting point!

Yes, please create the repo, thanks! (cc @jgbarah)

abhiandthetruth commented 4 years ago

repo created and invite sent to you! @valeriocos

GeorgLink commented 4 years ago

@abhiandthetruth, it's great to see your initiative in this. Would you be okay with having your repo public and sharing the link here? It is in the spirit of open source to share publicly and discuss in the open.

abhiandthetruth commented 4 years ago

Yes of course @GeorgLink. The repo link is https://github.com/abhiandthetruth/perceval-voice. I have opened an issue with a short description of the challenges I think we will face, the resources needed and to discuss the basic structure of the initial software. Everyone is welcome to contribute :).

GeorgLink commented 4 years ago

Comment moved to: https://github.com/abhiandthetruth/perceval-voice/issues/2 to continue conversation about perceval-voice there.

abhiandthetruth commented 4 years ago

@valeriocos there seems to be a problem with search guard permission in my machine. I can't create indexes due to a 403. I have enriched it though, and the indices are showing up during creation of index. But when I click create index button nothing happens at the frontend. Following are the logs for the same.

elasticsearch_1 | [2020-03-02T18:41:15,716][INFO ][c.f.s.c.PrivilegesEvaluator] No index-level perm match for User [name=readall, roles=[readall], requestedTenant=null] [IndexType [index=.kibana, type=doc]] [Action [[indices:data/write/index]]] [RolesChecked [sg_own_index, sg_readall]]

elasticsearch_1 | [2020-03-02T18:41:15,716][INFO ][c.f.s.c.PrivilegesEvaluator] No permissions for {sg_own_index=[IndexType [index=.kibana, type=doc]], sg_readall=[IndexType [index=.kibana, type=doc]]}

kibiter_1 | {"type":"response","@timestamp":"2020-03-02T18:41:15Z","tags":[],"pid":1,"method":"post","statusCode":403,"req":{"url":"/api/saved_objects/index-pattern?overwrite=false","method":"post","headers":{"host":"localhost:5601","user-agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0","accept":"application/json, text/plain, /","accept-language":"en-US,en;q=0.5","accept-encoding":"gzip, deflate","referer":"http://localhost:5601/app/kibana","content-type":"application/json;charset=utf-8","kbn-version":"6.1.4-1","content-length":"59","connection":"keep-alive"},"remoteAddress":"172.17.0.1","userAgent":"172.17.0.1","referer":"http://localhost:5601/app/kibana"},"res":{"statusCode":403,"responseTime":25,"contentLength":9},"message":"POST /api/saved_objects/index-pattern?overwrite=false 403 25ms - 9.0B"}

Also there appears to be an ssl error whenever I try to access the elastic search server. I am able to access it though after bypassing the warning. Please help! :(

snack0verflow commented 4 years ago

@abhiandthetruth did you try https while accessing the elasticsearch server? This is required if you elasticsearch is of the secured version.

abhiandthetruth commented 4 years ago

Yup!

On Tue, Mar 3, 2020, 12:34 AM Abid Abdullah notifications@github.com wrote:

@abhiandthetruth https://github.com/abhiandthetruth did you try https while accessing the elasticsearch server? This is required if you elasticsearch is of the secured version.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/chaoss/grimoirelab/issues/288?email_source=notifications&email_token=ALNBECKX3O2TLK5V4KNTWCTRFP7KJA5CNFSM4KQKEER2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENQRD4A#issuecomment-593564144, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALNBECPIPPQ4YO4EIULAD4DRFP7KJANCNFSM4KQKEERQ .

snack0verflow commented 4 years ago

@abhiandthetruth hmm Try increasing the virtual memory of elasticsearch: sudo sysctl -w vm.max_map_count=262144 This is valid only for the current session.

abhiandthetruth commented 4 years ago

@snack0verflow ya I have done that, that is why I was able to enrich it. The elastic search server can be accessed over https in my machine. I think it's an issue with search guard. But that was one of the problem I also encountered during my setup. Maybe we should mention it in the readme? Thanks for helping :)

abhiandthetruth commented 4 years ago

@snack0verflow are you using the same docker-compose.yml file or have you tweaked it? Is everything working fine in your machine? Can you try curl -XGET https://admin:admin@localhost:9200 and tell me the response?

snack0verflow commented 4 years ago

@abhiandthetruth I got the same "dictionary" result that shows up on my browser. Just added -k to the curl command. Yes I am using the same yml.

abhiandthetruth commented 4 years ago

does it give an ssl error without -k?

vchrombie commented 4 years ago

Hi @abhiandthetruth Not sure if this would help, but just try with just http everywhere instead of https.

snack0verflow commented 4 years ago

Not an error but certificate problem curl: (60) Sorry I'm typing on my phone. My PC is offline.

abhiandthetruth commented 4 years ago

@vcrombie using http, there is a connection was reset error so can't do that. Thanks :)

abhiandthetruth commented 4 years ago

Not an error but certificate problem curl: (60) Sorry I'm typing on my phone. My PC is offline.

Yes I am also having the same problem. I was just verifying whether this was the root cause, apparently it wasn't ! Thanks :)

snack0verflow commented 4 years ago

@abhiandthetruth hmm I got a 403 as well, don't think it happened last time I tried creating index. @valeriocos Here is the response to the UI payload if it helps:

{"message":"no permissions for [indices:data/write/index] and User [name=readall, roles=[readall], requestedTenant=null]: [security_exception] no permissions for [indices:data/write/index] and User [name=readall, roles=[readall], requestedTenant=null]","statusCode":403,"error":"Forbidden"}
valeriocos commented 4 years ago

Sorry for the late reply!

I'm using the master branch of all components (note that a PR on mordred was just merged: https://github.com/chaoss/grimoirelab-sirmordred/pull/412)

https://github.com/chaoss/grimoirelab/issues/288#issuecomment-593557169 https://github.com/chaoss/grimoirelab/issues/288#issuecomment-593584099

@snack0verflow @abhiandthetruth this message generally appears when you try to create an index pattern but you are not logged in Kibana (the login button is on the bottom left corner).

Can you write here the steps you did, so I can try to reproduce the behavior you report? Thanks

snack0verflow commented 4 years ago

@valeriocos logging in to kibana worked. Need to document this in micro-mordred?

abhiandthetruth commented 4 years ago

@snack0verflow are you able to execute the study 'enrich_areas_of_code:git'. The following error occurs while execution of mine,

2020-03-04 02:10:03,461 [git] Problem executing study enrich_areas_of_code:git, RequestError(400, 'search_phase_execution_exception', 'No mapping found for [metadata__timestamp] in order to sort on')
2020-03-04 02:10:03,462 RequestError(400, 'search_phase_execution_exception', 'No mapping found for [metadata__timestamp] in order to sort on')

while running. The ui payload shows a RemortTransportationException, caused by a QueryShardException.

abhiandthetruth commented 4 years ago

And yes @valeriocos the 403 is solved by logging in. I think the user should be notified to login if that 403 is recieved by the frontend.

valeriocos commented 4 years ago

https://github.com/chaoss/grimoirelab/issues/288#issuecomment-594161173

@abhiandthetruth the error should pop up when the input index of the study is empty

@abhiandthetruth @snack0verflow it's a good idea to document the different problems you are having!

@snack0verflow can you add the section Troubleshooting to the mordred README before https://github.com/chaoss/grimoirelab-sirmordred#micro-mordred ? In this section you can add an entry to comment about https://github.com/chaoss/grimoirelab/issues/288#issuecomment-593567846

Once this new section is created, @abhiandthetruth you could add 2 more entries to target:

WDYT?

abhiandthetruth commented 4 years ago

Definitely. We can name the section 'Debugging' @valeriocos @snack0verflow.

On Wed, Mar 4, 2020, 2:46 PM valerio notifications@github.com wrote:

288 (comment)

https://github.com/chaoss/grimoirelab/issues/288#issuecomment-594161173

@abhiandthetruth https://github.com/abhiandthetruth the error should pop up when the input index of the study is empty

@abhiandthetruth https://github.com/abhiandthetruth @snack0verflow https://github.com/snack0verflow it's a good idea to document the different problems you are having!

@snack0verflow https://github.com/snack0verflow can you add the section Troubleshooting to the mordred README before https://github.com/chaoss/grimoirelab-sirmordred#micro-mordred ? In this section you can add an entry to comment about #288 (comment) https://github.com/chaoss/grimoirelab/issues/288#issuecomment-593567846

Once this new section is created, @abhiandthetruth https://github.com/abhiandthetruth you could add 2 more entries to target:

WDYT?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/chaoss/grimoirelab/issues/288?email_source=notifications&email_token=ALNBECN7A4736DZKSQSJUS3RFYL6RA5CNFSM4KQKEER2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENW7JRA#issuecomment-594408644, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALNBECKLXZHOI3RVL5HLHDLRFYL6RANCNFSM4KQKEERQ .

valeriocos commented 4 years ago

I'm fine with any name, @abhiandthetruth @snack0verflow feel free to decide one, thanks!

vvijayalakshmi21 commented 4 years ago

Hi all, I am an Outreachy applicant, looking to contribute to this project. To get started, I have to follow the micro tasks in order. Is that right?

abhiandthetruth commented 4 years ago

I'm fine with any name, @abhiandthetruth @snack0verflow feel free to decide one, thanks!

Sorry for late response, since @snack0verflow seems to be busy at the time, I will be proceeding with the addition. Also I missed that you had already named the section 😅. Sorry for the override @valeriocos :). Troubleshooting is better.

valeriocos commented 4 years ago

ok thanks @abhiandthetruth

valeriocos commented 4 years ago

https://github.com/chaoss/grimoirelab/issues/288#issuecomment-595588245

Hi @vvijayalakshmi21, thank you for your interest in this idea. You don't have to follow an order to complete the microtasks.
Don't hesitate to write if you have more questions or need feedback.

ferculell commented 4 years ago

Hi everyone! I'm an Outreachy applicant from Argentina and, as my main academic background is in Social Sciences, I find this project very interesting. I would love to contribute to it. I will start with the micro-tasks. See you!

valeriocos commented 4 years ago

Hi @ferculell! if you need any help or clarification, please write in this issue.

animeshk08 commented 4 years ago

Hi! @valeriocos I have some technical doubts regarding this project. Is there a place where I can ping you (maybe an IRC or mail id). Sorry, have a bunch of doubts so I don't think this is the appropriate place to mention them :/

valeriocos commented 4 years ago

Sure @animeshk08 , IRC is perfect (I can be there for the next hour), otherwise by email (valcos@bitergia.com)

abhiandthetruth commented 4 years ago

@valeriocos is the kidash argument --elastic_url-enrich changed to --elastic_url bcoz trying the former gave unrecognized error whereas the later works fine. The former is also not mentioned in the command kidash --help but the tutorials are using it freely. Is it a change in development?

abhiandthetruth commented 4 years ago

And also the tutorial sample mordred config still contains the bots_names param.

valeriocos commented 4 years ago

@abhiandthetruth probably the doc hasn't been updated. Can you submit two PRs (one for https://github.com/chaoss/grimoirelab/issues/288#issuecomment-596189978 and one for https://github.com/chaoss/grimoirelab/issues/288#issuecomment-596192244)? thanks