Skip to content

Commit 8fe8bca

Browse files
authored
docs: prepare for 0.10.0 (#845)
Preparing for 0.10. Signed-off-by: Henry Schreiner <[email protected]>
1 parent f4be9d4 commit 8fe8bca

File tree

6 files changed

+124
-12
lines changed

6 files changed

+124
-12
lines changed

docs/changelog.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,51 @@
11
# Changelog
22

3+
## Version 0.10.0
4+
5+
This version adds auto CMake version discovery, opt-in auto minimum-version,
6+
rebuild on failure support, quite a few new override options greatly expanding
7+
the static config options for builds, more powerful regexs, and more.
8+
9+
New features:
10+
11+
* Auto CMake version by @henryiii in #804
12+
* Auto minimum-version by @henryiii in #798
13+
* Add `fail` setting to instant-fail build by @henryiii in #824
14+
* Add messages config for failure/success by @henryiii in #825
15+
* New color system for message config by @henryiii in #842
16+
* Add `if.abi-flags` (for free-threaded) by @henryiii in #819
17+
* Adding `if.system-cmake` and `if.cmake-wheel` by @henryiii in #826
18+
* Add `if.from-sdist` for overrides by @henryiii in #812
19+
* Add `if.failed` (retry) by @henryiii in #820
20+
* Packages can also be specified via a table by @henryiii in #841
21+
* Move `cmake.targets` and `cmake.verbose` to `build.targets` and `build.verbose` by @henryiii in #793
22+
* Support multipart regex by @henryiii in #818
23+
* Add `remove=` postprocess to regex by @henryiii in #828
24+
25+
Fixes:
26+
27+
* Warn if cmake/ninja in build system requirements by @henryiii in #803
28+
* Detect manual generator setting for `get_requires_*` by @henryiii in #840
29+
* Support nested and local gitignores by @henryiii in #827
30+
* Expand variables in some paths (mostly helps tests) by @henryiii in #842
31+
32+
Internal:
33+
34+
* Pull out overrides to separate file by @henryiii in #821
35+
* Nicer error/warning printer by @henryiii in #813
36+
* Speed up CI for format job by @henryiii in #814
37+
38+
Documentation:
39+
40+
* Fix typo in projects list by @jcfr in #797
41+
* Add disclaimer by @henryiii in #805
42+
* Add pointer to itk by @thewtex in #817
43+
* Add projects list by @henryiii in #788
44+
* Examples nox job should use local copy of scikit-build-core by @henryiii in #810
45+
* Expand defs and move schema by @henryiii in #795
46+
* Hide deprecated options in README by @henryiii in #792
47+
* Move overrides to page, expand by @henryiii in #815
48+
* Use modern cmake/ninja version setting in Fortran example by @henryiii in #809
349

450
## Version 0.9.10
551

docs/configuration.md

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ options can optionally be prefixed with `skbuild.`, for example
1111

1212
## Verbosity
1313

14-
You can increase the verbosity of the build with two settings - `cmake.verbose`
15-
is a shortcut for verbose build output, and logging.level controls
14+
You can increase the verbosity of the build with two settings - `build.verbose`
15+
is a shortcut for verbose build output, and `logging.level` controls
1616
scikit-build-core's internal logging. An example (with all configuration styles)
1717
of setting both is:
1818

@@ -82,6 +82,12 @@ workaround for legacy tooling.
8282

8383
:::
8484

85+
:::{versionchanged} 0.10
86+
87+
`cmake.verbose` was renamed to `build.verbose`.
88+
89+
:::
90+
8591
## Minimum version & defaults
8692

8793
Scikit-build-core, like CMake, has a special minimum required version setting.
@@ -114,6 +120,13 @@ requires = ["scikit-build-core>=0.10"]
114120
minimum-version = "build-system.requires"
115121
```
116122

123+
:::{versionchanged} 0.10
124+
125+
The `"build-system.requires"` option was added.
126+
127+
:::
128+
129+
117130
:::{warning}
118131

119132
The following behaviors are affected by `minimum-version`:
@@ -124,7 +137,8 @@ The following behaviors are affected by `minimum-version`:
124137
- `minimum-version` 0.8+ (or unset) `cmake.minimum-version` and
125138
`ninja.minimum-version` are replaced with `cmake.version` and `ninja.version`.
126139
- `minimum-version` 0.10+ (or unset) `cmake.targets` and
127-
`cmake.verbose` are replaced with `build.targets` and `build.verbose`.
140+
`cmake.verbose` are replaced with `build.targets` and `build.verbose`. The
141+
CMake minimum version will be detected if not given.
128142

129143
:::
130144

@@ -265,6 +279,12 @@ But you can also do more complex moves:
265279
"mypackage/subpackage" = "python/src/subpackage"
266280
```
267281

282+
:::{versionadded} 0.10
283+
284+
Support for the table form.
285+
286+
:::
287+
268288
You can disable Python file inclusion entirely, and rely only on CMake's
269289
install mechanism:
270290

@@ -310,8 +330,8 @@ wheel.exclude = ["**.pyx"]
310330

311331
:::{versionchanged} 0.9
312332

313-
Before scikit-build-core 0.9, these were matched on the source path, rather than
314-
the wheel path, and didn't apply to CMake output.
333+
Previously these were matched on the source path, rather than the wheel path,
334+
and didn't apply to CMake output.
315335

316336
:::
317337

@@ -475,10 +495,16 @@ CMAKE_ARGS: -DSOME_DEFINE=ON -DOTHER=OFF
475495
You can also specify only specific targets to build (leaving this off builds the
476496
default targets):
477497
478-
```{conftabs} cmake.targets ["python"]
498+
```{conftabs} build.targets ["python"]
479499

480500
```
481501

502+
:::{versionchanged} 0.10
503+
504+
`cmake.targets` was renamed to `build.targets`.
505+
506+
:::
507+
482508
You can pass raw arguments directly to the build tool, as well:
483509

484510
```{conftabs} build.tool-args ["-j12", "-l13"]
@@ -600,13 +626,10 @@ remove = "dev0"
600626

601627
This will remove the "dev" tag when it is equal to 0.
602628

603-
```{versionadded} 0.5
604-
605-
```
606-
607-
```{versionchanged} 0.10
629+
:::{versionchanged} 0.10
608630

609631
Support for `result` and `remove` added.
632+
610633
```
611634
612635
:::
@@ -724,6 +747,10 @@ styles is possible with `reset`. These all can be chained, as well, so
724747
Remember that you need to set the environment variable `FORCE_COLOR` to see
725748
colors with pip.
726749

750+
```{versionadded} 0.10
751+
752+
```
753+
727754
## Other options
728755

729756
You can select a custom build dir; by default scikit-build-core will use a
@@ -764,6 +791,10 @@ You can also fail the build with `fail = true`. This is useful with overrides if
764791
you want to make a specific configuration fail. If this is set, extra
765792
dependencies like `"cmake"` will not be requested.
766793

794+
```{versionadded} 0.10
795+
796+
```
797+
767798
## Overrides
768799

769800
The overrides system allows you to customize for a wide variety of situations.

docs/overrides.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ cmake.version = ">=3.30"
123123

124124
This is often combined with `if.any`.
125125

126+
:::{versionadded} 0.7
127+
128+
:::
129+
126130
### `state` (string)
127131

128132
The state of the build, one of `sdist`, `wheel`, `editable`, `metadata_wheel`,
@@ -131,11 +135,19 @@ and `metadata_editable`. Takes a regex.
131135
Note that you can build directly to wheel; you don't have to go through an
132136
SDist.
133137

138+
:::{versionadded} 0.8
139+
140+
:::
141+
134142
### `from-sdist` (bool)
135143

136144
This will be true if the `PKG-INFO` file exists, that is, if this is coming
137145
from an SDist. Takes a bool.
138146

147+
:::{versionadded} 0.10
148+
149+
:::
150+
139151
### `system-cmake` (version)
140152

141153
This will match if there's a system CMake matching this version specification.
@@ -146,6 +158,9 @@ if.system-cmake = ">=3.15"
146158
cmake.version = ""
147159
message.after-success = "Built using a system CMake, not a wheel"
148160
```
161+
:::{versionadded} 0.10
162+
163+
:::
149164

150165
### `cmake-wheel` (bool)
151166

@@ -167,6 +182,9 @@ if.any.system-cmake = ">=3.15"
167182
if.any.cmake-wheel = true
168183
wheel.cmake = true
169184
```
185+
:::{versionadded} 0.10
186+
187+
:::
170188

171189
### `failed` (bool)
172190

@@ -180,6 +198,9 @@ if a build fails, for example:
180198
if.failed = true
181199
wheel.cmake = false
182200
```
201+
:::{versionadded} 0.10
202+
203+
:::
183204

184205
## Any matching condition
185206

@@ -205,6 +226,10 @@ wheel.cmake = true
205226
Above, either `CIBUILDWHEEL` or `BUILD_MY_LIB` being truthy will trigger a
206227
binary build.
207228

229+
:::{versionadded} 0.7
230+
231+
:::
232+
208233
## Inheriting for tables and arrays
209234

210235
If you specify `inherit.<thing> = "append"` or `"prepend"`, then an override
@@ -237,4 +262,8 @@ the other, as the table would be replaced. And `"prepend"` wouldn't be useful
237262
at all, since FOO and BAR are already defined, so the original definition would
238263
win.
239264

265+
:::{versionadded} 0.9
266+
267+
:::
268+
240269
[pep 508]: https://peps.python.org/pep-0508/#environment-markers

docs/plugins/hatchling.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ moves.
1111

1212
:::
1313

14+
:::{versionadded} 0.9
15+
16+
:::
17+
1418
## Basic usage
1519

1620
To use the plugin, make sure hatchling and scikit-build-core are in your

noxfile.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ def downstream(session: nox.Session) -> None:
245245
"--editable", action="store_true", help="Install as editable wheel"
246246
)
247247
parser.add_argument("-c", dest="code", help="Run some Python code")
248+
parser.add_argument("-C", help="config-settings", action="append", default=[])
248249
args, remaining = parser.parse_known_args(session.posargs)
249250

250251
tmp_dir = Path(session.create_tmp())
@@ -298,6 +299,7 @@ def downstream(session: nox.Session) -> None:
298299
"--skip-dependency-check",
299300
"--wheel",
300301
".",
302+
*(f"-C{x}" for x in args.C),
301303
)
302304
if args.code:
303305
session.error("Must use editable install for code at the moment")

src/scikit_build_core/build/wheel.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ def _build_wheel_impl_impl(
505505
raise AssertionError(msg)
506506

507507
wheel_filename: str = wheel.wheelpath.name
508-
rich_print("{green}***", f"{{bold}}Created{{normal}} {wheel_filename}...")
508+
rich_print("{green}***", f"{{bold}}Created{{normal}} {wheel_filename}")
509509
if settings.messages.after_success:
510510
rich_print(settings.messages.after_success)
511511
return WheelImplReturn(

0 commit comments

Comments
 (0)