Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
0890afa
#1628: fixed CHANGELOG
hohwille Sep 8, 2026
09c20b8
#2058 fix github authentication for vsccode (#2072)
quando632 Sep 11, 2026
d94cbf8
Update quality status documents
devonfw-core Sep 14, 2026
9d1bd23
#2252: add uninstall support for globally installed tools on macOS (#…
Ali-Shariati-Najafabadi Sep 14, 2026
99b4b45
#1695: Clone settings to temporary directory, analyse, and then move …
laim2003 Sep 15, 2026
8641e85
#2103: Integrate Obsidian (#2380)
Paras14 Sep 15, 2026
dbb8a0f
#2366: support variables and expressions in repository properties (#2…
quando632 Sep 15, 2026
6a714c7
#2488: Add compiler and SDK to MSVC installation (#2489)
laert-ll Sep 17, 2026
35a7945
#2193: add alternatives and dependencies to auto-completion entries (…
Hiepiscus Sep 21, 2026
3621ffe
#2338: Add a new check commandlet (#2355)
Hiepiscus Sep 21, 2026
e224e69
Doccument for Run GitHub Actions Locally with act (#2435)
QuangAnhLe Sep 21, 2026
4fee91a
Update quality status documents
devonfw-core Sep 21, 2026
0a4c527
#377: Document Homebrew installation on MacOS (#2421)
shodiBoy1 Sep 21, 2026
19972e3
#2477: always rethrow CliAbortException in a Step (#2501)
quando632 Sep 21, 2026
a680979
#2431: Configure uv cache directory from IDE_ROOT (#2498)
DravenHEHE Sep 21, 2026
aeb5234
#1808: Clarify the selected workspace in ide and icd messages (#2446)
lyobrown Sep 21, 2026
16c1161
#2422: cleanup determine installed edition and version and restore so…
JoelAdbu Sep 21, 2026
e76da8e
#2007: Support Docker on Arch Linux with pacman and yay (#2083)
laert-ll Sep 21, 2026
a0eb42d
#2206: Fix IDEasy title not properly shown on macOS (#2315)
Ali-Shariati-Najafabadi Sep 21, 2026
d2e67d9
#2271: fix pgadmin installation on linux (#2388)
cap-juan Sep 21, 2026
b9eb9b3
CI status watch (#2091)
shodiBoy1 Sep 21, 2026
6604a4b
#840: git fetch doesnt work with multiple remotes (#2524)
JoelAdbu Sep 22, 2026
8d1ff48
#2540: Skip Teams notification jobs in forks (#2543)
shodiBoy1 Sep 24, 2026
fa2012a
#2509: merge VSCode user settings template into --user-data-dir (#2526)
quando632 Sep 24, 2026
de3f80d
#607: test that IDEA_PROPERTIES and STUDIO_PROPERTIES are set on the …
majesteSil Sep 24, 2026
9ed3a22
#2458: Create url updater for antigravity (#2476)
JoelAdbu Sep 24, 2026
4b74e5c
#2533: isolate NlsServiceTest and stop IDE_OPTIONS env var from pollu…
krystynaShatkovska Sep 24, 2026
6e62118
set release version to 2026.09.002
devonfw-core Sep 25, 2026
f97a15d
set next version to 2026.09.003-SNAPSHOT
devonfw-core Sep 25, 2026
90e39f6
Update Maven revision version to 2026.10.001-SNAPSHOT
hohwille Sep 25, 2026
f2f5b67
Update CHANGELOG for version 2026.10.001
hohwille Sep 25, 2026
b972096
#2381: node npm bash isolation poc (#2395)
krystynaShatkovska Sep 25, 2026
eebe443
#2401: Rework Mainwindow (#2437)
samuelkos17 Sep 25, 2026
d2f9082
#2442: make windows-installer a maven module to align with macos-inst…
majesteSil Sep 25, 2026
d503484
#2344: align macOS PKG build script with Windows MSI build script (#2…
majesteSil Sep 25, 2026
941b607
#2394: Add documentation for PR retesting (#2414)
Hiepiscus Sep 28, 2026
a5f41aa
Update quality status documents
devonfw-core Sep 28, 2026
cc2e6f8
#2293: rework spyder as ide tool commandlet (#2333)
JoelAdbu Sep 29, 2026
bddd378
#2562: use the ide team for the external issue observer (#2577)
shodiBoy1 Sep 30, 2026
1521136
#2428: gate automatic workflow triggers behind a repo variable (#2430)
Ali-Shariati-Najafabadi Oct 1, 2026
a69b585
#2598: to to fix if condition for first workflow
hohwille Oct 1, 2026
783dfed
#2598: try for build workflow
hohwille Oct 1, 2026
460de1a
#2598: remove condition from build-pr
hohwille Oct 1, 2026
46c91b6
#2592: use LF line endings for npm and npx POSIX shims (#2597)
Hiepiscus Oct 1, 2026
35fd667
#1102: Add Sponsors section to README
hohwille Oct 1, 2026
1fbe69b
#2374: fix assign-pr-author workflow (#2375)
QuangAnhLe Oct 1, 2026
252ab05
#2345: Fix DOCKER_EDITION ignored on Linux (#2362)
Hiepiscus Oct 2, 2026
d3bdd23
#2456: add unit tests for UrlSecurityFile (#2564)
HadiDawoud Oct 2, 2026
0d561e3
#2607: align tool help for corepack (#2608)
opencode13241-eng Oct 2, 2026
568817c
#2110 , #2108 add documentation for contributing to UI components (#2…
laim2003 Oct 5, 2026
b5f443a
#2322: align GUI icons (#2416)
lyobrown Oct 5, 2026
d098109
Update quality status documents
devonfw-core Oct 5, 2026
6442355
fix documentation commandlet-and-url-updater (#2620)
QuangAnhLe Oct 6, 2026
d71bec8
#1216: run release tests before deployment (#2424)
cap-juan Oct 6, 2026
b87b759
#871: add progress bar to DMG extraction (#2408)
shodiBoy1 Oct 7, 2026
b025142
#2596: fixed npm based tools execution and uninstallation and fixed i…
JoelAdbu Oct 8, 2026
9812137
#2603 split commandlet and url updater documentation (#2604)
JoelAdbu Oct 8, 2026
fa6bea4
#2541: skip empty variable values in inverseResolve to avoid value co…
krystynaShatkovska Oct 9, 2026
0e15324
#2546: Add repository/working directory into git warning/errors (#2560)
Hiepiscus Oct 9, 2026
f43d19d
#2628 : Fixed the coding-convention link in PR (#2632)
NikoFoutsitzis Oct 12, 2026
344bfb0
Update quality status documents
devonfw-core Oct 12, 2026
b455753
#2440: Make IdeLauncherTab non-closeable (#2652)
samuelkos17 Oct 13, 2026
5da2977
#2455: Add unit tests for PropertiesMerger (#2590)
stphschne Oct 14, 2026
747c9a4
2250: uninstall commands from package manager test fix (#2379)
JoelAdbu Oct 14, 2026
d69d4cd
#2400 Rework console (#2487)
laim2003 Oct 15, 2026
95de939
#1209: improve confusing migration version message of ide status (#2611)
Ali-Shariati-Najafabadi Oct 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 14 additions & 5 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

Please add conscise, understandable instructions on how a reviewer can test/verify the functionality of your contribution here:

1.
1.

---

Expand All @@ -20,14 +20,16 @@ Make sure everything is checked before merging this PR. For further info please
our [DoD](https://github.com/devonfw/IDEasy/blob/main/documentation/contributing/DoD.adoc).

- [ ] 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 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 summarizes 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](https://github.com/devonfw/IDEasy/blob/main/documentation/coding-conventions.adoc)
- [ ] You followed all [coding conventions](https://github.com/devonfw/IDEasy/blob/main/documentation/contributing/coding-conventions.adoc)
- [ ] You have added the issue implemented by your PR in [CHANGELOG.adoc](https://github.com/devonfw/IDEasy/blob/main/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](https://github.com/devonfw/IDEasy/blob/main/documentation/LICENSE.adoc)
- [ ] You have not changed any dependency in `pom.xml` files or otherwise if runtime dependencies changed,
you have updated our [LICENSE.adoc](https://github.com/devonfw/IDEasy/blob/main/documentation/LICENSE.adoc)
- [ ] You have formulated clear instructions on how to test your contribution under "Testing instructions"

### Checklist for tool commandlets
Expand All @@ -43,3 +45,10 @@ Have you added a new `«tool»` as commandlet? There are the following additiona
- [ ] The variables `«TOOL»_VERSION` and `«TOOL»_EDITION` are honored by your commandlet
- [ ] The new commandlet is tested on all platforms it is available for or tested on all platforms that are in scope of the linked issue

### Checklist for GUI contributions

Did you make user-facing changes to the GUI? There are the following additional checks:

- [ ] You followed the [ui-contribution-process.adoc](https://github.com/devonfw/IDEasy/blob/main/documentation/contributing/ui-contribution-process.adoc) and [ui-structure.adoc](https://github.com/devonfw/IDEasy/blob/main/documentation/contributing/ui-structure.adoc)
- [ ] The UI changes are designed in the Figma project and the design was approved in the team review
- [ ] You have added screenshots of the UI changes to the PR description
34 changes: 22 additions & 12 deletions .github/workflows/assign-pr-author.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ on:
pull_request_target:
types: [opened]

env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true

permissions:
contents: read
pull-requests: write
Expand All @@ -15,6 +12,9 @@ permissions:
jobs:
assign-author:
runs-on: ubuntu-latest
if: >
github.event_name == 'workflow_dispatch' ||
vars.ENABLE_AUTOMATIC_WORKFLOWS == 'true'

steps:
- name: Assign PR author if no assignee exists
Expand All @@ -24,16 +24,26 @@ jobs:
const pr = context.payload.pull_request;

// Do not overwrite existing assignees
if (pr.assignees && pr.assignees.length > 0) {
if (pr.assignees?.length > 0) {
console.log('PR already has assignees. Skipping.');
return;
}
// Bot accounts cannot be assigned like regular contributors
if (pr.user.type === 'Bot') {
console.log(`PR author ${pr.user.login} is a bot. Skipping assignment.`);
return;
}

await github.rest.issues.addAssignees({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pr.number,
assignees: [pr.user.login]
});

console.log(`Assigned ${pr.user.login} to PR #${pr.number}`);
try {
await github.rest.issues.addAssignees({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pr.number,
assignees: [pr.user.login]
});

console.log(`Assigned ${pr.user.login} to PR #${pr.number}`);
} catch (err) {
// E.g. fork author is not a collaborator — don't fail the workflow
console.log(`Warning: could not assign ${pr.user.login}: ${err.message}`);
}
2 changes: 2 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
jobs:
build:
runs-on: ubuntu-latest
if: >
${{ github.event_name == 'workflow_dispatch' || vars.ENABLE_AUTOMATIC_WORKFLOWS == 'true' }}
steps:
- name: Checkout code
uses: actions/checkout@v7
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/check-for-updates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ jobs:
# Checks if new commits since 24 hours of the last call of this workflow were found and adjusts the GITHUB_OUTPUT accordingly
verify_commit:
runs-on: ubuntu-latest
if: >
github.event_name == 'workflow_dispatch' ||
vars.ENABLE_AUTOMATIC_WORKFLOWS == 'true'
outputs:
RUN_BUILD: ${{ steps.verify_commit.outputs.RUN_BUILD }}
steps:
Expand Down
126 changes: 126 additions & 0 deletions .github/workflows/ci-status-watch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
name: CI status watch

# Posts a Teams message listing the README badge workflows that are currently red on the
# default branch. A workflow stays in the list until it is green again, so the reminder
# repeats every weekday morning until somebody fixes it. Creates no issues, read-only.
# If a status cannot be checked, Teams receives a warning to check it manually.
# Requires the repository secret TEAMS_WEBHOOK_URL.

on:
workflow_dispatch:
schedule:
- cron: '0 7 * * 1-5' # 07:00 UTC, Mon-Fri (= 09:00 CEST / 08:00 CET)

permissions:
actions: read

jobs:
watch:
if: >
github.repository == 'devonfw/IDEasy' &&
(github.event_name == 'workflow_dispatch' || vars.ENABLE_AUTOMATIC_WORKFLOWS == 'true')
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WEBHOOK: ${{ secrets.TEAMS_WEBHOOK_URL }}
REPO: ${{ github.repository }}
BRANCH: ${{ github.ref_name }}
steps:
- name: Check badge workflow status and notify Teams
run: |
set -euo pipefail

# The workflows backing the README badges. Add a line here if a badge is added.
WORKFLOWS="
.github/workflows/build.yml
.github/workflows/update-urls.yml
.github/workflows/nightly-build.yml
.github/workflows/integration-tests.yml
"

echo "Checking badge workflows on branch $BRANCH"

# Cancelled/skipped runs say nothing about the code and are ignored. A failed lookup
# is kept as an unknown status so Teams can ask the team to check it manually.
RESULTS=$(for WF_PATH in $WORKFLOWS; do
if RUNS=$(gh run list --repo "$REPO" --workflow "$WF_PATH" --branch "$BRANCH" \
--status completed --limit 5 --json conclusion,url,updatedAt,workflowName); then
echo "$RUNS" | jq --arg workflow "$WF_PATH" '
([ .[] | select(.conclusion != "cancelled" and .conclusion != "skipped") ][0]) as $run
| if $run == null then
{state: "unknown", workflow: $workflow}
elif ($run.conclusion == "failure" or $run.conclusion == "timed_out"
or $run.conclusion == "startup_failure") then
{state: "red", name: $run.workflowName, url: $run.url, since: $run.updatedAt}
else
{state: "green", workflow: $workflow}
end'
else
echo "Status lookup failed for $WF_PATH." >&2
jq -n --arg workflow "$WF_PATH" '{state: "unknown", workflow: $workflow}'
fi
done | jq -s '.')

RED=$(echo "$RESULTS" | jq '[.[] | select(.state == "red")]')
UNKNOWN=$(echo "$RESULTS" | jq '[.[] | select(.state == "unknown")]')
RED_COUNT=$(echo "$RED" | jq 'length')
UNKNOWN_COUNT=$(echo "$UNKNOWN" | jq 'length')
if [ "$RED_COUNT" -eq 0 ] && [ "$UNKNOWN_COUNT" -eq 0 ]; then
echo "No badge workflow is red. Skipping Teams notification."
exit 0
fi
echo "$RED_COUNT badge workflow(s) currently red; $UNKNOWN_COUNT status lookup(s) unknown."

if [ -z "${WEBHOOK:-}" ]; then
echo "No Teams webhook set; notification cannot be delivered."
exit 1
fi

CARD=$(jq -n \
--argjson red "$RED" \
--argjson unknown "$UNKNOWN" \
--argjson redCount "$RED_COUNT" \
--argjson unknownCount "$UNKNOWN_COUNT" \
--arg repo "$REPO" '
{
type: "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
version: "1.4",
body: (
[
{ type: "TextBlock", size: "Large", weight: "Bolder", wrap: true,
color: (if $redCount > 0 then "attention" else "warning" end),
text: (if $redCount > 0 then "🔴 CI ist rot" else "⚠️ CI-Status unklar" end) }
]
+ (if $redCount > 0 then
[ { type: "TextBlock", spacing: "None", isSubtle: true, wrap: true,
text: (if $redCount == 1 then "1 Workflow ist rot" else "\($redCount) Workflows sind rot" end) } ]
+ [ $red[] | {
type: "Container", separator: true, spacing: "Medium",
items: [
{ type: "TextBlock", weight: "Bolder", wrap: true, text: "🔴 \(.name)" },
{ type: "TextBlock", spacing: "None", isSubtle: true, size: "Small", wrap: true,
text: "rot seit \(.since) · [Run-Log öffnen](\(.url))" }
]
} ]
else [] end)
+ (if $unknownCount > 0 then
[
{ type: "TextBlock", weight: "Bolder", wrap: true, color: "warning",
spacing: "Large", text: "⚠️ Statusprüfung unvollständig" },
{ type: "TextBlock", wrap: true,
text: "Bitte den Status der folgenden Workflows manuell in GitHub prüfen." }
]
+ [ $unknown[] | {
type: "TextBlock", wrap: true,
text: "⚠️ [\(.workflow | split("/") | last)](https://github.com/\($repo)/actions/workflows/\(.workflow | split("/") | last))"
} ]
else [] end)
)
}')

curl -sS --fail -X POST -H "Content-Type: application/json" -d "$CARD" "$WEBHOOK"
if [ "$UNKNOWN_COUNT" -gt 0 ]; then
echo "At least one workflow status could not be checked."
exit 1
fi
3 changes: 3 additions & 0 deletions .github/workflows/clean-runs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ on:
jobs:
del_runs:
runs-on: ubuntu-latest
if: >
github.event_name == 'workflow_dispatch' ||
vars.ENABLE_AUTOMATIC_WORKFLOWS == 'true'
steps:
- name: Delete cancelled workflow runs
uses: Mattraks/delete-workflow-runs@v2
Expand Down
Loading