mirakurun 4.0.0-beta.6 → 4.0.0-beta.7
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.
- package/CHANGELOG.md +96 -1
- package/bin/cli.sh +15 -0
- package/docker/docker-compose.yml +6 -4
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,102 @@
|
|
|
2
2
|
|
|
3
3
|
see [Commit Logs](https://github.com/Chinachu/Mirakurun/commits/master) to check all.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 4.0.0-beta.7 (2025-03-14)
|
|
6
|
+
|
|
7
|
+
**Important Notice**: Mirakurun 4.0.0 includes significant performance improvements, enhanced EPG processing, asynchronous file I/O operations, and new features. As announced in 3.9.0, the experimental Win32 support has been completely removed.
|
|
8
|
+
|
|
9
|
+
### Key Changes
|
|
10
|
+
|
|
11
|
+
- **Node.js**: Updated supported versions: `^18 || ^20 || ^22` (dropped support for Node.js 14 and 16)
|
|
12
|
+
- **Win32**: Completely removed support
|
|
13
|
+
- **UI**: Added UI for channel scanning
|
|
14
|
+
- **Performance**: Eliminated blocking file I/O operations to improve real-time processing
|
|
15
|
+
- **Configuration**: Reduced storage write frequency to minimize interruptions to real-time processing
|
|
16
|
+
- **Docker**: Updated configuration files, improved commands, and added Node.js 22 support
|
|
17
|
+
|
|
18
|
+
### Breaking Changes
|
|
19
|
+
|
|
20
|
+
- **Win32**: Completely removed support
|
|
21
|
+
- **Project Structure**: Changed global installation to be discouraged and removed PM2 support
|
|
22
|
+
|
|
23
|
+
### Server Changes
|
|
24
|
+
|
|
25
|
+
- **config/server**: Added new configuration options:
|
|
26
|
+
- `allowOrigins`: Specify CORS origins
|
|
27
|
+
- `allowPNA`: Allow Private Network Access (default: `true`)
|
|
28
|
+
- `tsplayEndpoint`: Endpoint for TSPlay feature
|
|
29
|
+
- **CORS**: Support for multiple origins, Cross-Origin Resource Policy set to "cross-origin"
|
|
30
|
+
- **Private Network Access**: Added PNA/LNA support, enabling secure access within private networks
|
|
31
|
+
- **Memory Usage**: Increased Node.js `max-semi-space-size` to 64MB to improve memory performance (this may slight increase memory usage)
|
|
32
|
+
- **config/channels/scan**: Added service type support, improved scanning capabilities
|
|
33
|
+
- Added `skipCh` parameter to skip specific channels
|
|
34
|
+
- Added asynchronous channel scanning with progress tracking
|
|
35
|
+
- Added DELETE endpoint for canceling scans
|
|
36
|
+
- **UI**:
|
|
37
|
+
- Changed API documentation from Swagger UI to ReDoc
|
|
38
|
+
- Added new UI components and service type filtering options
|
|
39
|
+
- Added channel, service ID, and User-Agent columns to tuner manager
|
|
40
|
+
- Added UI for channel scanning with visual progress tracking
|
|
41
|
+
- **TSPlay**: Added experimental TSPlay feature
|
|
42
|
+
|
|
43
|
+
### Docker Changes
|
|
44
|
+
|
|
45
|
+
- **Base Image**: Updated from `node:18.15.0-buster-slim` to `node:22.14.0-bookworm-slim`
|
|
46
|
+
- **Build Process**: Changed from `npm install` to `npm ci` for more reliable builds
|
|
47
|
+
- **Configuration**:
|
|
48
|
+
- Made Dockerfile and image tag configurable via environment variables (`DOCKERFILE`, `MIRAKURUN_IMAGE_TAG`)
|
|
49
|
+
- Added `tmpfs` mount for `/tmp` to improve I/O performance
|
|
50
|
+
- **docker-compose.yml**:
|
|
51
|
+
- Simplified volume binding syntax
|
|
52
|
+
- Added configuration guidance for users not using card readers or DVB devices
|
|
53
|
+
- Added detailed comments for hostname settings
|
|
54
|
+
- **Commands**: Added new npm scripts for developers:
|
|
55
|
+
- `docker:run-setup`: Run container in setup mode
|
|
56
|
+
- `docker:down`: Stop and remove container
|
|
57
|
+
- `docker:logs`: Display container logs
|
|
58
|
+
- `docker:bash`: Run Bash shell in container
|
|
59
|
+
|
|
60
|
+
### Other Changes
|
|
61
|
+
|
|
62
|
+
- **File I/O Processing**:
|
|
63
|
+
- Replaced synchronous file I/O operations with asynchronous ones to improve real-time processing performance
|
|
64
|
+
- Replaced synchronous methods from the `fs` module with asynchronous methods from `fs/promises`
|
|
65
|
+
- Introduced queues for config file I/O operations to prevent concurrent access issues
|
|
66
|
+
- Reduced storage write frequency (extended program info save interval from 10 seconds to 30 seconds)
|
|
67
|
+
|
|
68
|
+
- **Performance Optimization**:
|
|
69
|
+
- Implemented asynchronous JSON processing to prevent interruptions to real-time stream processing
|
|
70
|
+
- Introduced `yieldable-json` package for asynchronous JSON parsing
|
|
71
|
+
- Increased Node.js `max-semi-space-size` to 64MB to improve garbage collection efficiency
|
|
72
|
+
|
|
73
|
+
- **Packages and Frameworks**:
|
|
74
|
+
- Updated major dependencies:
|
|
75
|
+
- express: `4.17.3` → `4.21.2`
|
|
76
|
+
- glob: `7.2.3` → `11.0.1`
|
|
77
|
+
- semver: `7.3.5` → `7.7.1`
|
|
78
|
+
- rfdc: `1.3.0` → `1.4.1`
|
|
79
|
+
- React: `17.0.2` → `^18.3.1`
|
|
80
|
+
- React DOM: `17.0.2` → `^18.3.1`
|
|
81
|
+
- TypeScript: `4.7` → `5.7`
|
|
82
|
+
- Added new dependencies:
|
|
83
|
+
- redoc: `2.4.0` (as an alternative to Swagger UI)
|
|
84
|
+
- redoc-try: `1.4.10`
|
|
85
|
+
- yieldable-json: `^2.1.0`
|
|
86
|
+
- Removed dependencies:
|
|
87
|
+
- swagger-ui-dist (due to change in API documentation tool to ReDoc)
|
|
88
|
+
|
|
89
|
+
- **Project Structure**:
|
|
90
|
+
- Removed global installation (`preferGlobal`) flag
|
|
91
|
+
- Removed PM2 support, added dummy CLI script for migration guidance
|
|
92
|
+
- Completely removed Win32-specific scripts and support
|
|
93
|
+
- Improved TypeScript configuration and consistency
|
|
94
|
+
- Updated Azure Pipelines configuration (updated to Ubuntu 22.04 base)
|
|
95
|
+
|
|
96
|
+
- **Channels**:
|
|
97
|
+
- Updated default sample channel configuration
|
|
98
|
+
- Significantly improved and extended channel scanning functionality
|
|
99
|
+
|
|
100
|
+
## 3.9.0-rc.4 (2023-04-09)
|
|
6
101
|
|
|
7
102
|
Performance improvements, fixes for memory leaks and bugs related to EPG processing, etc.
|
|
8
103
|
|
package/bin/cli.sh
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
cat <<EOF
|
|
4
|
+
|
|
5
|
+
CLI / PM2 support has been removed on @4.0.0.
|
|
6
|
+
|
|
7
|
+
Solutions:
|
|
8
|
+
- use Docker (recommended)
|
|
9
|
+
- https://github.com/Chinachu/Mirakurun/blob/release/4.0.0/doc/Platforms.md#docker-on-linux
|
|
10
|
+
- use PM2 manually (legacy)
|
|
11
|
+
- https://github.com/Chinachu/Mirakurun/blob/release/4.0.0/doc/Platforms.md#linux-w-pm2-legacy
|
|
12
|
+
- downgrade to @3.9.0-rc.4
|
|
13
|
+
- sudo npm install mirakurun@3.9.0-rc.4 -g --unsafe-perm --foreground-scripts --production
|
|
14
|
+
|
|
15
|
+
EOF
|
|
@@ -2,11 +2,13 @@ services:
|
|
|
2
2
|
mirakurun:
|
|
3
3
|
build:
|
|
4
4
|
context: ../
|
|
5
|
-
dockerfile: docker
|
|
6
|
-
#
|
|
7
|
-
#
|
|
5
|
+
dockerfile: docker/${DOCKERFILE:-Dockerfile}
|
|
6
|
+
# `latest` can be changed to fix the version
|
|
7
|
+
# `latest` の部分を編集するとバージョンを固定できます
|
|
8
|
+
# `MIRAKURUN_IMAGE_TAG` environment variable can also be used
|
|
9
|
+
# `MIRAKURUN_IMAGE_TAG` 環境変数でも固定できます
|
|
8
10
|
# available tags: https://hub.docker.com/r/chinachu/mirakurun/tags
|
|
9
|
-
image: chinachu/mirakurun
|
|
11
|
+
image: chinachu/mirakurun:${MIRAKURUN_IMAGE_TAG:-latest}
|
|
10
12
|
container_name: mirakurun
|
|
11
13
|
cap_add:
|
|
12
14
|
- SYS_ADMIN
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mirakurun",
|
|
3
3
|
"description": "DVR Tuner Server for Japanese TV.",
|
|
4
|
-
"version": "4.0.0-beta.
|
|
4
|
+
"version": "4.0.0-beta.7",
|
|
5
5
|
"homepage": "https://github.com/Chinachu/Mirakurun",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"mirakurun",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"license": "Apache-2.0",
|
|
32
32
|
"bin": {
|
|
33
|
+
"mirakurun": "bin/cli.sh",
|
|
33
34
|
"mirakurun-epgdump": "bin/epgdump.js"
|
|
34
35
|
},
|
|
35
36
|
"main": "lib/client.js",
|