Skip to content
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

cEP-0020: Newcomer metrics and Gamification system #150

Merged
merged 1 commit into from May 28, 2018

Conversation

@sks444
Copy link
Contributor

commented May 13, 2018

Closes #133

(continues from #131)

cEP-0020.md Outdated
- 5 to 10
- 10 and beyond
- Following are the types of comments that could be tracked:
- Issue comments

This comment has been minimized.

Copy link
@gitmate-bot

gitmate-bot May 13, 2018

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpmbc69dpu/cEP-0020.md
+++ b/tmp/tmpmbc69dpu/cEP-0020.md
@@ -101,8 +101,8 @@
     - 5 to 10
     - 10 and beyond
 - Following are the types of comments that could be tracked:
-    - Issue comments
-    - Review comments
+  - Issue comments
+  - Review comments
 
 ### Points
 

@sks444 sks444 force-pushed the sks444:gamification branch from e7da8b3 to 5a2643f May 13, 2018

@gitmate-bot gitmate-bot added size/S and removed size/L labels May 13, 2018

cEP-0020.md Outdated
- 5 to 10
- 10 and beyond
- Following are the types of comments that could be tracked:
- Issue comments

This comment has been minimized.

Copy link
@gitmate-bot

gitmate-bot May 13, 2018

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpmbc69dpu/cEP-0020.md
+++ b/tmp/tmpmbc69dpu/cEP-0020.md
@@ -101,8 +101,8 @@
     - 5 to 10
     - 10 and beyond
 - Following are the types of comments that could be tracked:
-    - Issue comments
-    - Review comments
+  - Issue comments
+  - Review comments
 
 ### Points
 

@sks444 sks444 force-pushed the sks444:gamification branch 2 times, most recently from 8020a81 to 78ff2f6 May 13, 2018

@gitmate-bot gitmate-bot added size/M and removed size/S labels May 13, 2018

@sks444 sks444 force-pushed the sks444:gamification branch from 78ff2f6 to 3a3ccb0 May 13, 2018

cEP-0020.md Outdated
Let's start by defining some activities which could be tracked:

- Create Issues
- Labels?

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 14, 2018

Member

? adds confusion.

It is important that we understand what will be tracked, and how it will be modeled, otherwise building it is going to be messy.

Below you refer to activities having 'factors'. Do activities only have 'factors', or do they have other attributes also? What datatypes would factors have? You have strings and ints here. How will factors with different data types be serialised?

If you are going to discuss activity attributes below, remove the ? here.

Another way would be to have complete activities like

  • Create a Bug Report
  • Create a Feature Request

Then how the system loads issues and determines that they have created a bug report or feature request is an implementation detail and might be defined later in the cEP, and can involve rules, lots of rules.

I am not sure about 'factors' as they attempt to describe what parts of an activity are relevant to gamification decision making, and I suspect that we will need lots of rules that become quite complex.

e.g. what happens if the issue labeled 'bug' is closed as a duplicate, or the label 'bug' is removed, or a repo has multiple labels which imply bug.

I am fairly confident that the process of awarding a badge atm requires a manual & meticulous check of all activities which contribute to the badge. The system might show that they have finished the necessary activities for a badge, but it isnt yet checked.

This comment has been minimized.

Copy link
@sks444

sks444 May 14, 2018

Author Contributor

I am fairly confident that the process of awarding a badge atm requires a manual & meticulous check of all activities which contribute to the badge. The system might show that they have finished the necessary activities for a badge, but it isnt yet checked.

Maybe give this privileges to developers?
To award badges to the newcomers

But I was thinking it to be automated.
Suppose that we a newcomer opened a bear proposal issues.
We could check the label of the issue and award him the bear hunter badge automatically.

But in case a newcomer opened a type/bug issues we may fail to check if its correct as gitmate label most of the issues as bug which are not.

This comment has been minimized.

Copy link
@sks444

sks444 May 14, 2018

Author Contributor

gitmate label most of the issues as a bug which is not.

I think this will be a big problem for us if we left labeling of issues on gitmate.
As we can never be sure if the label is correct or not.

Maybe we wait for giving the points until the issues is labeled by the maintainer?
But IGitt doesn't provide this functionality, i.e.: who added this label?, it just retrieve all the labels

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 14, 2018

Member

Maybe give this privileges to developers?

;-) beyond scope of your project :P

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 14, 2018

