al_folio_upgrade 1.0.0 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 91910554f7cb55cf4d0183137c940f89c90770981a1094e471b51cd034044fc9
4
- data.tar.gz: 5c4d24dbbec94b1169f39955a0c33986d43957ac6a9b995f1f324594fca342c8
3
+ metadata.gz: bd88cb1402a827eabf6aa0071e3acdc3d5fcca076ded19ce25f1e5429cec47c9
4
+ data.tar.gz: 750cf28549ed799b5db297429c150bf6c4d3e2bb960d89b4ac2c751de2657aa1
5
5
  SHA512:
6
- metadata.gz: a2dfa76729a1c268b5d7f0215721833e0caf8112e6e9bcf0550ed79532c1c7889e46ec215ea2a67f85dd723cc87f0acd5eae847f2b5de08a9cbcad3eab3c3e72
7
- data.tar.gz: 84bd06b00efebb6668cb4992e58f7b2d67a310c120c3d0462700096d1e67392cb12366e9ce2cd1f9a9200438fa97f312cc2d014dcb9e0eba9d24865d5bf8974c
6
+ metadata.gz: fce9205106f25d2844fcb7a6088bc5f9679f6535a09456ebfa3bbc987c0cbf5cfce9865335b27a4b3e99b69c53616a248f321efa7504ce9c101c93aeba9c88eb
7
+ data.tar.gz: d71f687b9bd95392a617ab21f945d45d32470f3a43336b266b77ae4396ff7d1c641f43ee348c92581eec7f966d6a9af0376c26178051f694be148acc2fb3cf60
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
1
  # Changelog
2
2
 
3
- ## 1.0.0 - 2026-02-08\n- Initial release.\n- Added `al-folio upgrade audit`, `al-folio upgrade apply --safe`, and `al-folio upgrade report`.
3
+ ## 1.0.1 - 2026-02-17
4
+
5
+ - Added ownership-aware checks for plugin-owned local runtime assets (icons/search paths).
6
+ - Added config contract warning when `al_icons` is missing from plugin wiring.
7
+
8
+ ## 1.0.0 - 2026-02-08
9
+
10
+ - Initial release.
11
+ - Added `al-folio upgrade audit`, `al-folio upgrade apply --safe`, and `al-folio upgrade report`.
data/README.md CHANGED
@@ -11,7 +11,9 @@ Upgrade CLI for al-folio v1.x.
11
11
  ## What it checks
12
12
 
13
13
  - Core config contract (`al_folio.*`, Tailwind, Distill)
14
+ - Required plugin ownership wiring (for example `al_icons`)
14
15
  - Legacy Bootstrap/jQuery markers
15
16
  - Distill remote-loader policy
16
17
  - Local override drift when `theme: al_folio_core` is enabled
18
+ - Plugin-owned local asset drift (for example search/icon runtime files copied into starter paths)
17
19
  - Migration manifest availability from `al_folio_core`
@@ -59,6 +59,13 @@ module AlFolioUpgrade
59
59
  tailwind.config.js
60
60
  ].freeze
61
61
 
62
+ PLUGIN_OWNED_LOCAL_PATHS = {
63
+ "assets/js/search/**/*" => "al_search",
64
+ "assets/webfonts/**/*" => "al_icons",
65
+ "assets/fonts/academicons.*" => "al_icons",
66
+ "assets/fonts/scholar-icons.*" => "al_icons"
67
+ }.freeze
68
+
62
69
  def initialize(root: Dir.pwd, stdout: $stdout, stderr: $stderr)
63
70
  @root = Pathname.new(root)
64
71
  @stdout = stdout
@@ -139,6 +146,7 @@ module AlFolioUpgrade
139
146
  check_legacy_patterns(findings)
140
147
  check_distill_runtime(findings)
141
148
  check_core_override_drift(findings)
149
+ check_plugin_owned_local_assets(findings)
142
150
  findings
143
151
  end
144
152
 
@@ -220,6 +228,18 @@ module AlFolioUpgrade
220
228
  snippet: "Add al_folio.distill.engine/source/allow_remote_loader."
221
229
  )
222
230
  end
231
+
232
+ plugins = Array(parsed["plugins"]).map(&:to_s)
233
+ return if plugins.include?("al_icons")
234
+
235
+ findings << Finding.new(
236
+ id: "missing_al_icons_plugin",
237
+ severity: :warning,
238
+ message: "Missing `al_icons` in plugin list; icon runtime ownership moved out of core.",
239
+ file: "_config.yml",
240
+ line: 1,
241
+ snippet: "Add `- al_icons` under plugins."
242
+ )
223
243
  end
224
244
 
225
245
  def check_legacy_assets(findings)
@@ -346,6 +366,24 @@ module AlFolioUpgrade
346
366
  end
347
367
  end
348
368
 
369
+ def check_plugin_owned_local_assets(findings)
370
+ PLUGIN_OWNED_LOCAL_PATHS.each do |glob, owner_plugin|
371
+ Dir.glob(@root.join(glob)).sort.each do |path|
372
+ next unless File.file?(path)
373
+
374
+ relative = Pathname.new(path).relative_path_from(@root).to_s
375
+ findings << Finding.new(
376
+ id: "plugin_owned_local_asset",
377
+ severity: :warning,
378
+ message: "Local asset path is plugin-owned by `#{owner_plugin}` and may drift from release contracts.",
379
+ file: relative,
380
+ line: 1,
381
+ snippet: "Prefer plugin-managed runtime assets for this path."
382
+ )
383
+ end
384
+ end
385
+ end
386
+
349
387
  def each_candidate_file
350
388
  FILE_GLOBS.each do |glob|
351
389
  Dir.glob(@root.join(glob)).sort.each do |path|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AlFolioUpgrade
4
- VERSION = "1.0.0"
4
+ VERSION = "1.0.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: al_folio_upgrade
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - al-folio maintainers
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2026-02-16 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: jekyll
@@ -120,7 +119,6 @@ metadata:
120
119
  allowed_push_host: https://rubygems.org
121
120
  homepage_uri: https://github.com/al-org-dev/al-folio-upgrade
122
121
  source_code_uri: https://github.com/al-org-dev/al-folio-upgrade
123
- post_install_message:
124
122
  rdoc_options: []
125
123
  require_paths:
126
124
  - lib
@@ -135,8 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
133
  - !ruby/object:Gem::Version
136
134
  version: '0'
137
135
  requirements: []
138
- rubygems_version: 3.4.10
139
- signing_key:
136
+ rubygems_version: 4.0.6
140
137
  specification_version: 4
141
138
  summary: Upgrade tooling for al-folio v1.x
142
139
  test_files: []