                       Changes in version 0.4.15                        

Enhancements:

  - transform_vars_omv: ensure that only positive OR negative
    transformations are applied to one variable (both transformations
    have the same suffix and would be overwritten; variables are either
    positively OR negatively skewed, hence there is no requirement for
    applying both types of transformations)
  - fixing typos and small bugs, and improving unit tests (e.g., limit
    line length)

                 Changes in version 0.4.14 (2026-07-13)                 

Enhancements:

  - implementing suggestions made by the goodpractice R-package
  - describe_omv: added creating a license string based upon keywords of
    standard licenses (e.g., "RP_GPL2")
  - fixing typos and small bugs, and improving unit tests (e.g., limit
    line length)

                 Changes in version 0.4.13 (2026-04-27)                 

Enhancements:

  - corrected unit tests (for read_omv) for dealing with a change in how
    data frame attributes are arranged (changed with R 4.6)
  - aggregate_omv: permit to aggregate over the whole data set (without
    a grouping variable)
  - added converting Nominal / Ordinal into Numeric using the value
    labels (if numeric)
  - describe_omv: added option for creating descriptions in other
    languages than English, and added helper function defining standard
    licenses for dtaDsc
  - fixing typos and small bugs, and improving unit tests (e.g., limit
    line length)

                 Changes in version 0.4.12 (2025-09-12)                 

Enhancements:

  - added aggregate_omv
  - parameter varTme for wide2long_omv can now be a vector with variable
    names (previously it could only be a prefix)
  - changes suggested by pkgcheck (remove dontrun from examples, etc.)
  - reducing cyclomatic complexity for wide2long_omv

                 Changes in version 0.4.11 (2025-06-15)                 

Enhancements:

  - added combine_cols_omv
  - added functions bckAtt and rstAtt (backup and restore attributes) -
    renaming the old rstAtt-function (for emptying attributes) to
    nllAtt, and changed code in arrange_cols_omv, merge_cols_omv, and
    sort_omv to to use those functions, added unit tests for bckAtt
  - changes suggested by lintr (implicit return, etc.)

Bug fixes:

  - corrected a bug in transform_vars_omv in cases where the to be
    transformed variable contained NAs
  - corrected a bug (check for character) occurring when the variable to
    match is not a character

                 Changes in version 0.4.10 (2025-02-16)                 

Enhancements:

  - permitting to read and write jamovi templates (.omt; incl. unit
    tests)
  - reorganizing and cleaning the code (particularly in read_all)
  - improvement in read_all when reading files (improved exception
    handling, etc.)
  - renamed hvnAdj to clnTbb and improved it (better “cleaning” of data
    read via haven)
  - renamed fgnLbl to clnFgn (including improvements to convert variable
    labels into their jamovi equivalents)
  - reducing cyclomatic complexity

                 Changes in version 0.4.9 (2025-01-16)                  

Enhancements:

  - added parameter rtnOut to jmvOpn (preventing the output from system2
    to be returned, used for the jamovi module Rj)

Bug fixes:

  - corrected a bug in jmvPtB handling if requireNamespace("RProtoBuf")
    returns FALSE

                 Changes in version 0.4.8 (2024-11-09)                  

Enhancements:

  - added distances_omv: calculate a wide range of distance measures
    (either between variables or between units of observation) on
    standardized or the original data

Bug fixes:

  - improved the treatment of factors and how they are stored
  - corrected a bug in the unit tests resulting from that R 4.5 (current
    development) begins to treat Date variables as integers

                 Changes in version 0.4.7 (2024-07-09)                  

Enhancements:

  - added transform_vars_omv: apply transformations - calculating the
    square root, the logarithm to the base 10 or an inversion - to make
    variables (better) conform to a normal contribution (incl. unit
    tests)

Bug fixes:

  - fixed small bugs in read_omv and write_omv to better handle variable
    labels

                 Changes in version 0.4.6 (2024-05-22)                  

Enhancements:

  - added workflow for rhub
  - reduced cyclomatic complexity for replace_omv, wide2long_omv, and
    jmvAtt

Bug fixes:

  - ensure that the dataType attribute is preserved / honoured by
    write_omv (earlier on, the data type of a variable / column was
    determined by a logic and my have changed the class of this column)
  - fixed a bug leading to an error in write_omv when columns where
    completely empty (i.e., if they contained only NAs; incl. the
    respective unit tests)

                 Changes in version 0.4.5 (2024-04-04)                  

Bug fix:

  - change long2wide_omv so that it to handle (omit) NAs when
    aggregating values (incl. unit tests)

                 Changes in version 0.4.4 (2024-02-27)                  

Enhancements:

  - added var_labels_omv (assign labels to variables in a data set;
    including unit tests, and files for the tests and the examples)

                        Changes in version 0.4.3                        

Bug fixes and enhancements:

  - replaced sapply with vapply or lapply (in accordance with
    goodpractice)
  - reducing cyclomatic complexity to 30
  - fixed bugs and created test cases for rplAtt (replace non-UTF with
    UTF characters, part of read_omv)
  - added invisible(NULL)where NULL or nothing was returned
  - adjust strsplit in long2wide_omv and wide2long_omv in order to
    permit having “.” as varSep
  - added codemeta.json, badge about package status, and how to
    contribute to the package (for pkgcheck)
  - added documentation of return value to convert_to_omv

                 Changes in version 0.4.2 (2023-11-22)                  

Bug fixes and enhancements:

  - check for empty rows and missing values within varID in
    merge_cols_omv
  - corrected replacement of numerical values in replace_omv
  - replaced all occurrences of library(jmvReadWrite)
  - smaller corrections to the documentation (added parameter
    descriptions)
  - added unit tests for replace_omv (replacement in character columns)
  - adjusted wide2long_omv in order to accept NULL for varID

                 Changes in version 0.4.1 (2023-10-05)                  

Bug fix:

  - ensure that the examples, tests and creating the vignette also works
    when jmv is not present

                 Changes in version 0.4.0 (2023-08-16)                  

Enhancements and bug fixes:

  - added describe_omv (put a title and a description at the top of a
    data set), search_omv (finding values in a data set) and replace_omv
    (replacing values in a data set with other values)
  - improved handling in jamovi (if jmvReadWrite is run in jamovi
    modules, e.g., Rj, a new jamovi session is opened with the data set
    that was modified by one of the helper functions)
  - improved handling of the jamovi protocol buffers (currently used for
    extracting jmv-syntax in the data sets, but with the perspective of
    creating analyses from jmv-syntax)
  - update the content of index.html (generated when writing data set
    with write_omv to be in line with more recent versions of jamovi)
  - added attaching dataType and measureType attributes to a data frame
    when write_omv is called from within jamovi (while ensuring not to
    overwrite existing measureType / dataType attributes)
  - enforce jmv-id-status for ID-variable if the variable is unique in
    long2wide_omv
  - removed fleOut from inp2DF (making it impossible to attach fleOut as
    attribute to a data frame) - earlier, the output file name could be
    “assembled” by adding a suffix to the input file name, with
    leaving fleOut empty to return the resulting data frame that became
    obsolete
  - added drop = FALSE in sort_omv to prevent reduction to a vector
  - added further unit-tests for globals, read_omv, and write_omv
  - improved the documentation (adding missing information, better
    formatting, etc.)

                 Changes in version 0.3.8 (2023-07-15)                  

