coveralls: ## Pull Request Test Coverage Report for [Build 862](https://coveralls.io/builds/24064518)

* **2** of **2**   **(100.0%)**  changed or added relevant lines in **1** file are covered.
* No unchanged relevant lines lost coverage.
* Overall coverage increased (+**0.006%**) to **92.213%**

---



|  Totals | [![Coverage Status](https://coveralls.io/builds/24064518/badge)](https://coveralls.io/builds/24064518) |
| :-- | --: |
| Change from base [Build 858](https://coveralls.io/builds/24062901): |  0.006% |
| Covered Lines: | 1279 |
| Relevant Lines: | 1387 |

---
##### 💛  - [Coveralls](https://coveralls.io)

coveralls: ## Pull Request Test Coverage Report for [Build 862](https://coveralls.io/builds/24064518)

* **2** of **2**   **(100.0%)**  changed or added relevant lines in **1** file are covered.
* No unchanged relevant lines lost coverage.
* Overall coverage increased (+**0.006%**) to **92.213%**

---



|  Totals | [![Coverage Status](https://coveralls.io/builds/24064518/badge)](https://coveralls.io/builds/24064518) |
| :-- | --: |
| Change from base [Build 858](https://coveralls.io/builds/24062901): |  0.006% |
| Covered Lines: | 1279 |
| Relevant Lines: | 1387 |

---
##### 💛  - [Coveralls](https://coveralls.io)

diff --git a/HISTORY.rst b/HISTORY.rst
index 3d38f84c..7231208e 100644
--- a/HISTORY.rst
+++ b/HISTORY.rst
@@ -2,15 +2,12 @@
 History
 =======
 
-0.10.2-beta (2019-06-18)
+0.10.x-beta (2019-06-18)
 ------------------------
-* Added utilities with ensemble, run length, and subset algorithms to the documentation.
-
-0.10.1-beta ()
---------------
 * Migrated to a `major.minor.patch-release` semantic versioning system.
 * Removed attributes in netCDF output from Indicators that are not in the CF-convention.
 * Added `fit` indicator to fit the parameters of a distribution to a series.
+* Added utilities with ensemble, run length, and subset algorithms to the documentation.
 
 0.10-beta (2019-06-06)
 ----------------------
diff --git a/xclim/utils.py b/xclim/utils.py
index 9a167322..df4d9993 100644
--- a/xclim/utils.py
+++ b/xclim/utils.py
@@ -19,6 +19,7 @@ import xarray as xr
 from boltons.funcutils import wraps
 
 from . import checks
+import xclim
 
 units = pint.UnitRegistry(autoconvert_offset_to_baseunit=True)
 units.define(pint.unit.UnitDefinition('percent', '%', (),
@@ -685,8 +686,8 @@ class Indicator():
             else:
                 cp[k] = v
 
-        attrs['history'] += '[{:%Y-%m-%d %H:%M:%S}] {}: {}{}'.format(
-            dt.datetime.now(), vname, self.identifier, ba.signature.replace(parameters=cp.values()))
+        attrs['history'] += '[{:%Y-%m-%d %H:%M:%S}] {}: {}{} - xclim version: {}.'.format(
+            dt.datetime.now(), vname, self.identifier, ba.signature.replace(parameters=cp.values()), xclim.__version__)
         attrs['cell_methods'] += out_attrs.pop('cell_methods', '')
         attrs.update(out_attrs)
 

Add xclim version to history metadata attribute
### Description
In order to potentially backtrack slight differences in calculations between versions - add xclim version info the inicator attributes. I suggest in the ```history``` attr


diff --git a/tests/test_utils.py b/tests/test_utils.py
index 98d89f6a..e8e1f90d 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -32,6 +32,7 @@ from xclim import indices
 from xclim import subset
 from xclim import utils
 from xclim import atmos
+from xclim import __version__
 from xclim.utils import daily_downsampler, Indicator, format_kwargs, parse_doc, walk_map
 from xclim.utils import infer_doy_max, adjust_doy_calendar, percentile_doy
 from xclim.utils import units, pint2cfunits, units2pint
@@ -216,6 +217,7 @@ class TestIndicator:
         assert txm.cell_methods == 'time: mean within days time: mean within years'
         assert '{:%Y-%m-%d %H}'.format(dt.datetime.now()) in txm.attrs['history']
         assert "tmin(da, thresh=5, freq='YS')" in txm.attrs['history']
+        assert 'xclim version: {}.'.format(__version__) in txm.attrs['history']
         assert txm.name == "tmin5"
 
     def test_temp_unit_conversion(self, tas_series):

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov
apt-get update apt-get install -y gcc liblapack-dev libblas-dev libhdf5-serial-dev netcdf-bin libnetcdf-dev
3.6
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
bokeh==2.3.3
boltons==23.1.1
Bottleneck==1.4.0
certifi==2021.5.30
cftime==1.6.0
click==8.0.4
cloudpickle==2.2.1
contextvars==2.4
coverage==6.2
dask==2021.3.0
distributed==2021.3.0
fsspec==2022.1.0
HeapDict==1.0.1
immutables==0.19
importlib-metadata==4.8.3
importlib-resources==5.4.0
iniconfig==1.1.1
Jinja2==3.0.3
locket==1.0.0
MarkupSafe==2.0.1
msgpack==1.0.5
netCDF4==1.6.2
numpy==1.19.5
packaging==21.3
pandas==1.1.5
partd==1.2.0
Pillow==8.4.0
Pint==0.17
pluggy==1.0.0
psutil==7.0.0
py==1.11.0
pyparsing==3.1.4
pyproj==3.0.1
pytest==7.0.1
pytest-cov==4.0.0
python-dateutil==2.9.0.post0
pytz==2025.2
PyYAML==6.0.1
scipy==1.5.4
six==1.17.0
sortedcontainers==2.4.0
tblib==1.7.0
tomli==1.2.3
toolz==0.12.0
tornado==6.1
typing_extensions==4.1.1
xarray==0.16.2
-e git+https://github.com/Ouranosinc/xclim.git@0609a154b7be8c2be2e3db0f7786bb3bfcae123a#egg=xclim
zict==2.1.0
zipp==3.6.0

name: xclim
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - bokeh==2.3.3
      - boltons==23.1.1
      - bottleneck==1.4.0
      - cftime==1.6.0
      - click==8.0.4
      - cloudpickle==2.2.1
      - contextvars==2.4
      - coverage==6.2
      - dask==2021.3.0
      - distributed==2021.3.0
      - fsspec==2022.1.0
      - heapdict==1.0.1
      - immutables==0.19
      - importlib-metadata==4.8.3
      - importlib-resources==5.4.0
      - iniconfig==1.1.1
      - jinja2==3.0.3
      - locket==1.0.0
      - markupsafe==2.0.1
      - msgpack==1.0.5
      - netcdf4==1.6.2
      - numpy==1.19.5
      - packaging==21.3
      - pandas==1.1.5
      - partd==1.2.0
      - pillow==8.4.0
      - pint==0.17
      - pluggy==1.0.0
      - psutil==7.0.0
      - py==1.11.0
      - pyparsing==3.1.4
      - pyproj==3.0.1
      - pytest==7.0.1
      - pytest-cov==4.0.0
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - pyyaml==6.0.1
      - scipy==1.5.4
      - six==1.17.0
      - sortedcontainers==2.4.0
      - tblib==1.7.0
      - tomli==1.2.3
      - toolz==0.12.0
      - tornado==6.1
      - typing-extensions==4.1.1
      - xarray==0.16.2
      - zict==2.1.0
      - zipp==3.6.0
prefix: /opt/conda/envs/xclim

tests/test_utils.py::TestIndicator::test_attrs
tests/test_utils.py::TestEnsembleStats::test_create_ensemble tests/test_utils.py::TestEnsembleStats::test_create_unequal_times tests/test_utils.py::TestEnsembleStats::test_calc_perc tests/test_utils.py::TestEnsembleStats::test_calc_perc_blocks tests/test_utils.py::TestEnsembleStats::test_calc_perc_nans tests/test_utils.py::TestEnsembleStats::test_calc_mean_std_min_max tests/test_utils.py::TestIndicator::test_temp_unit_conversion tests/test_utils.py::TestIndicator::test_delayed tests/test_utils.py::TestIndicator::test_formatting tests/test_utils.py::TestAdjustDoyCalendar::test_360_to_366 tests/test_utils.py::TestAdjustDoyCalendar::test_infer_doy_max tests/test_utils.py::TestSubsetGridPoint::test_dataset tests/test_utils.py::TestSubsetGridPoint::test_simple tests/test_utils.py::TestSubsetGridPoint::test_irregular tests/test_utils.py::TestSubsetGridPoint::test_positive_lons tests/test_utils.py::TestSubsetGridPoint::test_raise tests/test_utils.py::TestSubsetBbox::test_dataset tests/test_utils.py::TestSubsetBbox::test_simple tests/test_utils.py::TestSubsetBbox::test_irregular tests/test_utils.py::TestSubsetBbox::test_positive_lons tests/test_utils.py::TestSubsetBbox::test_raise
tests/test_utils.py::TestDailyDownsampler::test_std_calendar tests/test_utils.py::TestDailyDownsampler::test_360_days tests/test_utils.py::TestIndicator::test_json tests/test_utils.py::TestIndicator::test_signature tests/test_utils.py::TestIndicator::test_doc tests/test_utils.py::TestIndicator::test_identifier tests/test_utils.py::TestKwargs::test_format_kwargs tests/test_utils.py::TestParseDoc::test_simple tests/test_utils.py::TestPercentileDOY::test_simple tests/test_utils.py::TestWalkMap::test_simple tests/test_utils.py::TestUnits::test_temperature tests/test_utils.py::TestUnits::test_hydro tests/test_utils.py::TestUnits::test_lat_lon tests/test_utils.py::TestUnits::test_pcic tests/test_utils.py::TestUnits::test_dimensionality tests/test_utils.py::TestConvertUnitsTo::test_deprecation tests/test_utils.py::TestUnitConversion::test_pint2cfunits tests/test_utils.py::TestUnitConversion::test_cfunits2pint tests/test_utils.py::TestUnitConversion::test_pint_multiply tests/test_utils.py::TestCheckUnits::test_basic tests/test_utils.py::TestThresholdCount::test_simple
HISTORY.rst xclim/utils.py
HISTORY.rst xclim/utils.py