Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
291da34
chore: upgrade pluggable-widgets-tools and regenerate types. WIP
vadymv-mendix Jun 24, 2025
e06e6ed
chore: fix the pwt patch file
vadymv-mendix Jun 24, 2025
4eb8ca0
chore: fix build issues related to TS type files
vadymv-mendix Jul 16, 2025
f29f477
Merge branch 'main' into moo/MOO-1923-rollup-3-compat
vadymv-mendix Jul 17, 2025
d95a790
chore: update yarn lockfile after merge
vadymv-mendix Jul 17, 2025
7e5d936
fix: move nanoflow-actions-native tsconfig to avoid conflicts with Ro…
vadymv-mendix Jul 21, 2025
f820d69
chore: fix types in maps-native tests
vadymv-mendix Jul 21, 2025
ddd4dfa
chore: switch from Yarn to Pnpm; remove most of the duplicate depende…
vadymv-mendix Jul 22, 2025
ffef813
fix: post Pnpm migration pipeline fixes
vadymv-mendix Jul 22, 2025
c645614
chore: remove duplicate packages from the main repo (rely on widget t…
vadymv-mendix Jul 22, 2025
9cb2513
chore: address PR review comments
vadymv-mendix Jul 24, 2025
9d5a24a
chore: try the node-linker=hoisted pnpm option to fix an issue runnin…
vadymv-mendix Jul 24, 2025
76b4d47
Revert "chore: try the node-linker=hoisted pnpm option to fix an issu…
vadymv-mendix Jul 24, 2025
8824dbb
chore: hoist *react-native* deps
vadymv-mendix Jul 24, 2025
ee0d37e
chore: fix native rollup config via patch
vadymv-mendix Jul 24, 2025
a41f437
chore: patch widget tools rollup plugin to correctly copy linked depe…
vadymv-mendix Jul 24, 2025
a31ae13
chore: fix copying symlinks
vadymv-mendix Jul 24, 2025
9133ffd
chore: use --frozen-lockfile option for pnpm install to ensure consis…
vadymv-mendix Jul 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 16 additions & 11 deletions .github/workflows/Build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,22 +35,27 @@ jobs:
- name: "Fetching main to compare"
if: github.event_name == 'pull_request' && steps.files.outputs.global_files == ''
run: git fetch --no-tags --prune --depth=1 origin +refs/heads/${{ github.base_ref }}:refs/remotes/origin/${{ github.base_ref }}
- name: "Defining environment variables"
if: startsWith(matrix.os, 'ubuntu')
id: variablesLinux
run: echo "arg=$(if [ "${{ steps.files.outputs.global_files }}" = "" ] && ${{ github.event_name == 'pull_request' }}; then echo '--since'; else echo '--all'; fi)" >> ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '$GITHUB_OUTPUT' }}
- name: "Defining environment variables"
if: startsWith(matrix.os, 'windows')
id: variablesWindows
run: echo "arg=$(If ('${{ steps.files.outputs.global_files }}' -eq '' -AND '${{ github.event_name == 'pull_request' }}' -eq 'true'){ echo '--since' } Else { echo '--all' })" >> ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '$GITHUB_OUTPUT' }}
- name: "Defining node version"
uses: actions/setup-node@d86ebcd40b3cb50b156bfa44dd277faf38282d12 # v4
with:
node-version-file: ".nvmrc"
cache: "yarn"
- name: "Setup pnpm"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4
- name: "Get pnpm store directory"
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: "Setup cache"
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: "Installing dependencies"
run: yarn install
run: pnpm install
- name: "Running build for development"
run: yarn workspaces foreach ${{ steps.variablesLinux.outputs.arg }} ${{ steps.variablesWindows.outputs.arg }} --parallel run build
run: pnpm -r --filter=$(if [ "${{ steps.files.outputs.global_files }}" = "" ] && ${{ github.event_name == 'pull_request' }}; then echo '...[origin/main]'; else echo '**'; fi) run build
env:
NODE_OPTIONS: --max_old_space_size=8192
10 changes: 6 additions & 4 deletions .github/workflows/MarketplaceRelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,22 @@ jobs:
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
with:
node-version-file: ".nvmrc"
- name: "Setup pnpm"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4
- name: "Installing dependencies"
run: yarn install
run: pnpm install
- name: "Building native widgets and js actions"
run: yarn workspaces foreach --all run release
run: pnpm -r run release
- name: "Updating Native Mobile Resources project"
run: yarn workspaces foreach --all run create-modules
run: pnpm -r run create-modules
env:
GH_USERNAME: ${{ secrets.GH_USERNAME }}
GH_EMAIL: ${{ secrets.GH_EMAIL }}
GH_NAME: ${{ secrets.GH_NAME }}
GH_PAT: ${{ secrets.GH_PAT }}
TAG: ${{ steps.variables.outputs.tag }}
- name: "Check changes and publish package ${{ steps.variables.outputs.tag }}"
run: yarn workspace ${{ steps.scope.outputs._0 }} run release:marketplace
run: pnpm --filter=${{ steps.scope.outputs._0 }} run release:marketplace
env:
OPENID_URL: ${{ secrets.OPENID_URL }}
CPAPI_USERNAME: ${{ secrets.CPAPI_USERNAME }}
Expand Down
42 changes: 22 additions & 20 deletions .github/workflows/NativePipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -192,17 +192,18 @@ jobs:
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
with:
node-version-file: .nvmrc
cache: yarn
- name: "Setup pnpm"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4
- name: "Install dependencies"
run: yarn install --immutable
run: pnpm install --frozen-lockfile
- name: "Force rebuild resources"
run: |
# Build JS actions if needed
if [ "${{ github.event.inputs.workspace }}" = "js-actions" ] || \
[ "${{ github.event.inputs.workspace }}" = "*-native" ] || \
[ "${{ github.event_name }}" = "schedule" ]; then
yarn workspace mobile-resources-native run build
yarn workspace nanoflow-actions-native run build
pnpm --filter=mobile-resources-native run build
pnpm --filter=nanoflow-actions-native run build
fi

# Build widgets if needed (any specific widget, *-native, or nightly)
Expand All @@ -211,11 +212,11 @@ jobs:
[ "${{ github.event_name }}" = "schedule" ]; then
widgets=$(echo '${{ needs.scope.outputs.widgets }}' | jq -r '.[]')
for w in $widgets; do
yarn workspace $w run build
pnpm --filter=$w run build
done
fi
- name: "Unit test"
run: yarn workspaces foreach ${{ needs.scope.outputs.scope }} run test
run: pnpm -r --filter="${{ needs.scope.outputs.scope }}" run test
- name: "Upload JS actions resources artifact"
if: ${{ github.event.inputs.workspace == 'js-actions' }}
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 #v4
Expand Down Expand Up @@ -478,9 +479,10 @@ jobs:
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
with:
node-version-file: .nvmrc
cache: yarn
- name: "Setup pnpm"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4
- name: "Install dependencies"
run: yarn install --immutable
run: pnpm install
- name: "Download project MDA file"
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
Expand Down Expand Up @@ -599,11 +601,10 @@ jobs:
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
with:
node-version-file: .nvmrc
cache: yarn
- name: "Setup pnpm"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4
- name: "Install dependencies"
run: |
yarn cache clean
yarn install --immutable
run: pnpm install
- name: "Download project MDA file"
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
Expand Down Expand Up @@ -712,9 +713,10 @@ jobs:
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
with:
node-version-file: .nvmrc
cache: yarn
- name: "Setup pnpm"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4
- name: "Install dependencies"
run: yarn install --immutable
run: pnpm install
- name: "Download project MDA file"
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
Expand Down Expand Up @@ -796,11 +798,10 @@ jobs:
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
with:
node-version-file: .nvmrc
cache: yarn
- name: "Setup pnpm"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4
- name: "Install dependencies"
run: |
yarn cache clean
yarn install --immutable
run: pnpm install
- name: "Download project MDA file"
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
Expand Down Expand Up @@ -908,10 +909,11 @@ jobs:
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
with:
node-version-file: .nvmrc
cache: yarn
- name: "Setup pnpm"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4

