Google summer of Code has been a great learning experience for me and has helped me in developing my programming skills. While exploring and learning the different areas of Zulip, I also learned how to maintain the quality of the code and how to structure it properly. I would like to thank my mentor Neil Pilgrim for his constant guidance and code reviews, and the entire zulip community for timely feedback and help. I would want to continue contributing to Zulip in future and give back to the community that has taught me so much.
For task management, I used Trello which helped me to be efficient. Here is the link to my trello board. I have broadly covered the following areas during the course of this project:
I worked on updating the styling and added new features in poll and tictactoe widget. I also worked on adding a new widget - todo widget. I added /settings
slash command, and I have open PRs on the slash commands /mute_topic
and /subscribe
. I have an open PR on the zgram_box
prototype, where the zgrams are moved above the compose box.
I worked on increasing the test coverage of the this tool and added import/export support for all the necessary tables which hadn't yet been covered like RealmAuditLog
, Huddles
etc. Additionally I worked adding batchwise processing of messages in slack import. I also create a new module import_util
which contains the common import functions.
I created the gitter import script which supports the export of channels, users, messages and avatars from gitter along with tests, documentation of the script. I also added a management command and batchwise processing of messages in this script.
I initially worked on testing the current Zulip - IRC bridge in python-zulip-api
and also tested the Zulip - IRC bridge via Matrix integration. With that, I worked on this bridge script by adding error handling and proper methods of matrix integration after looking at the Matrix documentation. Along with this, I also updated the documentation.
I worked on adding tests and new features to the trivia bot and tested it.
With the above, I also worked on minor issues in outgoing webhooks and upgraded mypy to the version 0.620. I also did a few code reviews.
Total number of commits merged: 26 + 104 = 130
Application Review Period (March 27, 2018 - April 23, 2018) and Community Bonding Period (April 23, 2018 - May 14, 2018)
number of commits: 26
- #8816: slack importer: support reactions.
- #8956: docs: Update import data from slack doc.
- #8943: [WIP] Import script: Fixes.
- #9035: slack import: Support Custom profile fields.
- #9053: scripts: Remove the depreciated script 'postgres-reset-sequences'.
- #8992: Import: Add subdomain in the import script.
- #9110: Slack import: update docs and add a comment.
- #9097: Slack importer threading.
- #9016: Import script: Fix bugs.
- #9282: Slack import: Fixes.
Coding Period (May 14, 2018 - August 10, 2018) Total number of commits: 104
Number of commits: 91
- #9462: docs: Add documentation for outgoing webhooks.
- #9507: export: Support export of Reactions and Custom emojis.
- #9564: import: Clean the management command.
- #9582: tests: Increase test coverage for
export.py
. - #9491: Matrix: Add integration documentation.
- #9583: Matrix: update the integration documentation.
- #9603: Import docs: Add macro for import-login section.
- #9639: slack import: Message formatting.
- #9758: zcommands: Add zcommand module and separate test module.
- #9788: zcommand: Strip the slash in the server side.
- #9722: slack import: Import skype and phone data of users.
- #9852: widgets: Add basic styling for tictactoe widget.
- #9723: import: Process messages batchwise in slack import.
- #9833: widgets: Polish poll widget.
- #9874: widgets: Add todo widget.
- #9884: import: Create subscription_created events in RealmAuditLog.
- #9929: tests: Refactor test_import_realm for clarity.
- #9547: Import: Support import of huddles.
- #9943: tests: Refactor tests for import of huddles and fix mypy bug.
- #9963: import: Map user IDs for custom profile field of type 'USER'.
- #9569: import: Import from gitter.
- #9933: export/import: Cover all Zulip tables that should be exported/imported.
- #10025: import: Fix BotStorageData and BotConfigData import.
- #9994: outgoing webhooks: Fix sample timestamp, service_id and token for slack outgoing webhooks.
- #10073: import: Add
get_db_table
function. - #10074: tools: Upgrade mypy to 0.620.
- #10096: docs: Update import-from-gitter doc.
- #10122: import: Create
/import_data
directory. - #10147: [WIP] import: Create import_util for common functions.
- #10258: import: Fix rendered_content in imported messages.
- #9814: outgoing webhooks: Warn user that PMs are not supported in Slack-format webhook.
- #10272: slack import: Add
files
keyword support for uploads and addlast_modified
value in emoji records.
Number of commits: 13
- #383: Matrix-Zulip bridge.
- #396: Matrix: Naming convention changes.
- #419: bots: Add tests for trivia_quiz bot.
- #421: bots: Add proper error handling for trivia bot.
- #422: bots: Improve response at 3 wrong answers in trivia bot.
- #419: bots: Add tests for trivia_quiz bot.
- #436: Trivia bot: cleanup.
- #9283: slack import: Improve support of Slack threads and improve file comments.
- #9754: slash commands: Create
/mute_topic
. - #9775: slash commands: Add
/subscribe
command (via zcommand). - #9545: Import: system bots should not be imported again if they already exist.
- #10203: [do not merge] zgram_box: Proof of concept.