makeplane / makeplane/plane

Docs: update CONTRIBUTING.md for Node 22+/pnpm 11+ requirements and modular namespace i18n architecture

Open Beginner friendly
#9,755 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
59.6k
Forks
5.8k
Avg merge
1d 22h
Merged PRs (30d)
49

Description

Problem Description

In CONTRIBUTING.md, two key sections contain outdated guidance that causes friction for new contributors:

  1. Environment Requirements & Local Setup:

    • Node.js: Listed as Node.js version 20+, but root package.json specifies "engines": { "node": ">=22.22.0" }. Attempting setup on Node 20 triggers engine mismatch warnings or failures.
    • Python: Listed as Python version 3.8+, but Python 3.8 is end-of-life and unsupported by modern Django; apps/api/Dockerfile.api specifies python:3.12.10-alpine.
    • Package Manager: pnpm (version 11+ via Corepack) is not listed in Requirements, despite being the required package manager for the monorepo.
    • Setup instructions: The step-by-step instructions omit pnpm install before pnpm dev, causing missing binary/module errors if contributors run steps manually or if setup.sh encounters issues.
  2. Translation & i18n Contribution Guide (packages/i18n):

    • The docs describe an obsolete architecture where translations live in a single monolithic translations.json alongside a core.json.
    • In reality, translations are organized into 28 feature-based namespace files (e.g., common.json, auth.json, work-item.json, project.json) governed by NAMESPACES in packages/i18n/src/constants/namespaces.ts.
    • Step 3 instructs contributors to modify a nonexistent private importLanguageFile(language: TLanguage) method; packages/i18n/src/core/instance.ts uses resourcesToBackend to dynamically import ../locales/${language}/${namespace}.json, requiring zero import code changes when adding a new language.
Proposed Changes
  • Update CONTRIBUTING.md Requirements to specify Node.js >=22.22.0, Python 3.12+, and pnpm >=11 (or corepack enable pnpm).
  • Clarify manual setup steps to explicitly include pnpm install prior to running pnpm dev.
  • Update the i18n architecture guide in CONTRIBUTING.md to reflect the 28 namespace JSON files, explain how keys map to namespaces, and provide the correct steps for adding a new language (updating TLanguage, SUPPORTED_LANGUAGES, and creating the namespace JSON files without needing nonexistent import methods).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with CONTRIBUTING.md, then verify the requirements against root package.json and apps/api/Dockerfile.api. Read packages/i18n/src/constants/namespaces.ts and packages/i18n/src/core/instance.ts to confirm the namespace files and dynamic loading guidance. Done means CONTRIBUTING.md accurately documents setup requirements, pnpm install, the namespace architecture, and the language-addition steps.

Written by the indexing model from the issue text.

Assessment

Tech stack
django, node.js, python, typescript
Domain
developer-experience, documentation, internationalization
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
86/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.