diff --git a/docs/build/doctrees/cli.add.doctree b/docs/build/doctrees/cli.add.doctree new file mode 100644 index 00000000..ed82226a Binary files /dev/null and b/docs/build/doctrees/cli.add.doctree differ diff --git a/docs/build/doctrees/cli.build.doctree b/docs/build/doctrees/cli.build.doctree new file mode 100644 index 00000000..2640833b Binary files /dev/null and b/docs/build/doctrees/cli.build.doctree differ diff --git a/docs/build/doctrees/cli.generate.doctree b/docs/build/doctrees/cli.generate.doctree new file mode 100644 index 00000000..23196c32 Binary files /dev/null and b/docs/build/doctrees/cli.generate.doctree differ diff --git a/docs/build/doctrees/cli.help.doctree b/docs/build/doctrees/cli.help.doctree new file mode 100644 index 00000000..834320d1 Binary files /dev/null and b/docs/build/doctrees/cli.help.doctree differ diff --git a/docs/build/doctrees/cli.install.doctree b/docs/build/doctrees/cli.install.doctree new file mode 100644 index 00000000..6a77325c Binary files /dev/null and b/docs/build/doctrees/cli.install.doctree differ diff --git a/docs/build/doctrees/cli.new.doctree b/docs/build/doctrees/cli.new.doctree new file mode 100644 index 00000000..e35016e9 Binary files /dev/null and b/docs/build/doctrees/cli.new.doctree differ diff --git a/docs/build/doctrees/cli.overview.doctree b/docs/build/doctrees/cli.overview.doctree new file mode 100644 index 00000000..d1895986 Binary files /dev/null and b/docs/build/doctrees/cli.overview.doctree differ diff --git a/docs/build/doctrees/cli.publish.doctree b/docs/build/doctrees/cli.publish.doctree new file mode 100644 index 00000000..594ada0d Binary files /dev/null and b/docs/build/doctrees/cli.publish.doctree differ diff --git a/docs/build/doctrees/cli.remove.doctree b/docs/build/doctrees/cli.remove.doctree new file mode 100644 index 00000000..98c92c20 Binary files /dev/null and b/docs/build/doctrees/cli.remove.doctree differ diff --git a/docs/build/doctrees/cli.start.doctree b/docs/build/doctrees/cli.start.doctree new file mode 100644 index 00000000..9f25efe1 Binary files /dev/null and b/docs/build/doctrees/cli.start.doctree differ diff --git a/docs/build/doctrees/cli.uninstall.doctree b/docs/build/doctrees/cli.uninstall.doctree new file mode 100644 index 00000000..bde41ad4 Binary files /dev/null and b/docs/build/doctrees/cli.uninstall.doctree differ diff --git a/docs/build/doctrees/cli.update.doctree b/docs/build/doctrees/cli.update.doctree new file mode 100644 index 00000000..7533ed14 Binary files /dev/null and b/docs/build/doctrees/cli.update.doctree differ diff --git a/docs/build/doctrees/cli.version.doctree b/docs/build/doctrees/cli.version.doctree new file mode 100644 index 00000000..7fb0d3ec Binary files /dev/null and b/docs/build/doctrees/cli.version.doctree differ diff --git a/docs/build/doctrees/contributing.doctree b/docs/build/doctrees/contributing.doctree new file mode 100644 index 00000000..5225fce9 Binary files /dev/null and b/docs/build/doctrees/contributing.doctree differ diff --git a/docs/build/doctrees/cpl.doctree b/docs/build/doctrees/cpl.doctree index 362f23e8..67599dd3 100644 Binary files a/docs/build/doctrees/cpl.doctree and b/docs/build/doctrees/cpl.doctree differ diff --git a/docs/build/doctrees/cpl_cli.doctree b/docs/build/doctrees/cpl_cli.doctree new file mode 100644 index 00000000..d2d16c1f Binary files /dev/null and b/docs/build/doctrees/cpl_cli.doctree differ diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index fbb9b765..878310a3 100644 Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/doctrees/environment.pickle differ diff --git a/docs/build/doctrees/getting_started.doctree b/docs/build/doctrees/getting_started.doctree new file mode 100644 index 00000000..a4704eec Binary files /dev/null and b/docs/build/doctrees/getting_started.doctree differ diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree index bc92aaf9..054a7eae 100644 Binary files a/docs/build/doctrees/index.doctree and b/docs/build/doctrees/index.doctree differ diff --git a/docs/build/doctrees/introduction.doctree b/docs/build/doctrees/introduction.doctree new file mode 100644 index 00000000..14267783 Binary files /dev/null and b/docs/build/doctrees/introduction.doctree differ diff --git a/docs/build/doctrees/modules.doctree b/docs/build/doctrees/modules.doctree index 2b4a77f6..9bfe3372 100644 Binary files a/docs/build/doctrees/modules.doctree and b/docs/build/doctrees/modules.doctree differ diff --git a/docs/build/doctrees/quickstart.doctree b/docs/build/doctrees/quickstart.doctree new file mode 100644 index 00000000..ed8b4dca Binary files /dev/null and b/docs/build/doctrees/quickstart.doctree differ diff --git a/docs/build/doctrees/setup.doctree b/docs/build/doctrees/setup.doctree new file mode 100644 index 00000000..66951101 Binary files /dev/null and b/docs/build/doctrees/setup.doctree differ diff --git a/docs/build/html/_images/ide-emulate.png b/docs/build/html/_images/ide-emulate.png new file mode 100644 index 00000000..3c6f5a6b Binary files /dev/null and b/docs/build/html/_images/ide-emulate.png differ diff --git a/docs/build/html/_images/ide-src.png b/docs/build/html/_images/ide-src.png new file mode 100644 index 00000000..f778cd46 Binary files /dev/null and b/docs/build/html/_images/ide-src.png differ diff --git a/docs/build/html/_images/ide.png b/docs/build/html/_images/ide.png new file mode 100644 index 00000000..18370cd8 Binary files /dev/null and b/docs/build/html/_images/ide.png differ diff --git a/docs/build/html/_sources/cli.add.md.txt b/docs/build/html/_sources/cli.add.md.txt new file mode 100644 index 00000000..ebadefbe --- /dev/null +++ b/docs/build/html/_sources/cli.add.md.txt @@ -0,0 +1,25 @@ +# cpl add + +## Contents + +- [Description](#description) +- [Arguments](#arguments) + +Removes a project from workspace. + +cpl **add** *<source-project>* *<target-project>*
+cpl **a** *<source-project>* *<target-project>*
+cpl **A** *<source-project>* *<target-project>* + +## Description + +Adds a project reference to given project. + +If you call the command in a CPL workspace, you can use the project names. Otherwise the paths of the projects must be specified. + +## Arguments + +| Argument | Description | Value type | +| ------------------------- |:---------------------------------------------------------------:|:----------------:| +| `````` | Name of the project to which the reference has to be added | ```str``` +| `````` | Name of the project to be referenced | ```str``` diff --git a/docs/build/html/_sources/cli.build.md.txt b/docs/build/html/_sources/cli.build.md.txt new file mode 100644 index 00000000..8fdf31b8 --- /dev/null +++ b/docs/build/html/_sources/cli.build.md.txt @@ -0,0 +1,26 @@ +# cpl build + +## Contents + +- [Description](#description) + + +Copies an python app into an output directory named build/ at the given output path. Must be executed within a CPL workspace or project directory + +cpl **build**
+cpl **b**
+cpl **B** + +## Description + +The command can be used to build a project of type "console" or "library". + +The build command copies all included source files to the output directory. You can run the source files in the output directory directly. + +The command is used to prepare the source files for the publish command or to copy them to an target for execution. + + diff --git a/docs/build/html/_sources/cli.generate.md.txt b/docs/build/html/_sources/cli.generate.md.txt new file mode 100644 index 00000000..8c1748f8 --- /dev/null +++ b/docs/build/html/_sources/cli.generate.md.txt @@ -0,0 +1,35 @@ +# cpl generate + +## Contents + +- [Description](#description) +- [Arguments](#arguments) +- [Schematics](#schematics) + +Generate a file based on schematic. + +cpl **generate** *<schematic>* *<name>*
+cpl **g** *<schematic>* *<name>*
+cpl **G** *<schematic>* *<name>* + +## Description + +Generates files based on a schematic. + +## Arguments + +| Argument | Description | Value type | +| ----------------- |:---------------------------------:|:-------------:| +| `````` | The schematic to generate. | ```str``` | +| `````` | The name of the generated file. | ```str``` | + +## Schematics + +| Schematic | Description | Arguments | +| ----------------- |:-------------------:|:----------------:| +| ```abc``` | Abstract base class | `````` +| ```class``` | Class | `````` +| ```enum``` | Enum class | `````` +| ```service``` | Service class | `````` +| ```settings``` | [Configmodel](cpl.configuration) | `````` +| ```thread``` | Thread class | `````` diff --git a/docs/build/html/_sources/cli.help.md.txt b/docs/build/html/_sources/cli.help.md.txt new file mode 100644 index 00000000..4dec5e74 --- /dev/null +++ b/docs/build/html/_sources/cli.help.md.txt @@ -0,0 +1,22 @@ +# cpl help + + + + +Lists available command and their short descriptions. + +cpl **help** *<command>*
+cpl **h** *<command>*
+cpl **H** *<command>* + +## Description + +Lists available command and their short descriptions. + +## Arguments + +| Argument | Description | Value type | +| ----------------- |:-----------------------------:|:-------------:| +| `````` | Shows a help message for this command in the console. | ```str``` | diff --git a/docs/build/html/_sources/cli.install.md.txt b/docs/build/html/_sources/cli.install.md.txt new file mode 100644 index 00000000..b2eaaa47 --- /dev/null +++ b/docs/build/html/_sources/cli.install.md.txt @@ -0,0 +1,23 @@ +# cpl install + +## Contents + +- [Description](#description) +- [Arguments](#arguments) + +Installs given package via pip + +cpl **install** *<package>*
+cpl **i** *<package>*
+cpl **I** *<package>* + +## Description + +Install given package to project via pip. +Without given package it will install the depedencies of the CPL project your in. + +## Arguments + +| Argument | Description | Value type | +| ----------------- |:-----------------------------:|:-------------:| +| `````` | The package to install | ```str``` | diff --git a/docs/build/html/_sources/cli.new.md.txt b/docs/build/html/_sources/cli.new.md.txt new file mode 100644 index 00000000..b849a09e --- /dev/null +++ b/docs/build/html/_sources/cli.new.md.txt @@ -0,0 +1,31 @@ +# cpl new + +## Contents + +- [Description](#description) +- [Arguments](#arguments) +- [Project types](#project-types) + +Generates a workspace and initial project or add a project to workspace. + +cpl **new** *<type>* *<name>*
+cpl **n** *<type>* *<name>*
+cpl **N** *<type>* *<name>* + +## Description + +Generates a workspace and initial project or add a project to workspace. + +If the command is running in a CPL workspace, it will add the new project to the workspace. + +| Argument | Description | Value type | +| ----------------- |:-----------------------------------------------------:|:-------------:| +| `````` | The type of the project, see [types](#project-types) | ```str``` | +| `````` | The name of the project | ```str``` | + +## Project types + +| Project type | Description | +| ----------------- |:-----------------------------:| +| ```console``` | A simple console application | +| ```library``` | A package | diff --git a/docs/build/html/_sources/cli.overview.md.txt b/docs/build/html/_sources/cli.overview.md.txt new file mode 100644 index 00000000..5cd12eca --- /dev/null +++ b/docs/build/html/_sources/cli.overview.md.txt @@ -0,0 +1,53 @@ +# CLI Overview and Command Reference + +## Table of Contents + +1. [Install CPL](setup#install-the-package) +2. [Install CPL CLI](setup#install-the-cli) +3. [Basic workflow](#basic-workflow) +4. [CLI command-language syntax](#cli-command-language-syntax) +5. [Command overview](#command-overview) + +## Basic workflow + +To create, build, and serve a new, basic CPL project on a development server, go to the parent directory of your new workspace use the following commands: + +```sh +cpl new console my-first-project +cd my-first-project +cpl start +``` + +In the terminal you will the output of the app. + +## CLI command-language syntax + +```cpl``` commandNameOrAlias requiredArg ```[optionalsArgs]``` + +- Most commands, and some options, have aliases. Aliases are shown in the syntax statement for each command. +- Arguments are not prefixed. + +### Relative paths + +Options that specify files can be given as absolute paths, or as paths relative to the current working directory, which is generally either the workspace or project root. + +### Schematics + +The cpl generate command takes as an argument the artifact to be generated. In addition to any general options, each artifact defines its own options in a schematic. Schematic options are supplied to the command in the same format as immediate command options. + +## Command overview + +| Command | Alias | Description | +| ----------------------------- |:-------------:|:----------------:| +| [add](cli.add) | a or a | Adds a project reference to given project. +| [build](cli.build) | b or B | Prepares files for publish into an output directory named dist/ at the given output path. Must be executed from within a workspace directory. +| [generate](cli.generate) | g or G | Generate a new file. +| [help](cli.help) | h or H | Lists available command and their short descriptions. +| [install](cli.install) | i or I | With argument installs packages to project, without argument installs project dependencies. +| [new](cli.new) | n or N | Creates new CPL project. +| [publish](cli.publish) | p or P | Prepares files for publish into an output directory named dist/ at the given output path and executes ```setup.py```. Must be executed from within a library workspace directory. +| [remove](cli.remove) | r or R | Removes a project from workspace. +| [start](cli.start) | s or S | Starts CPL project, restarting on file changes. +| [uninstall](cli.uninstall) | ui or UI | Uninstalls packages from project. +| [update](cli.update) | u or U | Update CPL and project dependencies. +| [version](cli.version) | v or V | Outputs CPL CLI version. diff --git a/docs/build/html/_sources/cli.publish.md.txt b/docs/build/html/_sources/cli.publish.md.txt new file mode 100644 index 00000000..a6c3884a --- /dev/null +++ b/docs/build/html/_sources/cli.publish.md.txt @@ -0,0 +1,27 @@ +# cpl publish + +## Contents + +- [Description](#description) + + +Prepares files for publish into an output directory named dist/ at the given output path and executes ```setup.py```. + +cpl **publish**
+cpl **p**
+cpl **P** + +## Description + +The command can be used to publish a project of type "console" or "library". + +The publish command builds the source files and then creates an ```setup.py``` with data from ```cpl.json```. +The command executes the ```setup.py``` and removes all source files with the ```setup.py``` from the 'publish/' directory. + +Generated files of ```setup.py``` are in the 'publish/setup/' directory. + + \ No newline at end of file diff --git a/docs/build/html/_sources/cli.remove.md.txt b/docs/build/html/_sources/cli.remove.md.txt new file mode 100644 index 00000000..32934904 --- /dev/null +++ b/docs/build/html/_sources/cli.remove.md.txt @@ -0,0 +1,27 @@ +# cpl remove + +## Contents + +- [Description](#description) +- [Arguments](#arguments) + +Removes a project from workspace. + +cpl **remove** *<project>*
+cpl **r** *<project>*
+cpl **R** *<project>* + +## Description + +The command can be used to publish a project of type "console" or "library". + +The publish command builds the source files and then creates an ```setup.py``` with data from ```cpl.json```. +The command executes the ```setup.py``` and removes all source files with the ```setup.py``` from the 'publish/' directory. + +Generated files of ```setup.py``` are in the 'publish/setup/' directory. + +## Arguments + +| Argument | Description | Value type | +| ------------------------- |:-------------------------------------:|:----------------:| +| `````` | The name of the project to delete | ```str``` diff --git a/docs/build/html/_sources/cli.start.md.txt b/docs/build/html/_sources/cli.start.md.txt new file mode 100644 index 00000000..2b067bfb --- /dev/null +++ b/docs/build/html/_sources/cli.start.md.txt @@ -0,0 +1,7 @@ +# cpl start + +Starts your application, restarting on file changes. + +cpl **start**
+cpl **s**
+cpl **S** diff --git a/docs/build/html/_sources/cli.uninstall.md.txt b/docs/build/html/_sources/cli.uninstall.md.txt new file mode 100644 index 00000000..8646615d --- /dev/null +++ b/docs/build/html/_sources/cli.uninstall.md.txt @@ -0,0 +1,22 @@ +# cpl uninstall + +## Contents + +- [Description](#description) +- [Arguments](#arguments) + +Uninstalls given package via pip + +cpl **uninstall** *<package>*
+cpl **ui** *<package>*
+cpl **UI** *<package>* + +## Description + +Uninstall given package from project via pip. + +## Arguments + +| Argument | Description | Value type | +| ----------------- |:-----------------------------:|:-------------:| +| `````` | The package to uninstall | ```str``` | diff --git a/docs/build/html/_sources/cli.update.md.txt b/docs/build/html/_sources/cli.update.md.txt new file mode 100644 index 00000000..586c32c7 --- /dev/null +++ b/docs/build/html/_sources/cli.update.md.txt @@ -0,0 +1,7 @@ +# cpl update + +Updates the CPL and project dependencies. + +cpl **update**
+cpl **u**
+cpl **U** diff --git a/docs/build/html/_sources/cli.version.md.txt b/docs/build/html/_sources/cli.version.md.txt new file mode 100644 index 00000000..4c8fcbe4 --- /dev/null +++ b/docs/build/html/_sources/cli.version.md.txt @@ -0,0 +1,7 @@ +# cpl version + +Lists the version of CPL, CPL CLI and all installed packages from pip. + +cpl **version**
+cpl **v**
+cpl **V** diff --git a/docs/build/html/_sources/contributing.md.txt b/docs/build/html/_sources/contributing.md.txt new file mode 100644 index 00000000..85456726 --- /dev/null +++ b/docs/build/html/_sources/contributing.md.txt @@ -0,0 +1,111 @@ +# Contributing to CPL + +We would love for you to contribute to CPL and help make it even better than it is today! As a contributor, here are the guidelines we would like you to follow: + +- [Issuses and Bugs](#found-a-bug) +- [Feature Request](#feature-request) +- [Submission Guidelines](#submission-guidelines) +- [Coding Rules](#coding-rules) +- [License](#license) + +## Found a Bug? + +If you find a bug in the source code, you can help us by [submitting an issue](#submitting-an-issue) to our [Gitea Repository][gitea-repo]. Even better, you can [submit a Pull Request](#submitting-a-pull-request) with a fix. + +## Feature Request + +You can request a new feature by submitting an issue to our [Gitea Repository][gitea-repo]. If you would like to implement a new feature, please consider the size of the change in order to determine the right steps to proceed: + +For a Major Feature, first open an issue and outline your proposal so that it can be discussed. This process allows us to better coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is successfully accepted into the project. + +Note: Adding a new topic to the documentation, or significantly re-writing a topic, counts as a major feature. + +Small Features can be crafted and directly submitted as a [Pull Request](#submit-pr). + +## Submission Guidelines + +### Submitting an Issue + +Before you submit an issue, please search the issue tracker, maybe an issue for your problem already exists and the discussion might inform you of workarounds readily available. + +We want to fix all the issues as soon as possible, but before fixing a bug we need to reproduce and confirm it. In order to reproduce bugs, we require that you provide a minimal reproduction. Having a minimal reproducible scenario gives us a wealth of important information without going back and forth to you with additional questions. + +A minimal reproduction allows us to quickly confirm a bug (or point out a coding problem) as well as confirm that we are fixing the right problem. + +We require a minimal reproduction to save maintainers' time and ultimately be able to fix more bugs. Often, developers find coding problems themselves while preparing a minimal reproduction. We understand that sometimes it might be hard to extract essential bits of code from a larger codebase but we really need to isolate the problem before we can fix it. + +Unfortunately, we are not able to investigate / fix bugs without a minimal reproduction, so if we don't hear back from you, we are going to close an issue that doesn't have enough info to be reproduced. + +### Submitting a Pull Request + +Before you submit your Pull Request (PR) consider the following guidelines: + +1. Search the [repository][gitea-repo] for an open or closed PR that relates to your submission. You don't want to duplicate existing efforts. + +2. Be sure that an issue describes the problem you're fixing, or documents the design for the feature you'd like to add. Discussing the design upfront helps to ensure that we're ready to accept your work. + +3. Fork the sh-edraft.de/sh_cpl repo. + +4. In your forked repository, make your changes in a new git branch: + + ```sh + git checkout -b my-fix-branch master + ``` + +5. Create your patch, including appropriate test cases. + + + +6. Commit your changes. + + ```sh + git commit --all + ``` + + Note: the optional commit ```-a``` command line option will automatically "add" and "rm" edited files. + +7. Push your branch to the [repository][gitea-repo]: + + ```sh + git push origin my-fix-branch + ``` + +8. In Gitea, send a pull request to sh_cpl:master + +### Reviewing a Pull Request + +The sh-edraft.de team reserves the right not to accept pull requests from community members who haven't been good citizens of the community. Such behavior includes not following the CPL [coding rules](#coding-rules) and applies within or outside of CPL managed channels. + +#### Addressing review feedback + +If we ask for changes via code reviews then: + +1. Make the required updates to the code. + +2. Create a fixup commit and push to your repository (this will update your Pull Request): + + ```sh + git commit --all --fixup HEAD + git push + ``` + +That's it! Thank you for your contribution! + +## Coding Rules + +To ensure consistency throughout the source code, keep these rules in mind as you are working: + +- All features or bug fixes must be tested by one or more unit-tests. + +- All public API methods must be documented. + +- We follow [PEP 8 -- Style Guide for Python Code](https://www.python.org/dev/peps/pep-0008/). + +## License + +By contributing, you agree that your contributions will be licensed under its MIT License. +See [LICENSE](https://git.sh-edraft.de/sh-edraft.de/sh_cpl/src/branch/master/LICENSE) + + +[gitea-repo]: https://git.sh-edraft.de/sh-edraft.de/sh_cpl/ +[coding-rules]: / diff --git a/docs/build/html/_sources/cpl.rst.txt b/docs/build/html/_sources/cpl.rst.txt index 6afbf38c..bcc31ee0 100644 --- a/docs/build/html/_sources/cpl.rst.txt +++ b/docs/build/html/_sources/cpl.rst.txt @@ -1,4 +1,4 @@ -CPL +API Reference =========== .. toctree:: @@ -14,4 +14,3 @@ CPL cpl.mailing cpl.time cpl.utils - diff --git a/docs/build/html/_sources/cpl_cli.rst.txt b/docs/build/html/_sources/cpl_cli.rst.txt new file mode 100644 index 00000000..338ba5c2 --- /dev/null +++ b/docs/build/html/_sources/cpl_cli.rst.txt @@ -0,0 +1,19 @@ +CLI Reference +============= + +.. toctree:: + :maxdepth: 4 + + cli.overview + cli.add + cli.build + cli.generate + cli.help + cli.install + cli.new + cli.publish + cli.remove + cli.start + cli.uninstall + cli.update + cli.version \ No newline at end of file diff --git a/docs/build/html/_sources/getting_started.rst.txt b/docs/build/html/_sources/getting_started.rst.txt new file mode 100644 index 00000000..ee746fb1 --- /dev/null +++ b/docs/build/html/_sources/getting_started.rst.txt @@ -0,0 +1,9 @@ +Getting started +=============== + +.. toctree:: + :maxdepth: 4 + + quickstart + setup + diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt index 3d783177..4bf52fab 100644 --- a/docs/build/html/_sources/index.rst.txt +++ b/docs/build/html/_sources/index.rst.txt @@ -4,7 +4,7 @@ contain the root `toctree` directive. Introduction to the CPL Docs -=========================== +============================ The Common Python Library (CPL) is a package for python and a development platform meant to help you create simple and efficient server and desktop applications. @@ -18,4 +18,7 @@ These pages go into great detail about everything the Library can do. .. toctree:: :maxdepth: 1 + introduction + getting_started cpl + cpl_cli diff --git a/docs/build/html/_sources/introduction.md.txt b/docs/build/html/_sources/introduction.md.txt new file mode 100644 index 00000000..eb36b40f --- /dev/null +++ b/docs/build/html/_sources/introduction.md.txt @@ -0,0 +1,12 @@ +# Introduction to the CPL Docs + +The Common Python Library (CPL) is a package for python and a development platform meant to help you create simple and efficient server and desktop applications. + +This CPL docs help you learn, understand and use the package. From your first application to complex apps for enterprises. + +## Explore + +- [Getting started](quickstart) +- [Setup](setup) +- [API Reference](cpl) +- [CLI Reference](cli.overview) diff --git a/docs/build/html/_sources/modules.rst.txt b/docs/build/html/_sources/modules.rst.txt index e2175b2a..962df7d9 100644 --- a/docs/build/html/_sources/modules.rst.txt +++ b/docs/build/html/_sources/modules.rst.txt @@ -4,4 +4,6 @@ cpl .. toctree:: :maxdepth: 4 + getting_started cpl + cpl_cli diff --git a/docs/build/html/_sources/quickstart.md.txt b/docs/build/html/_sources/quickstart.md.txt new file mode 100644 index 00000000..0b75384e --- /dev/null +++ b/docs/build/html/_sources/quickstart.md.txt @@ -0,0 +1,210 @@ +# Getting started with CPL + +Welcome to CPL! + +This tutorial introduces you to the essentials of the CPL package by walking through building an console based app. + +## Table of Contents + +1. [Prerequisites](#prerequisites) +2. [Create the project](#create-the-project) +3. [Create a menu](#create-a-menu) +4. [What's next](#whats-next) + +## Prerequisites + +To get most out of this tutorial you should already have a basic understanding of the following. + +- [Python][python] + +Also you need to have the following installed. + +- [Python][python] +- [Pip][pip-url] +- [CPL](setup) +- [CPL-CLI](setup) + +## Create the project + +To create the sample project to the following: + +1. Open a terminal +2. Run + + ```sh + cpl new console sample-project + ``` + +3. We don't want to use Application base or Dependency injection: + + ```sh + Do you want to use application base? (y/n) n + + Do you want to use service providing? (y/n) n + ``` + + The ouput should look like this: + + ```sh + Creating sample-project/LICENSE done + Creating sample-project/README.md done + Creating sample-project/src/tests/__init__.py done + Creating sample-project/appsettings.json done + Creating sample-project/src/sample-project/__init__.py done + Creating sample-project/src/sample-projectmain.py done + ``` + +4. Open the project with an IDE like VS Code or PyCharm + + ![IDE](images/ide.png) + +5. Set the 'src' directory as source folder + + ![IDE set src folder](images/ide-src.png) + +6. Run the application + + You should see an output like: + + ```sh + Hello World + ``` + +7. In PyCharm you have to enable ```Emulate terminal in output console```! + + ![IDE emulate console](images/ide-emulate.png) + +## Create a menu + +1. Open the 'sample-project/main.py' + +2. Change 'Hello World' to 'Password generator:' in line 5 + +3. Add ```Console.select``` as follows: + + ```py + from cpl.console import Console + + + def main(): + Console.write_line('Password generator:') + options = [ + 'Only lower case', + 'Only upper case', + 'Lower and upper case' + 'Exit' + ] + option = Console.select('>', 'Select option: ', options) + + + if __name__ == '__main__': + main() + + ``` + +4. Get Id of the selected option: + + ```py + index = options.index(option) + ``` + +5. Create the generate function as follows: + + ```py + def generate_password(letters: str, length: int) -> str: + return ''.join(random.choice(letters) for i in range(length)) + ``` + + Add imports: + + ```py + import random + import string + ``` + +6. Get length of the password: + + ```py + length = int(Console.read('Length: ')) + ``` + +7. Validate the selected option: + + ```py + index = options.index(option) + letters = '' + + if index == 0: + letters = string.ascii_lowercase + elif index == 1: + letters = string.ascii_uppercase + elif index == 2: + letters = string.ascii_letters + elif index == len(options) - 1: + exit() + ``` + +8. Print the generated password: + + ```py + Console.write_line('Password: ', generate_password(letters, length)) + ``` + +9. The full 'sample-project/main.py': + + ```py + import random + import string + + from cpl.console import Console + + + def generate_password(letters: str, length: int) -> str: + return ''.join(random.choice(letters) for i in range(length)) + + + def main(): + Console.write_line('Password generator:') + options = [ + 'Only lower case', + 'Only upper case', + 'Lower and upper case', + 'Exit' + ] + option = Console.select('>', 'Select option: ', options) + + length = int(Console.read('Length: ')) + + index = options.index(option) + letters = '' + if index == 0: + letters = string.ascii_lowercase + elif index == 1: + letters = string.ascii_uppercase + elif index == 2: + letters = string.ascii_letters + elif index == len(options) - 1: + exit() + + Console.write_line('Password: ', generate_password(letters, length)) + + + if __name__ == '__main__': + main() + + ``` + +## What's next + +In this section, you've created an application that uses user input to generate a password. + +To continue exploring CPL and developing applications: + +- [Application base](cpl.application) +- [Dependency injection](cpl.dependency_injection) +- [Console](cpl.console) + + +[pip-url]: https://pip.sh-edraft.de +[python]: https://www.python.org/ +[pip]: https://pypi.org/project/pip/ diff --git a/docs/build/html/_sources/setup.md.txt b/docs/build/html/_sources/setup.md.txt new file mode 100644 index 00000000..29e6f086 --- /dev/null +++ b/docs/build/html/_sources/setup.md.txt @@ -0,0 +1,104 @@ +# Setting up the local environment and workspace + +## Table of Contents + +1. [Prerequisites](#prerequisites) +2. [Install the package](#install-the-package) +3. [Install the CLI](#install-the-cli) +4. [Create a initial application](#create-initial-console-app) +5. [Create a initial library](#create-initial-library) +6. [Start the application](#start-the-app) +7. [What's next](#whats-next) + +## Prerequisites + +To get most out of this tutorial you should already have a basic understanding of the following. + +- [Python][python] + +Also you need to have the following installed. + +- [Python][python] +- [Pip][pip-url] + +## Install the package + +To install the package, open a terminal window and run the following command: + +```sh +pip install sh_cpl --extra-index-url https://pip.sh-edraft.de +``` + +## Install the CLI + +You use the CPL CLI to create projects, generate application and library code. You also use the CLI to build and publish your python packages. + +To install the CLI, open a terminal window and run the following command: + +```sh +pip install sh_cpl-cli --extra-index-url https://pip.sh-edraft.de +``` + +## Create initial console app + +You develop apps and packages in the context of an CPL project which is defined in an cpl.json. + +1. Run the CLI command ```cpl new console``` and provide the name my-app, as shown here: + + ```sh + cpl new console my-app + ``` + +2. The cpl new command prompts you for information about features to include in the initial app. Decline the defaults by enter 'n' and press the Enter key. + +The CLI create a new workspace and a simple 'Hello World' app, ready to run. + +## Create initial library + +You develop apps and packages in the context of an CPL project which is defined in an cpl.json. + +1. Run the CLI command ```cpl new library``` and provide the name my-lib, as shown here: + + ```sh + cpl new library my-lib + ``` + +2. The cpl new command prompts you for information about features to include in the initial library. Decline the defaults by enter 'n' and press the Enter key. + +The CLI create a new workspace and a simple 'Hello World' library with CLI, ready to run. + +## Start the app + +The CLI includes a live development server, so that you can run your app locally. + +1. Open a terminal window + +2. To navigate to your project workspace, run the following command: + + ```sh + cd /path/to/project/name + ``` + +3. To run the app run: + + ```sh + cpl start + ``` + +The ```cpl start``` command launches the server, watches your source files, and restarts the app as you make chnages to thoses source files. + +If your installation and setup was successful, you should see a output similar to the following: + +```sh +Hello World +``` + +## What's next + +- To learn more about the CPL CLI, see the [CLI Overview](cli.overview) +- Fore more informations about the Pyhton files generated by ```cpl new```, see [New Command](cli.new) + + +[pip-url]: https://pip.sh-edraft.de +[python]: https://www.python.org/ +[pip]: https://pypi.org/project/pip/ diff --git a/docs/build/html/cli.add.html b/docs/build/html/cli.add.html new file mode 100644 index 00000000..a8ff0ae5 --- /dev/null +++ b/docs/build/html/cli.add.html @@ -0,0 +1,270 @@ + + + + + + + + + + cpl add — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

