Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
8bba641
feat: Enable release-please release setup
d3xter666 Oct 28, 2025
8cff340
refactor: Update placeholders
d3xter666 Oct 28, 2025
103f7f3
feat: Introduce release-please-manifest.json
d3xter666 Oct 28, 2025
ad65076
fix: License
d3xter666 Oct 28, 2025
295f374
refactor: Update release-please workflow
d3xter666 Oct 30, 2025
f85f745
fix: Logger License whitespaces
d3xter666 Oct 30, 2025
3585d49
feat: Release please setup
d3xter666 Oct 31, 2025
6fc9f41
refactor: Update release-please to publish to NPM
d3xter666 Oct 31, 2025
dcc5956
fix: Cleanups
d3xter666 Oct 31, 2025
196e973
refactor: Cleanup
d3xter666 Oct 31, 2025
1fee954
fix: Address RP package & shrinkwrap versions update
d3xter666 Nov 6, 2025
96a5ce3
fix: Enforce sequential publishing of the packages
d3xter666 Nov 6, 2025
fe12a34
docs: Provide component names to the description along with the version
d3xter666 Nov 6, 2025
23f852b
fix: Shrinkwrap proper generation
d3xter666 Nov 6, 2025
2da41e2
feat: Enable trusted publishing to NPM
d3xter666 Nov 6, 2025
4928ba3
refactor: Use working-directory prop instead of CD-ing
d3xter666 Nov 6, 2025
ae9317f
refactor: Bump package versions to v5 pre-release
d3xter666 Nov 6, 2025
1869611
fix: Prerelases don't have ranges
d3xter666 Nov 6, 2025
b120202
fix: Correctly update the shrinkwrap
d3xter666 Nov 6, 2025
f23d5c4
fix: Generate correct npm-shrinkwrap.json
d3xter666 Nov 6, 2025
4d52f99
refactor: Cleanups
d3xter666 Nov 10, 2025
e79f72c
feat: Add shrinkwrap-extractor to the root project's lib
d3xter666 Nov 11, 2025
e29384e
refactor: Use shrinkwrap-extractor to generate npm-shrinkwrap.js
d3xter666 Nov 11, 2025
4b607b5
docs: Update comments
d3xter666 Nov 11, 2025
0469e0a
fix: ESlint issues
d3xter666 Nov 11, 2025
3eeffd4
refactor: Cleanup redundant shrinkwrap config files
d3xter666 Nov 12, 2025
217df77
refactor: Add private flag for shrinkwrap extractor
d3xter666 Nov 12, 2025
c8c3e61
fix: Reuse eslint common.config
d3xter666 Nov 12, 2025
87df34f
refactor: Move shrinkwrap-extractor into a separate package
d3xter666 Nov 13, 2025
d10c5d2
refactor: Add shrinkwrap checks to the ci workflow
d3xter666 Nov 13, 2025
a13176e
refactor: Reorganize release-please setup with the new paths
d3xter666 Nov 13, 2025
c957951
fix: Run full tests set for shrinkwrap-extractor
d3xter666 Nov 13, 2025
2494f08
refactor: Do not enforce --engine-strict for release-please setup
d3xter666 Nov 13, 2025
0b5eafe
test: Enable shrinkwrap-tests for error handling
d3xter666 Nov 13, 2025
70e34fc
refactor: Move internal packages into a separate root directory
d3xter666 Nov 13, 2025
b5755eb
refactor: Separate public/internal packages in root package.json
d3xter666 Nov 13, 2025
ce642a4
fix: Align and fix scripts with the monorepo
d3xter666 Nov 13, 2025
a26870d
fix: Address package move within the code
d3xter666 Nov 13, 2025
825d459
fix: General CI pip
d3xter666 Nov 13, 2025
e47baa9
refactor: Isolated docs deployment
d3xter666 Nov 14, 2025
4db6361
fix: Package lock update for docs package
d3xter666 Nov 14, 2025
98d30be
fix: Update docs dependencies
d3xter666 Nov 14, 2025
653cf30
refactor: Adjust release please config so that it produces alpha release
d3xter666 Nov 14, 2025
3fca682
fix: Shrinkwrap extractor to respect different registry setup
d3xter666 Nov 14, 2025
94e4779
fix: Workflow paths
d3xter666 Nov 14, 2025
bcd8b1e
fix: Documentation depcheck
d3xter666 Nov 14, 2025
74024a1
fix: Update properly package-lock.json
d3xter666 Nov 17, 2025
b3d13eb
fix: Sync @npmcli/config dep across packages
d3xter666 Nov 17, 2025
9f0e18a
feat: Add REUSE compliance for shrinkwrap-extractor
d3xter666 Nov 17, 2025
616fae2
fix: Paths to packages in CI
d3xter666 Nov 17, 2025
cbd3694
refactor: Optimize deps install process
d3xter666 Nov 18, 2025
03ab828
revert: Update package versions to prerelase version
d3xter666 Nov 18, 2025
5f252e7
refactor: Cleanups
d3xter666 Nov 18, 2025
f9ffcb9
refactor: Use runner.temp for temp dir management
d3xter666 Nov 18, 2025
37a6bd7
fix: Resolve merge conflicts
d3xter666 Nov 18, 2025
b03b5f6
docs: Update workflow titles
d3xter666 Nov 18, 2025
6e8ed73
docs: Update comments in code to make it clearer
d3xter666 Nov 18, 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
30 changes: 17 additions & 13 deletions .github/workflows/deploy-vitepress-docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,18 +40,23 @@ jobs:
cache: npm
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Install dependencies
run: npm ci --engine-strict # --engine-strict is used to fail-fast if deps require node versions unsupported by the repo
- name: Install documentation dependencies
working-directory: packages/documentation
run: npm ci --engine-strict # --engine-strict is used to fail-fast if deps require node versions unsupported by the repo
- name: Copy documentation package to isolated directory
run: |
# Create isolated directory for documentation
# So, that API.json will be build from the NPM packages,
# and not from workspace packages
mkdir -p ${{ runner.temp }}/isolated-docs
cp -r internal/documentation/. ${{ runner.temp }}/isolated-docs/
- name: Install documentation dependencies from NPM
working-directory: ${{ runner.temp }}/isolated-docs
run: npm ci --engine-strict
- name: Fetch gh-pages branch
run: git fetch origin gh-pages --depth=1
- name: generate CLI doc
working-directory: packages/documentation
working-directory: ${{ runner.temp }}/isolated-docs
run: npm run generate-cli-doc
- name: Build vitepress build
working-directory: packages/documentation
working-directory: ${{ runner.temp }}/isolated-docs
run: |
# The base output
npm run build:vitepress -- --base="/${{ github.event.repository.name }}/${DOC_VERSION}/"
Expand All @@ -60,11 +65,10 @@ jobs:
npm run build:vitepress -- --base="/${{ github.event.repository.name }}/${DOC_ALIAS}/" --outDir="dist-${DOC_ALIAS}"
npm run build:assets -- ./dist-${DOC_ALIAS}
- name: Build jsdoc
working-directory: packages/documentation
working-directory: ${{ runner.temp }}/isolated-docs
run: npm run jsdoc-generate
# TODO: Skip for now deployment of the schema until we do a Schema Version 5 release
# - name: Build Schema
# run: |
# - name: Build Sch3 |
# npm run schema-generate
# npm run schema-workspace-generate
- name: Checkout gh-pages
Expand All @@ -81,16 +85,16 @@ jobs:
rm -rf ./gh-pages/${DOC_ALIAS}

