Open neil-marcellini opened 1 month ago
@neil-marcellini we could start with IOU.getTrackExpenseInformation, IOU.shareTrackedExpense, IOU.categorizeTrackedExpense after these three IOU.trackExpense. These functions mostly share common data and could be refactored with ease for a start. I would like to work on this and following if you want external contributor to work here.
Job added to Upwork: https://www.upwork.com/jobs/~021846632713060454080
Triggered auto assignment to Contributor-plus team member for initial proposal review - @dukenv0307 (External
)
Sure @ChavdaSachin, please go ahead and start with only IOU.categorizeTrackedExpense
📣 @dukenv0307 🎉 An offer has been automatically sent to your Upwork account for the Reviewer role 🎉 Thanks for contributing to the Expensify app!
📣 @ChavdaSachin 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app!
Offer link Upwork job Please accept the offer and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻 Keep in mind: Code of Conduct | Contributing 📖
Sounds good...
I am OOO for 2 days on an emergency business , will start working as soon as I am back.
@neil-marcellini, @ChavdaSachin, @dukenv0307 Huh... This is 4 days overdue. Who can take care of this?
work in progress.
@neil-marcellini, @ChavdaSachin, @dukenv0307 Still overdue 6 days?! Let's take care of this!
@neil-marcellini, @ChavdaSachin, @dukenv0307 10 days overdue. I'm getting more depressed than Marvin.
How's it coming along?
hi @neil-marcellini sorry for the delay, I am actually trying to implement it on a scale - coz all tracking functions are closely tied together, So I am figuring the whole network these functions have and refactor all at once so that would be a significant improvement and then all tracking related function would probably accept somewhere around 5-7 props that's it. But it is taking time coz network is bigger.
I figured refactoring only one function - IOU.categorizeTrackedExpense would not be much of improvement so... Let me take my time and trust me you would love the results.
Probably switch it to weekly.
@neil-marcellini, @ChavdaSachin, @dukenv0307 12 days overdue now... This issue's end is nigh!
Hi @ChavdaSachin. I appreciate your desire to tackle it all at once, but it's a lot easier for everyone involved if we do it in pieces. It will be faster to get the PR up for review and get it approved. I rather have many small PRs than one big one. Could you please split up your existing work into several PRs?
This issue has not been updated in over 14 days. @neil-marcellini, @ChavdaSachin, @dukenv0307 eroding to Weekly issue.
I rather have many small PRs than one big one
@neil-marcellini I'd like to work on one of the PRs if we create other issues.
hey @neil-marcellini I have my code prepared for IOU.categorizeTrackedExpense
but I am unable to test it.
There seems to be a BE issue related to categorizeTrackedExpanse when tax Rates
feature is enabled for the workspace.
Steps:
Ok interesting. If that error also occurs on main you can ignore it. Can you test on a workspace without tax rates? Please raise a draft PR.
I rather have many small PRs than one big one
@neil-marcellini I'd like to work on one of the PRs if we create other issues.
Ok thank @mkzie2. Please pick a function unrelated to IOU.categorizeTrackedExpense
and go ahead and refactor it.
📣 @mkzie2 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app!
Offer link Upwork job Please accept the offer and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻 Keep in mind: Code of Conduct | Contributing 📖
Draft is up, please take a look...
Problem: Many functions in the App repo have a very large amount of parameters, making it very hard to work with them. If you need some data that isn’t available with existing parameters you need to add a new one. The safe way to do that is to add it as an optional param at the end of the list. In order to pass it to the function from an existing call you have to fill in all params between the last one used and this new last param. It’s time consuming to fill out the defaults, and any required params require careful considering. Re-ordering parameters is risky and requires updating all existing calls. Also, we often have cases where we have a transaction object in the component, then call a function passing various fields of the transaction split out into n parameters. Wouldn’t it be so much easier to pass the original object? Sometimes we also pass the ID of the object in Onyx only to retrieve it from an Onyx connection later.
Solution: Gradually refactor functions to take in parameter objects, where it’s easier to re-order. Strive to minimize the number of fields. Group parameters into sensible sub-objects. Thrive :smile:
Original Slack thread.
To do list
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @dukenv0307