[Proposal] How to contribute Code to Primero

How to contribute Code to Primero

Proposal one-liner: Create a very rigorous step-by-step guidance for contributing code

Value proposition: We want anyone who intends to make a submission to Primero to be very clear about what it takes to pass a code review. This can be done by providing a good example of that process

Brief explanation: Based on a recently merged feature we will show and document the whole process of initial idea to roll out.

Acceptance criteria: The PR needs to be merged in the mainline branch of the Primero repository

Time estimation: Around 1 month

Risk estimation: The only risk is not completing the work but the proposer is a trusted member of the Primero community.

Proposal stakeholders: Primero Stakeholders, Jozian Ltd

Estimated funding: 0.75 ETH

1 Like

Thanks for the submission, looks good. A few comments:

  • there is a lot of code review/contribution documentation already available on the Primero GitHub and online. I think we can try to reduce the level of effort and cost required for this proposal
  • as this is the first important step in opening up the DAO to other proposals, I suggest we shorten the delivery time to 1 or 2 weeks

Quite happy to reduce the cost and effort a little with the proviso that we do need something pretty comprehensive since it needs to show in depth what folks need to do to get involved.
I will reply in a separate post with the updated proposal

Updated Proposal

How to contribute Code to Primero

Proposal one-liner: Create a very rigorous step-by-step guidance for contributing code

Value proposition: We want anyone who intends to make a submission to Primero to be very clear about what it takes to pass a code review. This can be done by providing a good example of that process

Brief explanation: Based on a recently merged feature we will show and document the whole process of initial idea to roll out.

Acceptance criteria: The PR needs to be merged in the mainline branch of the Primero repository

Time estimation: 2 weeks

Risk estimation: The only risk is not completing the work but the proposer is a trusted member of the Primero community.

Proposal stakeholders: Primero Stakeholders, Jozian Ltd

Estimated funding: 0.5 ETH

Thanks this looks good. Let’s discuss on the first DAO group call

Great!
I just had some questions about how this will work exactly:

  1. Is this proposal now approved or do we need to wait for some voting on it?
  2. If there is voting then who gets to do that and where?
  3. How can I qualify for voting? I assume I cannot vote on my own proposals but I would like to vote on other peoples :slight_smile:
  4. Does it cost anything to vote?
  5. If my PR gets merged does that mean I get paid immediately?
  6. If I wanted someone to build something for me in Primero and I had some funding how do I submit that funding to the DAO
  7. If I do that how can I be sure my specific work will get done? (i guess I cannot since other folks will vote on it)

I imagine I will have more questions depending on the answers

Hey Ian,

These are great questions. I will try to answer them in the same order :slight_smile:

  1. We need to vote on this on Snapshot. Its not yet perfect, but we are putting together a guide here on Snapshot - How to vote on Snapshot. In order to vote, the people with voting rights have to onboarded (since this is the first proposal) and they vote on the proposal on Snapshot.
  2. They get to vote here - Snapshot . Who can vote would be decided mainly by the Primero team, with a focus on diversity of the group and people with voting rights having a high interest in the development of Primero
  3. This is left to Rob, but yes, ideally you should not vote on your own proposal. For now, we do not have mechanisms in place to differentiate between the author of a proposal and a DAO voter. This is a good question…we will take it into account for further iteration on the DAO
  4. No. You just need Metamask (or any wallet compatible with snapshot) to connect and sign a transaction. There is no gas fee involved.
  5. You will receive payment when a second round of voting happens on if you can be paid AFTER your PR has been submitted for review by the Primero team. More on it in the guide linked above.
  6. We will need to discuss with the Primero product owner.
  7. Once a mechanism to submit funding is in place, then you should not transfer any funds UNLESS your proposal has gone through voting and has been accepted.

Hi @ian_brasil , would it be possible to update the main proposal text to reflect the updated proposal (currently in the comments)? I think this will be clearer for everyone. Maybe include a little (edited on DD/MM/YY based on discussion below).

It does not seem to be possible for me to edit the text of the original proposal

Maybe you’ll just have to copy/paste it?

I did that in the fourth post down

Hey Ian, I believe the trust level settings in discourse prevents that from happening. I was briefly looking into it, will see if I can change it. Otherwise, you will be able to edit original posts once your trust level goes up (with more posts read, created, commented on etc.)

As the first proposal on this DAO, we have (as per our discussion) made this proposal on Snapshot and got it passed. Check the link for more - Snapshot

@ian_brasil What this means is, you can start work on your proposal (if you have not started it already) and submit a PR for review. Once the Primero team checks this and approves of your contribution, you will be paid after we pass a second round of voting for payment on snapshot.

@RMacT , this is FYI.

The PR is here
There are some discussions both on the PR and out of band which I will summarise here.

One major issue is handling UAT as it is totally possible to have proposals approved by the DAO which pass dev review and unit tests but dont align with the rest of Primero. Just merging them into the develop branch if they pass muster from the dev team creates the risk of technically good but unsatisfactory (from the user/dataprotection/UX style point of view) PRs holding up the release of satisfactory PR’s which also got merged.
One suggestion is to set up a CICD server that points to the branch develop-dao. Folks can verify on that
The idea is that develop-dao is always ahead of develop which is always ahead of main. So we merge main → develop → develop-dao

This should be discussed at the next meeting

Great that this nuance has surfaced now. Looking forward for the core team to discuss this one. If need be, put it to a soft vote here in Discourse.