Skip to content

Commit 9420e67

Browse files
committed
Prepare for release-0.1.0.0
1 parent ca554f4 commit 9420e67

34 files changed

Lines changed: 1121 additions & 900 deletions

.github/workflows/cabal-fmt.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ jobs:
3232
hackage-index-state: "2026-02-19T00:00:00Z"
3333

3434
- name: 🎗️ Lint with cabal-fmt
35-
run: ./scripts/ci/format-cabal-fmt.sh && git diff --exit-code
35+
run: ./scripts/ci/run-cabal-fmt.sh && git diff --exit-code

.github/workflows/stylish-haskell.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ jobs:
3232
hackage-index-state: "2026-02-19T00:00:00Z"
3333

3434
- name: 🎗️ Lint with stylish-haskell
35-
run: ./scripts/ci/format-stylish-haskell.sh && git diff --exit-code
35+
run: ./scripts/ci/run-stylish-haskell.sh && git diff --exit-code

CONTRIBUTING.md

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ file](./.stylish-haskell.yaml).
1616
To perform a pre-commit code formatting pass, run one of the following:
1717

1818
```
19-
./scripts/ci/format-cabal-fmt.sh
20-
./scripts/ci/format-stylish-haskell.sh
19+
./scripts/ci/run-cabal-fmt.sh
20+
./scripts/ci/run-stylish-haskell.sh
2121
```
2222

2323
## Pull requests
@@ -37,27 +37,4 @@ The following are requirements for merging a PR into `main`:
3737

3838
## Releases
3939

