aspera-cli 4.25.0.pre → 4.25.0.pre2
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +20 -17
- data/CONTRIBUTING.md +74 -44
- data/README.md +173 -118
- data/lib/aspera/agent/direct.rb +14 -12
- data/lib/aspera/agent/transferd.rb +4 -4
- data/lib/aspera/ascp/installation.rb +2 -2
- data/lib/aspera/ascp/management.rb +9 -5
- data/lib/aspera/assert.rb +3 -3
- data/lib/aspera/cli/extended_value.rb +10 -2
- data/lib/aspera/cli/manager.rb +6 -6
- data/lib/aspera/cli/plugins/aoc.rb +26 -39
- data/lib/aspera/cli/plugins/base.rb +5 -0
- data/lib/aspera/cli/plugins/config.rb +16 -12
- data/lib/aspera/cli/plugins/console.rb +2 -1
- data/lib/aspera/cli/plugins/faspex.rb +2 -1
- data/lib/aspera/cli/plugins/faspex5.rb +2 -1
- data/lib/aspera/cli/plugins/faspio.rb +2 -1
- data/lib/aspera/cli/plugins/httpgw.rb +2 -1
- data/lib/aspera/cli/plugins/node.rb +1 -0
- data/lib/aspera/cli/plugins/orchestrator.rb +2 -1
- data/lib/aspera/cli/plugins/server.rb +3 -2
- data/lib/aspera/cli/plugins/shares.rb +59 -20
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/coverage.rb +5 -1
- data/lib/aspera/environment.rb +69 -89
- data/lib/aspera/faspex_postproc.rb +1 -1
- data/lib/aspera/keychain/macos_security.rb +2 -2
- data/lib/aspera/log.rb +2 -1
- data/lib/aspera/preview/terminal.rb +95 -29
- data/lib/aspera/preview/utils.rb +6 -5
- data/lib/aspera/sync/operations.rb +3 -3
- data/lib/aspera/transfer/spec.schema.yaml +1 -1
- data.tar.gz.sig +0 -0
- metadata +16 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7e017349a111f8385f64794641aed296960fd8cd69bcfcf62110b99c102425c6
|
|
4
|
+
data.tar.gz: 15fb922208d24921bfbdd352d26b6085addf93231044318e942c7f0df67e4eea
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a6ed834dce6f0991bf9c1a2c2c16b9c8d8224961b4c6cf453a3873d1fba1378bf3a1e825351f7b4dc349ac1e9cc325a0b47c2bd25dc9e6c23ecc8cd140ba0e09
|
|
7
|
+
data.tar.gz: cd07513558920ae564bbae2da2441d1173a05700ed2dbaa9a6edbd8b17fffe0eec79b48dbe76b63438d97f870bc1113b247f65c861000f0f967dcca1a290a37c
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -10,7 +10,8 @@ Released: [Place date of release here]
|
|
|
10
10
|
|
|
11
11
|
* **global**: All `Hash` and `Array` options are now cumulative (merged). Value `@none:` resets to empty value.
|
|
12
12
|
* **global**: Improved error diagnostic during evaluation of extended value.
|
|
13
|
-
* **global**: New
|
|
13
|
+
* **global**: New extended value modifier: `@:` (empty modifier) to evaluate remaining arguments as `Hash` or `Array`.
|
|
14
|
+
* **global**: New extended value modifier: `@stdin:chomp` reads stdin and removes `\n`.
|
|
14
15
|
* `config`: New option: `parser` allows definition of default parser for extended values when expecting a `Hash` or `Array` type.
|
|
15
16
|
* `orchestrator`: Commands now takes option `query`.
|
|
16
17
|
|
|
@@ -21,13 +22,15 @@ Released: [Place date of release here]
|
|
|
21
22
|
|
|
22
23
|
### Breaking Changes
|
|
23
24
|
|
|
25
|
+
* `aoc`: Option `package_folder` is now a Hash instead of formatted String.
|
|
24
26
|
* `server`: By default, SSH option `use_agent` is now `false`.
|
|
25
27
|
* `config`: Removed option `use_product`, replaced with prefix `product:` of option `ascp_path`.
|
|
26
28
|
* `faspex5`: Removed deprecated (4.18) command in `admin`: `resource`, use resource name as command directly in `admin`.
|
|
27
|
-
* `preview`:
|
|
28
|
-
*
|
|
29
|
+
* `preview`: Replaced gem `mimemagic` with `marcel`.
|
|
30
|
+
* **global**: Extended value modifier `@stdbin:` is replaced with `@stdin:bin`.
|
|
31
|
+
* Build system uses now `rake` instead of `make` for easier portability on Windows.
|
|
32
|
+
* PDF manual removed from repo, it is now generated for [releases](https://github.com/IBM/aspera-cli/releases) only.
|
|
29
33
|
* HTML manual is not generated anymore.
|
|
30
|
-
* Build system uses now `rake` instead of `make` for easier portability with Windows.
|
|
31
34
|
|
|
32
35
|
## 4.24.2
|
|
33
36
|
|
|
@@ -36,7 +39,7 @@ Released: 2025-10-24
|
|
|
36
39
|
### New Features
|
|
37
40
|
|
|
38
41
|
* `direct`: Capability to send management messages to `ascp` on running sessions. e.g. change target rate.
|
|
39
|
-
* `config`: Added command: `sync spec` to get sync parameters documentation. Also added to manual.
|
|
42
|
+
* `config`: Added command: `sync spec` to get sync parameters' documentation. Also added to manual.
|
|
40
43
|
|
|
41
44
|
### Issues Fixed
|
|
42
45
|
|
|
@@ -309,17 +312,17 @@ Released: 2024-07-13
|
|
|
309
312
|
* `config`: Command `remote_certificate` now takes a subcommand.
|
|
310
313
|
* **global**: Moved a few internal classes in new/renamed modules
|
|
311
314
|
* **global**: Deprecated pseudo transfer specification parameters starting with `EX_`:
|
|
312
|
-
* `EX_ssh_key_paths
|
|
313
|
-
* `EX_http_proxy_url
|
|
314
|
-
* `EX_http_transfer_jpeg
|
|
315
|
-
* `EX_no_read
|
|
316
|
-
* `EX_no_write
|
|
317
|
-
* `EX_file_list
|
|
318
|
-
* `EX_file_pair_list
|
|
319
|
-
* `EX_ascp_args
|
|
320
|
-
* `EX_at_rest_password
|
|
321
|
-
* `EX_proxy_password
|
|
322
|
-
* `EX_license_text
|
|
315
|
+
* `EX_ssh_key_paths`: Use spec `ssh_private_key` or option `transfer_info={"ascp_args":["-i","..."]}`
|
|
316
|
+
* `EX_http_proxy_url`: Use option `transfer_info={"ascp_args":["-x","..."]}`
|
|
317
|
+
* `EX_http_transfer_jpeg`: Use option `transfer_info={"ascp_args":["-j","1"]}`
|
|
318
|
+
* `EX_no_read`: Use option `transfer_info={"ascp_args":["--no-read"]}`
|
|
319
|
+
* `EX_no_write`: Use option `transfer_info={"ascp_args":["--no-write"]}`
|
|
320
|
+
* `EX_file_list`: Use `ascli` file list feature or option `transfer_info={"ascp_args":["--file-list","..."]}`
|
|
321
|
+
* `EX_file_pair_list`: Use `ascli` file list feature or option `transfer_info={"ascp_args":["--file-pair-list","..."]}`
|
|
322
|
+
* `EX_ascp_args`: Use option `transfer_info={"ascp_args":[...]}`
|
|
323
|
+
* `EX_at_rest_password`: Use spec parameter `content_protection_password`
|
|
324
|
+
* `EX_proxy_password`: Set password in spec parameter `proxy` or use env var `ASPERA_PROXY_PASS`.
|
|
325
|
+
* `EX_license_text`: Use env var `ASPERA_SCP_LICENSE`.
|
|
323
326
|
|
|
324
327
|
## 4.16.0
|
|
325
328
|
|
|
@@ -1053,7 +1056,7 @@ Released: 2021-02-03
|
|
|
1053
1056
|
|
|
1054
1057
|
### Breaking Changes
|
|
1055
1058
|
|
|
1056
|
-
* **global**:
|
|
1059
|
+
* **global**: `@stdin` is now `@stdin:`
|
|
1057
1060
|
|
|
1058
1061
|
## 0.9.10
|
|
1059
1062
|
|
data/CONTRIBUTING.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Reporting Issues and Vulnerabilities
|
|
4
4
|
|
|
5
|
-
If you encounter a problem or vulnerability, please report it
|
|
5
|
+
If you encounter a problem or a security vulnerability, please report it on [GitHub Issues](https://github.com/IBM/aspera-cli/issues).
|
|
6
6
|
|
|
7
7
|
Before submitting a new issue:
|
|
8
8
|
|
|
@@ -16,8 +16,8 @@ To help us assist you efficiently, include the following in your report:
|
|
|
16
16
|
ascli version
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
- Confirmation that you
|
|
20
|
-
-
|
|
19
|
+
- Confirmation that you are using the latest version (update it if needed).
|
|
20
|
+
- Your Ruby version information:
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
23
|
ruby -v
|
|
@@ -29,7 +29,7 @@ We welcome contributions to improve the `aspera-cli` project!
|
|
|
29
29
|
|
|
30
30
|
### Getting Started
|
|
31
31
|
|
|
32
|
-
Clone the repository and navigate to the project's
|
|
32
|
+
Clone the repository and navigate to the project's root directory:
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
35
|
git clone https://github.com/IBM/aspera-cli.git
|
|
@@ -50,7 +50,7 @@ To submit a contribution:
|
|
|
50
50
|
|
|
51
51
|
1. **Implement** your feature or bug fix.
|
|
52
52
|
|
|
53
|
-
1. **Write tests** to ensure your changes are robust and
|
|
53
|
+
1. **Write tests** to ensure your changes are robust and prevent regressions.
|
|
54
54
|
|
|
55
55
|
1. Run `rubocop` to ensure your code follows the Ruby style guide.
|
|
56
56
|
|
|
@@ -67,25 +67,25 @@ The overall architecture of `aspera-cli` is modular and extensible.
|
|
|
67
67
|
|
|
68
68
|

|
|
69
69
|
|
|
70
|
-
Structure Highlights
|
|
70
|
+
### Structure Highlights
|
|
71
71
|
|
|
72
72
|
- Entry Point:
|
|
73
73
|
|
|
74
|
-
`lib/aspera/cli/main.rb
|
|
74
|
+
`lib/aspera/cli/main.rb`, CLI startup logic.
|
|
75
75
|
|
|
76
76
|
- Plugins:
|
|
77
77
|
|
|
78
|
-
Located in `lib/aspera/cli/plugins
|
|
78
|
+
Located in `lib/aspera/cli/plugins`; plugins extend CLI functionality and encapsulate specific features.
|
|
79
79
|
|
|
80
80
|
- Transfer Agents:
|
|
81
81
|
|
|
82
|
-
Found in `lib/aspera/agent`, these handle data
|
|
82
|
+
Found in `lib/aspera/agent`, these handle data transfer operations.
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
Class diagrams are provided in <docs/uml.png>
|
|
85
85
|
|
|
86
|
-
## Ruby
|
|
86
|
+
## Ruby Environment
|
|
87
87
|
|
|
88
|
-
`aspera-cli` is
|
|
88
|
+
`aspera-cli` is written in Ruby.
|
|
89
89
|
You can install Ruby using any method you prefer (e.g., `rbenv`, `rvm`, system package manager).
|
|
90
90
|
|
|
91
91
|
To start with a clean state and remove all installed gems:
|
|
@@ -97,30 +97,28 @@ bundle exec rake tools:clean_gems
|
|
|
97
97
|
> [!TIP]
|
|
98
98
|
> This is especially useful before testing across different Ruby versions or preparing for a release.
|
|
99
99
|
|
|
100
|
-
##
|
|
100
|
+
## Toolchain
|
|
101
101
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
Build system uses Ruby's `rake`.
|
|
102
|
+
The build system uses Ruby's `rake`.
|
|
105
103
|
|
|
106
104
|
### Environment
|
|
107
105
|
|
|
108
|
-
A few macros
|
|
106
|
+
A few macros and environment variables control certain aspects of the build:
|
|
109
107
|
|
|
110
|
-
| Environment variable | Description
|
|
111
|
-
|
|
112
|
-
| `ASPERA_CLI_TEST_CONF_FILE` | Path to configuration file with secrets for tests.
|
|
113
|
-
| `ASPERA_CLI_DOC_CHECK_LINKS`| Check links still exist during doc generation.
|
|
114
|
-
| `LOG_LEVEL` | Change log level in `rake` tasks.
|
|
115
|
-
| `ENABLE_COVERAGE` |
|
|
116
|
-
| `SIGNING_KEY` | Path to signing key to build
|
|
117
|
-
| `GEM_VERSION` | Override gem version for builds.
|
|
108
|
+
| Environment variable | Description |
|
|
109
|
+
|-----------------------------|-----------------------------------------------------|
|
|
110
|
+
| `ASPERA_CLI_TEST_CONF_FILE` | Path to configuration file with secrets for tests. |
|
|
111
|
+
| `ASPERA_CLI_DOC_CHECK_LINKS`| Check links still exist during doc generation. |
|
|
112
|
+
| `LOG_LEVEL` | Change log level in `rake` tasks. |
|
|
113
|
+
| `ENABLE_COVERAGE` | Enable test coverage analysis when set. |
|
|
114
|
+
| `SIGNING_KEY` | Path to the signing key used to build the gem file. |
|
|
115
|
+
| `GEM_VERSION` | Override gem version for builds. |
|
|
118
116
|
|
|
119
|
-
|
|
117
|
+
These can be set either as environment variables or directly on the `rake` command line.
|
|
120
118
|
|
|
121
119
|
> [!NOTE]
|
|
122
|
-
>
|
|
123
|
-
> Others are
|
|
120
|
+
> Environment variables `ASPERA_CLI_*` are typically set in the user’s shell profile for development.
|
|
121
|
+
> Others are intended for one‑time use on the command line.
|
|
124
122
|
|
|
125
123
|
To use the CLI directly from the development environment, add this to your shell profile (adapt the real path):
|
|
126
124
|
|
|
@@ -134,9 +132,9 @@ export RUBYLIB=$dev_ascli/lib:$RUBYLIB
|
|
|
134
132
|
|
|
135
133
|
Documentation is generated with `pandoc` and `LaTeX`.
|
|
136
134
|
|
|
137
|
-
IBM
|
|
135
|
+
The IBM `Plex` font is used; for installation instructions, see [IBM Plex](https://www.ibm.com/plex/).
|
|
138
136
|
|
|
139
|
-
On macOS to install `lualatex` and all packages:
|
|
137
|
+
On macOS, to install `lualatex` and all packages:
|
|
140
138
|
|
|
141
139
|
```bash
|
|
142
140
|
brew install texlive
|
|
@@ -149,9 +147,9 @@ tlmgr update --self
|
|
|
149
147
|
tlmgr install fvextra selnolig lualatex-math
|
|
150
148
|
```
|
|
151
149
|
|
|
152
|
-
To check
|
|
150
|
+
To check URLs during documentation generation, set the environment variable: `ASPERA_CLI_DOC_CHECK_LINKS=1`.
|
|
153
151
|
|
|
154
|
-
To debug
|
|
152
|
+
To debug documentation generation, set the environment variable: `ASPERA_CLI_DOC_DEBUG=debug`.
|
|
155
153
|
|
|
156
154
|
## Test Environment
|
|
157
155
|
|
|
@@ -172,7 +170,7 @@ If you don't want to install optional gems:
|
|
|
172
170
|
bundle config set without optional
|
|
173
171
|
```
|
|
174
172
|
|
|
175
|
-
|
|
173
|
+
To build a beta version:
|
|
176
174
|
|
|
177
175
|
```bash
|
|
178
176
|
export GEM_VERSION=$(env -u GEM_VERSION rake tools:version).$(date +%Y%m%d%H%M)
|
|
@@ -180,9 +178,9 @@ export GEM_VERSION=$(env -u GEM_VERSION rake tools:version).$(date +%Y%m%d%H%M)
|
|
|
180
178
|
|
|
181
179
|
### Signed gem
|
|
182
180
|
|
|
183
|
-
A private key is required to generate a signed
|
|
184
|
-
Its path must be set using
|
|
185
|
-
The gem is signed with the public certificate found in `certs` and the private key
|
|
181
|
+
A private key is required to generate a signed gem.
|
|
182
|
+
Its path must be set using environment variable `SIGNING_KEY`.
|
|
183
|
+
The gem is signed with the public certificate found in `certs` and the private key specified by `SIGNING_KEY` (kept secret by the maintainer).
|
|
186
184
|
|
|
187
185
|
```bash
|
|
188
186
|
bundle exec rake build SIGNING_KEY=/path/to/vault/gem-private_key.pem
|
|
@@ -198,7 +196,7 @@ Update with:
|
|
|
198
196
|
bundle exec rake tools:grpc
|
|
199
197
|
```
|
|
200
198
|
|
|
201
|
-
It downloads the latest proto file and then compiles it.
|
|
199
|
+
It downloads the latest `proto` file and then compiles it.
|
|
202
200
|
|
|
203
201
|
## Container image build
|
|
204
202
|
|
|
@@ -214,16 +212,48 @@ To list operations:
|
|
|
214
212
|
bundle exec rake -T ^binary:
|
|
215
213
|
```
|
|
216
214
|
|
|
217
|
-
##
|
|
215
|
+
## Release
|
|
216
|
+
|
|
217
|
+
### Checklist before a new release
|
|
218
|
+
|
|
219
|
+
When preparing for a new release, do the following:
|
|
220
|
+
|
|
221
|
+
- Run the test suite:
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
bundle exec rake test:run
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
- Set beta version (to use the gem file built):
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
export GEM_VERSION=$(env -u GEM_VERSION rake tools:version).$(date +%Y%m%d%H%M)
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
- Verify that the container builds successfully (using the beta version):
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
bundle exec rake container:build
|
|
237
|
+
bundle exec rake container:test
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Version Release Process
|
|
241
|
+
|
|
242
|
+
Once the development branch is ready for release:
|
|
243
|
+
|
|
244
|
+
- Decide on the version number
|
|
245
|
+
|
|
246
|
+
- Update the version in `lib/aspera/cli/version.rb`
|
|
218
247
|
|
|
219
|
-
|
|
248
|
+
- Execute `bundle exec rake release` (see `.github/workflows/deploy.yml`)
|
|
220
249
|
|
|
221
|
-
-
|
|
250
|
+
- It builds the `.gem` file in the `pkg` folder.
|
|
251
|
+
- Then runs `gem push`.
|
|
222
252
|
|
|
223
|
-
## Long
|
|
253
|
+
## Long‑Term Implementation and Delivery Improvements
|
|
224
254
|
|
|
225
|
-
-
|
|
255
|
+
- Replace custom REST and OAuth classes with standard Ruby gems:
|
|
226
256
|
- <https://github.com/rest-client/rest-client>
|
|
227
257
|
- <https://github.com/oauth-xx/oauth2>
|
|
228
|
-
-
|
|
229
|
-
-
|
|
258
|
+
- Use the `thor` gem <http://whatisthor.com/> (or other standard Ruby CLI manager)
|
|
259
|
+
- Look at <https://github.com/phusion/traveling-ruby>
|