Member

It does need to be automated, in order to be scalable.

But as you can see we sometimes dont have quite enough information to be confident that an action has been correctly performed correctly.

Sometimes we do. e.g. the data coming from the meta-review system will have had verification already done.

We dont have a scalability problem for the 'coala Developer' badge -- it is worthwhile carefully checking the persons work before giving them the final 'coala Developer' badge.

I guess this can be solved by the same mechanism mentioned before : the implementation of the privileges is beyond scope, and we highlight that other systems implementing these privileges should use manual verification for any privilege which has a high risk profile.

Specifically, the addition of a person to the 'coala developers' team in GitHub, which provides them with new privileges, should not be automated based on the 'coala Developer' badge.

So the definition of a privilege should indicate whether it is

  1. not implemented
  2. manual activation
  3. automated activation

Ideally all privileges would go through those status in order, as the privilege will exist before it is implemented, and it should be run in manual mode first, and then automated only if there is no serious risk or there is a good risk reaction mechanism in place.

If manual, it is shown in a pending queue to be processed.

Even if manual, we still would often have the granting process here to be automated.
e.g. the coala Developer badge is automatically granted when the username appears in the 'coala developers' team in GitHub. The 'manual' step is a maintainer adds the user to the 'coala developers' team in GitHub.

cEP-0020.md Outdated

- Create Issues
- Labels?
- No. of comments?

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 14, 2018

Member

Not sure I get this. You have 'Comments'->'Type?' below.

But how will number of comments be useful for issues? The number of comments doesnt tell me much, I think.

This comment has been minimized.

Copy link
@sks444

sks444 May 14, 2018

Author Contributor

The number of comments doesnt tell me much, I think.

Yeah, this is not a good idea, I was thinking to give some points to the newcomer who has opened the issue and gets lots of discussions on that.
Inspired by GitHub profile which shows "You opened an issue which receive n comments"

cEP-0020.md Outdated
- No. of comments?
- Create Pull Requests
- Label?
- CI status?

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 14, 2018

Member

Thinking out loud ...

  • Create a Pull Request on GitHub
  • Create a Pull Request on GitLab
  • Create a Pull Request which passes Travis CI
  • Create a Pull Request which passes GitLab CI
  • Create a Pull Request which passes Circle CI
  • Create a Pull Request which passes GitMate
  • Commit that fixes a bug.
  • Commit that is an enhancement.
  • Commit that is newcomer difficulty
  • Commit that is low difficulty
  • Commit that is medium difficulty
  • Commit that includes a new large markdown file
cEP-0020.md Outdated
- 5 to 10
- 10 and beyond
- Following are the types of comments that could be tracked:
- Issue comments

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 14, 2018

Member

'any comment' doesnt feel like an activity we want to award points to, as then we need lots of negatives to prevent bad comments.

What types of issue comments do we want, and can accurately without meta-review?

However 'Comment on an issue' can be an activity without any points. It could be quite useful to clearly show which activities we give 0 points for, so people dont waste their time doing those types of activities.

In fact, (im not so sure about this) we may want to give all comments a preset negative points by default, because any good comment will also get a positive count somewhere else.

cEP-0020.md Outdated
- Name: Intermideate
- Points_required = 150
- Permission to use corobo basic functionalities
- Invite newcomers to org

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 14, 2018

Member

this isnt a basic corobo functionality. this is current maintainers only. We may make it developers only, or a really high number of points, but not level II.

look through corobo plugins for other privileges in the rules.

But remove all mention of corobo , and add a note that implementing these privileges is beyond the scope the gamification system. The gamification system will merely expose a list of privileges that each person has, and other systems are expected to adapt to use these privileges.

cEP-0020.md Outdated
- Points_required = 150
- Permission to use corobo basic functionalities
- Invite newcomers to org
- Get Assigned to the issues

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 14, 2018

Member

we have rules around being assigned to different difficulty level issues.
each could be a new permission.

cEP-0020.md Outdated
- Points_required = 300
- Permission to use corobo advanced functionalities
- Assign newcomers to issues
- Mark PRs as wip and pending review

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 14, 2018

