Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Sprockets 4 #1452

Merged
merged 1 commit into from Oct 28, 2019
Merged

Support Sprockets 4 #1452

merged 1 commit into from Oct 28, 2019

Commits on Oct 28, 2019

  1. Support Sprokets 4

    This fixes CI, which is currently failing for all appraisals with the
    following error:
    
    ```
    Sprockets::Railtie::ManifestNeededError:
      Expected to find a manifest file in `app/assets/config/manifest.js`
      But did not, please create this file and use it to link any assets that need
      to be rendered by your app:
    
      Example:
        //= link_tree ../images
        //= link_directory ../javascripts .js
        //= link_directory ../stylesheets .css
    ```
    
    This is due to Sprockets 4, which requires this `manifest.js` file. Sprockets
    4 was published on 8 October 2019, the day after the last successful build.
    
    From what I can tell, the only fix is having the client app listing
    Administrate's asset files in its `manifest.js` file. Therefore I'm creating
    one for the example app (used in the specs) and documenting this extra manual
    work in the README.
    
    For some detail on this manifest file, see
    https://www.schneems.com/2017/11/22/self-hosted-config-introducing-the-sprockets-manifestjs/
    
    If you run the specs locally with `bundle exec rake`, they'll probably pass.
    This is because the bundled `Gemfile.lock` has Sprockets pinned to version
    3.7.2 currently. However if you run the appraisal specs with
    `bundle exec appraisal rake`, these may fail because the appraisal lockfiles
    are not under version control, and therefore will be regenerated on first run.
    
    Note that a newly created Rails app won't have this issue at the time being.
    This is because Rails apps are still being generated to use the `sass` gem
    (despite its being end-of-life'd) and this depends on `sprockets < 4`. Using
    `sassc` in your app may land you Sprockets 4 though (you'd still have to
    explicitly `bundle update` to get it).
    
    I don't see a way to have Administrate provide an engine-level `manifest.js`
    instead of having the client application manually add it. I might be missing
    something though.
    
    Another option would be having the Administrate generator add the required
    lines to the manifest files. I think we'd still have to document it in the
    README, as that's bound to not be enough for many.
    pablobm authored and nickcharlton committed Oct 28, 2019
    Copy the full SHA
    a331659 View commit details
    Browse the repository at this point in the history