How to Update Everyone‑Can‑Use‑English to the Latest Version: A Complete Guide

Pull the latest code with git pull, run yarn install to refresh dependencies, then rebuild the Electron app with cd enjoy && yarn dev for development or yarn make for distribution.

The everyone-can-use-english project maintained by ZuodaoTech is a monorepo containing an Electron desktop application for English learning. If you're running a local copy or contributing to development, keeping your installation current requires synchronizing code, updating Yarn workspace dependencies, and rebuilding the application. This guide walks through the exact commands and file locations based on the repository source code.

Prerequisites: Understanding the Monorepo Structure

Before updating, it's important to understand how the repository is organized. The project uses Yarn workspaces to manage three distinct packages from the root package.json:

  • enjoy/ – The Electron desktop app (primary application)
  • 1000-hours/ – The documentation site
  • 1000h-portal/ – The content publishing portal

The root [package.json](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/package.json) declares these workspaces, enabling Yarn to orchestrate commands across all packages.

Step 1: Sync Your Local Repository

First, ensure your local branch matches the remote main branch exactly.

git fetch --prune
git checkout main
git pull origin main

The --prune flag removes stale remote references. This guarantees you receive the latest version bumps, security patches, and feature commits.

Step 2: Verify the Target Version

Check which version you're about to install by inspecting the Electron app's metadata.

cat enjoy/package.json | grep version

Alternatively, open [enjoy/package.json](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/enjoy/package.json) directly. The version field (e.g., 0.7.9) determines what the rebuilt app will report in its About dialog.

Step 3: Refresh All Dependencies

From the repository root, run Yarn to install across all workspaces:

yarn install

This command:

  • Resolves workspace interdependencies
  • Updates yarn.lock with any new package versions
  • Installs dependencies for enjoy, 1000-hours, and 1000h-portal simultaneously

Step 4: Rebuild the Electron Application

Navigate to the enjoy workspace and choose your build target:

Development Mode (Hot Reloading)

cd enjoy
yarn dev

The dev script in enjoy/package.json performs several tasks automatically:

  • Executes rimraf .vite to clear stale build artifacts
  • Downloads required dictionaries
  • Launches Electron with development tools enabled

Distribution Build (Installers)

cd enjoy
yarn make

This produces platform-specific installers (.deb, .dmg, .zip, etc.) in the out/make/ directory. The make script calls Electron Forge to package and build distributables.

Step 5: Publish a New Release (Optional)

If you have maintainer permissions and need to push a release:

cd enjoy
yarn publish

This executes electron-forge publish, which uploads builds to GitHub Releases and/or S3. The script requires environment variables (GITHUB_TOKEN, S3 credentials) injected at runtime—these are not stored in the repository.

Step 6: Confirm the Update

Verify success through any of these methods:

  • Open the app and check Help → About (or equivalent)
  • Run electron --version from within the enjoy workspace
  • Check the live version badge at https://enjoy.bot/api/config/app_version

The root [README.md](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/README.md) displays a "Latest Version" badge that sources from this API endpoint, reflecting the current production release.

Key Files Reference

File Purpose
package.json (root) Workspace declaration and monorepo configuration
enjoy/package.json App metadata, Electron scripts (dev, make, publish), dependencies
enjoy/README.md Quick-start documentation for the desktop app
enjoy/src/renderer/ UI source code rebuilt on each yarn dev or yarn make

Summary

Updating everyone-can-use-english follows a predictable workflow:

  • Sync code with git pull origin main
  • Check version in enjoy/package.json
  • Install dependencies with yarn install
  • Rebuild using yarn dev (development) or yarn make (distribution)
  • Publish via yarn publish when releasing (maintainers only)
  • Verify through the About dialog or API endpoint

Frequently Asked Questions

How do I know if my update succeeded?

Compare the version shown in the application's About dialog against the version field in enjoy/package.json. The live API at https://enjoy.bot/api/config/app_version also reports the current production version.

What if yarn install fails after pulling new code?

Delete node_modules directories and the lockfile, then reinstall:

rm -rf node_modules */node_modules yarn.lock
yarn install

This forces a clean resolution of all workspace dependencies.

Can I update only the enjoy workspace without touching others?

Yes—run cd enjoy && yarn install to scope dependency updates to the Electron app only. However, full updates from the root are recommended to maintain workspace compatibility.

Why does yarn dev clear the .vite directory?

The dev script calls rimraf .vite to eliminate stale build artifacts. This prevents cached assets from causing runtime errors when source code changes significantly between versions.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →