What's Changed
* Allow for flexible (de)serialization fixing 1555 by jondequinor in https://github.com/equinor/ert/pull/1961
* Add prerequirements heading to README by sregales-TNO in https://github.com/equinor/ert/pull/1968
* Clang format by dotfloat in https://github.com/equinor/ert/pull/1959
* Shared disk transmitter use internal mime by sondreso in https://github.com/equinor/ert/pull/1972
* Re-enable ensemble evaluator as default by sondreso in https://github.com/equinor/ert/pull/1980
* Add plugin hook for log handles by oyvindeide in https://github.com/equinor/ert/pull/1981
* Create skeleton Dark Storage by dotfloat in https://github.com/equinor/ert/pull/1979
* Add selection to the file dialog by frode-aarstad in https://github.com/equinor/ert/pull/1957
* Move logs to .OUT for eclipse >= 2019.3 by sondreso in https://github.com/equinor/ert/pull/1982
* Replace bare except with ValueError in ecl config by dafeda in https://github.com/equinor/ert/pull/1986
* Delay GC of run_context on BaseRunModel by jondequinor in https://github.com/equinor/ert/pull/1974
* Add skeleton GraphQL API to Dark Storage by dotfloat in https://github.com/equinor/ert/pull/1997
* refactor/lagecy_logging by sregales-TNO in https://github.com/equinor/ert/pull/1977
* List ensembles by mortalisk in https://github.com/equinor/ert/pull/1998
* Rewrite parts of code of conduct by dafeda in https://github.com/equinor/ert/pull/1988
* Remove transmit_data from transmitters by sondreso in https://github.com/equinor/ert/pull/2010
* Add 2.27 release notes by markusdregi in https://github.com/equinor/ert/pull/1966
* Change description and fix type-name by dafeda in https://github.com/equinor/ert/pull/2008
* Use correct ensemble size by oysteoh in https://github.com/equinor/ert/pull/2019
* Add parameter endpoints for REST and graphQL by frode-aarstad in https://github.com/equinor/ert/pull/2007
* Update Equinor distribution information in docs by markusdregi in https://github.com/equinor/ert/pull/2024
* Remove SPE1_WORKSPACE_ROOT remnant from README by markusdregi in https://github.com/equinor/ert/pull/2025
* Add basic poly ert-test-example to README by Blunde1 in https://github.com/equinor/ert/pull/2022
* Add first observation http endpoint by frode-aarstad in https://github.com/equinor/ert/pull/2020
* add response to endpoints and gql by mortalisk in https://github.com/equinor/ert/pull/2015
* Log error by oyvindeide in https://github.com/equinor/ert/pull/2026
* Make plugin hook more explicit by oyvindeide in https://github.com/equinor/ert/pull/2043
* Use configured runpath file by oyvindeide in https://github.com/equinor/ert/pull/2046
* Res config init by dafeda in https://github.com/equinor/ert/pull/2030
* Move dark storage tests by oysteoh in https://github.com/equinor/ert/pull/2052
* Add records and priors by mortalisk in https://github.com/equinor/ert/pull/2042
* Fix minor typo, follwing -> following by berland in https://github.com/equinor/ert/pull/2001
* Extensive usage of StorageTransmitters by DanSava in https://github.com/equinor/ert/pull/1953
* Note about ulimit for Mac by BjarneHerland in https://github.com/equinor/ert/pull/2061
* Make evaluator able to deal with long updates by jondequinor in https://github.com/equinor/ert/pull/2057
* Remove config dict for prefect ensemble by sondreso in https://github.com/equinor/ert/pull/2066
* Increase timeout by oyvindeide in https://github.com/equinor/ert/pull/2073
* Move logging statement by oyvindeide in https://github.com/equinor/ert/pull/2069
* Exporter logging by dafeda in https://github.com/equinor/ert/pull/2056
* Calculate misfits in dark storage by mortalisk in https://github.com/equinor/ert/pull/2047
* Use .so instead of .dylib suffix on macOS by dotfloat in https://github.com/equinor/ert/pull/2079
* Use record-name as key when storing records from config by Blunde1 in https://github.com/equinor/ert/pull/2041
* Avoid hanging test on M1-based Macs. by BjarneHerland in https://github.com/equinor/ert/pull/2068
* Add port range as argument to cli runs by sondreso in https://github.com/equinor/ert/pull/2083
* Replace console progressbar by dafeda in https://github.com/equinor/ert/pull/2054
* Remove docs for previously removed builtin workflow jobs by ManInFez in https://github.com/equinor/ert/pull/2080
* Add logging to job_runner.reporting by sregales-TNO in https://github.com/equinor/ert/pull/2028
* Add exception by oyvindeide in https://github.com/equinor/ert/pull/2082
* Delete unused const LOG_URL by dafeda in https://github.com/equinor/ert/pull/2090
* Use get to read dict by dafeda in https://github.com/equinor/ert/pull/2092
* Introduce uniform/invariant records concept by verveerpj in https://github.com/equinor/ert/pull/2070
* Fix <NUM_CPU> not being subst. when set in .ert by dotfloat in https://github.com/equinor/ert/pull/2099
* Remove outdated help resources by sondreso in https://github.com/equinor/ert/pull/2086
* Allow unlink to fail by jondequinor in https://github.com/equinor/ert/pull/2102
* Stop logging to stdout by dafeda in https://github.com/equinor/ert/pull/2106
* Refactor ServerMonitor, make 'ert api', 'ert vis' behave by dotfloat in https://github.com/equinor/ert/pull/2018
* Fix ies_enkf analysis module to allow custom initial ensemble mask. by DanSava in https://github.com/equinor/ert/pull/2074
* Log workflow usage by ManInFez in https://github.com/equinor/ert/pull/2113
* Log forward model jobs by dafeda in https://github.com/equinor/ert/pull/2098
* Fix environment test by BjarneHerland in https://github.com/equinor/ert/pull/2093
* Output newline into the output stream defined in cli monitor by ManInFez in https://github.com/equinor/ert/pull/2120
* Remove libres version from about dialog by ManInFez in https://github.com/equinor/ert/pull/2122
* Remove unused komodo Jenkins file by sondreso in https://github.com/equinor/ert/pull/2124
* Remove outdated tips file from docs by sondreso in https://github.com/equinor/ert/pull/2126
* Remove outdated files in libres source directory by sondreso in https://github.com/equinor/ert/pull/2127
* Ertsummary readthrough by dafeda in https://github.com/equinor/ert/pull/2112
* Simplify Record design by jondequinor in https://github.com/equinor/ert/pull/2071
* Issue 2117 by BjarneHerland in https://github.com/equinor/ert/pull/2134
* Make project_id Optional in connection get_info() by oysteoh in https://github.com/equinor/ert/pull/2131
* Remove ResLog by oyvindeide in https://github.com/equinor/ert/pull/2138
* Split testKomodo into three separate files for ert, libres-python and… by ManInFez in https://github.com/equinor/ert/pull/2125
* Increase max runs on flaky tests by oyvindeide in https://github.com/equinor/ert/pull/2139
* Update workflows docs by dafeda in https://github.com/equinor/ert/pull/2039
* Libres cmake cleanup by dafeda in https://github.com/equinor/ert/pull/2135
* Assert input tidy by dafeda in https://github.com/equinor/ert/pull/2114
* Inject rms-env after disable_komodo_exec is called by ManInFez in https://github.com/equinor/ert/pull/2104
* Avoid flaky test + add PoC for fix by BjarneHerland in https://github.com/equinor/ert/pull/2141
* Issue 2145 by BjarneHerland in https://github.com/equinor/ert/pull/2147
* Issue 2072 by BjarneHerland in https://github.com/equinor/ert/pull/2097
* Issue 2145 by BjarneHerland in https://github.com/equinor/ert/pull/2149
* Fix spelling mistake in template render docs by sondreso in https://github.com/equinor/ert/pull/2152
* Issue 2150 by BjarneHerland in https://github.com/equinor/ert/pull/2151
* Add concept of record transformation by xjules in https://github.com/equinor/ert/pull/2040
* Implement direct fetching of realizations in dark_storage by mortalisk in https://github.com/equinor/ert/pull/2065
* remove unlink_node and unlink_vector by mortalisk in https://github.com/equinor/ert/pull/2155
* Provide output when producing error from unit_step by xjules in https://github.com/equinor/ert/pull/2144
* Replace util_file_exists with exists by dafeda in https://github.com/equinor/ert/pull/2142
* Avoid flaky tests by BjarneHerland in https://github.com/equinor/ert/pull/2156
* Test indexed ordered dict by dafeda in https://github.com/equinor/ert/pull/2172
* Handle unexpected return value by BjarneHerland in https://github.com/equinor/ert/pull/2157
* Remove an extra summary.df from summary2json job by xjules in https://github.com/equinor/ert/pull/2182
* Replace x-dataframe by frode-aarstad in https://github.com/equinor/ert/pull/2154
* Make function step use one transmitter per output by sondreso in https://github.com/equinor/ert/pull/2183
* Remove unused _NumericalMetaData class by xjules in https://github.com/equinor/ert/pull/2187
* Compare dark and new storage request responses by DanSava in https://github.com/equinor/ert/pull/2100
* Add flake8 to dev-requirements by dafeda in https://github.com/equinor/ert/pull/2188
* Set input and output type in polynomial function by sondreso in https://github.com/equinor/ert/pull/2201
* Make input source configuration more independent by jondequinor in https://github.com/equinor/ert/pull/2203
* Install Conan (C++ package manager) in CI by mortalisk in https://github.com/equinor/ert/pull/2207
* Use Ubuntu 20.04 for Read The Docs builds by markusdregi in https://github.com/equinor/ert/pull/2205
* Test changing default mime by dafeda in https://github.com/equinor/ert/pull/2185
* Avoid using mutable instance as default argument by sondreso in https://github.com/equinor/ert/pull/2212
* Add section about commits in CONTRIBUTING.md by sondreso in https://github.com/equinor/ert/pull/2214
* Replace RML_ENKF with LIB_IES by DanSava in https://github.com/equinor/ert/pull/2037
* Modified to test right things + converted to snapshot-test by BjarneHerland in https://github.com/equinor/ert/pull/2148
* Delete empty readme by dafeda in https://github.com/equinor/ert/pull/2231
* Add callback function to log util_abort by oyvindeide in https://github.com/equinor/ert/pull/2230
* Add module docstring by dafeda in https://github.com/equinor/ert/pull/2232
* Provide output transformations by xjules in https://github.com/equinor/ert/pull/2208
* Add IES to CLI-docs by dafeda in https://github.com/equinor/ert/pull/2234
* Use caplog context by oyvindeide in https://github.com/equinor/ert/pull/2240
* Remove unused parameters by dafeda in https://github.com/equinor/ert/pull/2236
* Specify version-range for beartype by dafeda in https://github.com/equinor/ert/pull/2243
* Fix hanging issue in ert by mortalisk in https://github.com/equinor/ert/pull/2242
* Test block_fs_driver_create_fs by dafeda in https://github.com/equinor/ert/pull/2241
* Not use hardcoded ranges in port-tests by oysteoh in https://github.com/equinor/ert/pull/2246
* Make sure to stop loop and join thread by BjarneHerland in https://github.com/equinor/ert/pull/2248
* Retry check if *_server.json is deleted by oysteoh in https://github.com/equinor/ert/pull/2250
* Move capturing inside context by BjarneHerland in https://github.com/equinor/ert/pull/2252
* Read file to vec using iterator by dafeda in https://github.com/equinor/ert/pull/2253
* Remove superfluous print statement by sondreso in https://github.com/equinor/ert/pull/2249
* Ensure delete connection info is called by oysteoh in https://github.com/equinor/ert/pull/2258
* Let EvaluatorServerConfig be responsible for keeping port allocated by BjarneHerland in https://github.com/equinor/ert/pull/2254
* Ensure we dont pickle the config and thus the socket by mortalisk in https://github.com/equinor/ert/pull/2260
* Remove unused run_analysis function by ManInFez in https://github.com/equinor/ert/pull/2256
* Patches required for ert3 HMT by jondequinor in https://github.com/equinor/ert/pull/2174
* Revert block fs driver by dafeda in https://github.com/equinor/ert/pull/2271
* Add fail message to exception by oyvindeide in https://github.com/equinor/ert/pull/2281
* Remove unnecessary alloc-funcs by dafeda in https://github.com/equinor/ert/pull/2257
* Removed unused files by BjarneHerland in https://github.com/equinor/ert/pull/2264
* Remove state_map_select_matching__ by oyvindeide in https://github.com/equinor/ert/pull/2280
* Improve error message for failing ensemble by sondreso in https://github.com/equinor/ert/pull/2284
* Avoid verifying actual distributions by BjarneHerland in https://github.com/equinor/ert/pull/2209
* Avoid using same objects in multiple tests by BjarneHerland in https://github.com/equinor/ert/pull/2301
* Remove call to static private function enkf_main_smoother_update__ by ManInFez in https://github.com/equinor/ert/pull/2287
* Avoid passing enkf_main_type to enkf_main_inflate() by BjarneHerland in https://github.com/equinor/ert/pull/2296
* Remove unnecessary step list alloc function by ManInFez in https://github.com/equinor/ert/pull/2295
* Remove unused param rng by dafeda in https://github.com/equinor/ert/pull/2286
* Add ensemble active realizations to ert-storage by DanSava in https://github.com/equinor/ert/pull/2219
* Avoid passing enkf_main_type to enkf_main_log_step_list() by BjarneHerland in https://github.com/equinor/ert/pull/2294
* Remove more unused files and other cleanup by BjarneHerland in https://github.com/equinor/ert/pull/2292
* Set dict from records by dafeda in https://github.com/equinor/ert/pull/2181
* Prefect tests simplification by Blunde1 in https://github.com/equinor/ert/pull/2192
* Remove unused enkf_main_submit_jobs and its callstack in enkf_main by ManInFez in https://github.com/equinor/ert/pull/2307
* Find template_render script by dafeda in https://github.com/equinor/ert/pull/2176
* Block fs driver create fs by dafeda in https://github.com/equinor/ert/pull/2302
* Tune timeouts on tests for Storage(service) by BjarneHerland in https://github.com/equinor/ert/pull/2308
* use pytest-xdist to run tests in parallel by mortalisk in https://github.com/equinor/ert/pull/2171
* Convert IES to C++ by dafeda in https://github.com/equinor/ert/pull/2312
* Remove unused ${ies_source} by dafeda in https://github.com/equinor/ert/pull/2309
* Test ies_enkf_linalg_extract_active by dafeda in https://github.com/equinor/ert/pull/2306
* Remove external analysis module loading by dotfloat in https://github.com/equinor/ert/pull/2202
* Remove 'ies' as dependency for a test by dotfloat in https://github.com/equinor/ert/pull/2321
* Add and use ert3.workspace.export_json function by verveerpj in https://github.com/equinor/ert/pull/2299
* Remove `experiment_has_run` function from the workspace module by verveerpj in https://github.com/equinor/ert/pull/2311
* set lower-bound on ert-storage >= 0.3.4 by oysteoh in https://github.com/equinor/ert/pull/2324
* Fix bug where entry was popped twice by oyvindeide in https://github.com/equinor/ert/pull/2300
* Move config loading to the workspace module by verveerpj in https://github.com/equinor/ert/pull/2303
* Produce ert narratives for communication protocol by Blunde1 in https://github.com/equinor/ert/pull/2319
* Reduce enkf main usage by ManInFez in https://github.com/equinor/ert/pull/2333
* Remove unused enkf_main_run_workflow by oyvindeide in https://github.com/equinor/ert/pull/2337
* Revert "Use pytest-xdist to run tests in parallel" by verveerpj in https://github.com/equinor/ert/pull/2332
* Make the function that was made global and then local again, global again, and make pickling it work this time by mortalisk in https://github.com/equinor/ert/pull/2317
* Add tests for workspace pollution by verveerpj in https://github.com/equinor/ert/pull/2293
* Create a workspace object by verveerpj in https://github.com/equinor/ert/pull/2342
* Replace util_int_min with std::min by dafeda in https://github.com/equinor/ert/pull/2341
* Add Conan and Catch2 by dotfloat in https://github.com/equinor/ert/pull/2350
* Remove scale_correlated_obs by ManInFez in https://github.com/equinor/ert/pull/2358
* Use pytest instead of ErtTestContext by oyvindeide in https://github.com/equinor/ert/pull/2343
* Consolidate experiment config loading by verveerpj in https://github.com/equinor/ert/pull/2344
* Treat inf the same way as nan in measured data by berland in https://github.com/equinor/ert/pull/2356
* Remove all code related to PC extraction in enkf_main by ManInFez in https://github.com/equinor/ert/pull/2367
* Remove unused ResPrototypes by dotfloat in https://github.com/equinor/ert/pull/2210
* Validate inputs in the ensemble and stage configs by verveerpj in https://github.com/equinor/ert/pull/2365
* Validate ensemble size from the ensemble config against the experiment config by verveerpj in https://github.com/equinor/ert/pull/2370
* Validate that a stage in an ensemble exists in the stages config by verveerpj in https://github.com/equinor/ert/pull/2371
* Update strategy by markusdregi in https://github.com/equinor/ert/pull/2244
* Remove dependency on fs_driver_type by dotfloat in https://github.com/equinor/ert/pull/2251
* Workspace autodoc by Blunde1 in https://github.com/equinor/ert/pull/2338
* Expose ert_share_path by oyvindeide in https://github.com/equinor/ert/pull/2373
* Test enkf_linalg_genX2 with catch by dafeda in https://github.com/equinor/ert/pull/2349
* Test matrix_subtract_row_mean by dafeda in https://github.com/equinor/ert/pull/2378
* Utilize atexit making sure connection info is deleted by oysteoh in https://github.com/equinor/ert/pull/2352
New Contributors
* Blunde1 made their first contribution in https://github.com/equinor/ert/pull/2022
* BjarneHerland made their first contribution in https://github.com/equinor/ert/pull/2061
**Full Changelog**: https://github.com/equinor/ert/compare/2.27.0...2.30.0-b0