Impact Acquire Python – Customer-Ready Packaging

Ziel dieses Projekts ist es, die Nutzung der Impact Acquire Python API für Kunden drastisch zu vereinfachen. Statt lokaler Kompilierung (SWIG/Compiler/Headers/Admin-Rechte) sollen Kunden fertige Wheels installieren: pip install …import ….

Python Wheels (.whl) SWIG Wrapper Windows / Linux Multi-Python (3.x) pytest Smoke Tests Reproducible Builds No Admin / No Build Tools (Customer)
Rolle (Werkstudent): Verbesserung der Installierbarkeit und Developer Experience. Fokus: Packaging, Build-Prozess, Tests, Dokumentation – in Abstimmung mit dem SDK-Team.

1. Projektziel

2. Pain Points – Was heute Kunden blockiert

Windows

MSVC / PATH / Admin

  • Compiler-Matching: Python-Version ↔ MSVC Toolset muss passen
  • PATH-Abhängigkeit: compileWrapperCode.bat findet Python über PATH
  • Admin-Rechte: je nach Install-Pfad kann „Run as administrator“ nötig sein
  • Anaconda Legacy: egg-Layout / manuelle Fixes (bei alten Versionen)
Folge: nicht reproduzierbar, viele Support-Tickets.
Linux

Headers / sudo / Distro

  • python-dev nötig: ohne Headers kein Build
  • Root nötig: Script installiert in systemweite site-packages
  • Package-Manager Konflikte: pip kann Module nicht automatisch installieren
  • Ressourcen: großer SWIG-Wrapper → Memory-Probleme auf Embedded/32-bit
Folge: lange Builds, fragile Umgebungen.
Root Cause: Der Wrapper ist ein binäres Extension-Modul (.pyd/.so) und muss zur Python-Version passen. Aktuell wird der Build auf die Kundenmaschine verlagert.

3. Zielbild – Wheels statt lokaler Kompilierung

Heute

Customer-Build

  1. SDK installieren
  2. Compiler/Headers/Tools installieren
  3. Build-Skript ausführen
  4. Install in systemweite site-packages
Ziel

Prebuilt Wheels

  1. Build in kontrollierter Umgebung (Team/CI oder Skripte)
  2. Wheel pro Python-Version/OS
  3. pytest Smoke Tests pro Wheel
  4. Kunde: pip install …import …
Erfolg: Kunden benötigen weder Compiler noch sudo/Admin-Rechte, um die Python API zu nutzen.

4. Architekturübersicht

Inputs kommen aus dem SDK-Installationsverzeichnis (LanguageBindings/Python). Outputs sind versionierte Wheels + Test-Reports.

5. Ablauf – Was ich konkret mache

1

VM Setup (Customer-Like)

2

Build verstehen & stabilisieren

3

Wheel bauen & versionieren

4

pytest Smoke Tests

5

Doku & Übergabe

6. Deliverables

Customer Deliverables

  • Wheels pro Python/OS
  • Quickstart + Beispiele
  • Installation ohne Admin, wo möglich

Team Deliverables

  • Build-Skripte (reproduzierbar)
  • pytest Suite
  • Release Checklist

Beispiel: Customer Happy Path

# Installation
pip install impact_acquire-<VERSION>-cp311-cp311-win_amd64.whl

# Quick sanity check
python -c "import impact_acquire as ia; print('OK')"
Outcome: Keine lokalen Compiler/Headers/sudo mehr beim Kunden → weniger Reibung & Support.
Zurück nach oben