Report 0: Community Bonding Weeks


Progress for the community bonding weeks includes establishing contact as well as meeting the mentors and other GSoC students. The project progress is listed below.

  1. Gaining Familiarity

    • Got familiar with the plugin architecture from Plugin System Architecture article from Joplin website.
    • Read about the Node process object and how it is extended into renderer processes in Electron apps.
    • Read about plugin creation using the generator script as described here
  2. Checking electron process details

    • Used top command in linux to list the main and renderer processes of the electron app.

    • Created a sample plugin and added it as a development plugin for testing purposes.

    • Went through pluginRunner.ts and logged process ids to console

       pluginWindow.webContents.once('did-finish-load', () => {
         console.log("PID", pluginWindow.webContents.getOSProcessId());

      This enabled me to obtain OS process IDs in the main proccess.


      P.S. The PID in the console is coherent with the top output, the screenshots are from different development sessions.


Plans for the upcoming week, in no particular order.

  1. Obtaining exhaustive resource usage details for renderer processes.
  2. Finding a way to poll the details at specific intervals to update the resource usage.


As not a lot of extensive coding was done, the problems generally consist of logical and architectural dilemma.

  1. Whether the plugin monitor can be included as a plugin itself, so that users can choose if they want to use it. This approach will require adding additional resource usage metric endpoints to the Joplin API.
    I would love to hear the community suggestions on this, if it is at all required.