======================================================================================= Release Notes ======================================================================================= .. _release-v1-11-1: --------------------------------------------------------------------------------------- 1.11.1 (Unreleased) --------------------------------------------------------------------------------------- Bug fixes ^^^^^^^^^ * You know there will be some... .. _release-v1-11-0: --------------------------------------------------------------------------------------- 1.11.0 (2026-08-03) --------------------------------------------------------------------------------------- Modernize tooling and packaging ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * **Switched from pre-commit to prek** as the hook runner, and added several new hooks: ``detect-secrets``, ``typos``, ``actionlint``, ``markdownlint-cli2``, and ``taplo-format``, among others. :pr:`442` * **Simplified packaging**: removed ``MANIFEST.in`` and the vestigial ``[tool.setuptools]`` configuration left over from before the switch to hatchling. :pr:`442` * **Migrated documentation hosting from Read the Docs to GitHub Pages**, see `https://docs.catalyst.coop/ferc-xbrl-extractor `__. :pr:`442` * **Switched the documentation theme from furo to pydata-sphinx-theme**, matching the look and feel of our other documentation sites, including shared social links in the footer. :pr:`442` * **Added ``llms.txt`` and per-page Markdown alternates** (via ``sphinx-llm``) to make the documentation more easily consumable by LLM agents. :pr:`442` * **Wired up CodeCov coverage reporting** with a repo-specific ``.codecov.yml``. :pr:`442` * **Grouped Dependabot PRs** for both Python and GitHub Actions dependencies to reduce bot PR noise. :pr:`442` * Simplified the bot auto-merge workflow, and added a guard to the release workflow that verifies a release tag points at the current head of ``main`` before building. :pr:`442` * Switched release notifications from Slack to Zulip. :pr:`434` * Routine dependency and GitHub Actions version bumps. Add static type checking with pyrefly ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * **Type checking is now enforced** using `pyrefly `__ as a blocking check in both pre-commit and CI, along with a 95% type annotation coverage floor across ``src/`` -- ``hatch run types:coverage-report`` prints a human-readable, per-module breakdown of that metric. The goal is to catch bugs, make future changes safer, and help support IDEs and LLMs in parsing the codebase. The package now also ships a ``py.typed`` marker indicating consumers can rely on inline types. :pr:`447` :issue:`443` Bug fixes ^^^^^^^^^ Adding type checking (see above) surfaced several bugs. * **Fixed a long-standing crash in ``get_instances()``'s directory and bare-file input modes**, and removed the bare-file mode, which can't be fixed. Both had always crashed with a confusing ``TypeError``: they never supplied the ``InstanceBuilder`` constructor with a filing's publication time and taxonomy version, which are otherwise derived from an ``rssfeed`` metadata file FERC's archiving process bundles into zip archives alongside the filings. The **directory mode now works**, reading that same ``rssfeed`` file from disk instead of from inside a zip -- useful for local debugging, where it's convenient to edit filings directly rather than repackaging them into a zip after every change. The **bare single-file mode is removed**: a lone filing has no room for an accompanying ``rssfeed`` file, so there's no way to determine its publication time or taxonomy version. Both input types now raise a clear ``ValueError`` on invalid input instead of crashing. :pr:`444` * **Fixed a crash in ``run_main()``** that occurred whenever ``--duckdb-path`` wasn't passed on the CLI -- including via the simplest example command in the README. ``--duckdb-path`` now defaults to the sqlite path with a ``.duckdb`` suffix instead. :pr:`444` * **Fixed a taxonomy-loading retry loop** that could have raised a confusing ``UnboundLocalError`` instead of a clear error if ever called with ``max_retries < 1``. :pr:`447` Test suite cleanup ^^^^^^^^^^^^^^^^^^^ * **Removed the long-dead ``XBRLType.get_pandas_type()`` method.** It was introduced alongside a pandas-DataFrame-based extraction path that was replaced by the current frictionless-datapackage-based path two weeks later; the cleanup commit at the time removed every caller but missed the method itself, leaving it with no callers in this package, ``pudl``, or ``pudl-archiver`` since 2022. :pr:`444` * **Reordered integration tests so the three slowest run first.** Under pytest-xdist's default scheduler, tests are dispatched to workers in collection order; a slow test dispatched late tends to run alone after every other worker has emptied its queue, stretching total wall-clock time. A new ``pytest_collection_modifyitems`` hook in ``tests/conftest.py`` sorts ``test_concurrent_taxonomy_load`` and the two slowest ``console_scripts_test.py`` cases to the front of collection so they run in parallel with the rest of the suite instead of at the tail. :pr:`444` .. _release-v1-10-0: --------------------------------------------------------------------------------------- 1.10.0 (2026-05-13) --------------------------------------------------------------------------------------- * Stopped generating a resource or table in the output datapackage for XBRL instant or duration tables that are entirely null. :pr:`428` .. _release-v1-9-0: --------------------------------------------------------------------------------------- 1.9.0 (2026-05-07) --------------------------------------------------------------------------------------- * **Added support for writing extracted XBRL data directly to Parquet files**, in addition to the existing SQLite and DuckDB outputs. :pr:`427` * Routine dependency and GitHub Actions version bumps. .. _release-v1-8-0: --------------------------------------------------------------------------------------- 1.8.0 (2025-12-28) --------------------------------------------------------------------------------------- Modernize build and packaging ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * **Migrated from tox to Hatch** for environment and task management, providing faster dependency resolution and a more modern Python packaging experience. * **Adopted uv** as the package installer. * **Modernized build system** from setuptools to hatchling with hatch-vcs for version management from git tags. * **Reorganized CI workflows** into parallel jobs for testing, linting, and documentation building, improving CI speed and clarity. * Added support for **Python 3.14**. * **Consolidated development documentation** from separate CONTRIBUTING.md into README.rst * Updated README with instructions for using Hatch and uv. * Updated ReadTheDocs configuration to use uv and Hatch. * **Loosened dependency version constraints** Removed upper bounds where appropriate to reduce dependency conflicts for downstream users. * **Added build attestations** for supply chain security using GitHub's attestation action. * **Adopted OIDC trusted publishing** to PyPI, eliminating the need for API tokens. * Removed twine dependency (Hatch validates packages during build). * Split pytest workflow into separate test, lint, and docs-build jobs for better parallelization. See PR :pr:`405`. .. _release-v1-7-3: --------------------------------------------------------------------------------------- 1.7.3 (2025-12-03) --------------------------------------------------------------------------------------- * **Revert to treating dates as strings**, deferring cleaning until downstream processing. :pr:`396` .. _release-v1-7-2: --------------------------------------------------------------------------------------- 1.7.2 (2025-11-26) --------------------------------------------------------------------------------------- * **Fix datetime type for publication date** to ensure proper handling across database backends. :pr:`392` .. _release-v1-7-1: --------------------------------------------------------------------------------------- 1.7.1 (2025-11-19) --------------------------------------------------------------------------------------- * Improve dtype handling for DuckDB and SQLite outputs. :pr:`388` * Add integration test to verify DuckDB and SQLite tables are identical. .. _release-v1-7-0: --------------------------------------------------------------------------------------- 1.7.0 (2025-11-16) --------------------------------------------------------------------------------------- Support Output to DuckDB ^^^^^^^^^^^^^^^^^^^^^^^^ * **Add DuckDB output support** alongside existing SQLite output. :pr:`368` * **Pin arelle version** to avoid pillow v12.0 compatibility issues. :pr:`382` .. _release-v1-6-0: --------------------------------------------------------------------------------------- 1.6.0 (2025-04-28) --------------------------------------------------------------------------------------- * **Make table name pattern more robust** to handle edge cases in XBRL taxonomy parsing. :pr:`320` .. _release-v1-5-2: --------------------------------------------------------------------------------------- 1.5.2 (2025-04-12) --------------------------------------------------------------------------------------- * **Add Python 3.13 support**. :pr:`318` .. _release-v1-5-1: --------------------------------------------------------------------------------------- 1.5.1 (2024-07-17) --------------------------------------------------------------------------------------- Multi-Taxonomy Support ^^^^^^^^^^^^^^^^^^^^^^ * **Fix datapackage generation from multiple taxonomies**. :pr:`242` * Improve datapackage formatting. * Fix examples in README with updated sample filings. * Improve docstrings and comments throughout the codebase. .. _release-v1-5-0: --------------------------------------------------------------------------------------- 1.5.0 (2024-07-02) --------------------------------------------------------------------------------------- * Minor dependency updates and maintenance release. .. _release-v1-4-0: --------------------------------------------------------------------------------------- 1.4.0 (2024-04-14) --------------------------------------------------------------------------------------- * **Update to Frictionless v5** and ensure all tests pass with the new version. :pr:`213` .. _release-v1-3-3: --------------------------------------------------------------------------------------- 1.3.3 (2024-03-26) --------------------------------------------------------------------------------------- * **Add retry logic for taxonomy reading** to improve reliability with network issues. :pr:`205` .. _release-v1-3-2: --------------------------------------------------------------------------------------- 1.3.2 (2024-01-20) --------------------------------------------------------------------------------------- * **Add support for pandas 2.2**. * Cache dimension snakecase operations for better performance. .. _release-v1-3-1: --------------------------------------------------------------------------------------- 1.3.1 (2023-11-29) --------------------------------------------------------------------------------------- * Fix warning suppression by using 'ignore' instead of 'once'. .. _release-v1-3-0: --------------------------------------------------------------------------------------- 1.3.0 (2023-11-28) --------------------------------------------------------------------------------------- * **Update to Pydantic v2** and migrate from Black to Ruff formatting. :pr:`169` * Add Zenodo DOI badge to README. .. _release-v1-2-1: --------------------------------------------------------------------------------------- 1.2.1 (2023-10-18) --------------------------------------------------------------------------------------- * Add Python 3.12 support. .. _release-v1-2-0: --------------------------------------------------------------------------------------- 1.2.0 (2023-10-12) --------------------------------------------------------------------------------------- * Instead of combining multiple filings from one year, we track publication time of each filing and keep all filings. This allows downstream users to deduplicate facts from multiple filings. .. _release-v1-1-0: --------------------------------------------------------------------------------------- 1.1.0 (2023-09-22) --------------------------------------------------------------------------------------- * Fix high memory usage in v1.0. .. _release-v1-0-1: --------------------------------------------------------------------------------------- 1.0.1 (2023-09-13) --------------------------------------------------------------------------------------- * Minor patch for Pydantic 2.0 compatibility. .. _release-v1-0-0: --------------------------------------------------------------------------------------- 1.0.0 (2023-09-07) --------------------------------------------------------------------------------------- * Match facts that are missing some dimensions to their corresponding fact tables - see `this issue `_. * Multiple filings from one entity in a year are now combined as if later ones are updates to earlier ones instead of duplicated. * Separate taxonomy archives from data archives, since data refers to taxonomies from a specific year. * Update to Pandas 2.0 and loosen dependency pins on ``arelle`` (now ">=2.3,<3") .. _release-v0-7-0: --------------------------------------------------------------------------------------- 0.7.0 (2022-12-9) --------------------------------------------------------------------------------------- Group taxonomy metadata by table ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Change taxonomy metadata extraction to group by table name .. _release-v0-6-0: --------------------------------------------------------------------------------------- 0.6.0 (2022-12-8) --------------------------------------------------------------------------------------- Use official Arelle package ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Change Arelle dependency to point to official PyPI package * Explicitly reset locale to avoid error caused by Arelle .. _release-v0-5-0: --------------------------------------------------------------------------------------- 0.5.0 (2022-11-23) --------------------------------------------------------------------------------------- Fix bug causing some records to be excluded ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Use sorted tuple keys when looking up facts during parsing .. _release-v0-4-0: --------------------------------------------------------------------------------------- 0.4.0 (2022-10-6) --------------------------------------------------------------------------------------- Parse archived taxonomies ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Add support for parsing taxonomies from a local zipfile .. _release-v0-3-0: --------------------------------------------------------------------------------------- 0.3.0 (2022-08-27) --------------------------------------------------------------------------------------- Enable publication of raw SQLite databases to Datasette ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Add support for specifying a subset of tables for extraction * Add options for specifying output path for datapackage descriptors * Fix docs generation, as well as various other CI improvements .. _release-v0-2-0: --------------------------------------------------------------------------------------- 0.2.0 (2022-07-28) --------------------------------------------------------------------------------------- Support All Forms ^^^^^^^^^^^^^^^^^ * Tested with FERC forms 1, 2, 6, 60, 714 * Adds options for selecting taxonomies from CLI .. _release-v0-1-0: --------------------------------------------------------------------------------------- 0.1.0 (2022-06-28) --------------------------------------------------------------------------------------- Initial Release ^^^^^^^^^^^^^^^^ * The FERC XBRL extractor supports extracting data from XBRL filings to produce a SQLite database * It provides a CLI that takes a link to a taxonomy and a set of filings and can produce a database containing the extracted data. * FERC form 1 is the only form that is officially tested and supported