rubysmith 7.2.0 → 7.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +89 -7
- data/lib/rubysmith/builders/bundler.rb +1 -1
- data/lib/rubysmith/builders/dev_container/compose.rb +22 -0
- data/lib/rubysmith/builders/dev_container/configuration.rb +22 -0
- data/lib/rubysmith/builders/dev_container/dockerfile.rb +22 -0
- data/lib/rubysmith/builders/docker/build.rb +24 -0
- data/lib/rubysmith/builders/docker/console.rb +24 -0
- data/lib/rubysmith/builders/docker/entrypoint.rb +24 -0
- data/lib/rubysmith/builders/docker/file.rb +21 -0
- data/lib/rubysmith/builders/docker/ignore.rb +21 -0
- data/lib/rubysmith/cli/actions/bootsnap.rb +22 -0
- data/lib/rubysmith/cli/actions/circle_ci.rb +1 -1
- data/lib/rubysmith/cli/actions/dcoo.rb +22 -0
- data/lib/rubysmith/cli/actions/dev_container.rb +22 -0
- data/lib/rubysmith/cli/actions/docker.rb +22 -0
- data/lib/rubysmith/cli/actions/funding.rb +1 -1
- data/lib/rubysmith/cli/actions/git_hub.rb +1 -1
- data/lib/rubysmith/cli/actions/git_hub_ci.rb +1 -1
- data/lib/rubysmith/cli/actions/maximum.rb +1 -1
- data/lib/rubysmith/cli/actions/minimum.rb +1 -1
- data/lib/rubysmith/cli/commands/build.rb +14 -2
- data/lib/rubysmith/configuration/contract.rb +6 -0
- data/lib/rubysmith/configuration/defaults.yml +5 -0
- data/lib/rubysmith/configuration/model.rb +8 -0
- data/lib/rubysmith/container.rb +1 -0
- data/lib/rubysmith/extensions/pragmater.rb +14 -1
- data/lib/rubysmith/extensions/tocer.rb +2 -1
- data/lib/rubysmith/templates/%project_name%/.devcontainer/Dockerfile.erb +1 -0
- data/lib/rubysmith/templates/%project_name%/.devcontainer/compose.yaml.erb +35 -0
- data/lib/rubysmith/templates/%project_name%/.devcontainer/devcontainer.json.erb +17 -0
- data/lib/rubysmith/templates/%project_name%/.dockerignore.erb +36 -0
- data/lib/rubysmith/templates/%project_name%/.github/workflows/ci.yml.erb +5 -0
- data/lib/rubysmith/templates/%project_name%/Dockerfile.erb +60 -0
- data/lib/rubysmith/templates/%project_name%/Gemfile.erb +3 -0
- data/lib/rubysmith/templates/%project_name%/LICENSE-fair.adoc.erb +75 -0
- data/lib/rubysmith/templates/%project_name%/LICENSE-fair.md.erb +75 -0
- data/lib/rubysmith/templates/%project_name%/README.adoc.erb +4 -0
- data/lib/rubysmith/templates/%project_name%/README.md.erb +4 -0
- data/lib/rubysmith/templates/%project_name%/bin/docker/build.erb +15 -0
- data/lib/rubysmith/templates/%project_name%/bin/docker/console.erb +14 -0
- data/lib/rubysmith/templates/%project_name%/bin/docker/entrypoint.erb +8 -0
- data/lib/rubysmith.rb +1 -0
- data/rubysmith.gemspec +1 -1
- data.tar.gz.sig +0 -0
- metadata +24 -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: 1529b428758e620a07651f58648e9347d6285ae658c5ba7f4e60ec445958b279
|
4
|
+
data.tar.gz: 7efa1cd58738e11138bc31209ee0b6a2b0ab30a710f54016b8ad3c17b8f6a993
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb59f4e7490b4e8298a9c14d31923f8e46d1f1ed28cc2ae0f6778d8269d4ee08eab8c304aef3c276439eb447ae5fb43d9b63cf6f9239d64a6e17bfaf70f81a7c
|
7
|
+
data.tar.gz: 51d8e56f5b799df3b03a9a20c8331004d5f44f0bbdf4371c8299f8a8f75a17719c74c11d2d9d4bc9159cd535f0c3bf26c86e6c1d93ece452a18d149490f490c6
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -2,8 +2,10 @@
|
|
2
2
|
:toclevels: 5
|
3
3
|
:figure-caption!:
|
4
4
|
|
5
|
-
:gemsmith_link: link:https://alchemists.io/projects/gemsmith[Gemsmith]
|
6
5
|
:bundler_inline_link: link:https://alchemists.io/articles/ruby_bundler_inline[Bundler Inline]
|
6
|
+
:development_containers_link: link:https://containers.dev[Development Containers]
|
7
|
+
:docker_link: link:https://www.docker.com[Docker]
|
8
|
+
:gemsmith_link: link:https://alchemists.io/projects/gemsmith[Gemsmith]
|
7
9
|
:string_formats_link: link:https://docs.ruby-lang.org/en/3.3/format_specifications_rdoc.html[String Formats]
|
8
10
|
|
9
11
|
= Rubysmith
|
@@ -26,6 +28,8 @@ toc::[]
|
|
26
28
|
* Supports link:https://orcid.org[Citations (ORCID)].
|
27
29
|
* Supports console script for local development.
|
28
30
|
* Supports link:https://github.com/ruby/debug[Debug].
|
31
|
+
* Supports {development_containers_link}.
|
32
|
+
* Supports {docker_link}.
|
29
33
|
* Supports link:https://git-scm.com[Git].
|
30
34
|
* Supports link:https://github.com[GitHub].
|
31
35
|
* Supports link:https://alchemists.io/projects/git-lint[Git Lint].
|
@@ -46,6 +50,7 @@ toc::[]
|
|
46
50
|
** Security
|
47
51
|
** Code of Conduct
|
48
52
|
** Contributions
|
53
|
+
** Developer Certificate of Origin
|
49
54
|
** Communities
|
50
55
|
|
51
56
|
== Requirements
|
@@ -135,6 +140,11 @@ link:https://github.com/amazing-print/amazing_print[Amazing Print] gem for debug
|
|
135
140
|
a handy debugging tool when inspecting your Ruby objects and printing details in a quick to read
|
136
141
|
format.
|
137
142
|
|
143
|
+
===== Bootsnap
|
144
|
+
|
145
|
+
The `--bootsnap` option allows you to build your project with the
|
146
|
+
link:https://github.com/Shopify/bootsnap[Bootsnap] gem for improved performance. This is best used for pure, non-gem, Ruby projects and/or web applications in general.
|
147
|
+
|
138
148
|
===== Caliber
|
139
149
|
|
140
150
|
The `--caliber` option allows you to build your project with the
|
@@ -175,12 +185,26 @@ loaded.
|
|
175
185
|
The `--contributions` option allows you to link to contributing documentation so people know to
|
176
186
|
contribute back to your work.
|
177
187
|
|
188
|
+
===== Developer Certificate of Origin
|
189
|
+
|
190
|
+
The `--dcoo` option allows to you add link:https://developercertificate.org[Developer Certificate of Origin] documentation so all contributors are aware of how their contributions are applied in terms of ownership, copyright, and licensing.
|
191
|
+
|
192
|
+
ℹ️ This is disabled by default but will be enabled by default in the next major version.
|
193
|
+
|
178
194
|
===== Debug
|
179
195
|
|
180
196
|
The `--debug` option allows you add the link:https://github.com/ruby/debug[Debug] gem to your
|
181
197
|
project for debugging your code by setting breakpoints, remotely connecting to running code, and
|
182
198
|
much more.
|
183
199
|
|
200
|
+
===== Docker
|
201
|
+
|
202
|
+
The `--docker` option allows you add {docker_link} to your project so you can build and deploy to production.
|
203
|
+
|
204
|
+
===== Development Containers
|
205
|
+
|
206
|
+
The `--devcontainer` option allows you add {development_containers_link} support to your project so you can develop locally by running your project within a {docker_link} container.
|
207
|
+
|
184
208
|
===== Funding
|
185
209
|
|
186
210
|
The `--funding` option allows you add a link:https://github.com[GitHub] funding configuration to
|
@@ -299,6 +323,7 @@ author:
|
|
299
323
|
uri: "%<organization_uri>s/team/%<author_handle>s"
|
300
324
|
build:
|
301
325
|
amazing_print: true
|
326
|
+
bootsnap: false
|
302
327
|
caliber: true
|
303
328
|
circle_ci: false
|
304
329
|
citation: true
|
@@ -307,7 +332,10 @@ build:
|
|
307
332
|
conduct: true
|
308
333
|
console: true
|
309
334
|
contributions: true
|
335
|
+
dcoo: false
|
310
336
|
debug: true
|
337
|
+
devcontainer: false
|
338
|
+
docker: false
|
311
339
|
funding: false
|
312
340
|
git: true
|
313
341
|
git_hub: false
|
@@ -344,6 +372,7 @@ project:
|
|
344
372
|
community: "%<organization_uri>s/community"
|
345
373
|
conduct: "%<organization_uri>s/policies/code_of_conduct"
|
346
374
|
contributions: "%<organization_uri>s/policies/contributions"
|
375
|
+
dcoo: "%<organization_uri>s/policies/developer_certificate_of_origin"
|
347
376
|
download: "https://rubygems.org/gems/%<project_name>s"
|
348
377
|
funding: "%<repository_uri>s/sponsors/%<repository_handle>s"
|
349
378
|
home: "%<organization_uri>s/projects/%<project_name>s"
|
@@ -404,17 +433,68 @@ following options are available:
|
|
404
433
|
|
405
434
|
==== License
|
406
435
|
|
407
|
-
Use this section to define the license you want to use for your project. The following
|
436
|
+
Use this section to define the license you want to use for your project. When picking a license, you can supply the appropriate `label` and `version` in addition to the `name`. The `name` is the only value you _can't_ customize. The following details all supported licenses.
|
437
|
+
|
438
|
+
===== Apache
|
408
439
|
|
409
|
-
|
410
|
-
* `hippocratic`: Uses the link:https://firstdonoharm.dev[Hippocratic] license.
|
411
|
-
* `mit`: Uses the link:https://mit-license.org[MIT] license.
|
440
|
+
To use the link:https://www.apache.org/licenses/LICENSE-2.0[Apache] license, apply this configuration:
|
412
441
|
|
413
|
-
|
442
|
+
[source,yaml]
|
443
|
+
----
|
444
|
+
license:
|
445
|
+
label: "Apache"
|
446
|
+
name: "apache"
|
447
|
+
version: "2.0"
|
448
|
+
----
|
449
|
+
|
450
|
+
===== Fair Source
|
451
|
+
|
452
|
+
To use the link:https://fsl.software[Fair Source] license, apply this configuration:
|
453
|
+
|
454
|
+
[source,yaml]
|
455
|
+
----
|
456
|
+
license:
|
457
|
+
label: "Fair Source"
|
458
|
+
name: "fair"
|
459
|
+
version: "FSL-1.1-Apache-2.0"
|
460
|
+
----
|
461
|
+
|
462
|
+
===== Hippocratic
|
463
|
+
|
464
|
+
To use the link:https://firstdonoharm.dev[Hippocratic] license, apply this configuration:
|
465
|
+
|
466
|
+
[source,yaml]
|
467
|
+
----
|
468
|
+
license:
|
469
|
+
label: "Hippocratic"
|
470
|
+
name: "hippocratic"
|
471
|
+
version: "2.1"
|
472
|
+
----
|
473
|
+
|
474
|
+
ℹ️ This is the default license unless you customize.
|
475
|
+
|
476
|
+
===== MIT
|
477
|
+
|
478
|
+
To use the link:https://mit-license.org[MIT] license, apply this configuration:
|
479
|
+
|
480
|
+
[source,yaml]
|
481
|
+
----
|
482
|
+
license:
|
483
|
+
label: "MIT"
|
484
|
+
name: "mit"
|
485
|
+
version: ""
|
486
|
+
----
|
414
487
|
|
415
488
|
==== Organization
|
416
489
|
|
417
|
-
Use this section to define
|
490
|
+
Use this section to define organization specific information. This is useful for information that isn't project specific but related to all projects within your organization. You'll want -- highly recommended -- to supply configuration details. For example, here's what a fictional organization might look like:
|
491
|
+
|
492
|
+
[source,yaml]
|
493
|
+
----
|
494
|
+
organization:
|
495
|
+
label: ACME
|
496
|
+
uri: https://acme.io
|
497
|
+
----
|
418
498
|
|
419
499
|
==== Project
|
420
500
|
|
@@ -477,6 +557,8 @@ bin/rake
|
|
477
557
|
|
478
558
|
== link:https://alchemists.io/policies/contributions[Contributions]
|
479
559
|
|
560
|
+
== link:https://alchemists.io/policies/developer_certificate_of_origin[Developer Certificate of Origin]
|
561
|
+
|
480
562
|
== link:https://alchemists.io/projects/rubysmith/versions[Versions]
|
481
563
|
|
482
564
|
== link:https://alchemists.io/community[Community]
|
@@ -13,7 +13,7 @@ module Rubysmith
|
|
13
13
|
.render
|
14
14
|
.replace(/\n\s+group/, "\n\ngroup")
|
15
15
|
.replace(/\n\s+gem/, "\n gem")
|
16
|
-
.replace(/ (?=.+(refinements|zeitwerk))/, "")
|
16
|
+
.replace(/ (?=.+(bootsnap|refinements|zeitwerk))/, "")
|
17
17
|
.replace(/(\n+|\s+)end/, "\nend")
|
18
18
|
.replace(/\n\ngroup :(quality|development|test|tools) do\nend/, "")
|
19
19
|
.replace(/org"\n+/, "org\"\n\n")
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "refinements/struct"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module Builders
|
7
|
+
module DevContainer
|
8
|
+
# Builds Docker Compose configuration for container.
|
9
|
+
class Compose < Abstract
|
10
|
+
using Refinements::Struct
|
11
|
+
|
12
|
+
def call
|
13
|
+
return false unless settings.build_devcontainer
|
14
|
+
|
15
|
+
path = "%project_name%/.devcontainer/compose.yaml.erb"
|
16
|
+
builder.call(settings.merge(template_path: path)).render
|
17
|
+
true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "refinements/struct"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module Builders
|
7
|
+
module DevContainer
|
8
|
+
# Builds container configuration.
|
9
|
+
class Configuration < Abstract
|
10
|
+
using Refinements::Struct
|
11
|
+
|
12
|
+
def call
|
13
|
+
return false unless settings.build_devcontainer
|
14
|
+
|
15
|
+
path = "%project_name%/.devcontainer/devcontainer.json.erb"
|
16
|
+
builder.call(settings.merge(template_path: path)).render
|
17
|
+
true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "refinements/struct"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module Builders
|
7
|
+
module DevContainer
|
8
|
+
# Builds Dockerfile for container.
|
9
|
+
class Dockerfile < Abstract
|
10
|
+
using Refinements::Struct
|
11
|
+
|
12
|
+
def call
|
13
|
+
return false unless settings.build_devcontainer
|
14
|
+
|
15
|
+
builder.call(settings.merge(template_path: "%project_name%/.devcontainer/Dockerfile.erb"))
|
16
|
+
.render
|
17
|
+
true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "refinements/struct"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module Builders
|
7
|
+
module Docker
|
8
|
+
# Builds Docker build script.
|
9
|
+
class Build < Abstract
|
10
|
+
using Refinements::Struct
|
11
|
+
|
12
|
+
def call
|
13
|
+
return false unless settings.build_docker
|
14
|
+
|
15
|
+
builder.call(settings.merge(template_path: "%project_name%/bin/docker/build.erb"))
|
16
|
+
.render
|
17
|
+
.permit 0o755
|
18
|
+
|
19
|
+
true
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "refinements/struct"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module Builders
|
7
|
+
module Docker
|
8
|
+
# Builds Docker console script.
|
9
|
+
class Console < Abstract
|
10
|
+
using Refinements::Struct
|
11
|
+
|
12
|
+
def call
|
13
|
+
return false unless settings.build_docker
|
14
|
+
|
15
|
+
builder.call(settings.merge(template_path: "%project_name%/bin/docker/console.erb"))
|
16
|
+
.render
|
17
|
+
.permit 0o755
|
18
|
+
|
19
|
+
true
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "refinements/struct"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module Builders
|
7
|
+
module Docker
|
8
|
+
# Builds Docker entrypoint script.
|
9
|
+
class Entrypoint < Abstract
|
10
|
+
using Refinements::Struct
|
11
|
+
|
12
|
+
def call
|
13
|
+
return false unless settings.build_docker
|
14
|
+
|
15
|
+
builder.call(settings.merge(template_path: "%project_name%/bin/docker/entrypoint.erb"))
|
16
|
+
.render
|
17
|
+
.permit 0o755
|
18
|
+
|
19
|
+
true
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "refinements/struct"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module Builders
|
7
|
+
module Docker
|
8
|
+
# Builds Dockerfile configuration.
|
9
|
+
class File < Abstract
|
10
|
+
using Refinements::Struct
|
11
|
+
|
12
|
+
def call
|
13
|
+
return false unless settings.build_docker
|
14
|
+
|
15
|
+
builder.call(settings.merge(template_path: "%project_name%/Dockerfile.erb")).render
|
16
|
+
true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "refinements/struct"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module Builders
|
7
|
+
module Docker
|
8
|
+
# Builds Docker ignore configuration.
|
9
|
+
class Ignore < Abstract
|
10
|
+
using Refinements::Struct
|
11
|
+
|
12
|
+
def call
|
13
|
+
return false unless settings.build_git
|
14
|
+
|
15
|
+
builder.call(settings.merge(template_path: "%project_name%/.dockerignore.erb")).render
|
16
|
+
true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "sod"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module CLI
|
7
|
+
module Actions
|
8
|
+
# Stores Bootsnap flag.
|
9
|
+
class Bootsnap < Sod::Action
|
10
|
+
include Import[:settings]
|
11
|
+
|
12
|
+
description "Add Bootsnap gem."
|
13
|
+
|
14
|
+
on "--[no-]bootsnap"
|
15
|
+
|
16
|
+
default { Container[:settings].build_bootsnap }
|
17
|
+
|
18
|
+
def call(boolean) = settings.build_bootsnap = boolean
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "sod"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module CLI
|
7
|
+
module Actions
|
8
|
+
# Stores Developer Certificate of Origin flag.
|
9
|
+
class DCOO < Sod::Action
|
10
|
+
include Import[:settings]
|
11
|
+
|
12
|
+
description "Add Developer Certificate of Origin documentation."
|
13
|
+
|
14
|
+
on "--[no-]dcoo"
|
15
|
+
|
16
|
+
default { Container[:settings].build_dcoo }
|
17
|
+
|
18
|
+
def call(boolean) = settings.build_dcoo = boolean
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "sod"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module CLI
|
7
|
+
module Actions
|
8
|
+
# Stores Development Container flag.
|
9
|
+
class DevContainer < Sod::Action
|
10
|
+
include Import[:settings]
|
11
|
+
|
12
|
+
description "Add Development Container support."
|
13
|
+
|
14
|
+
on "--[no-]devcontainer"
|
15
|
+
|
16
|
+
default { Container[:settings].build_devcontainer }
|
17
|
+
|
18
|
+
def call(boolean) = settings.build_devcontainer = boolean
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "sod"
|
4
|
+
|
5
|
+
module Rubysmith
|
6
|
+
module CLI
|
7
|
+
module Actions
|
8
|
+
# Stores Docker flag.
|
9
|
+
class Docker < Sod::Action
|
10
|
+
include Import[:settings]
|
11
|
+
|
12
|
+
description "Add Docker support."
|
13
|
+
|
14
|
+
on "--[no-]docker"
|
15
|
+
|
16
|
+
default { Container[:settings].build_docker }
|
17
|
+
|
18
|
+
def call(boolean) = settings.build_docker = boolean
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -37,6 +37,14 @@ module Rubysmith
|
|
37
37
|
Builders::RSpec::Context.new,
|
38
38
|
Builders::RSpec::Helper.new,
|
39
39
|
Builders::Caliber.new,
|
40
|
+
Builders::DevContainer::Dockerfile.new,
|
41
|
+
Builders::DevContainer::Compose.new,
|
42
|
+
Builders::DevContainer::Configuration.new,
|
43
|
+
Builders::Docker::Build.new,
|
44
|
+
Builders::Docker::Console.new,
|
45
|
+
Builders::Docker::Entrypoint.new,
|
46
|
+
Builders::Docker::File.new,
|
47
|
+
Builders::Docker::Ignore.new,
|
40
48
|
Extensions::Bundler.new,
|
41
49
|
Extensions::Pragmater.new,
|
42
50
|
Extensions::Tocer.new,
|
@@ -50,14 +58,18 @@ module Rubysmith
|
|
50
58
|
|
51
59
|
on Actions::Name
|
52
60
|
on Actions::AmazingPrint
|
61
|
+
on Actions::Bootsnap
|
53
62
|
on Actions::Caliber
|
54
|
-
on Actions::Console
|
55
|
-
on Actions::Contributions
|
56
63
|
on Actions::CircleCI
|
57
64
|
on Actions::Citation
|
58
65
|
on Actions::Community
|
59
66
|
on Actions::Conduct
|
67
|
+
on Actions::Console
|
68
|
+
on Actions::Contributions
|
69
|
+
on Actions::DCOO
|
60
70
|
on Actions::Debug
|
71
|
+
on Actions::DevContainer
|
72
|
+
on Actions::Docker
|
61
73
|
on Actions::Funding
|
62
74
|
on Actions::Git
|
63
75
|
on Actions::GitHub
|
@@ -14,6 +14,7 @@ module Rubysmith
|
|
14
14
|
required(:author_handle).filled :string
|
15
15
|
required(:author_uri).filled :string
|
16
16
|
required(:build_amazing_print).filled :bool
|
17
|
+
required(:build_bootsnap).filled :bool
|
17
18
|
required(:build_caliber).filled :bool
|
18
19
|
required(:build_circle_ci).filled :bool
|
19
20
|
required(:build_citation).filled :bool
|
@@ -22,7 +23,10 @@ module Rubysmith
|
|
22
23
|
required(:build_conduct).filled :bool
|
23
24
|
required(:build_console).filled :bool
|
24
25
|
required(:build_contributions).filled :bool
|
26
|
+
required(:build_dcoo).filled :bool
|
25
27
|
required(:build_debug).filled :bool
|
28
|
+
required(:build_devcontainer).filled :bool
|
29
|
+
required(:build_docker).filled :bool
|
26
30
|
required(:build_funding).filled :bool
|
27
31
|
required(:build_git).filled :bool
|
28
32
|
required(:build_git_hub).filled :bool
|
@@ -52,11 +56,13 @@ module Rubysmith
|
|
52
56
|
required(:license_label).filled :string
|
53
57
|
required(:license_name).filled :string
|
54
58
|
required(:license_version).filled :string
|
59
|
+
optional(:organization_label).filled :string
|
55
60
|
required(:organization_uri).filled :string
|
56
61
|
optional(:project_name).filled :string
|
57
62
|
optional(:project_uri_community).filled :string
|
58
63
|
optional(:project_uri_conduct).filled :string
|
59
64
|
optional(:project_uri_contributions).filled :string
|
65
|
+
optional(:project_uri_dcoo).filled :string
|
60
66
|
optional(:project_uri_download).filled :string
|
61
67
|
optional(:project_uri_funding).filled :string
|
62
68
|
optional(:project_uri_home).filled :string
|
@@ -3,6 +3,7 @@ author:
|
|
3
3
|
uri: "%<organization_uri>s/team/%<author_handle>s"
|
4
4
|
build:
|
5
5
|
amazing_print: true
|
6
|
+
bootsnap: false
|
6
7
|
caliber: true
|
7
8
|
circle_ci: false
|
8
9
|
citation: true
|
@@ -11,7 +12,10 @@ build:
|
|
11
12
|
conduct: true
|
12
13
|
console: true
|
13
14
|
contributions: true
|
15
|
+
dcoo: false
|
14
16
|
debug: true
|
17
|
+
devcontainer: false
|
18
|
+
docker: false
|
15
19
|
funding: false
|
16
20
|
git: true
|
17
21
|
git_hub: false
|
@@ -48,6 +52,7 @@ project:
|
|
48
52
|
community: "%<organization_uri>s/community"
|
49
53
|
conduct: "%<organization_uri>s/policies/code_of_conduct"
|
50
54
|
contributions: "%<organization_uri>s/policies/contributions"
|
55
|
+
dcoo: "%<organization_uri>s/policies/developer_certificate_of_origin"
|
51
56
|
download: "https://rubygems.org/gems/%<project_name>s"
|
52
57
|
funding: "%<repository_uri>s/sponsors/%<repository_handle>s"
|
53
58
|
home: "%<organization_uri>s/projects/%<project_name>s"
|
@@ -15,6 +15,7 @@ module Rubysmith
|
|
15
15
|
:author_handle,
|
16
16
|
:author_uri,
|
17
17
|
:build_amazing_print,
|
18
|
+
:build_bootsnap,
|
18
19
|
:build_caliber,
|
19
20
|
:build_circle_ci,
|
20
21
|
:build_citation,
|
@@ -23,7 +24,10 @@ module Rubysmith
|
|
23
24
|
:build_conduct,
|
24
25
|
:build_console,
|
25
26
|
:build_contributions,
|
27
|
+
:build_dcoo,
|
26
28
|
:build_debug,
|
29
|
+
:build_devcontainer,
|
30
|
+
:build_docker,
|
27
31
|
:build_funding,
|
28
32
|
:build_git,
|
29
33
|
:build_git_hub,
|
@@ -53,11 +57,13 @@ module Rubysmith
|
|
53
57
|
:license_name,
|
54
58
|
:license_version,
|
55
59
|
:loaded_at,
|
60
|
+
:organization_label,
|
56
61
|
:organization_uri,
|
57
62
|
:project_name,
|
58
63
|
:project_uri_community,
|
59
64
|
:project_uri_conduct,
|
60
65
|
:project_uri_contributions,
|
66
|
+
:project_uri_dcoo,
|
61
67
|
:project_uri_download,
|
62
68
|
:project_uri_funding,
|
63
69
|
:project_uri_home,
|
@@ -103,6 +109,8 @@ module Rubysmith
|
|
103
109
|
|
104
110
|
def computed_project_uri_contributions = format_uri(__method__)
|
105
111
|
|
112
|
+
def computed_project_uri_dcoo = format_uri(__method__)
|
113
|
+
|
106
114
|
def computed_project_uri_download = format_uri(__method__)
|
107
115
|
|
108
116
|
def computed_project_uri_funding = format_uri(__method__)
|
data/lib/rubysmith/container.rb
CHANGED
@@ -25,6 +25,7 @@ module Rubysmith
|
|
25
25
|
.add_transformer(:format, :project_uri_community)
|
26
26
|
.add_transformer(:format, :project_uri_conduct)
|
27
27
|
.add_transformer(:format, :project_uri_contributions)
|
28
|
+
.add_transformer(:format, :project_uri_dcoo)
|
28
29
|
.add_transformer(:format, :project_uri_download, :project_name)
|
29
30
|
.add_transformer(:format, :project_uri_funding)
|
30
31
|
.add_transformer(:format, :project_uri_home, :project_name)
|
@@ -14,7 +14,20 @@ module Rubysmith
|
|
14
14
|
CLIENT = ::Pragmater::Inserter.new(
|
15
15
|
settings: ::Pragmater::Configuration::Model[
|
16
16
|
comments: ["# frozen_string_literal: true"],
|
17
|
-
patterns: %w[
|
17
|
+
patterns: %w[
|
18
|
+
**/*.rake
|
19
|
+
**/*.rb
|
20
|
+
*.gemspec
|
21
|
+
exe/*
|
22
|
+
bin/console
|
23
|
+
bin/rake
|
24
|
+
bin/rspec
|
25
|
+
bin/rubocop
|
26
|
+
bin/setup
|
27
|
+
config.ru
|
28
|
+
Gemfile
|
29
|
+
Rakefile
|
30
|
+
]
|
18
31
|
]
|
19
32
|
).freeze
|
20
33
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "refinements/pathname"
|
4
|
+
require "stringio"
|
4
5
|
require "tocer"
|
5
6
|
|
6
7
|
module Rubysmith
|
@@ -11,7 +12,7 @@ module Rubysmith
|
|
11
12
|
|
12
13
|
using Refinements::Pathname
|
13
14
|
|
14
|
-
def initialize(client: ::Tocer::Runner.new, **)
|
15
|
+
def initialize(client: ::Tocer::Runner.new(io: StringIO.new), **)
|
15
16
|
@client = client
|
16
17
|
super(**)
|
17
18
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
FROM bkuhlmann/alpine-ruby:latest
|
@@ -0,0 +1,35 @@
|
|
1
|
+
name: "<%= settings.project_name %>"
|
2
|
+
|
3
|
+
services:
|
4
|
+
app:
|
5
|
+
build:
|
6
|
+
context: ..
|
7
|
+
dockerfile: .devcontainer/Dockerfile
|
8
|
+
volumes:
|
9
|
+
- ../..:/workspaces:cached
|
10
|
+
environment:
|
11
|
+
DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
|
12
|
+
command: sleep infinity
|
13
|
+
depends_on:
|
14
|
+
- postgres
|
15
|
+
- redis
|
16
|
+
|
17
|
+
postgres:
|
18
|
+
image: postgres:latest
|
19
|
+
restart: unless-stopped
|
20
|
+
volumes:
|
21
|
+
- postgres-data:/var/lib/postgresql/data
|
22
|
+
environment:
|
23
|
+
POSTGRES_USER: postgres
|
24
|
+
POSTGRES_DB: postgres
|
25
|
+
POSTGRES_PASSWORD: postgres
|
26
|
+
|
27
|
+
redis:
|
28
|
+
image: redis:latest
|
29
|
+
restart: unless-stopped
|
30
|
+
volumes:
|
31
|
+
- redis-data:/data
|
32
|
+
|
33
|
+
volumes:
|
34
|
+
postgres-data:
|
35
|
+
redis-data:
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"name": "<%= settings.project_name %>",
|
3
|
+
"dockerComposeFile": "compose.yaml",
|
4
|
+
"service": "app",
|
5
|
+
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
|
6
|
+
"features": {
|
7
|
+
"ghcr.io/devcontainers/features/github-cli:1": {}
|
8
|
+
},
|
9
|
+
"containerEnv": {
|
10
|
+
"CAPYBARA_SERVER_PORT": "45678",
|
11
|
+
"REDIS_URL": "redis://redis:6379/1"
|
12
|
+
},
|
13
|
+
"forwardPorts": [2300, 3000, 5432, 6379],
|
14
|
+
<% if settings.build_setup %>
|
15
|
+
"postCreateCommand": "bin/setup"
|
16
|
+
<% end %>
|
17
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Assets
|
2
|
+
/node_modules/
|
3
|
+
|
4
|
+
# Bin
|
5
|
+
/bin
|
6
|
+
!/bin/console
|
7
|
+
!/bin/docker/entrypoint
|
8
|
+
|
9
|
+
# Bundler
|
10
|
+
/.bundle
|
11
|
+
|
12
|
+
# Development
|
13
|
+
/.devcontainer
|
14
|
+
|
15
|
+
# Docker
|
16
|
+
/.dockerignore
|
17
|
+
/Dockerfile*
|
18
|
+
|
19
|
+
# Environment
|
20
|
+
/.env*
|
21
|
+
|
22
|
+
# Git
|
23
|
+
/.git/
|
24
|
+
/.gitignore
|
25
|
+
|
26
|
+
# GitHub
|
27
|
+
/.github
|
28
|
+
|
29
|
+
# Log
|
30
|
+
/log/
|
31
|
+
|
32
|
+
# Temp
|
33
|
+
/tmp/
|
34
|
+
|
35
|
+
# XDG
|
36
|
+
/.config
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# syntax = docker/dockerfile:1.4
|
2
|
+
|
3
|
+
ARG RUBY_VERSION=<%= RUBY_VERSION %>
|
4
|
+
|
5
|
+
FROM docker.io/library/ruby:$RUBY_VERSION-slim AS base
|
6
|
+
|
7
|
+
LABEL description="<%= [settings.organization_label, "Application"].compact.join " " %>"
|
8
|
+
LABEL maintainer="<%= settings.author_name %> <<%= settings.author_email %>>"
|
9
|
+
|
10
|
+
WORKDIR /app
|
11
|
+
|
12
|
+
RUN <<STEPS
|
13
|
+
apt-get update -qq \
|
14
|
+
&& apt-get install --no-install-recommends -y curl libjemalloc2 \
|
15
|
+
&& rm -rf /var/lib/apt/lists /var/cache/apt/archives
|
16
|
+
STEPS
|
17
|
+
|
18
|
+
ENV RACK_ENV=production
|
19
|
+
ENV BUNDLE_DEPLOYMENT=1
|
20
|
+
ENV BUNDLE_PATH=/usr/local/bundle
|
21
|
+
ENV BUNDLE_WITHOUT="development:quality:test:tools"
|
22
|
+
|
23
|
+
FROM base AS build
|
24
|
+
|
25
|
+
RUN <<STEPS
|
26
|
+
apt-get update -qq \
|
27
|
+
&& apt-get install --no-install-recommends -y build-essential git pkg-config \
|
28
|
+
&& rm -rf /var/lib/apt/lists /var/cache/apt/archives
|
29
|
+
STEPS
|
30
|
+
|
31
|
+
COPY .ruby-version Gemfile Gemfile.lock ./
|
32
|
+
|
33
|
+
RUN <<STEPS
|
34
|
+
bundle install
|
35
|
+
rm -rf "${BUNDLE_PATH}"/ruby/*/cache "${BUNDLE_PATH}"/ruby/*/bundler/gems/*/.git
|
36
|
+
<% if settings.build_bootsnap %>
|
37
|
+
bundle exec bootsnap precompile --gemfile
|
38
|
+
<% end %>
|
39
|
+
STEPS
|
40
|
+
|
41
|
+
COPY . .
|
42
|
+
<% if settings.build_bootsnap %>
|
43
|
+
RUN bundle exec bootsnap precompile app/ lib/ slices/
|
44
|
+
<% end %>
|
45
|
+
FROM base
|
46
|
+
COPY --from=build "${BUNDLE_PATH}" "${BUNDLE_PATH}"
|
47
|
+
COPY --from=build /app /app
|
48
|
+
|
49
|
+
RUN <<STEPS
|
50
|
+
mkdir -p /app/log
|
51
|
+
mkdir -p /app/tmp
|
52
|
+
STEPS
|
53
|
+
|
54
|
+
RUN groupadd --system --gid 1000 app && \
|
55
|
+
useradd app --uid 1000 --gid 1000 --create-home --shell /bin/bash && \
|
56
|
+
chown -R app:app log tmp
|
57
|
+
|
58
|
+
USER 1000:1000
|
59
|
+
|
60
|
+
ENTRYPOINT ["/app/bin/docker/entrypoint"]
|
@@ -0,0 +1,75 @@
|
|
1
|
+
= Functional Source License, Version 1.1, Apache 2.0 Future License
|
2
|
+
|
3
|
+
== Abbreviation
|
4
|
+
|
5
|
+
FSL-1.1-Apache-2.0
|
6
|
+
|
7
|
+
== Notice
|
8
|
+
|
9
|
+
Copyright <%= settings.loaded_at.strftime "%Y" %> link:<%= settings.author_uri %>[<%= settings.author_name %>]
|
10
|
+
|
11
|
+
== Terms and Conditions
|
12
|
+
|
13
|
+
=== Licensor ("We")
|
14
|
+
|
15
|
+
The party offering the Software under these Terms and Conditions.
|
16
|
+
|
17
|
+
=== The Software
|
18
|
+
|
19
|
+
The "Software" is each version of the software that we make available under these Terms and Conditions, as indicated by our inclusion of these Terms and Conditions with the Software.
|
20
|
+
|
21
|
+
=== License Grant
|
22
|
+
|
23
|
+
Subject to your compliance with this License Grant and the Patents, Redistribution and Trademark clauses below, we hereby grant you the right to use, copy, modify, create derivative works, publicly perform, publicly display and redistribute the Software for any Permitted Purpose identified below.
|
24
|
+
|
25
|
+
=== Permitted Purpose
|
26
|
+
|
27
|
+
A Permitted Purpose is any purpose other than a Competing Use. A Competing Use means making the Software available to others in a commercial product or service that:
|
28
|
+
|
29
|
+
1. substitutes for the Software;
|
30
|
+
|
31
|
+
2. substitutes for any other product or service we offer using the Software that exists as of the date we make the Software available; or
|
32
|
+
|
33
|
+
3. offers the same or substantially similar functionality as the Software.
|
34
|
+
|
35
|
+
Permitted Purposes specifically include using the Software:
|
36
|
+
|
37
|
+
1. for your internal use and access;
|
38
|
+
|
39
|
+
2. for non-commercial education;
|
40
|
+
|
41
|
+
3. for non-commercial research; and
|
42
|
+
|
43
|
+
4. in connection with professional services that you provide to a licensee using the Software in accordance with these Terms and Conditions.
|
44
|
+
|
45
|
+
=== Patents
|
46
|
+
|
47
|
+
To the extent your use for a Permitted Purpose would necessarily infringe our patents, the license grant above includes a license under our patents. If you make a claim against any party that the Software infringes or contributes to the infringement of any patent, then your patent license to the Software ends immediately.
|
48
|
+
|
49
|
+
=== Redistribution
|
50
|
+
|
51
|
+
The Terms and Conditions apply to all copies, modifications and derivatives of the Software.
|
52
|
+
|
53
|
+
If you redistribute any copies, modifications or derivatives of the Software, you must include a copy of or a link to these Terms and Conditions and not remove any copyright notices provided in or with the Software.
|
54
|
+
|
55
|
+
=== Disclaimer
|
56
|
+
|
57
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT.
|
58
|
+
|
59
|
+
IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO THE SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE.
|
60
|
+
|
61
|
+
=== Trademarks
|
62
|
+
|
63
|
+
Except for displaying the License Details and identifying us as the origin of the Software, you have no right under these Terms and Conditions to use our trademarks, trade names, service marks or product names.
|
64
|
+
|
65
|
+
== Grant of Future License
|
66
|
+
|
67
|
+
We hereby irrevocably grant you an additional license to use the Software under the Apache License, Version 2.0 that is effective on the second anniversary of the date we make the Software available. On or after that date, you may use the Software under the Apache License, Version 2.0, in which case the following will apply:
|
68
|
+
|
69
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
70
|
+
|
71
|
+
You may obtain a copy of the License at
|
72
|
+
|
73
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
74
|
+
|
75
|
+
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# Functional Source License, Version 1.1, Apache 2.0 Future License
|
2
|
+
|
3
|
+
## Abbreviation
|
4
|
+
|
5
|
+
FSL-1.1-Apache-2.0
|
6
|
+
|
7
|
+
## Notice
|
8
|
+
|
9
|
+
Copyright <%= settings.loaded_at.strftime "%Y" %> [<%= settings.author_name %>](<%= settings.author_uri %>)
|
10
|
+
|
11
|
+
## Terms and Conditions
|
12
|
+
|
13
|
+
### Licensor ("We")
|
14
|
+
|
15
|
+
The party offering the Software under these Terms and Conditions.
|
16
|
+
|
17
|
+
### The Software
|
18
|
+
|
19
|
+
The "Software" is each version of the software that we make available under these Terms and Conditions, as indicated by our inclusion of these Terms and Conditions with the Software.
|
20
|
+
|
21
|
+
### License Grant
|
22
|
+
|
23
|
+
Subject to your compliance with this License Grant and the Patents, Redistribution and Trademark clauses below, we hereby grant you the right to use, copy, modify, create derivative works, publicly perform, publicly display and redistribute the Software for any Permitted Purpose identified below.
|
24
|
+
|
25
|
+
### Permitted Purpose
|
26
|
+
|
27
|
+
A Permitted Purpose is any purpose other than a Competing Use. A Competing Use means making the Software available to others in a commercial product or service that:
|
28
|
+
|
29
|
+
1. substitutes for the Software;
|
30
|
+
|
31
|
+
2. substitutes for any other product or service we offer using the Software that exists as of the date we make the Software available; or
|
32
|
+
|
33
|
+
3. offers the same or substantially similar functionality as the Software.
|
34
|
+
|
35
|
+
Permitted Purposes specifically include using the Software:
|
36
|
+
|
37
|
+
1. for your internal use and access;
|
38
|
+
|
39
|
+
2. for non-commercial education;
|
40
|
+
|
41
|
+
3. for non-commercial research; and
|
42
|
+
|
43
|
+
4. in connection with professional services that you provide to a licensee using the Software in accordance with these Terms and Conditions.
|
44
|
+
|
45
|
+
### Patents
|
46
|
+
|
47
|
+
To the extent your use for a Permitted Purpose would necessarily infringe our patents, the license grant above includes a license under our patents. If you make a claim against any party that the Software infringes or contributes to the infringement of any patent, then your patent license to the Software ends immediately.
|
48
|
+
|
49
|
+
### Redistribution
|
50
|
+
|
51
|
+
The Terms and Conditions apply to all copies, modifications and derivatives of the Software.
|
52
|
+
|
53
|
+
If you redistribute any copies, modifications or derivatives of the Software, you must include a copy of or a link to these Terms and Conditions and not remove any copyright notices provided in or with the Software.
|
54
|
+
|
55
|
+
### Disclaimer
|
56
|
+
|
57
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT.
|
58
|
+
|
59
|
+
IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO THE SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE.
|
60
|
+
|
61
|
+
### Trademarks
|
62
|
+
|
63
|
+
Except for displaying the License Details and identifying us as the origin of the Software, you have no right under these Terms and Conditions to use our trademarks, trade names, service marks or product names.
|
64
|
+
|
65
|
+
## Grant of Future License
|
66
|
+
|
67
|
+
We hereby irrevocably grant you an additional license to use the Software under the Apache License, Version 2.0 that is effective on the second anniversary of the date we make the Software available. On or after that date, you may use the Software under the Apache License, Version 2.0, in which case the following will apply:
|
68
|
+
|
69
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
70
|
+
|
71
|
+
You may obtain a copy of the License at
|
72
|
+
|
73
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
74
|
+
|
75
|
+
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
@@ -75,6 +75,10 @@ bin/rake
|
|
75
75
|
== link:<%= settings.computed_project_uri_contributions %>[Contributions]
|
76
76
|
<% end %>
|
77
77
|
|
78
|
+
<% if settings.build_dcoo %>
|
79
|
+
== link:<%= settings.computed_project_uri_dcoo %>[Developer Certificate of Origin]
|
80
|
+
<% end %>
|
81
|
+
|
78
82
|
<% if settings.build_versions %>
|
79
83
|
== link:<%= settings.computed_project_uri_versions %>[Versions]
|
80
84
|
<% end %>
|
@@ -60,6 +60,10 @@ To test, run:
|
|
60
60
|
## [Contributions](<%= settings.computed_project_uri_contributions %>)
|
61
61
|
<% end %>
|
62
62
|
|
63
|
+
<% if settings.build_dcoo %>
|
64
|
+
## [Developer Certificate of Origin](<%= settings.computed_project_uri_dcoo %>)
|
65
|
+
<% end %>
|
66
|
+
|
63
67
|
<% if settings.build_versions %>
|
64
68
|
## [Versions](<%= settings.computed_project_uri_versions %>)
|
65
69
|
<% end %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
Bundler.require :tools
|
5
|
+
|
6
|
+
version = Bundler.root.join(".ruby-version").read.chop
|
7
|
+
|
8
|
+
system <<~COMMAND
|
9
|
+
docker buildx \
|
10
|
+
build \
|
11
|
+
--load \
|
12
|
+
--build-arg RUBY_VERSION=#{version} \
|
13
|
+
--tag <%= settings.project_name %>:latest \
|
14
|
+
#{Bundler.root}
|
15
|
+
COMMAND
|
data/lib/rubysmith.rb
CHANGED
data/rubysmith.gemspec
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubysmith
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
|
36
36
|
gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2024-08-
|
38
|
+
date: 2024-08-21 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: cogger
|
@@ -282,6 +282,14 @@ files:
|
|
282
282
|
- lib/rubysmith/builders/circle_ci.rb
|
283
283
|
- lib/rubysmith/builders/console.rb
|
284
284
|
- lib/rubysmith/builders/core.rb
|
285
|
+
- lib/rubysmith/builders/dev_container/compose.rb
|
286
|
+
- lib/rubysmith/builders/dev_container/configuration.rb
|
287
|
+
- lib/rubysmith/builders/dev_container/dockerfile.rb
|
288
|
+
- lib/rubysmith/builders/docker/build.rb
|
289
|
+
- lib/rubysmith/builders/docker/console.rb
|
290
|
+
- lib/rubysmith/builders/docker/entrypoint.rb
|
291
|
+
- lib/rubysmith/builders/docker/file.rb
|
292
|
+
- lib/rubysmith/builders/docker/ignore.rb
|
285
293
|
- lib/rubysmith/builders/documentation/citation.rb
|
286
294
|
- lib/rubysmith/builders/documentation/license.rb
|
287
295
|
- lib/rubysmith/builders/documentation/readme.rb
|
@@ -304,6 +312,7 @@ files:
|
|
304
312
|
- lib/rubysmith/builders/setup.rb
|
305
313
|
- lib/rubysmith/builders/version.rb
|
306
314
|
- lib/rubysmith/cli/actions/amazing_print.rb
|
315
|
+
- lib/rubysmith/cli/actions/bootsnap.rb
|
307
316
|
- lib/rubysmith/cli/actions/caliber.rb
|
308
317
|
- lib/rubysmith/cli/actions/circle_ci.rb
|
309
318
|
- lib/rubysmith/cli/actions/citation.rb
|
@@ -311,7 +320,10 @@ files:
|
|
311
320
|
- lib/rubysmith/cli/actions/conduct.rb
|
312
321
|
- lib/rubysmith/cli/actions/console.rb
|
313
322
|
- lib/rubysmith/cli/actions/contributions.rb
|
323
|
+
- lib/rubysmith/cli/actions/dcoo.rb
|
314
324
|
- lib/rubysmith/cli/actions/debug.rb
|
325
|
+
- lib/rubysmith/cli/actions/dev_container.rb
|
326
|
+
- lib/rubysmith/cli/actions/docker.rb
|
315
327
|
- lib/rubysmith/cli/actions/funding.rb
|
316
328
|
- lib/rubysmith/cli/actions/git.rb
|
317
329
|
- lib/rubysmith/cli/actions/git_hub.rb
|
@@ -354,6 +366,10 @@ files:
|
|
354
366
|
- lib/rubysmith/renderers/namespace.rb
|
355
367
|
- lib/rubysmith/templates/%project_name%/.circleci/config.yml.erb
|
356
368
|
- lib/rubysmith/templates/%project_name%/.config/rubocop/config.yml.erb
|
369
|
+
- lib/rubysmith/templates/%project_name%/.devcontainer/Dockerfile.erb
|
370
|
+
- lib/rubysmith/templates/%project_name%/.devcontainer/compose.yaml.erb
|
371
|
+
- lib/rubysmith/templates/%project_name%/.devcontainer/devcontainer.json.erb
|
372
|
+
- lib/rubysmith/templates/%project_name%/.dockerignore.erb
|
357
373
|
- lib/rubysmith/templates/%project_name%/.github/FUNDING.yml.erb
|
358
374
|
- lib/rubysmith/templates/%project_name%/.github/ISSUE_TEMPLATE.md.erb
|
359
375
|
- lib/rubysmith/templates/%project_name%/.github/PULL_REQUEST_TEMPLATE.md.erb
|
@@ -362,10 +378,13 @@ files:
|
|
362
378
|
- lib/rubysmith/templates/%project_name%/.reek.yml.erb
|
363
379
|
- lib/rubysmith/templates/%project_name%/.ruby-version.erb
|
364
380
|
- lib/rubysmith/templates/%project_name%/CITATION.cff.erb
|
381
|
+
- lib/rubysmith/templates/%project_name%/Dockerfile.erb
|
365
382
|
- lib/rubysmith/templates/%project_name%/Gemfile.erb
|
366
383
|
- lib/rubysmith/templates/%project_name%/Guardfile.erb
|
367
384
|
- lib/rubysmith/templates/%project_name%/LICENSE-apache.adoc.erb
|
368
385
|
- lib/rubysmith/templates/%project_name%/LICENSE-apache.md.erb
|
386
|
+
- lib/rubysmith/templates/%project_name%/LICENSE-fair.adoc.erb
|
387
|
+
- lib/rubysmith/templates/%project_name%/LICENSE-fair.md.erb
|
369
388
|
- lib/rubysmith/templates/%project_name%/LICENSE-hippocratic.adoc.erb
|
370
389
|
- lib/rubysmith/templates/%project_name%/LICENSE-hippocratic.md.erb
|
371
390
|
- lib/rubysmith/templates/%project_name%/LICENSE-mit.adoc.erb
|
@@ -376,6 +395,9 @@ files:
|
|
376
395
|
- lib/rubysmith/templates/%project_name%/VERSIONS.adoc.erb
|
377
396
|
- lib/rubysmith/templates/%project_name%/VERSIONS.md.erb
|
378
397
|
- lib/rubysmith/templates/%project_name%/bin/console.erb
|
398
|
+
- lib/rubysmith/templates/%project_name%/bin/docker/build.erb
|
399
|
+
- lib/rubysmith/templates/%project_name%/bin/docker/console.erb
|
400
|
+
- lib/rubysmith/templates/%project_name%/bin/docker/entrypoint.erb
|
379
401
|
- lib/rubysmith/templates/%project_name%/bin/guard.erb
|
380
402
|
- lib/rubysmith/templates/%project_name%/bin/rake.erb
|
381
403
|
- lib/rubysmith/templates/%project_name%/bin/rspec.erb
|
metadata.gz.sig
CHANGED
Binary file
|