Enhancements and bug fixes:

  - adjustments to make jmvReadWrite more suited for using it together
    with the jamovi-module jTransform
    (https://github.com/sjentsch/jTransform)
  - implement reading both data frames or file names for merge_cols_omv
    and merge_rows_omv (incl. phasing out fleInp as parameter for the
    helper functions: it now throws an error to prevent using it)
  - initial handling of weights in read_omv and write_omv
  - improvements and corrections for long2wide_omv (added aggregation,
    mean or take first, and fixed a bug that led to incorrect naming of
    variables when transforming complex data sets)
  - improvements and corrections for wide2long_omv (added parameter
    excLvl, to prevent that measurements (if there are more than one)
    are also transformed to long; fixed a bug that led to incorrect an
    order of values within variables when transforming complex data
    sets)
  - improved unit tests (implementation of regular expressions for
    expect_error and expect_warning, bug-fixes and additional coverage)
  - improvements to setting attributes (setAtt, e.g., from the metadata
    to the data frame and vice versa)
  - improved handling of factors with numerical values (measureType
    Nominal or Ordinal and dataType Integer)
  - added function jmvAtt to attach the attributes measureType and
    dataType to data frames coming from inside jamovi (i.e., when
    jmvReadWrite is used in modules, e.g., Rj) OBS: rather for internal
    use and thus not exported, use jmvReadWrite:::jmvAtt() to call it
  - smaller bug fixes (typos, to ensure consistency in naming, etc.)

                 Changes in version 0.3.7 (2023-07-03)                  

Enhancements and bug fixes:

  - added transpose_omv (transpose data frame and write the resulting
    jamovi-file)
  - enable to have either data frames or strings with a file name as
    input to the helper functions arrange_cols_omv, long2wide_omv,
    wide2long_omv, sort_omv, and transpose_omv
  - preserve attributes when merging columns (merge_cols_omv)
  - changed R-package that handles JSON files from RJSON to jsonlite
  - bug fixes: added a check in fmtFlO to ensure that the output files
    are in jamovi-format (.omv); removed typos, etc.

                 Changes in version 0.3.6 (2023-06-26)                  

Enhancements and bug fixes:

  - added arrange_cols_omv (to change the order of variables / columns
    in jamovi-files)
  - added the parameter psvAnl to preserve the analyses in data files
    (only for arrange_cols_omv, merge_cols_omv, sort_omv where it makes
    sense – there the number of rows / participants / units doesn't
    change)
  - bug fixes: corrected an error in chkFle, removed duplicate functions
    from globals.R

                 Changes in version 0.3.5 (2023-05-27)                  

Bug fixes and enhancements:

  - fixed an error that led to a warning when adding columns (to make
    different data frames have the same set of variables) in
    merge_cols_omv
  - added logo and citation

                 Changes in version 0.3.4 (2023-05-06)                  

Bug fixes and enhancements:

  - fixed an error that led to a crash when an ID variable contained
    empty values ("")
  - general bug fixes and improvements (removing ;s as suggested by
    lintr, etc.)

                 Changes in version 0.3.3 (2022-08-09)                  

Enhancements and bug fixes:

  - made replacements using regular expressions compatible with R >= 4.3
    (changing occurrences of replacement pattern that included \xNN)
  - improvements to wide2long_omv and long2wide_omv (those can now
    handle several factors, not only one)
  - improvement to how write_omv handles / stores factors (those are now
    zero-based to be in accordance with most programming languages
    including Python and C++ used in the jamovi engine)
  - simplify handling variables with the measurement type "ID"
    (converted to / treated as character)
  - simplify handling variable labels (now, the attribute label, e.g.,
    from importing files using haven, is converted to the
    jamovi-conforming jmv-desc)
  - adding further the unit tests
  - changed web-addresses into their canonical format (i.e., including
    protocol and angle brackets; for help, documentation, etc.)
  - general bug fixes and improvements (simplifying the code)

                 Changes in version 0.3.2 (2022-05-21)                  

Bug fixes and enhancements:

  - added a warning about packages that are required when the extraction
    of syntax can't be carried out due to these missing dependencies

                 Changes in version 0.3.1 (2022-02-28)                  

Bug fixes and enhancements:

  - fixed a "bug" in a testthat-condition that resulted in an error on
    several systems

                 Changes in version 0.3.0 (2022-02-13)                  

Enhancements and bug fixes:

  - added a couple of helper functions: convert_to_omv (converts data
    sets from other formats - CSV, R, SPSS, SAS, Stata - to .omv)
    merge_cols_omv (merges two or more data sets by concatenating
    columns) merge_rows_omv (merges two or more data sets by
    concatenating rows) long2wide_omv (converts data sets from long to
    wide, e.g., for running mixed-model-analyses in jamovi)
    wide2long_omv (converts data sets from wide to long, e.g., for
    running mixed-model-analyses in jamovi) sort_omv (sorts the dataset
    according to one or more variable)
  - implemented unit tests and code coverage for read_omv, write_omv,
    convert_to_omv, merge_cols_omv, merge_rows_omv, long2wide_omv,
    wide2long_omv, sort_omv
  - implemented treating variables in read_omv and write_omv as ordered
    factor if measureType has the value Ordinal
  - default for sveAtt in read_omv (now TRUE; it makes more sense to
    store this attributes be default since write_omv will give you an
    exact copy of the original data set if they are stored and the
    helper functions above also respect and adjust them)

                 Changes in version 0.2.4 (2022-01-20)                  

Bug fixes and enhancements:

  - fixed an error when assembling the file name in write_omv, added
    assembling the file name with normalizePath to read_omv
  - fixed missing retDbg-parameter in one of the examples

                 Changes in version 0.2.3 (2022-01-19)                  

Bug fixes and enhancements:

  - use zip R-package instead of utils to prevent that no
    ZIP-executable-file is found on Windows (utils::zip only works in
    cases where a zip.exe is found on the path)
  - use the (session-specific) temporary directory for creating files to
    be zipped and those files extracted
  - improved handling of the different variable types, implemented
    logical / boolean variables / data columns
  - improved handling of column attributes
  - added parameter retDbg (default: FALSE) to write_omv so that output
    for debugging is only produced upon setting it

                 Changes in version 0.2.2 (2021-09-20)                  

Bug fixes and enhancements:

  - bug fix in read_omv (some libraries required for syntax extraction
    are not available on certain platforms (Solaris, Windows with MinGW)
  - added documentation (pkgdown) in docs/
  - set up examples and lintr

                 Changes in version 0.2.1 (2021-08-23)                  

Bug fixes and enhancements:

  - bug in write_omv fixed (@MAgojam, #2); jamovi could not read the
    manifest (meta) when the file was created with write_omv on Windows
    (LF + CR, but only CR expected / decoded)
  - updated the Created-by in the manifest string to use the
    jmvReadWrite version
  - improved the README (switched it to be generated from Rmd so that
    the vignette could be included

                        Changes in version 0.2.0                        

Enhancements:

  - renamed jmvRead to read_omv, and jmvWrite into write_omv
  - extracts syntax from analyses contained in the .omv-file (set the
    parameter getSyn = TRUE; default is FALSE)
  - imports the output from the .omv-file (set the parameter getHTM =
    TRUE; default is FALSE)

                 Changes in version 0.1.0 (2020-09-16)                  

  - first implementation, reads (jmvRead) and writes (jmvWrite) files
    using a file format similar to jamovi 1.2 (can be read with more
    recent versions)
