From 116a0224984032ca9fe88e1b98af18b4fedd8598 Mon Sep 17 00:00:00 2001 From: qth2hi Date: Tue, 3 Dec 2024 15:38:56 +0100 Subject: [PATCH 1/2] file release_items_Robotframework_AIO.json splitted in 'original' and 'extended' version --- ...se_items_Robotframework_AIO_extended.json} | 4 +- ...ase_items_Robotframework_AIO_original.json | 264 ++++++++++++++++++ .../release_info_config_OSS_extended.json | 4 +- .../release_info_config_OSS_original.json | 4 +- 4 files changed, 270 insertions(+), 6 deletions(-) rename config/robotframework_aio/{release_items_Robotframework_AIO.json => release_items_Robotframework_AIO_extended.json} (98%) create mode 100644 config/robotframework_aio/release_items_Robotframework_AIO_original.json diff --git a/config/robotframework_aio/release_items_Robotframework_AIO.json b/config/robotframework_aio/release_items_Robotframework_AIO_extended.json similarity index 98% rename from config/robotframework_aio/release_items_Robotframework_AIO.json rename to config/robotframework_aio/release_items_Robotframework_AIO_extended.json index 888f6e03..212445f6 100644 --- a/config/robotframework_aio/release_items_Robotframework_AIO.json +++ b/config/robotframework_aio/release_items_Robotframework_AIO_extended.json @@ -1,6 +1,6 @@ # ************************************************************************************************************** # -# Copyright 2020-2023 Robert Bosch GmbH +# Copyright 2020-2024 Robert Bosch GmbH # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -38,7 +38,7 @@ # Section "COMPONENT": # -------------------- - "COMPONENT" : "RobotFramework AIO Package", + "COMPONENT" : "RobotFramework AIO Package (extended core)", # Section "RELEASES" for RobotFramework_AIO: diff --git a/config/robotframework_aio/release_items_Robotframework_AIO_original.json b/config/robotframework_aio/release_items_Robotframework_AIO_original.json new file mode 100644 index 00000000..6db4498a --- /dev/null +++ b/config/robotframework_aio/release_items_Robotframework_AIO_original.json @@ -0,0 +1,264 @@ +# ************************************************************************************************************** +# +# Copyright 2020-2024 Robert Bosch GmbH +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ************************************************************************************************************** +# +# ========== Release Items for component 'RobotFramework AIO Package' ========== +# +# Basically this component is stand-alone, but can also be used as part of an automation framework called +# RobotFramework AIO. More information about this framework you can find here: +# +# https://github.com/test-fullautomation/RobotFramework_AIO +# +# This JSON file contains component specific release information for the RobotFramework AIO. +# In case you use the component stand-alone only, you can ignore this file. +# +# -------------------------------------------------------------------------------------------------------------- +# +# Format: extended JSON format with the possibility to comment out lines (by '#' at the beginning of the line). +# The reference for relative paths is the position of this file. +# +# -------------------------------------------------------------------------------------------------------------- + +{ + +# Section "COMPONENT": +# -------------------- + + "COMPONENT" : "RobotFramework AIO Package (original core)", + + +# Section "RELEASES" for RobotFramework_AIO: +# ------------------------------------------ + + "RELEASES" : { + "0.10." : [ +" +**VSCodium** + +* Changed default terminal from Git Bash to PowerShell on Windows +* Fixed startup error on Windows + +**Environment/Installation** + +* Added environment variable **RobotPythonSitePackagesPath** pointing to the **site-packages** directory of Python +* Added **version.txt** file in root directory of installation + +**Python Packages** + +* Integrated **robotframework-dependencylibrary** library +* Integrated **robotframework-doip** library +* Integrated **doipclient** library +" + ], + "0.11." : [ +" +**VSCodium** + +* Assigning the keyboard shortcut **CTRL+F6** for executing the **Run Python File in Terminal** feature. With this update, users can quickly run Python programs in the terminal by pressing **CTRL+F6**. + +**Python Package Index (PyPI)** + +* Publish RobotFramework_DoIP package to `PyPI `_ + +**Environment/Installation** + +* Integrated Android support and Appium: + + This package can be selected during installation, which contains: + + * **Android SDK Tools**: platform-tools, build-tools and command line tools + * **Node.js**: runtime environment which is required for **Appium Server** + * **Appium Server**: includes **UIAutomator2** driver + * **Appium Inspector**: GUI assistant tool for Appium, providing visual inspection of the application under test + + **Appium Server** and **Appium Inspector** applications are available in **Start Menu** (Windows) and **Application Overview** (Linux). + just. These applications can be easily started by clicking on their respective icons. + + Environment variables *RobotDevtools*, *RobotNodeJS*, *RobotAppium* and *RobotAndroidPlatformTools* are added. + +* Integrated robotframework-lsp from test-fullautomation owner. + +* Partition installation for Debian package: + + The Debian installer package offers enhanced flexibility by allowing you to + customize the installation according to your needs. + + You can now determine whether to include additional packages such as + **Android** and **Vscodium** during the installation process. + + * Select extensions: + + When executing the command to install Robotframework AIO, you will be prompted to select extensions for installation as below + + .. code-block:: + + Select one or more extra components: + N : No extra package - only the core framework and libraries + A : Android package (includes Node.js, Appium server, Appium Inspector, Android SDK tools) + V : Vscodium package + Enter : All packages (default choice after 30s) + Enter your choices (e.g., AC for both Android and VSCodium packages): + + The default choice is to install all packages, including the core framework and all extensions. + + If no action is taken within 30 seconds, the installer will proceed with the default choice. + + * Besides, you can also provide your choice directly in command for the installation (for CI/CT system) as below examples: + + * Only the core feature of Robotframework AIO + .. code-block:: + + yes 'N' | sudo apt-get install ./setup_RobotFramework_AIO_Linux_.deb + + * Installation with both **Android** and **Vscodium** packages + .. code-block:: + + yes 'AC' | sudo apt-get install ./setup_RobotFramework_AIO_Linux_.deb + +**Python Packages** + +* Fixed versions of **Appium-Python-Client==3.1.1** and **robotframework-appiumlibrary==2.0.0** to avoid in incompatible issues +* Upgrade the pip package to version 24.0 on both Windows and Linux platforms. + +**Robot Framework** + +* Added a self test for the new log level ``USER``. +* In log levels ``USER``, ``WARN`` and ``ERROR``, the content of the Robot Framework XML log file is further shortened. + +" + ], + "0.12.0." : [ +" +**Python Packages** + +* Integrated **PyQt5** library +* Integrated **QtAwesome** library +* Integrated **Asciidoxy** library +* Integrated **pydotdict** library +* Integrated **robotframework-prometheus** library + +**Python Package Index (PyPI)** + +* Publish Robotframework-prometheus package to `PyPI `_ + + +" + ], + "0.12.1.;0.13.0." : [ +" +**Python Packages** + +* Integrated **robotframework-prometheus** library +* Integrated **prometheus_client** library +* Integrated **pika** library +* Updated **robotframework-appiumlibrary** library to use latest vesion + +**VSCodium Package** + +* Updated from VSCodium version **1.73.0.22306** to latest version **1.90.2.24171** + +**Python Package Index (PyPI)** + +* Publish Robotframework-prometheus package to `PyPI `_ + +**Environment/Installation** + +* Debian package: + + * Enhanced **initRobotFrameworkAIO.sh**, support to setup environment for non-root user + + * Introduce new user group **robot-aio** which is granted required permissions to use *robotframework-aio* package + + An user (BOT or integrator account) which have non-root permission can also be setup to use the installed robotframework-aio package on test machine as following steps: + + * Add BOT or Integrator account to robot-aio group by execute below command with root user or add it as a **RUN** step of Docker file + + .. code-block:: + + usermod -a -G robot-aio $BOT_USER + + * Login as BOT or Integrator account + + * Execute **initRobotFrameworkAIO.sh** script to setup enviroment or add it as **CMD** step when starting Docker container + + .. code-block:: + + initRobotFrameworkAIO.sh + + * Now, execute your Robotframework test case/suite. E.g + + .. code-block:: + + robot ~/RobotTest/testcases/HelloWorld.robot + + * Added executable **appium** script to start the Appium server in command line (useful for Docker container) + + .. code-block:: + + $RobotDevtools/appium +" + ], + "0.13.1." : [ +" +**Robot Framework pipeline** + +* Added test coverage to ensure functionality and improve overall code reliability + +**VSCodium Package** + +* `robotframework-lsp `_ extension is now deprecated, + and the `RobotCode `_ extension is used as its replacement. + Please refer to `this issue `_ for more detail. + +* **GitHub Copilot** + + Due to licensing restrictions, the **GitHub Copilot** and **GitHub Copilot Chat** extensions + are not included in the pre-installed packages and must be installed manually. + + To assist you, the **RobotFramework AIO** installer provides a ready-to-use command + at the end of the installation process. This command is tailored to download and install + the correct versions of both extensions, ensuring compatibility with your environment. + + **Steps to Install GitHub Copilot Extensions**: + + 1. **Complete the RobotFramework AIO Installation**: + + - Once the installation finishes, note the command provided by the installer. + + 2. **Run the Command**: + + - Open a terminal (Linux) or PowerShell (Windows). + - Copy and paste the provided command, then execute it to download and install the extensions. + - After execution, note the link displayed in the command output for instructions on setting up **GitHub Copilot**. + + 3. **Verify Installation**: + + - Open VsCodium and navigate to the **Extensions** panel. + - Ensure that both **GitHub Copilot** and **GitHub Copilot Chat** are listed as installed. + + 4. **Set Up Your Account**: + + - Use the link provided in the command output to register for a **GitHub Copilot subscription** if you haven't already. + - Log in to GitHub Copilot via VsCodium using your GitHub credentials. + + 5. **Start Using GitHub Copilot**: + + - Once logged in, you can utilize the extensions for AI-powered coding assistance and interactive chat features. +" + ] + } +} diff --git a/tools/release_info/release_info_config_OSS_extended.json b/tools/release_info/release_info_config_OSS_extended.json index b41129ce..59010f18 100644 --- a/tools/release_info/release_info_config_OSS_extended.json +++ b/tools/release_info/release_info_config_OSS_extended.json @@ -30,7 +30,7 @@ # Section "VERSION_CONFIG": # ------------------------- - "VERSION_CONFIG" : "0.5.1 / 26.08.2024 (OSS extended version)", + "VERSION_CONFIG" : "0.6.0 / 03.12.2024 (OSS extended version)", # Section "PACKAGE_CONTEXT_FILE": @@ -57,7 +57,7 @@ # of this component between two releases of the RobotFramework AIO. Between these scopes there is not necessarily a full match. "RELEASE_ITEM_FILES" : [ - "../../config/robotframework_aio/release_items_Robotframework_AIO.json", + "../../config/robotframework_aio/release_items_Robotframework_AIO_extended.json", "../../../python-extensions-collection/config/robotframework_aio/release_items_PythonExtensionsCollection.json", "../../../python-genpackagedoc/config/robotframework_aio/release_items_GenPackageDoc.json", "../../../python-jsonpreprocessor/config/robotframework_aio/release_items_JsonPreprocessor.json", diff --git a/tools/release_info/release_info_config_OSS_original.json b/tools/release_info/release_info_config_OSS_original.json index f4067553..5fc22350 100644 --- a/tools/release_info/release_info_config_OSS_original.json +++ b/tools/release_info/release_info_config_OSS_original.json @@ -30,7 +30,7 @@ # Section "VERSION_CONFIG": # ------------------------- - "VERSION_CONFIG" : "0.5.2 / 05.11.2024 (OSS original version)", + "VERSION_CONFIG" : "0.6.0 / 03.12.2024 (OSS original version)", # Section "PACKAGE_CONTEXT_FILE": @@ -57,7 +57,7 @@ # of this component between two releases of the RobotFramework AIO. Between these scopes there is not necessarily a full match. "RELEASE_ITEM_FILES" : [ - "../../config/robotframework_aio/release_items_Robotframework_AIO.json", + "../../config/robotframework_aio/release_items_Robotframework_AIO_original.json", "../../../python-extensions-collection/config/robotframework_aio/release_items_PythonExtensionsCollection.json", "../../../python-genpackagedoc/config/robotframework_aio/release_items_GenPackageDoc.json", "../../../python-jsonpreprocessor/config/robotframework_aio/release_items_JsonPreprocessor.json", From f8b3f637f584e482d29aab998f148896b295bfa8 Mon Sep 17 00:00:00 2001 From: qth2hi Date: Wed, 4 Dec 2024 09:18:13 +0100 Subject: [PATCH 2/2] Reworked process description PROCESSES.rst --- PROCESSES.rst | 146 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 137 insertions(+), 9 deletions(-) diff --git a/PROCESSES.rst b/PROCESSES.rst index 48acdca7..c5a9e290 100644 --- a/PROCESSES.rst +++ b/PROCESSES.rst @@ -1,16 +1,144 @@ -Adding new components -====================== +Adding new components to the RobotFramework AIO +=============================================== -To add a new component to the RobotFramework AIO project on GitHub, follow these steps: +The **RobotFramework AIO** is a bundle of separate components. The core component is the Robot Framework. Other components extend the +functionality of this Robot Framework. Each component is developed and under version control within a separate GitHub repository. -* **Create a new Repository**: Contact Thomas Pollerspoeck (Thomas.Pollerspoeck@de.bosch.com) to create a new repository. +To add a new component to the **RobotFramework AIO** project on GitHub, follow these steps: -* **Clone Repository**: Modify the `repositories.conf `_ file to include the new repository. It will clone the repository to integrate to AIO tools. +**Clone some repositories** -* **Tag Releases**: For each release package in RobotFramework AIO, it will trigger a tag release for other components. Modify the `tag repos configuration `_ to ensure a tag is created for the new repository. +The actions described in this document require adjustments in additional repositories, which must be cloned beforehand: -* **Publish on PyPi**: If the component needs to be published on PyPi, update the `publish pypi repos `_ file accordingly. + * `https://github.com/test-fullautomation/RobotFramework_AIO `_ + * `https://github.com/test-fullautomation/robotframework-documentation `_ -* **Documentation**: Update the `maindoc config OSS `_ file in the robotframework-documentation repository to generate all necessary documents related to the new repository. +---- -* **Release Info**: Finally, update the release info at `release items Robotframework AIO `_ to describe what the new changes in the RobotFramework AIO. +**Create a new repository for the component that shall be a part of the RobotFramework AIO** + + Contact Thomas Pollerspoeck (Thomas.Pollerspoeck@de.bosch.com) to create a new repository. + + Make sure to have the following information available: + + * Name of the repository + + - The name usually starts with ``robotframework-`` for Robot Framework related components. + - The name usually starts with ``python-`` for Python related components (without immediate reference to the Robot Framework). + + * Name of the component + + * Whether the new component is implemented against the latest Robot Framework (without any extensions; this is called '*original*') + or is implemented against an older Robot Framework (that contain certain extensions implemented by **RobotFramework AIO** team; this is called '*extended*'). + + All repositories containing components for the Robot Framework, follow common design rules and contain a common tool chain and infrastructure. The most relevant + topics are explained in more detail in the following items. Independent from this, feel free to look at the other repositories to learn more about the internal structure. + + Make sure that you setup your repository in the same way! + +---- + +**Configure the repository** + + The main parameters of a repository are defined within a repository configuration file in JSON format: + + ``\config\repository_config.json`` + + This includes e.g., the name of the repository, the component, the author and so on. The content is used during the setup process and is also taken over in the documentation. + +---- + +**Configure the component documentation** + + A component of the **RobotFramework AIO** can be documented in PDF format. The tool chain that is responsible for generating this PDF file, is part of the repository + (and also part of the setup dependencies). How this tool chain works is described in more detail within: + + `https://github.com/test-fullautomation/python-genpackagedoc/blob/develop/GenPackageDoc/GenPackageDoc.pdf `_ + + Short form: + + 1. Write the common part of the documentation either in RST format or in LaTeX format. The interface description of the new component will be added to the PDF file + automatically out of the docstrings within the Python code of the component. This requires that the docstrings are written in RST. + 2. Configure the documentation tool chain in the following configuration file within your new repository: + + ``/packagedoc/packagedoc_config.json``. + + As an example, this is the documentation configuration of the documentation tool chain itself (uses it's functionality for own purposes also): + + `https://github.com/test-fullautomation/python-genpackagedoc/blob/develop/packagedoc/packagedoc_config.json `_ + +---- + +**Configure the RobotFramework AIO main documentation** + + The **RobotFramework AIO** is documented in the following PDF files: + + * `https://github.com/test-fullautomation/robotframework-documentation/blob/develop/RobotFrameworkAIO/RobotFrameworkAIO_Reference_original.pdf `_ + * `https://github.com/test-fullautomation/robotframework-documentation/blob/develop/RobotFrameworkAIO/RobotFrameworkAIO_Reference_extended.pdf `_ + + The documentation of the component within the new repository can be added to the **RobotFramework AIO** main documentation. This needs to be done in the following two files + (section "IMPORTS"): + + * `https://github.com/test-fullautomation/robotframework-documentation/blob/develop/maindoc/maindoc_configs/maindoc_config_OSS_original.json `_ + * `https://github.com/test-fullautomation/robotframework-documentation/blob/develop/maindoc/maindoc_configs/maindoc_config_OSS_extended.json `_ + +---- + +**Update the release info** + + 1. Release information regarding the component are defined here: + + ``/config/robotframework_aio/release_items_.json`` + + This is not a history of the component! This file contains information that is relevant in the scope of a release of the **RobotFramework AIO**. Therefore, the content + is adapted to the release frequency of the **RobotFramework AIO** (and not to the release frequency of the component in the new repository). + + 2. The **RobotFramework AIO** has its own release items files: + + * `https://github.com/test-fullautomation/RobotFramework_AIO/blob/develop/config/robotframework_aio/release_items_Robotframework_AIO_original.json `_ + * `https://github.com/test-fullautomation/RobotFramework_AIO/blob/develop/config/robotframework_aio/release_items_Robotframework_AIO_extended.json `_ + + These files describe changes and new features in the **RobotFramework AIO** itself. If something needs to be mentioned w.r.t. the component in your new repository, you + have to add it there. + + Hint: Parts of the release information are taken out of a configuration file that is part of the installed bundle: + + `RobotFramework\python39\Lib\site-packages\RobotFramework_TestsuitesManagement\Config\package_context.json `_ + + The idea behind this is: The release mail shall contain information about what is installed currently. The user is responsible for selecting a proper configuration file + that fits to the installation! + + *TODO: Add more details about executing the release tool* + +---- + +**Extend the RobotFramework AIO build** + + Add the name of the new repository to the following two configuration files: + + * `https://github.com/test-fullautomation/RobotFramework_AIO/blob/develop/config/repositories/repositories_original.conf `_ + * `https://github.com/test-fullautomation/RobotFramework_AIO/blob/develop/config/repositories/repositories_extended.conf `_ + + This will make the new repository a part of the **RobotFramework AIO** build. + +---- + +**Tag releases** + + Add the name of the new repository to the following configuration file: + + `https://github.com/test-fullautomation/RobotFramework_AIO/blob/develop/config/repositories/tag_repos.json `_. + + Every repository listed within this file, will be tagged with the same tag name for each release of the **RobotFramework AIO**. + +---- + +**Publish on PyPi** + + If the component needs to be published on PyPi, update the file: + + `https://github.com/test-fullautomation/RobotFramework_AIO/blob/develop/config/repositories/publish_pypi_repos.txt `_ + +---- + +Last update: 03.12.2024