github.com/ronaksoft/rony@v0.16.26-0.20230807065236-1743dbfe6959/CONTRIBUTING.md (about) 1 # How to Contribute 2 These are mostly guidelines, not rules. Use your best judgment, and 3 feel free to propose changes to this document in a pull request. 4 5 ## What should I know before I get started? 6 7 There are a good few numbers of packages. All the packages which would never need to be accessed from 8 outside the Rony are placed in the internal package. 9 10 #### [Tools](tools) 11 > For developing Rony we needed many helper functions, since we think they may be handy for others too, we 12 placed them in this package. However, the reason of its existence was NOT to be 13 a library for external use. 14 15 #### [Pools](pools) 16 > The auto-generated codes fully attached within Rony, we made this package also available to external 17 worlds. This package handle pooling of frequently used structures such as Timers, WaitGroups, Buffers ... 18 19 20 #### [Store](store) 21 > Store packages contains the required functionality for accessing local storage, backed with BadgerDB. 22 23 #### [Registry](registry) 24 > Registry holds names of the constructors (i.e., Aggregates, Models, Methods, Requests, Responses ...). 25 In Rony messages identified by a 64bit digit instead of long named strings. This approach off-pressure 26 the golang runtime GC and also we wanted the lowest possible bandwidth overhead in RPC messages. 27 28 #### [Edge](edge) 29 > The core package of Rony. All the other components glued together in this package. 30 RequestCtx, DispatchCtx, EdgeServer etc defined in this package. 31 32 #### [EdgeC](edgec) 33 > Edge client package contains required structures and functionalities for Rony clients to interact with 34 Edge servers. 35 36 ## Coding Convention 37 38 Start reading Rony's code you'll get the hang of it. We optimize for readability: 39 40 * We ALWAYS put spaces after list items and method parameters ([1, 2, 3], not [1,2,3]), around operators (x += 1, not x+=1), and around hash arrows. 41 42 * This is open source software. Consider the people who will read your code, and make it look nice for them. It's sort of like driving a car: Perhaps you love doing donuts when 43 you're alone, but with passengers the goal is to make the ride as smooth as possible. 44 45 * GolangCI linter with the provided config `.golangci.yml` file exists. Make sure you have zero warnings before your 46 pull request. 47