Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Programming exercises: Add Dart programming exercise template #10265

Merged
merged 23 commits into from
Feb 15, 2025

Conversation

magaupp
Copy link
Contributor

@magaupp magaupp commented Feb 4, 2025

Checklist

General

Server

Client

  • Important: I implemented the changes with a very good performance, prevented too many (unnecessary) REST calls and made sure the UI is responsive, even with large data (e.g. using paging).
  • I strictly followed the client coding and design guidelines.
  • I documented the TypeScript code using JSDoc style.
  • I translated all newly inserted strings into English and German.

Changes affecting Programming Exercises

  • High priority: I tested all changes and their related features with all corresponding user types on a test server configured with the integrated lifecycle setup (LocalVC and LocalCI).
  • I tested all changes and their related features with all corresponding user types on a test server configured with Gitlab and Jenkins.

Description

This PR adds a programming exercise template for the Dart language. The exercise uses the usual strategy pattern example.
Testing uses the standard package:test.
The Docker image is based on the official dart image and installs package:junitreport for the conversion to the JUnit format and XmlStarlet to strip the JUnit output of the useless message attribute and fall back to the stacktrace.

Steps for Testing

Prerequisites:

  • 1 Instructor
  1. Navigate to the exercise creation page
  2. Select Dart for the language
  3. Verify that only valid lowercase Dart identifiers can be used for the package name
  4. Fill out all necessary fields correctly and generate the exercise
  5. Wait until the test results are available in the exercise details page
  6. Verify that the template result passes 0/13 tests without build failure
  7. Verify that the solution result passes 13/13 tests without build failure

Testserver States

You can manage test servers using Helios. Check environment statuses in the environment list. To deploy to a test server, go to the CI/CD page, find your PR or branch, and trigger the deployment.

Review Progress

Code Review

  • Code Review 1
  • Code Review 2

Manual Tests

  • Test 1
  • Test 2

Summary by CodeRabbit

  • New Features

    • Introduced Dart as a supported programming language for programming exercises.
    • Added Dart-specific package name validation and integration within continuous integration and build workflows.
    • Provided new Dart exercise templates featuring examples for sorting algorithms.
  • Documentation

    • Updated user guides and localization content to include guidelines for Dart exercises.
  • Tests

    • Expanded test suites to verify Dart exercise functionality and sorting behavior.

@github-actions github-actions bot added tests server Pull requests that update Java code. (Added Automatically!) client Pull requests that update TypeScript code. (Added Automatically!) documentation config-change Pull requests that change the config in a way that they require a deployment via Ansible. template programming Pull requests that affect the corresponding module labels Feb 4, 2025
@helios-aet helios-aet bot temporarily deployed to artemis-test2.artemis.cit.tum.de February 4, 2025 21:46 Inactive
@helios-aet helios-aet bot temporarily deployed to artemis-test1.artemis.cit.tum.de February 4, 2025 22:13 Inactive
@helios-aet helios-aet bot temporarily deployed to artemis-test6.artemis.cit.tum.de February 4, 2025 22:28 Inactive
@helios-aet helios-aet bot temporarily deployed to artemis-test2.artemis.cit.tum.de February 6, 2025 16:35 Inactive
@helios-aet helios-aet bot temporarily deployed to artemis-test2.artemis.cit.tum.de February 6, 2025 17:00 Inactive
@magaupp magaupp requested review from sawys777 and HawKhiem February 8, 2025 12:28
coderabbitai[bot]
coderabbitai bot previously approved these changes Feb 8, 2025
Copy link
Contributor

@az108 az108 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code 👍

@helios-aet helios-aet bot temporarily deployed to artemis-test1.artemis.cit.tum.de February 11, 2025 02:15 Inactive
@helios-aet helios-aet bot temporarily deployed to artemis-test3.artemis.cit.tum.de February 11, 2025 02:21 Inactive
Copy link
Member

@BBesrour BBesrour left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tested on ts3, lgtm

@helios-aet helios-aet bot temporarily deployed to artemis-test1.artemis.cit.tum.de February 11, 2025 18:10 Inactive
@helios-aet helios-aet bot temporarily deployed to artemis-test4.artemis.cit.tum.de February 11, 2025 18:16 Inactive
Copy link

@sachmii sachmii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested on TS4, works just fine.

image

@helios-aet helios-aet bot temporarily deployed to artemis-test6.artemis.cit.tum.de February 12, 2025 09:53 Inactive
Copy link

@flbrgit flbrgit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested on TS6, works as expected
image

@helios-aet helios-aet bot temporarily deployed to artemis-test6.artemis.cit.tum.de February 12, 2025 17:24 Inactive
Copy link

@vinceclifford vinceclifford left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, works as expected. Tested on TS6.

@helios-aet helios-aet bot temporarily deployed to artemis-test5.artemis.cit.tum.de February 12, 2025 19:21 Inactive
Copy link

@kevinfischer4 kevinfischer4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested on TS5, package name validation and exercise creation work as expected 👍
image

@helios-aet helios-aet bot temporarily deployed to artemis-test3.artemis.cit.tum.de February 14, 2025 13:28 Inactive
Copy link

@sawys777 sawys777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Retested on TS3, everything works as expected

@krusche krusche added this to the 7.10.1 milestone Feb 15, 2025
Copy link
Member

@krusche krusche left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good 👍

@krusche krusche added ready to merge maintainer-approved The feature maintainer has approved the PR labels Feb 15, 2025
@krusche krusche merged commit 41909cb into develop Feb 15, 2025
28 of 35 checks passed
@krusche krusche deleted the feature/programming-exercises/dart-template branch February 15, 2025 11:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client Pull requests that update TypeScript code. (Added Automatically!) config-change Pull requests that change the config in a way that they require a deployment via Ansible. documentation maintainer-approved The feature maintainer has approved the PR programming Pull requests that affect the corresponding module ready for review ready to merge server Pull requests that update Java code. (Added Automatically!) template tests
Projects
Status: Merged
Status: Done
Development

Successfully merging this pull request may close these issues.