- name: "Install dependencies"
run: yarn install
run: pnpm install

- name: "Compare Android screenshots"
continue-on-error: true
Expand Down
19 changes: 16 additions & 3 deletions .github/workflows/Release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,23 @@ jobs:
uses: actions/setup-node@d86ebcd40b3cb50b156bfa44dd277faf38282d12 # v4
with:
node-version-file: ".nvmrc"
cache: "yarn"
- name: "Setup pnpm"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4
- name: "Get pnpm store directory"
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: "Setup cache"
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: "Installing dependencies"
run: yarn install
run: pnpm install
- name: "Running release for production"
run: yarn workspaces foreach ${{ steps.variablesLinux.outputs.arg }} ${{ steps.variablesWindows.outputs.arg }} --parallel run release
run: pnpm -r --filter=$(if [ "${{ steps.files.outputs.global_files }}" = "" ] && ${{ github.event_name == 'pull_request' }}; then echo '...[origin/main]'; else echo '**'; fi) run release
env:
NODE_OPTIONS: --max_old_space_size=8192
25 changes: 15 additions & 10 deletions .github/workflows/UnitTests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,25 +31,30 @@ jobs:
run: git fetch --no-tags --prune --depth=1 origin +refs/heads/${{ github.base_ref }}:refs/remotes/origin/${{ github.base_ref }}
- name: "Defining environment variables"
id: variables
run: echo "arg=$(if [ "${{ steps.files.outputs.global_files }}" = "" ] && ${{ github.event_name == 'pull_request' }}; then echo '--since'; else echo '--all'; fi)" >> ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '$GITHUB_OUTPUT' }}
run: echo "arg=$(if [ "${{ steps.files.outputs.global_files }}" = "" ] && ${{ github.event_name == 'pull_request' }}; then echo '...[origin/main]'; else echo '**'; fi)" >> ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '$GITHUB_OUTPUT' }}
- name: "Defining node version"
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
with:
node-version-file: ".nvmrc"
cache: "yarn"
- name: "Get yarn cache directory path"
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> ${{ runner.os == 'Windows' && '$env:GITHUB_ENV' || '$GITHUB_ENV' }}
- name: "Setup pnpm"
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4
- name: "Get pnpm store directory"
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: "Defining cache"
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4
env:
cache-name: cache-node-modules
with:
path: ${{ env.dir }}
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }}
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: "Installing dependencies"
run: yarn install
run: pnpm install
- name: "Linting code"
run: yarn workspaces foreach ${{ steps.variables.outputs.arg }} --parallel run lint
run: pnpm -r --filter=${{ steps.variables.outputs.arg }} run lint
- name: "Running unit tests"
run: yarn workspaces foreach ${{ steps.variables.outputs.arg }} --parallel run test
run: pnpm -r --filter=${{ steps.variables.outputs.arg }} run test
10 changes: 4 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,9 @@ mendixProject
**/tests/testProject
**/pluggableWidgets/**/artifacts

.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnpm-debug.log*
.pnpm-store
.pnpmfile.cjs
.pnpmfile.js

.java-version
2 changes: 1 addition & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

yarn format && yarn validate-staged-widget-versions
pnpm format && pnpm validate-staged-widget-versions
21 changes: 19 additions & 2 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -1,2 +1,19 @@
package-lock=false
legacy-peer-deps=true
# Enable strict peer dependencies
strict-peer-dependencies=false

# Hoist patterns to avoid module resolution issues
public-hoist-pattern[]=*eslint*
public-hoist-pattern[]=*prettier*
public-hoist-pattern[]=*rollup*
public-hoist-pattern[]=*jest*
public-hoist-pattern[]=@types/*

# Use hard links when possible
link-workspace-packages=true
prefer-workspace-packages=true

# Enable shamefully-hoist for compatibility
shamefully-hoist=true

# Enable workspace features
shared-workspace-lockfile=true
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
.idea
.husky
.vscode
pnpm-lock.yaml
Loading
Loading