From 0ccd51bf4c2b4834c8d7b72747e5052b5346d982 Mon Sep 17 00:00:00 2001 From: Dean Date: Wed, 2 Apr 2025 19:15:50 -0700 Subject: [PATCH 1/9] Add CONTRIBUTING.md --- CONTRIBUTING.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000000..e69de29bb2d From fa68a7ef83f5a3ff233eab4c3ced0ef4e97bc138 Mon Sep 17 00:00:00 2001 From: Dean Date: Tue, 8 Apr 2025 00:29:43 -0700 Subject: [PATCH 2/9] Update CONTRIBUTING.md --- CONTRIBUTING.md | 166 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 44 ------------- 2 files changed, 166 insertions(+), 44 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e69de29bb2d..7bdca528c77 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -0,0 +1,166 @@ +# Contributing to PokéRogue + +Thank you for taking the time to contribute, every little bit helps. This project is entirely open-source and unmonetized - community contributions are what keep it alive! + +Please make sure you understand everything relevant to your changes from the [Table of Contents](#-table-of-contents), and absolutely *feel free to reach out reach out in the **#dev-corner** channel on Discord*. We are here to help and the better you understand what you're working on, the easier it will be for it to find its way into the game. + +## 📄 Table of Contents + +- [Development Basics](#️-development-basics) +- [Environment Setup](#-environment-setup) +- [Getting Started](#-getting-started) +- [Documentation](#-documentation) +- [Testing Your Changes](#-testing-your-changes) +- [Localization](#-localization) +- [Development Save File (Unlock Everything)](#-development-save-file) + +## 🛠️ Development Basics + +PokéRogue is built with Typescript, using the Phaser game framework. + +If you have the motivation and experience with Typescript/Javascript (or are willing to learn) you can contribute by forking the repository and making pull requests with contributions. + +## 💻 Environment Setup + +### Prerequisites + +- node: 20.13.1 +- npm: [how to install](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) + +### Running Locally + +1. Clone the repo and in the root directory run `npm install` + - *if you run into any errors, reach out in the **#dev-corner** channel on Discord* +2. Run `npm run start:dev` to locally run the project in `localhost:8000` + +### Linting + +We're using Biome as our common linter and formatter. +It will run automatically during the pre-commit hook but if you would like to manually run it, use the `npm run biome` script. +To view the complete rules, check out the [biome.jsonc](./biome.jsonc) file. + +## 🚀 Getting Started + +A great way to develop an understanding of how the project works is to look at test cases (located in `/test`). +Tests show you both how things are supposed to work and the expected "flow" to get from point A to point B in battles. + +*This is a big project and you will be confused at times - never be afraid to reach out and ask questions in **#dev-corner***! + +### Where to Look + +Once you have your feet under you, check out the [Issues](https://github.com/pagefaultgames/pokerogue/issues) page to see how you can help us! +Most issues are bugs and are labeled with their area, such as `Move`, `Ability`, `UI/UX`, etc. There are also priority labels: +- P0: Completely gamebreaking (very rare) +- P1: Major - Game crash +- P2: Minor - Incorrect (but non-crashing) move/ability/interaction +- P3: No gameplay impact - typo, minor graphical error, etc. + +Also under issues, you can take a look at the [List of Partial / Unimplemented Moves and Abilities](https://github.com/pagefaultgames/pokerogue/issues/3503) and the [Bug Board](https://github.com/orgs/pagefaultgames/projects/3) (the latter is essentially the same as the issues page but easier to work with). + +You are free to comment on any issue so that you may be assigned to it and we can avoid multiple people working on the same thing. + +## 📚 Documentation + +You can find the auto-generated documentation [here](https://pagefaultgames.github.io/pokerogue/main/index.html). +For information on enemy AI, check out the [enemy-ai.md](./docs/enemy-ai.md) file. +For detailed guidelines on documenting your code, refer to the [comments.md](./docs/comments.md) file. + +Again, if you have unanswered questions please feel free to ask! + +## 🧪 Testing Your Changes + +You've just made a change - how can you check if it works? You have two areas to hit: + +### 1 - Manual Testing + +> This will likely be your first stop. After making a change, you'll want to spin the game up and make sure everything is as you expect. To do this, you will need a way to manipulate the game to produce the situation you're looking to test. + +In the `src/overrides.ts` file there are overrides for most values you'll need to change for testing, controlled through the `overrides` object. +For example, here is how you could test a scenario where the player Pokemon has Protean and the enemy Pokemon has Pixilate: + +```typescript +const overrides = { + ABILITY_OVERRIDE: Abilities.PROTEAN, + PASSIVE_ABILITY_OVERRIDE: Abilities.PIXILATE, +} +``` + +Read through `src/overrides.ts` file to find the override that fits your needs - there are a lot of them! +If the situation you're trying to test can't be created using existing overrides (or with the [Dev Save](#-development-save-file)), reach out in **#dev-corner**. +You can get help testing your specific changes, and you might have found a new override that needs to be created! + +### 2 - Automatic Testing + +> PokéRogue uses [Vitest](https://vitest.dev/) for automatic testing. Checking out the existing tests in the `test/` folder is a great way to understand how this works, and to get familiar with the project as a whole. + +To make sure your changes didn't break any existing test cases, run `npm run test:silent` in your terminal. You can also provide an argument to the command: to run only the Dancer (ability) tests, you could write `npm run test:silent dancer`. + - __Note that passing all test cases does *not* guarantee that everything is working properly__. The project does not have complete regression testing. + +Most non-trivial changes (*especially bug fixes*) should come along with new test cases. + - To make a new test file, run `npm run create-test` and follow the prompts. If the move/ability/etc. you're modifying already has tests, simply add new cases to the end of the file. As mentioned before, the easiest way to get familiar with the system and understand how to write your own tests is simply to read the existing tests, particularly ones similar to the tests you intend to write. + - Ensure that new tests: + - Are deterministic. In other words, the test should never pass or fail when it shouldn't due to randomness. This involves primarily ensuring that abilities and moves are never randomly selected. + - As much as possible, are unit tests. If you have made two distinct changes, they should be tested in two separate cases. + - Test edge cases. A good strategy is to think of edge cases beforehand and create tests for them using `it.todo`. Once the edge case has been handled, you can remove the `todo` marker. + +## 📜 Localization + +The project intends for all text to be localized. That is, strings are pulled from translation files using keys (depending on the current language) and *never* hardcoded as a particular language. Note that there is a PDF in a message pinned in **#dev-corner** which gives the following information in greater detail. + +### Setting Up and Updating the Locales Submodule +> The locales (translation) files are set up as a git submodule. A project-in-a-project, if you will. + +To fetch translations when you first start development in your fork or to update them on your local branch, run: +```bash +npm run update-locales:remote +``` + +### How Localizations Work +> This project uses the [i18next](https://www.i18next.com/) library to integrate translations from public/locales +into the source code based on the user's settings or location. The basic process for +fetching translated text is as follows: +1. The source code fetches text by a given key, e.g. + + ```ts + i18next.t("fileName:keyName", { arg1: "Hello", arg2: "an example", ... }) + ``` +2. The game looks up the key in the corresponding JSON file in the user's +language, e.g. + + ```json + // from "en/file-name.json"... + "keyName": "{{arg1}}! This is {{arg2}} of translated text!" + ``` + If the key doesn't exist for the user's language, the game will default to the +corresponding English key (in the case of LATAM Spanish, it will first default to ES Spanish). + +3. The game shows the text to the user: + + ```json + "Hello! This is an example of translated text!" + ``` +### Adding Translated Text +> If your feature involves new or modified text in any form, then you will be modifying the [locales](https://github.com/pagefaultgames/pokerogue-locales) repository. ***Never hardcode new text in any language!*** + +The workflow is: + +1. Make a pull request to the main repository for your new feature. +If this feature requires new text, the text should be integrated intothe code with a new i18next key pointing to where you plan to add it into the pokerogue-locales repository. + +2. Make another pull request -- this time to the [pokerogue-locales](https://github.com/pagefaultgames/pokerogue-locales) +repository -- adding a new entry to the English locale with text for each key +you added to your main PR. You *only* need to add the English key and value - the translation team will handle the rest. + +3. If your feature is pulled from the mainline Pokémon games (e.g. a Move or Ability implementation), add a source link for any added text within the locale PR. +(Poké Corpus)[https://abcboy101.github.io/poke-corpus/] is a great resource for finding text from the latest mainline games; otherwise, a YouTube video link showing the text in mainline is sufficient. + +4. Ping @lugiadrien in **#dev-corner** or the current callout thread to make sure your locales PR is seen. +It'll be merged into the locales repository after any necessary corrections, at which point you can test it in your main PR (after updating locales from remote) + +5. The Dev team will approve your main PR, and your changes will be in the beta environment! + +## 😈 Development Save File +> Some issues may require you to have unlocks on your save file which go beyond overrides. For this case, there is a save file with everything unlocked (some of which are not legitimately obtainable). + +1. Start the game up locally and navigate to `Menu -> Manage Data -> Import Data` +2. Select [everything.prsv](test/testUtils/saves/everything.prsv) (`test/testUtils/saves/everything.prsv`) and confirm \ No newline at end of file diff --git a/README.md b/README.md index 5bb3ecfd26f..165a36695df 100644 --- a/README.md +++ b/README.md @@ -2,50 +2,6 @@ PokéRogue is a browser based Pokémon fangame heavily inspired by the roguelite genre. Battle endlessly while gathering stacking items, exploring many different biomes, fighting trainers, bosses, and more! -# Contributing - -## 🛠️ Development - -If you have the motivation and experience with Typescript/Javascript (or are willing to learn) please feel free to fork the repository and make pull requests with contributions. If you don't know what to work on but want to help, reference the below **To-Do** section or the **#feature-vote** channel in the discord. - -### 💻 Environment Setup - -#### Prerequisites - -- node: 20.13.1 -- npm: [how to install](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) - -#### Running Locally - -1. Clone the repo and in the root directory run `npm install` - - *if you run into any errors, reach out in the **#dev-corner** channel in discord* -2. Run `npm run start:dev` to locally run the project in `localhost:8000` - -#### Linting - -We're using Biome as our common linter and formatter. It will run automatically during the pre-commit hook but if you would like to manually run it, use the `npm run biome` script. To view the complete rules, check out the [biome.jsonc](./biome.jsonc) file. - -### 📚 Documentation - -You can find the auto-generated documentation [here](https://pagefaultgames.github.io/pokerogue/main/index.html). -For information on enemy AI, check out the [enemy-ai.md](./docs/enemy-ai.md) file. -For detailed guidelines on documenting your code, refer to the [comments.md](./docs/comments.md) file. - -### ❔ FAQ - -**How do I test a new _______?** - -- In the `src/overrides.ts` file there are overrides for most values you'll need to change for testing - -**How do I retrieve the translations?** - -- The translations were moved to the [dedicated translation repository](https://github.com/pagefaultgames/pokerogue-locales) and are now applied as a submodule in this project. -- The command to retrieve the translations is `git submodule update --init --recursive`. If you still struggle to get it working, please reach out to #dev-corner channel in Discord. - -## 🪧 To Do - -Check out [Github Issues](https://github.com/pagefaultgames/pokerogue/issues) to see how can you help us! - # 📝 Credits > > If this project contains assets you have produced and you do not see your name, **please** reach out, either [here on GitHub](https://github.com/pagefaultgames/pokerogue/issues/new) or via [Discord](https://discord.gg/pokerogue). From eb01915d6ba1f7fa8152ad4ba3364e707599cf72 Mon Sep 17 00:00:00 2001 From: Dean <69436131+emdeann@users.noreply.github.com> Date: Tue, 8 Apr 2025 00:34:36 -0700 Subject: [PATCH 3/9] Update code tags --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7bdca528c77..c47c05e9a93 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -127,7 +127,7 @@ fetching translated text is as follows: 2. The game looks up the key in the corresponding JSON file in the user's language, e.g. - ```json + ```ts // from "en/file-name.json"... "keyName": "{{arg1}}! This is {{arg2}} of translated text!" ``` @@ -136,7 +136,7 @@ corresponding English key (in the case of LATAM Spanish, it will first default t 3. The game shows the text to the user: - ```json + ```ts "Hello! This is an example of translated text!" ``` ### Adding Translated Text @@ -163,4 +163,4 @@ It'll be merged into the locales repository after any necessary corrections, at > Some issues may require you to have unlocks on your save file which go beyond overrides. For this case, there is a save file with everything unlocked (some of which are not legitimately obtainable). 1. Start the game up locally and navigate to `Menu -> Manage Data -> Import Data` -2. Select [everything.prsv](test/testUtils/saves/everything.prsv) (`test/testUtils/saves/everything.prsv`) and confirm \ No newline at end of file +2. Select [everything.prsv](test/testUtils/saves/everything.prsv) (`test/testUtils/saves/everything.prsv`) and confirm From 2969870981620f2dde6e338d9b0143ae1a17b97e Mon Sep 17 00:00:00 2001 From: Dean <69436131+emdeann@users.noreply.github.com> Date: Tue, 8 Apr 2025 00:39:14 -0700 Subject: [PATCH 4/9] Fix missing space --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c47c05e9a93..cd5e9e7b605 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -145,7 +145,7 @@ corresponding English key (in the case of LATAM Spanish, it will first default t The workflow is: 1. Make a pull request to the main repository for your new feature. -If this feature requires new text, the text should be integrated intothe code with a new i18next key pointing to where you plan to add it into the pokerogue-locales repository. +If this feature requires new text, the text should be integrated into the code with a new i18next key pointing to where you plan to add it into the pokerogue-locales repository. 2. Make another pull request -- this time to the [pokerogue-locales](https://github.com/pagefaultgames/pokerogue-locales) repository -- adding a new entry to the English locale with text for each key From 3957ea65d39f7c9131aba6ee3ce90e58c5883c62 Mon Sep 17 00:00:00 2001 From: Dean <69436131+emdeann@users.noreply.github.com> Date: Tue, 8 Apr 2025 00:41:38 -0700 Subject: [PATCH 5/9] Fix pokecorpus link --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cd5e9e7b605..f911e27fc80 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -152,7 +152,7 @@ repository -- adding a new entry to the English locale with text for each key you added to your main PR. You *only* need to add the English key and value - the translation team will handle the rest. 3. If your feature is pulled from the mainline Pokémon games (e.g. a Move or Ability implementation), add a source link for any added text within the locale PR. -(Poké Corpus)[https://abcboy101.github.io/poke-corpus/] is a great resource for finding text from the latest mainline games; otherwise, a YouTube video link showing the text in mainline is sufficient. +[Poké Corpus](https://abcboy101.github.io/poke-corpus) is a great resource for finding text from the latest mainline games; otherwise, a YouTube video link showing the text in mainline is sufficient. 4. Ping @lugiadrien in **#dev-corner** or the current callout thread to make sure your locales PR is seen. It'll be merged into the locales repository after any necessary corrections, at which point you can test it in your main PR (after updating locales from remote) From c6b0bf4262b9279cb290201b489cb2f78e17f0ef Mon Sep 17 00:00:00 2001 From: Dean <69436131+emdeann@users.noreply.github.com> Date: Sun, 1 Jun 2025 19:36:50 -0700 Subject: [PATCH 6/9] Apply suggestions from code review Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> --- CONTRIBUTING.md | 20 ++++++++++---------- README.md | 4 ++++ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f911e27fc80..3e13fec494d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,7 +16,7 @@ Please make sure you understand everything relevant to your changes from the [Ta ## 🛠️ Development Basics -PokéRogue is built with Typescript, using the Phaser game framework. +PokéRogue is built with [Typescript](https://www.typescriptlang.org/docs/handbook/intro.html), using the [Phaser](https://github.com/phaserjs/phaser) game framework. If you have the motivation and experience with Typescript/Javascript (or are willing to learn) you can contribute by forking the repository and making pull requests with contributions. @@ -50,10 +50,10 @@ Tests show you both how things are supposed to work and the expected "flow" to g Once you have your feet under you, check out the [Issues](https://github.com/pagefaultgames/pokerogue/issues) page to see how you can help us! Most issues are bugs and are labeled with their area, such as `Move`, `Ability`, `UI/UX`, etc. There are also priority labels: -- P0: Completely gamebreaking (very rare) -- P1: Major - Game crash -- P2: Minor - Incorrect (but non-crashing) move/ability/interaction -- P3: No gameplay impact - typo, minor graphical error, etc. +- `P0`: Completely gamebreaking (very rare) +- `P1`: Major - Game crash +- `P2`: Minor - Incorrect (but non-crashing) move/ability/interaction +- `P3`: No gameplay impact - typo, minor graphical error, etc. Also under issues, you can take a look at the [List of Partial / Unimplemented Moves and Abilities](https://github.com/pagefaultgames/pokerogue/issues/3503) and the [Bug Board](https://github.com/orgs/pagefaultgames/projects/3) (the latter is essentially the same as the issues page but easier to work with). @@ -76,13 +76,13 @@ You've just made a change - how can you check if it works? You have two areas to > This will likely be your first stop. After making a change, you'll want to spin the game up and make sure everything is as you expect. To do this, you will need a way to manipulate the game to produce the situation you're looking to test. In the `src/overrides.ts` file there are overrides for most values you'll need to change for testing, controlled through the `overrides` object. -For example, here is how you could test a scenario where the player Pokemon has Protean and the enemy Pokemon has Pixilate: +For example, here is how you could test a scenario where the player Pokemon has the ability Drought and the enemy Pokemon has the move Water Gun: ```typescript const overrides = { - ABILITY_OVERRIDE: Abilities.PROTEAN, - PASSIVE_ABILITY_OVERRIDE: Abilities.PIXILATE, -} + ABILITY_OVERRIDE: Abilities.DROUGHT, + OPP_MOVESET_OVERRIDE: Moves.WATER_GUN, +} satisfies Partial>; ``` Read through `src/overrides.ts` file to find the override that fits your needs - there are a lot of them! @@ -112,7 +112,7 @@ The project intends for all text to be localized. That is, strings are pulled fr To fetch translations when you first start development in your fork or to update them on your local branch, run: ```bash -npm run update-locales:remote +git submodule update --progress --init --recursive ``` ### How Localizations Work diff --git a/README.md b/README.md index 165a36695df..1bb8c7772f3 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ PokéRogue is a browser based Pokémon fangame heavily inspired by the roguelite genre. Battle endlessly while gathering stacking items, exploring many different biomes, fighting trainers, bosses, and more! +# Contributing + +See [CONTRIBUTING.md](./CONTRIBUTING.md), this includes instructions on how to set up the game locally. + # 📝 Credits > > If this project contains assets you have produced and you do not see your name, **please** reach out, either [here on GitHub](https://github.com/pagefaultgames/pokerogue/issues/new) or via [Discord](https://discord.gg/pokerogue). From 61496958bf0e254ee60d4e99440fe007a2435a9c Mon Sep 17 00:00:00 2001 From: Dean <69436131+emdeann@users.noreply.github.com> Date: Wed, 18 Jun 2025 22:53:12 -0700 Subject: [PATCH 7/9] Apply suggestions from code review Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com> --- CONTRIBUTING.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3e13fec494d..37af36e425d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -75,13 +75,13 @@ You've just made a change - how can you check if it works? You have two areas to > This will likely be your first stop. After making a change, you'll want to spin the game up and make sure everything is as you expect. To do this, you will need a way to manipulate the game to produce the situation you're looking to test. -In the `src/overrides.ts` file there are overrides for most values you'll need to change for testing, controlled through the `overrides` object. +[src/overrides.ts](../src/overrides.ts) contains overrides for most values you'll need to change for testing, controlled through the `overrides` object. For example, here is how you could test a scenario where the player Pokemon has the ability Drought and the enemy Pokemon has the move Water Gun: ```typescript const overrides = { - ABILITY_OVERRIDE: Abilities.DROUGHT, - OPP_MOVESET_OVERRIDE: Moves.WATER_GUN, + ABILITY_OVERRIDE: AbilityId.DROUGHT, + OPP_MOVESET_OVERRIDE: MoveId.WATER_GUN, } satisfies Partial>; ``` @@ -160,7 +160,7 @@ It'll be merged into the locales repository after any necessary corrections, at 5. The Dev team will approve your main PR, and your changes will be in the beta environment! ## 😈 Development Save File -> Some issues may require you to have unlocks on your save file which go beyond overrides. For this case, there is a save file with everything unlocked (some of which are not legitimately obtainable). +> Some issues may require you to have unlocks on your save file which go beyond normal overrides. For this reason, the repository contains a [save file](../test/testUtils/saves/everything.psrv) with _everything_ unlocked (even ones not legitimately obtainable, like unimplemented variant shinies). 1. Start the game up locally and navigate to `Menu -> Manage Data -> Import Data` -2. Select [everything.prsv](test/testUtils/saves/everything.prsv) (`test/testUtils/saves/everything.prsv`) and confirm +2. Select [everything.prsv](test/testUtils/saves/everything.prsv) (`test/testUtils/saves/everything.prsv`) and confirm. From 7e7173c0029c64af7af1dc36a74da512d59a6af9 Mon Sep 17 00:00:00 2001 From: Dean Date: Wed, 18 Jun 2025 22:57:41 -0700 Subject: [PATCH 8/9] Update links --- CONTRIBUTING.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 37af36e425d..a9baa958dc8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,13 +35,11 @@ If you have the motivation and experience with Typescript/Javascript (or are wil ### Linting -We're using Biome as our common linter and formatter. -It will run automatically during the pre-commit hook but if you would like to manually run it, use the `npm run biome` script. -To view the complete rules, check out the [biome.jsonc](./biome.jsonc) file. +Check out our [in-depth file](./docs/linting.md) on linting and formatting! ## 🚀 Getting Started -A great way to develop an understanding of how the project works is to look at test cases (located in `/test`). +A great way to develop an understanding of how the project works is to look at test cases (located in [the `test` folder](./test/)). Tests show you both how things are supposed to work and the expected "flow" to get from point A to point B in battles. *This is a big project and you will be confused at times - never be afraid to reach out and ask questions in **#dev-corner***! @@ -91,7 +89,7 @@ You can get help testing your specific changes, and you might have found a new o ### 2 - Automatic Testing -> PokéRogue uses [Vitest](https://vitest.dev/) for automatic testing. Checking out the existing tests in the `test/` folder is a great way to understand how this works, and to get familiar with the project as a whole. +> PokéRogue uses [Vitest](https://vitest.dev/) for automatic testing. Checking out the existing tests in the [test](./test/) folder is a great way to understand how this works, and to get familiar with the project as a whole. To make sure your changes didn't break any existing test cases, run `npm run test:silent` in your terminal. You can also provide an argument to the command: to run only the Dancer (ability) tests, you could write `npm run test:silent dancer`. - __Note that passing all test cases does *not* guarantee that everything is working properly__. The project does not have complete regression testing. From cb8cd6669b371f09d46696517fd9f14c691ccea3 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Wed, 18 Jun 2025 23:14:28 -0700 Subject: [PATCH 9/9] Update node version Co-authored-by: Bertie690 <136088738+Bertie690@users.noreply.github.com> --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a9baa958dc8..58e20043915 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,7 +24,7 @@ If you have the motivation and experience with Typescript/Javascript (or are wil ### Prerequisites -- node: 20.13.1 +- node: >=22.14.0 - npm: [how to install](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) ### Running Locally