[tor-project] GSoC 2017 - unMessage: Report #1

Felipe Dau dau at riseup.net
Fri Jun 9 23:39:36 UTC 2017

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
- Spread log statements in the code


[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

More information about the tor-project mailing list