Skip to content

Commit 70df180

Browse files
Hordeclaude
andcommitted
Add CHANGELOG and auto-generate GitHub release notes
Introduce CHANGELOG.md documenting the 2.6.3 release (folding in the tag-less interim 2.6.2 changes, i.e. everything since the last tagged release 2.6.1) and recording the new release process. This addresses the long-standing request for a changelog (#235). Also set generateReleaseNotes: true on the release-action step so each GitHub Release body is auto-populated with the merged PRs since the previous tag, instead of being empty. The curated highlights live in CHANGELOG.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 7957492 commit 70df180

2 files changed

Lines changed: 73 additions & 0 deletions

File tree

‎.github/workflows/wheels.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,9 @@ jobs:
171171
name: ${{ needs.check_version.outputs.version }}
172172
prerelease: ${{ needs.check_version.outputs.prerelease }}
173173
allowUpdates: true
174+
# Auto-populate the release body with the merged PRs since the
175+
# previous tag (curated highlights live in CHANGELOG.md).
176+
generateReleaseNotes: true
174177
artifacts: "./artifacts/**/*"
175178
token: ${{ secrets.GITHUB_TOKEN }}
176179
- name: Publish to PyPI

‎CHANGELOG.md‎

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Changelog
2+
3+
All notable, user-facing changes to the `libigl` Python bindings are recorded
4+
here. The project loosely follows [Semantic Versioning](https://semver.org) and
5+
version numbers match the [PyPI releases](https://pypi.org/project/libigl/#history).
6+
7+
> Historical note: releases up to and including 2.6.2 were published to PyPI
8+
> without matching git tags or GitHub releases (see #235). Starting with 2.6.3,
9+
> pushing a version bump to `main` automatically creates the git tag, the GitHub
10+
> release, and the PyPI upload together (#313). The 2.6.3 section below therefore
11+
> folds in changes first shipped in the tag-less interim 2.6.2 release, i.e. it
12+
> covers everything since the last tagged release, 2.6.1.
13+
14+
## 2.6.3 — 2026-08-31
15+
16+
### Added
17+
18+
New function bindings:
19+
20+
- **Distances & closest points:** `simplex_simplex_squared_distance`,
21+
`point_simplex_squared_distance`, `offset_surface`.
22+
- **Rotations / ARAP:** `polar_svd3x3`, `fit_rotations`.
23+
- **Quad meshes:** `quad_planarity`, `planarize_quad_mesh`, `quad_edges`.
24+
- **Curves & mesh topology:** `ramer_douglas_peucker`, `path_to_edges`,
25+
`connect_boundary_to_infinity`, `smooth_corner_adjacency`,
26+
`per_face_normals_stable`, `resolve_duplicated_faces`, `vertex_components`,
27+
`is_vertex_manifold`, `is_intrinsic_delaunay`.
28+
- **Remeshing:** `triangle.remesh_at_points`.
29+
- **Winding numbers & distance fields:** `swept_volume`,
30+
`swept_volume_bounding_box`, `swept_volume_signed_distance`,
31+
point-cloud and pre-built-tree support for `fast_winding_number`,
32+
`lipschitz_octree`, `unique_sparse_voxel_corners`, and an edge→vertex (`E2V`)
33+
output for sparse `marching_cubes`.
34+
- **Ambient occlusion:** core `ambient_occlusion` binding.
35+
- **Solvers & energies:** `active_set`, `boundary_conditions`,
36+
`harmonic_integrated_from_laplacian_and_mass`, Hessian and Hessian-energy
37+
operators, and cross-field bindings.
38+
- **Bounding boxes:** oriented-bounding-box functions, `bounding_box_diagonal`.
39+
- **Curves & predicates:** cubic Bézier evaluation and roots, additional
40+
`igl::predicates` bindings, `igl::spectra` bindings, and
41+
`lexicographic_triangulation`.
42+
- **Misc:** `centroid`, a `face_areas` overload taking intrinsic edge lengths,
43+
and an optional `seed` parameter for `random_points_on_mesh`.
44+
45+
### Changed
46+
47+
- Bumped the bundled libigl to
48+
[`f68f01c2`](https://github.com/libigl/libigl/commit/f68f01c23ac82351e2543ce8c529b6d4c89fdf16).
49+
- `cycodebase` distance queries can now reuse a prebuilt AABB tree / precomputed
50+
bases for fast repeated queries.
51+
- Releases are now cut by pushing a version bump to `main`, which tags the
52+
commit and creates the GitHub release and PyPI upload in one step (#313).
53+
54+
### Packaging / CI
55+
56+
- Added CPython 3.13 wheels.
57+
- Switched the Linux CI builds to Clang to fix a 2.6.1 performance regression.
58+
- Bumped `pypa/gh-action-pypi-publish` to 1.13.0.
59+
60+
## 2.6.2 — PyPI only
61+
62+
Interim release published to PyPI on 2025 without a git tag or GitHub release.
63+
Its changes are folded into the 2.6.3 entry above.
64+
65+
## 2.6.1 — 2025-05-15
66+
67+
Last release before this changelog was introduced. See the
68+
[git history](https://github.com/libigl/libigl-python-bindings/commits/2.6.1)
69+
and the [PyPI release history](https://pypi.org/project/libigl/#history) for
70+
earlier changes.

0 commit comments

Comments
 (0)