# Main version route
cp -R ./packages/documentation/dist ./gh-pages/${DOC_VERSION}/
cp -R ${{ runner.temp }}/isolated-docs/dist ./gh-pages/${DOC_VERSION}/

# Alias route. E.g., next, latest, stable, etc.
# For vitepress must be a copy with different config, not a symlink
cp -R ./packages/documentation/dist-${DOC_ALIAS} ./gh-pages/${DOC_ALIAS}/
cp -R ${{ runner.temp }}/isolated-docs/dist-${DOC_ALIAS} ./gh-pages/${DOC_ALIAS}/
# Symlink the api docs to avoid duplication
ln -s ../${DOC_VERSION}/api ./gh-pages/${DOC_ALIAS}/api

# TODO: Enable when v5 release is done
# cp ./packages/documentation/scripts/resources/custom404.html ./gh-pages/404.html
# cp ${{ runner.temp }}/isolated-docs/scripts/resources/custom404.html ./gh-pages/404.html
- name: Publish Docs
run: |
cd ./gh-pages
Expand Down
12 changes: 7 additions & 5 deletions .github/workflows/github-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,16 @@ jobs:
run: npm run unit

- name: Generate JSDoc documentation
working-directory: packages/documentation
run: |
npm ci --engine-strict # --engine-strict is used to fail-fast if deps require node versions unsupported by the repo
npm run jsdoc-generate
working-directory: internal/documentation
run: npm run jsdoc-generate

- name: Generate merged JSON schema
run: npm run schema-generate

- name: Generate CLI documentation
working-directory: packages/documentation
working-directory: internal/documentation
run: npm run generate-cli-doc

- name: Check shrinkwrap integrity
working-directory: internal/shrinkwrap-extractor
run: npm run test
85 changes: 85 additions & 0 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Release Please

on:
push:
branches:
- main

permissions:
contents: write
pull-requests: write
id-token: write # Required for trusted publishing via OIDC (https://docs.npmjs.com/trusted-publishers)

jobs:
release-please:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5

- name: Node.js LTS
uses: actions/setup-node@v5
with:
node-version: 24.x

- name: Run Release Please to update PRs and create releases
uses: googleapis/release-please-action@v4
id: release
with:
token: "${{ secrets.GITHUB_TOKEN }}"

