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: Remove the legacy README.md handling #9220

Merged
merged 7 commits into from
Aug 21, 2024

Conversation

pzdr7
Copy link
Contributor

@pzdr7 pzdr7 commented Aug 15, 2024

Checklist

General

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.
  • I strictly followed the client coding and design guidelines.
  • I added multiple integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.

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).

Motivation and Context

Very long ago (#381), the problem statement of programming exercises was stored in the README.md file of the assignment repository. This meant that the online code editor had to filter out this file to prevent modifications. We no longer use this mechanism, so we can remove this restriction.

Description

Closes #9214.

  • Treats README.md like any other file in the online code editor
  • No longer uses README.md as a backup for the problem statement of programming exercises
  • Improved the function coverage of the file browser component because it was failing

Steps for Testing

Prerequisites:

  • 1 Programming exercise with a README.md at the root level of the template repository. Enable the online code editor for this exercise.
  • 1 Student
  1. As the student, navigate to the exercise.
  2. Open the online code editor.
  3. Verify that the README.md file is shown and that you can edit it.

Testserver States

Note

These badges show the state of the test servers.
Green = Currently available, Red = Currently locked
Click on the badges to get to the test servers.







Review Progress

Code Review

  • Code Review 1
  • Code Review 2

Manual Tests

  • Test 1
  • Test 2

Test Coverage

Only trivial changes. Coverage of the CodeEditorFileBrowserComponent improves to 95% (roughly +9%p)

Class/File Line Coverage Confirmation (assert/expect)
code-editor-file-browser.component.ts 95.04%

Screenshots

No UI changes.

Summary by CodeRabbit

  • New Features

    • README.md files are now visible in the file browser, enhancing the user experience.
    • Streamlined instruction retrieval process focuses solely on problem statements, improving efficiency.
  • Bug Fixes

    • Fixed logic to handle file and folder management, including creation, renaming, and deletion confirmation modals.
  • Documentation

    • Improved comments and clarity regarding the purpose and behavior of various components.
  • Tests

    • Enhanced test cases for the file browser and programming exercise instruction components, focusing on new functionalities and dependencies.

@github-actions github-actions bot added tests client Pull requests that update TypeScript code. (Added Automatically!) labels Aug 15, 2024
@pzdr7 pzdr7 linked an issue Aug 15, 2024 that may be closed by this pull request
@pzdr7 pzdr7 changed the title Programming exercises: Display the README.md file in the online code editor Programming exercises: Remove the legacy README.md handling Aug 15, 2024
Copy link

⚠️ Unable to deploy to test servers ⚠️

Testserver "artemis-test3.artemis.cit.tum.de" is already in use by PR #8802.

@github-actions github-actions bot added the deployment-error Added by deployment workflows if an error occured label Aug 16, 2024
@github-actions github-actions bot removed the deployment-error Added by deployment workflows if an error occured label Aug 16, 2024
@pzdr7 pzdr7 temporarily deployed to artemis-test3.artemis.cit.tum.de August 16, 2024 15:32 — with GitHub Actions Inactive
@pzdr7 pzdr7 marked this pull request as ready for review August 16, 2024 15:40
@pzdr7 pzdr7 requested a review from a team as a code owner August 16, 2024 15:40
Copy link

coderabbitai bot commented Aug 16, 2024

Walkthrough

The changes primarily enhance the visibility of README.md files in the online code editor by removing filters that previously excluded them. This update simplifies the logic for displaying files and streamlines components related to programming exercise instructions, focusing solely on the problemStatement. Overall, the modifications improve user experience by ensuring that important documentation is readily accessible.

Changes

Files Change Summary
src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser.component.ts Removed the filter that excluded README.md files from the file browser display.
src/main/webapp/app/exercises/programming/shared/instructions-render/programming-exercise-instruction.component.ts Removed loadInstructions method and associated service dependency; now relies solely on problemStatement.
src/test/javascript/spec/component/code-editor/code-editor-file-browser.component.spec.ts Enhanced tests for file management, including tree compression, file selection, creation, renaming, and deletion confirmation.
src/test/javascript/spec/component/programming-exercise/programming-exercise-instruction.component.spec.ts Updated test suite by removing unnecessary service dependencies and refining test cases for clarity.

Assessment against linked issues

Objective Addressed Explanation
README.md not shown in online code editor (Issue #9214)

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@SimonEntholzer SimonEntholzer 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, README.md shows up for the student

Copy link
Contributor

@JohannesStoehr JohannesStoehr left a comment

Choose a reason for hiding this comment

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

Code looks good to me

Copy link
Contributor

@BaumiCoder BaumiCoder left a comment

Choose a reason for hiding this comment

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

Code looks good to me.

Only one little question to this topic: Old exercises have their problem statement in a README.md. Then this approach was replaced, but the README.md was still a fallback option for the problem statement. When was a migration of the README.md files into the new approach (the database)? Without such a migration this PR could break old exercises, isn't it?

@pzdr7
Copy link
Contributor Author

pzdr7 commented Aug 18, 2024

@BaumiCoder I asked Stephan about this — the migration was several years ago.

We already have a lot of features in Artemis that rely on the problemStatement stored in the DB (grading, tasks, etc.) that wouldn't work with the old README.md approach, so this change wouldn't break any exercises that aren't already broken

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 ts1, lgtm

Copy link
Contributor

@dmytropolityka dmytropolityka left a comment

Choose a reason for hiding this comment

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

code

Copy link
Contributor

@BaumiCoder BaumiCoder left a comment

Choose a reason for hiding this comment

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

Code

@pzdr7 pzdr7 added this to the 7.5.1 milestone Aug 19, 2024
@krusche krusche merged commit b75396d into develop Aug 21, 2024
15 of 18 checks passed
@krusche krusche deleted the bugfix/programming-exercises/show-readme-file branch August 21, 2024 10:31
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!) ready for review tests
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

README.md not shown in online code editor
7 participants