cpl add

+
+

Contents

+ +

Removes a project from workspace.

+

cpl add <source-project> <target-project>
+cpl a <source-project> <target-project>
+cpl A <source-project> <target-project>

+
+
+

Description

+

Adds a project reference to given project.

+

If you call the command in a CPL workspace, you can use the project names. Otherwise the paths of the projects must be specified.

+
+
+

Arguments

+ + + + + + + + + + + + + + + + + +

Argument

Description

Value type

<source-project>

Name of the project to which the reference has to be added

str

<target-project>

Name of the project to be referenced

str

+
+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cli.build.html b/docs/build/html/cli.build.html new file mode 100644 index 00000000..bea2830b --- /dev/null +++ b/docs/build/html/cli.build.html @@ -0,0 +1,254 @@ + + + + + + + + + + cpl build — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

cpl build

+
+

Contents

+ + +

Copies an python app into an output directory named build/ at the given output path. Must be executed within a CPL workspace or project directory

+

cpl build
+cpl b
+cpl B

+
+
+

Description

+

The command can be used to build a project of type “console” or “library”.

+

The build command copies all included source files to the output directory. You can run the source files in the output directory directly.

+

The command is used to prepare the source files for the publish command or to copy them to an target for execution.

+ +
+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cli.generate.html b/docs/build/html/cli.generate.html new file mode 100644 index 00000000..1bcd64c9 --- /dev/null +++ b/docs/build/html/cli.generate.html @@ -0,0 +1,308 @@ + + + + + + + + + + cpl generate — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

