Weekly Update 1 - Initial Setup and Planning

Progress

Week 1 Goals from the Project Proposal:

  • Set up a complete development environment.
  • Engage with the Joplin community and potential mentors to discuss the project scope and objectives.
  • Begin detailed planning, including defining specifications for the update process and identifying potential challenges and solutions.

All the above tasks were completed either during this week or the bonding period.

Plans

In the next 2-3 weeks, my objective is to implement a Background Update Download Service as outlined in my project proposal. In Week 2, I will :

  • Integrate Electron's modules into the application and conduct tests on my Windows laptop. The focus will be on developing functional code to manage update downloads. Initially, I will attempt to implement automatic downloads. If this proves too complex, I will switch to user-triggered manual downloads and schedule automatic downloads for their designated weeks.
  • Examine the existing code to understand how the current update system works. This involves reviewing the mechanisms for detecting, downloading, and applying updates. This understanding will help identify potential areas for improvement and ensure seamless integration of the new service with the existing system.

Problems
Based on my research, Electron's autoUpdater module only supports macOS and Windows. There are two potential solutions:

  1. Mixed Approach (with platform-specific tools)
  • Windows + MacOS -> Use Squirrel, integrated into electron-builder, alongside Electron's built-in autoUpdater module.
  • Linux -> Use update.rocks
  1. Using electron-updater for all platforms
  • Electron-updater provides a unified solution (one tool for all platforms), simplifying the development and maintenance. However, this results in larger update packages.

The mixed approach may lead to inconsistencies due to the use of different tools, but it will be more optimized. My recommendation is to use a single tool for all platforms, namely electron-updater.

1 Like