aspera-cli 4.25.0.pre2 → 4.25.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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +3 -0
  4. data/CONTRIBUTING.md +60 -18
  5. data/README.md +164 -133
  6. data/lib/aspera/agent/factory.rb +9 -6
  7. data/lib/aspera/agent/transferd.rb +4 -4
  8. data/lib/aspera/api/aoc.rb +33 -24
  9. data/lib/aspera/api/ats.rb +1 -0
  10. data/lib/aspera/api/faspex.rb +11 -5
  11. data/lib/aspera/ascmd.rb +1 -1
  12. data/lib/aspera/ascp/installation.rb +5 -5
  13. data/lib/aspera/cli/formatter.rb +15 -62
  14. data/lib/aspera/cli/manager.rb +8 -42
  15. data/lib/aspera/cli/plugins/aoc.rb +48 -30
  16. data/lib/aspera/cli/plugins/ats.rb +30 -36
  17. data/lib/aspera/cli/plugins/base.rb +6 -6
  18. data/lib/aspera/cli/plugins/config.rb +5 -4
  19. data/lib/aspera/cli/plugins/faspex.rb +5 -3
  20. data/lib/aspera/cli/plugins/faspex5.rb +10 -8
  21. data/lib/aspera/cli/plugins/faspio.rb +3 -1
  22. data/lib/aspera/cli/plugins/node.rb +9 -6
  23. data/lib/aspera/cli/plugins/oauth.rb +12 -11
  24. data/lib/aspera/cli/plugins/preview.rb +2 -2
  25. data/lib/aspera/cli/transfer_agent.rb +1 -2
  26. data/lib/aspera/cli/version.rb +1 -1
  27. data/lib/aspera/command_line_builder.rb +5 -5
  28. data/lib/aspera/dot_container.rb +108 -0
  29. data/lib/aspera/id_generator.rb +7 -10
  30. data/lib/aspera/oauth/base.rb +25 -38
  31. data/lib/aspera/oauth/factory.rb +5 -6
  32. data/lib/aspera/oauth/generic.rb +1 -1
  33. data/lib/aspera/oauth/jwt.rb +1 -1
  34. data/lib/aspera/oauth/url_json.rb +4 -3
  35. data/lib/aspera/oauth/web.rb +2 -2
  36. data/lib/aspera/preview/file_types.rb +1 -1
  37. data/lib/aspera/rest.rb +5 -2
  38. data/lib/aspera/ssh.rb +6 -5
  39. data/lib/aspera/sync/conf.schema.yaml +2 -2
  40. data/lib/aspera/transfer/parameters.rb +6 -6
  41. data/lib/aspera/transfer/spec.schema.yaml +3 -3
  42. data/lib/aspera/transfer/spec_doc.rb +11 -21
  43. data/lib/aspera/uri_reader.rb +17 -3
  44. data.tar.gz.sig +0 -0
  45. metadata +2 -1
  46. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7e017349a111f8385f64794641aed296960fd8cd69bcfcf62110b99c102425c6
4
- data.tar.gz: 15fb922208d24921bfbdd352d26b6085addf93231044318e942c7f0df67e4eea
3
+ metadata.gz: 9e812ee0dbd658feeaea8c37d4095df243f57a656b669e99460ca791585121a6
4
+ data.tar.gz: a52360171fc63925f01cd7562453484d04e795221c02c36b78e29c99ed25276e
5
5
  SHA512:
6
- metadata.gz: a6ed834dce6f0991bf9c1a2c2c16b9c8d8224961b4c6cf453a3873d1fba1378bf3a1e825351f7b4dc349ac1e9cc325a0b47c2bd25dc9e6c23ecc8cd140ba0e09
7
- data.tar.gz: cd07513558920ae564bbae2da2441d1173a05700ed2dbaa9a6edbd8b17fffe0eec79b48dbe76b63438d97f870bc1113b247f65c861000f0f967dcca1a290a37c
6
+ metadata.gz: 70cb5577853b1c8c0a86e85dc55e0e43d9f0c2d18a58f9bf560375c67a76a04e1c06395321789ba8edbcec05c68e7642df2fb9ed5133a8c333992c8254e42dee
7
+ data.tar.gz: 0d25857a31812782d7f831b5f9b4e95962621d4a712dbcbfa9be3889359dc163ca5914a57d7fe5b543b7010d7051865400adc47c590e33ae6f56b7131183e0a6
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -14,6 +14,7 @@ Released: [Place date of release here]
14
14
  * **global**: New extended value modifier: `@stdin:chomp` reads stdin and removes `\n`.
15
15
  * `config`: New option: `parser` allows definition of default parser for extended values when expecting a `Hash` or `Array` type.
16
16
  * `orchestrator`: Commands now takes option `query`.
17
+ * `aoc`: The admin command for `node` now support nodes owned by admin, so that secret is no more necessary.
17
18
 
18
19
  ### Issues Fixed
19
20
 
@@ -23,8 +24,10 @@ Released: [Place date of release here]
23
24
  ### Breaking Changes
24
25
 
25
26
  * `aoc`: Option `package_folder` is now a Hash instead of formatted String.
27
+ * `aoc`: Deprecated option `scope`. It is selected from the command directly. For `bearer_token --scope=admin:all`, now use: `admin bearer_token`.
26
28
  * `server`: By default, SSH option `use_agent` is now `false`.
27
29
  * `config`: Removed option `use_product`, replaced with prefix `product:` of option `ascp_path`.
30
+ * `config`: Secret lookup is no more automatic, activate setting option `secret` to `PRESET`.
28
31
  * `faspex5`: Removed deprecated (4.18) command in `admin`: `resource`, use resource name as command directly in `admin`.
29
32
  * `preview`: Replaced gem `mimemagic` with `marcel`.
30
33
  * **global**: Extended value modifier `@stdbin:` is replaced with `@stdin:bin`.
data/CONTRIBUTING.md CHANGED
@@ -107,7 +107,7 @@ A few macros and environment variables control certain aspects of the build:
107
107
 
108
108
  | Environment variable | Description |
109
109
  |-----------------------------|-----------------------------------------------------|
110
- | `ASPERA_CLI_TEST_CONF_FILE` | Path to configuration file with secrets for tests. |
110
+ | `ASPERA_CLI_TEST_CONF_URL` | URL for configuration file with secrets for tests. |
111
111
  | `ASPERA_CLI_DOC_CHECK_LINKS`| Check links still exist during doc generation. |
112
112
  | `LOG_LEVEL` | Change log level in `rake` tasks. |
113
113
  | `ENABLE_COVERAGE` | Enable test coverage analysis when set. |
@@ -118,7 +118,7 @@ These can be set either as environment variables or directly on the `rake` comma
118
118
 
119
119
  > [!NOTE]
120
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.
121
+ > Others are intended for use on the command line.
122
122
 
123
123
  To use the CLI directly from the development environment, add this to your shell profile (adapt the real path):
124
124
 
@@ -157,11 +157,11 @@ Refer to <tests/README.md>.
157
157
 
158
158
  ## Build
159
159
 
160
- The gem is built with:
160
+ The unsigned gem is built with:
161
161
 
162
162
  ```bash
163
163
  bundle install
164
- bundle exec rake build
164
+ bundle exec rake unsigned
165
165
  ```
166
166
 
167
167
  If you don't want to install optional gems:
@@ -183,7 +183,7 @@ Its path must be set using environment variable `SIGNING_KEY`.
183
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).
184
184
 
185
185
  ```bash
186
- bundle exec rake build SIGNING_KEY=/path/to/vault/gem-private_key.pem
186
+ bundle exec rake SIGNING_KEY=/path/to/vault/gem-private_key.pem
187
187
  ```
188
188
 
189
189
  Refer to <certs/README.md>.
@@ -214,7 +214,16 @@ bundle exec rake -T ^binary:
214
214
 
