Changes in version 1.8.2 (2025-11-27) - Housekeeping improvements - Fixes an error in exportMeasuredTraits() that occurred when no measured trait variables (ending in "_a", "_b", or "_c") were present in the dataset. The function now returns a valid empty CM_df object instead of failing during the binding step. Changes in version 1.8 (2025-11-15) NEW FEATURES - Added a suite of data-export functions to simplify extraction of structured ClimMob project outputs: - exportBlockData() - exportMeasuredTraits() - exportTrialMetadata() - exportTricotRanks() - exportVariablesDescription() These functions provide direct access to commonly used data structures in ClimMob projects, improving workflow efficiency for analysis and reporting. IMPROVEMENTS - Internal codebase updated to support new export functions and maintain consistency across all data-handling utilities. - Minor enhancements in internal helper functions for data parsing and formatting (no behavioural changes). Changes in version 1.6.1 (2025-07-07) BUG FIXES - Fixes an issue in handling column names with the overall characteristic. Changes in version 1.6 (2025-07-07) CHANGES IN BEHAVIOUR - The as.data.frame.CM_list() method now defaults to pivot.wider = TRUE, returning a wide-format data frame. - The as.data.frame.CM_list() method has a validation line to only coerce to data.frame objects with more than 1 data point. IMPROVEMENTS - Re-factored internal code structure for improved readability and performance. Introducing modular helper functions to support the as.data.frame.CM_list() method, improving code clarity and reusability - .replace_multichoice_codes() - .handle_geolocation_columns() - .replace_rankings() - .decode_assessments() - .merge_package_info() - .clean_column_names() - .drop_odk_system_fields() - .reorder_columns() - .safe_extract() - Enhanced column name cleaning logic when as.data.frame.CM_list() tidynames = TRUE, producing more consistent and informative names. - Restructured column ordering in the output to prioritize project, package, and registration variables. - Simplified logic for reshaping and labelling assessment variables, removing the dependency on .set_long() when pivot.wider = TRUE. - Reordered output columns to prioritize key identifiers (project, package, registration, and assessments). BUG FIXES - Fixed an issue where geolocation columns containing only missing values (e.g., _longitude, _latitude) would lead to the final data frame having zero columns. These are now removed conditionally and safely. Changes in version 1.5 (2025-03-31) CHANGES IN BEHAVIOUR - getProjectsCM() adds a new variable in the output project_code that will represent the previous project_id. The new variable project_id will represent the id from the ClimMob server database not the id from the user list of projects. Changes in version 1.4 (2025-01-16) BUG FIXES - Fixes issues in vignetted building reported by CRAN. Changes in version 1.2 (2024-01-25) BUG FIXES - Improves indexing of technologies aliases in ClimMobTools:::as.data.frame() Changes in version 1.1 (2023-11-28) BUG FIXES - Fix an issue in .smart.round() to handle NA in the randomize() function Changes in version 1.0 (2023-11-09) BUG FIXES - Fix an issue in randomize() to allocate blocks Changes in version 0.4.6 (2022-08-10) IMPROVEMENTS - Adds the function getTraitList() - Fix the call in getProjectsCM() to adapt to the new version of ClimMob Changes in version 0.4.5 (2022-02-18) IMPROVEMENTS - Add argument userowner = to getDataCM() to specify the owner of a given ClimMob project - Fix API call getProjectsCM() Changes in version 0.4.3 BUG FIXES - Fix an issue in randomise() to check for unbalanced designs - Remove dependency to "PlackettLuce" and "climatrends" to avoid errors in CRAN check for Windows Changes in version 0.4.2 (2021-11-09) IMPROVEMENTS - randomise() deals with unbalanced proportions of technologies, meaning that we can test a whole set of technologies even when not all have equal availability - rmGeoIdentity() is added to offer an approach to remove geographical identity of participants - rankTricot() builds a PlackettLuce rankings using the tricot data Changes in version 0.3.9 (2021-04-13) IMPROVEMENTS - New function getProjectProgress() returns the progress in a given project BUG FIXES - Fix the function to set the URLs for alternative servers in ClimMob Changes in version 0.3.7 (2021-03-23) IMPROVEMENTS - Method for as.data.frame() now handles ClimMob data without the assessment info. - as.data.frame() decodes values from categorical variables - as.data.frame() decodes ties in the ranking data - Handle alternative server addresses Changes in version 0.3.5 (2020-05-08) CHANGES IN BEHAVIOUR - Imports 'PlackettLuce' and 'climatrends' by default - Use httr::RETRY() instead of httr::GET() as suggested by Anna Vasylytsya - A print() method is added - New integration with the 'testing' server enabling to gather data from this server with the argument server - Minor changes in documentation Changes in version 0.3.2 (2020-03-16) CHANGES IN BEHAVIOUR - Migrating functions from ClimMobTools to gosset and climatrends. ClimMobTools will keep only the functions exclusively related to the 'ClimMob' platform. Other functions are transferred to gosset and climatrends to provide a better environment for data handling, analysis and visualization. - Retain function getDataCM(), getProjectCM(), randomise() and seed_need() - Changes in package description - A S3 method as.data.frame() is provided to coerce CM_list into a data frame - Internal functions for pivoting data.frames to avoid dependencies - Change license to MIT Changes in version 0.2.8 IMPROVEMENTS - temperature and rainfall now deals with one single lonlat point Changes in version 0.2.7 IMPROVEMENTS - Update build_rankings to work with the new implementations of PlackettLuce v0.2-8 CHANGES IN BEHAVIOUR - Argument "grouped.rankings" is replaced by "group" in build_rankings Changes in version 0.1.0 - GitHub-only release of prototype package.