40-
Releases follow the [Haskell Package Versioning
41-
Policy](https://pvp.haskell.org/). We use version numbers consisting of 3 parts,
42-
like `A.B.C`.
43-
* `A.B` is the *major* version number. A bump indicates a breaking change.
44-
* `C` is the *minor* version number. A bump indicates a non-breaking change.
45-
46-
To publish a release for a package, follow the steps below:
47-
48-
* Changelog checks (`CHANGELOG.md`):
49-
* Check that all user-facing changes have been recorded.
50-
* Check that each changelog entry is in the correct category.
51-
* Check that each changelog entry links to a PR, if applicable.
52-
* Add or update the changelog's section header with the package version that
53-
is going to be released, and the date of the release. The version should be
54-
picked based on our package versioning policy.
55-
56-
* Cabal file checks (`*.cabal`):
57-
* Update the `version` field.
58-
* Update the `tag` field of the `source-repository this` stanza.
59-
60-
* Cabal project file checks (`cabal.project*`):
61-
* Update the `index-state` in the `cabal.project` file to the current
62-
date-time, or the closest valid date-time to the current date-time, so that
63-
CI builds and tests the libraries with the newest versions of dependencies.
40+
To publish a release, follow [the release process](./dev/release-process.md).

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2024-2025, Well-Typed LLP and Anduril Industries Inc.
1+
Copyright (c) 2024-2026, Well-Typed LLP and Anduril Industries Inc.
22

33

44
Redistribution and use in source and binary forms, with or without

README.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
# `libclang-bindings`
22

33
[![Build Status](https://github.com/well-typed/libclang-bindings/actions/workflows/haskell.yml/badge.svg)](https://github.com/well-typed/libclang-bindings/actions)
4-
[![License: BSD-3-Clause](https://img.shields.io/badge/license-BSD--3--Clause-lightgray.svg)](https://github.com/well-typed/hs-bindgen/blob/main/hs-bindgen/LICENSE)
4+
[![License: BSD-3-Clause](https://img.shields.io/badge/license-BSD--3--Clause-lightgray.svg)](https://github.com/well-typed/libclang-bindings/blob/main/LICENSE)
55

66
`libclang-bindings` is a [Haskell][] library that provides bindings for the
7-
[LLVM/Clang][] `libclang` C API. It supports the [`hs-bindgen`][] project but
7+
[LLVM/Clang][] `libclang` C API. It supports the [`hs-bindgen`][] project but
88
can be used independently.
99

10-
> [!WARNING]
11-
> This project has not had an official release yet. There is a wide variety of
12-
> C (and C preprocessor) code in the world, so we are currently soliciting
13-
> feedback prior to the first official release of [`hs-bindgen`][]. Please try
14-
> it out! If something breaks, please check the [issues][] to see if the
15-
> problem is already known, and open an issue if not.
10+
> [!NOTE]
11+
> This is an early release. C (and C preprocessor) code varies widely, so we
12+
> welcome feedback. If something breaks, please check the [issues][] to see if
13+
> it is already known, and open an issue if not.
1614
1715
[Haskell]: https://www.haskell.org/
1816
[issues]: https://github.com/well-typed/libclang-bindings/issues
@@ -34,7 +32,7 @@ can be used independently.
3432
## Contribution
3533

3634
Our thanks go to those who have contributed to this project with development,
37-
bug reports, feature requests, blog posts, etc. We list
35+
bug reports, feature requests, blog posts, etc. We list
3836
[contributors](https://github.com/well-typed/hs-bindgen#contributors)
3937
in the `hs-bindgen` README.
4038

cabal.project

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
index-state: 2026-02-19T00:00:00Z
1+
index-state: 2026-07-14T08:02:36Z
22

33
packages:
44
libclang-bindings

dev/release-notes-0.1.0.0.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## libclang-bindings 0.1.0.0
2+
3+
First non-alpha release of Haskell bindings to the LLVM/Clang `libclang` C API.
4+
5+
### Breaking changes
6+
- Removed the `LLVM_CONFIG` configure variable — set `PATH` so the desired `llvm-config` is found instead.
7+
8+
### New features
9+
- New `Clang.Discover` module with `getPaths` to locate the `clang` executable and builtin include directory.
10+
- Compile-time `CLANG_VERSION` check to catch version mismatches (see `Clang.Version`).
11+
- New `--with-so` configure option to work around Cabal linking issues on Linux.
12+
- `foldTry` (and the `FoldException` type) returning a caught exception as a value, like `Control.Exception.try` (#47).
13+
- New bindings: `clang_isBeforeInTranslationUnit` (Clang 20.1+, #53), `clang_Type_getOffsetOf` (#37), and `clang_disposeToken` (#42).
14+
15+
### Bug fixes
16+
- Silence `-Wdeprecated-declarations` from `<clang-c/Index.h>` on Clang 21 at the system-header include sites, so deprecation warnings for APIs we call stay visible (#58).

dev/release-process.md

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,36 @@
22

33
## Prerequisites
44

5-
* [ ] Decide on new version number (`MAJOR.MINOR.PATCH`)
6-
* Tag name: `release-${VERSION}`
5+
* [ ] Changelog checks (`CHANGELOG.md`):
6+
* Check that all user-facing changes have been recorded.
7+
* Check that each changelog entry is in the correct category.
8+
* Check that each changelog entry links to a PR, if applicable.
9+
* Add or update the changelog's section header with the package version that
10+
is going to be released, and the date of the release. The version should be
11+
picked based on our package versioning policy.
12+
13+
* [ ] Cabal project file checks (`cabal.project*`):
14+
* Update the `index-state` in the `cabal.project` file to the current
15+
date-time, or the closest valid date-time to the current date-time, so that
16+
CI builds and tests the libraries with the newest versions of dependencies.
17+
18+
* [ ] Decide on new version number (`MAJOR.MAJOR.MINOR`): Releases follow the
19+
[Haskell Package Versioning Policy](https://pvp.haskell.org/). We use version
20+
numbers consisting of 3 parts, like `A.B.C`.
21+
* `A.B` is the *major* version number. A bump indicates a breaking change.
22+
* `C` is the *minor* version number. A bump indicates a non-breaking change.
23+
24+
* Tag name: `release-${VERSION}`
725

826
## Preparation
927

1028
* [ ] Set the version in `libclang-bindings.cabal`
1129

1230
* [ ] Set the `source-repository this` tag in `libclang-bindings.cabal`
1331

14-
* [ ] Set the version in `configure.ac`
32+
* [ ] Set the version in `libclang-bindings/configure.ac`
33+
34+
* [ ] Set the version in `libclang-bootstrap.cabal`
1535

1636
* [ ] Reconfigure
1737

@@ -27,11 +47,7 @@
2747
2848
## GitHub
2949
30-
* [ ] Push `main`
31-
32-
```
33-
$ git push origin main
34-
```
50+
* [ ] Ensure the changes above land on `main`
3551
3652
* [ ] Tag the release
3753
@@ -45,7 +61,7 @@
4561
$ git push origin "${TAG}"
4662
```
4763
48-
* [ ] [Create a new release](https://github.com/well-typed/libclang/releases/new)
64+
* [ ] [Create a new GitHub release](https://github.com/well-typed/libclang-bindings/releases/new)
4965
* [ ] Select tag
5066
* [ ] Target: `main`
5167
* [ ] Release title: `Release ${VERSION}`
@@ -54,15 +70,16 @@
5470
5571
## Hackage
5672
73+
* [ ] Run `cabal check`
74+
5775
TBD
5876
5977
## Preparation for next release
6078
61-
* [ ] Update the `CHANGELOG`
62-
* [ ] Add new section at top
79+
* [ ] Update the `CHANGELOG`, adding a new section at top
6380
6481
```markdown
65-
## ?.?.? -- YYYY-mm-dd
82+
## ?.?.?.? -- YYYY-mm-dd
6683
6784
### Breaking changes
6885

libclang-bindings/CHANGELOG.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
# Revision history for libclang-bindings
22

3-
## ?.?.? -- YYYY-mm-dd
3+
## ?.?.?.? -- YYYY-mm-dd
44

55
### Breaking changes
66

7-
* Removed `LLVM_CONFIG` configuration variable. Configure `PATH` so that the
7+
### New features
8+
9+
### Minor changes
10+
11+
### Bug fixes
12+
13+
## 0.1.0.0 -- 2026-07-14
14+
15+
### Breaking changes
16+
17+
* Removed `LLVM_CONFIG` configuration variable. Configure `PATH` so that the
818
desired `llvm-config` is found instead.
919

1020
### New features

libclang-bindings/LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2024-2025, Well-Typed LLP and Anduril Industries Inc.
1+
Copyright (c) 2024-2026, Well-Typed LLP and Anduril Industries Inc.
22

33

44
Redistribution and use in source and binary forms, with or without

0 commit comments

Comments
 (0)