Notice: We have migrated to GitLab launching 2024-05-01 see here: https://gitlab.rtems.org/

#3892 closed project (invalid)

RTEMS Python Standardisation -- Pure Python project.

Reported by: Amar Takhar Owned by: Amar Takhar
Priority: normal Milestone: Indefinite
Component: admin Version:
Severity: normal Keywords: python, tools, testing, large
Cc: Blocked By:
Blocking:

Description (last modified by Amar Takhar)

Contents

  1. Mentors
  2. Status
  3. Introduction
  4. Project
    1. Goal
      1. What you will learn
    2. Prerequisite
    3. Good to have
    4. Current tools
    5. New tools
    6. Tutorial
    7. Testing

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.

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.

Change History (6)

comment:1 Changed on 02/29/20 at 05:58:45 by Amar Takhar

Description: modified (diff)

Finish project, some current tools may be missing.

comment:2 Changed on 02/29/20 at 06:02:33 by Amar Takhar

Description: modified (diff)
Summary: RTEMS Python StandardisationRTEMS Python Standardisation -- Pure Python project.

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.

comment:3 Changed on 12/26/21 at 12:01:17 by Siddhanth

I would like to contribute for this project as a GSoC 2022 student. I'm quite comfortable with python.

comment:4 Changed on 02/03/22 at 20:04:23 by Gedare Bloom

Keywords: soc large added; gsoc removed

comment:5 Changed on 02/25/22 at 18:21:23 by Gedare Bloom

Keywords: soc removed

comment:6 Changed on 01/19/23 at 17:27:54 by Amar Takhar

Resolution: invalid
Status: assignedclosed

No longer relevant maybe in the future.

Note: See TracTickets for help on using tickets.