Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync main branch with Apache main branch #12

Merged
merged 11 commits into from
May 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
22 changes: 22 additions & 0 deletions DISCLAIMER
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Apache KIE (incubating) is an effort undergoing incubation at The Apache Software
Foundation (ASF), sponsored by the name of Apache Incubator. Incubation is
required of all newly accepted projects until a further review indicates that
the infrastructure, communications, and decision making process have stabilized
in a manner consistent with other successful ASF projects. While incubation
status is not necessarily a reflection of the completeness or stability of the
code, it does indicate that the project has yet to be fully endorsed by the ASF.

Some of the incubating project’s releases may not be fully compliant with ASF
policy. For example, releases may have incomplete or un-reviewed licensing
conditions. What follows is a list of known issues the project is currently
aware of (note that this list, by definition, is likely to be incomplete):

* Hibernate, an LGPL project, is being used. Hibernate is in the process of relicensing to ASL v2
* Some files, particularly test files, and those not supporting comments, may be missing the ASF Licensing Header
*

If you are planning to incorporate this work into your product/project, please
be aware that you will need to conduct a thorough licensing review to determine
the overall implications of including this work. For the current status of this
project through the Apache Incubator visit:
https://incubator.apache.org/projects/kie.html
8 changes: 8 additions & 0 deletions NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ This product also includes the following third-party components:

Copyright (C) 2013 GwtBootstrap3

* highlight.js (https://highlightjs.org)

Copyright (C) highlight.js

* Jakarta EE (https://jakarta.ee/)

Copyright (C) Eclipse and contributors
Expand Down Expand Up @@ -81,3 +85,7 @@ This product also includes the following third-party components:
* SnakeYAML (https://bitbucket.org/snakeyaml/snakeyaml)

Copyright (c) 2018, SnakeYAML

* wysihtml (https://github.com/Voog/wysihtml)

Copyright (C) 2012-2016 XING AG, Voog and contributors
104 changes: 72 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,45 +20,85 @@ This repository contains tooling applications and libraries for KIE projects.

## Build from source

> **💡 Nix development environment**: A _devbox_ configuration is provided to automatically setup all the tools above, read more in [here](./NIX_DEV_ENV.md).
#### Step 0: Install the necessary tools

To start building the Apache KIE Tools project, you're going to need:
> **💡 RECOMMENDED**
>
> **Nix development environment**: A _devbox_ configuration is provided to automatically setup all the tools below. Read more in [here](./NIX_DEV_ENV.md).

To build and test all packages of the Apache KIE Tools project, you're going to need:

- Node `18` _(To install, follow these instructions: https://nodejs.org/en/download/package-manager/)_
- pnpm `8.7.0` _(To install, follow these instructions: https://pnpm.io/installation)_
- pnpm `8.7.0` _(To install, follow these instructions: https://pnpm.io/installation#using-npm)_
- Maven `3.9.6`
- Java `17`
- Go `1.21.5` _(To install, follow these instructions: https://go.dev/doc/install)_
- Go `1.21.9` _(To install, follow these instructions: https://go.dev/doc/install)_
- Python `3.12` _(To install, follow these instructions: https://www.python.org/downloads/)_
- Helm `3.13.3` _(To install, follow these instructions: https://helm.sh/docs/intro/install/)_
- Make

> **ℹ️ NOTE**
>
> If you plan on building container images, make sure you have a working Docker setup. Setting `KIE_TOOLS_BUILD__buildContainerImages=true` will also be necessary.

#### Step 1: Bootstrap

Bootstrapping installs the necessary dependencies for each package.

- `pnpm bootstrap` --> Will bootstrap all packages
- `pnpm bootstrap [pnpm-filter]` --> Will bootstrap packages filtered by [`pnpm` filter](https://pnpm.io/filtering)
- > E.g.,
>
> `pnpm bootstrap -F dmn-editor...` bootstraps the `dmn-editor` package and its dependencies.

> **ℹ️ NOTE**
>
> If you plan on running Playwright tests, set the `PLAYWRIGHT_BASE__installDeps` environment variable to `true` before running the command above.
>
> `PLAYWRIGHT_BASE__installDeps=true pnpm bootstrap`.
>
> This will install all Playwright dependencies (such as browsers engines and OS-specific libraries).

#### Step 2: Build

- Dev

- `pnpm -r build:dev`
- Will build all packages for development. Skipping linters, tests, minifiers etc.
- `pnpm [pnpm-filter] build:dev`
- Will build packages filtered by [`pnpm` filter](https://pnpm.io/filtering)
- > E.g.,
>
> `pnpm -F dmn-editor... build:dev` builds the `dmn-editor` package and its dependencies.

- Prod

- `pnpm -r build:prod`
- Will build all packages for production. Optimizers will run, binaries will be produced for multiple architectures etc.
- `pnpm [pnpm-filter] build:prod`
- Will build packages filtered by [`pnpm` filter](https://pnpm.io/filtering)
- > E.g.,
>
> `pnpm -F dmn-editor... build:prod` builds the `dmn-editor` package and its dependencies.

- Changed
- `pnpm -F '...[HEAD]' build:dev`; or
- `pnpm -F '...[HEAD]' build:prod`
- Will build changed and affected packages based on your local changes. Useful for verifying that you didn't break anything.

> **ℹ️ NOTE**
>
> The Apache KIE Tools build is parameterized by several Environment Variables. For an extensive list of these variables, please see the list printed by the `bootstrap` step.
>
> - To enable the examples build: `export KIE_TOOLS_BUILD__buildExamples=true`
> - To enable container images build: `export KIE_TOOLS_BUILD__buildContainerImages=true`
> - To enable E2E tests: `export KIE_TOOLS_BUILD__runEndToEndTests=true`

> **ℹ️ NOTE**
>
> Final artifacts will be in `{packages,examples}/*/dist` directories.

> **ℹ️ NOTE:** Some packages will require that `make` is available as well.

After installing the tools above, you'll need to download the dependencies and link the packages locally. Simply run:

- `pnpm bootstrap`

> **ℹ️ NOTE:** If you plan on running Playwright tests, set the `PLAYWRIGHT_BASE__installDeps` environment variable to `true` before running the command above: `PLAYWRIGHT_BASE__installDeps=true pnpm bootstrap`. This will install all Playwright dependencies (such as browsers engines and OS specific libraries).

To install only the dependencies that are relevant to the package called `[pkg-name]`.

- `pnpm bootstrap -F [pkg-name]...`

> **ℹ️ NOTE:** Here, `...` is actually **necessary**! They're part of a [`pnpm` filter](https://pnpm.io/filtering#--filter-package_name-1).

After dependencies are installed, you'll be able to build. To do so, you'll have two choices - `dev`, or `prod`.

Note that it is recommended that you specify which package you want to build, so replace `[pkg-name]` with the name of the desired package on one of the commands below:

- `pnpm -F [pkg-name]... build:dev` - This is fast, but not as strict. It skips tests, linters, and some type checks. Be prepared for the CI to fail on your PRs.
- `pnpm -F [pkg-name]... build:prod` - The default command to build production-ready packages. Use that to make sure your changes are correct.

> **ℹ️ NOTE:** Here, `...` is actually **necessary**! They're part of a [`pnpm` filter](https://pnpm.io/filtering#--filter-package_name-1).

> **ℹ️ NOTE:** If you want to build _everything_, run `pnpm -r build:dev` or `pnpm -r build:prod`. It's going to take a while, though :)

> **ℹ️ NOTE:** The Apache KIE Tools build is parameterized by several Environment Variables. For an extensive list of these variables, please see the list printed by the `bootstrap` script.

> **ℹ️ NOTE:** Final artifacts will be on `{packages,examples}/*/dist` directories.
---

## Applications

Expand Down
4 changes: 2 additions & 2 deletions devbox.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
"$schema": "https://raw.githubusercontent.com/jetpack-io/devbox/0.10.4/.schema/devbox.schema.json",
"packages": {
"temurin-bin-17": "17.0.9",
"nodejs": "18.19.1",
"nodejs": "18.20.2",
"maven": "3.9.6",
"kubernetes-helm": "3.13.3",
"gnumake": "4.4.1",
"go": "1.21.8",
"go": "1.21.9",
"python": "3.12.2"
},
"env": {
Expand Down
56 changes: 28 additions & 28 deletions devbox.lock
Original file line number Diff line number Diff line change
Expand Up @@ -93,51 +93,51 @@
}
}
},
"[email protected].8": {
"last_modified": "2024-03-22T11:26:23Z",
"resolved": "github:NixOS/nixpkgs/a3ed7406349a9335cb4c2a71369b697cecd9d351#go_1_21",
"[email protected].9": {
"last_modified": "2024-04-19T17:36:04-04:00",
"resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#go_1_21",
"source": "devbox-search",
"version": "1.21.8",
"version": "1.21.9",
"systems": {
"aarch64-darwin": {
"outputs": [
{
"name": "out",
"path": "/nix/store/zla9agv9h4w5byazjx2vhwnsqnk96cb5-go-1.21.8",
"path": "/nix/store/hnqasgvlimar5j7k0kpbbbxbkn8zn1sj-go-1.21.9",
"default": true
}
],
"store_path": "/nix/store/zla9agv9h4w5byazjx2vhwnsqnk96cb5-go-1.21.8"
"store_path": "/nix/store/hnqasgvlimar5j7k0kpbbbxbkn8zn1sj-go-1.21.9"
},
"aarch64-linux": {
"outputs": [
{
"name": "out",
"path": "/nix/store/4mjpm4gxn04drnr2l83js185v66fw6nz-go-1.21.8",
"path": "/nix/store/1j8kg9v5zck8j2vnxng7qg9fd7kmmahm-go-1.21.9",
"default": true
}
],
"store_path": "/nix/store/4mjpm4gxn04drnr2l83js185v66fw6nz-go-1.21.8"
"store_path": "/nix/store/1j8kg9v5zck8j2vnxng7qg9fd7kmmahm-go-1.21.9"
},
"x86_64-darwin": {
"outputs": [
{
"name": "out",
"path": "/nix/store/isc1mgnbrfiqi3blr8glixdq1nmlap0h-go-1.21.8",
"path": "/nix/store/hy3h296ckqcdrm4bq8gxwrrpgfi84lxm-go-1.21.9",
"default": true
}
],
"store_path": "/nix/store/isc1mgnbrfiqi3blr8glixdq1nmlap0h-go-1.21.8"
"store_path": "/nix/store/hy3h296ckqcdrm4bq8gxwrrpgfi84lxm-go-1.21.9"
},
"x86_64-linux": {
"outputs": [
{
"name": "out",
"path": "/nix/store/afv3zwqxyw062vg2j220658jq0g1yadv-go-1.21.8",
"path": "/nix/store/r9qdln83ffwmhjrl20byxxxav645mb5b-go-1.21.9",
"default": true
}
],
"store_path": "/nix/store/afv3zwqxyw062vg2j220658jq0g1yadv-go-1.21.8"
"store_path": "/nix/store/r9qdln83ffwmhjrl20byxxxav645mb5b-go-1.21.9"
}
}
},
Expand Down Expand Up @@ -237,68 +237,68 @@
}
}
},
"nodejs@18.19.1": {
"last_modified": "2024-03-29T03:06:03Z",
"nodejs@18.20.2": {
"last_modified": "2024-04-19T17:36:04-04:00",
"plugin_version": "0.0.2",
"resolved": "github:NixOS/nixpkgs/9b09bde6e3fc9493b6a8b2a5702ac87c66505c64#nodejs_18",
"resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#nodejs_18",
"source": "devbox-search",
"version": "18.19.1",
"version": "18.20.2",
"systems": {
"aarch64-darwin": {
"outputs": [
{
"name": "out",
"path": "/nix/store/r5iax8ijz3fb2318mvk1lqhmgd3ywra0-nodejs-18.19.1",
"path": "/nix/store/c4cy6ivwvyccxb5cgvmibb48cz5kgbxh-nodejs-18.20.2",
"default": true
},
{
"name": "libv8",
"path": "/nix/store/5da4myd75fd2lng1c5y7vgsjx5d0fzps-nodejs-18.19.1-libv8"
"path": "/nix/store/sl20inmjg0p9nbsqcbvrrynbxr0d4z4j-nodejs-18.20.2-libv8"
}
],
"store_path": "/nix/store/r5iax8ijz3fb2318mvk1lqhmgd3ywra0-nodejs-18.19.1"
"store_path": "/nix/store/c4cy6ivwvyccxb5cgvmibb48cz5kgbxh-nodejs-18.20.2"
},
"aarch64-linux": {
"outputs": [
{
"name": "out",
"path": "/nix/store/c77aqmmdz2xrnwx8r00830vrikpvxsgs-nodejs-18.19.1",
"path": "/nix/store/02sxkyivycayrw2qbf0vbln1vv2l75wg-nodejs-18.20.2",
"default": true
},
{
"name": "libv8",
"path": "/nix/store/kbsp3mrmr31fs0qvscik29ls4ph97wvy-nodejs-18.19.1-libv8"
"path": "/nix/store/sl5gvfjjm6f0b818vnggkpadr1mcyfs3-nodejs-18.20.2-libv8"
}
],
"store_path": "/nix/store/c77aqmmdz2xrnwx8r00830vrikpvxsgs-nodejs-18.19.1"
"store_path": "/nix/store/02sxkyivycayrw2qbf0vbln1vv2l75wg-nodejs-18.20.2"
},
"x86_64-darwin": {
"outputs": [
{
"name": "out",
"path": "/nix/store/d797z1ds0cp8djhd4r6g7lw660npalv4-nodejs-18.19.1",
"path": "/nix/store/8j5ld9b8gciy0dfpnjbi98w76v05kia6-nodejs-18.20.2",
"default": true
},
{
"name": "libv8",
"path": "/nix/store/1m4bp8f0frjjrfgrply18hssy1ddpxjp-nodejs-18.19.1-libv8"
"path": "/nix/store/bza5hfp4mb002mp12g33v5arcpyg223s-nodejs-18.20.2-libv8"
}
],
"store_path": "/nix/store/d797z1ds0cp8djhd4r6g7lw660npalv4-nodejs-18.19.1"
"store_path": "/nix/store/8j5ld9b8gciy0dfpnjbi98w76v05kia6-nodejs-18.20.2"
},
"x86_64-linux": {
"outputs": [
{
"name": "out",
"path": "/nix/store/s01jxkf9lr2ajlqxk86065rs77mm96am-nodejs-18.19.1",
"path": "/nix/store/c9wp3qkbfkpx2vylglrmd4w0jwvm216z-nodejs-18.20.2",
"default": true
},
{
"name": "libv8",
"path": "/nix/store/82932mmpy9jyry0f1yn8s31l0vnd9xa2-nodejs-18.19.1-libv8"
"path": "/nix/store/1il1i3j9qch6hg6f7pp1753z95lappzv-nodejs-18.20.2-libv8"
}
],
"store_path": "/nix/store/s01jxkf9lr2ajlqxk86065rs77mm96am-nodejs-18.19.1"
"store_path": "/nix/store/c9wp3qkbfkpx2vylglrmd4w0jwvm216z-nodejs-18.20.2"
}
}
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<!DOCTYPE html>
<html lang="en">
<head>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
<!--

Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.

-->
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<!DOCTYPE html>
<html lang="en">
<head>
Expand Down
Loading
Loading