[RTEMS Project] #3892: RTEMS Python Standardisation -- Pure Python project. (was: RTEMS Python Standardisation)
RTEMS trac
trac at rtems.org
Sat Feb 29 06:02:33 UTC 2020
#3892: RTEMS Python Standardisation -- Pure Python project.
------------------------------------------+--------------------------
Reporter: Amar Takhar | Owner: Amar Takhar
Type: project | Status: assigned
Priority: normal | Milestone: Indefinite
Component: admin | Version:
Severity: normal | Resolution:
Keywords: gsoc, python, tools, testing | Blocked By:
Blocking: |
------------------------------------------+--------------------------
Old description:
> [[PageOutline(1-5, Contents, inline)]]
>
> = Mentors =
> Amar Takhar
>
> = Status =
>
> GSoC project or looking for funding.
>
> = Introduction =
>
> A qualified developer for this project does not need to know anything
> about RTEMS or an RTOS in general.
>
> ----
>
> = Project =
>
> RTEMS currently has several Python tools that need to be brought under
> the same ecosystem and several tools that are missing that need to be
> written.
>
> This task also includes the creation of a beginners tutorial with ASCII
> screen-capture on using the new tools created for testing code on real
> hardware.
>
> == Goal ==
>
> * Runs under Python 2.x and 3.x.
> * A general RTEMS tool library with a standard API to handle common
> tasks.
> * All utilities callable as a function within the API with the tool
> itself being a thin layer.
> * Testing on all API commands under both Python 2.x and 3.x.
> * In-source documentation.
> * Tutorial using new Python utility for running code on hardware.
>
> === What you will learn ===
>
> * How to properly test Python software.
> * Using code coverage tools.
> * Using performance tools.
> * Writing technical documentation both in and out of source.,
> * Writing a beginner tutorial from a technical perspective.
> * Library/API design and consumption.
> * Using modern documentation tools.
>
> == Prerequisite ==
>
> * Medium knowledge of Python.
> * Knowledge of how to write well-written Python following PEPs,
> * Understanding of how libraries and APis work.
> * A Beaglebone Black with an FTDI cable.
>
> == Good to have ==
>
> None of these are required but having them will strengthen a candidates
> chances of being accepted.
>
> * Cross-platform programming experience.
> * Knowledge of debugging and profiling Python code
> * Experience with writing documents.
>
> == Current tools ==
>
> The following tools are among the programs that current exist that need
> to be worked on.
>
> * [https://git.rtems.org/rtems-tools/ rtems-run]
> * [https://git.rtems.org/rtems-tools/ rtems-test]
> * [https://git.rtems.org/rtems-tools/ tftp proxy]
> * [https://git.rtems.org/rtems-source-builder/ rtems-source-builder]
>
>
> == New tools ==
>
> Currently, low-level tools exist that help with running binaries on real
> hardware. However RTEMS lacks a high level management utility for
> configuring `tftp-proxy`, `rtems-test`, `rtems-run` and `ser2net`.
>
> Further to this there are other tasks that need to be completed such as
> creating a usable `u-boot` image with the correct `FDT` files. `mkimage`
> must be used over test binaries to create a flashable image to be sent to
> the hardware for execution.
>
> == Tutorial ==
>
> RTEMS lacks a general tutorial for new users to the project. Part of
> writing a new tool for handling running code on real hardware is to lower
> the burden of new users to test RTEMS for their requirements.
>
> A new tutorial describing this process and the usage of the new tool is
> required for successful completion.
>
> == Testing ==
>
> The entire API will need to be tested using `pytest`. This will include
> running under Python 2.x and 3.x for compatibility purposes on our main
> platforms. `FreeBSD`, `Linux`, `Windows`, and `OS X`.
>
> Code coverage should be at or near 100% upon the completion of this
> project.
New description:
[[PageOutline(1-5, Contents, inline)]]
= Mentors =
Amar Takhar
= Status =
GSoC project or looking for funding.
= Introduction =
A qualified developer for this project does not need to know anything
about RTEMS or an RTOS in general. It is also not required to know C, C++
or any other programming language outside of Python.
----
= Project =
RTEMS currently has several Python tools that need to be brought under the
same ecosystem and several tools that are missing that need to be written.
This task also includes the creation of a beginners tutorial with ASCII
screen-capture on using the new tools created for testing code on real
hardware.
== Goal ==
* Runs under Python 2.x and 3.x.
* A general RTEMS tool library with a standard API to handle common
tasks.
* All utilities callable as a function within the API with the tool
itself being a thin layer.
* Testing on all API commands under both Python 2.x and 3.x.
* In-source documentation.
* Tutorial using new Python utility for running code on hardware.
=== What you will learn ===
* How to properly test Python software.
* Using code coverage tools.
* Using performance tools.
* Writing technical documentation both in and out of source.,
* Writing a beginner tutorial from a technical perspective.
* Library/API design and consumption.
* Using modern documentation tools.
== Prerequisite ==
* Medium knowledge of Python.
* Knowledge of how to write well-written Python following PEPs,
* Understanding of how libraries and APis work.
* A Beaglebone Black with an FTDI cable.
* Basic knowledge of UNIX commandline and Git.
== Good to have ==
None of these are required but having them will strengthen a candidates
chances of being accepted.
* Cross-platform programming experience.
* Knowledge of debugging and profiling Python code
* Experience with writing documents.
== Current tools ==
The following tools are among the programs that current exist that need to
be worked on.
* [https://git.rtems.org/rtems-tools/ rtems-run]
* [https://git.rtems.org/rtems-tools/ rtems-test]
* [https://git.rtems.org/rtems-tools/ tftp proxy]
* [https://git.rtems.org/rtems-source-builder/ rtems-source-builder]
== New tools ==
Currently, low-level tools exist that help with running binaries on real
hardware. However RTEMS lacks a high level management utility for
configuring `tftp-proxy`, `rtems-test`, `rtems-run` and `ser2net`.
Further to this there are other tasks that need to be completed such as
creating a usable `u-boot` image with the correct `FDT` files. `mkimage`
must be used over test binaries to create a flashable image to be sent to
the hardware for execution.
== Tutorial ==
RTEMS lacks a general tutorial for new users to the project. Part of
writing a new tool for handling running code on real hardware is to lower
the burden of new users to test RTEMS for their requirements.
A new tutorial describing this process and the usage of the new tool is
required for successful completion.
== Testing ==
The entire API will need to be tested using `pytest`. This will include
running under Python 2.x and 3.x for compatibility purposes on our main
platforms. `FreeBSD`, `Linux`, `Windows`, and `OS X`.
Code coverage should be at or near 100% upon the completion of this
project.
--
Comment (by Amar Takhar):
Note that this is a pure python project in the title to help it stand out
for Python-only students.
Also note that only Python is required in the introduction and add a note
about knowing basic UNIX CLI and Git.
--
Ticket URL: <http://devel.rtems.org/ticket/3892#comment:2>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list