FPA icon indicating copy to clipboard operation
FPA copied to clipboard

CWG budget

Open PaddleStroke opened this issue 9 months ago • 26 comments

Proposal description

This proposal is to set aside an amount of 5000€ on the quaterly total of 20 000€, for the CWG (CAD Working Group) to use to setup bounties on whatever bugs they think are important.

Why? Because I think the current grant system is not the most efficient use of FreeCAD's money.

As you may know, I was part of the committee in 2024, and so happened to open a few grant proposals as well. So I have a hindsight of how both sides are impacted by the current grant workflow.

Recently we changed to a quarterly grant process. I really don't think it's great :

  • From the reviewer perspective, that does not mean less reviews to make. On the contrary it means that more reviews will have to be done at the same time (after the deadline).
  • From the proposing party point of view, this is a really bad thing. It slows down things considerably. This is just adding a 3 months of additional delay. The review process is already very slow. From what I've seen it already takes about 2 months to be processed. With the proposed quarterly workflow what is going to happen is that proposals are going to rot for 3 months, before starting the actual process. Bringing the time between the proposal and the decision to 5-6 months. From a freelance perspective, this delay is really bad.
  • Since each project takes such a long time to review, people are going to make big proposals. Because you do not plan a project for 6 months for $500. This will also discourage any new contributors. Only the usual grant-requesting people will be around. Because they can plan ahead so they can set up vague grant proposals for the next 3 years. But a new developer will not come post some project and sit for 6 months. So overall this is imo a bad move.

I think what the committee should do is the exact opposite. It should speed up the already very slow process. As to encourage much smaller projects.

My suggestion of a better workflow is :

  • Quarterly budget given by the FPA.
  • Remove the FPA approval on projects. Give the committee the decision power. The FPA is already voting on the budget given. This way this removes half of the approval process.
  • Setup weekly (or bi-weekly) meetings for the committee members. During these meetings the grant proposals are discussed and decisions are taken or precisions asked. Similarly to merge meetings.
  • Allow not only 'grant proposals' but also 'bounties request'. So that any user (not developper) can open a request to put a bounty on an outstanding issue/feature request.

This workflow suggestion has so far not been adopted for various reasons. Which is why I came up with this proposal

The proposal :

  • Set aside 5000€ from the quaterly budget.
  • CWG members decide on what issues to allocate bounties

This way we get to test the workflow I proposed without actually commiting to it. And I think this is going to solve a lot of important issues.

Deliverables

No response

Timeline

No response

Risks and mitigation

No response

Compensation

5000€

About you

No response

PaddleStroke avatar Feb 13 '25 11:02 PaddleStroke

It is impossible not to agree with your observations about the current system. I think 3 months is definitely a long time. Of course, I understand and appreciate that FPA is trying to be more professional. But how much this is possible is a big question mark. The question mark is that there is a second group to manage the money. In fact, I tried to produce a solution against this situation. I see the solution there more likely.

https://github.com/FreeCAD/FPA/pull/274

The fact that it is very direct in this solution has very admirable aspects in terms of directly involving the community.

Reqrefusion avatar Feb 13 '25 11:02 Reqrefusion

I, for one, would love to work on some projects that are covered by bounties, not grants. This is mostly because bounty does not need so much commitment from me. This is something that I can play with, try if I can solve the issue and then submit draft PR against it when I am more or less certain that I can finish so other people know that I am working on it already. This is much easier process for volunteers who are working on project on personal time after work and are not able to make clear commitment.

kadet1090 avatar Feb 13 '25 11:02 kadet1090

This is really a proposal to change the budgeting, rather than a grant proposal itself, so I've moved it to the main FPA repo. The timing is perfect, though, because we are just now finalizing the 2025 budget. I think the proposal is a reasonable one, and a good way to test out the idea of pre-allocating the funds to specific tasks, instead of (or in addition to) the current process. If the @FreeCAD/cad-advisory-group is willing to spearhead the effort I am totally in favor of it. We will need to add this to next week's FPA meeting agenda, @PaddleStroke can you please put it on there?

chennes avatar Feb 13 '25 17:02 chennes

If the idea would be a success we may try similar approach with DWG. There are a lot of small stuff that we could put small bounties on and encourage people (including myself) to fix them for relatively good gain for the project.

kadet1090 avatar Feb 13 '25 17:02 kadet1090

@chennes the CAD advisory group could definitely do something. There already is the list of P1 issues on the board that could be attached a reward. As the time goes and issues are closed, new one would be promoted as P1 and could get their own reward.

pierreporte avatar Feb 13 '25 17:02 pierreporte

What here is to avoid making mistakes. Allocating a budget of $5000 to use CWG for Bounty somehow. Personally, I suggested Pre-Approved Grant for things like this. However, the mechanism of operation was different. More precisely, there was a defined mechanism of functioning. We will watch and see how this will work right now.

Reqrefusion avatar Feb 13 '25 18:02 Reqrefusion

I find the proposal indeed interesting. It solves a particular problem with the new quarterly schedule (the long approval times for someone willing to do just a smaller $500 job). The main issue is always the same, who's going to do it, and if the CWG is ready to do that, there are no more obstacles...

The removal of the FPA approval for grants is another idea worth debating, the main problem I see there is that more than often the review committee final opinion is somewhat fuzzy and unclear, and a vote afterwards is still something needed for a solid decision. Of course, if the review team would carry such a vote (which might happen with the new system), then indeed there is some redundancy that could be removed.

There is still one problem to solve, which is what about people wanting to ask for a 500 grant which is not covered by a CWG bounty. It's indeed long to wait for 3+ months. But let's go one step at a time...

yorikvanhavre avatar Feb 14 '25 12:02 yorikvanhavre

I'd also prefer to put bounties on critical issues or priority features instead of "apply for whatever you want to do" grants. So basically attach grants to issues before they get solved. This way the efforts can be aligned towards the overall roadmap.

maxwxyz avatar Feb 14 '25 12:02 maxwxyz

The removal of the FPA approval for grants is another idea worth debating, the main problem I see there is that more than often the review committee final opinion is somewhat fuzzy and unclear, and a vote afterwards is still something needed for a solid decision. Of course, if the review team would carry such a vote (which might happen with the new system), then indeed there is some redundancy that could be removed.

Here, voting is not abolished, there is only a transfer. In other words, voting is actually done by allocating the budget.

I'd also prefer to put bounties on critical issues or priority features instead of "apply for whatever you want to do" grants. So basically attach grants to issues before they get solved. This way the efforts can be aligned towards the overall roadmap.

For "critical issues or priority features" I think a Pre-Approved Grant would be more appropriate than something like this.

Reqrefusion avatar Feb 14 '25 14:02 Reqrefusion