Member

there is a basic privilege of "Mark your own PR as wip and pending review"

and then a more advanced one for "Mark a PR by another newcomer as wip"

and then more advanced again for "Mark a PR by a developer as wip"

and then "Mark a PR by a maintainer as wip"

cEP-0020.md Outdated
- 2 points per issue comments
- 3 points per review comments
- Gitter Messages
- No points for Bad messages

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 14, 2018

Member

we need negative points. that is one of the primary goals of this project from a maintainer perspective -- we need to be able to describe & strongly discourage abusive behaviour, where 'abusive' means 'wastes maintainer time'.

cEP-0020.md Outdated
- Level-I:
- Name: Beginner
- Points_required = 50
- Persmission to ping maintainers on Gitter

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 14, 2018

Member

spelling

cEP-0020.md Outdated
- Points_required = 50
- Persmission to ping maintainers on Gitter
- Level-II:
- Name: Intermideate

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 14, 2018

Member

spelling

cEP-0020.md Outdated
gamification system which will allow us to track newcomer's progress and
assign some points to each of the activity they do. There will be different levels
based on points threshold and a newcomer will also get some special privileges
after the compeletion of each level. There will also be different badges on the

This comment has been minimized.

Copy link
@li-boxuan

li-boxuan May 14, 2018

Member

spelling mistake.

cEP-0020.md Outdated
- Good?
- Bad?

The above activities will be tracked seperately based on their category. i.e.:

This comment has been minimized.

Copy link
@li-boxuan

li-boxuan May 14, 2018

Member

spelling mistake

cEP-0020.md Outdated
- Increase in 2 points with the increase in no. of comments
- Create Pull Requests
- If CI passes and There are no Gitmate errors
- 15 points for intial and then increase

This comment has been minimized.

Copy link
@li-boxuan

li-boxuan May 14, 2018

Member

spelling mistake (same at L121 & L123)

cEP-0020.md Outdated

