feat(ShellCheck): add ShellCheck 0.11.0 and route it to the base repo - #18318
Conversation
There was a problem hiding this comment.
Pull request overview
Adds ShellCheck 0.11.0 and its missing Haskell dependencies as bare Fedora 43 components.
Changes:
- Registers ShellCheck, ghc-Diff, and ghc-fgl.
- Adds generated specs, sources, and lock files.
- Includes ghc-Diff’s revised Cabal metadata.
Reviewed changes
Copilot reviewed 8 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
base/comps/components.toml |
Registers three components. |
locks/ShellCheck.lock |
Pins ShellCheck upstream state. |
locks/ghc-Diff.lock |
Pins ghc-Diff upstream state. |
locks/ghc-fgl.lock |
Pins ghc-fgl upstream state. |
specs/s/ShellCheck/ShellCheck.spec |
Defines ShellCheck RPM packaging. |
specs/s/ShellCheck/sources |
Records ShellCheck source checksum. |
specs/g/ghc-Diff/ghc-Diff.spec |
Defines ghc-Diff RPM packaging. |
specs/g/ghc-Diff/Diff-0.5.cabal |
Supplies revised Cabal metadata. |
specs/g/ghc-Diff/sources |
Records ghc-Diff source checksum. |
specs/g/ghc-fgl/ghc-fgl.spec |
Defines ghc-fgl RPM packaging. |
specs/g/ghc-fgl/sources |
Records ghc-fgl source checksum. |
|
@liunan-ms Great to see this coming through! This package has been long-requested 😄 Just a reminder that new package additions will require working with the team to get them allow-listed in our build services (koji) -- across dev and prod. |
@reubeno Thanks for the reminder! I'll request to allowlist these packages in Koji. One question on the publish channel for these packages, do we want to publish them to base or sdk repo? |
I expect that |
|
/azp run |
|
Azure Pipelines: 2 pipeline(s) were filtered out due to trigger conditions. |
Only |
Sounds good to me. Are you planning to update this PR to route Also I see that scratch package build failed. This is expected since the packages added are built in parallel, and |
reuben olinsky (reubeno)
left a comment
There was a problem hiding this comment.
The changes themselves look good, but after more reflection we'd like you to split out the ShellCheck addition into a separate PR that we can approve after the first one goes in.
| [components.SDL3_ttf] | ||
| [components.SDL_gfx] | ||
| [components.SFCGAL] | ||
| [components.ShellCheck] |
There was a problem hiding this comment.
issue(blocking): I discussed a bit more with the other maintainers. Given the relatively (small) number of components touched in this PR, we'd like you to split this PR in two:
- Add: ghc-Diff + ghc-fgl; we expect scratch PR builds should pass on this, as they already have in this PR.
- Add
ShellCheck; once PR (1) is merged we can see the PR scratch build checks pass on this. I'd also recommend including thebaserepo routing entry forShellCheckin this PR.
There was a problem hiding this comment.
That sounds good, will split the PR.
b2f02ae to
4302eef
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 5 changed files in this pull request and generated no new comments.
Suppressed comments (1)
base/comps/components-publish-channels.toml:2361
- This component-level entry sends every binary RPM produced by the SRPM to
rpm-base, not only theShellCheckexecutable package. The rendered spec also emitsghc-ShellCheckandghc-ShellCheck-devel(plus conditional-doc/-profpackages), and-develexplicitly requiresghc-compiler; currently onlyghc-srpm-macrosis routed to base. This therefore pulls Haskell artifacts/dependencies into base contrary to the PR rationale. Add theghc-ShellCheck*sibling packages to[package-groups.exceptions-packages](or stop building them) so only the executable package remains in base.
"ShellCheck",
Import ShellCheck 0.11.0 (shell script analysis tool) from Fedora 43 as a bare upstream component, and route it to the base RPM channel. The shellcheck binary is statically linked against its Haskell libraries, so it has no ghc-* runtime dependencies (only libc/libm/libffi/libgmp). Its build dependencies ghc-Diff and ghc-fgl are added separately on liunan/add-ghc-packages and must land first. Built and smoke-tested in a mock chroot (shellcheck --version, lint of both a flawed and a clean script).
4302eef to
817ddef
Compare
reuben olinsky (reubeno)
left a comment
There was a problem hiding this comment.
Changes look good to me -- we'll need to wait for PR check scratch builds to go green before we merge, though.
|
/azp run |
|
Azure Pipelines: 2 pipeline(s) were filtered out due to trigger conditions. |
Summary
Adds ShellCheck 0.11.0 (shell script analysis tool) to Azure Linux 4.0, imported from Fedora 43 as a bare upstream component (no overlays), and routes it to the base RPM channel.
ShellCheck0.11.0 (inline Fedora-43 import incomponents.toml)base-packagesincomponents-publish-channels.toml(→rpm-base)ghc-ShellCheck*library subpackages carved tosdkviaexceptions-packagesDependency notes
ShellCheck's build dependencies
ghc-Diffandghc-fglare added in a separate prerequisite PR: #18332 (which must merge first). All otherBuildRequiresare satisfied by the existingghccompiler package and already-packagedghc-*libraries.The
shellcheckbinary is statically linked against its Haskell libraries, so theShellCheckbinary RPM has noghc-*runtime dependencies — onlylibc/libm/libffi/libgmp.Channel routing (base vs sdk)
The
base-packagesgroup applies at the component level, i.e. to every binary RPM the SRPM produces. TheShellCheckSRPM emits five binaries:ShellCheck(executable)libc/libm/libffi/libgmpghc-ShellCheck(library)libHS*librariesghc-ShellCheck-develRequires: ghc-compilerghc-ShellCheck-docghc-ShellCheck-profTo avoid dragging the Haskell library stack (and unsatisfiable base deps like
ghc-compiler) into base, the fourghc-ShellCheck*siblings are carved into[package-groups.exceptions-packages](→sdk), leaving only theshellcheckexecutable in base. Theghccompiler and runtimeghc-*libraries already live insdk.Validation
ghc-Diff→ghc-fgl→ShellCheckbuilt cleanly with%checkenabled, producingShellCheck-0.11.0-2.azl4.x86_64.rpmplus theghc-ShellCheck*subpackages.shellcheckresolves to/usr/bin/shellcheck.SC2154,SC2086) and exits non-zero.rpm -qpRon theShellCheckbinary RPM shows onlylibc/libm/libffi/libgmp(noghc-*/libHS*).azldev config dumpaccepts the publish-channel change.azldev comp rendershows no spec drift.Related / merge order
ghc-Diff-devel/ghc-fgl-devel.