cpl generate

+
+

Contents

+ +

Generate a file based on schematic.

+

cpl generate <schematic> <name>
+cpl g <schematic> <name>
+cpl G <schematic> <name>

+
+
+

Description

+

Generates files based on a schematic.

+
+
+

Arguments

+ + + + + + + + + + + + + + + + + +

Argument

Description

Value type

<schematic>

The schematic to generate.

str

<name>

The name of the generated file.

str

+
+
+

Schematics

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Schematic

Description

Arguments

abc

Abstract base class

<name>

class

Class

<name>

enum

Enum class

<name>

service

Service class

<name>

settings

Configmodel

<name>

thread

Thread class

<name>

+
+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cli.help.html b/docs/build/html/cli.help.html new file mode 100644 index 00000000..c9ffefdd --- /dev/null +++ b/docs/build/html/cli.help.html @@ -0,0 +1,261 @@ + + + + + + + + + + cpl help — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

cpl help

+ + +

Lists available command and their short descriptions.

+

cpl help <command>
+cpl h <command>
+cpl H <command>

+
+

Description

+

Lists available command and their short descriptions.

+
+
+

Arguments

+ + + + + + + + + + + + + +

Argument

Description

Value type

<command>

Shows a help message for this command in the console.

str

+
+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cli.install.html b/docs/build/html/cli.install.html new file mode 100644 index 00000000..4a9223a7 --- /dev/null +++ b/docs/build/html/cli.install.html @@ -0,0 +1,266 @@ + + + + + + + + + + cpl install — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

cpl install

+
+

Contents

+ +

Installs given package via pip

+

cpl install <package>
+cpl i <package>
+cpl I <package>

+
+
+

Description

+

Install given package to project via pip. +Without given package it will install the depedencies of the CPL project your in.

+
+
+

Arguments

+ + + + + + + + + + + + + +

Argument

Description

Value type

<package>

The package to install

str

+
+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cli.new.html b/docs/build/html/cli.new.html new file mode 100644 index 00000000..6fd822a3 --- /dev/null +++ b/docs/build/html/cli.new.html @@ -0,0 +1,286 @@ + + + + + + + + + + cpl new — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

cpl new

+
+

Contents

+ +

Generates a workspace and initial project or add a project to workspace.

+

cpl new <type> <name>
+cpl n <type> <name>
+cpl N <type> <name>

+
+
+

Description

+

Generates a workspace and initial project or add a project to workspace.

+

If the command is running in a CPL workspace, it will add the new project to the workspace.

+ + + + + + + + + + + + + + + + + +

Argument

Description

Value type

<type>

The type of the project, see types

str

<name>

The name of the project

str

+
+
+

Project types

+ + + + + + + + + + + + + + +

Project type

Description

console

A simple console application

library

A package

+
+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cli.overview.html b/docs/build/html/cli.overview.html new file mode 100644 index 00000000..ecb1e767 --- /dev/null +++ b/docs/build/html/cli.overview.html @@ -0,0 +1,335 @@ + + + + + + + + + + CLI Overview and Command Reference — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

