From 419fa0c93b9a40f8851681521ffd25cb345459a8 Mon Sep 17 00:00:00 2001 From: ankur0904 Date: Sun, 12 Nov 2023 14:53:22 +0530 Subject: [PATCH 1/2] fix: fixes the command used for cloning the repo --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 46210f6fec..8e28b32f47 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,7 @@ Here is a quick guide on how to run Reflex repo locally so you can start contrib **1. Clone Reflex and navigate into the repo:** ``` bash -git clone https://github.com/reflex-dev/reflex.git +git clone https://github.com//reflex.git cd reflex ``` From bba038d8f3cc4869ee9a8a4f8fa6aae8b5dc5998 Mon Sep 17 00:00:00 2001 From: ankur0904 Date: Sat, 18 Nov 2023 23:05:06 +0530 Subject: [PATCH 2/2] Adds about forking the repo --- CONTRIBUTING.md | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a96e8bfa2b..17605fb7c8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,41 +2,50 @@ For an extensive guide on the different ways to contribute to Reflex see our [Contributing Guide on Notion](https://www.notion.so/reflex-dev/2107ab2bc166497db951b8d742748284?v=f0eaff78fa984b5ab15d204af58907d7). +## Running a Local Build of Reflex - -## Running a Local Build of Reflex Here is a quick guide on how to run Reflex repo locally so you can start contributing to the project. **Prerequisites:** + - Python >= 3.8 - Poetry version >= 1.4.0 and add it to your path (see [Poetry Docs](https://python-poetry.org/docs/#installation) for more info). +**1. Fork this repository:** +Fork this repository by clicking on the `Fork` button on the top right. + +**2. Clone Reflex and navigate into the repo:** -**1. Clone Reflex and navigate into the repo:** ``` bash git clone https://github.com//reflex.git cd reflex ``` -**2. Install your local Reflex build:** +**3. Install your local Reflex build:** + ``` bash poetry install ``` -**3. Now create an examples folder so you can test the local Python build in this repository.** -* We have the `examples` folder in the `.gitignore`, so your changes in `reflex/examples` won't be reflected in your commit. + +**4. Now create an examples folder so you can test the local Python build in this repository.** + +- We have the `examples` folder in the `.gitignore`, so your changes in `reflex/examples` won't be reflected in your commit. + ``` bash mkdir examples cd examples ``` -**4. Init and Run** +**5. Init and Run** + ``` bash poetry run reflex init poetry run reflex run ``` All the changes you make to the repository will be reflected in your running app. -* We have the examples folder in the .gitignore, so your changes in reflex/examples won't be reflected in your commit. + +- We have the examples folder in the .gitignore, so your changes in reflex/examples won't be reflected in your commit. ## 🧪 Testing and QA @@ -45,35 +54,41 @@ Any feature or significant change added should be accompanied with unit tests. Within the 'test' directory of Reflex you can add to a test file already there or create a new test python file if it doesn't fit into the existing layout. #### What to unit test? + - Any feature or significant change that has been added. - Any edge cases or potential problem areas. - Any interactions between different parts of the code. - ## ✅ Making a PR -Once you solve a current issue or improvement to Reflex, you can make a PR, and we will review the changes. +Once you solve a current issue or improvement to Reflex, you can make a PR, and we will review the changes. Before submitting, a pull request, ensure the following steps are taken and test passing. In your `reflex` directory run make sure all the unit tests are still passing using the following command. This will fail if code coverage is below 70%. + ``` bash poetry run pytest tests --cov --no-cov-on-fail --cov-report= ``` + Next make sure all the following tests pass. This ensures that every new change has proper documentation and type checking. + ``` bash poetry run ruff check . poetry run pyright reflex tests find reflex tests -name "*.py" -not -path reflex/reflex.py | xargs poetry run darglint ``` + Finally, run `black` to format your code. + ``` bash poetry run black reflex tests ``` Consider installing git pre-commit hooks so Ruff, Pyright, Darglint and Black will run automatically before each commit. Note that pre-commit will only be installed when you use a Python version >= 3.8. + ``` bash pre-commit install ```