diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0d2cfcd..a8e7e77 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,32 +1,32 @@ # Contributing to podman-compose -## Who can contribute? +## Who can contribute? - Users that found a bug -- Users that wants to propose new functionalities or enhancements +- Users that want to propose new functionalities or enhancements - Users that want to help other users to troubleshoot their environments - Developers that want to fix bugs - Developers that want to implement new functionalities or enhancements ## Branches -Please request your PR to be merged into the `devel` branch. +Please request your pull request to be merged into the `devel` branch. Changes to the `stable` branch are managed by the repository maintainers. ## Development environment setup Note: Some steps are OPTIONAL but all are RECOMMENDED. -1. Fork the project repo and clone it +1. Fork the project repository and clone it ```shell $ git clone https://github.com/USERNAME/podman-compose.git $ cd podman-compose ``` -1. (OPTIONAL) Create a python virtual environment. Example using [virtualenv wrapper](https://virtualenvwrapper.readthedocs.io/en/latest/): +1. (OPTIONAL) Create a Python virtual environment. Example using [virtualenv wrapper](https://virtualenvwrapper.readthedocs.io/en/latest/): ```shell mkvirtualenv podman-compose ``` -2. Install the project runtime and development requirements +2. Install the project runtime and development requirements ```shell $ pip install '.[devel]' ``` @@ -35,7 +35,7 @@ $ pip install '.[devel]' $ pre-commit install ``` 4. Create a new branch, develop and add tests when possible -5. Run linting & testing before committing code. Ensure all the hooks are passing. +5. Run linting and testing before committing code. Ensure all the hooks are passing. ```shell $ pre-commit run --all-files ``` @@ -47,22 +47,22 @@ coverage combine coverage report coverage html ``` -7. Commit your code to your fork's branch. +7. Commit your code to your fork's branch. - Make sure you include a `Signed-off-by` message in your commits. Read [this guide](https://github.com/containers/common/blob/main/CONTRIBUTING.md#sign-your-prs) to learn how to sign your commits - - In the commit message reference the Issue ID that your code fixes and a brief description of the changes. Example: `Fixes #516: allow empty network` -7. Open a PR to `containers/podman-compose:devel` and wait for a maintainer to review your work. + - In the commit message reference the Issue ID that your code fixes and a brief description of the changes. Example: `Fixes #516: Allow empty network` +8. Open a pull request to `containers/podman-compose:devel` and wait for a maintainer to review your work. ## Adding new commands -To add a command you need to add a function that is decorated -with `@cmd_run` passing the compose instance, command name and -description. This function must be declared `async` the wrapped -function should accept two arguments the compose instance and -the command-specific arguments (resulted from python's `argparse` -package) inside that command you can run PodMan like this -`await compose.podman.run(['inspect', 'something'])`and inside -that function you can access `compose.pods` and `compose.containers` -...etc. Here is an example +To add a command, you need to add a function that is decorated with `@cmd_run`. + +The decorated function must be declared `async` and should accept two arguments: The compose instance and the +command-specific arguments (resulted from the Python's `argparse` package). + +In this function, you can run Podman (e.g. `await compose.podman.run(['inspect', 'something'])`), access `compose.pods`, +`compose.containers` etc. + +Here is an example: ``` @cmd_run(podman_compose, 'build', 'build images defined in the stack') @@ -72,13 +72,16 @@ async def compose_build(compose, args): ## Command arguments parsing -Add a function that accept `parser` which is an instance from `argparse`. -In side that function you can call `parser.add_argument()`. -The function decorated with `@cmd_parse` accepting the compose instance, -and command names (as a list or as a string). -You can do this multiple times. +To add arguments to be parsed by a command, you need to add a function that is decorated with `@cmd_parse` which accepts +the compose instance and the command's name (as a string list or as a single string). -Here is an example +The decorated function should accept a single argument: An instance of `argparse`. + +In this function, you can call `parser.add_argument()` to add a new argument to the command. + +Note you can add such a function multiple times. + +Here is an example: ``` @cmd_parse(podman_compose, 'build') @@ -91,9 +94,9 @@ def compose_build_parse(parser): NOTE: `@cmd_parse` should be after `@cmd_run` -## Calling a command from inside another +## Calling a command from another one -If you need to call `podman-compose down` from inside `podman-compose up` +If you need to call `podman-compose down` from `podman-compose up` do something like: ```