Project Description

In January, we announced the D-Installer project, an attempt to build a web-based installer on top of YaST and Cockpit. Since then, the codebase has grown significantly, especially the JavaScript part.

Until now, we have been using simple JavaScript objects and functions most of the time. However, let's be honest, tooling support (editors, documentation generation tools, etc.) for such an approach is not great. Additionally, having some typing would be easier to deal with the code. So we have decided to try TypeScript.

Goal for this Hackweek

  • Learn some TypeScript.
  • Adopt Typescript where it makes sense (especially the D-Bus clients).

Resources

Looking for hackers with the skills:

javascript reactjs d-installer typescript web

This project is part of:

Hack Week 21

Activity

  • over 3 years ago: GPR left this project.
  • over 3 years ago: GPR joined this project.
  • over 3 years ago: joseivanlopez joined this project.
  • over 3 years ago: IGonzalezSosa started this project.
  • over 3 years ago: IGonzalezSosa added keyword "javascript" to this project.
  • over 3 years ago: IGonzalezSosa added keyword "reactjs" to this project.
  • over 3 years ago: IGonzalezSosa added keyword "d-installer" to this project.
  • over 3 years ago: IGonzalezSosa added keyword "typescript" to this project.
  • over 3 years ago: IGonzalezSosa added keyword "web" to this project.
  • over 3 years ago: IGonzalezSosa originated this project.

  • Comments

    • IGonzalezSosa
      over 3 years ago by IGonzalezSosa | Reply

      For this Hack Week, we decided to work on Finish the Jangouts rewrite on React/Redux instead. However, as part of that work, we played around with TypeScript and we concluded that it might be pretty interesting to bring it to D-Installer as well.

    Similar Projects

    Kudos aka openSUSE Recognition Platform by lkocman

    Description

    Relevant blog post at news-o-o

    I started the Kudos application shortly after Leap 16.0 to create a simple, friendly way to recognize people for their work and contributions to openSUSE. There’s so much more to our community than just submitting requests in OBS or gitea we have translations (not only in Weblate), wiki edits, forum and social media moderation, infrastructure maintenance, booth participation, talks, manual testing, openQA test suites, and more!

    Goals

    • Kudos under github.com/openSUSE/kudos with build previews aka netlify

    • Have a kudos.opensuse.org instance running in production

    • Build an easy-to-contribute recognition platform for the openSUSE communit a place where everyone can send and receive appreciation for their work, across all areas of contribution.

    • In the future, we could even explore reward options such as vouchers for t-shirts or other community swag, small tokens of appreciation to make recognition more tangible.

    Resources

    (Do not create new badge requests during hackweek, unless you'll make the badge during hackweek)


    Move Uyuni Test Framework from Selenium to Playwright + AI by oscar-barrios

    Description

    This project aims to migrate the existing Uyuni Test Framework from Selenium to Playwright. The move will improve the stability, speed, and maintainability of our end-to-end tests by leveraging Playwright's modern features. We'll be rewriting the current Selenium code in Ruby to Playwright code in TypeScript, which includes updating the test framework runner, step definitions, and configurations. This is also necessary because we're moving from Cucumber Ruby to CucumberJS.

    If you're still curious about the AI in the title, it was just a way to grab your attention. Thanks for your understanding.


    Goals

    • Migrate Core tests including Onboarding of clients
    • Improve test reliabillity: Measure and confirm a significant reduction of flakynes.
    • Implement a robust framework: Establish a well-structured and reusable Playwright test framework using the CucumberJS

    Resources


    AI-Powered Unit Test Automation for Agama by joseivanlopez

    The Agama project is a multi-language Linux installer that leverages the distinct strengths of several key technologies:

    • Rust: Used for the back-end services and the core HTTP API, providing performance and safety.
    • TypeScript (React/PatternFly): Powers the modern web user interface (UI), ensuring a consistent and responsive user experience.
    • Ruby: Integrates existing, robust YaST libraries (e.g., yast-storage-ng) to reuse established functionality.

    The Problem: Testing Overhead

    Developing and maintaining code across these three languages requires a significant, tedious effort in writing, reviewing, and updating unit tests for each component. This high cost of testing is a drain on developer resources and can slow down the project's evolution.

    The Solution: AI-Driven Automation

    This project aims to eliminate the manual overhead of unit testing by exploring and integrating AI-driven code generation tools. We will investigate how AI can:

    1. Automatically generate new unit tests as code is developed.
    2. Intelligently correct and update existing unit tests when the application code changes.

    By automating this crucial but monotonous task, we can free developers to focus on feature implementation and significantly improve the speed and maintainability of the Agama codebase.

    Goals

    • Proof of Concept: Successfully integrate and demonstrate an authorized AI tool (e.g., gemini-cli) to automatically generate unit tests.
    • Workflow Integration: Define and document a new unit test automation workflow that seamlessly integrates the selected AI tool into the existing Agama development pipeline.
    • Knowledge Sharing: Establish a set of best practices for using AI in code generation, sharing the learned expertise with the broader team.

    Contribution & Resources

    We are seeking contributors interested in AI-powered development and improving developer efficiency. Whether you have previous experience with code generation tools or are eager to learn, your participation is highly valuable.

    If you want to dive deep into AI for software quality, please reach out and join the effort!

    • Authorized AI Tools: Tools supported by SUSE (e.g., gemini-cli)
    • Focus Areas: Rust, TypeScript, and Ruby components within the Agama project.

    Interesting Links