publish-packages:
runs-on: ubuntu-24.04
needs: release-please
if: needs.release-please.outputs.releases_created == 'true'
strategy:
# Sequential publishing ensures dependencies exist on NPM before dependents are published
# Order: logger → fs → builder → server → project (CLI handled separately for shrinkwrap generation)
max-parallel: 1
matrix:
package: [logger, fs, builder, server, project]
steps:
- uses: actions/checkout@v5

- name: Node.js LTS
uses: actions/setup-node@v5
with:
node-version: 24.x

- name: Install dependencies
run: npm ci

- name: Publish ${{ matrix.package }} package
working-directory: packages/${{ matrix.package }}
run: |
echo "🚀 Publishing @ui5/${{ matrix.package }}"

# TODO: Uncomment when ready to publish
# npm publish --access public

publish-cli:
runs-on: ubuntu-24.04
needs: [release-please, publish-packages]
if: needs.release-please.outputs.releases_created == 'true'
steps:
- uses: actions/checkout@v5

- name: Node.js LTS
uses: actions/setup-node@v5
with:
node-version: 24.x

- name: Install dependencies
run: npm ci

- name: Generate npm-shrinkwrap.json
working-directory: packages/cli
run: |
set -e
node ../../internal/shrinkwrap-extractor/cli.js ../../

- name: Publish @ui5/cli package
working-directory: packages/cli
run: |
echo "🚀 Publishing @ui5/cli"
# TODO: Uncomment when ready to publish
# npm publish --access public
3 changes: 2 additions & 1 deletion .github/workflows/reuse-compliance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ jobs:
strategy:
matrix:
package:
- "internal/documentation"
- "internal/shrinkwrap-extractor"
- "packages/builder"
- "packages/cli"
- "packages/documentation"
- "packages/fs"
- "packages/logger"
- "packages/project"
Expand Down
8 changes: 4 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ site/
!packages/**/test/fixtures/**/node_modules

# Documentation
packages/documentation/docs/pages/CLI.md
packages/documentation/.vitepress/dist
packages/documentation/.vitepress/cache
packages/documentation/dist
internal/documentation/docs/pages/CLI.md
internal/documentation/.vitepress/dist
internal/documentation/.vitepress/cache
internal/documentation/dist
8 changes: 8 additions & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"packages/logger": "4.0.2",
"packages/fs": "4.0.2",
"packages/builder": "4.0.11",
"packages/server": "4.0.7",
"packages/project": "4.0.6",
"packages/cli": "4.0.26"
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ UI5 CLI consists of multiple packages managed within this monorepo:
- **packages/logger**: Internal logging module

**Usage Overview** *(arrows indicate dependencies)*
![Module Overview](./packages/documentation/docs/images/Module_overview.png)
![Module Overview](./internal/documentation/docs/images/Module_overview.png)

## Contributing

Expand Down
3 changes: 2 additions & 1 deletion eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ export default [
// to add to common config
ignores: [
"**/site/",
"packages/"
"packages/",
"internal/"
]
},
...eslintCommonConfig, // Load common ESLint config
Expand Down
File renamed without changes.
19 changes: 19 additions & 0 deletions internal/documentation/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import eslintCommonConfig from "../../eslint.common.config.js";

export default [
{
// Ignore VitePress generated files and build output
ignores: [
"dist/",
".vitepress/",
"jsdoc/"
]
},
...eslintCommonConfig, // Load common ESLint config
{
// Documentation-specific overrides
rules: {
"no-console": "off", // Allow console in documentation scripts
}
}
];
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
},
"scripts": {
"start": "vitepress dev --open",
"lint": "eslint .",
"depcheck": "depcheck --ignores @ui5/documentation,vitepress,docdash,jsdoc,open-cli,handlebars,@types/node,@ui5/webcomponents,autoprefixer,cssnano,@ui5/cli,@ui5/builder,@ui5/fs,@ui5/logger,@ui5/project,@ui5/server,@theme/components",
"dev": "vitepress dev",
"build:vitepress": "vitepress build",
"build:assets": "sh -c 'DEST_DIR=${1:-./dist}; cp -r ./docs/images \"$DEST_DIR/images\"' --",
Expand All @@ -43,11 +45,12 @@
"vue": "^3.4.38"
},
"devDependencies": {
"@ui5/builder": "^4.0.11",
"@ui5/fs": "^4.0.2",
"@ui5/logger": "^4.0.2",
"@ui5/project": "^4.0.6",
"@ui5/server": "^4.0.7",
"@ui5/builder": "^4",
"@ui5/cli": "^4",
"@ui5/fs": "^4",
"@ui5/logger": "^4",
"@ui5/project": "^4",
"@ui5/server": "^4",
"docdash": "^2.0.2",
"jsdoc": "^4.0.4",
"open-cli": "^8.0.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ function generateDoc() {
console.error(`Failed to generate docs/pages/CLI.md: ${err.message}.`);
throw err;
}
console.log("Generated packages/documentation/docs/pages/CLI.md");
console.log("Generated internal/documentation/docs/pages/CLI.md");
}

function splitString(temp) {
Expand Down
Loading
Loading