Skip to content

Instantly share code, notes, and snippets.

@tommyip
Last active August 24, 2019 06:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tommyip/2799ada1c8c3c2951d9b1d25ca6c44ab to your computer and use it in GitHub Desktop.
Save tommyip/2799ada1c8c3c2951d9b1d25ca6c44ab to your computer and use it in GitHub Desktop.
GSoC 2019 Work Product (Thomas Ip)

GSoC 2019 Work Product

This summer I worked on improving the developer-friendliness of the frontend toolchain as well as fixing other miscellaneous issues. It has been a rewarding experience to work with Zulip and learn from this awesome community. Huge thanks to @tabbott and @andersk for their help and reviews on my work.

Below is a list of work I did during the summer:

  • Upgrade frontend dependencies

    This series of PRs upgraded almost all frontend dependencies. A few package upgrades does not work well with our setup or have performance regressions so they are left as it.

  • draft: Fix draft list not being able to scoll to bottom. (#12558 / merged)

  • Encode brackets in URI to avoid conflict with markdown links. (#12583 / merged)

  • docs: Update and polish docs on the static asset pipeline. (#12585 / merged)

    The documentation on our frontend setup was not updated through various configuration and language changes. This commit fixes the mismatch between the docs and the actual code.

  • blueslip: Make stacktrace more readable. (#12608 / open)

    The existing blueslip popup does not source-map the stacktrace produced from an error, which makes it not as useful as it could be. This PR fixes that issue as well as adding a code context window to further aid debugging.

  • refactor: Convert 0/2 to "off"/"error" in eslintrc. (#12628 / merged)

  • lint: Add --fix option to ./tools/lint. (#12639 / merged)

  • webpack: Use handlebars-loader to handle frontend templates. (#12667 / merged)

    • templates: Fix wrong path to edit-embedded-bot-service template. (#12706 / merged)
  • Preparation for TS migration (#12858 / open)

    Adding typings to our javascript files is fairly straightforward. What took me a lot of time is figuring out how to modify our unit-testing facility to handle the different module system, in particular how to support function stubbing. The solution ended up pretty simple and requires minimal changes to the test files.

  • Migrate people.js to typescript (#12779 / open)

  • typescript: Migrate hash_util. (#12845 / open)

  • markdown: Render ordered lists using <ol> markup. (#12921 / open)

  • settings: Move API key form into its own modal. (#12989 / merged)

  • Make table-based widgets sortable. (#13017 / merged)

  • Follow-up to #13017 / settings modal enhancements (#13049 / merged)

A complete list of my PRs can be found here.

I will continue the work on TypeScript migration and other open PRs after GSoC. I will also love to contribute to the project in other areas whenever I can.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment