From 29e5695a2aef7f8137bcba810655658489de9eb5 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Mon, 14 Aug 2023 21:56:45 +0530 Subject: [PATCH 1/2] fix: docs --- CONTRIBUTING.md | 539 ----------- CONTRIBUTING.rst | 896 ++++++++++++++++++ README.md | 2 +- docs/docgen.sh | 3 - docs/source/CONTRIBUTING.rst | 896 ++++++++++++++++++ docs/source/conf.py | 18 + docs/source/index.rst | 1 + .../misc/VScode_OpenWorkspaceFromFile.png | Bin 0 -> 276527 bytes docs/source/misc/VScode_workspace.png | Bin 0 -> 15324 bytes .../polywrap_ethereum_provider/__init__.py | 4 +- 10 files changed, 1814 insertions(+), 545 deletions(-) delete mode 100644 CONTRIBUTING.md create mode 100644 CONTRIBUTING.rst create mode 100644 docs/source/CONTRIBUTING.rst create mode 100644 docs/source/misc/VScode_OpenWorkspaceFromFile.png create mode 100644 docs/source/misc/VScode_workspace.png diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index ae43b3db..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,539 +0,0 @@ - -# Polywrap Python Client Contributor Guide - -Polywrap DAO welcomes any new contributions! This guide is meant to help people get over the initial hurdle of figuring out how to use git and make a contribution. - -If you've already contributed to other open source projects, contributing to the Polywrap Python project should be pretty similar and you can probably figure it out by guessing. Experienced contributors might want to just skip ahead and open up a pull request But if you've never contributed to anything before, or you just want to see what we consider best practice before you start, this is the guide for you! - -- [Polywrap Python Client Contributor Guide](#polywrap-python-client-contributor-guide) - - [Imposter syndrome disclaimer](#imposter-syndrome-disclaimer) - - [Code of Conduct](#code-of-conduct) - - [Development Environment](#development-environment) - - [Getting and maintaining a local copy of the source code](#getting-and-maintaining-a-local-copy-of-the-source-code) - - [Choosing a version of python](#choosing-a-version-of-python) - - [Installing poetry](#installing-poetry) - - [Installing dependencies](#installing-dependencies) - - [Running tests](#running-tests) - - [Debugging with Pytest](#debugging-with-pytest) - - [Creating your own tests for the client](#creating-your-own-tests-for-the-client) - - [Running linters](#running-linters) - - [Running isort by itself](#running-isort-by-itself) - - [Running black by itself](#running-black-by-itself) - - [Running bandit by itself](#running-bandit-by-itself) - - [Running pyright by itself](#running-pyright-by-itself) - - [Using tox to run linters and tests](#using-tox-to-run-linters-and-tests) - - [List all the testenv defined in the tox config](#list-all-the-testenv-defined-in-the-tox-config) - - [Run tests](#run-tests) - - [Run linters](#run-linters) - - [Run type checkers](#run-type-checkers) - - [Find security vulnerabilities, if any](#find-security-vulnerabilities-if-any) - - [Dev environment](#dev-environment) - - [VSCode users: Improved dev experience](#vscode-users-improved-dev-experience) - - [Picking up the virtual environments automatically](#picking-up-the-virtual-environments-automatically) - - [Making a new branch \& pull request](#making-a-new-branch--pull-request) - - [Commit message tips](#commit-message-tips) - - [Sharing your code with us](#sharing-your-code-with-us) - - [Checklist for a great pull request](#checklist-for-a-great-pull-request) - - [Code Review](#code-review) - - [Style Guide for polywrap python client](#style-guide-for-polywrap-python-client) - - [String Formatting](#string-formatting) - - [Making documentation](#making-documentation) - - [Where should I start?](#where-should-i-start) - - [Claiming an issue](#claiming-an-issue) - - [Resources](#resources) - -## Imposter syndrome disclaimer - -_We want your help_. No really, we do. - -There might be a little voice inside that tells you you're not ready; that you need to do one more tutorial, or learn another framework, or write a few more blog posts before you can help with this project. - -I assure you, that's not the case. - -This document contains some contribution guidelines and best practices, but if you don't get it right the first time we'll try to help you fix it. - -The contribution guidelines outline the process that you'll need to follow to get a patch merged. By making expectations and process explicit, we hope it will make it easier for you to contribute. - -And you don't just have to write code. You can help out by writing documentation, tests, or even by giving feedback about this work. (And yes, that includes giving feedback about the contribution guidelines.) - -If have questions or want to chat, we have a [discord server](https://discord.polywrap.io) where you can ask questions, or you can put them in [GitHub issues](https://github.com/polywrap/python-client/issues) too. - -Thank you for contributing! - -This section is adapted from [this excellent document from @adriennefriend](https://github.com/adriennefriend/imposter-syndrome-disclaimer) - -## Code of Conduct - -Polywrap python client contributors are asked to adhere to the [Python Community Code of Conduct](https://www.python.org/psf/conduct/). - -## Development Environment - -Unix (Linux/Mac) is the preferred operating system to use while contributing to Polywrap python client. If you're using Windows, we recommend setting up [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10). - - -## Getting and maintaining a local copy of the source code - -There are lots of different ways to use git, and it's so easy to get into a messy state that [there's a comic about it](https://xkcd.com/1597/). So... if you get stuck, remember, even experienced programmers sometimes just delete their trees and copy over the stuff they want manually. - -If you're planning to contribute, first you'll want to [get a local copy of the source code (also known as "cloning the repository")](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository) - -`git clone git@github.com:polywrap/python-client.git` - -Once you've got the copy, you can update it using - -`git pull` - -You're also going to want to have your own "fork" of the repository on GitHub. -To make a fork on GitHub, read the instructions at [Fork a -repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo). -A fork is a copy of the main repository that you control, and you'll be using -it to store and share your code with others. You only need to make the fork once. - -Once you've set up your fork, you will find it useful to set up a git remote for pull requests: - -`git remote add myfork git@github.com:MYUSERNAME/python-client.git` - -Replace MYUSERNAME with your own GitHub username. - -## Choosing right version of python - -Polywrap python client uses python 3.10 as its preferred version of choice. The newer python version may also work fine but we haven't tested it so we strongly recommend you to use the `python 3.10`. - -- Make sure you're running the correct version of python by running: -``` -python3 --version -``` -> If you are using a Linux system or WSL, which comes with Python3.8, then you will need to upgrade from Python3.8 to Python3.10 and also fix the `pip` and `distutil` as upgrading to Python3.10 will break them. You may follow [this guide](https://cloudbytes.dev/snippets/upgrade-python-to-latest-version-on-ubuntu-linux) to upgrade. - -## Installing poetry - -Polywrap python client uses poetry as its preffered project manager. We recommend installing the latest version of the poetry and if you are already have it installed make sure it's newer than version `1.1.14`. - -- To install poetry follow [this guide](https://python-poetry.org/docs/#installation). -- If you are on MacOS then you can install poetry simply with the following homebrew command -``` -brew install poetry -``` -> To make sure you're it's installed properly, run `poetry`. Learn more [here](https://python-poetry.org/docs/) - -## Installing dependencies - -Each of the package directory consists of the `pyproject.toml` file and the `poetry.lock` file. In `pyproject.toml` file, one can find out all the project dependencies and configs related to the package. These files will be utilized by Poetry to install correct dependencies, build, publish the package. - -For example, we can **install** deps and **build** the `polywrap-msgpack` package using Poetry. - -- Install dependencies using poetry -``` -poetry install -``` - -- Build the package using poetry -``` -poetry build -``` - -- Update dependencies using poetry -``` -poetry update -``` - -> Make sure your cwd is the appropriate module, for example `polywrap-msgpack`, `polywrap-wasm` or `polywrap-client`. - -## Running tests - -In order to assure the integrity of the python modules Polywrap Python Client uses [pytest 7.1.3](https://docs.pytest.org/en/7.1.x/contents.html) as a testing framework. - -As we can see in the `pyproject.toml` files, we installed the [PyTest](https://docs.pytest.org) package. We will be using it as our testing framework. -Before running tests, make sure you have installed all required dependencies using `poetry install` command. - -You need to activate the virtualenv with poetry using the `shell` command before running any other command -``` -poetry shell -``` - -Once activated you can directly run the `pytest` by just executing following command: -``` -pytest -``` - -If you don't want to activate the virtualenv for entire shell and just want to execute one particular command in the virtualenv, you can use `poetry run` command below: -``` -poetry run pytest -``` - - -This last command will run a series of scripts that verify that the specific module of the client is performing as expected in your local machine. The output on your console should look something like this: - -``` -$ poetry run pytest ->> -================================= test session starts ================================= -platform darwin -- Python 3.10.0, pytest-7.1.3, pluggy-1.0.0 -rootdir: /Users/polywrap/pycode/polywrap/toolchain/packages/py, configfile: pytest.ini -collected 26 items - -tests/test_msgpack.py ........................ [100%] -``` - -### Debugging with Pytest - -You should expect to see the tests passing with a 100% accuracy. To better understand these outputs, read [this quick guide](https://docs.pytest.org/en/7.1.x/how-to/output.html). If any of the functionality fails (marked with an 'F'), or if there are any Warnings raised, you can debug them by running a verbose version of the test suite: -- `poetry run pytests -v` or `poetry run pytests -vv` for even more detail -- Reach out to the devs on the [Discord](https://discord.polywrap.io) explaining your situation, and what configuration you're using on your machine. - - -## Creating your own tests for the client - -By creating tests you can quickly experiment with the Polywrap Client and its growing set of wrappers. Since Pytest is already set up on the repo, go to the `polywrap-client\tests\` directory, and take a look at how some of the functions are built. You can use similar patterns to mod your own apps and build new prototypes with more complex functionality. - -Here's a good guide to learn about [building tests with Pytest](https://realpython.com/pytest-python-testing/) and [here's the official documentation](https://docs.pytest.org/en/latest/contents.html). - -## Running linters - -Polywrap python client uses a few tools to improve code quality and readability: - -- `isort` sorts imports alphabetically and by type -- `black` provides automatic style formatting. This will give you basic [PEP8](https://www.python.org/dev/peps/pep-0008/) compliance. (PEP8 is where the default python style guide is defined.) -- `pylint` provides additional code "linting" for more complex errors like unused imports. -- `pydocstyle` helps ensure documentation styles are consistent. -- `bandit` is more of a static analysis tool than a linter and helps us find potential security flaws in the code. -- `pyright` helps ensure type definitions are correct when provided. - -### Running isort by itself - -To format the imports using isort, you run `isort --profile black` followed by the filename. You will have to add `--profile black` when calling isort to make it compatible with Black formatter. For formatting a particular file name filename.py. - -```bash -isort --profile black filename.py -``` - -Alternatively, you can run isort recursively for all the files by adding `.` instead of filename - -```bash -isort --profile black . -``` - -### Running black by itself - -To format the code, you run `black` followed by the filename you wish to reformat. For formatting a particular file name filename.py. - -```bash -black filename.py -``` - -In many cases, it will make your life easier if you only run black on -files you've changed because you won't have to scroll through a pile of -auto-formatting changes to find your own modifications. However, you can also -specify a whole folder using ```./``` - -### Running pylint by itself - -pylint helps identify and flag code quality issues, potential bugs, and adherence to coding standards. By analyzing Python code, Pylint enhances code readability, maintains consistency, and aids in producing more robust and maintainable software. - -To run pylint on all the code we scan, use the following: - -```bash -pylint PACKAGE_NAME -``` - -You can also run it on individual files: - -```bash -pylint filename.py -``` - -Checkout [pylint documentation](https://docs.pylint.org/) for more information. - -### Running pydocstyle by itself - -Pydocstyle is a tool for enforcing documentation conventions in Python code. It checks adherence to the PEP 257 style guide, ensuring consistent and well-formatted docstrings. By promoting clear and standardized documentation, pydocstyle improves code readability, fosters collaboration, and enhances overall code quality. - -To run pydocstyle on all the code we scan, use the following: - -```bash -pydocstyle PACKAGE_NAME -``` - -You can also run it on individual files: - -```bash -pydocstyle filename.py -``` - -Checkout [pydocstyle documentation](https://www.pydocstyle.org/en/stable/) for more information. - -### Running bandit by itself - -To run it on all the code we scan, use the following: - -```bash -bandit -r PACKAGE_NAME -``` - -You can also run it on individual files: - -```bash -bandit filename.py -``` - -Bandit helps you target manual code review, but bandit issues aren't always things that need to be fixed, just reviewed. If you have a bandit finding that doesn't actually need a fix, you can mark it as reviewed using a `# nosec` comment. If possible, include details as to why the bandit results are ok for future reviewers. For example, we have comments like `#nosec uses static https url above` in cases where bandit prompted us to review the variable being passed to urlopen(). - -Checkout [bandit documentation](https://bandit.readthedocs.io/en/latest/) for more information. - -### Running pyright by itself - -To check for static type checking, you run `pyright` followed by the filename you wish to check static type for. pyright checks the type annotations you provide and reports any type mismatches or missing annotations. For static type checking for a particular file name filename.py - -```bash -pyright filename.py -``` - -Alternatively, you can run pyright on directory as well. For static type checking for a directory - -```bash -pyright . -``` - -for someone who is new or are not familiar to python typing here are few resource - -[pyright documentation](https://microsoft.github.io/pyright/#/), and [Python typing documentation](https://docs.python.org/3/library/typing.html) - - -## Using tox to run linters and tests -We are using [`tox`](https://tox.wiki/en) to run lint and tests even more easily. Below are some basic commands to get you running. - -### List all the testenv defined in the tox config -``` -tox -a -``` -### Run tests -``` -tox -``` -### Run linters -``` -tox -e lint -``` -### Run type checkers -``` -tox -e typecheck -``` - -### Find security vulnerabilities, if any -``` -tox -e secure -``` - -### Dev environment -Use this command to only apply lint fixes and style formatting. -``` -tox -e dev -``` - -- After running these commands we should see all the tests passing and commands executing successfully, which means that we are ready to update and test the package. -- To create your own tox scripts, modify the `tox.ini` file in the respective module. - -## VSCode users: Improved dev experience -If you use VSCode, we have prepared a pre-configured workspace that improves your dev experience. So when you open VScode, set up the workspace file `python-monorepo.code-workspace` by going to: - -``` -File -> Open Workspace from File... -``` -![File -> Open Workspace from File](misc/VScode_OpenWorkspaceFromFile.png) - -Each folder is now a project to VSCode. This action does not change the underlying code, but facilitates the development process. So our file directory should look like this now: - -![all modules have their respective folder, along with a root folder](misc/VScode_workspace.png) - -> Note: You might have to do this step again next time you close and open VS code! - -### Picking up the virtual environments automatically -We will need to create a `.vscode/settings.json` file in each module's folder, pointing to the in-project virtual environment created by the poetry. - -- You can easily find the path to the virtual env by running following command in the package for which you want to find it for: -``` -poetry shell -``` - -- Once you get the path virtual env, you need to create the following `settings.json` file under the `.vscode/` folder of the given package. For example, in case of `polywrap-client` package, it would be under -`./polywrap-client/.vscode/settings.json` - - -Here's the structure `settings.json` file we are using for configuring the vscode. Make sure you update your virtual env path you got from poetry as the `python.defaultInterpreterPath` argument: -```json -{ - "python.formatting.provider": "black", - "python.languageServer": "Pylance", - "python.analysis.typeCheckingMode": "strict", - "python.defaultInterpreterPath": "/Users/polywrap/Library/Caches/pypoetry/virtualenvs/polywrap-client-abcdef-py3.10" -} -``` - -Keep in mind that these venv paths will vary for each module you run `poetry shell` on. Once you configure these `setting.json` files correctly on each module you should be good to go! - -## Making a new branch & pull request - -Git allows you to have "branches" with variant versions of the code. You can see what's available using `git branch` and switch to one using `git checkout branch_name`. - -To make your life easier, we recommend that the `dev` branch always be kept in sync with the repo at `https://github.com/polywrap/python-client`, as in you never check in any code to that branch. That way, you can use that "clean" dev branch as a basis for each new branch you start as follows: - -```bash -git checkout dev -git pull -git checkout -b my_new_branch -``` - ->Note: If you accidentally check something in to dev and want to reset it to match our dev branch, you can save your work using `checkout -b` and then do a `git reset` to fix it: ->```bash ->git checkout -b saved_branch ->git reset --hard origin/dev ->``` ->You do not need to do the `checkout` step if you don't want to save the changes you made. - -When you're ready to share that branch to make a pull request, make sure you've checked in all the files you're working on. You can get a list of the files you modified using `git status` and see what modifications you made using `git diff` - -Use `git add FILENAME` to add the files you want to put in your pull request, and use `git commit` to check them in. Try to use [a clear commit message](https://chris.beams.io/posts/git-commit/) and use the [Conventional Commits](https://www.conventionalcommits.org/) format. - -### Commit message tips - -We usually merge pull requests into a single commit when we accept them, so it's fine if you have lots of commits in your branch while you figure stuff out, and we can fix your commit message as needed then. But if you make sure that at least the title of your pull request follows the [Conventional Commits](https://www.conventionalcommits.org/) format that you'd like for that merged commit message, that makes our job easier! - -GitHub also has some keywords that help us link issues and then close them automatically when code is merged. The most common one you'll see us use looks like `fixes: #123456`. You can put this in the title of your PR (what usually becomes the commit message when we merge your code), another line in the commit message, or any comment in the pull request to make it work. You and read more about [linking a pull request to an issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) in the GitHub documentation. - -### Sharing your code with us - -Once your branch is ready and you've checked in all your code, push it to your fork: - -```bash -git push myfork -``` - -From there, you can go to [our pull request page](https://github.com/polywrap/python-client/pulls) to make a new pull request from the web interface. - -### Checklist for a great pull request - -Here's a quick checklist to help you make sure your pull request is ready to go: - -1. Have I run the tests locally? - - Run the command `pytest` (See also [Running Tests](#running-tests)) - - GitHub Actions will run the tests for you, but you can often find and fix issues faster if you do a local run of the tests. -2. Have I run the code linters and fixed any issues they found? - - We recommend using `tox` to easily run this (See also [Running Linters](#running-linters)) - - GitHub Actions will run the linters for you too if you forget! (And don't worry, even experienced folk forget sometimes.) - - You will be responsible for fixing any issue found by the linters before your code can be merged. -3. Have I added any tests I need to prove that my code works? - - This is especially important for new features or bug fixes. -4. Have I added or updated any documentation if I changed or added a feature? - - New features are often documented as docstrings and doctests alongside the code (See [Making documentation](#making-documentation) for more information.) -5. Have I used [Conventional Commits](https://www.conventionalcommits.org/) to format the title of my pull request? -6. If I closed a bug, have I linked it using one of [GitHub's keywords](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)? (e.g. include the text `fixed #1234`) -7. Have I checked on the results from GitHub Actions? - - GitHub Actions will run all the tests, linters and type checkers for you. If you can, try to make sure everything is running cleanly with no errors before leaving it for a human code reviewer! - - As of this writing, tests take less than 20 minutes to run once they start, but they can be queued for a while before they start. Go get a cup of tea/coffee or work on something else while you wait! - -## Code Review - -Once you have created a pull request (PR), GitHub Actions will try to run all the tests on your code. If you can, make any modifications you need to make to ensure that they all pass, but if you get stuck a reviewer will see if they can help you fix them. Remember that you can run the tests locally while you're debugging; you don't have to wait for GitHub to run the tests (see the [Running tests](#running-tests) section above for how to run tests). - -Someone will review your code and try to provide feedback in the comments on GitHub. Usually it takes a few days, sometimes up to a week. The core contributors for this project work on it as part of their day jobs and are usually on different timezones, so you might get an answer a bit faster during their work week. - -If something needs fixing or we have questions, we'll work back and forth with you to get that sorted. We usually do most of the chatting directly in the pull request comments on GitHub, but if you're stuck you can also stop by our [discord server](https://discord.polywrap.io) to talk with folk outside of the bug. - ->Another useful tool is `git rebase`, which allows you to change the "base" that your code uses. We most often use it as `git rebase origin/dev` which can be useful if a change in the dev tree is affecting your code's ability to merge. Rebasing is a bit much for an intro document, but [there's a git rebase tutorial here](https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase) that you may find useful if it comes up. - -Once any issues are resolved, we'll merge your code. Yay! - -In rare cases, the code won't work for us and we'll let you know. Sometimes this happens because someone else has already submitted a fix for the same bug, (Issues marked [good first issue](https://github.com/polywrap/python-client/labels/good%20first%20issue) can be in high demand!). Don't worry, these things happens, no one thinks less of you for trying! - -## Style Guide for polywrap python client - -Most of our "style" stuff is caught by the `black` and `pylint` linters, but we also recommend that contributors use f-strings for formatted strings: - -### String Formatting - -Python provides many different ways to format the string (you can read about them [here](https://realpython.com/python-formatted-output/)) and we use f-string formatting in our tool. - -> Note: f-strings are only supported in python 3.6+. - -- **Example:** Formatting string using f-string - -```python -#Program prints a string containing name and age of person -name = "John Doe" -age = 23 -print(f"Name of the person is {name} and his age is {age}") - -#Output -# "Name of the person is John Doe and his age is 23" -``` - -Note that the string started with the `f` followed by the string. Values are always added in the curly braces. Also we don't need to convert age into string. (we may have used `str(age)` before using it in the string) f-strings are useful as they provide many cool features. You can read more about features and the good practices to use f-strings [here](https://realpython.com/python-f-strings/#f-strings-a-new-and-improved-way-to-format-strings-in-python). - -## Making documentation - -The documentation for Polywrap python client can be found in the `docs/` directory (with the exception of the README.md file, which is stored in the root directory). - -Like many other Python-based projects, Polywrap python client uses Sphinx and -ReadTheDocs to format and display documentation. If you're doing more than minor typo -fixes, you may want to install the relevant tools to build the docs. There's a -`pyproject.toml` file available in the `docs/` directory you can use to install -sphinx and related tools: - -```bash -cd docs/ -poetry install -``` - -Once those are installed, you can build the documentation using `build.sh`: - -```bash -./build.sh -``` - -That will build the HTML rendering of the documentation and store it in the -`build` directory. You can then use your web browser to go to that -directory and see what it looks like. - -Note that you don't need to commit anything in the `build` directory. Only the `.md` and `.rst` files should be checked in to the repository. - -If you don't already have an editor that understands Markdown (`.md`) and -RestructuredText (.`rst`) files, you may want to try out Visual Studio Code, which is free and has a nice Markdown editor with a preview. - -You can also use the `./clean.sh` script to clean the source tree of any files -that are generated by the docgen process. - -By using `./docgen.sh` script, you can generate the documentation for the -project. This script will generate the documentation in the `source` directory. - -> NOTE: The use of `./clean.sh` and `./docgen.sh` is only recommended if you know what you're doing. -> If you're just trying to build the docs after some changes you have made then use `./build.sh` instead. - -## Where should I start? - -Many beginners get stuck trying to figure out how to start. You're not alone! - -Here's three things we recommend: - -- Try something marked as a "[good first issue](https://github.com/polywrap/python-client/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)" We try to mark issues that might be easier for beginners. -- Suggest fixes for documentation. If you try some instruction and it doesn't work, or you notice a typo, those are always easy first commits! One place we're a bit weak is instructions for Windows users. -- Add new tests. We're always happy to have new tests, especially for things that are currently untested. If you're not sure how to write a test, check out the existing tests for examples. -- Add new features. If you have an idea for a new feature, feel free to suggest it! We're happy to help you figure out how to implement it. - -If you get stuck or find something that you think should work but doesn't, ask for help in an issue or stop by [the discord](https://discord.polywrap.io) to ask questions. - -Note that our "good first issue" bugs are in high demand during the October due to the Hacktoberfest. It's totally fine to comment on an issue and say you're interested in working on it, but if you don't actually have any pull request with a tentative fix up within a week or so, someone else may pick it up and finish it. If you want to spend more time thinking, the new tests (especially ones no one has asked for) might be a good place for a relaxed first commit. - -### Claiming an issue - -- You do not need to have an issue assigned to you before you work on it. To "claim" an issue either make a linked pull request or comment on the issue saying you'll be working on it. -- If someone else has already commented or opened a pull request, assume it is claimed and find another issue to work on. -- If it's been more than 1 week without progress, you can ask in a comment if the claimant is still working on it before claiming it yourself (give them at least 3 days to respond before assuming they have moved on). - -The reason we do it this way is to free up time for our maintainers to do more code review rather than having them handling issue assignment. This is especially important to help us function during busy times of year when we take in a large number of new contributors such as Hacktoberfest (October). - -# Resources - -- [Polywrap Documentation](https://docs.polywrap.io) -- [Python Client Documentation](https://polywrap-client.rtfd.io) -- [Client Readiness](https://github.com/polywrap/client-readiness) -- [Discover Wrappers](https://wrapscan.io) -- [Polywrap Discord](https://discord.polywrap.io) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst new file mode 100644 index 00000000..bddbd7e7 --- /dev/null +++ b/CONTRIBUTING.rst @@ -0,0 +1,896 @@ +Contributor Guide +================= + +Polywrap DAO welcomes any new contributions! This guide is meant to help +people get over the initial hurdle of figuring out how to use git and +make a contribution. + +If you’ve already contributed to other open source projects, +contributing to the Polywrap Python project should be pretty similar and +you can probably figure it out by guessing. Experienced contributors +might want to just skip ahead and open up a pull request But if you’ve +never contributed to anything before, or you just want to see what we +consider best practice before you start, this is the guide for you! + +- `Contributor Guide <#contributor-guide>`__ + + - `Imposter syndrome disclaimer <#imposter-syndrome-disclaimer>`__ + - `Code of Conduct <#code-of-conduct>`__ + - `Development Environment <#development-environment>`__ + - `Getting and maintaining a local copy of the source + code <#getting-and-maintaining-a-local-copy-of-the-source-code>`__ + - `Choosing a version of python <#choosing-a-version-of-python>`__ + - `Installing poetry <#installing-poetry>`__ + - `Installing dependencies <#installing-dependencies>`__ + - `Running tests <#running-tests>`__ + + - `Debugging with Pytest <#debugging-with-pytest>`__ + - `Creating your own tests for the + client <#creating-your-own-tests-for-the-client>`__ + + - `Running linters <#running-linters>`__ + + - `Running isort by itself <#running-isort-by-itself>`__ + - `Running black by itself <#running-black-by-itself>`__ + - `Running bandit by itself <#running-bandit-by-itself>`__ + - `Running pyright by itself <#running-pyright-by-itself>`__ + + - `Using tox to run linters and + tests <#using-tox-to-run-linters-and-tests>`__ + + - `List all the testenv defined in the tox + config <#list-all-the-testenv-defined-in-the-tox-config>`__ + - `Run tests <#run-tests>`__ + - `Run linters <#run-linters>`__ + - `Run type checkers <#run-type-checkers>`__ + - `Find security vulnerabilities, if + any <#find-security-vulnerabilities-if-any>`__ + - `Dev environment <#dev-environment>`__ + + - `VSCode users: Improved dev + experience <#vscode-users-improved-dev-experience>`__ + + - `Picking up the virtual environments + automatically <#picking-up-the-virtual-environments-automatically>`__ + + - `Making a new branch & pull + request <#making-a-new-branch--pull-request>`__ + + - `Commit message tips <#commit-message-tips>`__ + - `Sharing your code with us <#sharing-your-code-with-us>`__ + - `Checklist for a great pull + request <#checklist-for-a-great-pull-request>`__ + + - `Code Review <#code-review>`__ + - `Style Guide for polywrap python + client <#style-guide-for-polywrap-python-client>`__ + + - `String Formatting <#string-formatting>`__ + + - `Making documentation <#making-documentation>`__ + - `Where should I start? <#where-should-i-start>`__ + + - `Claiming an issue <#claiming-an-issue>`__ + + - `Resources <#resources>`__ + +Imposter syndrome disclaimer +---------------------------- + +*We want your help*. No really, we do. + +There might be a little voice inside that tells you you’re not ready; +that you need to do one more tutorial, or learn another framework, or +write a few more blog posts before you can help with this project. + +I assure you, that’s not the case. + +This document contains some contribution guidelines and best practices, +but if you don’t get it right the first time we’ll try to help you fix +it. + +The contribution guidelines outline the process that you’ll need to +follow to get a patch merged. By making expectations and process +explicit, we hope it will make it easier for you to contribute. + +And you don’t just have to write code. You can help out by writing +documentation, tests, or even by giving feedback about this work. (And +yes, that includes giving feedback about the contribution guidelines.) + +If have questions or want to chat, we have a `discord +server `__ where you can ask questions, or +you can put them in `GitHub +issues `__ too. + +Thank you for contributing! + +This section is adapted from `this excellent document from +@adriennefriend `__ + +Code of Conduct +--------------- + +Polywrap python client contributors are asked to adhere to the `Python +Community Code of Conduct `__. + +Development Environment +----------------------- + +Unix (Linux/Mac) is the preferred operating system to use while +contributing to Polywrap python client. If you’re using Windows, we +recommend setting up `Windows Subsystem for +Linux `__. + +Getting and maintaining a local copy of the source code +------------------------------------------------------- + +There are lots of different ways to use git, and it’s so easy to get +into a messy state that `there’s a comic about +it `__. So… if you get stuck, remember, even +experienced programmers sometimes just delete their trees and copy over +the stuff they want manually. + +If you’re planning to contribute, first you’ll want to `get a local copy +of the source code (also known as “cloning the +repository”) `__ + +``git clone git@github.com:polywrap/python-client.git`` + +Once you’ve got the copy, you can update it using + +``git pull`` + +You’re also going to want to have your own “fork” of the repository on +GitHub. To make a fork on GitHub, read the instructions at `Fork a +repo `__. +A fork is a copy of the main repository that you control, and you’ll be +using it to store and share your code with others. You only need to make +the fork once. + +Once you’ve set up your fork, you will find it useful to set up a git +remote for pull requests: + +``git remote add myfork git@github.com:MYUSERNAME/python-client.git`` + +Replace MYUSERNAME with your own GitHub username. + +Choosing right version of python +-------------------------------- + +Polywrap python client uses python 3.10 as its preferred version of +choice. The newer python version may also work fine but we haven’t +tested it so we strongly recommend you to use the ``python 3.10``. + +- Make sure you’re running the correct version of python by running: + +:: + + python3 --version + +.. + + If you are using a Linux system or WSL, which comes with Python3.8, + then you will need to upgrade from Python3.8 to Python3.10 and also + fix the ``pip`` and ``distutil`` as upgrading to Python3.10 will + break them. You may follow `this + guide `__ + to upgrade. + +Installing poetry +----------------- + +Polywrap python client uses poetry as its preffered project manager. We +recommend installing the latest version of the poetry and if you are +already have it installed make sure it’s newer than version ``1.1.14``. + +- To install poetry follow `this + guide `__. +- If you are on MacOS then you can install poetry simply with the + following homebrew command + +:: + + brew install poetry + +.. + + To make sure you’re it’s installed properly, run ``poetry``. Learn + more `here `__ + +Installing dependencies +----------------------- + +Each of the package directory consists of the ``pyproject.toml`` file +and the ``poetry.lock`` file. In ``pyproject.toml`` file, one can find +out all the project dependencies and configs related to the package. +These files will be utilized by Poetry to install correct dependencies, +build, publish the package. + +For example, we can **install** deps and **build** the +``polywrap-msgpack`` package using Poetry. + +- Install dependencies using poetry + +:: + + poetry install + +- Build the package using poetry + +:: + + poetry build + +- Update dependencies using poetry + +:: + + poetry update + +.. + + Make sure your cwd is the appropriate module, for example + ``polywrap-msgpack``, ``polywrap-wasm`` or ``polywrap-client``. + +Running tests +------------- + +In order to assure the integrity of the python modules Polywrap Python +Client uses `pytest +7.1.3 `__ as a testing +framework. + +As we can see in the ``pyproject.toml`` files, we installed the +`PyTest `__ package. We will be using it as our +testing framework. Before running tests, make sure you have installed +all required dependencies using ``poetry install`` command. + +You need to activate the virtualenv with poetry using the ``shell`` +command before running any other command + +:: + + poetry shell + +Once activated you can directly run the ``pytest`` by just executing +following command: + +:: + + pytest + +If you don’t want to activate the virtualenv for entire shell and just +want to execute one particular command in the virtualenv, you can use +``poetry run`` command below: + +:: + + poetry run pytest + +This last command will run a series of scripts that verify that the +specific module of the client is performing as expected in your local +machine. The output on your console should look something like this: + +:: + + $ poetry run pytest + >> + ================================= test session starts ================================= + platform darwin -- Python 3.10.0, pytest-7.1.3, pluggy-1.0.0 + rootdir: /Users/polywrap/pycode/polywrap/toolchain/packages/py, configfile: pytest.ini + collected 26 items + + tests/test_msgpack.py ........................ [100%] + +Debugging with Pytest +~~~~~~~~~~~~~~~~~~~~~ + +You should expect to see the tests passing with a 100% accuracy. To +better understand these outputs, read `this quick +guide `__. If any +of the functionality fails (marked with an ‘F’), or if there are any +Warnings raised, you can debug them by running a verbose version of the +test suite: - ``poetry run pytests -v`` or ``poetry run pytests -vv`` +for even more detail - Reach out to the devs on the +`Discord `__ explaining your situation, and +what configuration you’re using on your machine. + +Creating your own tests for the client +-------------------------------------- + +By creating tests you can quickly experiment with the Polywrap Client +and its growing set of wrappers. Since Pytest is already set up on the +repo, go to the ``polywrap-client\tests\`` directory, and take a look at +how some of the functions are built. You can use similar patterns to mod +your own apps and build new prototypes with more complex functionality. + +Here’s a good guide to learn about `building tests with +Pytest `__ and `here’s +the official +documentation `__. + +Running linters +--------------- + +Polywrap python client uses a few tools to improve code quality and +readability: + +- ``isort`` sorts imports alphabetically and by type +- ``black`` provides automatic style formatting. This will give you + basic `PEP8 `__ + compliance. (PEP8 is where the default python style guide is + defined.) +- ``pylint`` provides additional code “linting” for more complex errors + like unused imports. +- ``pydocstyle`` helps ensure documentation styles are consistent. +- ``bandit`` is more of a static analysis tool than a linter and helps + us find potential security flaws in the code. +- ``pyright`` helps ensure type definitions are correct when provided. + +Running isort by itself +~~~~~~~~~~~~~~~~~~~~~~~ + +To format the imports using isort, you run ``isort --profile black`` +followed by the filename. You will have to add ``--profile black`` when +calling isort to make it compatible with Black formatter. For formatting +a particular file name filename.py. + +.. code:: bash + + isort --profile black filename.py + +Alternatively, you can run isort recursively for all the files by adding +``.`` instead of filename + +.. code:: bash + + isort --profile black . + +Running black by itself +~~~~~~~~~~~~~~~~~~~~~~~ + +To format the code, you run ``black`` followed by the filename you wish +to reformat. For formatting a particular file name filename.py. + +.. code:: bash + + black filename.py + +In many cases, it will make your life easier if you only run black on +files you’ve changed because you won’t have to scroll through a pile of +auto-formatting changes to find your own modifications. However, you can +also specify a whole folder using ``./`` + +Running pylint by itself +~~~~~~~~~~~~~~~~~~~~~~~~ + +pylint helps identify and flag code quality issues, potential bugs, and +adherence to coding standards. By analyzing Python code, Pylint enhances +code readability, maintains consistency, and aids in producing more +robust and maintainable software. + +To run pylint on all the code we scan, use the following: + +.. code:: bash + + pylint PACKAGE_NAME + +You can also run it on individual files: + +.. code:: bash + + pylint filename.py + +Checkout `pylint documentation `__ for more +information. + +Running pydocstyle by itself +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Pydocstyle is a tool for enforcing documentation conventions in Python +code. It checks adherence to the PEP 257 style guide, ensuring +consistent and well-formatted docstrings. By promoting clear and +standardized documentation, pydocstyle improves code readability, +fosters collaboration, and enhances overall code quality. + +To run pydocstyle on all the code we scan, use the following: + +.. code:: bash + + pydocstyle PACKAGE_NAME + +You can also run it on individual files: + +.. code:: bash + + pydocstyle filename.py + +Checkout `pydocstyle +documentation `__ for more +information. + +Running bandit by itself +~~~~~~~~~~~~~~~~~~~~~~~~ + +To run it on all the code we scan, use the following: + +.. code:: bash + + bandit -r PACKAGE_NAME + +You can also run it on individual files: + +.. code:: bash + + bandit filename.py + +Bandit helps you target manual code review, but bandit issues aren’t +always things that need to be fixed, just reviewed. If you have a bandit +finding that doesn’t actually need a fix, you can mark it as reviewed +using a ``# nosec`` comment. If possible, include details as to why the +bandit results are ok for future reviewers. For example, we have +comments like ``#nosec uses static https url above`` in cases where +bandit prompted us to review the variable being passed to urlopen(). + +Checkout `bandit +documentation `__ for more +information. + +Running pyright by itself +~~~~~~~~~~~~~~~~~~~~~~~~~ + +To check for static type checking, you run ``pyright`` followed by the +filename you wish to check static type for. pyright checks the type +annotations you provide and reports any type mismatches or missing +annotations. For static type checking for a particular file name +filename.py + +.. code:: bash + + pyright filename.py + +Alternatively, you can run pyright on directory as well. For static type +checking for a directory + +.. code:: bash + + pyright . + +for someone who is new or are not familiar to python typing here are few +resource - `pyright +documentation `__, and `Python +typing documentation `__ + +Using tox to run linters and tests +---------------------------------- + +We are using `tox `__ to run lint and tests +even more easily. Below are some basic commands to get you running. + +List all the testenv defined in the tox config +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + tox -a + +Run tests +~~~~~~~~~ + +:: + + tox + +Run linters +~~~~~~~~~~~ + +:: + + tox -e lint + +Run type checkers +~~~~~~~~~~~~~~~~~ + +:: + + tox -e typecheck + +Find security vulnerabilities, if any +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + tox -e secure + +Dev environment +~~~~~~~~~~~~~~~ + +Use this command to only apply lint fixes and style formatting. + +:: + + tox -e dev + +- After running these commands we should see all the tests passing and + commands executing successfully, which means that we are ready to + update and test the package. +- To create your own tox scripts, modify the ``tox.ini`` file in the + respective module. + +VSCode users: Improved dev experience +------------------------------------- + +If you use VSCode, we have prepared a pre-configured workspace that +improves your dev experience. So when you open VScode, set up the +workspace file ``python-monorepo.code-workspace`` by going to: + +:: + + File -> Open Workspace from File... + +.. figure:: misc/VScode_OpenWorkspaceFromFile.png + :alt: File -> Open Workspace from File + + File -> Open Workspace from File + +Each folder is now a project to VSCode. This action does not change the +underlying code, but facilitates the development process. So our file +directory should look like this now: + +.. figure:: misc/VScode_workspace.png + :alt: all modules have their respective folder, along with a root folder + +.. + + Note: You might have to do this step again next time you close and + open VS code! + +Picking up the virtual environments automatically +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +We will need to create a ``.vscode/settings.json`` file in each module’s +folder, pointing to the in-project virtual environment created by the +poetry. + +- You can easily find the path to the virtual env by running following + command in the package for which you want to find it for: + +:: + + poetry shell + +- Once you get the path virtual env, you need to create the following + ``settings.json`` file under the ``.vscode/`` folder of the given + package. For example, in case of ``polywrap-client`` package, it + would be under ``./polywrap-client/.vscode/settings.json`` + +Here’s the structure ``settings.json`` file we are using for configuring +the vscode. Make sure you update your virtual env path you got from +poetry as the ``python.defaultInterpreterPath`` argument: + +.. code:: json + + { + "python.formatting.provider": "black", + "python.languageServer": "Pylance", + "python.analysis.typeCheckingMode": "strict", + "python.defaultInterpreterPath": "/Users/polywrap/Library/Caches/pypoetry/virtualenvs/polywrap-client-abcdef-py3.10" + } + +Keep in mind that these venv paths will vary for each module you run +``poetry shell`` on. Once you configure these ``setting.json`` files +correctly on each module you should be good to go! + +Making a new branch & pull request +---------------------------------- + +Git allows you to have “branches” with variant versions of the code. You +can see what’s available using ``git branch`` and switch to one using +``git checkout branch_name``. + +To make your life easier, we recommend that the ``dev`` branch always be +kept in sync with the repo at +``https://github.com/polywrap/python-client``, as in you never check in +any code to that branch. That way, you can use that “clean” dev branch +as a basis for each new branch you start as follows: + +.. code:: bash + + git checkout dev + git pull + git checkout -b my_new_branch + +.. + + Note: If you accidentally check something in to dev and want to reset + it to match our dev branch, you can save your work using + ``checkout -b`` and then do a ``git reset`` to fix it: + + .. code:: bash + + git checkout -b saved_branch + git reset --hard origin/dev + + You do not need to do the ``checkout`` step if you don’t want to save + the changes you made. + +When you’re ready to share that branch to make a pull request, make sure +you’ve checked in all the files you’re working on. You can get a list of +the files you modified using ``git status`` and see what modifications +you made using ``git diff`` + +Use ``git add FILENAME`` to add the files you want to put in your pull +request, and use ``git commit`` to check them in. Try to use `a clear +commit message `__ and use the +`Conventional Commits `__ format. + +Commit message tips +~~~~~~~~~~~~~~~~~~~ + +We usually merge pull requests into a single commit when we accept them, +so it’s fine if you have lots of commits in your branch while you figure +stuff out, and we can fix your commit message as needed then. But if you +make sure that at least the title of your pull request follows the +`Conventional Commits `__ format +that you’d like for that merged commit message, that makes our job +easier! + +GitHub also has some keywords that help us link issues and then close +them automatically when code is merged. The most common one you’ll see +us use looks like ``fixes: #123456``. You can put this in the title of +your PR (what usually becomes the commit message when we merge your +code), another line in the commit message, or any comment in the pull +request to make it work. You and read more about `linking a pull request +to an +issue `__ +in the GitHub documentation. + +Sharing your code with us +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Once your branch is ready and you’ve checked in all your code, push it +to your fork: + +.. code:: bash + + git push myfork + +From there, you can go to `our pull request +page `__ to make a new +pull request from the web interface. + +Checklist for a great pull request +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here’s a quick checklist to help you make sure your pull request is +ready to go: + +1. Have I run the tests locally? + + - Run the command ``pytest`` (See also `Running + Tests <#running-tests>`__) + - GitHub Actions will run the tests for you, but you can often find + and fix issues faster if you do a local run of the tests. + +2. Have I run the code linters and fixed any issues they found? + + - We recommend using ``tox`` to easily run this (See also `Running + Linters <#running-linters>`__) + - GitHub Actions will run the linters for you too if you forget! + (And don’t worry, even experienced folk forget sometimes.) + - You will be responsible for fixing any issue found by the linters + before your code can be merged. + +3. Have I added any tests I need to prove that my code works? + + - This is especially important for new features or bug fixes. + +4. Have I added or updated any documentation if I changed or added a + feature? + + - New features are often documented as docstrings and doctests + alongside the code (See `Making + documentation <#making-documentation>`__ for more information.) + +5. Have I used `Conventional + Commits `__ to format the title + of my pull request? +6. If I closed a bug, have I linked it using one of `GitHub’s + keywords `__? + (e.g. include the text ``fixed #1234``) +7. Have I checked on the results from GitHub Actions? + + - GitHub Actions will run all the tests, linters and type checkers + for you. If you can, try to make sure everything is running + cleanly with no errors before leaving it for a human code + reviewer! + - As of this writing, tests take less than 20 minutes to run once + they start, but they can be queued for a while before they start. + Go get a cup of tea/coffee or work on something else while you + wait! + +Code Review +----------- + +Once you have created a pull request (PR), GitHub Actions will try to +run all the tests on your code. If you can, make any modifications you +need to make to ensure that they all pass, but if you get stuck a +reviewer will see if they can help you fix them. Remember that you can +run the tests locally while you’re debugging; you don’t have to wait for +GitHub to run the tests (see the `Running tests <#running-tests>`__ +section above for how to run tests). + +Someone will review your code and try to provide feedback in the +comments on GitHub. Usually it takes a few days, sometimes up to a week. +The core contributors for this project work on it as part of their day +jobs and are usually on different timezones, so you might get an answer +a bit faster during their work week. + +If something needs fixing or we have questions, we’ll work back and +forth with you to get that sorted. We usually do most of the chatting +directly in the pull request comments on GitHub, but if you’re stuck you +can also stop by our `discord server `__ to +talk with folk outside of the bug. + + Another useful tool is ``git rebase``, which allows you to change the + “base” that your code uses. We most often use it as + ``git rebase origin/dev`` which can be useful if a change in the dev + tree is affecting your code’s ability to merge. Rebasing is a bit + much for an intro document, but `there’s a git rebase tutorial + here `__ + that you may find useful if it comes up. + +Once any issues are resolved, we’ll merge your code. Yay! + +In rare cases, the code won’t work for us and we’ll let you know. +Sometimes this happens because someone else has already submitted a fix +for the same bug, (Issues marked `good first +issue `__ +can be in high demand!). Don’t worry, these things happens, no one +thinks less of you for trying! + +Style Guide for polywrap python client +-------------------------------------- + +Most of our “style” stuff is caught by the ``black`` and ``pylint`` +linters, but we also recommend that contributors use f-strings for +formatted strings: + +String Formatting +~~~~~~~~~~~~~~~~~ + +Python provides many different ways to format the string (you can read +about them `here `__) +and we use f-string formatting in our tool. + + Note: f-strings are only supported in python 3.6+. + +- **Example:** Formatting string using f-string + +.. code:: python + + #Program prints a string containing name and age of person + name = "John Doe" + age = 23 + print(f"Name of the person is {name} and his age is {age}") + + #Output + # "Name of the person is John Doe and his age is 23" + +Note that the string started with the ``f`` followed by the string. +Values are always added in the curly braces. Also we don’t need to +convert age into string. (we may have used ``str(age)`` before using it +in the string) f-strings are useful as they provide many cool features. +You can read more about features and the good practices to use f-strings +`here `__. + +Making documentation +-------------------- + +The documentation for Polywrap python client can be found in the +``docs/`` directory (with the exception of the README.md file, which is +stored in the root directory). + +Like many other Python-based projects, Polywrap python client uses +Sphinx and ReadTheDocs to format and display documentation. If you’re +doing more than minor typo fixes, you may want to install the relevant +tools to build the docs. There’s a ``pyproject.toml`` file available in +the ``docs/`` directory you can use to install sphinx and related tools: + +.. code:: bash + + cd docs/ + poetry install + +Once those are installed, you can build the documentation using +``build.sh``: + +.. code:: bash + + ./build.sh + +That will build the HTML rendering of the documentation and store it in +the ``build`` directory. You can then use your web browser to go to that +directory and see what it looks like. + +Note that you don’t need to commit anything in the ``build`` directory. +Only the ``.md`` and ``.rst`` files should be checked in to the +repository. + +If you don’t already have an editor that understands Markdown (``.md``) +and RestructuredText (.\ ``rst``) files, you may want to try out Visual +Studio Code, which is free and has a nice Markdown editor with a +preview. + +You can also use the ``./clean.sh`` script to clean the source tree of +any files that are generated by the docgen process. + +By using ``./docgen.sh`` script, you can generate the documentation for +the project. This script will generate the documentation in the +``source`` directory. + + NOTE: The use of ``./clean.sh`` and ``./docgen.sh`` is only + recommended if you know what you’re doing. If you’re just trying to + build the docs after some changes you have made then use + ``./build.sh`` instead. + +Where should I start? +--------------------- + +Many beginners get stuck trying to figure out how to start. You’re not +alone! + +Here’s three things we recommend: + +- Try something marked as a “`good first + issue `__” + We try to mark issues that might be easier for beginners. +- Suggest fixes for documentation. If you try some instruction and it + doesn’t work, or you notice a typo, those are always easy first + commits! One place we’re a bit weak is instructions for Windows + users. +- Add new tests. We’re always happy to have new tests, especially for + things that are currently untested. If you’re not sure how to write a + test, check out the existing tests for examples. +- Add new features. If you have an idea for a new feature, feel free to + suggest it! We’re happy to help you figure out how to implement it. + +If you get stuck or find something that you think should work but +doesn’t, ask for help in an issue or stop by `the +discord `__ to ask questions. + +Note that our “good first issue” bugs are in high demand during the +October due to the Hacktoberfest. It’s totally fine to comment on an +issue and say you’re interested in working on it, but if you don’t +actually have any pull request with a tentative fix up within a week or +so, someone else may pick it up and finish it. If you want to spend more +time thinking, the new tests (especially ones no one has asked for) +might be a good place for a relaxed first commit. + +Claiming an issue +~~~~~~~~~~~~~~~~~ + +- You do not need to have an issue assigned to you before you work on + it. To “claim” an issue either make a linked pull request or comment + on the issue saying you’ll be working on it. +- If someone else has already commented or opened a pull request, + assume it is claimed and find another issue to work on. +- If it’s been more than 1 week without progress, you can ask in a + comment if the claimant is still working on it before claiming it + yourself (give them at least 3 days to respond before assuming they + have moved on). + +The reason we do it this way is to free up time for our maintainers to +do more code review rather than having them handling issue assignment. +This is especially important to help us function during busy times of +year when we take in a large number of new contributors such as +Hacktoberfest (October). + +Resources +--------- + +- `Polywrap Documentation `__ +- `Python Client Documentation `__ +- `Client Readiness `__ +- `Discover Wrappers `__ +- `Polywrap Discord `__ diff --git a/README.md b/README.md index ca29edb2..dfb5f485 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ Bugs and feature requests can be made via [GitHub issues](https://github.com/pol [Pull requests](https://github.com/polywrap/python-client/pulls) are also welcome via git. -New contributors should read the [contributor guide](./CONTRIBUTING.md) to get started. +New contributors should read the [contributor guide](./CONTRIBUTING.rst) to get started. Folk who already have experience contributing to open source projects may not need the full guide but should still use the pull request checklist to make things easy for everyone. Polywrap Python Client contributors are asked to adhere to the [Python Community Code of Conduct](https://www.python.org/psf/conduct/). diff --git a/docs/docgen.sh b/docs/docgen.sh index b496a651..0fc4eaba 100644 --- a/docs/docgen.sh +++ b/docs/docgen.sh @@ -11,6 +11,3 @@ sphinx-apidoc ../packages/plugins/polywrap-http-plugin/polywrap_http_plugin -o . sphinx-apidoc ../packages/plugins/polywrap-ethereum-provider/polywrap_ethereum_provider -o ./source/polywrap-ethereum-provider -e -M -t ./source/_templates -d 2 sphinx-apidoc ../packages/config-bundles/polywrap-sys-config-bundle/polywrap_sys_config_bundle -o ./source/polywrap-sys-config-bundle -e -M -t ./source/_templates -d 2 sphinx-apidoc ../packages/config-bundles/polywrap-web3-config-bundle/polywrap_web3_config_bundle -o ./source/polywrap-web3-config-bundle -e -M -t ./source/_templates -d 2 - -cd ../packages/polywrap-client && python scripts/extract_readme.py && cd ../../docs -cp ../packages/polywrap-client/README.rst ./source/Quickstart.rst \ No newline at end of file diff --git a/docs/source/CONTRIBUTING.rst b/docs/source/CONTRIBUTING.rst new file mode 100644 index 00000000..bddbd7e7 --- /dev/null +++ b/docs/source/CONTRIBUTING.rst @@ -0,0 +1,896 @@ +Contributor Guide +================= + +Polywrap DAO welcomes any new contributions! This guide is meant to help +people get over the initial hurdle of figuring out how to use git and +make a contribution. + +If you’ve already contributed to other open source projects, +contributing to the Polywrap Python project should be pretty similar and +you can probably figure it out by guessing. Experienced contributors +might want to just skip ahead and open up a pull request But if you’ve +never contributed to anything before, or you just want to see what we +consider best practice before you start, this is the guide for you! + +- `Contributor Guide <#contributor-guide>`__ + + - `Imposter syndrome disclaimer <#imposter-syndrome-disclaimer>`__ + - `Code of Conduct <#code-of-conduct>`__ + - `Development Environment <#development-environment>`__ + - `Getting and maintaining a local copy of the source + code <#getting-and-maintaining-a-local-copy-of-the-source-code>`__ + - `Choosing a version of python <#choosing-a-version-of-python>`__ + - `Installing poetry <#installing-poetry>`__ + - `Installing dependencies <#installing-dependencies>`__ + - `Running tests <#running-tests>`__ + + - `Debugging with Pytest <#debugging-with-pytest>`__ + - `Creating your own tests for the + client <#creating-your-own-tests-for-the-client>`__ + + - `Running linters <#running-linters>`__ + + - `Running isort by itself <#running-isort-by-itself>`__ + - `Running black by itself <#running-black-by-itself>`__ + - `Running bandit by itself <#running-bandit-by-itself>`__ + - `Running pyright by itself <#running-pyright-by-itself>`__ + + - `Using tox to run linters and + tests <#using-tox-to-run-linters-and-tests>`__ + + - `List all the testenv defined in the tox + config <#list-all-the-testenv-defined-in-the-tox-config>`__ + - `Run tests <#run-tests>`__ + - `Run linters <#run-linters>`__ + - `Run type checkers <#run-type-checkers>`__ + - `Find security vulnerabilities, if + any <#find-security-vulnerabilities-if-any>`__ + - `Dev environment <#dev-environment>`__ + + - `VSCode users: Improved dev + experience <#vscode-users-improved-dev-experience>`__ + + - `Picking up the virtual environments + automatically <#picking-up-the-virtual-environments-automatically>`__ + + - `Making a new branch & pull + request <#making-a-new-branch--pull-request>`__ + + - `Commit message tips <#commit-message-tips>`__ + - `Sharing your code with us <#sharing-your-code-with-us>`__ + - `Checklist for a great pull + request <#checklist-for-a-great-pull-request>`__ + + - `Code Review <#code-review>`__ + - `Style Guide for polywrap python + client <#style-guide-for-polywrap-python-client>`__ + + - `String Formatting <#string-formatting>`__ + + - `Making documentation <#making-documentation>`__ + - `Where should I start? <#where-should-i-start>`__ + + - `Claiming an issue <#claiming-an-issue>`__ + + - `Resources <#resources>`__ + +Imposter syndrome disclaimer +---------------------------- + +*We want your help*. No really, we do. + +There might be a little voice inside that tells you you’re not ready; +that you need to do one more tutorial, or learn another framework, or +write a few more blog posts before you can help with this project. + +I assure you, that’s not the case. + +This document contains some contribution guidelines and best practices, +but if you don’t get it right the first time we’ll try to help you fix +it. + +The contribution guidelines outline the process that you’ll need to +follow to get a patch merged. By making expectations and process +explicit, we hope it will make it easier for you to contribute. + +And you don’t just have to write code. You can help out by writing +documentation, tests, or even by giving feedback about this work. (And +yes, that includes giving feedback about the contribution guidelines.) + +If have questions or want to chat, we have a `discord +server `__ where you can ask questions, or +you can put them in `GitHub +issues `__ too. + +Thank you for contributing! + +This section is adapted from `this excellent document from +@adriennefriend `__ + +Code of Conduct +--------------- + +Polywrap python client contributors are asked to adhere to the `Python +Community Code of Conduct `__. + +Development Environment +----------------------- + +Unix (Linux/Mac) is the preferred operating system to use while +contributing to Polywrap python client. If you’re using Windows, we +recommend setting up `Windows Subsystem for +Linux `__. + +Getting and maintaining a local copy of the source code +------------------------------------------------------- + +There are lots of different ways to use git, and it’s so easy to get +into a messy state that `there’s a comic about +it `__. So… if you get stuck, remember, even +experienced programmers sometimes just delete their trees and copy over +the stuff they want manually. + +If you’re planning to contribute, first you’ll want to `get a local copy +of the source code (also known as “cloning the +repository”) `__ + +``git clone git@github.com:polywrap/python-client.git`` + +Once you’ve got the copy, you can update it using + +``git pull`` + +You’re also going to want to have your own “fork” of the repository on +GitHub. To make a fork on GitHub, read the instructions at `Fork a +repo `__. +A fork is a copy of the main repository that you control, and you’ll be +using it to store and share your code with others. You only need to make +the fork once. + +Once you’ve set up your fork, you will find it useful to set up a git +remote for pull requests: + +``git remote add myfork git@github.com:MYUSERNAME/python-client.git`` + +Replace MYUSERNAME with your own GitHub username. + +Choosing right version of python +-------------------------------- + +Polywrap python client uses python 3.10 as its preferred version of +choice. The newer python version may also work fine but we haven’t +tested it so we strongly recommend you to use the ``python 3.10``. + +- Make sure you’re running the correct version of python by running: + +:: + + python3 --version + +.. + + If you are using a Linux system or WSL, which comes with Python3.8, + then you will need to upgrade from Python3.8 to Python3.10 and also + fix the ``pip`` and ``distutil`` as upgrading to Python3.10 will + break them. You may follow `this + guide `__ + to upgrade. + +Installing poetry +----------------- + +Polywrap python client uses poetry as its preffered project manager. We +recommend installing the latest version of the poetry and if you are +already have it installed make sure it’s newer than version ``1.1.14``. + +- To install poetry follow `this + guide `__. +- If you are on MacOS then you can install poetry simply with the + following homebrew command + +:: + + brew install poetry + +.. + + To make sure you’re it’s installed properly, run ``poetry``. Learn + more `here `__ + +Installing dependencies +----------------------- + +Each of the package directory consists of the ``pyproject.toml`` file +and the ``poetry.lock`` file. In ``pyproject.toml`` file, one can find +out all the project dependencies and configs related to the package. +These files will be utilized by Poetry to install correct dependencies, +build, publish the package. + +For example, we can **install** deps and **build** the +``polywrap-msgpack`` package using Poetry. + +- Install dependencies using poetry + +:: + + poetry install + +- Build the package using poetry + +:: + + poetry build + +- Update dependencies using poetry + +:: + + poetry update + +.. + + Make sure your cwd is the appropriate module, for example + ``polywrap-msgpack``, ``polywrap-wasm`` or ``polywrap-client``. + +Running tests +------------- + +In order to assure the integrity of the python modules Polywrap Python +Client uses `pytest +7.1.3 `__ as a testing +framework. + +As we can see in the ``pyproject.toml`` files, we installed the +`PyTest `__ package. We will be using it as our +testing framework. Before running tests, make sure you have installed +all required dependencies using ``poetry install`` command. + +You need to activate the virtualenv with poetry using the ``shell`` +command before running any other command + +:: + + poetry shell + +Once activated you can directly run the ``pytest`` by just executing +following command: + +:: + + pytest + +If you don’t want to activate the virtualenv for entire shell and just +want to execute one particular command in the virtualenv, you can use +``poetry run`` command below: + +:: + + poetry run pytest + +This last command will run a series of scripts that verify that the +specific module of the client is performing as expected in your local +machine. The output on your console should look something like this: + +:: + + $ poetry run pytest + >> + ================================= test session starts ================================= + platform darwin -- Python 3.10.0, pytest-7.1.3, pluggy-1.0.0 + rootdir: /Users/polywrap/pycode/polywrap/toolchain/packages/py, configfile: pytest.ini + collected 26 items + + tests/test_msgpack.py ........................ [100%] + +Debugging with Pytest +~~~~~~~~~~~~~~~~~~~~~ + +You should expect to see the tests passing with a 100% accuracy. To +better understand these outputs, read `this quick +guide `__. If any +of the functionality fails (marked with an ‘F’), or if there are any +Warnings raised, you can debug them by running a verbose version of the +test suite: - ``poetry run pytests -v`` or ``poetry run pytests -vv`` +for even more detail - Reach out to the devs on the +`Discord `__ explaining your situation, and +what configuration you’re using on your machine. + +Creating your own tests for the client +-------------------------------------- + +By creating tests you can quickly experiment with the Polywrap Client +and its growing set of wrappers. Since Pytest is already set up on the +repo, go to the ``polywrap-client\tests\`` directory, and take a look at +how some of the functions are built. You can use similar patterns to mod +your own apps and build new prototypes with more complex functionality. + +Here’s a good guide to learn about `building tests with +Pytest `__ and `here’s +the official +documentation `__. + +Running linters +--------------- + +Polywrap python client uses a few tools to improve code quality and +readability: + +- ``isort`` sorts imports alphabetically and by type +- ``black`` provides automatic style formatting. This will give you + basic `PEP8 `__ + compliance. (PEP8 is where the default python style guide is + defined.) +- ``pylint`` provides additional code “linting” for more complex errors + like unused imports. +- ``pydocstyle`` helps ensure documentation styles are consistent. +- ``bandit`` is more of a static analysis tool than a linter and helps + us find potential security flaws in the code. +- ``pyright`` helps ensure type definitions are correct when provided. + +Running isort by itself +~~~~~~~~~~~~~~~~~~~~~~~ + +To format the imports using isort, you run ``isort --profile black`` +followed by the filename. You will have to add ``--profile black`` when +calling isort to make it compatible with Black formatter. For formatting +a particular file name filename.py. + +.. code:: bash + + isort --profile black filename.py + +Alternatively, you can run isort recursively for all the files by adding +``.`` instead of filename + +.. code:: bash + + isort --profile black . + +Running black by itself +~~~~~~~~~~~~~~~~~~~~~~~ + +To format the code, you run ``black`` followed by the filename you wish +to reformat. For formatting a particular file name filename.py. + +.. code:: bash + + black filename.py + +In many cases, it will make your life easier if you only run black on +files you’ve changed because you won’t have to scroll through a pile of +auto-formatting changes to find your own modifications. However, you can +also specify a whole folder using ``./`` + +Running pylint by itself +~~~~~~~~~~~~~~~~~~~~~~~~ + +pylint helps identify and flag code quality issues, potential bugs, and +adherence to coding standards. By analyzing Python code, Pylint enhances +code readability, maintains consistency, and aids in producing more +robust and maintainable software. + +To run pylint on all the code we scan, use the following: + +.. code:: bash + + pylint PACKAGE_NAME + +You can also run it on individual files: + +.. code:: bash + + pylint filename.py + +Checkout `pylint documentation `__ for more +information. + +Running pydocstyle by itself +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Pydocstyle is a tool for enforcing documentation conventions in Python +code. It checks adherence to the PEP 257 style guide, ensuring +consistent and well-formatted docstrings. By promoting clear and +standardized documentation, pydocstyle improves code readability, +fosters collaboration, and enhances overall code quality. + +To run pydocstyle on all the code we scan, use the following: + +.. code:: bash + + pydocstyle PACKAGE_NAME + +You can also run it on individual files: + +.. code:: bash + + pydocstyle filename.py + +Checkout `pydocstyle +documentation `__ for more +information. + +Running bandit by itself +~~~~~~~~~~~~~~~~~~~~~~~~ + +To run it on all the code we scan, use the following: + +.. code:: bash + + bandit -r PACKAGE_NAME + +You can also run it on individual files: + +.. code:: bash + + bandit filename.py + +Bandit helps you target manual code review, but bandit issues aren’t +always things that need to be fixed, just reviewed. If you have a bandit +finding that doesn’t actually need a fix, you can mark it as reviewed +using a ``# nosec`` comment. If possible, include details as to why the +bandit results are ok for future reviewers. For example, we have +comments like ``#nosec uses static https url above`` in cases where +bandit prompted us to review the variable being passed to urlopen(). + +Checkout `bandit +documentation `__ for more +information. + +Running pyright by itself +~~~~~~~~~~~~~~~~~~~~~~~~~ + +To check for static type checking, you run ``pyright`` followed by the +filename you wish to check static type for. pyright checks the type +annotations you provide and reports any type mismatches or missing +annotations. For static type checking for a particular file name +filename.py + +.. code:: bash + + pyright filename.py + +Alternatively, you can run pyright on directory as well. For static type +checking for a directory + +.. code:: bash + + pyright . + +for someone who is new or are not familiar to python typing here are few +resource - `pyright +documentation `__, and `Python +typing documentation `__ + +Using tox to run linters and tests +---------------------------------- + +We are using `tox `__ to run lint and tests +even more easily. Below are some basic commands to get you running. + +List all the testenv defined in the tox config +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + tox -a + +Run tests +~~~~~~~~~ + +:: + + tox + +Run linters +~~~~~~~~~~~ + +:: + + tox -e lint + +Run type checkers +~~~~~~~~~~~~~~~~~ + +:: + + tox -e typecheck + +Find security vulnerabilities, if any +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + tox -e secure + +Dev environment +~~~~~~~~~~~~~~~ + +Use this command to only apply lint fixes and style formatting. + +:: + + tox -e dev + +- After running these commands we should see all the tests passing and + commands executing successfully, which means that we are ready to + update and test the package. +- To create your own tox scripts, modify the ``tox.ini`` file in the + respective module. + +VSCode users: Improved dev experience +------------------------------------- + +If you use VSCode, we have prepared a pre-configured workspace that +improves your dev experience. So when you open VScode, set up the +workspace file ``python-monorepo.code-workspace`` by going to: + +:: + + File -> Open Workspace from File... + +.. figure:: misc/VScode_OpenWorkspaceFromFile.png + :alt: File -> Open Workspace from File + + File -> Open Workspace from File + +Each folder is now a project to VSCode. This action does not change the +underlying code, but facilitates the development process. So our file +directory should look like this now: + +.. figure:: misc/VScode_workspace.png + :alt: all modules have their respective folder, along with a root folder + +.. + + Note: You might have to do this step again next time you close and + open VS code! + +Picking up the virtual environments automatically +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +We will need to create a ``.vscode/settings.json`` file in each module’s +folder, pointing to the in-project virtual environment created by the +poetry. + +- You can easily find the path to the virtual env by running following + command in the package for which you want to find it for: + +:: + + poetry shell + +- Once you get the path virtual env, you need to create the following + ``settings.json`` file under the ``.vscode/`` folder of the given + package. For example, in case of ``polywrap-client`` package, it + would be under ``./polywrap-client/.vscode/settings.json`` + +Here’s the structure ``settings.json`` file we are using for configuring +the vscode. Make sure you update your virtual env path you got from +poetry as the ``python.defaultInterpreterPath`` argument: + +.. code:: json + + { + "python.formatting.provider": "black", + "python.languageServer": "Pylance", + "python.analysis.typeCheckingMode": "strict", + "python.defaultInterpreterPath": "/Users/polywrap/Library/Caches/pypoetry/virtualenvs/polywrap-client-abcdef-py3.10" + } + +Keep in mind that these venv paths will vary for each module you run +``poetry shell`` on. Once you configure these ``setting.json`` files +correctly on each module you should be good to go! + +Making a new branch & pull request +---------------------------------- + +Git allows you to have “branches” with variant versions of the code. You +can see what’s available using ``git branch`` and switch to one using +``git checkout branch_name``. + +To make your life easier, we recommend that the ``dev`` branch always be +kept in sync with the repo at +``https://github.com/polywrap/python-client``, as in you never check in +any code to that branch. That way, you can use that “clean” dev branch +as a basis for each new branch you start as follows: + +.. code:: bash + + git checkout dev + git pull + git checkout -b my_new_branch + +.. + + Note: If you accidentally check something in to dev and want to reset + it to match our dev branch, you can save your work using + ``checkout -b`` and then do a ``git reset`` to fix it: + + .. code:: bash + + git checkout -b saved_branch + git reset --hard origin/dev + + You do not need to do the ``checkout`` step if you don’t want to save + the changes you made. + +When you’re ready to share that branch to make a pull request, make sure +you’ve checked in all the files you’re working on. You can get a list of +the files you modified using ``git status`` and see what modifications +you made using ``git diff`` + +Use ``git add FILENAME`` to add the files you want to put in your pull +request, and use ``git commit`` to check them in. Try to use `a clear +commit message `__ and use the +`Conventional Commits `__ format. + +Commit message tips +~~~~~~~~~~~~~~~~~~~ + +We usually merge pull requests into a single commit when we accept them, +so it’s fine if you have lots of commits in your branch while you figure +stuff out, and we can fix your commit message as needed then. But if you +make sure that at least the title of your pull request follows the +`Conventional Commits `__ format +that you’d like for that merged commit message, that makes our job +easier! + +GitHub also has some keywords that help us link issues and then close +them automatically when code is merged. The most common one you’ll see +us use looks like ``fixes: #123456``. You can put this in the title of +your PR (what usually becomes the commit message when we merge your +code), another line in the commit message, or any comment in the pull +request to make it work. You and read more about `linking a pull request +to an +issue `__ +in the GitHub documentation. + +Sharing your code with us +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Once your branch is ready and you’ve checked in all your code, push it +to your fork: + +.. code:: bash + + git push myfork + +From there, you can go to `our pull request +page `__ to make a new +pull request from the web interface. + +Checklist for a great pull request +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here’s a quick checklist to help you make sure your pull request is +ready to go: + +1. Have I run the tests locally? + + - Run the command ``pytest`` (See also `Running + Tests <#running-tests>`__) + - GitHub Actions will run the tests for you, but you can often find + and fix issues faster if you do a local run of the tests. + +2. Have I run the code linters and fixed any issues they found? + + - We recommend using ``tox`` to easily run this (See also `Running + Linters <#running-linters>`__) + - GitHub Actions will run the linters for you too if you forget! + (And don’t worry, even experienced folk forget sometimes.) + - You will be responsible for fixing any issue found by the linters + before your code can be merged. + +3. Have I added any tests I need to prove that my code works? + + - This is especially important for new features or bug fixes. + +4. Have I added or updated any documentation if I changed or added a + feature? + + - New features are often documented as docstrings and doctests + alongside the code (See `Making + documentation <#making-documentation>`__ for more information.) + +5. Have I used `Conventional + Commits `__ to format the title + of my pull request? +6. If I closed a bug, have I linked it using one of `GitHub’s + keywords `__? + (e.g. include the text ``fixed #1234``) +7. Have I checked on the results from GitHub Actions? + + - GitHub Actions will run all the tests, linters and type checkers + for you. If you can, try to make sure everything is running + cleanly with no errors before leaving it for a human code + reviewer! + - As of this writing, tests take less than 20 minutes to run once + they start, but they can be queued for a while before they start. + Go get a cup of tea/coffee or work on something else while you + wait! + +Code Review +----------- + +Once you have created a pull request (PR), GitHub Actions will try to +run all the tests on your code. If you can, make any modifications you +need to make to ensure that they all pass, but if you get stuck a +reviewer will see if they can help you fix them. Remember that you can +run the tests locally while you’re debugging; you don’t have to wait for +GitHub to run the tests (see the `Running tests <#running-tests>`__ +section above for how to run tests). + +Someone will review your code and try to provide feedback in the +comments on GitHub. Usually it takes a few days, sometimes up to a week. +The core contributors for this project work on it as part of their day +jobs and are usually on different timezones, so you might get an answer +a bit faster during their work week. + +If something needs fixing or we have questions, we’ll work back and +forth with you to get that sorted. We usually do most of the chatting +directly in the pull request comments on GitHub, but if you’re stuck you +can also stop by our `discord server `__ to +talk with folk outside of the bug. + + Another useful tool is ``git rebase``, which allows you to change the + “base” that your code uses. We most often use it as + ``git rebase origin/dev`` which can be useful if a change in the dev + tree is affecting your code’s ability to merge. Rebasing is a bit + much for an intro document, but `there’s a git rebase tutorial + here `__ + that you may find useful if it comes up. + +Once any issues are resolved, we’ll merge your code. Yay! + +In rare cases, the code won’t work for us and we’ll let you know. +Sometimes this happens because someone else has already submitted a fix +for the same bug, (Issues marked `good first +issue `__ +can be in high demand!). Don’t worry, these things happens, no one +thinks less of you for trying! + +Style Guide for polywrap python client +-------------------------------------- + +Most of our “style” stuff is caught by the ``black`` and ``pylint`` +linters, but we also recommend that contributors use f-strings for +formatted strings: + +String Formatting +~~~~~~~~~~~~~~~~~ + +Python provides many different ways to format the string (you can read +about them `here `__) +and we use f-string formatting in our tool. + + Note: f-strings are only supported in python 3.6+. + +- **Example:** Formatting string using f-string + +.. code:: python + + #Program prints a string containing name and age of person + name = "John Doe" + age = 23 + print(f"Name of the person is {name} and his age is {age}") + + #Output + # "Name of the person is John Doe and his age is 23" + +Note that the string started with the ``f`` followed by the string. +Values are always added in the curly braces. Also we don’t need to +convert age into string. (we may have used ``str(age)`` before using it +in the string) f-strings are useful as they provide many cool features. +You can read more about features and the good practices to use f-strings +`here `__. + +Making documentation +-------------------- + +The documentation for Polywrap python client can be found in the +``docs/`` directory (with the exception of the README.md file, which is +stored in the root directory). + +Like many other Python-based projects, Polywrap python client uses +Sphinx and ReadTheDocs to format and display documentation. If you’re +doing more than minor typo fixes, you may want to install the relevant +tools to build the docs. There’s a ``pyproject.toml`` file available in +the ``docs/`` directory you can use to install sphinx and related tools: + +.. code:: bash + + cd docs/ + poetry install + +Once those are installed, you can build the documentation using +``build.sh``: + +.. code:: bash + + ./build.sh + +That will build the HTML rendering of the documentation and store it in +the ``build`` directory. You can then use your web browser to go to that +directory and see what it looks like. + +Note that you don’t need to commit anything in the ``build`` directory. +Only the ``.md`` and ``.rst`` files should be checked in to the +repository. + +If you don’t already have an editor that understands Markdown (``.md``) +and RestructuredText (.\ ``rst``) files, you may want to try out Visual +Studio Code, which is free and has a nice Markdown editor with a +preview. + +You can also use the ``./clean.sh`` script to clean the source tree of +any files that are generated by the docgen process. + +By using ``./docgen.sh`` script, you can generate the documentation for +the project. This script will generate the documentation in the +``source`` directory. + + NOTE: The use of ``./clean.sh`` and ``./docgen.sh`` is only + recommended if you know what you’re doing. If you’re just trying to + build the docs after some changes you have made then use + ``./build.sh`` instead. + +Where should I start? +--------------------- + +Many beginners get stuck trying to figure out how to start. You’re not +alone! + +Here’s three things we recommend: + +- Try something marked as a “`good first + issue `__” + We try to mark issues that might be easier for beginners. +- Suggest fixes for documentation. If you try some instruction and it + doesn’t work, or you notice a typo, those are always easy first + commits! One place we’re a bit weak is instructions for Windows + users. +- Add new tests. We’re always happy to have new tests, especially for + things that are currently untested. If you’re not sure how to write a + test, check out the existing tests for examples. +- Add new features. If you have an idea for a new feature, feel free to + suggest it! We’re happy to help you figure out how to implement it. + +If you get stuck or find something that you think should work but +doesn’t, ask for help in an issue or stop by `the +discord `__ to ask questions. + +Note that our “good first issue” bugs are in high demand during the +October due to the Hacktoberfest. It’s totally fine to comment on an +issue and say you’re interested in working on it, but if you don’t +actually have any pull request with a tentative fix up within a week or +so, someone else may pick it up and finish it. If you want to spend more +time thinking, the new tests (especially ones no one has asked for) +might be a good place for a relaxed first commit. + +Claiming an issue +~~~~~~~~~~~~~~~~~ + +- You do not need to have an issue assigned to you before you work on + it. To “claim” an issue either make a linked pull request or comment + on the issue saying you’ll be working on it. +- If someone else has already commented or opened a pull request, + assume it is claimed and find another issue to work on. +- If it’s been more than 1 week without progress, you can ask in a + comment if the claimant is still working on it before claiming it + yourself (give them at least 3 days to respond before assuming they + have moved on). + +The reason we do it this way is to free up time for our maintainers to +do more code review rather than having them handling issue assignment. +This is especially important to help us function during busy times of +year when we take in a large number of new contributors such as +Hacktoberfest (October). + +Resources +--------- + +- `Polywrap Documentation `__ +- `Python Client Documentation `__ +- `Client Readiness `__ +- `Discover Wrappers `__ +- `Polywrap Discord `__ diff --git a/docs/source/conf.py b/docs/source/conf.py index c240588b..0827121f 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -34,3 +34,21 @@ html_theme = 'sphinx_rtd_theme' html_static_path = ['_static'] + +# Generate necessary code for plugins +import os +import shutil +import subprocess + +root_dir = os.path.join(os.path.dirname(__file__), "..", "..") + +shutil.rmtree(os.path.join(root_dir, "docs", "source", "misc"), ignore_errors=True) +shutil.copytree(os.path.join(root_dir, "misc"), os.path.join(root_dir, "docs", "source", "misc")) + +subprocess.check_call(["python", "scripts/extract_readme.py"], cwd=os.path.join(root_dir, "packages", "polywrap-client")) +shutil.copy2(os.path.join(root_dir, "packages", "polywrap-client", "README.rst"), os.path.join(root_dir, "docs", "source", "Quickstart.rst")) + +sys_config_dir = os.path.join(root_dir, "packages", "config-bundles", "polywrap-sys-config-bundle") +subprocess.check_call(["yarn", "codegen"], cwd=sys_config_dir) + +shutil.copy2(os.path.join(root_dir, "CONTRIBUTING.rst"), os.path.join(root_dir, "docs", "source", "CONTRIBUTING.rst")) diff --git a/docs/source/index.rst b/docs/source/index.rst index 7fd5fadb..cb7562c7 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -13,6 +13,7 @@ Welcome to polywrap-client's documentation! :maxdepth: 1 :caption: Contents: + CONTRIBUTING.rst polywrap-client/modules.rst polywrap-client-config-builder/modules.rst polywrap-fs-plugin/modules.rst diff --git a/docs/source/misc/VScode_OpenWorkspaceFromFile.png b/docs/source/misc/VScode_OpenWorkspaceFromFile.png new file mode 100644 index 0000000000000000000000000000000000000000..a9b4c6d5e910b6a4c9568ae7e3a49feb882a3537 GIT binary patch literal 276527 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ǎjqc^4=k=xZcy7A; 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 z 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\PyQ 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%0D1}|Kem+7o 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 QCCW=vRp({Jiw|G^4_jcRkpKVy literal 0 HcmV?d00001 diff --git a/docs/source/misc/VScode_workspace.png b/docs/source/misc/VScode_workspace.png new file mode 100644 index 0000000000000000000000000000000000000000..830aef91c6b87b80003520810dd2c2a7a0759dbe GIT binary patch literal 15324 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 WuaF^0&;S0BKulO#s9HeR|Nj7)WNfhj literal 0 HcmV?d00001 diff --git a/packages/plugins/polywrap-ethereum-provider/polywrap_ethereum_provider/__init__.py b/packages/plugins/polywrap-ethereum-provider/polywrap_ethereum_provider/__init__.py index 7be72863..f43af251 100644 --- a/packages/plugins/polywrap-ethereum-provider/polywrap_ethereum_provider/__init__.py +++ b/packages/plugins/polywrap-ethereum-provider/polywrap_ethereum_provider/__init__.py @@ -1,8 +1,8 @@ """This package provides a Polywrap plugin for interacting with EVM networks. The Ethereum Provider plugin implements the `ethereum-provider-interface` \ - @ [ens/wraps.eth:ethereum-provider@2.0.0](https://app.ens.domains/name/wraps.eth/details) \ - (see [../../interface/polywrap.graphql](../../interface/polywrap.graphql)). \ + @ `ens/wraps.eth:ethereum-provider@2.0.0 `__ \ + (see `../../interface/polywrap.graphql` ). \ It handles Ethereum wallet transaction signatures and sends JSON RPC requests \ for the Ethereum wrapper. From 0a88ee5ca08b49eca69a0b9f24ad42383b890f79 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Mon, 14 Aug 2023 22:00:10 +0530 Subject: [PATCH 2/2] fix: update ethereum readme --- packages/plugins/polywrap-ethereum-provider/README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/plugins/polywrap-ethereum-provider/README.rst b/packages/plugins/polywrap-ethereum-provider/README.rst index 41165de2..4ed2f3d9 100644 --- a/packages/plugins/polywrap-ethereum-provider/README.rst +++ b/packages/plugins/polywrap-ethereum-provider/README.rst @@ -2,7 +2,7 @@ Polywrap Ethereum Provider ========================== This package provides a Polywrap plugin for interacting with EVM networks. -The Ethereum Provider plugin implements the `ethereum-provider-interface` @ [ens/wraps.eth:ethereum-provider@2.0.0](https://app.ens.domains/name/wraps.eth/details) (see [../../interface/polywrap.graphql](../../interface/polywrap.graphql)). It handles Ethereum wallet transaction signatures and sends JSON RPC requests for the Ethereum wrapper. +The Ethereum Provider plugin implements the `ethereum-provider-interface` @ `ens/wraps.eth:ethereum-provider@2.0.0 `__ (see `../../interface/polywrap.graphql` ). It handles Ethereum wallet transaction signatures and sends JSON RPC requests for the Ethereum wrapper. Quickstart ----------