CLI Overview and Command Reference

+ +
+

Basic workflow

+

To create, build, and serve a new, basic CPL project on a development server, go to the parent directory of your new workspace use the following commands:

+
cpl new console my-first-project
+cd my-first-project
+cpl start
+
+
+

In the terminal you will the output of the app.

+
+
+

CLI command-language syntax

+

cpl commandNameOrAlias requiredArg [optionalsArgs]

+
    +
  • Most commands, and some options, have aliases. Aliases are shown in the syntax statement for each command.

  • +
  • Arguments are not prefixed.

  • +
+
+

Relative paths

+

Options that specify files can be given as absolute paths, or as paths relative to the current working directory, which is generally either the workspace or project root.

+
+
+

Schematics

+

The cpl generate command takes as an argument the artifact to be generated. In addition to any general options, each artifact defines its own options in a schematic. Schematic options are supplied to the command in the same format as immediate command options.

+
+
+
+

Command overview

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Command

Alias

Description

add

a or a

Adds a project reference to given project.

build

b or B

Prepares files for publish into an output directory named dist/ at the given output path. Must be executed from within a workspace directory.

generate

g or G

Generate a new file.

help

h or H

Lists available command and their short descriptions.

install

i or I

With argument installs packages to project, without argument installs project dependencies.

new

n or N

Creates new CPL project.

publish

p or P

Prepares files for publish into an output directory named dist/ at the given output path and executes setup.py. Must be executed from within a library workspace directory.

remove

r or R

Removes a project from workspace.

start

s or S

Starts CPL project, restarting on file changes.

uninstall

ui or UI

Uninstalls packages from project.

update

u or U

Update CPL and project dependencies.

version

v or V

Outputs CPL CLI version.

+
+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cli.publish.html b/docs/build/html/cli.publish.html new file mode 100644 index 00000000..d7a95a60 --- /dev/null +++ b/docs/build/html/cli.publish.html @@ -0,0 +1,254 @@ + + + + + + + + + + cpl publish — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

cpl publish

+
+

Contents

+ + +

Prepares files for publish into an output directory named dist/ at the given output path and executes setup.py.

+

cpl publish
+cpl p
+cpl P

+
+
+

Description

+

The command can be used to publish a project of type “console” or “library”.

+

The publish command builds the source files and then creates an setup.py with data from cpl.json. +The command executes the setup.py and removes all source files with the setup.py from the ‘publish/’ directory.

+

Generated files of setup.py are in the ‘publish/setup/’ directory.

+
+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cli.remove.html b/docs/build/html/cli.remove.html new file mode 100644 index 00000000..dae705d9 --- /dev/null +++ b/docs/build/html/cli.remove.html @@ -0,0 +1,268 @@ + + + + + + + + + + cpl remove — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

cpl remove

+
+

Contents

+ +

Removes a project from workspace.

+

cpl remove <project>
+cpl r <project>
+cpl R <project>

+
+
+

Description

+

The command can be used to publish a project of type “console” or “library”.

+

The publish command builds the source files and then creates an setup.py with data from cpl.json. +The command executes the setup.py and removes all source files with the setup.py from the ‘publish/’ directory.

+

Generated files of setup.py are in the ‘publish/setup/’ directory.

+
+
+

Arguments

+ + + + + + + + + + + + + +

Argument

Description

Value type

<project>

The name of the project to delete

str

+
+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cli.start.html b/docs/build/html/cli.start.html new file mode 100644 index 00000000..8878bd6d --- /dev/null +++ b/docs/build/html/cli.start.html @@ -0,0 +1,232 @@ + + + + + + + + + + cpl start — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

cpl start

+

Starts your application, restarting on file changes.

+

cpl start
+cpl s
+cpl S

+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cli.uninstall.html b/docs/build/html/cli.uninstall.html new file mode 100644 index 00000000..dd3b9b6c --- /dev/null +++ b/docs/build/html/cli.uninstall.html @@ -0,0 +1,265 @@ + + + + + + + + + + cpl uninstall — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

cpl uninstall

+
+

Contents

