Skip to content

Commit 010199d

Browse files
Merge remote-tracking branch 'upstream/development' into development
2 parents 08f50cc + 3d99282 commit 010199d

73 files changed

Lines changed: 1602 additions & 80 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/branch-deletion-pr-creation.yml

Lines changed: 52 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,18 @@ jobs:
3838
3939
- name: Process branches
4040
id: branch-data
41+
env:
42+
MIN_AGE_DAYS: ${{ github.event.inputs.min_age_days || '27' }}
4143
run: |
4244
set -e
4345
ALL_BRANCHES=$(git branch -r | grep -v "origin/HEAD" | sed 's/origin\///')
44-
MIN_AGE_DAYS=${{ github.event.inputs.min_age_days || 27 }}
46+
MIN_AGE_DAYS=${MIN_AGE_DAYS:-27}
47+
48+
echo "MIN_AGE_DAYS=${MIN_AGE_DAYS}"
49+
50+
PROTECTED_COUNT=0
51+
MERGED_COUNT=0
52+
UNMERGED_COUNT=0
4553
4654
PROTECTED_BRANCHES=()
4755
MERGED_BRANCHES_TO_PROCESS=()
@@ -54,38 +62,56 @@ jobs:
5462
5563
for BRANCH in $ALL_BRANCHES; do
5664
branch_lower=$(echo "$BRANCH" | tr '[:upper:]' '[:lower:]')
57-
if [[ $branch_lower =~ (backup|development|main|master|production) ]]; then
58-
PROTECTED_BRANCHES+=("$BRANCH (protected)")
65+
if [[ $branch_lower == *backup* || $branch_lower =~ ^(development|main|master|production)(-[0-9]+)?$ ]]; then
66+
PROTECTED_BRANCHES+=("$BRANCH")
67+
PROTECTED_COUNT=$((PROTECTED_COUNT+1))
5968
elif git branch -r --merged origin/development | grep -q "origin/$BRANCH"; then
6069
MERGED_BRANCHES_TO_PROCESS+=("$BRANCH")
70+
MERGED_COUNT=$((MERGED_COUNT+1))
6171
else
62-
UNMERGED_BRANCHES+=("$BRANCH (not merged)")
72+
UNMERGED_BRANCHES+=("$BRANCH")
73+
UNMERGED_COUNT=$((UNMERGED_COUNT+1))
6374
fi
6475
done
6576
77+
echo "branch totals: protected=${PROTECTED_COUNT} merged=${MERGED_COUNT} unmerged=${UNMERGED_COUNT}"
78+
6679
for BRANCH in "${MERGED_BRANCHES_TO_PROCESS[@]}"; do
6780
MERGE_HASH=$(git log --grep="Merge branch.*$BRANCH" origin/development -n 1 --pretty=format:"%H" || true)
68-
[ -z "$MERGE_HASH" ] && MERGE_HASH=$(git log -n 1 origin/$BRANCH --pretty=format:"%H")
69-
70-
MERGE_DATE=$(git show -s --format=%ct $MERGE_HASH)
71-
DAYS_AGO=$(( ($(date +%s) - MERGE_DATE) / 86400 ))
72-
81+
if [ -z "$MERGE_HASH" ]; then
82+
MERGE_HASH=$(git log -n 1 origin/$BRANCH --pretty=format:"%H" || true)
83+
fi
84+
85+
if [ -z "$MERGE_HASH" ]; then
86+
echo "WARN: no merge commit found for $BRANCH — skipping"
87+
UNMERGED_BRANCHES+=("$BRANCH (no-merge-hash)")
88+
UNMERGED_COUNT=$((UNMERGED_COUNT+1))
89+
continue
90+
fi
91+
92+
MERGE_DATE_EPOCH=$(git show -s --format=%ct $MERGE_HASH 2>/dev/null || true)
93+
if [ -z "$MERGE_DATE_EPOCH" ]; then
94+
echo "WARN: could not read commit date for $BRANCH (hash=$MERGE_HASH) — skipping"
95+
UNMERGED_BRANCHES+=("$BRANCH (no-merge-date)")
96+
UNMERGED_COUNT=$((UNMERGED_COUNT+1))
97+
continue
98+
fi
99+
100+
DAYS_AGO=$(( ($(date +%s) - MERGE_DATE_EPOCH) / 86400 ))
101+
73102
if [[ $DAYS_AGO -ge $MIN_AGE_DAYS ]]; then
74-
BRANCHES_TO_DELETE+=("$BRANCH")
103+
BRANCHES_TO_DELETE+=("$BRANCH (${DAYS_AGO}d since merge)")
75104
else
76-
BRANCHES_TOO_RECENT+=("$BRANCH (too recent: ${DAYS_AGO}d)")
105+
BRANCHES_TOO_RECENT+=("$BRANCH (${DAYS_AGO}d since merge)")
77106
fi
107+
echo "checked $BRANCH: hash=$MERGE_HASH date=$MERGE_DATE_EPOCH days=${DAYS_AGO}"
78108
done
79109
80-
ALL_NON_DELETED=(
81-
"${PROTECTED_BRANCHES[@]}"
82-
"${BRANCHES_TOO_RECENT[@]}"
83-
"${UNMERGED_BRANCHES[@]}"
84-
)
85-
86110
echo "HAS_BRANCHES=$([ ${#BRANCHES_TO_DELETE[@]} -gt 0 ] && echo true || echo false)" >> $GITHUB_ENV
87111
echo "BRANCHES_TO_DELETE=$(printf -- '- %s\n' "${BRANCHES_TO_DELETE[@]}" | jq -Rs .)" >> $GITHUB_ENV
88-
echo "ALL_NON_DELETED=$(printf -- '- %s\n' "${ALL_NON_DELETED[@]}" | jq -Rs .)" >> $GITHUB_ENV
112+
echo "PROTECTED_BRANCHES=$(printf -- '- %s\n' "${PROTECTED_BRANCHES[@]}" | jq -Rs .)" >> $GITHUB_ENV
113+
echo "BRANCHES_TOO_RECENT=$(printf -- '- %s\n' "${BRANCHES_TOO_RECENT[@]}" | jq -Rs .)" >> $GITHUB_ENV
114+
echo "UNMERGED_BRANCHES=$(printf -- '- %s\n' "${UNMERGED_BRANCHES[@]}" | jq -Rs .)" >> $GITHUB_ENV
89115
90116
- name: Create Deletion PR
91117
if: env.HAS_BRANCHES == 'true'
@@ -97,8 +123,14 @@ jobs:
97123
### Branches for Deletion
98124
${{ fromJSON(env.BRANCHES_TO_DELETE) }}
99125
100-
### Protected/Recent Branches
101-
${{ fromJSON(env.ALL_NON_DELETED) }}
126+
### Protected Branches
127+
${{ fromJSON(env.PROTECTED_BRANCHES) }}
128+
129+
### Recent Merges (too recent to delete)
130+
${{ fromJSON(env.BRANCHES_TOO_RECENT) }}
131+
132+
### Unmerged Branches
133+
${{ fromJSON(env.UNMERGED_BRANCHES) }}
102134
base: development
103135
labels: Internal WIP
104136
assignees: MarkvanMents,OlufunkeMoronfolu

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ hugo.exe
88
/.hugo_build.lock
99
/.claude/audit.log
1010
/.claude/settings.local.json
11+
/.mcp.json
1112

1213
# For Mac users
1314
.DS_Store

content/en/docs/community-tools/contribute-to-mendix-docs/markdown-shortcodes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ If the tab pane contains code with an asterisk (`*`) in it, the linter rule for
189189
190190
Mendix videos are hosted on Vidyard. For more information, see [the Videos section of the Style Guide](https://mendix.atlassian.net/wiki/spaces/RNDHB/pages/2510061889/Images+Icons+and+Videos#Videos).
191191
192-
{{< vidyard "GwE17mzGma5NAvDnXrVdFA" >}}
192+
{{< vidyard id="GwE17mzGma5NAvDnXrVdFA" date_updated="YYYY-MM-DD" >}}
193193
194194
## Other Markdown and HTML Guidelines
195195

content/en/docs/deployment/on-premises-design/ms-windows/sql-server/restoring-a-sql-server-database.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ This how-to teaches you how to do the following:
1515

1616
For a deep-dive look into this action, check out this video:
1717

18-
{{< vidyard "WZu7QtHZPjtYUTdcV58PKr?" >}}
18+
{{< vidyard id="WZu7QtHZPjtYUTdcV58PKr?" >}}
1919

2020
## Prerequisites
2121

content/en/docs/developerportal/digital-execution/implement-mendix/mendix-ecosystem.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ aliases:
1010

1111
## Introduction
1212

13-
{{< vidyard "AVffVf7KCVt7h1ioBvUQ1f" >}}
13+
{{< vidyard id="AVffVf7KCVt7h1ioBvUQ1f" >}}
1414

1515
This section offers an overview of the Mendix platform, and outlines the 5 P’s of Digital Transformation and their importance to your Mendix success.
1616

content/en/docs/howto8/front-end/customize-styling/calypso.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Calypso is the easiest styling solution for most users. However, if you already
1919

2020
For a deep-dive look into styling with Calypso, check out this video:
2121

22-
{{< vidyard "M2NCccTnfnh7Yx2gjEyBpf" >}}
22+
{{< vidyard id="M2NCccTnfnh7Yx2gjEyBpf" >}}
2323

2424
## Prerequisites
2525

content/en/docs/howto8/general/dev-best-practices.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Even with the powerful navigation and search support in Mendix Studio Pro, adher
1818

1919
For a deep-dive look into implementing such best practices, check out this video:
2020

21-
{{< vidyard "exmmApZY4jMYxqidrzehEQ" >}}
21+
{{< vidyard id="exmmApZY4jMYxqidrzehEQ" >}}
2222

2323
## Project Setup
2424

content/en/docs/howto8/general/install.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Mendix Studio Pro enables you to build apps on the Mendix Platform. This how-to
1111

1212
For a deep-dive demonstration of how to install Studio Pro, follow along in this video:
1313

14-
{{< vidyard "WUp2tLi68nXFQd7xhPbDtt" >}}
14+
{{< vidyard id="WUp2tLi68nXFQd7xhPbDtt" >}}
1515

1616
## Prerequisites
1717

content/en/docs/marketplace/genai/mendix-cloud-genai/navigate_mxgenai.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,17 @@ After a resource is provisioned, you can change its plan size, either upgrade or
5858

5959
### Team
6060

61-
{{< figure src="/attachments/appstore/platform-supported-content/modules/genai/navigate_mxgenai/GenAIResource_Team.png" >}}
61+
{{< figure src="/attachments/appstore/platform-supported-content/modules/genai/navigate_mxgenai/genai-resource-team.png" >}}
6262

63-
The **Team** page allows you to manage access to the Mendix Cloud GenAI resource. All users listed in this overview have access to the resource in the GenAI resource portal and can create new keys or invite new users. You can add new users via the **Add Member** button and remove them using the **Remove Member** button next to their name in the overview.
63+
The **Team** page allows you to manage access to the Mendix Cloud GenAI resource. By default, internal members listed in this **Overview** have access to the resource in the GenAI resource portal and can create new keys or invite new users. You can add new users via the **Add Member** button and remove them using the **Remove Member** button next to their name in the overview.
6464

65-
{{% alert color="info" %}}Currently, you can only invite people within the same organization.{{% /alert %}}
65+
#### Inviting External Members
66+
67+
You can invite members from outside your organization to access your GenAI resources by entering their email address in **Add Member**. This option is available only if your company admin has enabled external user invitations.
68+
69+
You can track invitations in the **Pending Invites** tab. Invited users will receive an email with a link to accept or decline the invitation. If they do not yet have a Mendix account, the link redirects them to create one. Once the invitation is accepted, the resource will appear in their GenAI portal overview.
70+
71+
Pending invitations can be withdrawn at any time and will automatically expire after two weeks. External members can create and delete keys, export consumption data, manage knowledge base content and collections, and change the model. However, they can not modify the display name or environment, or manage team membership.
6672

6773
### Keys
6874

content/en/docs/marketplace/platform-supported-content/modules/native-mobile-resources.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ The [Native Mobile Resources](https://marketplace.mendix.com/link/component/1095
1111

1212
For excellent deep-dive demonstrations of how to use these native mobile widgets, check out the videos below on the [Carousel](#carousel) and [Popup Menu](#popup-menu) widgets:
1313

14-
{{< vidyard "2Mzw7r4zLuyrvDcP1bhz4j" >}}
14+
{{< vidyard id="2Mzw7r4zLuyrvDcP1bhz4j" >}}
1515

16-
{{< vidyard "wBDgxvFKGwFYkyxKhpHVLT" >}}
16+
{{< vidyard id="wBDgxvFKGwFYkyxKhpHVLT" >}}
1717

1818
{{% alert color="info" %}}
1919
Native Mobile Resources v3.1.4 and above will indicate their version inside *themesource/nativemobileresources/.version* located in the app directory. Versions v3.1.3 and below included a constant in the module indicating version.

0 commit comments

Comments
 (0)