- A newcomer will not be able to do fake reviews as review comments
data will be imported to community model from
[meta-reiview project](http://projects.coala.io/#/projects?project=meta-review&lang=en) which already deals with fake reviews.

This comment has been minimized.

Copy link
@li-boxuan

li-boxuan May 14, 2018

Member

Spelling. Also, could you explain fake reviews? Useless/trivial reviews?

@sks444 sks444 force-pushed the sks444:gamification branch from 3a3ccb0 to ba0b54f May 14, 2018

cEP-0020.md Outdated
- All the points given for that pull request will be reset
- Review comments on the pull request
- 2 points per good review comments
- -2 points per bad review comments

This comment has been minimized.

Copy link
@gitmate-bot

gitmate-bot May 14, 2018

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpitpwcw2p/cEP-0020.md
+++ b/tmp/tmpitpwcw2p/cEP-0020.md
@@ -121,9 +121,9 @@
     - All the points given for that pull request will be reset
 - Review comments on the pull request
   - 2 points per good review comments
-  - -2 points per bad review comments
+  - \-2 points per bad review comments
 - Gitter Messages
-  - -1 per Bad messages
+  - \-1 per Bad messages
   - 1 points per Good message
 - Introduce `.coafile` in other projects
   - 10 points
cEP-0020.md Outdated
def add_points()
a_method_to_update_points_and_level()
a_method_for_the_log_of_the_acitities()

This comment has been minimized.

Copy link
@gitmate-bot

gitmate-bot May 14, 2018

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpitpwcw2p/cEP-0020.md
+++ b/tmp/tmpitpwcw2p/cEP-0020.md
@@ -331,7 +331,6 @@
     def add_points()
         a_method_to_update_points_and_level()
         a_method_for_the_log_of_the_acitities()
-

Creating the Badges model

@sks444 sks444 force-pushed the sks444:gamification branch from ba0b54f to 00ed63e May 14, 2018

cEP-0020.md Outdated
- All the points given for that pull request will be reset
- Review comments on the pull request
- 2 points per good review comments
- -2 points per bad review comments

This comment has been minimized.

Copy link
@gitmate-bot

gitmate-bot May 14, 2018

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpitpwcw2p/cEP-0020.md
+++ b/tmp/tmpitpwcw2p/cEP-0020.md
@@ -121,9 +121,9 @@
     - All the points given for that pull request will be reset
 - Review comments on the pull request
   - 2 points per good review comments
-  - -2 points per bad review comments
+  - \-2 points per bad review comments
 - Gitter Messages
-  - -1 per Bad messages
+  - \-1 per Bad messages
   - 1 points per Good message
 - Introduce `.coafile` in other projects
   - 10 points
cEP-0020.md Outdated
def add_points()
a_method_to_update_points_and_level()
a_method_for_the_log_of_the_acitities()

This comment has been minimized.

Copy link
@gitmate-bot

gitmate-bot May 14, 2018

The text does not comply to the set style.

Origin: MarkdownBear, Section: markdown.

The issue can be fixed by applying the following patch:

--- a/tmp/tmpitpwcw2p/cEP-0020.md
+++ b/tmp/tmpitpwcw2p/cEP-0020.md
@@ -331,7 +331,6 @@
     def add_points()
         a_method_to_update_points_and_level()
         a_method_for_the_log_of_the_acitities()
-

Creating the Badges model

@sks444 sks444 force-pushed the sks444:gamification branch from 00ed63e to 3ebb496 May 14, 2018

cEP-0020.md Outdated
contributing to the community we need to find a way to teach and
help them so that we can keep working on coala at a fast pace.

We also need to find a way to get more effective feedback from

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 25, 2018

Member

No 'we' pls

cEP-0020.md Outdated
highest number of points and the newcomer will be awarded
with those points.

Also, note that both the activities will be counted while awarding

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 25, 2018

Member

This belongs in badges section

cEP-0020.md Outdated
And a query to create a level would be:

```python
>>> privilege = Privilege.objects.create(

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 25, 2018

Member

What is >>> doing here :P

cEP-0020.md Outdated
## Conclusion

This project addresses the most of the problems a
newcomer/maintainer at coala face during the newcomer to

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 25, 2018

Member

Newcomer/maintainer?

cEP-0020.md Outdated
- 10 points for difficulty low
- 15 points for difficulty medium
- If Gitmate errors are b/w 10 and beyond
- No points are given

This comment has been minimized.

Copy link
@Makman2

Makman2 May 25, 2018

Member

Tbh I think merges are actually worth way more points. Filing an issue is much quicker than solving it^^

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 26, 2018

Member

Unfortunately we havent done any testing of these points with sample people. We definitely need to, before the end of the project, in order to validate the points allocated, and tweak accordingly.

@sks444 , can you create a milestone task in phase 2 to build a dataset for 10 of the 2018 gsoc students as of Jan 2018, and a dataset as of March 2018 & a task for phase 3 to validate the points allocated against those two datasets. We need to verify that 2018 gsoc students as of Jan 2018, and as of March 2018, would have been given points & levels which feel sensible, and tweak the configuration to as required to get a better outcome.

Filing a half-decent non-duplicate bug report (not a feature) is usually much harder than solving it, unless it is of difficulty/medium or higher. issues do need to be incentivised, because without issues there are no tasks to allocate, and we have way too many people turning up at a hackathon and doing a pretty crappy MR and then disappearing, which is a net negative on the community, costing us review time without getting a commit for the effort. If they instead used coala, and found a bug, they can disappear after the hackathon and we have a net positive value.

Anyway, there is definitely room to improve these points allocations, and we'll be able to (and will need to) adjust these after go-live to try to find the best balance. I've created a few comments above to have the allocations revised.

specifically, regarding a MR with lots of gitmate errors, it should still have some a low points allocated if it is merged.
Otherwise we encourage people to give up after 10 gitmate errors, or close their PR and create a new one hoping they will get more points on the new one.

And this raises a problem that has somehow escaped this cEP until now. negative points. (we have discussed it, but they dont appear in the cEP yet)
Creation of duplicate PRs and duplicate issues is a great example of an activity which must be actively decentivised, otherwise the points system described here will fall apart.

Names and metrics of tracked activities will also be shown
on the leaderboard along with the number of times they
have been done. That will help maintainers to varify if an
automatically awarded badge is correct or not.

This comment has been minimized.

Copy link
@Makman2

Makman2 May 25, 2018

Member

How about points for badges?

This comment has been minimized.

Copy link
@sks444

sks444 May 25, 2018

Author Contributor

A newcomer can earn points by performing any kind of activity.

And the badges are given here to show a newcomer's skill in a particular type of activity.

If we give badges based on points then the activities will not have much more meaning. :)

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 26, 2018

Member

We're keeping badges distinct from the points/levels , as we will be revising our points/levels after go-live , and that will mean people's points may change, and they may even drop down a level , but a badge shouldnt be revoked once it has been given.
If a badge "should" be changed, that would need to be done by versioning the badge, and maybe even renaming the old badge to show it wasnt well designed.

@sks444 I dont think we have anything about this distinction yet. Probably belongs up much higher as a guiding principle.

cEP-0020.md Outdated
- Privileges:
- Mark a PR by another newcomer as wip
- Get assigned to difficulty medium issue
- Level-VII:

This comment has been minimized.

Copy link
@Makman2

Makman2 May 25, 2018

Member

where's level VI ? :O

Names and metrics of tracked activities will also be shown
on the leaderboard along with the number of times they
have been done. That will help maintainers to varify if an
automatically awarded badge is correct or not.

This comment has been minimized.

Copy link
@Makman2

Makman2 May 25, 2018

Member

I can also think of "levelled" badges, like a badge can have up to X levels. For example a badge could be "Number of PRs reviewed". If you have 5, you get the Level 1 badge. If you have reviewed 20, you get the Level 2 badge and so on and so on...

This comment has been minimized.

Copy link
@sks444

sks444 May 25, 2018

Author Contributor

All the things related to reviewing is being done in meta-review system

But yeah, we will have more badges while the implementation of this system, these are just a few ideas I have taken to give a better understanding of the design.

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 26, 2018

Member

Agree that 'levels' within a badge is a very common theme in badge design.

Please add a reviewer badge, and a super reviewer badge, to show how the design can be used to provide that type of functionality.

@sks444 sks444 force-pushed the sks444:gamification branch 2 times, most recently from 336dca3 to 1e86550 May 25, 2018

cEP-0020.md Outdated

Points are a simple tool to reward positive contributions
to coala, and they provide an excellent base upon which to
build a gamified design. Now let's assign points to some

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 26, 2018

Member

let's

This is hiding an "us", which is like "we".
There is another one below.

cEP-0020.md Outdated

- Create Issue
- 20 points for type/bug
- 20 points for bear proposal

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 26, 2018

Member

bear proposals should be much lower. those issues are usually just a link to a linter. very easy to create, and there are hundreds of external linters that coala dont support, and many of them are not better than the bears we already have.

Also , we can split them into

  1. external linter bear proposal, which are wrapping an existing tool = 5 points
  2. native bear proposal = 7 points
  3. generic bear proposal = 10 points
cEP-0020.md Outdated
- Create Issue
- 20 points for type/bug
- 20 points for bear proposal
- 10 points for difficulty newcomer

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 26, 2018

Member

To address Makman's point at https://github.com/coala/cEPs/pull/150/files#r190873892 , these points for difficulty level should be decreased, considerably. creating lots of valid issues shouldnt be an easy way to level up. creating lots of valid issues should result in a lovely badge.

newcomer issues are usually very tiny problems and very easy to explain because they are so trivial.
low are also very plentiful and are easy to find and write up.
medium issues usually require quite a bit more effort to write up.

maybe 5, 8, 12 ?

also add difficulty high at 15

However, difficulty shouldnt be the way to get a high score for an issue. importance of an issue is more relevant. Please create additional activities for importance/* labels, and medium importance would be 15, and high would be 20 (i.e. type/bug is usually high importance). low maybe 10 and trivial = 5 .. ?

This comment has been minimized.

Copy link
@sks444

sks444 May 26, 2018

Author Contributor

Please create additional activities for importance/* .....

Yep, assigning points based on importance is great.

However, one thing to note that we should also check the difficulty of the issue with the importance.
E.g.: An importance/high issue could be difficulty newcomer. And assigning 20 points for this would not be very good?
(As we are assgining only 5 points for difficulty newcomer issues)

This comment has been minimized.

Copy link
@sks444

sks444 May 26, 2018

Author Contributor

Probably I should add another note saying that:

There will be a method to check what is the other labels on importance high issues or on other importance related issues, and points will be assigned accordingly. E.g.: If an issue is importance high and has difficulty newcomer the suitable points would be 10.
(points assigned to the important issues are just for showing an example that in these type of situations the importance label will be preferred.)

Or maybe calculate the average in any case when there are multiple activities and a single action, and assign that average points to that action.

E.g.: If an action involve type/bug(10), importance/high(20) and difficulty low(9) issue.
The resultant points would be (10+20+9) /3=13?

cEP-0020.md Outdated
- 10 points for difficulty low
- 15 points for difficulty medium
- If Gitmate errors are b/w 10 and beyond
- No points are given

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 26, 2018

Member

Unfortunately we havent done any testing of these points with sample people. We definitely need to, before the end of the project, in order to validate the points allocated, and tweak accordingly.

@sks444 , can you create a milestone task in phase 2 to build a dataset for 10 of the 2018 gsoc students as of Jan 2018, and a dataset as of March 2018 & a task for phase 3 to validate the points allocated against those two datasets. We need to verify that 2018 gsoc students as of Jan 2018, and as of March 2018, would have been given points & levels which feel sensible, and tweak the configuration to as required to get a better outcome.

Filing a half-decent non-duplicate bug report (not a feature) is usually much harder than solving it, unless it is of difficulty/medium or higher. issues do need to be incentivised, because without issues there are no tasks to allocate, and we have way too many people turning up at a hackathon and doing a pretty crappy MR and then disappearing, which is a net negative on the community, costing us review time without getting a commit for the effort. If they instead used coala, and found a bug, they can disappear after the hackathon and we have a net positive value.

Anyway, there is definitely room to improve these points allocations, and we'll be able to (and will need to) adjust these after go-live to try to find the best balance. I've created a few comments above to have the allocations revised.

specifically, regarding a MR with lots of gitmate errors, it should still have some a low points allocated if it is merged.
Otherwise we encourage people to give up after 10 gitmate errors, or close their PR and create a new one hoping they will get more points on the new one.

And this raises a problem that has somehow escaped this cEP until now. negative points. (we have discussed it, but they dont appear in the cEP yet)
Creation of duplicate PRs and duplicate issues is a great example of an activity which must be actively decentivised, otherwise the points system described here will fall apart.

cEP-0020.md Outdated
- The helper:
- Details: The one who answers every newcomer questions on Gitter
- Activities:
- At least 20 answers given on coala Gitter rooms

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 26, 2018

Member

Please add another activity for this badge.
I've repeatedly asked for this.

Names and metrics of tracked activities will also be shown
on the leaderboard along with the number of times they
have been done. That will help maintainers to varify if an
automatically awarded badge is correct or not.

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 26, 2018

Member

We're keeping badges distinct from the points/levels , as we will be revising our points/levels after go-live , and that will mean people's points may change, and they may even drop down a level , but a badge shouldnt be revoked once it has been given.
If a badge "should" be changed, that would need to be done by versioning the badge, and maybe even renaming the old badge to show it wasnt well designed.

@sks444 I dont think we have anything about this distinction yet. Probably belongs up much higher as a guiding principle.

Names and metrics of tracked activities will also be shown
on the leaderboard along with the number of times they
have been done. That will help maintainers to varify if an
automatically awarded badge is correct or not.

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 26, 2018

Member

Agree that 'levels' within a badge is a very common theme in badge design.

Please add a reviewer badge, and a super reviewer badge, to show how the design can be used to provide that type of functionality.

cEP-0020.md Outdated
have been done. That will help maintainers to varify if an
automatically awarded badge is correct or not.

Note that in case if a issue or a pull request has two labels which

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 26, 2018

Member

if -> of

a -> an

cEP-0020.md Outdated

Note that in case if a issue or a pull request has two labels which
are counted in this system, the performed activities by the user will
be two and both the activities will be counted while awarding badges.

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 26, 2018

Member

comma after "two"

@gkrishnan724
Copy link
Member

left a comment

Just a quick question. How do we plan to display these data? how will the newcomers know about the badges, points ? I think it would be cool if we had some kind of profile for each user where we could display data like points earned, badges earned, points to next level and recent activity. Fedora seem to have implemented something similar:
https://badges.fedoraproject.org/user/orangeutan

Here they have also displayed stuff like weekly leaders, etc:
https://badges.fedoraproject.org/

We could implement something similar in the community site?

Would love to hear opinions on this :)

@sks444 sks444 force-pushed the sks444:gamification branch from 1e86550 to 0aec519 May 26, 2018

@sks444 sks444 force-pushed the sks444:gamification branch from 0aec519 to 348c90e May 26, 2018

cEP-0020.md Outdated
to apply for the developers role at coala.

[Here](https://github.com/coala/coala/blob/4f2b3c101b8d67a17078dfb2603083c9c00537a6/docs/Developers/Newcomers_Guide.rst)
is a permanent link of the newcomer guides we have at the moment.

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 28, 2018

Member

"we"

newcomer guides -> Newcomers Guide

cEP-0020.md Outdated
track the progress of newcomers and assign some points to
each of the activities they do. There will be different
levels based on point thresholds and a newcomer will also
have some special privileges after the completion of each

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 28, 2018

Member

have some special privileges

'special' is over-selling, especially when 'have' isnt true

use "be eligible for specific privileges"

cEP-0020.md Outdated
A newcomer at coala have to follow the
[newcomer guides](https://api.coala.io/en/latest/Developers/Newcomers_Guide.html)
and perform certain tasks mentioned there in order to be eligible
to apply for the developers role at coala.

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 28, 2018

Member

"Developers"

cEP-0020.md Outdated
[Here](https://github.com/coala/coala/blob/4f2b3c101b8d67a17078dfb2603083c9c00537a6/docs/Developers/Newcomers_Guide.rst)
is a permanent link of the newcomer guides we have at the moment.

A developers role at coala means that the newcomer is now a part

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 28, 2018

Member

A developers -> The "Developers"

newcomer -> recipient

cEP-0020.md Outdated
points to some of the tracked activities above:

- Create Issue
- 10 points for type/bug

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 28, 2018

Member

reorder these sub-lists into increasing points order

cEP-0020.md Outdated
`number_of_times` field store the value of number of times
an activity has been done by the same user.

The `User` model will have a ManyToMany relationship with

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 28, 2018

Member

ManyToMany - backticks

cEP-0020.md Outdated

```python
privilege = Privilege.objects.create(
name='Get assigned to a newcomer issue'

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 28, 2018

Member

trailing comma

cEP-0020.md Outdated
level1 = Level.obejects.create(
name='Newbie',
points_required=5,
privileges=privilege

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 28, 2018

Member

trailing comma

cEP-0020.md Outdated
netlify and show the useful updated user metrics and stats
on the leaderboard.

The leaderboard will have the following column:

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 28, 2018

Member

column -> columns

cEP-0020.md Outdated

The leaderboard will have the following column:

| Username | Important Activity Metrics | Points | Level and Privileges

This comment has been minimized.

Copy link
@jayvdb

jayvdb May 28, 2018

Member

shorten headers to get onto a single line.
splitting onto two lines is invalid syntax

at least "Level and Privileges" -> "Levels"
as Privileges are implicitly the same thing.

@sks444 sks444 force-pushed the sks444:gamification branch from 348c90e to 1ec5b92 May 28, 2018

@jayvdb

jayvdb approved these changes May 28, 2018

@jayvdb

This comment has been minimized.

Copy link
Member

commented May 28, 2018

ack 1ec5b92

@jayvdb

This comment has been minimized.

Copy link
Member

commented May 28, 2018

@gitmate-bot

This comment has been minimized.

Copy link

commented May 28, 2018

Hey! I'm GitMate.io! This pull request is being fastforwarded automatically. Please DO NOT push while fastforward is in progress or your changes would be lost permanently ⚠️

@gitmate-bot gitmate-bot merged commit 1ec5b92 into coala:master May 28, 2018

4 checks passed

review/gitmate/commit This commit has no issues. :)
Details
review/gitmate/manual This commit was acknowledged. :)
Details
review/gitmate/manual/pr This PR is reviewed. :)
Details
review/gitmate/pr This PR has no issues. :)
Details
@gitmate-bot

This comment has been minimized.

Copy link

commented May 28, 2018

Automated fastforward with GitMate.io was successful! 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.