Hi everyone!
This is my report #1 for the unMessage GSoC project.
# Pre-coding period
Since the project was accepted, my mentors and I started to plan what exactly had to be done for each task and I started to learn the things I would have to know in order to work on each of the tasks we selected. While I was learning I picked a part of each task and implemented them, so that my mentors could see if I was in the right direction. I am going to use bullet lists to briefly describe what I did for each task. More details can be found in their tickets.
## Improve setup script #35 [0]
- Improved package metadata and requirements definitions
## Use attrs #34 [1]
- Changed a class to use attrs in its attributes and validation
## Add a logger #30 [2]
- Created a logger using twisted.logger - Sends logs to a file when using any of the UIs - Displays logs using the stdlib's logger when using the GUI
## Add a test suite #33 [3]
- Created the tests module - Added some hypothesis tests for the packet factories - Enabled Travis CI [4] and Codecov [5] integration
## Support file transfer #12 [6]
- Created serializable classes for file elements using attrs - Added tests for the serialization - Described how the file elements would be used [7]
## Make functions/methods asynchronous #21 [8]
- Made functions/methods involved in sending an element asynchronous
# Coding period
Since the coding period started, I began to work on the tasks to be delivered for the first evaluation (#35, #34, #12, #30).
## Improve setup script #35 [0]
- Added installation instructions to use pip in a virtual environment - Pinned requirements to their latest versions - Finished the task - Created an extra task to automate version and hash pinnings #49 [9]
## Use attrs #34 [1]
- Changed most of the existing classes to use attrs
## Add a logger #30 [2]
- Implemented a custom stdlib logger to use the file logger's format
## Support file transfer #12 [6]
- Started working on the file transfer using the new function/methods that send elements (which are now asynchronous)
Most of the code I worked on has been merged to the develop branch [10] and what has not been merged can be found in my fork's [11] branches.
I also created a project on GitHub to keep track of the tasks [12].
# What's next
The next steps for this first set of tasks is:
- Finish changing some of the classes that do not use attrs yet - Continue working on the file transfer to send/receive requests, transfer files and handle some common errors involved in this process - Spread log statements in the code
Thanks, -Felipe
[0]: https://github.com/AnemoneLabs/unmessage/issues/35 [1]: https://github.com/AnemoneLabs/unmessage/issues/34 [2]: https://github.com/AnemoneLabs/unmessage/issues/30 [3]: https://github.com/AnemoneLabs/unmessage/issues/33 [4]: https://travis-ci.org/AnemoneLabs/unmessage [5]: https://codecov.io/gh/AnemoneLabs/unmessage [6]: https://github.com/AnemoneLabs/unmessage/issues/12 [7]: https://github.com/AnemoneLabs/unmessage/issues/12#issuecomment-304128995 [8]: https://github.com/AnemoneLabs/unmessage/issues/21 [9]: https://github.com/AnemoneLabs/unmessage/issues/49 [10]: https://github.com/AnemoneLabs/unmessage [11]: https://github.com/felipedau/unmessage [12]: https://github.com/AnemoneLabs/unmessage/projects/1