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

CredSperiment Alpha initiative #53

Closed
wants to merge 100 commits into from
Closed

Conversation

Beanow
Copy link

@Beanow Beanow commented May 1, 2020

Relates to Cred Issue #43

Drafting this Initiative in the open, as this one is fairly complex to model and will likely have many assumptions / workarounds.

Some notes on the draft so far:

  • Picking the start of week-1's interval as the timestamp.
  • "completed": false until we've hit the beta.1 milestone.
  • None of the dependencies have a canonical Initiative to point to.
  • Developing fast/slow strategy may exist as a forum thread.
  • "Manually tracking distributions" indirection likely to work better
    than adding a contribution for every week. Can be sub-initiative.
  • No weights added yet.

Included contributors: @decentralion, @amico-dj, @protocol

teamdandelion and others added 30 commits August 16, 2019 21:53
Summary:
Following the newly updated instructions in the README.

Test Plan:
Running `python3 -m http.server` at the root of this repository and then
following the test plan in sourcecred/sourcecred#1305 confirms that the
fix for sourcecred/sourcecred#1304 is correctly integrated.
I've taken out the other projects (ipld, libp2p, filecoin-project) and
am just focusing on SourceCred's own cred for now. There are three
subprojects:
- SourceCred github
- SourceCred discourse
- SourceCred combined

I've added an updater script and a bit more info in the README.

Test plan: Local inspection via running a simple http server.
Almost the same as before, but I renamed the combined project "@sourcecred"
so as to not break links
Mostly trying to move some cred away from GitHub comment based activity,
for reasons discussed in [discourse][1], and reduce the tendency of
highly-commented-upon PRs to skyrocket in score.

I also moved the default user weights to 0, since they don't actually do
anything.

Test plan: Inspected the cred, it seems "ok".

[1]: https://discourse.sourcecred.io/t/preliminary-credsperiment-cred/219/4
A bit redundant as there's no corresponding Discourse account, but I'm
thinking for payouts I will filter to only compute for SourceCred
identities, so this is convenient.
It's kind of hacky, but should work.
Also update docs and save those scores.
Remove identity resolution for vsoch, no longer needed.
Scores are as computed [in the Observable notebook][1]. The score JSON
was downloaded using the "Save Distribution History" button just above
the "Full Data" sheet.

Test plan: Verify that the hash of this file matches the expected hash
in the notebook:

```
$ sha256sum distributionHistory.json
3f75966fdf0e01737952573ef290cebb22298e026ff9697d26e29c20e7bcfd8e
```

[1]: https://observablehq.com/@decentralion/credsperiment-week-1
Generated by running `./update.sh`.
Scores are as computed [in the Observable notebook][1]. The score JSON
was downloaded using the "Save Distribution History" button just above
the "Full Data" sheet.

Test plan: Verify that the hash of this file matches the expected hash
in the notebook:

```
$ sha256sum distributionHistory.json
bfee2286b361380d01099a01c42c333c302a30a0e0903cdebe368b4c8b53f036
```

[1]: https://observablehq.com/@decentralion/sourcecred-credsperiment-week-2
* Include payouts repo in github.json

* Include payouts repo in combined.json
Scores are as computed [in the Observable notebook][1]. The score JSON
was downloaded using the "Save Distribution History" button just above
the "Full Data" sheet.

Test plan: Verify that the hash of this file matches the expected hash
in the notebook:

```
$ sha256sum distributionHistory.json
87bb124576b9a4554e07c0ec8da7e92c7230723ada9f96cc29b9ae8f27c3ee19
```

[1]: https://observablehq.com/@decentralion/sourcecred-credsperiment-week-3
Matches expected hash:
9c3c8acf17a1e8dc0e0c652a6a2f1a884ec5ea827ad43205dcf3fb5415b960bf
I defined a simple format for the transfers, which just gives the
basic necessary info (who, how much, when) along with arbitrary
references. I linked to the open collective payout and the discourse
payout request in the references.

No code yet consumes this information.
The work that goes into this repository should count too. :)

Test plan: Run the update script, verify that it loads without issue.
This is a small experiment in having something like [Cred Bounties][1]
before we've actually implemented the [Initiatives Plugin][2].

Basically, we're giving a higher weight to a few initiatives:
- Produce the SourceCred Podcast: Shipped the podcast!
- Discourse Reference Detection: Recently completed.
- Champions & Heroes: An exciting contribution. :)
- Initiatives Plugin: Nice progress so far.

The weight choices are moderate, so it doesn't have a _huge_ effect on
cred--we'll hold off on big effects for after the initiatives plugin and
cred bounties both land. But this is a nice way to recognize some
exciting progress so far.

[1]: https://discourse.sourcecred.io/t/enable-cred-bounties/257
[2]: https://discourse.sourcecred.io/t/write-the-initiatives-plugin/269
As calculated [here]. Shasum matches:

```
❯ sha256sum distributionHistory.json
5a0e5c16e67f53f82981f304a4ad85e2437b08491b88c5cd010575a516d6f5da
```

[here]: https://observablehq.com/@decentralion/credsperiment-week-5
As computed here:
https://observablehq.com/@decentralion/credsperiment-week-6

Expected distributionHistory hash:
9186964bd1fb233e7c929ad7b397201940b5a1a434a0075c14f0bf8d2f5b49fc
* Record a transfer from s-ben to protocol

Needs review/ack by @s_ben

* Update references for the transfer
teamdandelion and others added 26 commits March 17, 2020 22:09
As the other projects served more as an example and were out of date.
Using the anonymous API, an apiUsername is no longer needed.
Generated via running ./update.sh
This updates the project file mainly. Which means we now require
the environment variable `SOURCECRED_INITIATIVES_DIRECTORY` is set
and a valid directory. To make sure of this an empty directory is
added, and the environment variable is exported.
* Preview: Add a first batch of initiatives to the project

## This is a first iteration

Rather than letting this stall for too long, let's improve on this with follow ups.
Have a look at #29 for info on how to go from here.

This is a first iteration, as it's in need of another weighting round.
Still missing from this, but identified at the team call:
- CredCon: video interviews (need a user account for zak)
- CredCon: CredRank prototype (have not decided fibonacci weight)
- CredCon: Discord prototype (have not decided fibonacci weight)
- Evan's explainer (have not decided fibonacci weight)

Also great improvements to make from here:
- Adding contributions and linking that to contributors (see #30)

Good but not as critical:
- Making the timestamps more accurate

## Fibonacci to absolute weights: 100x first, 200x later

The 200x multiplier seems in the right ballpark, however we want to
avoid champions see Cred "dilute" because we'll add more contributions.

Start with 100x now, and move to 200x as we have a more complete coverage.
Tracking this in issue #31.

## Other assumptions made

### Dependency structure

For the activities as part of CredCon (like hackathon, party, talks), I
found they had very similar dependencies on logistical initiatives and
CredCon itself. I've generalized this by depending on CredCon, rather than
directly depending on logistics.

Example: CredCon party, depends on CredCon, depends on car+food+lodging

This will make the life of historians easier too, as adding more logicstics
(maybe invites or scheduling) would only need to be set as a CredCon
dependency, rather than for all activities as well.

### Example references / contributions

For the main CredCon initiative, I've added several clearly related forum
topics. These are both as an example, and to make sure this part of the
graph is not exclusively connected through identities.

### Completion status

Other than both Partner initiatives, the CredCon initiatives are set as
completed.

## Technical aspects to validate

The main point which needs careful manual validation, is to inspect the
graph. For example using the "legacy explorer" to confirm the initiative
nodes are added and have edges to *all* the URLs added.

That means:
- Champions: Identities / GitHub users / Discourse users.
- References / Contributions: Forum topics (in CredCon).
- Dependencies between Initiatives.

Note: it's expected for links to an initiative to give a 404 not found,
until the PR is merged to master. However they should be listed in the
explorer.
A transfer of 6k grain.

Review plan: Approval by @s_ben (to confirm receipt of payment) and from
@Beanow (to confirm that the format is correct).
nb. I manually ensured that docs/CNAME remained untouched.
Now that we've verified that the CNAME fix from #46 works, let's
canonicalize it in the update script so that we won't need to maintain
it by hand.

I ran update.sh and committed the CNAME file generated inside docs, its
the same modulo trailing newlines.

Test plan: Run update.sh, and verify that the CNAME file is no longer
removed or modified.
Observations so far:
- Picking the start of week-1's interval as the timestamp.
- "completed": false until we've hit the beta.1 milestone.
- None of the dependencies have a canonical Initiative to point to.
- Developing fast/slow strategy may exist as a forum thread.
- "Manually tracking distributions" indirection likely to work better
  than adding a contribution for every week. Can be sub-initiative.
Comment on lines +18 to +20
{ "title": "Placeholder: Create GitHub plugin" },
{ "title": "Placeholder: Create Scores API" },
{ "title": "Placeholder: Develop the Grain concept" }
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GitHub and Grain weren't mentioned as dependencies yet in the meeting. But seem intuitive to me as dependencies.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good points. Also, "TimelineCred" was a dependency, and original PageRankCred was a dep of timeline cred.

"champions": ["https://discourse.sourcecred.io/u/decentralion"],
"dependencies": {
"urls": [
"https://discourse.sourcecred.io/t/create-identity-plugin/662",
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The identity plugin was also a dependency. Was mentioned for instance in https://discourse.sourcecred.io/t/introducing-the-credsperiment/183/1's "Pre-requisites"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants