# Datasets changelog > Loads and processes machine-learning datasets of any size from one API. - Vendor: Hugging Face - Category: AI - Official site: https://huggingface.co/docs/datasets - Tracked by: What's New (https://whatsnew.fyi/product/hugging-face-datasets) - Harvested from: GitHub (huggingface/datasets) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### 5.0.1 - Date: 2026-07-28 - Version: 5.0.1 - Original notes: https://github.com/huggingface/datasets/releases/tag/5.0.1 - Permalink: https://whatsnew.fyi/product/hugging-face-datasets/releases/5.0.1 - **fixed** — Fix version string in __init__.py - **fixed** — Fix conda build - **fixed** — Fix JSON loader schema inference for files starting with a UTF-8 BOM - **added** — Support hermes traces - **fixed** — Fix batch(by_column=...) crashing after shard/shuffle/split - **fixed** — Fix traces streaming - **added** — Support droid agent traces - **fixed** — Fix lance auth - **security** — Fix symlink-following arbitrary file write in archive extraction - **fixed** — Fix resuming dataloader twice resetting the dataloader - **fixed** — Validate Arrow IPC record batches - **fixed** — Make the dataset fingerprint independent of Arrow chunking - **fixed** — Fix casting a nullable LargeList to a different inner type - **fixed** — Fix column drop in Arrow path of axis=1 concatenation - **fixed** — Raise on length mismatch in batched IterableDataset.map - **fixed** — Fix require_storage_embed recursing into require_storage_cast - **security** — Fix path traversal via metadata file_name in folder-based builders - **added** — Support batched=True in Dataset.to_dict - **fixed** — Fix hdf5 external files - **fixed** — Keep flat numeric columns with nulls numeric in numpy format - **fixed** — Fix CSV loader dropping on_bad_lines/encoding_errors on pandas 2.0-2.2 ##### Bug fixes * Fix version string in __init__.py by @qgallouedec in https://github.com/huggingface/datasets/pull/8244 * fix conda build by @lhoestq in https://github.com/huggingface/datasets/pull/8250 * Fix JSON loader schema inference for files starting with a UTF-8 BOM (#8241) by @archievi in https://github.com/huggingface/datasets/pull/8243 * Support hermes traces by @lhoestq in https://github.com/huggingface/datasets/pull/8255 * Fix batch(by_column=...) crashing after shard/shuffle/split by @pkooij in https://github.com/huggingface/datasets/pull/8259 * fix traces streaming by @lhoestq in https://github.com/huggingface/datasets/pull/8277 * support droid agent traces by @cfahlgren1 in https://github.com/huggingface/datasets/pull/8263 * Fix CI: commit operation equality (hfh 1.20.0) and pytest parametrize collection error by @Wauplin in https://github.com/huggingface/datasets/pull/8283 * Fix lance auth by @lhoestq in https://github.com/huggingface/datasets/pull/8301 * Fix symlink-following arbitrary file write in archive extraction by @AAtomical in https://github.com/huggingface/datasets/pull/8303 * Bug Fix: Resuming Twice Resets the Dataloader by @francesco-bertolotti in https://github.com/huggingface/datasets/pull/8295 * Bump fsspec and simpler wds compr by @lhoestq in https://github.com/huggingface/datasets/pull/8337 * fix: validate Arrow IPC record batches by @XciD in https://github.com/huggingface/datasets/pull/8350 * Make the dataset fingerprint independent of Arrow chunking by @SuryanshSS1011 in https://github.com/huggingface/datasets/pull/8339 * Fix casting a nullable LargeList to a different inner type by @vineethsaivs in https://github.com/huggingface/datasets/pull/8346 * docs: replace AutoFeatureExtractor with AutoImageProcessor in image preprocessing docs by @gautamkishore in https://github.com/huggingface/datasets/pull/8326 * Fix column drop in Arrow path of axis=1 concatenation by @ebarkhordar in https://github.com/huggingface/datasets/pull/8342 * Raise on length mismatch in batched IterableDataset.map by @sohumt123 in https://github.com/huggingface/datasets/pull/8332 * Fix require_storage_embed recursing into require_storage_cast by @vineethsaivs in https://github.com/huggingface/datasets/pull/8349 * Fix path traversal via metadata file_name in folder-based builders by @Kaif10 in https://github.com/huggingface/datasets/pull/8325 * Support batched=True in Dataset.to_dict by @vineethsaivs in https://github.com/huggingface/datasets/pull/8333 * Fix hdf5 external files by @lhoestq in https://github.com/huggingface/datasets/pull/8355 * remove bad require_storage test by @lhoestq in https://github.com/huggingface/datasets/pull/8357 * ensure fiels are in repo by @lhoestq in https://github.com/huggingface/datasets/pull/8356 * Keep flat numeric columns with nulls numeric in numpy format by @ebarkhordar in https://github.com/huggingface/datasets/pull/8352 * Fix bucket dataset card handling and push metadata accounting by @pjh4993 in https://github.com/huggingface/datasets/pull/8354 * Fix CSV loader dropping on_bad_lines/encoding_errors on pandas 2.0-2.2 by @ebarkhordar in https://github.com/huggingface/datasets/pull/8358 * Keep integers on the python read path for fixed-shape ArrayXD columns with nulls by @ebarkhordar in https://github.com/huggingface/datasets/pull/8363 * Rebatch arrow source before formatting in IterableDataset.filter to fix resume data loss by @ebarkhordar in https://github.com/huggingface/datasets/pull/8360 * Decode Json() columns in Dataset.to_pandas() by @ebarkhordar in https://github.com/huggingface/datasets/pull/8344 * fix buckets on windows by @lhoestq in https://github.com/huggingface/datasets/pull/8369 * Fix DatasetDict.push_to_hub leaving removed splits in the dataset card by @pjh4993 in https://github.com/huggingface/datasets/pull/8367 * Preserve nullable integer columns in to_json/to_csv/to_sql by @ebarkhordar in https://github.com/huggingface/datasets/pull _[Truncated at 4000 characters — full notes: https://github.com/huggingface/datasets/releases/tag/5.0.1]_ ### 5.0.0 - Date: 2026-06-05 - Version: 5.0.0 - Original notes: https://github.com/huggingface/datasets/releases/tag/5.0.0 - Permalink: https://whatsnew.fyi/product/hugging-face-datasets/releases/5.0.0 - **added** — Parse Agent traces messages for SFT using the teich library to enable training on traces from claude_code, pi, codex and other sources - **added** — Use multiple input shards for shuffle buffer in streaming mode with configurable max_buffer_input_shards parameter - **added** — Add batch(by_column=...) method to batch examples by a specified column, useful for robotics datasets - **added** — Add Apache Iceberg format support - **added** — Add TsFile (Apache IoTDB) packaged builder with per-device wide format - **added** — Add 3D mesh support and MeshFolder builder - **added** — Add .conll / .conllu dataset format loader for CoNLL-2003, 2000, and U formats - **added** — Add num_proc argument to Dataset.to_sql - **changed** — Default shuffling mechanism now uses multiple input shards instead of single shard - **changed** — Support fsspec 2026.4.0 - **changed** — Pass library_name and version to HfApi in dataset push and delete paths - **fixed** — Fix storage_options lookup for streaming Lance datasets - **fixed** — Fix Parquet streaming hangs at the end of script - **fixed** — Fix parquet reshard - **fixed** — Fix parquet columns argument - **fixed** — Fix progress bar exceeding total when load_from_cache_file=False in map operation - **fixed** — Fix single lance file from pylance 7.0 ##### Datasets Features ###### Agent traces * Parse Agent traces messages for SFT using `teich` by @lhoestq in https://github.com/huggingface/datasets/pull/8232 * Agent traces from claude_code/pi/codex and others can now be loaded with load_dataset * Using the `teich` library (new optional dependency), traces are parsed to `messages` to enable training on traces using e.g. `trl` * Load the data: ```python >>> from datasets import load_dataset >>> ds = load_dataset("lhoestq/agent-traces-example", split="train") >>> ds[0]["messages"] [{'role': 'user', 'content': 'Download a random dataset from Hugging Face, use DuckDB to inspect it, and come back with a short report about it. Be concise and include: dataset name, what files/format you found, row count or rough size if you can determine it,...' ...] ``` * Train on agent traces: ```bash trl sft --dataset-name lhoestq/agent-traces-example ... ``` * find all the Agent traces datasets on HF here: https://huggingface.co/datasets?format=format:agent-traces&sort=trending ###### Next-level shuffling in streaming mode * Use multiple input shards for shuffle buffer by @lhoestq in https://github.com/huggingface/datasets/pull/8194 ```python ds = load_dataset(..., streaming=True) ds = ds.shuffle(seed=42) # or configure local buffer shuffling manually, default is: ds = ds.shuffle(seed=42, buffer_size=1000, max_buffer_input_shards=10) ``` before👎: image after✨: image toy example comparison ```python from datasets import IterableDataset ds = IterableDataset.from_dict({"i": range(123_456_789)}, num_shards=1024) ds = ds.shuffle(seed=42) print("Cold start ids:") print(list(ds.take(10)["i"])) print("Nominal regime ids:") print(list(ds.skip(10_000).take(10)["i"])) ``` before👎: ``` Cold start ids: [6148853, 6149537, 6149418, 6149202, 6149197, 6149622, 6148849, 6149461, 6148965, 6148858] Nominal regime ids: [6149537, 6149418, 6149202, 6149197, 6149622, 6148849, 6149461, 6148965, 6148858, 6149290] ``` after✨: ``` Cold start ids: [7836668, 9283505, 95847927, 482299, 9283471, 482341, 112003312, 59920157, 43764666, 95847871] Nominal regime ids: [9283505, 95847927, 482299, 9283471, 482341, 112003312, 59920157, 43764666, 95847871, 16758448] ``` Note: `ds.state_dict()` and `ds.load_state_dict()` are still supported for this improved shuffling :) enabling dataset checkpointing Note 2: it uses threads to fetch the first examples in parallel from the input shards Note 3: This is a BREAKING CHANGE: the default shuffling mechanism now uses multiple input shards. You can get the old mechanism by passing `max_buffer_input_shards=1` to `IterableDataset.shuffle()` ###### New batching features for robotics datasets * Add batch(by_column=...) by @lhoestq in https://github.com/huggingface/datasets/pull/8172 ```python from datasets import Dataset ds = Dataset.from_dict({"episode": [0] * 10 + [1] * 10, "frame": list(range(10)) * 2}) # ds = ds.to_iterable_dataset() ds = ds.batch(by_column="episode") for x in ds: print(x) # {'episode': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'frame': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]} # {'episode': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'frame': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]} ``` ###### New supported formats * Add Apache Iceberg format support by @frankliee in https://github.com/huggingface/datasets/pull/8148 * feat: add TsFile (Apache IoTDB) packaged builder with per-device wide format by @JackieTien97 in https://githu _[Truncated at 4000 characters — full notes: https://github.com/huggingface/datasets/releases/tag/5.0.0]_ ### 4.8.5 - Date: 2026-04-27 - Version: 4.8.5 - Original notes: https://github.com/huggingface/datasets/releases/tag/4.8.5 - Permalink: https://whatsnew.fyi/product/hugging-face-datasets/releases/4.8.5 - **fixed** — Decode Json() values before calling DataFrame.to_json() - **fixed** — Decode JSON type before to_list or to_dict is called - **fixed** — Fix batching for table-formatted datasets - **fixed** — Fix iterable map resume state - **fixed** — Don't embed remote files in download_and_prepare to parquet - **added** — Parse agent traces - **removed** — Remove print statement in JSON processing - **changed** — Don't include files list in DatasetInfo - **fixed** — Fix mask in embed_storage for remote files - **fixed** — Fix original_files missing in ci json test - **fixed** — Fix null in embed storage - **fixed** — Fix base_path in integration tests ##### Main bug fixes * fix: decode Json() values before calling DataFrame.to_json() (#8116) by @Brianzhengca in https://github.com/huggingface/datasets/pull/8122 * Fix: decode JSON type before to_list or to_dict is called by @ItsTania in https://github.com/huggingface/datasets/pull/8137 * Fix batching for table-formatted datasets by @bluehyena in https://github.com/huggingface/datasets/pull/8126 * Fix iterable map resume state by @Brianzhengca in https://github.com/huggingface/datasets/pull/8147 * don't embed remote files in download_and_prepare to parquet by @lhoestq in https://github.com/huggingface/datasets/pull/8150 ##### Other improvements and bug fixes * Parse agent traces by @lhoestq in https://github.com/huggingface/datasets/pull/8113 * 🔒 Pin GitHub Actions to commit SHAs by @paulinebm in https://github.com/huggingface/datasets/pull/8114 * chore: bump doc-builder SHA for PR upload workflow by @rtrompier in https://github.com/huggingface/datasets/pull/8134 * Remove print statement in JSON processing by @lhoestq in https://github.com/huggingface/datasets/pull/8136 * Don't include files list DatasetInfo (and remove old stuff) by @lhoestq in https://github.com/huggingface/datasets/pull/8128 * update ci uer by @lhoestq in https://github.com/huggingface/datasets/pull/8139 * fix warning in ci by @lhoestq in https://github.com/huggingface/datasets/pull/8140 * fix mask in embed_storage for remote files by @lhoestq in https://github.com/huggingface/datasets/pull/8151 * fix original_files missing in ci json test by @lhoestq in https://github.com/huggingface/datasets/pull/8152 * Fix null in embed storage by @lhoestq in https://github.com/huggingface/datasets/pull/8154 * Fix base_path in integration tests by @lhoestq in https://github.com/huggingface/datasets/pull/8155 ##### New Contributors * @paulinebm made their first contribution in https://github.com/huggingface/datasets/pull/8114 * @Brianzhengca made their first contribution in https://github.com/huggingface/datasets/pull/8122 * @bluehyena made their first contribution in https://github.com/huggingface/datasets/pull/8126 * @rtrompier made their first contribution in https://github.com/huggingface/datasets/pull/8134 * @ItsTania made their first contribution in https://github.com/huggingface/datasets/pull/8137 **Full Changelog**: https://github.com/huggingface/datasets/compare/4.8.4...4.8.5 ### 4.8.4 - Date: 2026-03-23 - Version: 4.8.4 - Original notes: https://github.com/huggingface/datasets/releases/tag/4.8.4 - Permalink: https://whatsnew.fyi/product/hugging-face-datasets/releases/4.8.4 - **changed** — Support latest torchvision - **fixed** — Fix regression when loading JSON with one file = one object ##### What's Changed * Support latest torchvision by @lhoestq in https://github.com/huggingface/datasets/pull/8087 * fix regression when loading JSON with one file = one object by @lhoestq in https://github.com/huggingface/datasets/pull/8086 **Full Changelog**: https://github.com/huggingface/datasets/compare/4.8.3...4.8.4 ### 4.8.3 - Date: 2026-03-19 - Version: 4.8.3 - Original notes: https://github.com/huggingface/datasets/releases/tag/4.8.3 - Permalink: https://whatsnew.fyi/product/hugging-face-datasets/releases/4.8.3 - **fixed** — Fix split_dataset_by_node step - **fixed** — Fix docstring of Json.cast_storage ##### What's Changed * Fix split_dataset_by_node step by @lhoestq in https://github.com/huggingface/datasets/pull/8081 * Fix docstring of Json.cast_storage by @albertvillanova in https://github.com/huggingface/datasets/pull/8080 **Full Changelog**: https://github.com/huggingface/datasets/compare/4.8.2...4.8.3 ### 4.8.2 - Date: 2026-03-17 - Version: 4.8.2 - Original notes: https://github.com/huggingface/datasets/releases/tag/4.8.2 - Permalink: https://whatsnew.fyi/product/hugging-face-datasets/releases/4.8.2 - **fixed** — Json type for empty struct ##### What's Changed * Json type for empty struct by @lhoestq in https://github.com/huggingface/datasets/pull/8074 **Full Changelog**: https://github.com/huggingface/datasets/compare/4.8.1...4.8.2 ### 4.8.1 - Date: 2026-03-17 - Version: 4.8.1 - Original notes: https://github.com/huggingface/datasets/releases/tag/4.8.1 - Permalink: https://whatsnew.fyi/product/hugging-face-datasets/releases/4.8.1 - **fixed** — Fix formatted iter arrow double yield ##### What's Changed * Fix formatted iter arrow double yield by @HaukurPall in https://github.com/huggingface/datasets/pull/8063 **Full Changelog**: https://github.com/huggingface/datasets/compare/4.8.0...4.8.1 ### 4.8.0 - Date: 2026-03-16 - Version: 4.8.0 - Original notes: https://github.com/huggingface/datasets/releases/tag/4.8.0 - Permalink: https://whatsnew.fyi/product/hugging-face-datasets/releases/4.8.0 - **added** — Read and write from HF Storage Buckets to load raw data, process, and save to Dataset Repos - **added** — Support hf:// paths for loading data files from Storage Buckets - **added** — Add max_shard_size parameter to IterableDataset.push_to_hub - **added** — Add more arrow-native iterable operations for IterableDataset - **changed** — Improve support of glob patterns in archives, e.g. zip://*.jsonl::hf://datasets/username/dataset-name/data.zip - **fixed** — Fix multiprocessed push_to_hub on macOS that was causing segfault by using spawn instead of fork - **fixed** — Fix reshard_data_sources - **fixed** — Fix null filling in missing jsonl columns - **fixed** — Fix to_pandas, videofolder, and load_dataset_builder kwargs in iterable datasets - **changed** — Bump dill and multiprocess versions to support Python 3.14 - **changed** — Improve error message for invalid data_files pattern format ##### Dataset Features * Read (and write) from [HF Storage Buckets](https://huggingface.co/storage): load raw data, process and save to Dataset Repos by @lhoestq in https://github.com/huggingface/datasets/pull/8064 ```python from datasets import load_dataset # load raw data from a Storage Bucket on HF ds = load_dataset("buckets/username/data-bucket", data_files=["*.jsonl"]) # or manually, using hf:// paths ds = load_dataset("json", data_files=["hf://buckets/username/data-bucket/*.jsonl"]) # process, filter ds = ds.map(...).filter(...) # publish the AI-ready dataset ds.push_to_hub("username/my-dataset-ready-for-training") ``` This also fixes multiprocessed push_to_hub on macos that was causing segfault (now it uses spawn instead of fork). And it bumps `dill` and `multiprocess` versions to support python 3.14 * Datasets streaming iterable packaged improvements and fixes by @Michael-RDev in https://github.com/huggingface/datasets/pull/8068 * added `max_shard_size` to IterableDataset.push_to_hub (but requires iterating twice to know the full dataset twice - improvements are welcome) * more arrow-native iterable operations for IterableDataset * better support of glob patterns in archives, e.g. `zip://*.jsonl::hf://datasets/username/dataset-name/data.zip` * fixes for to_pandas, videofolder, load_dataset_builder kwargs ##### What's Changed * fix reshard_data_sources by @lhoestq in https://github.com/huggingface/datasets/pull/8061 * Improve error message for invalid data_files pattern format by @kushalkkb in https://github.com/huggingface/datasets/pull/8060 * fix null filling in missing jsonl columns by @lhoestq in https://github.com/huggingface/datasets/pull/8069 ##### New Contributors * @kushalkkb made their first contribution in https://github.com/huggingface/datasets/pull/8060 * @Michael-RDev made their first contribution in https://github.com/huggingface/datasets/pull/8068 **Full Changelog**: https://github.com/huggingface/datasets/compare/4.7.0...4.8.0 ### 4.7.0 - Date: 2026-03-09 - Version: 4.7.0 - Original notes: https://github.com/huggingface/datasets/releases/tag/4.7.0 - Permalink: https://whatsnew.fyi/product/hugging-face-datasets/releases/4.7.0 - **added** — Add Json() type to support JSON Lines files with arbitrary JSON objects and mixed types in features, usable with load_dataset(), .map(), .cast(), .from_dict(), and .from_list() - **added** — Add on_mixed_types="use_json" parameter to .from_dict(), .from_list(), and .map() to automatically use Json() type for mixed types - **fixed** — Fix silent data loss in push_to_hub when num_proc > num_shards - **fixed** — Fix non-deterministic behavior by sorting metadata extensions - **fixed** — Preserve features when chaining filter() on typed IterableDataset - **fixed** — Handle nested null types in feature alignment for multi-proc map - **fixed** — Fix unstable tokenizer fingerprinting to enable map cache reuse - **fixed** — Don't extract bad files - **changed** — Use num_examples instead of len(self) for iterable_dataset's SplitInfo - **changed** — Limit dataset listing to first 20 entries in readme ##### Datasets Features * Add `Json()` type by @lhoestq in https://github.com/huggingface/datasets/pull/8027 * JSON Lines files that contain arbitrary JSON objects like tool calling datasets are now supported. When there is a field or subfield containing mixed types (e.g. mix of str/int/float/dict/list or dictionaries with arbitrary keys), the `Json()`type is used to store such data that would normally not be supported in Arrow/Parquet * Use the `Json()` type in `Features()` for any dataset, it is supported in any functions that accepts `features=`like `load_dataset()`, `.map()`, `.cast()`, `.from_dict()`, `.from_list()` * Use `on_mixed_types="use_json"` to automatically set the `Json()` type on mixed types in `.from_dict()`, `.from_list()` and `.map()` Examples: You can use `on_mixed_types="use_json"` or specify `features=` with a [`Json`] type: ```python >>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]}) Traceback (most recent call last): ... File "pyarrow/error.pxi", line 92, in pyarrow.lib.check_status pyarrow.lib.ArrowInvalid: Could not convert 'foo' with type str: tried to convert to int64 >>> features = Features({"a": Json()}) >>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]}, features=features) >>> ds.features {'a': Json()} >>> list(ds["a"]) [0, "foo", {"subfield": "bar"}] ``` This is also useful for lists of dictionaries with arbitrary keys and values, to avoid filling missing fields with None: ```python >>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}) >>> ds.features {'a': List({'b': Value('int64'), 'c': Value('int64')})} >>> list(ds["a"]) [[{'b': 0, 'c': None}, {'b': None, 'c': 0}]] # missing fields are filled with None >>> features = Features({"a": List(Json())}) >>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, features=features) >>> ds.features {'a': List(Json())} >>> list(ds["a"]) [[{'b': 0}, {'c': 0}]] # OK ``` Another example with tool calling data and the `on_mixed_types="use_json"` argument (useful to not have to specify `features=` manually): ```python >>> messages = [ ... {"role": "user", "content": "Turn on the living room lights and play my electronic music playlist."}, ... {"role": "assistant", "tool_calls": [ ... {"type": "function", "function": { ... "name": "control_light", ... "arguments": {"room": "living room", "state": "on"} ... }}, ... {"type": "function", "function": { ... "name": "play_music", ... "arguments": {"playlist": "electronic"} # mixed-type here since keys ["playlist"] and ["room", "state"] are different ... }}] ... }, ... {"role": "tool", "name": "control_light", "content": "The lights in the living room are now on."}, ... {"role": "tool", "name": "play_music", "content": "The music is now playing."}, ... {"role": "assistant", "content": "Done!"} ... ] >>> ds = Dataset.from_dict({"messages": [messages]}, on_mixed_types="use_json") >>> ds.features {'messages': List({'role': Value('string'), 'content': Value('string'), 'tool_calls': List(Json()), 'name': Value('string')})} >>> ds[0][1]["tool_calls"][0]["function"]["arguments"] {"room": "living room", "state": "on"} ``` ##### What's Changed * Fix typos in iterable_dataset.py by @omkar-334 in https://github.com/huggingface/datasets/pull/8049 * Fix non-deterministic by sorting metadata extensions (#8034) by @Nexround in https://github.com/huggingface/datasets/pull/8039 * Use num_examples instead of len(self) for iterable_dataset's SplitInfo by @HaukurPall in https://github.com/huggingface/datasets/pull/8041 * Fix silent data loss in push_to_hub when num_proc > num_shards by @HaukurPall in https://github.com/huggingface/datasets/pull/8044 * Don't extract bad files by @lhoestq in https://github.com/huggingface/datasets/pull/8056 * fix(iterable_dataset): preserve features when chaining filter() _[Truncated at 4000 characters — full notes: https://github.com/huggingface/datasets/releases/tag/4.7.0]_ ### 4.6.1 - Date: 2026-02-27 - Version: 4.6.1 - Original notes: https://github.com/huggingface/datasets/releases/tag/4.6.1 - Permalink: https://whatsnew.fyi/product/hugging-face-datasets/releases/4.6.1 - **fixed** — Remove temporary file in push to hub ##### Bug fix * Remove tmp file in push to hub by @lhoestq in https://github.com/huggingface/datasets/pull/8030 **Full Changelog**: https://github.com/huggingface/datasets/compare/4.6.0...4.6.1