lightr (development version)
Major breaking changes
- the low-level parsers to parse individual files have been renamed from the previous naming scheme 
lr_parse_<fileext>()tolr_parse_<brand>_<fileext>()(#72). This gives us flexibility to use different parsers when two or more brands use the same file extension but actually different formats. 
New features
- Parsing for binary files produced by Avantes AvaSoft 8.4 has been restored in 
lr_parse_avantes_rfl8(),lr_parse_avantes_irr8(),lr_parse_avantes_raw8(). Thanks to Allison Shultz, Lindsey Swierk, Raphaël Scherrer, and Michaël Nicolaï for providing feedback and test files. Thanks to Avantes for providing the file format documentation. 
Minor changes
- Performance of high-level functions (
lr_get_spec(),lr_get_metadata()) and some low-level parsers (csv, ttt, trm, jaz, jazirrad) has been improved. 
lightr 1.9.0
CRAN release: 2025-07-21
New features
- cases where a mix of 
.csvand other ‘csv-like but not quite csv’ formats are passed tolr_get_spec()are now handled better, after a report from @bittonp (@Bisaloo, #58). This also means that it’s no longer necessary to explicitly setsep = ","when trying to parse csv files (#15). - 
lr_parse_procspec()gains a new argumentverify_checksumto verify if the data has been tampered with since its creation by the official OceanView software (@Bisaloo, #29). - 
lr_parse_spc()(OceanOptics, CRAIC) andlr_parse_rfl8()/lr_parse_raw8()/lr_parse_irr8()(Avantes) now return the measurement date & time in the metadata elements (@Bisaloo, #75). In other words,lr_get_metadata()now returnsavetimefor.spc,.RFL8,.RAW8,IRR8files. 
lightr 1.8.0
CRAN release: 2024-12-01
Minor changes
- timezones for converted OceanOptics files are now handled differently internally (@Bisaloo, #64), to handle changes in upstream tzdata 2024b, which removed for example the CET and EST timezone codes. This may result in some other deprecated timezone codes not being handled correctly. Please report any bugs or discrepancies you may notice in the 
datetimefield of metadata. - lightr now depends on R >= 4.0.0, following the tidyverse recommendation (@Bisaloo, #28)
 - the future package is now explicitly listed as a dependency, removing an 
R CMD checkNOTEand thus removing the strain on CRAN reviewers (@Bisaloo, #63). The future package was already a indirect dependency via the future.apply package. 
lightr 1.7.1
CRAN release: 2024-03-21
Minor changes
- 
lr_parse_irr8(),lr_parse_rfl8()andlr_parse_raw8()now error if you provide a file not produced by AvaSoft 8.2 as they have not been tested properly with other versions of AvaSoft 8. 
lightr 1.7.0
CRAN release: 2022-05-14
Minor changes
Errors in low-level parsers are now passed as warnings in high-level
lr_get_XXX()functions instead of being completely silenced.IRR8 (irradiance files produced by AvaSoft 8) are now explicitly supported by
lr_get_spec(). An alias has been added for the low-level parser:lr_parse_irr8().
lightr 1.6.0
CRAN release: 2021-07-22
Major breaking changes
- The date returned in metadata (by 
lr_get_metadata(),lr_convert_tocsv(metadata = TRUE)andlr_parse_XXXX()) is now a datetime (with UTC as timezone and format%Y-%m-%d %H:%M:%S). The column name inlr_get_metadata()has been updated fromdatetodatetimeto reflect this. Thanks to Giancarlo Chiarenza for the report, and to Hao Ye, Laura DeCicco and Elin Waring for helpful comments about timezones and datetime formatting for reproducibility. 
lightr 1.5.0
CRAN release: 2021-06-19
Major breaking changes
- the 
coresargument inlr_get_spec(),lr_get_metadata(), andlr_convert_tocsv()has been completely removed. It was already deprecated since lightr 1.0 (released on CRAN on 2020-01-27) - 
lr_convert_tocsv()gains a newmetadataargument (defaults toTRUE) to determine if metadata should be exported in a csv file as well alongside the spectral data. 
lightr 1.4
CRAN release: 2021-03-21
Minor changes and bug fixes
- Output of the low-level parsers 
lr_parse_XXXX()is now a named list with elementsdataandmetadata - 
lr_parse_raw8()andlr_parse_rfl8()now explicitly mention the number of spectra in the warnings instead of the generic “multiple spectra” - 
lr_parse_generic()now makes sure that the data is ordered by increasing wavelengths, which fixes a bug reported by @itamshab 
lightr 1.3
CRAN release: 2020-06-30
Minor changes
- (mostly internal) 
compute_processed()function is now namedlr_compute_processed() - disable hash tests on Solaris (the output is still checked by other tests)
 
lightr 1.1
CRAN release: 2020-04-01
New features and major changes
- 
datecolumn in metadata is now always formatted as ISO 8601. - 
lightrcan now import AvaSoft8 files (test files provided by M.D. Shawkey and L. Swierk), via the functionslr_parse_rfl8()/lr_parse_raw8(). - 
lightrcan correctly importsTRMfiles from AvaSoft 6.0 (previously it only supported files from AvaSoft 7.0). - 
lightrcan now import binary.spcfiles (via thelr_parse_spc()parser). This format is used by OceanInsight and CRAIC. 
Minor changes
- new test suite on a different locale (in this case 
fr_FR.UTF-8) to ensure parsing is locale-independent. - warnings on CRAN build system for platforms that don’t support markdown 2 have been fixed.
 - new, stricter tests for various file formats.
 - 
jdxfiles saved in a locale that uses,as the decimal separator are now parsed correctly. - Avantes exported files in non-English locales (
tttandtrtfiles) are now parsed correctly again (this was a regression compared to pavo’spavo::getspec()). Thanks to A. Fargevieille for reporting the issue and providing a test file. 
lightr 1.0
CRAN release: 2020-01-27
New features and major changes
- parallel processing now relies on the 
futurepackage, which offers windows and high performance computing (HPC) environments support. The progress bar is produced by theprogressrpackage and can be customised as well. - 
lr_parse_generic()(and thuslr_get_spec()) now works with non-UTF8 files (this was a regression compared to pavo’spavo::getspec()). - 
lr_get_spec()now has a newinterpolateargument to determine whether you want your data interpolated and pruned at every nm or not. 
Minor changes
- 
readBin()(in the binary Avantes parser) now has an explicitendianvalue, making this package portable to platform that use big endians. - documentation has been updated to follow the rebranding of OceanOptics into OceanInsight.
 - vignette chunks that use 
pavonow only run if the package is available. - 
savetimefield is now extracted from converted avantes files (when available).