trm-client 7.6.0 → 7.7.0
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/README.md +181 -8
- package/changelog.txt +4 -0
- package/dist/command/implementations/Publish.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,22 +12,195 @@
|
|
|
12
12
|
|
|
13
13
|
[trm-client](https://www.npmjs.com/package/trm-client) is the CLI implementation of the core functionalities of TRM.
|
|
14
14
|
|
|
15
|
-
**TRM (Transport Request Manager)** is a package manager inspired solution built leveraging CTS that simplifies SAP ABAP transports.
|
|
15
|
+
🚚 **TRM (Transport Request Manager)** is a package manager inspired solution built leveraging CTS that simplifies SAP ABAP transports.
|
|
16
|
+
|
|
17
|
+
<p align="center">
|
|
18
|
+
<img src="https://docs.trmregistry.com/logo.png" alt="TRM Logo" />
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
TRM introduces **package-based software delivery** to the SAP ecosystem, bringing with it semantic versioning, dependency management, and automated deployment activities.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# What is TRM?
|
|
26
|
+
|
|
27
|
+
TRM is a software that transforms how custom ABAP developments are published, installed, and maintained across SAP landscapes.
|
|
28
|
+
Inspired by modern package managers, TRM introduces a declarative, version-controlled, and automated way to manage your SAP transports.
|
|
29
|
+
|
|
30
|
+
With TRM, you can:
|
|
31
|
+
|
|
32
|
+
- **Define a manifest** for each ABAP package (similar to `package.json` with Node.js or `pom.xml` with Maven)
|
|
33
|
+
- **Version your products** ([SemVer](https://semver.org/) compliance)
|
|
34
|
+
- **Declare dependencies** (to other TRM packages, SAP standard objects, or customizing data)
|
|
35
|
+
- **Automate post-install activities**, such as client dependant customizing, cache invalidation etc.
|
|
36
|
+
- **Validate system requirements** prior to installation
|
|
37
|
+
- **Compare versions** of the same product across multiple SAP systems (in or outside the same landscape)
|
|
38
|
+
- **Distribute** your product release to the public or to a restricted number of users:
|
|
39
|
+
- Registry (e.g., [trmregistry.com](https://trmregistry.com) or private registry)
|
|
40
|
+
- Local `.trm` files for offline installations
|
|
41
|
+
|
|
42
|
+
## Modern approach for ABAP
|
|
43
|
+
|
|
44
|
+
- Publish ABAP packages from a **central development system**
|
|
45
|
+
- Deliver packages to target systems (outside of the original landscape e.g. customers development system) using a single CLI command (or in a pipeline)
|
|
46
|
+
- Full support for **workbench objects**, **customizing**, and **translations**
|
|
47
|
+
|
|
48
|
+
## Structured Manifest
|
|
49
|
+
|
|
50
|
+
Each package includes a `manifest.json` that declares:
|
|
51
|
+
|
|
52
|
+
- Version and metadata
|
|
53
|
+
- System requirements
|
|
54
|
+
- Dependencies
|
|
55
|
+
- Post-install scripts
|
|
16
56
|
|
|
17
57
|
# Documentation
|
|
18
58
|
|
|
19
|
-
|
|
59
|
+
Full documentation can be seen at [https://docs.trmregistry.com/](https://docs.trmregistry.com).
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
<!-- START OF SETUP.MD -->
|
|
64
|
+
|
|
65
|
+
# Dockerized version (Recommended)
|
|
66
|
+
|
|
67
|
+
If you are using [Docker](https://www.docker.com/), the recommended approach is to use [trm-docker](https://github.com/RegestaItalia/trm-docker).
|
|
68
|
+
|
|
69
|
+
## Download Docker Run Script
|
|
70
|
+
|
|
71
|
+
This script is a small utility used to run TRM inside Docker. After installing the required SAP proprietary tools, the script can be moved into a directory included in your `PATH` so that it can be executed from anywhere.
|
|
72
|
+
|
|
73
|
+
1. Go to the [trm-docker repository](https://github.com/RegestaItalia/trm-docker)
|
|
74
|
+
2. Download the script corresponding to your operating system:
|
|
75
|
+
- **Windows**: download [win.cmd](https://raw.githubusercontent.com/RegestaItalia/trm-docker/refs/heads/main/win.cmd) and rename it to `trm.cmd`
|
|
76
|
+
- **macOS / Linux**: download [macos](https://raw.githubusercontent.com/RegestaItalia/trm-docker/refs/heads/main/macos), rename it to `trm`, and make it executable:
|
|
77
|
+
```bash
|
|
78
|
+
chmod +x trm
|
|
79
|
+
```
|
|
80
|
+
3. In the same directory where you placed the script, create a folder named `init`.
|
|
81
|
+
|
|
82
|
+
This `init` folder will later contain the SAP proprietary files required by TRM.
|
|
83
|
+
|
|
84
|
+
## Download SAPCAR and SAPEXE and Extract Required Files
|
|
85
|
+
|
|
86
|
+
SAPCAR is used to extract `.SAR` archives downloaded from SAP Software Center.
|
|
87
|
+
|
|
88
|
+
### Download SAPCAR
|
|
89
|
+
|
|
90
|
+
1. Log in to the [SAP Software Center](https://me.sap.com/softwarecenter)
|
|
91
|
+
2. Click **SUPPORT PACKAGES & PATCHES**
|
|
92
|
+
3. Expand **By Alphabetical Index (A–Z)** and select **S**
|
|
93
|
+
4. Click **SAPCAR**
|
|
94
|
+
5. Choose the **latest version**
|
|
95
|
+
6. On the download page select your operating system:
|
|
96
|
+
- **WINDOWS ON X64 64BIT**
|
|
97
|
+
- **MACOS ON ARM64BIT**
|
|
98
|
+
- **MACOS X 64-BIT**
|
|
99
|
+
7. Download:
|
|
100
|
+
- **Windows** → latest `.EXE`
|
|
101
|
+
- **macOS** → latest `.ZIP`
|
|
102
|
+
8. If using macOS, extract the archive and make the binary executable:
|
|
103
|
+
```bash
|
|
104
|
+
chmod +x SAPCAR
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Download SAP Kernel Files
|
|
108
|
+
|
|
109
|
+
1. Go back to **SUPPORT PACKAGES & PATCHES**
|
|
110
|
+
2. Expand **By Alphabetical Index (A–Z)** and select **K**
|
|
111
|
+
3. Click **SAP KERNEL 64-BIT**
|
|
112
|
+
4. Choose the **latest version**
|
|
113
|
+
5. On the download page select **LINUX ON X86_64 64BIT**
|
|
114
|
+
6. Download the latest **SAPEXE** archive
|
|
115
|
+
(file name similar to `SAPEXE_###-########.SAR`)
|
|
116
|
+
|
|
117
|
+
### Extract the Required Files
|
|
118
|
+
|
|
119
|
+
1. Place the downloaded `SAPEXE_*.SAR` file in the same directory as `SAPCAR`.
|
|
120
|
+
2. Extract it:
|
|
121
|
+
|
|
122
|
+
**Windows**
|
|
123
|
+
```bash
|
|
124
|
+
SAPCAR -xvf SAPEXE_###-########.SAR
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**macOS / Linux**
|
|
128
|
+
```bash
|
|
129
|
+
./SAPCAR -xvf SAPEXE_###-########.SAR
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
3. After extraction, move the following files into the previously created `init` folder:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
R3trans
|
|
136
|
+
libicudata##.so
|
|
137
|
+
libicui18n##.so
|
|
138
|
+
libicuuc##.so
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
4. *(Optional)* If you want RFC functionality available in TRM, also move the following files into the `init` folder:
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
startrfc
|
|
145
|
+
rfcexec
|
|
146
|
+
libsapnwrfc.so
|
|
147
|
+
libsapucum.so
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Pull docker image
|
|
151
|
+
|
|
152
|
+
Execute this command to pull the latest docker image
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
docker pull --platform=linux/amd64 abaptrm/docker
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Initial Installation via Script
|
|
159
|
+
|
|
160
|
+
Once the `init` folder is populated and the `trm` script is ready, run the script from the directory where it is located.
|
|
161
|
+
|
|
162
|
+
**Windows**
|
|
163
|
+
```bash
|
|
164
|
+
trm
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**macOS / Linux**
|
|
168
|
+
```bash
|
|
169
|
+
./trm
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
The first execution performs the initial setup of the Docker environment.\
|
|
173
|
+
After the installation completes, you may move the script to a directory included in your system `PATH` so it can be executed from anywhere.
|
|
174
|
+
|
|
175
|
+
**Windows**
|
|
176
|
+
```
|
|
177
|
+
C:\Windows\System32
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**macOS / Linux**
|
|
181
|
+
```
|
|
182
|
+
/usr/local/bin
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
After this step, you can simply run:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
trm
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
from any directory.
|
|
192
|
+
|
|
193
|
+
---
|
|
20
194
|
|
|
21
|
-
|
|
22
|
-
- [Publish and install](https://docs.trmregistry.com/#/examples/1_publish_and_install)
|
|
195
|
+
# Install via Npm
|
|
23
196
|
|
|
24
|
-
|
|
197
|
+
With [Node.js and npm](https://nodejs.org/en/download) installed, you can install [trm-client](https://www.npmjs.com/package/trm-client) via npm, as it is distributed as a Node.js package.
|
|
25
198
|
|
|
26
|
-
|
|
199
|
+
## TODO
|
|
27
200
|
|
|
28
|
-
|
|
201
|
+
<!-- END OF SETUP.MD -->
|
|
29
202
|
|
|
30
|
-
|
|
203
|
+
---
|
|
31
204
|
|
|
32
205
|
# Contributing
|
|
33
206
|
|
package/changelog.txt
CHANGED
|
@@ -26,9 +26,9 @@ class Publish extends AbstractCommand_1.AbstractCommand {
|
|
|
26
26
|
this.registerOpts.requiresTrmDependencies = true;
|
|
27
27
|
if (this.name === 'pack') {
|
|
28
28
|
this.command.description(`Export a package to local file.`);
|
|
29
|
+
this.command.argument(`<package>`, `Name of the package`);
|
|
30
|
+
this.command.argument(`<version>`, `Version of the release`);
|
|
29
31
|
this.command.argument(`[filename]`, `Name (or path) of the output file.`);
|
|
30
|
-
this.command.option(`--package <package>`, `Name of the package`);
|
|
31
|
-
this.command.option(`--version <version>`, `Version of the release`);
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
34
|
this.registerOpts.requiresRegistry = true;
|