Skip to content

Commit

Permalink
[INTERNAL] Setup main branch to UI5 Tooling V4 setup
Browse files Browse the repository at this point in the history
JIRA: CPOUI5FOUNDATION-775
  • Loading branch information
flovogt committed Jan 31, 2024
1 parent f5a6bc5 commit ed9c4e6
Show file tree
Hide file tree
Showing 17 changed files with 123 additions and 44 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
name: Build and Deploy
runs-on: ubuntu-latest
env:
MIKE_VERSION: v3
MIKE_VERSION: v4
MIKE_ALIAS: next
DOCKER_IMAGE: ui5-tooling/mkdocs-material
GIT_COMMITTER_NAME: "OpenUI5 Bot"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/security-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
branch: ["v2"] # List of branches to run the security audit uppon
branch: ["v3"] # List of branches to run the security audit uppon

steps:
- name: Checkout '${{ matrix.branch }}' branch
Expand Down
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
![UI5 logo](./docs/images/UI5_logo_wide.png)

# UI5 Tooling

> An open and modular toolchain to develop state-of-the-art applications based on the [UI5](https://ui5.sap.com) framework.
[![REUSE status](https://api.reuse.software/badge/github.com/SAP/ui5-tooling)](https://api.reuse.software/info/github.com/SAP/ui5-tooling)
[![OpenUI5 Community Slack (#tooling channel)](https://img.shields.io/badge/slack-join-44cc11.svg)](https://ui5-slack-invite.cfapps.eu10.hana.ondemand.com)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)


> [UI5 Tooling v4](https://sap.github.io/ui5-tooling/v4) is in development and next version 🛠️
>
> [UI5 Tooling v3](https://sap.github.io/ui5-tooling/v3) is the latest and stable version 🎉
>
> [UI5 Tooling v2](https://sap.github.io/ui5-tooling/v2) has been deprecated 🚫
>
> Please migrate your projects to [UI5 Tooling v3](https://sap.github.io/ui5-tooling/v3/updates/migrate-v3/)!


## Resources

- [Documentation](https://sap.github.io/ui5-tooling/v3/)
- [API Reference](https://sap.github.io/ui5-tooling/v3/api/)
- [CLI Documentation](https://sap.github.io/ui5-tooling/v3/pages/CLI/)
Expand All @@ -27,6 +28,7 @@
- [Roadmap](https://github.com/SAP/ui5-tooling/issues/701)

## Modules

UI5 Tooling consists of multiple modules. Each one is managed in a separate repository:

- [ui5-cli](https://github.com/SAP/ui5-cli): UI5 Command Line Interface, utilizing all of the following modules
Expand All @@ -40,7 +42,9 @@ UI5 Tooling consists of multiple modules. Each one is managed in a separate repo
![Module Overview](./docs/images/Module_overview.png)

## Contributing

Please check our [Contribution Guidelines](https://github.com/SAP/ui5-tooling/blob/main/CONTRIBUTING.md).

## Support

Please follow our [Contribution Guidelines](https://github.com/SAP/ui5-tooling/blob/main/CONTRIBUTING.md#report-an-issue) on how to report an issue. Or chat with us in the [`#tooling`](https://openui5.slack.com/archives/C0A7QFN6B) channel of the [OpenUI5 Community Slack](https://ui5-slack-invite.cfapps.eu10.hana.ondemand.com). For public Q&A, use the [`ui5-tooling` tag on Stack Overflow](https://stackoverflow.com/questions/tagged/ui5-tooling).
9 changes: 8 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@

An open and modular toolchain to develop state-of-the-art applications based on the [UI5](https://ui5.sap.com) framework.

!!! tip "In Development"
**UI5 Tooling V4 is still in development 🎉**

Please use UI5 Tooling V3 by installing the latest version via: `npm i --save-dev @ui5/cli@latest`

And find the announcement blog post here: **[SAP Community: UI5 Tooling 3.0](https://blogs.sap.com/2023/02/10/ui5-tooling-3.0/)**

[**Get Started**](./pages/GettingStarted.md){: .md-button .md-button--primary .sap-icon-initiative }

## Main Features
Expand Down Expand Up @@ -87,7 +94,7 @@ info ProjectBuilder Executing cleanup tasks...
Most UI5 Tooling modules provide JavaScript APIs for direct consumption in other Node.js projects.
This allows you to rely on UI5 Tooling for UI5-specific build functionality and project handling, while creating your own tools to perfectly match the needs of your project.

All available APIs are documented in the [UI5 Tooling API Reference](https://sap.github.io/ui5-tooling/v3/api/index.html).
All available APIs are documented in the [UI5 Tooling API Reference](https://sap.github.io/ui5-tooling/v4/api/index.html).

=== "ESM"

Expand Down
6 changes: 3 additions & 3 deletions docs/pages/Builder.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Based on a project's type, the UI5 Builder defines a series of build steps to ex

For every type there is a set of default tasks. You can disable single tasks using the `--exclude-task` [CLI parameter](./CLI.md#ui5-build), and you can include tasks using the `--include-task` parameter.

[**API Reference**](https://sap.github.io/ui5-tooling/v3/api/index.html){: .md-button .sap-icon-initiative }
[**API Reference**](https://sap.github.io/ui5-tooling/v4/api/index.html){: .md-button .sap-icon-initiative }

## Tasks
Tasks are specific build steps to be executed during build phase.
Expand All @@ -17,7 +17,7 @@ A project can add custom tasks to the build by using the [Custom Tasks Extensibi

### Standard Tasks

All available standard tasks are documented [in the API reference](https://sap.github.io/ui5-tooling/v3/api/index.html). Search for `@ui5/builder/tasks/` to filter the API reference for all available tasks. The list below offers the actual order of their execution:
All available standard tasks are documented [in the API reference](https://sap.github.io/ui5-tooling/v4/api/index.html). Search for `@ui5/builder/tasks/` to filter the API reference for all available tasks. The list below offers the actual order of their execution:

| Task | Type `application` | Type `library` | Type `theme-library` |
| ------------------------- | :----------------: | :------------: | :------------------: |
Expand Down Expand Up @@ -89,7 +89,7 @@ Processors work with provided resources. They contain the actual build step logi
Processors can be implemented generically. The string replacer is an example for that.
Since string replacement is a common build step, it can be useful in different contexts, e.g. code, version, date, and copyright replacement. A concrete replacement operation could be achieved by passing a custom configuration to the processor. This way, multiple tasks can make use of the same processor to achieve their build step.

To get a list of all available processors, please visit [the API reference](https://sap.github.io/ui5-tooling/v3/api/index.html) and search for `@ui5/builder/processors/`.
To get a list of all available processors, please visit [the API reference](https://sap.github.io/ui5-tooling/v4/api/index.html) and search for `@ui5/builder/processors/`.

## Legacy Bundle Tooling (lbt)
JavaScript port of the "legacy" Maven/Java based bundle tooling.
6 changes: 3 additions & 3 deletions docs/pages/CodeAnalysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ For example, top-level code is always executed. Flow-control statements in JavaS

Any dependencies found that - according to these rules - are always executed, are collected as eager (or standard) dependencies. Dependencies that are found on a code path that depends on certain conditions are collected as conditional dependencies.

The bundling implemented by UI5 Tooling can either follow only eager dependencies (`resolve`: `true`) or additionally conditional dependencies (`resolveConditional`). For more information, see [Custom Bundling](https://sap.github.io/ui5-tooling/v3/pages/Configuration/#custom-bundling).
The bundling implemented by UI5 Tooling can either follow only eager dependencies (`resolve`: `true`) or additionally conditional dependencies (`resolveConditional`). For more information, see [Custom Bundling](https://sap.github.io/ui5-tooling/v4/pages/Configuration/#custom-bundling).

When a dependency in one of the mentioned APIs is not a "simple literal" but an expression, the corresponding module is marked as "having dynamic dependencies". This marker is currently not further evaluated by the tooling.

Expand Down Expand Up @@ -128,9 +128,9 @@ Note: Currently only the usage via the global `sap.ui.getCore().initLibrary` is

The UI5 Tooling offers a JSDoc build, which is enhanced by UI5-specific JSDoc features.

An UI5 SDK can be built locally. To get more insight into the local UI5 SDK build setup, have a look at our [Developer's Guide](https://github.com/SAP/openui5/blob/master/docs/developing.md#building-the-openui5-sdk-demo-kit).
An UI5 SDK can be built locally. To get more insight into the local UI5 SDK build setup, have a look at our [Developer's Guide](https://github.com/SAP/openui5/blob/-/docs/developing.md#building-the-openui5-sdk-demo-kit).

Currently, the resources needed for a UI5 SDK build are stored in [openui5](https://github.com/SAP/openui5/tree/master/lib/jsdoc) and in [ui5-builder](https://github.com/SAP/ui5-builder/blob/main/lib/processors/jsdoc). This double maintenance is needed because these files are not part of the `sap.ui.core` library artefact, so building JSDoc for any library has no access to the needed resources. It's therefore necessary to have these resources also available in the *ui5-builder*. This might change in the future.
Currently, the resources needed for a UI5 SDK build are stored in [openui5](https://github.com/SAP/openui5/tree/-/lib/jsdoc) and in [ui5-builder](https://github.com/SAP/ui5-builder/blob/main/lib/processors/jsdoc). This double maintenance is needed because these files are not part of the `sap.ui.core` library artefact, so building JSDoc for any library has no access to the needed resources. It's therefore necessary to have these resources also available in the *ui5-builder*. This might change in the future.

The following artefacts contribute to the JSDoc build:

Expand Down
4 changes: 2 additions & 2 deletions docs/pages/Configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -694,7 +694,7 @@ A list of bundle definitions. A `bundleDefinition` contains of the following opt

- `name`: The module bundle name
- `defaultFileTypes`: List of default file types which should be included in the bundle. Defaults to: `.js`, `.control.xml`, `.fragment.html`, `.fragment.json`, `.fragment.xml`, `.view.html`, `.view.json` and `.view.xml`
- `sections`: A list of module bundle definition sections. Each section specifies an embedding technology (see [API-Reference](https://sap.github.io/ui5-tooling/v3/api/module-@ui5_builder_processors_bundlers_moduleBundler.html#~ModuleBundleDefinition)) and lists the resources that should be in- or excluded from the section.
- `sections`: A list of module bundle definition sections. Each section specifies an embedding technology (see [API-Reference](https://sap.github.io/ui5-tooling/v4/api/module-@ui5_builder_processors_bundlers_moduleBundler.html#~ModuleBundleDefinition)) and lists the resources that should be in- or excluded from the section.
- `mode`: The embedding technology (e.g. provided, raw, preload, bundleInfo, depCache)
- `filters`: List of modules declared as glob patterns (resource name patterns) that are in- or excluded. Similarly to the use of a single `*` or double `**` asterisk, a pattern ending with a slash `/` denotes an arbitrary number of characters or folder names. Excludes have to be marked with a leading exclamation mark `!`. The order of filters is relevant; a later inclusion overrides an earlier exclusion, and vice versa.
- `resolve`: Setting resolve to `true` will also include all (transitive) dependencies of the files
Expand All @@ -712,7 +712,7 @@ A list of bundle definitions. A `bundleDefinition` contains of the following opt
- `addTryCatchRestartWrapper`: By default set to `false`. If set to `true`, bootable module bundles gets wrapped with a try/catch to filter "Restart" errors
- `usePredefineCalls`: If set to `true`, `sap.ui.predefine` is used for UI5 modules
- `numberOfParts`: By default set to `1`. The number of parts into which a module bundle should be splitted
- `sourceMap`: By default set to `true`. Adds source map support to the bundle. Available since UI5 Tooling `v3.0.0`
- `sourceMap`: By default set to `true`. Adds source map support to the bundle. Available since UI5 Tooling `v4.0.0`

## Specification Versions
A project must define a specification version by setting the `specVersion` property. UI5 Tooling uses this information to detect whether the currently installed version is compatible to a project's configuration.
Expand Down
16 changes: 8 additions & 8 deletions docs/pages/FileSystem.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

The [UI5 FS](https://github.com/SAP/ui5-fs) provides a UI5-specific file system abstraction.

[**API Reference**](https://sap.github.io/ui5-tooling/v3/api/){: .md-button .sap-icon-initiative }
[**API Reference**](https://sap.github.io/ui5-tooling/v4/api/){: .md-button .sap-icon-initiative }

## Overview

The virtual file system "UI5 FS" offers an abstraction layer from the physical file system. Among other features, it can combine a set of scattered file locations into a well-defined virtual structure.

### Resource

A [Resource](https://sap.github.io/ui5-tooling/v3/api/@ui5_fs_Resource.html) basically represents a file. Besides providing access to the file content, it also carries metadata like the **virtual path** of the Resource.
A [Resource](https://sap.github.io/ui5-tooling/v4/api/@ui5_fs_Resource.html) basically represents a file. Besides providing access to the file content, it also carries metadata like the **virtual path** of the Resource.

Resources are typically created and stored in [Adapters](#adapters). Once read from a physical file system, they are typically kept in memory for further processing in other modules.

Expand All @@ -20,9 +20,9 @@ This ensures a high build performance, as physical read and write access for a h

Adapters abstract access to different resource locations.

The [Memory Adapter](https://sap.github.io/ui5-tooling/v3/api/@ui5_fs_adapters_Memory.html) represents a virtual file system which maintains respective [Resources](#resource) inside a virtual data structure.
The [Memory Adapter](https://sap.github.io/ui5-tooling/v4/api/@ui5_fs_adapters_Memory.html) represents a virtual file system which maintains respective [Resources](#resource) inside a virtual data structure.

The [File System Adapter](https://sap.github.io/ui5-tooling/v3/api/@ui5_fs_adapters_FileSystem.html), on the other hand, has direct access to the physical file system. It maps a "virtual base path" to a given physical path.
The [File System Adapter](https://sap.github.io/ui5-tooling/v4/api/@ui5_fs_adapters_FileSystem.html), on the other hand, has direct access to the physical file system. It maps a "virtual base path" to a given physical path.

Both adapters provide APIs to retrieve and persist [Resources](#resource), namely

Expand All @@ -37,7 +37,7 @@ Reader collections allow grouped access to multiple adapters, which might even b

They implement the same API for **retrieving** resources as adapters (`byPath` and `byGlob`). Multiple flavors exist:

* [ReaderCollection](https://sap.github.io/ui5-tooling/v3/api/@ui5_fs_ReaderCollection.html): The most basic collection. Allows parallel read access to multiple readers (i.e. adapters or collections)
* [ReaderCollectionPrioritized](https://sap.github.io/ui5-tooling/v3/api/@ui5_fs_ReaderCollectionPrioritized.html): Contains a list of readers which are searched in-order. This allows one reader to "overlay" resources of another
* [DuplexCollection](https://sap.github.io/ui5-tooling/v3/api/@ui5_fs_DuplexCollection.html): Contains a single reader and a single "writer". It therefore also implements the Adapter API for **persisting** resources (`write()`). When retrieving resources, the writer is prioritized over the reader
* [WriterCollection](https://sap.github.io/ui5-tooling/v3/api/@ui5_fs_WriterCollection.html): Contains a set of writers and a mapping for each of them. When writing a resource, the writer is chosen based on the resource's virtual path.
* [ReaderCollection](https://sap.github.io/ui5-tooling/v4/api/@ui5_fs_ReaderCollection.html): The most basic collection. Allows parallel read access to multiple readers (i.e. adapters or collections)
* [ReaderCollectionPrioritized](https://sap.github.io/ui5-tooling/v4/api/@ui5_fs_ReaderCollectionPrioritized.html): Contains a list of readers which are searched in-order. This allows one reader to "overlay" resources of another
* [DuplexCollection](https://sap.github.io/ui5-tooling/v4/api/@ui5_fs_DuplexCollection.html): Contains a single reader and a single "writer". It therefore also implements the Adapter API for **persisting** resources (`write()`). When retrieving resources, the writer is prioritized over the reader
* [WriterCollection](https://sap.github.io/ui5-tooling/v4/api/@ui5_fs_WriterCollection.html): Contains a set of writers and a mapping for each of them. When writing a resource, the writer is chosen based on the resource's virtual path.
2 changes: 1 addition & 1 deletion docs/pages/Overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,4 +124,4 @@ This requires an SSL certificate. You are guided through the automatic generatio
## Integration in Other Tools
One of the key features of the UI5 Tooling is its modularization. Single parts of the tooling can easily be integrated in other `Node.js`-based tools and frameworks like [Grunt](https://gruntjs.com/) or [Gulp](https://gulpjs.com/).

All JavaScript APIs available for direct consumption are listed [here](https://sap.github.io/ui5-tooling/v3/api/index.html). However, for standard UI5 development, the [UI5 CLI](./CLI.md) should always be the first choice.
All JavaScript APIs available for direct consumption are listed [here](https://sap.github.io/ui5-tooling/v4/api/index.html). However, for standard UI5 development, the [UI5 CLI](./CLI.md) should always be the first choice.
2 changes: 1 addition & 1 deletion docs/pages/Project.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,4 @@ In the table below you can find the available combinations of project type & out
^3^ Modules have explicit path mappings configured and no namespace concept.


[**API Reference**](https://sap.github.io/ui5-tooling/v3/api/@ui5_project_build_ProjectBuilder.html){: .md-button .sap-icon-initiative }
[**API Reference**](https://sap.github.io/ui5-tooling/v4/api/@ui5_project_build_ProjectBuilder.html){: .md-button .sap-icon-initiative }
2 changes: 1 addition & 1 deletion docs/pages/Server.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The [UI5 Server](https://github.com/SAP/ui5-server) module provides server capabilities for local development of UI5 projects.

[**API Reference**](https://sap.github.io/ui5-tooling/v3/api/module-@ui5_server.html){: .md-button .sap-icon-initiative }
[**API Reference**](https://sap.github.io/ui5-tooling/v4/api/module-@ui5_server.html){: .md-button .sap-icon-initiative }

## Standard Middleware

Expand Down
Loading

0 comments on commit ed9c4e6

Please sign in to comment.