We now have an initiatives category on Discourse (this one). However, SourceCred isn’t yet aware of it, so Initiatives don’t yet flow any special cred. We should add initiatives directly to the SourceCred graph.
Status: In progress
The plugin has been merged into
The remaining steps are to start using it for the SourceCred instance, and create a versioned release of the SourceCred code including this plugin. See Release v0.5.0 .
Initiatives will add a layer of interpretability and robustness to the SourceCred graph. They are more interpretable (vs. pull requests where it can be hard to parse their impact or significance). They can also be used for different styles of cred minting, grain boosting and/or bounties.
The rough outline of necessary steps is.
- Get necessary (missing) information from Discourse API using the Discourse plugin and expose it.
- Create the initiatives plugin from scratch, to initially detect initiatives and model it into the graph.
- Wire it up with configuration and into the load command.
- Iterate on this by adding bounty dynamics.
- SourceCred core plugin system
- WeightedGraph; Enable plugins to set weights
- Refactoring the load system
- Unified reference detection
- The initiatives category descriptions and template
- What does and does not count as an Initiative
- Supernodes: Moving past raw activity
- Implementation thoughts post
- Initiatives: create plugin declaration
- Initiatives: define internal datatype Initiative
- Initiatives: implement basic createGraph
Implement Discourse initiative tracker parsing.
- Initiatives: implement “cooked HTML” template parsing
- Initiatives: create Initiative from discourse topics
- Initiatives: implement DiscourseInitiativeRepository
- RFC: change Initiatives plugin to be file-based instead of Discourse-based
Initiatives: add initiativesMap type Initiatives: add conversion functions for InitiativesMap
- Add InitiativesDirectory and InitiativeFile types
- Initiatives: create and parse InitiativeFile addresses
- Initiatives: validate and read files from local directory
- Initiatives: create InitiativeId concept
- Initiatives: replace trackers with InitiativeIds
- Initiatives: implement conversion from InitiativeFiles
- Initiatives: implement loadDirectory
- Initiatives: add URLs to remote files in node descriptions
- Initiatives: add Project parameters
- Initiatives: pass SOURCECRED_INITIATIVES_DIRECTORY to LoadContext
- Initiatives: implement loader