@24i/smartapps-bigscreen-rnv-build-engine 0.0.2-alpha.1364 → 0.0.2-alpha.1366

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +148 -2
  2. package/package.json +3 -8
package/README.md CHANGED
@@ -5,5 +5,151 @@ hide_title: true
5
5
  sidebar_label: Rnv Build Engine
6
6
  ---
7
7
 
8
- ## How To Add Platform Into Build Engine
9
- > TBD
8
+ # rnv-build-engine
9
+
10
+ > To **start a new project** with usage of our build process,
11
+ > please use [SmartApps BIGscreen Template repository](https://github.com/24i/smartapps-bigscreen-template),
12
+ > it uses this package and has prepared other required configuration files as well.
13
+
14
+ ## Content
15
+ 1. [About the package](#1-about-the-package)
16
+ 2. [Supported platforms](#2-supported-platforms)
17
+ 3. [Supported build schemes](#3-supported-build-schemes)
18
+ 4. [Package content](#4-package-content)
19
+ 5. [How to set up new project with SmartApps BIGscreen build engine](#5-how-to-set-up-new-project-with-smartapps-bigscreen-build-engine)
20
+
21
+ ---
22
+
23
+ ## 1. About the package
24
+ > Package for `SmartApps BIGscreen` projects, which needs **automated build and deploy process**.
25
+
26
+ Uses [ReNative](https://github.com/pavjacko/renative) -
27
+ this package contains (not only) custom build engine for `ReNative` which is used instead of core ReNative engine
28
+ to fulfill the needs of SmartApps BIGscreen projects.
29
+
30
+ it
31
+ - **builds** applications for requested platforms
32
+ - **deploys** the built applications to `AWS S3` (or to server configured to host `HbbTV` applications)
33
+ - **releases** new versions to `AppCenter.me`, `GitHub`
34
+ - sends **Slack notifications** for `release candidate` and `release` builds
35
+ - supports `Sentry.io` runtime **error logging**
36
+
37
+ ## 2. Supported platforms
38
+
39
+ | *Platform* | *Vendor* | *id* | *Build file extension* | *Note* |
40
+ | :--------- | :------: | :------: | :--------------------: | :------------------------------: |
41
+ | **Entone** | Amino | `entone` | `.zip` | set-top boxes |
42
+ | **HbbTV** | N/A | `hbbtv` | `.zip` | |
43
+ | **Saphi** | Philips | `saphi` | `.zip` | |
44
+ | **Tizen** | Samsung | `tizen` | `.wgt` | |
45
+ | **WebTV** | N/A | `webtv` | `.zip` | for previewing builds in browser |
46
+ | **webOS** | LG | `webos` | `.ipk` | |
47
+
48
+ ## 3. Supported build schemes
49
+
50
+ | *Scheme id* | *Build Environment* | *Usage* |
51
+ | :----------------- | :-----------------: | ------------------------------------------------------------- |
52
+ | **debug** | development | Local builds for debugging purposes |
53
+ | **dev** | production | |
54
+ | **dev:latest** | production | By CI on merge any pull request into `development` branch |
55
+ | **rc** | production | |
56
+ | **rc:latest** | production | By CI on merge any pull request into `rc/v?.?.?` branch |
57
+ | **release** | production | |
58
+ | **release:latest** | production | By CI on merge any pull request into `master` branch |
59
+ | **release:dist** | production | By CI on merge pull request into `master` branch |
60
+
61
+ ### 3.1 Schemes with `:latest` postfix
62
+ Scheme names with `:latest` postfix **always deploys into the same location**.
63
+ In other words, app url is the same for each deployed build.
64
+
65
+ ### 3.2 `release:dist` scheme
66
+ The difference from [schemes with `:latest` postfix](#) is that new builds are not deployed to the same remote folder all the time.
67
+ Instead, a new folder is created for each new app version - **builds are versioned and archived**.
68
+
69
+ ## 4. Package content
70
+
71
+ ### 4.1 npm dependenncies
72
+ All npm dependencies are listed in [package.json](../package.json) file.
73
+
74
+ However, not all dependencies are directly bundled into a final npm package,
75
+ but their will be installed alongside with this package into the project's `node_modules` folder.
76
+
77
+ Because of this, those npm dependencies don't have to be listed in custom project's `package.lock` file
78
+ and may be updated only here - from one place.
79
+ With this approach, each individual project will use the same version of those dependencies,
80
+ which simplify the future dependencies update and reduce the amount of time spent with those updates.
81
+
82
+ #### 4.1.1 ReNative npm dependencies
83
+ Firstly, the package contains main ReNative npm packages, namely:
84
+
85
+ - `renative`
86
+ - `renative-template-blank`
87
+ - `rnv`
88
+
89
+ #### 4.1.2 npm dependencies related to custom ReNative build engine
90
+ Following dependencies are used in source code for custom build engine for ReNative:
91
+
92
+ - `@24i/smartapps-bigscreen-icon` *(generating SVG icons)*
93
+ - `@24i/smartapps-bigscreen-sdk-installer` *(installing SDKs for Tizen or webOS)*
94
+ - `glob` *(searching output builds)*
95
+ - `node-ssh` *(connection to HbbTV server)*
96
+ - `svgo` *(generating SVG icons)*
97
+
98
+ #### 4.1.3 npm dependencies related to webpack
99
+ The package has also dependencies which are related to build the applications with webpack bundler, namely:
100
+
101
+ - `css-hot-loader`
102
+ - `css-loader`
103
+ - `file-loader`
104
+ - `filemanager-webpack-plugin`
105
+ - `fork-ts-checker-webpack-plugin`
106
+ - `html-webpack-harddisk-plugin`
107
+ - `html-webpack-plugin`
108
+ - `mini-css-extract-plugin`
109
+ - `sass`
110
+ - `sass-loader`
111
+ - `source-map-loader`
112
+ - `ts-loader`
113
+ - `webpack`
114
+ - `webpack-cli`
115
+ - `webpack-dev-server`
116
+
117
+ #### 4.1.4 other npm dependencies
118
+ There are also dependencies on packages which may be listed in each custom project's dependencies.
119
+ However, as they are listed in this package, those npm dependencies don't need to be listed in custom project's `package.lock` file
120
+ and may be updated only here - from one place.
121
+
122
+ - `core-js` *(polyfills collection)*
123
+ - `coveralls` *(detecting and reporting code coverage)*
124
+ - `raf` *(`requestAnimationFrame` polyfill)*
125
+ - `regenerator-runtime` *(runtime support for compiled/transpiled async functions.)*
126
+
127
+ ### 4.2 Custom build engine for ReNative
128
+ The package also contains our custom ReNative engine implementation.
129
+ It allows us to extend the number of platforms we build for
130
+ (core rnv engine supports only `Tizen` and `webOS` platforms for our purposes).
131
+
132
+ Using the custom engine allows us to change the build steps defined in core ReNative engine.
133
+ Also, custom engine is prepared for deploying the built applications to `AWS S3` and to server specially configured for `HbbTV` builds.
134
+ Our custom build engine is also configured to deploy releases to `AppCenter.me`, `GitHub` and `Sentry`.
135
+
136
+ - added support for more platforms (see [supported platforms](#2-supported-platforms))
137
+ - overwritten rnv tasks (such us `build`, `deploy`)
138
+ - added automatic installation of `Tizen` and `webOS` SDKs before building the packages
139
+ - deploy to `AWS S3`, `Appcenter.me`, `GitHub`, `Sentry`
140
+ - added support for `Slack` notifications for `release canndidate` and `release` builds
141
+
142
+ Inside `src/task/` folder, there is a source code for **ReNative tasks** which override core ReNative tasks.
143
+ Basically, it's copy-pasted code from core ReNative engine, with changed in many cases only a few lines and rewritten into Typescript.
144
+
145
+ Inside `templates/platforms/` folder, there are **webpack configs** for each platform.
146
+ If any platform needs some **platform-specific files**, there are located also in that location.
147
+
148
+ ## 5. How to set up new project with SmartApps BIGscreen build engine
149
+ There are a few things which are not included in the package and needs to be added manually.
150
+ For example `renative.json` config file and `appConfigs` folder (both related to ReNative)
151
+ and `.travis.yml`config file (related to Travis CI).
152
+
153
+ > To **start a new project** with usage of our build process,
154
+ > please use [SmartApps BIGscreen Template repository](https://github.com/24i/smartapps-bigscreen-template),
155
+ > it uses this package and contains other required configuration files as well.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@24i/smartapps-bigscreen-rnv-build-engine",
3
- "version": "0.0.2-alpha.1364+1467ae2d",
3
+ "version": "0.0.2-alpha.1366+25e40a21",
4
4
  "description": "Package with build engine for SmartApps BigScreen projects...",
5
5
  "main": "dist/src/index.js",
6
6
  "scripts": {
@@ -20,7 +20,6 @@
20
20
  "dependencies": {
21
21
  "@24i/smartapps-bigscreen-icon": "0.8.3",
22
22
  "@24i/smartapps-bigscreen-sdk-installer": "0.8.3",
23
- "better-opn": "3.0.0",
24
23
  "core-js": "3.15.2",
25
24
  "coveralls": "3.1.1",
26
25
  "css-hot-loader": "1.4.4",
@@ -31,7 +30,6 @@
31
30
  "glob": "7.1.7",
32
31
  "html-webpack-harddisk-plugin": "1.0.2",
33
32
  "html-webpack-plugin": "4.5.2",
34
- "inquirer": "8.1.2",
35
33
  "mini-css-extract-plugin": "1.6.2",
36
34
  "node-ssh": "11.1.1",
37
35
  "raf": "3.4.1",
@@ -41,7 +39,6 @@
41
39
  "rnv": "0.32.0-alpha.43",
42
40
  "sass": "1.35.1",
43
41
  "sass-loader": "10.1.1",
44
- "semver": "7.3.5",
45
42
  "source-map-loader": "1.1.3",
46
43
  "svgo": "1.3.2",
47
44
  "ts-loader": "8.1.0",
@@ -50,19 +47,17 @@
50
47
  "webpack-dev-server": "3.11.2"
51
48
  },
52
49
  "devDependencies": {
53
- "@types/inquirer": "7.3.3",
54
50
  "@types/mini-css-extract-plugin": "1.2.2",
55
51
  "@types/node": "16.3.1",
56
- "@types/semver": "7.3.7",
57
52
  "@types/ssh2": "0.5.47",
58
53
  "@types/tapable": "1.0.6",
59
54
  "@types/webpack": "4.41.26"
60
55
  },
61
56
  "peerDependencies": {
62
- "@24i/smartapps-bigscreen-device": ">=0.8.4-alpha.1359"
57
+ "@24i/smartapps-bigscreen-device": ">=0.8.4"
63
58
  },
64
59
  "keywords": [],
65
60
  "author": "24i",
66
61
  "license": "ISC",
67
- "gitHead": "1467ae2d1ae4267ddf00088e3a651d42ce4ee322"
62
+ "gitHead": "25e40a21137d54788847047bc53705d4914a8ae1"
68
63
  }