Skip to content

Conversation

@d3xter666
Copy link
Member

@d3xter666 d3xter666 commented Oct 31, 2025

JIRA: CPOUI5FOUNDATION-1142
JIRA: CPOUI5FOUNDATION-1164

This change modifies several things, so the whole workflow can be complete:

  • Creates a Release Please process
    • Adds release please configuration and pipeline
    • Releases the all of the package at once with a single PR
    • Generates an npm-shrinkwrap.json for the CLI package before being released (out of monorepo's root package-lock.json)
  • Introduce a new package shrinkwrap-extractor to deal with @ui5/cli's npm-shrinkwrap.json generation in a monorepository environment
  • Clear separation between "public" and "internal" packages
  • Adjusts pipelines to deal with the new structure:
    • github-ci.yml
    • reuse-compliance.yml
  • Adjust deploy-vitepress-docs.yaml so that it will generate API documentation out of published NPM packages and not from the packages within the monorepo
  • Align package.json scripts, so that they can be easily (re)used within the monorepo structure.

@d3xter666 d3xter666 marked this pull request as draft October 31, 2025 13:28
@d3xter666 d3xter666 marked this pull request as ready for review October 31, 2025 13:50
@d3xter666 d3xter666 requested a review from a team October 31, 2025 13:50
@d3xter666
Copy link
Member Author

d3xter666 commented Oct 31, 2025

Please find a sample result of this flow in here: https://github.com/d3xter666/ui5-tooling/pull/139

Note: Please ignore the title, it has been updated later in the config

@matz3
Copy link
Member

matz3 commented Nov 5, 2025

Please see my comment here: https://github.com/d3xter666/ui5-tooling/pull/139#issuecomment-3473211965

@d3xter666 d3xter666 requested review from RandomByte and matz3 November 6, 2025 11:44
@d3xter666 d3xter666 requested review from a team and matz3 November 6, 2025 13:54
@RandomByte
Copy link
Member

For the shrinkwrap tool, I was wondering how we best integrate it in the monorepo. Maybe similar to the documentation as a dedicated package? Not sure whether lib/ is the best choice, since it's not really that important for the UI5/cli project.

@d3xter666 d3xter666 requested a review from matz3 November 12, 2025 10:08
Copy link
Member

@matz3 matz3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My points have been addressed, but the comment by @RandomByte might still be open?

@d3xter666
Copy link
Member Author

For the shrinkwrap tool, I was wondering how we best integrate it in the monorepo. Maybe similar to the documentation as a dedicated package? Not sure whether lib/ is the best choice, since it's not really that important for the UI5/cli project.

I don't have strong oppinion on how to handle this one. Here's the reasoning why it felt to me the right way to go:

  • The documentation package is "self contained" (except maybe for the CLI.md generation) and felt naturally to do it in a separarte package
  • The shrinkwrap tool has the @ui5/cli package "dependency" and the package-lock.json from the monorepo. So, I was wondering whether it's best to be part of any of those "packages". And as we want to ship the @ui5/cli as clean as possible, the natural choice was to go in the lib/ folder of the monorepo.

I'm curious to hear your oppinion on that.
If we decide now we'll pave the way for constant future structure of the monorepo

@RandomByte
Copy link
Member

My understanding is that the shrinkwrap tool does not have a "dependency" to @ui5/cli. In fact, you can use it to extract the dependencies for any package from any given package-lock.json. We could even publish it as a dedicated tool, since other mono-repositories face similar problems.

Personally, I find it unconventional to put a helper tool into the root lib/ directory. In the UI5 linter project for example, lib/ contains the transpiled code of the linter: https://www.npmjs.com/package/@ui5/linter?activeTab=code

I would vote for putting it into a package similar to documentation.

@coveralls
Copy link

Coverage Status

coverage: 94.885% (+0.01%) from 94.871%
when pulling 0ef9aae on feat-rp-single-pr
into ce96601 on main.

2 similar comments
@coveralls
Copy link

Coverage Status

coverage: 94.885% (+0.01%) from 94.871%
when pulling 0ef9aae on feat-rp-single-pr
into ce96601 on main.

@coveralls
Copy link

Coverage Status

coverage: 94.885% (+0.01%) from 94.871%
when pulling 0ef9aae on feat-rp-single-pr
into ce96601 on main.

@coveralls
Copy link

coveralls commented Nov 13, 2025

Coverage Status

coverage: 94.975% (+0.2%) from 94.811%
when pulling b03b5f6 on feat-rp-single-pr
into 78d312b on main.

@coveralls
Copy link

Coverage Status

coverage: 94.885% (+0.01%) from 94.871%
when pulling 0ef9aae on feat-rp-single-pr
into ce96601 on main.

1 similar comment
@coveralls
Copy link

Coverage Status

coverage: 94.885% (+0.01%) from 94.871%
when pulling 0ef9aae on feat-rp-single-pr
into ce96601 on main.

@d3xter666
Copy link
Member Author

  • The shrinkwrap tool has the @ui5/cli package "dependency" and the package-lock.json from the monorepo. So, I was wondering whether it's best to be part of any of those "packages". And as we want to ship the @ui5/cli as clean as possible, the natural choice was to go in the lib/ folder of the monorepo.

Now, the shrinkwrap-extractor is a package within the packages folder. All the pipelines are adjusted, so that tests and integrations of the shrinkwrap-extractor are also executed

@d3xter666 d3xter666 force-pushed the feat-rp-single-pr branch 2 times, most recently from 4a6092e to ba0fdcf Compare November 13, 2025 12:41
@d3xter666 d3xter666 marked this pull request as ready for review November 18, 2025 12:11
Copy link
Member

@matz3 matz3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM otherwise

# CLI is handled separately to update shrinkwrap
# Order of packages in the matrix does matter and is important!
# release-please updates the package.json dependencies with ones that do not exist yet on NPM
# Publish in the correct order is important, so that dependencies are available and resolved properly!
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... and this line are basically saying the same, isn't it?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have reworded it. Thanks!

d3xter666

This comment was marked as resolved.

@d3xter666 d3xter666 requested a review from matz3 November 18, 2025 14:13
Copy link
Member

@RandomByte RandomByte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@d3xter666 d3xter666 merged commit 5f6f20c into main Nov 18, 2025
24 checks passed
@d3xter666 d3xter666 deleted the feat-rp-single-pr branch November 18, 2025 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants