Changes in version 0.6.0 (2026-04-20) New Features - Exposed 25 additional datasets via load_gerda_web() and gerda_data_list(): - County (Kreistag) elections (4): county_elec_unharm, county_elec_harm_21, county_elec_harm_21_cty, county_elec_harm_21_muni - European Parliament elections (2): european_muni_unharm, european_muni_harm - Mayoral elections (7): mayoral_unharm, mayoral_harm, mayoral_candidates, mayor_panel, mayor_panel_harm, mayor_panel_annual, mayor_panel_annual_harm - Boundary-specific harmonizations (4): municipal_harm_25, state_harm_21, state_harm_23, state_harm_25 - Additional crosswalks (7): ags_1990_to_2023_crosswalk, ags_1990_to_2025_crosswalk, crosswalk_ags_2021_to_2023, crosswalk_ags_2021_2022_to_2023, crosswalk_ags_2023_to_2025 (RDS only), crosswalk_ags_2023_24_to_2025 (RDS only), crosswalk_ags_2024_to_2025 (RDS only) - Alternative-boundary covariates (1): ags_area_pop_emp_2023 Deprecations - federal_cty_unharm now also exposes county_code and election_year columns, matching the schema used by all other county-level GERDA datasets. This allows the dataset to be piped into add_gerda_covariates() without manual renaming. - The original ags (5-digit county code) and year columns remain for backwards compatibility but are deprecated and scheduled for removal in v0.7. Please update code that references federal_cty_unharm$ags or federal_cty_unharm$year to use county_code and election_year instead. A one-time message is printed on each load. Bug Fixes - load_gerda_web() now downloads datasets to a tempfile before reading them. This fixes loading of xz-compressed RDS files (e.g. ags_1990_to_2025_crosswalk), which readr::read_rds() could not stream from a URL. - Download timeout is temporarily raised to 300s inside load_gerda_web() so the larger GERDA files (mayor_panel_annual_harm, federal_muni_harm_21) no longer time out on first pull over slower connections. The user's original timeout is restored on exit. - Fixed the add_gerda_covariates() help example, which grouped on a non-existent county_code_21 column after merging covariates into municipal data. Usability - load_gerda_web() gains an on_error argument ("warn" default, "stop" for pipelines). Set options(gerda.on_error = "stop") to flip the default globally. Previous behaviour (warning + NULL) is unchanged. - party_crosswalk() now lists all 21 available destinations in the help page and in its error message. A typo like party_crosswalk(..., "family_nme") now tells you exactly which column names are valid. - gerda_data_list(print_table = TRUE) prints each row on a single uncut line. Dataset pairs like federal_muni_harm_21 and federal_muni_harm_25 are now distinguishable by description in narrow terminals. - load_gerda_web() help now documents that major-party vote-share columns do not sum to 1: the remainder is held by smaller-party columns and the other bucket. - Vignette gains a "Joining GERDA datasets" section listing the id and time columns for every dataset family, so manual left_join() calls don't trip on year vs election_year or on the municipal county column not being a 5-digit AGS code. Docs - DESCRIPTION updated to list all six election families and the correct federal coverage window (federal county-level since 1953). - README.md install section documents build_vignettes = TRUE for development installs from GitHub. - knitr moved from Imports to Suggests (only needed as VignetteBuilder). Tests - Test suite reorganized: tests/testthat/test-load_gerda_web.R split into five focused files (-validation, -fuzzy, -extensions, -catalog, -schema) to keep concerns separable as the catalog grows. - Catalog coverage extended to all 39 exposed datasets, grouped by family. - Added regression tests for the xz RDS load, the federal_cty_unharm alias + deprecation message, and the new on_error argument. Suite grew from 240 to 300 tests. Changes in version 0.5.0 (2026-01-31) New Features - Census 2022 module -- 3 new exported functions for municipality-level demographic data: - gerda_census() -- access Census 2022 data (10,786 municipalities, 16 variables) - gerda_census_codebook() -- data dictionary for census variables - add_gerda_census() -- merge census data with election data (supports both municipality and county level) - Extended INKAR covariates -- expanded from 20 to 30 variables, adding healthcare, childcare, public finances, and transport categories Other Changes - Added stats to Imports (for weighted.mean() in county-level census aggregation) - Removed Strukturdaten module (functionality consolidated into census and covariates modules) - New tests for gerda_covariates and gerda_census modules - Updated vignette and README with census and expanded covariates documentation Changes in version 0.4.0 (2025-11-12) Bug Fixes and Improvements - Improved error messages for deprecated federal_muni_harm dataset with clear migration guidance - Enhanced fuzzy matching to prioritize prefix matches (e.g., federal_muni_harm now correctly suggests federal_muni_harm_21 and federal_muni_harm_25) - Added references to gerda_data_list() in all error messages to help users discover available datasets - Updated README and vignette to reflect current data coverage (1990-2025) - Fixed function references in documentation (gerda_covariates and gerda_covariates_codebook) Changes in version 0.3.0 (2025-10-29) New Features - Added county-level covariates functionality: Easy access to socioeconomic and demographic indicators (1995-2022) - New function: add_gerda_covariates() - One-step helper to merge covariates with election data - New function: gerda_covariates() - Access raw covariate data (400 counties, 20 variables) - New function: gerda_covariates_codebook() - View data dictionary with variable descriptions - Works with both county-level and municipal-level election data - 400 German counties with covariates from INKAR - Includes demographics, economy, labor market, education, and income variables - Data source: Bundesinstitut für Bau-, Stadt- und Raumforschung (BBSR) - Function-based API prevents namespace pollution and merge errors Other Changes - Updated R dependency to >= 3.5.0 (required for internal data serialization) Changes in version 0.2.1 (2025-10-06) Bug Fixes and Improvements - Improved error message clarity for file extensions - Changed message from "Format ignored" to "File extension (.rds or .csv) not required - adding it is optional" - Simplified user messages by removing redundant information about data format independence - Updated tests to match improved message format Changes in version 0.2.0 (2025-08-19) New Features - Added support for 2025 German federal election data - New datasets available: - federal_muni_harm_21: Federal elections harmonized to 2021 boundaries (1990-2025) - federal_muni_harm_25: Federal elections harmonized to 2025 boundaries (1990-2025) Breaking Changes - Removed federal_muni_harm dataset (replaced by boundary-specific versions) - Users should now use federal_muni_harm_21 or federal_muni_harm_25 depending on their boundary harmonization needs Improvements - Updated data coverage to include 2025 federal election results - Improved dataset descriptions to clarify boundary harmonization - Enhanced error messages with helpful suggestions for deprecated dataset names Bug Fixes - Updated all URLs to reflect new repository structure - Fixed dataset count in documentation and tests Changes in version 0.1.0 (2024-11-20) - Initial CRAN submission - Access to German election data from 1990-2021 - Support for municipal, state, and federal election data - Geographically harmonized datasets - Cross-walk tables for boundary changes