-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nim-waku
refactor 'n upstream week 12 - 16 July 2021
#639
Comments
This is nice. |
Thanks! Should be covered in #146 |
Nice proposal! @jm-clius The followings are certainly "nice to have"s but not "must-have"s!
|
Better CI log format? Window CI failed and I simply cannot find any error that causes the failure. |
Good idea, and great list of issues! Let's do it |
Thanks, @D4nte. Agree the current logs can be confusing. Added general CI improvements to list to have some visibility. Not sure how feasible it will be to change CI logs, but we can certainly review. |
Thanks, @staheri14! Added to list. |
Another candidate #654 |
Added! |
nim-waku
refactor week 12 - 16 July 2021nim-waku
refactor week 12 - 16 July 2021
nim-waku
refactor week 12 - 16 July 2021nim-waku
refactor 'n upstream week 12 - 16 July 2021
I've divided the issues in the original post into three tracks to make it slightly more readable: https://hackmd.io/beMbu_fdRymYvaXDANukIw Most issues have been merged into a single checklist that all modules should adhere to: https://hackmd.io/1imOGULZRsed2HpgmzGleA |
Moar issues: |
Closing as refactor week was completed. A laundry list of all outstanding refactor tasks is tracked in a separate issue: #688 |
Background
This is a proposal for a refactoring/backlog week, where we divide amongst ourselves and revisit some of the most pressing quality and maintainability issues in the
nim-waku
codebase to make some strides towards production-quality code.This does not necessarily have to be a "week", of course. The idea is simply that we set aside some dedicated time in between our general dev efforts to focus on getting as much technical debt squashed as possible.
The idea was born out of a recent attempt to update submodules and realising that some "nice-to-haves" in terms of best practices easily become "must-haves" after a while. :)
The dates 12 - 16 July is chosen somewhat randomly to give us enough time to prepare, yet not be too far ahead in the future.
Many of these are born out of the Nim style guide and we could likely identify a few more issues from this.
Priority issues
This is a laundry list of some of the issues I think we could tackle, roughly in order of priority:
{.push raises: [Defect]}
to every module and then add explicit{.raises }
annotation for every public function. Add-d:chronosStrictException
compiler directive for allMAKE
targets. See https://status-im.github.io/nim-style-guide/errors.exceptions.html for more.Option
wherever a return type may be empty;Result
where multiple failure paths exist. Replace checks for empty initialisations (e.g. here) with eitherOption
orResult
. Remove referenceswakunode2
setup #581: Improvewakunode2
setupNim
andJSON-RPC
): e.g. users of each API should be forced to set acontentTopic
and be unable to modify theWakuMessage
timestamp
when publishing (may also cover WakuMessage timestamp is not set #582).wakunode2
subscriptions
model #574: Simplifysubscriptions
modelWakuRelay
parameter/field initialisation #562: Clean up parameter initialisation, especially forWakuRelay
nim-waku
issuesnim-waku
structureresult
return.requestId
in FilterRPC #257: Use ofrequestId
confusing. Can probably be improved.@staheri14 @oskarth @EbubeUd WDYT? Will this be a worthwhile effort? Anything to add/alter to the priorities?
Also pinging @D4nte, as he may have some ideas as to priorities.
The text was updated successfully, but these errors were encountered: