TypeScript projects

We are really excited that you are interested in contributing. This is a general contribution guide for ArmoniK's projects written in TypeScript. Before submitting your contribution, please make sure to take a moment and read through the following guide:

🧑‍💻 Repository Setup

We use pnpm for every new projects but some legacy project can use npm or yarn. We highly recommend you install ni so you don't worry about the package manager when switching across different projects.

We will use ni's commands in the following code snippets. If you are not using it, you can do the conversion yourself: ni = pnpm install, nr = pnpm run.

To set the repository up:

StepCommand
1. Install Node.js, using the latest LTS-
2. Enable Corepackcorepack enable
3. Install @antfu/ninpm i -g @antfu/ni
4. Install dependencies under the project rootni

💡 Commands

Each project can have differents commands depending of the architecture. Please refer to the local package.json file.

📚 Documentation

Please refer to the contribution guide about documentation.

🙌 Sending Pull Request

Please refer to related release processes:

👩‍🔧 Maintenance

This section is for maintainers with write access, or if you want to maintain your own forks.

Update Dependencies

Keeping dependencies up-to-date is one of the important aspects to keep projects alive and getting latest bug fixes on time. We recommend to update dependencies in weekly or bi-weekly intervals.

We use taze to update the dependencies manually most of the time. To automatically update dependencies, we use Renovate.

With taze, you can run taze major -Ir to check and select the versions to update interactive. -I stands for --interactive, -r stands for --recursive for monorepo.

You can use taze with npx: npx taze@latest

After bumpping, we remove lock file, we install them, runing build and test to verify nothing breaks before creating a Pull Request.

Releasing

Please refer to release processes in our working processes.

This guide is heavily inpired by the contribute from @antfu.