aspera-cli 4.25.0.pre → 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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +23 -17
- data/CONTRIBUTING.md +119 -47
- data/README.md +325 -239
- data/lib/aspera/agent/direct.rb +14 -12
- data/lib/aspera/agent/factory.rb +9 -6
- data/lib/aspera/agent/transferd.rb +8 -8
- data/lib/aspera/api/aoc.rb +33 -24
- data/lib/aspera/api/ats.rb +1 -0
- data/lib/aspera/api/faspex.rb +11 -5
- data/lib/aspera/ascmd.rb +1 -1
- data/lib/aspera/ascp/installation.rb +7 -7
- 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/formatter.rb +15 -62
- data/lib/aspera/cli/manager.rb +9 -43
- data/lib/aspera/cli/plugins/aoc.rb +71 -66
- data/lib/aspera/cli/plugins/ats.rb +30 -36
- data/lib/aspera/cli/plugins/base.rb +11 -6
- data/lib/aspera/cli/plugins/config.rb +21 -16
- data/lib/aspera/cli/plugins/console.rb +2 -1
- data/lib/aspera/cli/plugins/faspex.rb +7 -4
- data/lib/aspera/cli/plugins/faspex5.rb +12 -9
- data/lib/aspera/cli/plugins/faspio.rb +5 -2
- data/lib/aspera/cli/plugins/httpgw.rb +2 -1
- data/lib/aspera/cli/plugins/node.rb +10 -6
- data/lib/aspera/cli/plugins/oauth.rb +12 -11
- data/lib/aspera/cli/plugins/orchestrator.rb +2 -1
- data/lib/aspera/cli/plugins/preview.rb +2 -2
- data/lib/aspera/cli/plugins/server.rb +3 -2
- data/lib/aspera/cli/plugins/shares.rb +59 -20
- data/lib/aspera/cli/transfer_agent.rb +1 -2
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/command_line_builder.rb +5 -5
- data/lib/aspera/coverage.rb +5 -1
- data/lib/aspera/dot_container.rb +108 -0
- data/lib/aspera/environment.rb +69 -89
- data/lib/aspera/faspex_postproc.rb +1 -1
- data/lib/aspera/id_generator.rb +7 -10
- data/lib/aspera/keychain/macos_security.rb +2 -2
- data/lib/aspera/log.rb +2 -1
- data/lib/aspera/oauth/base.rb +25 -38
- data/lib/aspera/oauth/factory.rb +5 -6
- data/lib/aspera/oauth/generic.rb +1 -1
- data/lib/aspera/oauth/jwt.rb +1 -1
- data/lib/aspera/oauth/url_json.rb +4 -3
- data/lib/aspera/oauth/web.rb +2 -2
- data/lib/aspera/preview/file_types.rb +1 -1
- data/lib/aspera/preview/terminal.rb +95 -29
- data/lib/aspera/preview/utils.rb +6 -5
- data/lib/aspera/rest.rb +5 -2
- data/lib/aspera/ssh.rb +6 -5
- data/lib/aspera/sync/conf.schema.yaml +2 -2
- data/lib/aspera/sync/operations.rb +3 -3
- data/lib/aspera/transfer/parameters.rb +6 -6
- data/lib/aspera/transfer/spec.schema.yaml +4 -4
- data/lib/aspera/transfer/spec_doc.rb +11 -21
- data/lib/aspera/uri_reader.rb +17 -3
- data.tar.gz.sig +0 -0
- metadata +17 -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: 9e812ee0dbd658feeaea8c37d4095df243f57a656b669e99460ca791585121a6
|
|
4
|
+
data.tar.gz: a52360171fc63925f01cd7562453484d04e795221c02c36b78e29c99ed25276e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 70cb5577853b1c8c0a86e85dc55e0e43d9f0c2d18a58f9bf560375c67a76a04e1c06395321789ba8edbcec05c68e7642df2fb9ed5133a8c333992c8254e42dee
|
|
7
|
+
data.tar.gz: 0d25857a31812782d7f831b5f9b4e95962621d4a712dbcbfa9be3889359dc163ca5914a57d7fe5b543b7010d7051865400adc47c590e33ae6f56b7131183e0a6
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -10,9 +10,11 @@ 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`.
|
|
17
|
+
* `aoc`: The admin command for `node` now support nodes owned by admin, so that secret is no more necessary.
|
|
16
18
|
|
|
17
19
|
### Issues Fixed
|
|
18
20
|
|
|
@@ -21,13 +23,17 @@ Released: [Place date of release here]
|
|
|
21
23
|
|
|
22
24
|
### Breaking Changes
|
|
23
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`.
|
|
24
28
|
* `server`: By default, SSH option `use_agent` is now `false`.
|
|
25
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`.
|
|
26
31
|
* `faspex5`: Removed deprecated (4.18) command in `admin`: `resource`, use resource name as command directly in `admin`.
|
|
27
|
-
* `preview`:
|
|
28
|
-
*
|
|
32
|
+
* `preview`: Replaced gem `mimemagic` with `marcel`.
|
|
33
|
+
* **global**: Extended value modifier `@stdbin:` is replaced with `@stdin:bin`.
|
|
34
|
+
* Build system uses now `rake` instead of `make` for easier portability on Windows.
|
|
35
|
+
* PDF manual removed from repo, it is now generated for [releases](https://github.com/IBM/aspera-cli/releases) only.
|
|
29
36
|
* HTML manual is not generated anymore.
|
|
30
|
-
* Build system uses now `rake` instead of `make` for easier portability with Windows.
|
|
31
37
|
|
|
32
38
|
## 4.24.2
|
|
33
39
|
|
|
@@ -36,7 +42,7 @@ Released: 2025-10-24
|
|
|
36
42
|
### New Features
|
|
37
43
|
|
|
38
44
|
* `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.
|
|
45
|
+
* `config`: Added command: `sync spec` to get sync parameters' documentation. Also added to manual.
|
|
40
46
|
|
|
41
47
|
### Issues Fixed
|
|
42
48
|
|
|
@@ -309,17 +315,17 @@ Released: 2024-07-13
|
|
|
309
315
|
* `config`: Command `remote_certificate` now takes a subcommand.
|
|
310
316
|
* **global**: Moved a few internal classes in new/renamed modules
|
|
311
317
|
* **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
|
|
318
|
+
* `EX_ssh_key_paths`: Use spec `ssh_private_key` or option `transfer_info={"ascp_args":["-i","..."]}`
|
|
319
|
+
* `EX_http_proxy_url`: Use option `transfer_info={"ascp_args":["-x","..."]}`
|
|
320
|
+
* `EX_http_transfer_jpeg`: Use option `transfer_info={"ascp_args":["-j","1"]}`
|
|
321
|
+
* `EX_no_read`: Use option `transfer_info={"ascp_args":["--no-read"]}`
|
|
322
|
+
* `EX_no_write`: Use option `transfer_info={"ascp_args":["--no-write"]}`
|
|
323
|
+
* `EX_file_list`: Use `ascli` file list feature or option `transfer_info={"ascp_args":["--file-list","..."]}`
|
|
324
|
+
* `EX_file_pair_list`: Use `ascli` file list feature or option `transfer_info={"ascp_args":["--file-pair-list","..."]}`
|
|
325
|
+
* `EX_ascp_args`: Use option `transfer_info={"ascp_args":[...]}`
|
|
326
|
+
* `EX_at_rest_password`: Use spec parameter `content_protection_password`
|
|
327
|
+
* `EX_proxy_password`: Set password in spec parameter `proxy` or use env var `ASPERA_PROXY_PASS`.
|
|
328
|
+
* `EX_license_text`: Use env var `ASPERA_SCP_LICENSE`.
|
|
323
329
|
|
|
324
330
|
## 4.16.0
|
|
325
331
|
|
|
@@ -1053,7 +1059,7 @@ Released: 2021-02-03
|
|
|
1053
1059
|
|
|
1054
1060
|
### Breaking Changes
|
|
1055
1061
|
|
|
1056
|
-
* **global**:
|
|
1062
|
+
* **global**: `@stdin` is now `@stdin:`
|
|
1057
1063
|
|
|
1058
1064
|
## 0.9.10
|
|
1059
1065
|
|
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
|
-
| `
|
|
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_URL` | URL for 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 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
|
|
|
@@ -159,11 +157,11 @@ Refer to <tests/README.md>.
|
|
|
159
157
|
|
|
160
158
|
## Build
|
|
161
159
|
|
|
162
|
-
The gem is built with:
|
|
160
|
+
The unsigned gem is built with:
|
|
163
161
|
|
|
164
162
|
```bash
|
|
165
163
|
bundle install
|
|
166
|
-
bundle exec rake
|
|
164
|
+
bundle exec rake unsigned
|
|
167
165
|
```
|
|
168
166
|
|
|
169
167
|
If you don't want to install optional gems:
|
|
@@ -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,12 +178,12 @@ 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
|
-
bundle exec rake
|
|
186
|
+
bundle exec rake SIGNING_KEY=/path/to/vault/gem-private_key.pem
|
|
189
187
|
```
|
|
190
188
|
|
|
191
189
|
Refer to <certs/README.md>.
|
|
@@ -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,90 @@ To list operations:
|
|
|
214
212
|
bundle exec rake -T ^binary:
|
|
215
213
|
```
|
|
216
214
|
|
|
217
|
-
##
|
|
215
|
+
## Release
|
|
216
|
+
|
|
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
|
|
227
|
+
|
|
228
|
+
When preparing for a new release, do the following:
|
|
229
|
+
|
|
230
|
+
- Run the test suite:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
bundle exec rake test:run
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
- Verify that the container builds successfully (using the beta version):
|
|
237
|
+
|
|
238
|
+
```bash
|
|
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
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Automated Release Process
|
|
245
|
+
|
|
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
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
- Build the signed `.gem` in `pkg`:
|
|
280
|
+
|
|
281
|
+
```shell
|
|
282
|
+
bundle exec rake SIGNING_KEY=/path/to/vault/gem-private_key.pem
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
- Create the release version tag and push it to GitHub:
|
|
286
|
+
|
|
287
|
+
```shell
|
|
288
|
+
bundle exec rake release_tag
|
|
289
|
+
```
|
|
218
290
|
|
|
219
|
-
|
|
291
|
+
This will trigger the action `.github/workflows/deploy.yml`, which builds the gem file and pushes it to RubyGems.
|
|
220
292
|
|
|
221
|
-
-
|
|
293
|
+
- After release, update `version.rb` to the next development version with `.pre` suffix
|
|
222
294
|
|
|
223
|
-
## Long
|
|
295
|
+
## Long‑Term Implementation and Delivery Improvements
|
|
224
296
|
|
|
225
|
-
-
|
|
297
|
+
- Replace custom REST and OAuth classes with standard Ruby gems:
|
|
226
298
|
- <https://github.com/rest-client/rest-client>
|
|
227
299
|
- <https://github.com/oauth-xx/oauth2>
|
|
228
|
-
-
|
|
229
|
-
-
|
|
300
|
+
- Use the `thor` gem <http://whatisthor.com/> (or other standard Ruby CLI manager)
|
|
301
|
+
- Look at <https://github.com/phusion/traveling-ruby>
|