Funding request: TypeScript integration


(Dmitri Pisarev) #1

Dear team!
I want to apply for another request for funding. I know that it’s late, but let me explain the situation and why I think it would be important to slightly adjust our plan for spending our remaining budget this year.

Background

A few months ago we came to the conclusion that we desperately need static typing for the Neos UI. We did retrospective analysis and it seems about 50% of bugs that we’ve recently fixed would not have occurred had we have static typing in place. Yes, I was quite stunned too by that number.
So we dived with all our effort into this task. Our main hopes were to do most of the TypeScript integration during the previous sprint, and we have indeed achieved quite a lot, but unfortunately, we have accomplished way less than we initially hoped for. I rough guestimate for the remaining work would be at least 100h. If we would be doing it in our spare time, it would take us at least half a year to finish this. It would not be a problem in itself, but the thing is that we would be severely hindered in bugfixing during that time, as every single bugfix would cause conflicts (because we rename every file from .js to .ts). So we either need to put our whole energy and finish TS integration quickly, or discard the idea and roll back all TS code.

Participants

So yeah, I propose to fund this work, as I still believe TypeScript would be a really good investment for the stability of our UI.
The key person in the TypeScript integration is Robert Baruck, a Sandstormer. He has shown to have expert knowledge of TypeScript and has helped immensely to get the integration going during the sprint. He would be able to put 30h of work into this during December, and I believe his contribution would be extremely valuable.
I personally can put 60h of work in December, I have a full spare week of vacation to put into this.
Also if anyone who is deep into the project wants to give us a hand, that would be awesome too, but I know that most of those currently focus on the CR rewrite.

Guestimates

It’ really hard to come up with exact estimations for this task but the process in general looks like this: we traverse every package in the project, starting with the leaf packages (i.e. most dependency-free), and gradually moving towards the root ones, finishing with neos-ui itself.
If we don’t manage to complete the whole rewrite in those 90h, it would still be possible to freeze the rewrite at one of the intermediate steps, e.g. converting only the leaf packages, and leaving the higher level packages for later. But I hope we have a chance to finish it this December!

Here is LOC of all packages that need TS integration:

Name LOC
Leaf packages
react-ui-components 5206
neos-ui-redux-store 2782
neos-ui-backend-connector 984
utils-helpers 110
neos-ui-contentrepository 292
neos-ui-decorators 53
neos-ui-extensibility 534
neos-ui-i18n 149
neos-ui-validators 388
2nd order
neos-ui-containers 133
neos-ui-guest-frame 1221
neos-ui-editors 4216
neos-ui-sagas 1418
neos-ui-inspector 73
neos-ui-views 684
neos-ui-ckeditor5-bindings 1621
last order
neos-ui 7498

In practice that means that we’ve done about 5000 out of 27000LOC, but we should get to speed now, since the most time during the sprint was spent on figuring out the general approaches how to do things, and not actually doing them.

Finances

Sandstorm’s rate would be 100€/h. I’m ready to work for 50€/h. In total that would be 30 * 100 + 60 * 50 = 6000€.

So, how do we proceed with this? Is there still a chance for this late call?

Yours,
Dmitri


(Sebastian Kurfuerst) #2

Hey Dmitri,

Thanks for the detailed writeup :slight_smile:

I would be perfectly happy to go forward with this, but we can only spend what we have on the
bank account. There, it looks as follows:

  • End of August, we had about 40k on the bank account
  • we voted for the following budgets until end of 2018:
    • 12k documentation sprint
    • 4k Release Management Neos 4.2
    • 4k Release Management Neos 4.1
    • 16k current phase Neos CR
  • this means we had 4k left.
  • Funding Request: Trademark Administration coincidentally is about 4k.
  • this means the 40k are fully planned by now.
  • I then checked what we earned from end of August to now: about 5400 €. we need to check whether this money is already needed e.g. for running the Neos CIC or so. @tobias @robert can you say something about this?
  • furthermore, there is a small travel budget for Neos Sprint Salzburg I think, which I cannot find right now (and which is not yet invoiced).

So that means we right now do not have an extra 6000 € on the bank. I could imagine the following two options:

1) We could re-allocate some of the already-allocated budgets (if they are not fully spent in 2018)

  • I wouldn’t touch Release Management & Legal Budgets as of now.
  • I’ll check with the Documentation team if they are still having a sprint this year and will invoice as planned - if they do, they’ll of course can spend their full budget as voted :slight_smile:
  • I’ll check tomorrow with the others involved in the CR rewrite; it might be an option to shift some funds to you; and then get an additional CR rewrite budget to the beginning of 2019 (as we have regular income due to the recurring badges) :slight_smile:

2) Alternatively, we could try to fundraise the 6k from various Neos agencies, e.g. by selling a special badge.

Don’t get me wrong, I’d really like to see the TypeScript UI funded; but it is just crucially important that we do not overspend & have a clear view about the financial situation.

@tobias: Is the calculation I did above sound for you, or did I mis-calculate anything? (i.e. am I actually correct that we have 5400 € more than what we had at the end of August, where you posted that we had about 40k? Or did you already calculate this in?)

@robert / @tobias: do you expect additional further funds needed for either running the CIC or paying lawyers?

@dimaip: What would be your suggestion with the above financial situation in mind?

All the best,
Sebastian :upside_down_face:


(Dmitri Pisarev) #3

Dear Sebastian,
thanks for the detailed response and care for the situation!

I had somehow anticipated that it wouldn’t be easy to get the funding after we have already done the voting an distributed the gathered funds. I just felt like it wouldn’t hurt giving it a shot and making the team aware of yet another possible way to spend the budget in a good way :slight_smile:

I don’t think it makes a lot of sense to bother the agencies again and do the full-blown fundraising for just 6K€, so if there’ll be no leftover budget for this work, I could try to self-fund myself via Twitter fundraising, though I’d certainly will not be able to gather enough funds this way to support Robert’s work, which would be quite needed.

So if we somehow manage to squeeze it in that would be super helpful to finish the TS integration effort, if not then I’ll try to look for other ways to get it finished.

Yours,
Dmitri


(Tobias Gruber) #4

Hey there,

as I see it, the budget situation is as follows:

in our piggy bank as of today are 50.500€ and there are no more subscriptions due this year.

To my best knowledge, we are still going to spend:

This leaves 13.5k€ to spend.

I didn’t see any specific plans for the “marketing” budget (5k€) or “installability of Neos” budget (5k€) and the Salzburg travel budget was next in line for 5k€.

Personally, I would rather spend our budget on things like Dmitri’s suggestion than keep it reserved for allocated but not used work. Taking this thought further, I wouldn’t even mind the risk of overspending a little, as we have the next round of subscription funds coming in in January, to which point we could postpone some invoices, if we really do manage to spend all of our funds until the end of the year. A much better situation than seeing thousands of Euros go to taxes…

So for me this leaves the question, how we handle the sprint budget and Dmitri’s request, which probably won’t fully work in parallel. I personally would give my support to Dmitri’s request and leave it to the sprint participants (and their employing agencies) if they want to invoice the sprint travel costs to Neos. If they do - which I would fully understand as the budget was requested and next-in-line approved - that’s fine and reduces Dmitri’s and Robert’s budget. Yet it is a passive support opportunity by not invoicing :wink:

Looking forward to your thoughts :slight_smile:


(Sebastian Kurfuerst) #5

Hey @tobias,

awesome :slight_smile: - thanks for the summary! As already written by you; we would not use the full amount of the ES CR this year; so we’d like to give back 3 days = 2400 € to the pool.

@dimaip: Could you get in touch with the people from the last sprint to figure out who wants to invoice how much?

@dimaip - so that means there are very likely enough funds available; I’d say you could furthermore create a quick poll here to get the team member voting done; and then (proided good outcome) you can start working?

All the best,
Sebastian


(Dmitri Pisarev) #6

Just to clarify, I believe that the documentation sprint is an equally important matter and I would hate to put any pressure on it with our additional funding request, that just won’t be fair. Let’s look for an opportunity for the both projects to happen in parallel (e.g. Sebastian’s suggestion), if not then look for other ways to fix the UI situation.

Me and Yuri have already invoiced 413eur. I don’t think there were any other travel reimbursement RFCs besides ours?


(Dmitri Pisarev) #7

So, based on the information in the discussion above, I ask all team members to vote:

  • Grant the funds
  • Deny the funds
  • Further clarify the situation

0 voters


(Tobias Gruber) #8

I mentioned the Documentation sprint with 12k as a reserved budget. I had a quick chat with Bastian and the sprint is planned to take place. So no pressure on it from my perspective :slight_smile:


(Sebastian Kurfuerst) #9

Hey :slight_smile:

@dimaip based on the 15 positive votes from team members, I’d say go ahead and do it :upside_down_face:

All the best,
Sebastian


(Dmitri Pisarev) #10

Dear team!
Thanks a lot for providing us with this opportunity to invest into the quality of the UI’s codebase!

I’ve created a timesheet where we’ll log our progress: https://docs.google.com/spreadsheets/d/1tieQDe7w3NuNT8pwZKsVvK6H7oTZtkdUaobrk7h8qnw/edit?usp=sharing

I will keep you posted on the progress.

Yours,
Dmitri