Skip to content

#871: add progress bar to DMG extraction - #2408

Open
shodiBoy1 wants to merge 3 commits into
devonfw:mainfrom
shodiBoy1:feature/871-dmg-extract-progressbar
Open

#871: add progress bar to DMG extraction#2408
shodiBoy1 wants to merge 3 commits into
devonfw:mainfrom
shodiBoy1:feature/871-dmg-extract-progressbar

Conversation

@shodiBoy1

@shodiBoy1 shodiBoy1 commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

This PR fixes #871

Implemented changes:

  • added a Copying progress bar while IDEasy copies an application from a mounted DMG.
  • reused the existing recursive copy logic and update the progress after each copied file.
  • added a focused test for the progress bar and updated the changelog.

Testing instructions

  1. On macOS, check out this PR:

    gh pr checkout 2408
  2. Run the focused test:

    cd cli
    mvn -Dtest=FileAccessImplTest#testExtractDmgWithProgressBar test
  3. Verify that the test finishes with BUILD SUCCESS.

  4. Optionally, run a real DMG installation:

mvn exec:exec -Dexec.executable=java -Dexec.args="-cp %classpath com.devonfw.tools.ide.cli.Ideasy --force install pycharm"
  1. Verify that the Copying progress reaches 100%, the DMG is detached, and the installation completes.

Checklist for this PR

  • When running mvn clean test locally all tests pass and build is successful
  • PR title is of the form #«issue-id»: «brief summary» (e.g. #921: fixed setup.bat and not feature/921 fixed setup.bat). If no issue ID exists, title only.
  • PR top-level comment summaries what has been done and contains link to addressed issue(s)
  • PR and issue(s) have suitable labels
  • Issue is set to In Progress and assigned to you or there is no issue (might happen for very small PRs)
  • You followed all coding conventions
  • You have added the issue implemented by your PR in CHANGELOG.adoc unless issue is labelled
    with internal
  • You have not changed any dependency in pom.xml files or otherwise if runtime dependencies changed, you have updated our LICENSE.asciidoc
  • You have formulated clear instructions on how to test your contribution under "Testing instructions"

@coveralls

coveralls commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 33916190084

Coverage increased (+0.1%) to 73.978%

Details

  • Coverage increased (+0.1%) from the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • 171 coverage regressions across 1 file.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

171 previously-covered lines in 1 file lost coverage.

File Lines Losing Coverage Coverage
com/devonfw/tools/ide/io/FileAccessImpl.java 171 71.88%

Coverage Stats

Coverage Status
Relevant Lines: 18714
Covered Lines: 14470
Line Coverage: 77.32%
Relevant Branches: 8340
Covered Branches: 5544
Branch Coverage: 66.47%
Branches in Coverage %: Yes
Coverage Strength: 3.3 hits per line

💛 - Coveralls

@shodiBoy1 shodiBoy1 moved this from 🆕 New to 🏗 In progress in IDEasy board Sep 3, 2026
@shodiBoy1 shodiBoy1 added enhancement New feature or request macOS specific for Apple MacOS progressbar progressbar to give feedback to user for longer running processing like download or unpack labels Sep 3, 2026
@shodiBoy1
shodiBoy1 marked this pull request as ready for review September 3, 2026 23:44
@shodiBoy1 shodiBoy1 moved this from 🏗 In progress to Team Review in IDEasy board Sep 3, 2026
@shodiBoy1

shodiBoy1 commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author
WARNING: A restricted method in java.lang.foreign.MemorySegment has been called
WARNING: java.lang.foreign.MemorySegment::reinterpret has been called by org.jline.terminal.impl.ffm.FfmTerminalProvider in an unnamed module (file:/Users/shohzodsobirov/.m2/repository/org/jline/jline/4.3.1/jline-4.3.1.jar)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
WARNING: Restricted methods will be blocked in a future release unless native access is enabled

Downloading 100% │██████████████████│ 1091/1091MiB (0:04:06 / 0:00:00) 4,4MiB/s
SHA-256 checksum aa6770f7b336aa9afe43f946d5f34627c1679bdc990e52c09e4d8098d54ab785 is correct.
Extracting DMG file /Users/shohzodsobirov/Library/Caches/IDEasy/downloads/default/pycharm-2025.3-mac-arm64.dmg to /Users/shohzodsobirov/projects/_ide/tmp/extract-pycharm-2025.3-mac-arm64.dmg
Copying 100% │████████████████████│ 3219/3219MiB (0:00:09 / 0:00:00) 357,7MiB/s
"disk14" ejected.
Start: Configuring workspace main for IDE pycharm
Successfully ended step 'Configuring workspace main for IDE pycharm'.
Resetting all installed plugins...
Successfully installed pycharm in version 2025.3 at /Users/shohzodsobirov/projects/test-fix/software/pycharm
Successfully completed ide (install,pycharm)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  04:34 min
[INFO] Finished at: 2026-09-02T19:28:04+02:00
[INFO] ------------------------------------------------------------------------
shohzodsobirov@MacBookPro cli % 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request macOS specific for Apple MacOS progressbar progressbar to give feedback to user for longer running processing like download or unpack

Projects

Status: Team Review

Development

Successfully merging this pull request may close these issues.

Add progressbar to *.dmg extract process

2 participants