+ +

Uninstalls given package via pip

+

cpl uninstall <package>
+cpl ui <package>
+cpl UI <package>

+
+
+

Description

+

Uninstall given package from project via pip.

+
+
+

Arguments

+ + + + + + + + + + + + + +

Argument

Description

Value type

<package>

The package to uninstall

str

+
+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cli.update.html b/docs/build/html/cli.update.html new file mode 100644 index 00000000..cefd77a3 --- /dev/null +++ b/docs/build/html/cli.update.html @@ -0,0 +1,232 @@ + + + + + + + + + + cpl update — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

cpl update

+

Updates the CPL and project dependencies.

+

cpl update
+cpl u
+cpl U

+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cli.version.html b/docs/build/html/cli.version.html new file mode 100644 index 00000000..ea20b166 --- /dev/null +++ b/docs/build/html/cli.version.html @@ -0,0 +1,230 @@ + + + + + + + + + + cpl version — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

cpl version

+

Lists the version of CPL, CPL CLI and all installed packages from pip.

+

cpl version
+cpl v
+cpl V

+
+ + +
+ +
+ +
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/contributing.html b/docs/build/html/contributing.html new file mode 100644 index 00000000..2f2c6886 --- /dev/null +++ b/docs/build/html/contributing.html @@ -0,0 +1,298 @@ + + + + + + + + + + Contributing to CPL — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

Contributing to CPL

+

We would love for you to contribute to CPL and help make it even better than it is today! As a contributor, here are the guidelines we would like you to follow:

+ +
+

Found a Bug?

+

If you find a bug in the source code, you can help us by submitting an issue to our Gitea Repository. Even better, you can submit a Pull Request with a fix.

+
+
+

Feature Request

+

You can request a new feature by submitting an issue to our Gitea Repository. If you would like to implement a new feature, please consider the size of the change in order to determine the right steps to proceed:

+

For a Major Feature, first open an issue and outline your proposal so that it can be discussed. This process allows us to better coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is successfully accepted into the project.

+

Note: Adding a new topic to the documentation, or significantly re-writing a topic, counts as a major feature.

+

Small Features can be crafted and directly submitted as a Pull Request.

+
+
+

Submission Guidelines

+
+

Submitting an Issue

+

Before you submit an issue, please search the issue tracker, maybe an issue for your problem already exists and the discussion might inform you of workarounds readily available.

+

We want to fix all the issues as soon as possible, but before fixing a bug we need to reproduce and confirm it. In order to reproduce bugs, we require that you provide a minimal reproduction. Having a minimal reproducible scenario gives us a wealth of important information without going back and forth to you with additional questions.

+

A minimal reproduction allows us to quickly confirm a bug (or point out a coding problem) as well as confirm that we are fixing the right problem.

+

We require a minimal reproduction to save maintainers’ time and ultimately be able to fix more bugs. Often, developers find coding problems themselves while preparing a minimal reproduction. We understand that sometimes it might be hard to extract essential bits of code from a larger codebase but we really need to isolate the problem before we can fix it.

+

Unfortunately, we are not able to investigate / fix bugs without a minimal reproduction, so if we don’t hear back from you, we are going to close an issue that doesn’t have enough info to be reproduced.

+
+
+

Submitting a Pull Request

+

Before you submit your Pull Request (PR) consider the following guidelines:

+
    +
  1. Search the repository for an open or closed PR that relates to your submission. You don’t want to duplicate existing efforts.

  2. +
  3. Be sure that an issue describes the problem you’re fixing, or documents the design for the feature you’d like to add. Discussing the design upfront helps to ensure that we’re ready to accept your work.

  4. +
  5. Fork the sh-edraft.de/sh_cpl repo.

  6. +
  7. In your forked repository, make your changes in a new git branch:

    +
    git checkout -b my-fix-branch master
    +
    +
    +
  8. +
  9. Create your patch, including appropriate test cases.

  10. +
+ +
    +
  1. Commit your changes.

    +
    git commit --all
    +
    +
    +

    Note: the optional commit -a command line option will automatically “add” and “rm” edited files.

    +
  2. +
  3. Push your branch to the repository:

    +
    git push origin my-fix-branch
    +
    +
    +
  4. +
  5. In Gitea, send a pull request to sh_cpl:master

  6. +
+
+
+

Reviewing a Pull Request

+

The sh-edraft.de team reserves the right not to accept pull requests from community members who haven’t been good citizens of the community. Such behavior includes not following the CPL coding rules and applies within or outside of CPL managed channels.

+
+

Addressing review feedback

+

If we ask for changes via code reviews then:

+
    +
  1. Make the required updates to the code.

  2. +
  3. Create a fixup commit and push to your repository (this will update your Pull Request):

    +
    git commit --all --fixup HEAD
    +git push
    +
    +
    +
  4. +
+

That’s it! Thank you for your contribution!

+
+
+
+
+

Coding Rules

+

To ensure consistency throughout the source code, keep these rules in mind as you are working:

+ +
+
+

License

+

By contributing, you agree that your contributions will be licensed under its MIT License. +See LICENSE

+ +
+
+ + +
+ +
+
+ +
+ +
+

+ © Copyright 2021, Sven Heidemann. + +

+
+ + + + Built with Sphinx using a + + theme + + provided by Read the Docs. + +
+
+
+ +
+ +
+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cpl.application.html b/docs/build/html/cpl.application.html index fe3e47b7..f3a9acc6 100644 --- a/docs/build/html/cpl.application.html +++ b/docs/build/html/cpl.application.html @@ -39,7 +39,7 @@ - + @@ -85,7 +85,9 @@
    -
  • CPL
      +
    • Introduction to the CPL Docs
    • +
    • Getting started
    • +
    • API Reference @@ -152,7 +155,7 @@
    • »
    • -
    • CPL »
    • +
    • API Reference »
    • cpl.application
    • @@ -319,7 +322,7 @@