215
215
  ## Release
216
216
 
217
- ### Checklist before a new release
217
+ ### Branching Strategy
218
+
219
+ This project uses a single `main` branch for development. During the development cycle, the version in `lib/aspera/cli/version.rb` uses a `.pre` suffix (e.g., `x.y.z.pre`) to indicate a pre-release state.
220
+
221
+ Feature development and bug fixes can be done either:
222
+
223
+ - Directly on `main` for small changes
224
+ - Via feature branches with pull requests for larger changes
225
+
226
+ ### Checklist Before a New Release
218
227
 
219
228
  When preparing for a new release, do the following:
220
229
 
@@ -224,31 +233,64 @@ When preparing for a new release, do the following:
224
233
  bundle exec rake test:run
225
234
  ```
226
235
 
227
- - Set beta version (to use the gem file built):
236
+ - Verify that the container builds successfully (using the beta version):
228
237
 
229
238
  ```bash
230
239
  export GEM_VERSION=$(env -u GEM_VERSION rake tools:version).$(date +%Y%m%d%H%M)
240
+ bundle exec rake container:build
241
+ bundle exec rake container:test
231
242
  ```
232
243
 
233
- - Verify that the container builds successfully (using the beta version):
244
+ ### Automated Release Process
234
245
 
235
- ```bash
236
- bundle exec rake container:build
237
- bundle exec rake container:test
246
+ Releases are triggered via the GitHub Actions UI using the **Release** workflow (`.github/workflows/release.yml`).
247
+
248
+ To create a release:
249
+
250
+ 1. Navigate to **Actions** > **Release** in the GitHub repository
251
+ 2. Click **Run workflow**
252
+ 3. Optionally specify:
253
+ - **Release version**: The version to release. If left empty, uses the current version from `version.rb` without the `.pre` suffix.
254
+ - **Next development version**: The next version to prepare for. If left empty, auto-increments the minor version. The `.pre` suffix is added automatically.
255
+ 4. Click **Run workflow**
256
+
257
+ The workflow automatically:
258
+
259
+ 1. Updates `version.rb` with the release version
260
+ 2. Rebuilds documentation (PDF manual, README)
261
+ 3. Commits the changes
262
+ 4. Creates and pushes the release tag
263
+ 5. Triggers the deploy workflow to publish to [rubygems.org](https://rubygems.org/gems/aspera-cli)
264
+ 6. Updates `version.rb` to the next development version with `.pre` suffix
265
+ 7. Commits and pushes the version bump
266
+
267
+ ### Manual Release Process (Alternative)
268
+
269
+ If needed, releases can still be done manually:
270
+
271
+ - Update the version in `lib/aspera/cli/version.rb` (remove `.pre` suffix)
272
+
273
+ - Build the PDF manual in `pkg`:
274
+
275
+ ```shell
276
+ bundle exec rake doc:build
238
277
  ```
239
278
 
240
- ### Version Release Process
279
+ - Build the signed `.gem` in `pkg`:
241
280
 
242
- Once the development branch is ready for release:
281
+ ```shell
282
+ bundle exec rake SIGNING_KEY=/path/to/vault/gem-private_key.pem
283
+ ```
243
284
 
244
- - Decide on the version number
285
+ - Create the release version tag and push it to GitHub:
245
286
 
246
- - Update the version in `lib/aspera/cli/version.rb`
287
+ ```shell
288
+ bundle exec rake release_tag
289
+ ```
247
290
 
248
- - Execute `bundle exec rake release` (see `.github/workflows/deploy.yml`)
291
+ This will trigger the action `.github/workflows/deploy.yml`, which builds the gem file and pushes it to RubyGems.
249
292
 
250
- - It builds the `.gem` file in the `pkg` folder.
251
- - Then runs `gem push`.
293
+ - After release, update `version.rb` to the next development version with `.pre` suffix
252
294
 
253
295
  ## Long‑Term Implementation and Delivery Improvements
254
296