Openstreetmap-website: Sprockets vs optional config files

Created on 20 Mar 2019  路  1Comment  路  Source: openstreetmap/openstreetmap-website

In app/assets/javascripts/osm.js.erb we need to tell sprockets to recompile the output whenever the settings change. To do this we mark that file as depending on config/settings.yml and config/settings.local.yml.

However, this throws up two problems:

  • settings.local.yml is supposed to be optional, but Sprockets throws an error if the file can't be found.
  • The config gem also supports a bunch of other files, which should also trigger a recompile if they exist and then get changed.

I've checked through the sprockets documentation, but I can't see any obvious guidance for approaches to this situation.

Potential solutions include:

  • Remove the dependency on settings.local.yml. This will make the 'out-of-the-box' situation better for developers, but could lead to problems later on when changes to that file are not reflected in the compiled javascript (without manual asset recompilation).
  • Ask the upstream sprockets developers what they think about depending on optional files, or if they have any suggestions.
  • Create an initializer which outputs the computed settings to a file, and depend on that output file instead.
dx

Most helpful comment

For anyone who gets ActionView::Template::Error: couldn't find file 'settings.local.yml' or similar when first setting up your environment, then this issue is the root cause. You need to create an empty file in config/settings.local.yml, for example by running:

$ touch config/settings.local.yml

>All comments

For anyone who gets ActionView::Template::Error: couldn't find file 'settings.local.yml' or similar when first setting up your environment, then this issue is the root cause. You need to create an empty file in config/settings.local.yml, for example by running:

$ touch config/settings.local.yml
Was this page helpful?
0 / 5 - 0 ratings