-
Notifications
You must be signed in to change notification settings - Fork 96
Description
Background
I'd like to introduce a tool like https://github.com/executablebooks/github-activity to automate our release note generation. We already have a tool that does this, but we don't do anything special with respect to categorizing the PRs that are merged during the release cycle.
The benefit of using another tool like github-activity is twofold:
- other people are using & developing it, so we won't have to maintain our own implementation
- richer release notes - e.g. easier to find bugfixes vs features
For example, here's a generated changelog entry for 1.8.0:
New changelog for 1.8.0
1.8.0
New features added
- Feat: add
after_option
argument toak.zip
#1308 (@agoose77) - feat: bump cibuildwheel, add Python 3.10 #1186 (@henryiii)
Bugs fixed
- Fix: do not increment field index for nested lists #1303 (@agoose77)
- Fix: simplify output in {Byte,Bit}MaskedArray #1279 (@agoose77)
- Fix: fix
ByteMaskedArray.simplify_optiontype()
#1259 (@agoose77) - fix: building twice was broken #1254 (@henryiii)
- Fix: support nested option types in
ak.is_none
#1249 (@agoose77) - Fix: support mixed array types in
NumpyLike.to_rectilinear
#1248 (@agoose77) - Fix: drop parameters for flattened RecordArray #1214 (@agoose77)
- Fix: _pack_layout should also pack projected index arrays #1195 (@agoose77)
Maintenance and upkeep improvements
- chore: wheel not required for setuptools PEP 517 (all-repos) #1322 (@jpivarski)
- chore: bump pybind11 to 2.9.1 #1316 (@henryiii)
- chore: remove extra files from the wheels #1314 (@henryiii)
- ci: avoid PyPI cuda wheel upload #1313 (@henryiii)
- chore: add dependabot for actions #1263 (@henryiii)
- chore: initial nox and pylint support #1262 (@henryiii)
- chore: update pytest config, 6.0+ #1255 (@henryiii)
- chore: bump to pybind11 2.9.0 #1199 (@henryiii)
- ci: try Numba RC on 3.10 #1188 (@henryiii)
- chore: bump pybind11 to 2.8.0 #1011 (@henryiii)
Documentation improvements
- Docs: fix typo in documentation #1326 (@agoose77)
- docs: add BioGeek as a contributor for doc #1210 (@allcontributors)
API and Breaking Changes
- C++ refactoring: ak.cartesian, ak.argcartesian #1317 (@ioanaif)
- C++ refactoring: ak.sort #1309 (@ioanaif)
- C++ refactoring: ak.argcombinations, ak.combinations #1307 (@ioanaif)
- C++ refactoring: ak.argsort #1304 (@ioanaif)
- C++ refactoring: ak.strings_astype #1301 (@ioanaif)
- C++ refactoring: ak.without_parameters #1297 (@ioanaif)
- C++ refactoring: ak.fields #1296 (@ioanaif)
- C++ refactoring: ak._v2.from_arrow_schema function #1294 (@jpivarski)
- C++ refactoring: ak.full_like, ak.zeros_like, ak.ones_like #1293 (@ioanaif)
- C++ refactoring: ak.with_field #1292 (@ioanaif)
- C++ refactoring: ak.with_parameter #1289 (@ioanaif)
- C++ refactoring: layout.completely_flatten should not concatenate (performance issue). #1245 (@jpivarski)
- C++ refactoring: ak.parameters #1242 (@ioanaif)
- C++ refactoring: getting Numba to work for v2 arrays #1240 (@jpivarski)
- C++ refactoring: ak.type and ak.values_astype #1234 (@ioanaif)
- C++ refactoring: ak.with_name #1233 (@ioanaif)
- C++ refactoring: ak.pad_none #1229 (@ioanaif)
- C++ refactoring: Redo PR fix typo #1227: fixing 'emptyArray' typo. #1228 (@jpivarski)
- C++ refactoring: ak.num #1226 (@ioanaif)
- C++ refactoring: ak.zip #1225 (@ioanaif)
- C++ refactoring: ak.ravel #1222 (@ioanaif)
- C++ refactoring: ak.local_index #1221 (@ioanaif)
- C++ refactoring: ak.where #1220 (@ioanaif)
- C++ refactoring: ak.mask #1219 (@ioanaif)
- C++ refactoring: Make highlevel repr safe for typetracers. #1218 (@jpivarski)
- C++ refactoring: ak.flatten #1217 (@ioanaif)
- C++ refactoring: Fixed handling of list-nested boolean slices. #1215 (@jpivarski)
- C++ refactoring: Removed v1_to_v2 from all v2 tests #1211 (@jpivarski)
- C++ refactoring: ak._v2 namespace is now filled with the right symbols. #1208 (@jpivarski)
- C++ refactoring: Highlevel non-reducers and improved testing/fixes for reducers. #1206 (@jpivarski)
- C++ refactoring: ak._v2.operations.convert.to_numpy is done. #1204 (@jpivarski)
- C++ refactoring: Don't let ak.to_list act on v2 arrays (finishing C++ refactoring: Implemented v2 ak.to_list and switched all v2 tests to use it. #1201). #1203 (@jpivarski)
- C++ refactoring: Implemented v2 ak.to_list and switched all v2 tests to use it. #1201 (@jpivarski)
Other merged PRs
- Keep as much length knowledge as possible in typetracers. #1312 (@jpivarski)
- Fix lost 'behavior' in 'ak.unzip'. #1310 (@jpivarski)
- Awkward CUDA Kernel's version should be tied with Awkward #1306 (@swishdiff)
- Implement Awkward --> C++ with Cling. #1300 (@jpivarski)
- Remove unnecessary line blank from the tops of almost all files . #1299 (@jpivarski)
- Allow ak.nan_to_num arguments to be arrays. #1298 (@jpivarski)
- Fix a typo #1290 (@douglasdavis)
- [pre-commit.ci] pre-commit autoupdate #1277 (@pre-commit-ci)
- This PR adds support to call kernels in CUDA from v2 Awkward Arrays. #1276 (@swishdiff)
- style: pylint 1 #1275 (@henryiii)
- Fixing
ak.sum
produces incorrect structure for outer dimension #1266 by reordering nextparents (in v2; v1 is NOT FIXED!). #1274 (@jpivarski) - Add GHA to build CUDA Wheels and update the cuda build script #1270 (@swishdiff)
- style: update to first non-pre-release black! #1267 (@henryiii)
- Bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 #1265 (@dependabot)
- Bump pypa/cibuildwheel from 1.12.0 to 2.3.1 #1264 (@dependabot)
- Remove distutils reference in test (now an error). #1258 (@jpivarski)
- Add a CITATION.cff file to specify a set of authors. #1257 (@jpivarski)
- style: further cleanup for Python 3.6+ #1246 (@henryiii)
- style: pyupgrade to 3.6 #1244 (@henryiii)
- style: add shellcheck #1243 (@henryiii)
- Revert "Build wheels for ppc64le" #1239 (@jpivarski)
- Remove Windows 32-bit from the Python 3.10 build. #1237 (@jpivarski)
- macos segfault bugfix #1232 (@ianna)
- Updated the generate-cuda script. Works for py >= 3.8 #1231 (@swishdiff)
- Build wheels for ppc64le #1224 (@chrisburr)
- Restore pybind11 2.9.0. #1223 (@jpivarski)
- [pre-commit.ci] pre-commit autoupdate #1213 (@pre-commit-ci)
- Drop Win32 Py3.10 test and musllinux in deployment. #1212 (@jpivarski)
- json de-/serialisation from/to string or file #1207 (@ianna)
- Better error message for Content::axis_wrap_if_negative. #1202 (@jpivarski)
- Allow non-array iterables in array_function. #1198 (@jpivarski)
- Fix ak.singletons for non-optional data. #1197 (@jpivarski)
- Remove distutils dependence. #1196 (@jpivarski)
- [pre-commit.ci] pre-commit autoupdate #1194 (@pre-commit-ci)
- Remove duplicated text #1187 (@BioGeek)
- Drop all length information from TypeTracer, get all tests working again. #1184 (@jpivarski)
- Bugs found by the Dask project: broaden type-tracers' applicability #1183 (@jpivarski)
- Remove Python 2.7 and 3.5 support. #1182 (@jpivarski)
- Fixed zeros in RegularArray shape. #1181 (@jpivarski)
- ak.to_numpy with RegularArray of size zero and non-zero length. #1180 (@jpivarski)
- Raise ValueError for incompatible union types in ak.unzip. #1179 (@jpivarski)
- Fix leading zeros in ak.unflatten. #1178 (@jpivarski)
- NumpyArray::numbers_to_type must use flattened_length, not length. #1175 (@jpivarski)
- [pre-commit.ci] pre-commit autoupdate #1174 (@pre-commit-ci)
- Bugs found by the Dask project #1172 (@jpivarski)
- Parquet files with zero record batches. #1170 (@jpivarski)
- ArrayBuilder: replace shared with unique #1155 (@ianna)
- pictures for a tutorial #948 (@ianna)
Contributors to this release
(GitHub contributors page for this release)
@agoose77 | @allcontributors | @BioGeek | @chrisburr | @codecov | @dependabot | @douglasdavis | @henryiii | @ianna | @ioanaif | @jpivarski | @martindurant | @miranov25 | @pre-commit-ci | @swishdiff
Existing changelog for 1.8.0
Release 1.8.0rc7¶
(pip)
PR #1326: Docs: fix typo in documentation.
PR #1314: chore: remove extra files from the wheels.
PR #1313: ci: avoid PyPI cuda wheel upload.
PR #1316: chore: bump pybind11 to 2.9.1.
PR #1312: Keep as much length knowledge as possible in typetracers.
PR #1322: chore: wheel not required for setuptools PEP 517 (all-repos)
PR #1317: C++ refactoring: ak.cartesian, ak.argcartesian.
PR #1301: C++ refactoring: ak.strings_astype.
PR #1308: Feat: add
optiontype_outside_record
argument toak.zip
PR #1307: C++ refactoring: ak.argcombinations, ak.combinations.
PR #1309: C++ refactoring: ak.sort.
Release 1.8.0rc4¶
(pip)
PR #1299: Remove unnecessary line blank from the tops of almost all files .
PR #1298: Allow ak.nan_to_num arguments to be arrays.
PR #1296: ak.fields.
PR #1297: ak.without_parameters.
PR #1293: C++ refactoring: ak.full_like, ak.zeros_like, ak.ones_like.
PR #1275: style: pylint 1.
PR #1274: Fixing #1266 (in v1 and v2), possibly by reordering nextparents.
PR #1294: C++ refactoring: ak._v2.from_arrow_schema function.
PR #1289: C++ refactoring: ak.with_parameter.
PR #1292: C++ refactoring: ak.with_field.
PR #1290: typo.
PR #1276: This PR adds support to call kernels in CUDA from v2 Awkward Arrays.
PR #1249: Fix: support nested option types in
ak.is_none
(also: #1193, #1193)PR #1279: Fix: simplify output in {Byte,Bit}MaskedArray.
PR #1277: [pre-commit.ci] pre-commit autoupdate.
PR #1240: Getting Numba to work for v2 arrays.
PR #1207: json de-/serialisation from/to string or file.
PR #1270: Add GHA to build CUDA Wheels and update the cuda build script.
PR #1262: chore: initial nox and pylint support.
PR #1267: style: update to first non-pre-release black!
PR #1265: Bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0.
PR #1257: Add a .zenodo.json file to specify a set of authors.
PR #1264: Bump pypa/cibuildwheel from 1.12.0 to 2.3.1.
PR #1263: chore: add dependabot for actions.
PR #1259: Fix: fix
ByteMaskedArray.simplify_optiontype()
PR #1258: Remove distutils reference in test (now an error).
PR #1255: chore: update pytest config, 6.0+
PR #1242: C++ refactoring: ak.parameters.
PR #1243: style: add shellcheck.
PR #1254: fix: building twice was broken.
PR #1248: Fix: support mixed array types in
NumpyLike.to_rectilinear
PR #1246: style: further cleanup for Python 3.6+
PR #1244: style: pyupgrade to 3.6.
PR #1245: layout.completely_flatten should not concatenate (performance issue).
PR #1234: C++ refactoring: ak.type and ak.values_astype.
PR #1214: Fix: drop parameters for flattened RecordArray.
Release 1.8.0rc2¶
PR #1233: C++ refactoring: ak.with_name.
PR #1231: Updated the generate-cuda script. Works for py >= 3.8.
PR #1224: Build wheels for ppc64le.
PR #1237: Remove Windows 32-bit from the Python 3.10 build.
PR #1229: C++ refactoring: ak.pad_none.
PR #1232: macos segfault bugfix.
PR #1225: C++ refactoring: ak.zip.
PR #1226: C++ refactoring: ak.num.
PR #1217: C++ refactoring: ak.flatten.
PR #1220: C++ refactoring: ak.where.
PR #1223: Restore pybind11 2.9.0.
PR #1218: Make highlevel __repr__ safe for typetracers.
PR #1219: C++ refactoring: ak.mask.
PR #1221: C++ refactoring: ak.local_index.
PR #1222: C++ refactoring: ak.ravel.
PR #1215: Fixed handling of list-nested boolean slices.
PR #1212: Drop Win32 Py3.10 test and musllinux in deployment.
PR #1213: [pre-commit.ci] pre-commit autoupdate.
Release 1.8.0rc1¶
PR #1188: ci: try Numba RC on 3.10.
PR #1199: chore: bump to pybind11 2.9.0.
PR #1210: docs: add BioGeek as a contributor for doc.
PR #1208: ak._v2 namespace is now filled with the right symbols.
PR #1206: Highlevel non-reducers and improved testing/fixes for reducers.
PR #1204: ak._v2.operations.convert.to_numpy is done.
PR #1203: Don’t let ak.to_list act on v2 arrays (finishing #1201).
PR #1202: Better error message for Content::axis_wrap_if_negative.
PR #1201: Implemented v2 ak.to_list and switched all v2 tests to use it.
PR #1198: Allow non-array iterables in __array_function__.
PR #1197: Fix ak.singletons for non-optional data.
PR #1196: Remove distutils dependence.
PR #1195: Fix: _pack_layout should also pack projected index arrays.
PR #1194: [pre-commit.ci] pre-commit autoupdate.
PR #948: pictures for a tutorial.
PR #1155: ArrayBuilder: replace shared with unique.
PR #1011: chore: bump pybind11 to 2.8.0.
PR #1186: feat: bump cibuildwheel, add Python 3.10.
PR #1187: Remove duplicated text.
PR #1184: Drop all length information from TypeTracer, get all tests working again.
PR #1183: Bugs found by the Dask project: broaden type-tracers’ applicability.
PR #1172: First bug found by @martindurant.
PR #1182: Remove Python 2.7 and 3.5 support.
PR #1181: Fixed zeros in RegularArray shape.
PR #1175: NumpyArray::numbers_to_type must use flattened_length, not length.
PR #1180: ak.to_numpy with RegularArray of size zero and non-zero length.
PR #1179: Raise ValueError for incompatible union types in ak.unzip.
PR #1178: Fix leading zeros in ak.unflatten.
PR #1174: [pre-commit.ci] pre-commit autoupdate.
Discussion
In order to produce richer release notes, we would benefit from using a standard set of prefixes for our PR titles. Really, we could do this for commits too, but as we squash and merge, it's really an aside for the purposes of this discussion. Some examples of these standards:
- https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional
- https://github-activity.readthedocs.io/en/latest/#id1
It really doesn't matter what we choose here, so long as we are all following some kind of convention. We don't even need to use the same convention (although this is really recommended).
I could write a small action to validate the PR title before merge if that would be helpful to enforce this. I hope that, given we only need to do this at merge time, it should minimally impact us during development.
Thoughts?