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 site1000h-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.lockwith any new package versions - Installs dependencies for
enjoy,1000-hours, and1000h-portalsimultaneously
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 .viteto 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 --versionfrom within theenjoyworkspace - 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) oryarn make(distribution) - Publish via
yarn publishwhen 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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →