Version 2.0.0 beta 1

This is a beta version because there are still features and fixes planned for
v2.0.0. This version should be as stable as v1.12.

The biggest features are general increased speed, the theme engine, and the new
documentation. See the release notes
for the most important changes.

If you are referencing `$lp_err`, setting `$LP_DISABLED_VCS_PATH`, or calling
`_lp_title()`, see the upgrade notes for help with upgrading.

BREAKING CHANGES

Note: these breaking changes are the only reason that this version is so much
faster. They are also on private functions and variables, which the end user
was not supposed to use. If you were using them, see the upgrade notes for help.

- general: `$_LP_SHELL_bash` and `$_LP_SHELL_zsh` contain `1` or `0` instead of `true`
  or `false` (f681cdf)
- general: `_lp_color_map()` return changed from stdout to `$ret` (e843ccf)
- general: `_lp_escape()` renamed to `__lp_escape()` and return changed from stdout to
  `$ret` (f3404f9)
- general: `_lp_set_prompt()` renamed to `__lp_set_prompt()` (decaece)
- general: `_lp_source_config()` renamed to `__lp_source_config()` (decaece)
- battery: `_lp_battery()` return changed from stdout to `$lp_battery` (3f57231)
- battery: `_lp_battery_color()` return changed from stdout to `$lp_battery_color` (3f57231)
- env: `$lp_err` renamed to `$lp_error` (63b9f73)
- env: `_lp_connection()` return changed from stdout to `$lp_connection` (edc490f)
- git: `_lp_git_head_status()` return changed from stdout to `$lp_vcs_head_status` (7c21470)
- jobs: `_lp_jobcount_color()` return changed from stdout to `$lp_jobcount_color` (73f2057)
- load: `_lp_load_color()` return changed from stdout to `$lp_load_color` (8a987f4)
- path: `_lp_get_home_tilde_collapsed()` renamed to `__lp_pwd_tilde()` and return changed from
  stdout to `$lp_pwd_tilde` (28c13f2)
- path: `_lp_set_dirtrim()` renamed to `__lp_set_dirtrim()` (decaece)
- path: `_lp_shorten_path()` renamed to `__lp_shorten_path()` and return changed from stdout to
  `$lp_shorten_path` without formatting (decaece, a35032f)
- runtime: `_lp_runtime()` renamed to `_lp_runtime_color()` and return changed from stdout to
  `$lp_runtime_color` (0f0fd37)
- runtime: `_lp_runtime_after()` renamed to `__lp_runtime_after()` (decaece)
- runtime: `_lp_runtime_before()` renamed to `__lp_runtime_before()` (decaece)
- temperature: `_lp_temp_acpi()` renamed to `__lp_temp_acpi()` and return chagned from
  `$temperature` to `$lp_temperature` (69c75a3)
- temperature: `_lp_temp_detect()` renamed to `__lp_temp_detect()` (69c75a3)
- temperature: `_lp_temp_sensors()` renamed to `__lp_temp_sensors()` and return chagned from
  `$temperature` to `$lp_temperature` (69c75a3)
- temperature: `_lp_temperature()` changed to data function, replaced by
  `_lp_temperature_color()` and return changed from stdout to `$lp_temperature_color` (69c75a3)
- time: `_lp_time()` split into `_lp_time()`, `_lp_time_color()`, `_lp_analog_time()`, and
  `_lp_analog_time_color()` (8cb609d)
- vcs: `_lp_<vcs>_branch()` return changed from stdout to `$lp_vcs_branch` (f3404f9)
- vcs: `_lp_<vcs>_branch_color()` functions removed, replaced by
  `_lp_vcs_details_color()` (cafb8b2, bf2b9c6, 1a9fcd0, 4fff496, b523025)
- vcs: `_lp_smart_mark()` return changed from stdout to `$lp_smart_mark` (9c6d073)
- vcs: `_lp_upwards_find()` removed, replaced by `_lp_find_vcs()` (f434b6d)

Deprecated
- title: `_lp_title()` is replaced by `_lp_formatted_title()` (46df995, 9604203, #581)
- utils: `_lp_bool()` is replaced by manually storing return codes (82ee823).
- utils: `_lp_sb()` is replaced by data functions indicating if they
  returned data or not (82ee823).
- utils: `_lp_sl()` is replaced by data functions indicating if they
  returned data or not (82ee823).
- utils: `_lp_sr()` is replaced by data functions indicating if they
  returned data or not (82ee823).
- vcs: `$LP_DISABLED_VCS_PATH` variable is replaced by a
  `$LP_DISABLED_VCS_PATHS` array variable. A warning will be displayed at
  startup if your config still uses the old variable, but a compatibility shim
  is active. See the upgrade notes for help (cad6286)

Added
- general: Sphinx documentation (0d420d2, c7b5003, b523025, f9fd12e)
- general: Command line flag `--no-activate` to skip auto shell activation when sourcing
  liquidprompt (e122d21)
- general: `lp_activate()` function to reload config without needing to re-source
  liquidprompt (e1f8bd5, 22dd760)
- general: `theme-preview.sh` script to generate standard prompt previews (0b94b74)
- bzr: `_lp_bzr_active()` data function (b523025)
- bzr: `_lp_bzr_commit_id()` data function (b523025)
- bzr: `_lp_bzr_stash_count()` data function (b523025)
- bzr: `_lp_bzr_tag()` data function (b523025)
- bzr: `_lp_bzr_uncommitted_files()` data function (b523025)
- bzr: `_lp_bzr_uncommitted_lines()` data function (b523025)
- bzr: `_lp_bzr_untracked_files()` data function (b523025)
- color: `lp_terminal_format()` util function (#486, 09cfced)
- env: `$LP_ENABLE_ERROR` config option (#543, 63b9f73)
- env: `_lp_chroot()` data function (c946155)
- env: `_lp_connected_display()` data function (c946155)
- env: `_lp_error()` data function (63b9f73)
- env: `_lp_hostname()` data function (8de1a72, 6ea54e9)
- env: `_lp_hostname_color()` theme function (c946155, 8de1a72, b1a3145)
- env: `_lp_http_proxy()` data function (78dee3c)
- env: `_lp_http_proxy_color()` theme function (78dee3c)
- env: `_lp_multiplexer()` data function (0200b99, 230c9d7)
- env: `_lp_python_env()` data function (03434d3)
- env: `_lp_python_env_color()` theme function (03434d3)
- env: `_lp_software_collections()` data function (f4afc5d)
- env: `_lp_software_collections_color()` theme function (f4afc5d)
- env: `_lp_sudo_active()` data function (9ba5d28)
- env: `_lp_sudo_active_color()` theme function (9ba5d28)
- env: `_lp_user()` data function (9ba5d28)
- env: `_lp_username()` data function (debb794)
- env: `_lp_username_color()` theme function (afe3195)
- fossil: `_lp_fossil_active()` data function (bf2b9c6)
- fossil: `_lp_fossil_commit_id()` data function (bf2b9c6)
- fossil: `_lp_fossil_head_status()` data function (bf2b9c6)
- fossil: `_lp_fossil_stash_count()` data function (bf2b9c6)
- fossil: `_lp_fossil_uncommitted_files()` data function (bf2b9c6)
- fossil: `_lp_fossil_uncommitted_lines()` data function (bf2b9c6)
- fossil: `_lp_fossil_untracked_files()` data function (bf2b9c6)
- git: `_lp_git_active()` data function (70b4ef6)
- git: `_lp_git_commit_id()` data function (70b4ef6)
- git: `_lp_git_commits_off_remote()` data function (309b443)
- git: `_lp_git_stash_count()` data function (fe9919f, bb19836)
- git: `_lp_git_tag()` data function (70b4ef6, #506)
- git: `_lp_git_uncommitted_files()` data function (67dc0a9)
- git: `_lp_git_uncommitted_lines()` data function (70b4ef6)
- git: `_lp_git_unstaged_files()` data function (67dc0a9)
- git: `_lp_git_unstaged_lines()` data function (70b4ef6)
- git: `_lp_git_untracked_files()` data function (fe9919f)
- hg: `_lp_hg_active()` data function (1a9fcd0)
- hg: `_lp_hg_bookmark()` data function (f4636e6)
- hg: `_lp_hg_commit_id()` data function (1a9fcd0)
- hg: `_lp_hg_head_status()` data function (1a9fcd0)
- hg: `_lp_hg_stash_count()` data function (1a9fcd0)
- hg: `_lp_hg_tag()` data function (1a9fcd0)
- hg: `_lp_hg_uncommitted_files()` data function (1a9fcd0)
- hg: `_lp_hg_uncommitted_lines()` data function (1a9fcd0)
- hg: `_lp_hg_untracked_files()` data function (1a9fcd0)
- jobs: `$LP_ENABLE_DETACHED_SESSIONS` config option, separate from jobs (f9038e0, 862dcfb, #552)
- jobs: `_lp_detached_sessions()` data function (73f2057, 862dcfb)
- jobs: `_lp_jobcount()` data function (73f2057)
- load: `_lp_load()` data function (8a987f4)
- path: `$lp_path` data variable (a35032f)
- path: `__lp_path()` internal function (a35032f)
- runtime: `_lp_runtime_format()` data function (0f0fd37)
- svn: `_lp_svn_active()` data function (4fff496)
- svn: `_lp_svn_commit_id()` data function (4fff496)
- svn: `_lp_svn_uncommitted_files()` data function (4fff496)
- svn: `_lp_svn_uncommitted_lines()` data function (4fff496)
- svn: `_lp_svn_untracked_files()` data function (4fff496)
- temperature: `_lp_temperature()` as data function (69c75a3)
- tests: Tests to check if a shell supports all features that Liquidprompt
  needs (#469, 46918f6, 5a9293d, cdb860)
- tests: Github Actions build file (#469, 05e0a50)
- theme: `__lp_theme_bash_complete()` to complete themes in Bash for `lp_theme()` (884c069)
- theme: `__lp_theme_list()` to list themes loaded in function memory (884c069)
- theme: `__lp_theme_zsh_complete()` to complete themes in Zsh for `lp_theme()` (884c069)
- theme: `_lp_default_theme_activate()` theme function (40c4331, 45f8091)
- theme: `_lp_default_theme_directory()` theme function (40c4331, 45f8091)
- theme: `_lp_default_theme_prompt()` theme function (40c4331, 45f8091)
- theme: `lp_theme()` to switch themes without resourcing any
  files (45f8091, 884c069, #592)
- theme: `powerline_full`, the default theme order in Powerline style (bcefaf3)
- theme: `powerline`, a clone of the Powerline prompt (af8382b, 8de1a72, 5ef795d, #520)
- time: `_lp_analog_time()` data function (8cb609d, bc120d5)
- time: `_lp_analog_time_color()` theme function (8cb609d, bc120d5)
- time: `_lp_time()` data function (bc120d5)
- time: `_lp_time_color()` theme function (bc120d5)
- title: `lp_formatted_title()` sets persistent title stripping terminal formatting
  sequences (46df995, 9604203)
- title: `_lp_raw_title()` sets persistent title without stripping terminal formatting
  sequences (46df995)
- title: `lp_title()` sets a manual title that overrides the theme set title (46df995, #609)
- utils: `__lp_is_function()` util function (9b40ca1)
- utils: `__lp_line_count()` util function (a314677)
- vcs: `_lp_find_vcs()` to quickly find nearest VCS repo (f434b6d, #524)
- vcs: `_lp_vcs_active()` data function (cafb8b2, #524)
- vcs: `_lp_vcs_bookmark()` data function (f4636e6, #524)
- vcs: `_lp_vcs_branch()` data function (cafb8b2, #524)
- vcs: `_lp_vcs_commit_id()` data function (cafb8b2, #524)
- vcs: `_lp_vcs_commits_off_remote()` data function (cafb8b2, #524)
- vcs: `_lp_vcs_details_color()` to format VCS details regardless of VCS
  type (cafb8b2, f4636e6, 5c56e65, #524)
- vcs: `_lp_vcs_head_status()` data function (cafb8b2, #524)
- vcs: `_lp_vcs_stash_count()` data function (cafb8b2, #524)
- vcs: `_lp_vcs_tag()` data function (cafb8b2, #506, #524)
- vcs: `_lp_vcs_uncommitted_files()` data function (cafb8b2, #524)
- vcs: `_lp_vcs_uncommitted_lines()` data function (cafb8b2, #524)
- vcs: `_lp_vcs_unstaged_files()` data function (cafb8b2, #524)
- vcs: `_lp_vcs_unstaged_lines()` data function (cafb8b2, #524)
- vcs: `_lp_vcs_untracked_files()` data function (cafb8b2, #524)

Fixed
- general: Issues with custom `$IFS` (e48856b)
- general: Liquidprompt is now `set -u` compatable (#354, a8aa8c9, cb9d71b)
- battery: Color display would break with custom `$LP_COLORMAP` array (f3f20ec)
- runtime: DEBUG trap was not unset if `$LP_ENABLE_RUNTIME_BELL` was disabled (cb9d71b)
- time: Add default value for `$LP_TIME_ANALOG` (f8c1c47)
- vcs: VCS display for new VCS works without needing to change directories (f434b6d)

Changed
- general: Exit if shell is in interactive mode (f2276fc)
- general: Load all functions at source time, not only ones enabled by the
  config (e1f8bd5, 8cb609d)
- general: Remove subshells to improve speed (#607, 9ba6e86, e2ba86e)
- general: Remove uses of eval improve speed and security (4fff496, 1a56d58)
- color: Better handling when `tput` is not found (09cfced)
- fossil: Remove `sed` call in `_lp_fossil_branch()` (6d94db6)
- git: `_lp_git_branch()` only returns a matching branch, not a fallback commit ID. Use
  `_lp_git_commit_id()` instead (70b4ef6)
- git: `_lp_git_head_status()` add more matches from official git prompt, as well as details
  for partial rebases (#527, 5c56e65)
- jobs: Use `__lp_line_count()` instead of `wc -l` for data function (fb123f4)
- runtime: Save bell escape sequence on startup to save time when sending bell to terminal
  with runtime bell (3e615cd)
- svn: `_lp_svn_branch()` prefixes tag with "tag/", no longer returns current directory if no
  match found (4fff496)

Removed
- vcsh: `$LP_ENABLE_VCSH` config option, which did nothing (f86a097)