<commit_before>defmodule Config.Provider do
  @moduledoc """
  Specifies a provider API that loads configuration during boot.

  Config providers are typically used during releases to load
  external configuration while the system boots. This is done
  by starting the VM with the minimum amount of applications
  running, then invoking all of the providers, and then
  restarting the system. This requires a mutable configuration
  file on disk, as the results of the providers are written to
  the file system. For more information on runtime configuration,
  see `mix release`.

  ## Multiple config files

  One common use of config providers is to specify multiple
  configuration files in a release. Elixir ships with one provider,
  called `Config.Reader`, which is capable of handling Elixir's
  built-in config files.

  For example, imagine you want to list some basic configuration
  on Mix's built-in `config/runtime.exs` file, but you also want
  some additional configuration files. To do so, you can do this
  in your `mix.exs`:

      releases: [
        demo: [
          config_providers: [
            {:system, "RELEASE_ROOT", "/extra_config.exs"}
          ]
        ]
      ]

  You can place this `extra_config.exs` file in your release in
  multiple ways:

    1. If it is available on the host when assembling the release,
      you can place it on "rel/overlays/extra_config.exs" and it
      will be automatically copied to the release root

    2. If it is available on the target during deployment, you can<commit_msg>Rectify usage of reader in release configuration (#10769)<commit_after>defmodule Config.Provider do
  @moduledoc """
  Specifies a provider API that loads configuration during boot.

  Config providers are typically used during releases to load
  external configuration while the system boots. This is done
  by starting the VM with the minimum amount of applications
  running, then invoking all of the providers, and then
  restarting the system. This requires a mutable configuration
  file on disk, as the results of the providers are written to
  the file system. For more information on runtime configuration,
  see `mix release`.

  ## Multiple config files

  One common use of config providers is to specify multiple
  configuration files in a release. Elixir ships with one provider,
  called `Config.Reader`, which is capable of handling Elixir's
  built-in config files.

  For example, imagine you want to list some basic configuration
  on Mix's built-in `config/runtime.exs` file, but you also want
  some additional configuration files. To do so, you can do this
  in your `mix.exs`:

      releases: [
        demo: [
          config_providers: [
            {Config.Reader, {:system, "RELEASE_ROOT", "/extra_config.exs"}}
          ]
        ]
      ]

  You can place this `extra_config.exs` file in your release in
  multiple ways:

    1. If it is available on the host when assembling the release,
      you can place it on "rel/overlays/extra_config.exs" and it
      will be automatically copied to the release root

    2. If it is available on the target during deployment, you can
{'fraction_non_alphanumeric': 0.05103011093502377, 'fraction_numerical': 0.0028526148969889066, 'mean_word_length': 3.2419354838709675, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3377363', 'n_tokens_mistral': 824, 'n_tokens_neox': 785, 'n_words': 421}