Skip to content

Commit a6bb5de

Browse files
committed
Add CHANGELOG.md and RELEASING.md
1 parent 4112f01 commit a6bb5de

2 files changed

Lines changed: 213 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
12+
- Flat directory support — input folders without class subdirectories are auto-detected and split directly ([#47]).
13+
- `group` parameter with `"stem"`, `"sibling"`, and callable support for flexible file grouping ([#39], [#41], [#51]).
14+
- `group="sibling"` mode for splitting parallel directories (e.g. `images/` + `annotations/`) in lockstep ([#51]).
15+
- `shuffle` parameter (`True` by default) to disable shuffling for time series data ([#44]).
16+
- `--group`, `--no-shuffle`, and `--kfold` CLI flags.
17+
- k-fold cross-validation split via `kfold()` ([#50]).
18+
- `fixed="auto"` to auto-compute validation size from the smallest class ([#40]).
19+
- File format filtering via `formats` parameter and `--formats` CLI flag ([#38]).
20+
- Symlink support via `move="symlink"` and `--symlink` CLI flag ([#48]).
21+
- Migrated `pyproject.toml` to PEP 621 for Poetry 2.x.
22+
- Replaced `black`/`isort` with `ruff` for linting.
23+
24+
### Fixed
25+
26+
- `group_prefix` no longer mismatches filenames with shared prefixes (e.g. `image_130` vs `image_1300`) — now matches by `Path.stem` instead of `startswith` ([#39]).
27+
- Error message in `split_class_dir_fixed` ([#35]).
28+
- Typo: "get get" → "get" ([#33]).
29+
- Removed stray debugging `print` statement.
30+
31+
## [0.5.1] - 2022-02-03
32+
33+
### Fixed
34+
35+
- `shutil.move` compatibility for Python <= 3.8 ([#32]).
36+
37+
### Added
38+
39+
- Tests for `pathlib.Path` inputs.
40+
41+
## [0.5.0] - 2022-01-30
42+
43+
### Added
44+
45+
- Warn users if the input folder is not in the expected format ([#13]).
46+
- `fixed` now accepts 3 values to limit the number of training samples ([#24]).
47+
- `move` flag to move files instead of copying ([#28]).
48+
49+
### Fixed
50+
51+
- Missing items for oversampling with groups.
52+
53+
### Changed
54+
55+
- Switched CI from Travis to GitHub Actions.
56+
- Dropped Python 3.6, added Python 3.10 support.
57+
- `tqdm` moved to optional extras (`pip install split-folders[full]`).
58+
59+
## [0.4.3] - 2020-11-01
60+
61+
### Fixed
62+
63+
- Integer `fixed` parameter handling.
64+
- Documentation about `--ratio` CLI usage.
65+
66+
## [0.4.2] - 2020-08-05
67+
68+
### Fixed
69+
70+
- Oversampling documentation and typos.
71+
72+
## [0.4.1] - 2020-08-05
73+
74+
### Changed
75+
76+
- Renamed `shared_prefix` to `group_prefix`.
77+
78+
## [0.4.0] - 2020-08-04
79+
80+
### Added
81+
82+
- `group_prefix` option to group files by shared filename prefix.
83+
- `__version__` attribute.
84+
85+
### Changed
86+
87+
- Switched build system to Poetry.
88+
- CLI command is now `splitfolders` (with `split_folders` and `split-folders` as aliases).
89+
- Input folder is now a positional CLI argument.
90+
91+
## [0.3.1] - 2019-07-30
92+
93+
### Changed
94+
95+
- Require Python 3.6+.
96+
97+
## [0.3.0] - 2019-07-30
98+
99+
### Added
100+
101+
- Optional progress bar via `tqdm` ([#10]).
102+
103+
### Fixed
104+
105+
- Graceful handling when `tqdm` is not installed.
106+
107+
## [0.2.3] - 2019-07-05
108+
109+
### Fixed
110+
111+
- Assertion error due to floating-point imprecision in ratio calculations.
112+
113+
## [0.2.2] - 2019-05-12
114+
115+
### Fixed
116+
117+
- Improved error message when there are not enough files for `fixed`.
118+
119+
## [0.2.1] - 2018-11-09
120+
121+
### Fixed
122+
123+
- One file going missing in certain split configurations ([#1]).
124+
125+
## [0.2.0] - 2018-10-18
126+
127+
### Added
128+
129+
- Randomized oversampling for imbalanced datasets.
130+
- Ignore dotfiles during splitting.
131+
132+
## [0.1.0] - 2018-10-04
133+
134+
### Added
135+
136+
- Initial release.
137+
- Split folders into train, validation, and test sets.
138+
- `ratio` and `fixed` split modes.
139+
- Seed for reproducible splits.
140+
- CLI interface.
141+
142+
[Unreleased]: https://github.com/jfilter/split-folders/compare/0.5.1...HEAD
143+
[0.5.1]: https://github.com/jfilter/split-folders/compare/0.5.0...0.5.1
144+
[0.5.0]: https://github.com/jfilter/split-folders/compare/0.4.3...0.5.0
145+
[0.4.3]: https://github.com/jfilter/split-folders/compare/0.4.2...0.4.3
146+
[0.4.2]: https://github.com/jfilter/split-folders/compare/0.4.1...0.4.2
147+
[0.4.1]: https://github.com/jfilter/split-folders/compare/0.4.0...0.4.1
148+
[0.4.0]: https://github.com/jfilter/split-folders/compare/0.3.1...0.4.0
149+
[0.3.1]: https://github.com/jfilter/split-folders/compare/0.3.0...0.3.1
150+
[0.3.0]: https://github.com/jfilter/split-folders/compare/0.2.3...0.3.0
151+
[0.2.3]: https://github.com/jfilter/split-folders/compare/0.2.2...0.2.3
152+
[0.2.2]: https://github.com/jfilter/split-folders/compare/0.2.1...0.2.2
153+
[0.2.1]: https://github.com/jfilter/split-folders/compare/0.2.0...0.2.1
154+
[0.2.0]: https://github.com/jfilter/split-folders/compare/0.1.0...0.2.0
155+
[0.1.0]: https://github.com/jfilter/split-folders/releases/tag/0.1.0
156+
157+
[#1]: https://github.com/jfilter/split-folders/pull/1
158+
[#10]: https://github.com/jfilter/split-folders/pull/10
159+
[#13]: https://github.com/jfilter/split-folders/issues/13
160+
[#24]: https://github.com/jfilter/split-folders/issues/24
161+
[#28]: https://github.com/jfilter/split-folders/issues/28
162+
[#32]: https://github.com/jfilter/split-folders/issues/32
163+
[#33]: https://github.com/jfilter/split-folders/pull/33
164+
[#35]: https://github.com/jfilter/split-folders/pull/35
165+
[#38]: https://github.com/jfilter/split-folders/pull/38
166+
[#39]: https://github.com/jfilter/split-folders/issues/39
167+
[#40]: https://github.com/jfilter/split-folders/issues/40
168+
[#41]: https://github.com/jfilter/split-folders/issues/41
169+
[#44]: https://github.com/jfilter/split-folders/issues/44
170+
[#47]: https://github.com/jfilter/split-folders/issues/47
171+
[#48]: https://github.com/jfilter/split-folders/pull/48
172+
[#50]: https://github.com/jfilter/split-folders/issues/50
173+
[#51]: https://github.com/jfilter/split-folders/issues/51

RELEASING.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Releasing
2+
3+
## Version locations
4+
5+
The version string lives in two places and **both must be updated**:
6+
7+
- `pyproject.toml` &rarr; `version = "X.Y.Z"`
8+
- `splitfolders/__init__.py` &rarr; `__version__ = "X.Y.Z"`
9+
10+
## Steps
11+
12+
1. **Update the version** in both files listed above.
13+
14+
2. **Commit the version bump:**
15+
16+
```bash
17+
git add pyproject.toml splitfolders/__init__.py
18+
git commit -m "Bump version to X.Y.Z"
19+
```
20+
21+
3. **Create a git tag:**
22+
23+
```bash
24+
git tag X.Y.Z
25+
```
26+
27+
4. **Push the commit and tag:**
28+
29+
```bash
30+
git push && git push --tags
31+
```
32+
33+
5. **Build and publish to PyPI:**
34+
35+
```bash
36+
poetry build
37+
poetry publish
38+
```
39+
40+
This requires PyPI credentials configured locally via `poetry config pypi-token.pypi <token>`.

0 commit comments

Comments
 (0)