|
|
This is the development process for "Memri authorized" plugins in the bounty program.
|
|
|
|
|
|
> For guidance on building a plugin please visit the [Plugin Development Guide](https://www.notion.so/Plugin-Development-Guide-119b56123fa6449f92604cacb89df616)
|
|
|
|
|
|
# Assignment
|
|
|
|
|
|
**Plugin is published on the [Plugin Board](https://memri.io/plugins.html) and a repository is created.**
|
|
|
- Product Owner defines: scope and bounty.
|
|
|
|
|
|
**A Plugin Developer from the community chooses to work on the plugin.**
|
|
|
- The Community Liaison can approve/disapprove based on the Plugin Developer's expertise.
|
|
|
- If this is a new Plugin developer, they go through the onboarding process (by the Community Liaison)
|
|
|
|
|
|
**Community Liaison assigns a Plugin Reviewer to the development process.**
|
|
|
|
|
|
- Plugin Developer & Plugin Reviewer define timeframe for development and review schedule.
|
|
|
|
|
|
|
|
|
# Development
|
|
|
|
|
|
**Plugin Developer starts development process.** Make sure to check the [Acceptance criteria](https://gitlab.memri.io/memri/memri/-/wikis/Acceptance-criteria-for-plugins).
|
|
|
|
|
|
### MILESTONE: Review authentication
|
|
|
|
|
|
1. Plugin Developer creates a merge request (against a first empty commit)
|
|
|
2. Review process takes 3 business days by **Plugin Reviewer**
|
|
|
3. During the review time, the **Plugin Developer** may be able to fix minor issues to then be approved.
|
|
|
|
|
|
- **If it is approved:** Plugin Developer can continue with the process.
|
|
|
|
|
|
- **If not approved:** Plugin Developer can go through the review process again once they have fixed the issues pointed by the Plugin Reviewer.
|
|
|
|
|
|
> At this point **Plugin Reviewer** can make an assessment on **Plugin Developer**'s skills to continue with the process, and inform the **Community Liaison** if the assessment is negative to find a solution.
|
|
|
|
|
|
### MILESTONE: Review schema implementation
|
|
|
|
|
|
1. Plugin Developer documents schema usage in Memri Schema Repo Wiki for use case.
|
|
|
2. Plugin Developer creates a merge request in the Memri Schema Repo for their changes.
|
|
|
3. Review process takes 3 business days by **Schema Maintainer**
|
|
|
4. During the review time, the **Plugin Developer** may be able to fix minor issues to then be approved.
|
|
|
|
|
|
> At this point **Schema Maintainer** can make an assessment on **Plugin Developer**'s skills to continue with the process, and may talk to **Community Liaison** to roll back the plugin to "unassigned" status for other developers to pick it up.
|
|
|
|
|
|
### MILESTONE: Overall review
|
|
|
|
|
|
1. Plugin Developer creates a merge request (against dev branch) and includes the acceptance criteria checklist with all items checked.
|
|
|
|
|
|
> Only plugins that fully comply with the [Acceptance criteria for plugins](https://gitlab.memri.io/memri/memri/-/wikis/Acceptance-criteria-for-plugins) will be reviewed. Please go through the checklist before creating a merge request to make sure your plugin is eligible.
|
|
|
|
|
|
2. Review process takes 3 business days by **Plugin Reviewer** (prior consent so they can reserve the time to do it).
|
|
|
|
|
|
3. During the review time, the **Plugin Developer** may be able to fix minor issues to then be approved.
|
|
|
|
|
|
- **If plugin is approved:**
|
|
|
|
|
|
- Plugin is pushed to prod branch of plugin repo.
|
|
|
- Plugin is updated in Plugin Board to "testing" status.
|
|
|
- Bounty is released in the designated percentages (as defined below).
|
|
|
|
|
|
|
|
|
- **If plugin is not approved (big issues - but fixable): Plugin Developer** can go back to fix issues to get a second review.
|
|
|
|
|
|
- **If plugin is not approved after the second review, there are two options:**
|
|
|
|
|
|
- The plugin goes back to "unassigned" status for another **Plugin Developer** to pick it up.
|
|
|
- The original **Plugin Developer** continues to work on the plugin through the [Mentorship Program](https://www.notion.so/Mentorship-Program-1b7d17c0067b476d89f546a8358fbf7f).
|
|
|
|
|
|
---
|
|
|
|
|
|
### IMPORTANT:
|
|
|
|
|
|
- **Plugin Developer** is responsible to provide an update to the **Community Liaison** every 2 weeks. Failing to do so may roll back the plugin to "unassigned" status for other developers to pick it up.
|
|
|
- Updates can also be provided in the **developer community weekly standup**.
|
|
|
- The PyMemri library is under heavy development and we will pause onboarding new developers until it is stable.
|
|
|
|
|
|
# Testing + Bug fixing
|
|
|
|
|
|
10% of the bounty is kept for bug fixing, for a period of 6 months after releasing the plugin. Whatever remains after the testing period is then paid to the **Plugin Developer** as a bonus fee.
|
|
|
|
|
|
# Bounty split
|
|
|
|
|
|
1. **Schema Maintainer** - 5%
|
|
|
2. **Plugin Developer** - 75%
|
|
|
3. **Plugin Reviewer** - 10%
|
|
|
4. **Bug Fixing** - 10%
|
|
|
|
|
|
> The **Plugin Reviewer** can get more involved in helping the **Plugin Developer**, in which case their percentage grows, while decreasing the percentage for the **Plugin Developer**. That can occur with previous consent from both parts.
|
|
|
|