munola 0.5.2 → 0.6.1
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
- data/CHANGELOG.md +35 -0
- data/README.md +12 -15
- data/lib/generators/munola/install/install_generator.rb +19 -0
- data/lib/munola/providers_config.rb +1 -4
- data/lib/munola/railtie.rb +10 -0
- data/lib/munola/version.rb +3 -3
- data/lib/munola.rb +4 -0
- metadata +11 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 035c3780ee982f7ae5ec0dc3613ae0d09d4e7ae6fc1a6c3bbe7d446da45548b5
|
|
4
|
+
data.tar.gz: 7f17a853e60b770fe08a90f9f055f1891f1c3f7d7a59c188ba44e8e0744a3d10
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a50a5ba6d22316da864d6a1c15b5eee82a681e9e87d7de00590a211453ec7fa512cd6fae628ee94e800977f46a18e26201ffc5f4f98a8f7a537586e6fb7f96e7
|
|
7
|
+
data.tar.gz: 0c07b025c1f109e040f3af93de83be72e84b34de591956d95a1b91a25bd1daf7cbdaae9dbbc8fb49fc777d956dec5c0e64b010311e447dbafcf0cd20b8af325a
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,38 @@
|
|
|
1
|
+
## munola 0.6.1 (2026-08-24)
|
|
2
|
+
|
|
3
|
+
munola drives channel release `0.4.6.1`, cut from the promoted current at
|
|
4
|
+
upstream enola 0.4.6. The prefix walk fix is in the binary this gem fetches,
|
|
5
|
+
so the expiry the 0.6.0 note named is met and Rubydex is on by default again.
|
|
6
|
+
The channel still carries the exclusion filter, which upstream merged an hour
|
|
7
|
+
after 0.4.6 was published, so an excluded document is skipped before its
|
|
8
|
+
definitions are read: 440 seconds to 193 on a Rails monolith, facts identical.
|
|
9
|
+
|
|
10
|
+
The 0.6.0 note said munola waits on Prism alone. On the Rails install path it
|
|
11
|
+
did not. `munola init` reuses enola-rb's installer, which writes
|
|
12
|
+
`mcp-arch.yaml` first, and munola's own writer yields to a file that already
|
|
13
|
+
exists, so the config every Rails project got was the enola gem's, with both
|
|
14
|
+
providers on, against a channel binary built before the fix. Two things follow.
|
|
15
|
+
The config and the binary now agree, which is what closes it. And munola's
|
|
16
|
+
writer has a test that reads munola's writer, rather than one that reads the
|
|
17
|
+
file enola-rb wrote and reports on munola.
|
|
18
|
+
|
|
19
|
+
## enola 0.5.3, enola-rb 0.5.3 and munola 0.6.0 (2026-08-24)
|
|
20
|
+
|
|
21
|
+
Both providers are on again. enola-labs shipped the prefix walk fix in 0.4.6,
|
|
22
|
+
which is the release the enola and enola-rb gems now drive, so the config they
|
|
23
|
+
write carries Prism and Rubydex as it did before the hang was found.
|
|
24
|
+
|
|
25
|
+
munola waits. Its binary is a fork release cut before that fix, so it stays on
|
|
26
|
+
Prism alone until the channel is re-cut, and its version file says which
|
|
27
|
+
upstream it is built on rather than implying the newest.
|
|
28
|
+
|
|
29
|
+
munola-rb is gone, and was never published. The railtie and generator move
|
|
30
|
+
into munola, which is why munola is 0.6.0: one gem for one channel, since the
|
|
31
|
+
split that makes sense for enola and enola-rb, letting a Rubyist take the
|
|
32
|
+
binary wrapper without the Rails layer, does not describe anyone's use of
|
|
33
|
+
munola. Requiring munola still loads no Rails; the generator registers when
|
|
34
|
+
the application has already loaded it.
|
|
35
|
+
|
|
1
36
|
## enola 0.5.2, enola-rb 0.5.2, munola 0.5.2 and munola-rb 0.5.2 (2026-08-23)
|
|
2
37
|
|
|
3
38
|
Rubydex is off in the config these gems write, and named in a comment beside
|
data/README.md
CHANGED
|
@@ -4,10 +4,11 @@ Four pure-Ruby gems, one repository, for running
|
|
|
4
4
|
[enola](https://github.com/enola-labs/enola), the architecture-graph tool,
|
|
5
5
|
from Ruby. None of them carries a binary or compiles anything.
|
|
6
6
|
|
|
7
|
-
Two channels
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
Two channels. `enola` wraps the released upstream binary and `enola-rb` adds
|
|
8
|
+
the Rails layer on it, split so a Rubyist can take the wrapper without Rails.
|
|
9
|
+
`munola` is one gem for its own channel, wrapper and Rails layer together,
|
|
10
|
+
because nobody installs it to avoid Rails. The Rails code is written once, in
|
|
11
|
+
`enola-rb`, and munola adds only what is munola's own.
|
|
11
12
|
|
|
12
13
|
## `enola`
|
|
13
14
|
|
|
@@ -109,14 +110,9 @@ publishes; `MUNOLA_BINARY=/path/to/enola` names one to drive instead, and
|
|
|
109
110
|
every command says which answered. `munola` depends on `enola` at the same
|
|
110
111
|
minor and on `enola-guides` 0.3.1 or later; requiring it loads no Rails.
|
|
111
112
|
|
|
112
|
-
##
|
|
113
|
+
## munola under Rails
|
|
113
114
|
|
|
114
|
-
|
|
115
|
-
both at the same minor and adds one generator.
|
|
116
|
-
|
|
117
|
-
```ruby
|
|
118
|
-
gem "munola-rb"
|
|
119
|
-
```
|
|
115
|
+
munola carries its own generator, and the rake tasks are enola-rb's:
|
|
120
116
|
|
|
121
117
|
```sh
|
|
122
118
|
bin/rails generate munola:install --tenant-column company_id
|
|
@@ -124,7 +120,8 @@ bin/rake enola:snapshot
|
|
|
124
120
|
bin/rake enola:check
|
|
125
121
|
```
|
|
126
122
|
|
|
127
|
-
The generator runs the same install `munola init` does.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
123
|
+
The generator runs the same install `munola init` does. `munola` installs its
|
|
124
|
+
own resolver when it loads, so `enola:snapshot` and `enola:check` drive the
|
|
125
|
+
munola binary in an app that has this gem, and the upstream binary in one that
|
|
126
|
+
does not. Requiring munola loads no Rails; the generator registers when the
|
|
127
|
+
application has already loaded it.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "rails/generators"
|
|
4
|
+
require "munola"
|
|
5
|
+
|
|
6
|
+
module Munola
|
|
7
|
+
module Generators
|
|
8
|
+
class InstallGenerator < Rails::Generators::Base
|
|
9
|
+
desc "Writes enola/constraints/ and the munola recipe catalogue, binding what the tree shows a need for"
|
|
10
|
+
class_option :tenant_column, type: :string, default: nil, desc: "The column most tables carry; confirmed against db/schema.rb"
|
|
11
|
+
|
|
12
|
+
def install
|
|
13
|
+
Munola::Installer.new(destination_root, tenant_column: options[:tenant_column]).install.lines.each { |line| say line }
|
|
14
|
+
rescue Enola::Error => e
|
|
15
|
+
raise Thor::Error, "munola: #{e.message}"
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -27,10 +27,7 @@ module Munola
|
|
|
27
27
|
else
|
|
28
28
|
lines << " # prism: the enola gem on this machine carries no provider script; add one here to run it"
|
|
29
29
|
end
|
|
30
|
-
lines += ["
|
|
31
|
-
" # a reference spanning lines could be its own predecessor, so a tree with",
|
|
32
|
-
" # vendored gems could snapshot without ever finishing. Uncomment to run it.",
|
|
33
|
-
" # - name: rubydex", " # expected_version: \"#{RUBYDEX_VERSION}\""]
|
|
30
|
+
lines += [" - name: rubydex", " expected_version: \"#{RUBYDEX_VERSION}\""]
|
|
34
31
|
"#{lines.join("\n")}\n"
|
|
35
32
|
end
|
|
36
33
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Munola
|
|
4
|
+
# The enola:* tasks come from the enola-rb railtie and drive whatever channel
|
|
5
|
+
# is installed; requiring munola installs its resolver, so under this gem
|
|
6
|
+
# they run the munola binary. Only the generator is munola's own.
|
|
7
|
+
class Railtie < Rails::Railtie
|
|
8
|
+
generators { require_relative "../generators/munola/install/install_generator" }
|
|
9
|
+
end
|
|
10
|
+
end
|
data/lib/munola/version.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
module Munola
|
|
4
4
|
# UPSTREAM_VERSION names the enola release this channel is built on,
|
|
5
5
|
# CHANNEL_VERSION the fork release the gem fetches.
|
|
6
|
-
UPSTREAM_VERSION = "0.4.
|
|
7
|
-
CHANNEL_VERSION = "0.4.
|
|
8
|
-
VERSION = "0.
|
|
6
|
+
UPSTREAM_VERSION = "0.4.6"
|
|
7
|
+
CHANNEL_VERSION = "0.4.6.1"
|
|
8
|
+
VERSION = "0.6.1"
|
|
9
9
|
end
|
data/lib/munola.rb
CHANGED
|
@@ -8,6 +8,10 @@ require_relative "munola/detector"
|
|
|
8
8
|
require_relative "munola/providers_config"
|
|
9
9
|
require_relative "munola/installer"
|
|
10
10
|
require_relative "munola/cli"
|
|
11
|
+
# munola is a wrapper first. enola-rb requires rails because it is the Rails
|
|
12
|
+
# layer; munola only registers its generator when the application has already
|
|
13
|
+
# loaded Rails, so driving the binary alone costs nothing.
|
|
14
|
+
require_relative "munola/railtie" if defined?(Rails::Railtie)
|
|
11
15
|
|
|
12
16
|
Enola.channel = Munola::CHANNEL
|
|
13
17
|
Enola.resolver_factory = -> { Munola::Resolver.new(channel: Munola::CHANNEL) }
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: munola
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Muhamed Isabegovic
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-08-
|
|
11
|
+
date: 2026-08-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: enola
|
|
@@ -16,28 +16,28 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.5.
|
|
19
|
+
version: 0.5.3
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.5.
|
|
26
|
+
version: 0.5.3
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: enola-rb
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 0.5.
|
|
33
|
+
version: 0.5.3
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 0.5.
|
|
40
|
+
version: 0.5.3
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: enola-guides
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -56,8 +56,8 @@ description: |
|
|
|
56
56
|
The binary this gem fetches is not an enola-labs release. It is a build
|
|
57
57
|
cut from https://github.com/misabegovic/enola, a fork of enola, whose
|
|
58
58
|
release notes name what differs from upstream release by release; this
|
|
59
|
-
gem drives channel release 0.4.
|
|
60
|
-
0.4.
|
|
59
|
+
gem drives channel release 0.4.6.1, built on enola
|
|
60
|
+
0.4.6. Everything else is the enola gem's wrapper,
|
|
61
61
|
unchanged: fetched on first use, verified against the checksums the
|
|
62
62
|
release publishes, cached per user, every command and exit code
|
|
63
63
|
forwarded. Use the enola gem to run stock upstream instead.
|
|
@@ -66,7 +66,7 @@ description: |
|
|
|
66
66
|
enola-guides gem carries (Ember, data ownership, API boundaries,
|
|
67
67
|
background work, a tenant foreign key) into the project, binds the
|
|
68
68
|
recipes its tree justifies, and turns both Ruby providers on by default.
|
|
69
|
-
|
|
69
|
+
Under Rails it adds `rails generate munola:install`; the enola:* rake tasks come from enola-rb and drive munola's binary. Offered upstream where it fits;
|
|
70
70
|
no binary here, nothing compiled.
|
|
71
71
|
email:
|
|
72
72
|
- m.isabegovic@hotmail.com
|
|
@@ -79,6 +79,7 @@ files:
|
|
|
79
79
|
- LICENSE
|
|
80
80
|
- README.md
|
|
81
81
|
- exe/munola
|
|
82
|
+
- lib/generators/munola/install/install_generator.rb
|
|
82
83
|
- lib/munola.rb
|
|
83
84
|
- lib/munola/catalogue.rb
|
|
84
85
|
- lib/munola/channel.rb
|
|
@@ -86,6 +87,7 @@ files:
|
|
|
86
87
|
- lib/munola/detector.rb
|
|
87
88
|
- lib/munola/installer.rb
|
|
88
89
|
- lib/munola/providers_config.rb
|
|
90
|
+
- lib/munola/railtie.rb
|
|
89
91
|
- lib/munola/version.rb
|
|
90
92
|
homepage: https://github.com/misabegovic/enola-rb
|
|
91
93
|
licenses:
|