The main advantage of @PaddleStroke's proposal as far as I am concerned is that it isn't putting more work on my plate. The "Pre-Approved Grant" program places significant responsibility on the existing Grant Review Committee, which I chair. That committee can't take on a parallel approval process to the existing grant program purely because I don't have time to administer it (and I couldn't convince anyone else to take over the chairperson role). The current proposal here eliminates that problem, and puts the administrative onus on @pierreporte. If he's happy to take that role on, I'm thrilled to support the effort.

chennes avatar Feb 14 '25 15:02 chennes

CWG already did amazing job with priorities so half of the job is already done. The rest is to divide budgets based on how hard (which can and should be done in cooperation with developers) and important task is and then confirm funding with FPA and perhaps adjust it a bit. This is process that can be done asynchronously for the most part. I'd happily take time to help with estimating how hard certain tasks are.

kadet1090 avatar Feb 14 '25 16:02 kadet1090

Agree with @kadet1090. I think that it could be a matter of assigning an amount to each issue listed in the P1 priority list. Maybe we will find a better way, but it’s a good starting point.

I’ve added a new column on this list for the time estimate.

pierreporte avatar Feb 14 '25 17:02 pierreporte

20,000/year is too much, as is 25% of the quarterly grant budget.

If you want to do a pilot of "petty grants" with a one time budget of $5000, then issue a report on the pilot, I would be willing to support that financially.

Another thing is that this gives the CWG a discretionary (no vote required) signing authority that is larger than the FPA Admin Team's limit. That would be an odd arrangement from a business standpoint.

WandererFan avatar Feb 19 '25 14:02 WandererFan

Another thing is that this gives the CWG a discretionary (no vote required) signing authority that is larger than the FPA Admin Team's limit. That would be an odd arrangement from a business standpoint.

I share the same concern. FPA General Assembly is a well -defined organization CWG's structure is the question mark. Here, the CWG will make a distribution without voting, which is the question mark. However, I am not opposed to offer, I offer something similar.

Reqrefusion avatar Feb 19 '25 19:02 Reqrefusion

The final decision can be made by FPA, I personally see no problem in that - in the end these are funds of FPA, FPA however does not need to be involved in the process of picking best issues to put bounties on.

kadet1090 avatar Feb 19 '25 19:02 kadet1090

I agree that the final decision should be made by the FPA. The allocated rewards that I could propose must be validated.

pierreporte avatar Feb 19 '25 19:02 pierreporte

We discussed this in this morning's FPA meeting and decided to allocate 5000 EUR of our 20.000 EUR first-quarter grant budget to pilot the project. The CWG is given the responsibility to distribute the funds in an effective manner, and to decide amongst themselves exactly what that process is. They agree to present a report on their experiences with the program and on the funds allocations once the money has been spent. Based on that report the FPA can determine whether the program was successful and warrants another allocation, or if it needs some further refining.

chennes avatar Feb 20 '25 00:02 chennes

Also, this permits you guys attributing the 5000 EUR, and we don't have too much pressure on "solving" them all in a certain time frame. We can test and see how hard/easy/fast it is to spend those 5000 and then adjust for a next time.

I know the CWG gathers mainly on discord, but I would encourage to do things as transparent and open as possible, in a way that anybody can assess where we are, how much is attributed, how much has been done, etc. I would of course suggest using tags with github issues so tagged issues are easy to find. We already have a "bounty" tag, but it might be worth adding a new one.

The CWG will be responsible for marking/tagging/ordering the issues that are candidates for a bounty, determine how much is each bounty, and also take an action/decision when someone submits a PR for a bounty-bound issue. The FPA is ultimately responsible for doing the final payments to people who earn the bounties. Every payment made by the FPA needs a corresponding issue on the FPA repo. We can have one single issue for all the CWG bounties of that first 5000 package. There we can track all due payments, link them to the solved issue, and explain to people who earned a bounty what they need to do.

yorikvanhavre avatar Feb 20 '25 09:02 yorikvanhavre

Although I support the idea here, I think that the operation here should be in accordance with the standard procedure. First of all, the CWG needs to apply for a grant in more concrete terms and it must be voted on. In this way, this process ceases to be arbitrary and becomes more dependent on the rules. Complying with self-imposed procedures is the number one responsibility of the FPA.

Reqrefusion avatar Feb 20 '25 09:02 Reqrefusion

I have made a preliminary allocation of the 5000 € on the P1 priority list here: https://github.com/orgs/FreeCAD/projects/28/views/6

I’m open to comments.

@Reqrefusion Why would a grant be needed?

pierreporte avatar Feb 20 '25 18:02 pierreporte

@pierreporte is the amount correct? I see a lot of 75€ on issues. Especially for a working GD&T implementation I feel this is not an additional motivation for the amount of work.

Image

maxwxyz avatar Feb 20 '25 19:02 maxwxyz

A lot of them seem to be related and maybe they can be batched and implemented in one go. I'm personally fine with little bounties on issues - it is a nice bonus always.

I'm more concerned about 2k allocated for fillets - in reality no one will fix that, especially for that amount so it would be wasted budget probably. I'd much rather see it redistributed for other tools. For fillets we can put label "If you manage to fix it - please tell us - we will find a way to pay you!" but we should not block funds that could be used to do other stuff.

kadet1090 avatar Feb 20 '25 19:02 kadet1090

@maxwxyz The idea is that all the top 2 issues could be implemented by the same person, so the total amount to make TD more compliant to standard would amount to 100 € + 12 × 75 € = 1000 €. But yes it doesn’t feel great. What would you propose?

pierreporte avatar Feb 20 '25 19:02 pierreporte

@kadet1090 for OCC issue, I think that there could be a very big FPA reward. Like you get 20000 € if you can fix either fillets or kill the seam.

pierreporte avatar Feb 20 '25 19:02 pierreporte

@Reqrefusion Why would a grant be needed?

In order for the FPA to actually vote on the allocation. So now what's needed is a concrete proposal (either really specific, like "these are the bounties we are proposing" or more abstract "we plan to choose like this") as well as who the "we" is here. How does one join the CWG, who is on it now, etc. Ultimately we give grants to individuals, so probably this is going to be a grant to @pierreporte that is structured such that the payment doesn't actually go directly to him, but rather that he confirms with us each payout as it needs to be made.

chennes avatar Feb 20 '25 21:02 chennes

In order for the FPA to actually vote on the allocation. So now what's needed is a concrete proposal (either really specific, like "these are the bounties we are proposing" or more abstract "we plan to choose like this") as well as who the "we" is here. How does one join the CWG, who is on it now, etc. Ultimately we give grants to individuals, so probably this is going to be a grant to @pierreporte that is structured such that the payment doesn't actually go directly to him, but rather that he confirms with us each payout as it needs to be made.

I could not explain it better, thank you. My shorter explanation is that the general method for fund disbursement from the FPA is grant applications, and it is necessary to maintain this method to avoid exceptions.

@kadet1090 for OCC issue, I think that there could be a very big FPA reward. Like you get 20000 € if you can fix either fillets or kill the seam.

I have brought this to the agenda of FPA many times. You can bring it up if you want. Although I think that this will not go beyond a declaration of intent, I think that such a declaration of intent would be correct. And even creating a pool with other projects that use the same kernel is probably the best way to go.

The discussion regarding the amount of the award was something I was trying to overcome in my pre-approved grant. I had anticipated the acceptance of the issue there, but a settlement to be made through compensation. In fact, there was a possibility of voting in the event that the compensation was deemed incorrect. This is indeed a very good solution to overcome this problem.

Reqrefusion avatar Feb 20 '25 22:02 Reqrefusion

This is now ongoing (and has even sparked further related actions), so I think we can close the issue

yorikvanhavre avatar Jul 07 '25 13:07 yorikvanhavre