Skip to content

Commit a4aab65

Browse files
authored
docs: preare for release (#92)
About ready for a beta release. Signed-off-by: Henry Schreiner <[email protected]>
1 parent a421e7f commit a4aab65

File tree

4 files changed

+104
-91
lines changed

4 files changed

+104
-91
lines changed

.github/codecov.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
codecov:
22
notify:
3-
after_n_builds: 14
3+
after_n_builds: 13
44
coverage:
55
status:
66
project:

.github/workflows/ci.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,15 +87,10 @@ jobs:
8787
python39-pip
8888

8989
- name: Install
90-
run: python3.9 -m pip install .[test,cov]
90+
run: python3.9 -m pip install .[test]
9191

9292
- name: Test package
93-
run: python3.9 -m pytest -ra --showlocals --cov=scikit_build_core
94-
95-
- name: Upload coverage report
96-
uses: codecov/[email protected]
97-
with:
98-
name: ${{ runner.os }}-cygwin3.9
93+
run: python3.9 -m pytest -ra --showlocals
9994

10095
dist:
10196
name: Distribution build

README.md

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,41 +14,39 @@
1414
[![Gitter][gitter-badge]][gitter-link]
1515
-->
1616

17-
**WARNING**: Experimental. All configuration subject to change. Only
18-
`scikit_build_core.build` should be used (setuptools backend is experimental and
19-
likely to move to a separate package).
17+
**WARNING**: Only the pyproject-based builder should be used (setuptools backend
18+
is experimental and likely to move to a separate package), and internal API is
19+
still being solidified. A future version of this package will support creating
20+
new build extensions.
2021

2122
The following limitations are present compared to classic scikit-build:
2223

2324
- The minimum supported CMake is 3.15
2425
- The minimum supported Python is 3.7
2526

26-
Some of these limitations might be adjusted over time, based on user
27-
requirements & effort / maintainability.
27+
Some know missing features that will be developed soon:
2828

29-
This is very much a WIP, some missing features:
30-
31-
- The extensionlib integration is missing
32-
- No hatchling plugin yet
29+
- No support for caching between builds
30+
- No editable mode support
3331
- The docs are not written
34-
- The logging system isn't ideal yet
3532
- Dedicated entrypoints are planned for projects wanting to support discovery
3633
- No support for other targets besides install
3734
- C++17 is required for the test suite because it's more fun than C++11/14
38-
- No support for caching between builds
39-
- No editable mode support
40-
- No extra wheel directories (like headers) supported yet
4135
- Wheels are not fully reproducible yet
4236
- Windows ARM support missing
4337

38+
Other backends are also planned:
39+
40+
- Setuptools integration highly experimental currently
41+
- The extensionlib integration is missing
42+
- No hatchling plugin yet
43+
4444
Features over classic Scikit-build:
4545

4646
- Better warnings, errors, and logging
4747
- No warning about unused variables
4848
- Automatically adds Ninja and/or CMake only as required
4949
- No dependency on setuptools, distutils, or wheel in build mode.
50-
- Closer to vanilla setuptools in setuptools mode, doesn't interfere with
51-
config.
5250
- Powerful config system, including config options support in build mode.
5351
- Automatic inclusion of site-packages in `CMAKE_PREFIX_PATH`
5452
- FindPython is backported if running on CMake < 3.24 (included via hatchling in
@@ -80,7 +78,8 @@ version = "0.0.1"
8078
```
8179

8280
You can (and should) specify the rest of the entries in `project`, but these are
83-
the minimum to get started.
81+
the minimum to get started. You can also add the `color` (more colorful
82+
printouts) or `pyproject` (pre-load some dependencies) extras if you want.
8483

8584
An example `CMakeLists.txt`:
8685

@@ -107,8 +106,6 @@ More examples are in the
107106

108107
## Configuration
109108

110-
Warning: still being developed, some things may change.
111-
112109
All configuration options can be placed in `pyproject.toml`, passed via `-C`
113110
options in `pip` or `build` (warning: pip doesn't support list options), or set
114111
as environment variables. `tool.scikit-build` is used in toml, `skbuild.` for
@@ -131,6 +128,12 @@ ninja.make-fallback = true
131128
# entire list). See also cmake.define.
132129
cmake.args = []
133130

131+
# This activates verbose builds
132+
cmake.verbose = false
133+
134+
# This controls the CMake build type
135+
build_type = "Release"
136+
134137
# Display logs at or above this level.
135138
logging.level = "WARNING"
136139

@@ -147,11 +150,6 @@ sdist.reproducible = true
147150
# is auto-discovered if it's name matches the main name.
148151
wheel.packages = ["src/<package>", "<package>"]
149152

150-
# This allows you to change the install dir, such as to the package name. The
151-
# original dir is still at SKBUILD_PLATLIB_DIR (also SKBUILD_DATA_DIR, etc. are
152-
# available)
153-
wheel.install-dir = "."
154-
155153
# Setting py-api to "cp37" would build ABI3 wheels for Python 3.7+. If CPython
156154
# is less than this value, or on PyPy, this will be ignored. Setting the api to
157155
# "py3" or "py2.py3" would build wheels that don't depend on Python (ctypes,
@@ -162,6 +160,11 @@ wheel.py-api = ""
162160
# Silicon tags, for pip <21.0.1 compatibility).
163161
wheel.expand-macos-universal-tags = false
164162

163+
# This allows you to change the install dir, such as to the package name. The
164+
# original dir is still at SKBUILD_PLATLIB_DIR (also SKBUILD_DATA_DIR, etc. are
165+
# available)
166+
wheel.install-dir = "."
167+
165168
# Enable experimental features if any are available
166169
experimental = false
167170

@@ -170,7 +173,7 @@ strict-config = true
170173

171174
# This provides some backward compatibility if set. Defaults to the latest
172175
# scikit-build-core version.
173-
minimum-version = "0.1" # current version
176+
minimum-version = "0.1" # current version
174177

175178
[tool.scikit-build.cmake.define]
176179
# Put CMake defines in this table.

docs/changelog.md

Lines changed: 74 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,85 @@
11
# Changelog
22

3+
## Version 0.1.0b1
4+
5+
This release adds a lot of configuration options, including `minimum-version`,
6+
which can be set to 0.0 to ensure defaults remain consistent (similar to
7+
`cmake_minimum_required`).
8+
9+
### What's Changed
10+
11+
Features:
12+
13+
- Dict options by @henryiii in #78
14+
- Min version setting by @henryiii in #84
15+
- Strict configuration checking by @henryiii in #75
16+
- Support for args/define by @henryiii in #83
17+
- Support for other wheel dirs by @henryiii in #82
18+
- Support specifying a build type by @henryiii in #90
19+
20+
Fixes:
21+
22+
- Better logging by @henryiii in #88
23+
- Better macOS deployment target handling by @henryiii in #74
24+
- Don't touch mtime in non-reproducible mode by @henryiii in #76
25+
- Fallback to ninja sooner if on known platform by @henryiii in #80
26+
27+
Refactoring:
28+
29+
- Rename CMakeConfig -> CMaker by @henryiii in #91
30+
- Drop config prefix by @henryiii in #77
31+
- Rename to `wheel.py-api` and expand, ignore on non-cpython / old cpython by
32+
@henryiii in #81
33+
34+
Other things:
35+
36+
- Add cygwin by @henryiii in #89
37+
338
## Version 0.1.0a1
439

540
This release brings a lot of further development. This is starting to be used by
641
downstream projects; it is a good idea to be a little careful with versions
742
still, configuration may change.
843

9-
## What's Changed
10-
11-
- feat(pyproject): allow python packages to be specified by @henryiii in
12-
https://github.com/scikit-build/scikit-build-core/pull/58
13-
- feat(pyproject): autocopy packages if names match by @henryiii in
14-
https://github.com/scikit-build/scikit-build-core/pull/53
15-
- feat(pyproject): include/exclude by @henryiii in
16-
https://github.com/scikit-build/scikit-build-core/pull/59
17-
- feat(pyproject): Color status messages for wheel by @henryiii in
18-
https://github.com/scikit-build/scikit-build-core/pull/60
19-
- feat(pyproject): support reproducible sdist builds by @agoose77 in
20-
https://github.com/scikit-build/scikit-build-core/pull/64
21-
- feat: cmake_source_dir from scikit-build classic by @henryiii in
22-
https://github.com/scikit-build/scikit-build-core/pull/45
23-
- feat: extra_tags by @henryiii in
24-
https://github.com/scikit-build/scikit-build-core/pull/49
25-
- feat: prettier logging with config setting by @henryiii in
26-
https://github.com/scikit-build/scikit-build-core/pull/40
27-
- feat: support for setting python & abi tag (including limited API) by
28-
@henryiii in https://github.com/scikit-build/scikit-build-core/pull/47
29-
- feat: use setup keyword support by @henryiii in
30-
https://github.com/scikit-build/scikit-build-core/pull/42
31-
32-
- fix: avoid copy, avoid failure if pre-existing by @henryiii in
33-
https://github.com/scikit-build/scikit-build-core/pull/41
34-
- fix: better support for FindPython by @henryiii in
35-
https://github.com/scikit-build/scikit-build-core/pull/38
36-
- fix: fallback to make if available (setting) by @henryiii in
37-
https://github.com/scikit-build/scikit-build-core/pull/57
38-
- fix: handle `PermissionError` in reading `libdir.is_dir()` by @agoose77 in
39-
https://github.com/scikit-build/scikit-build-core/pull/43
40-
- fix: include `--config` when installing by @henryiii in
41-
https://github.com/scikit-build/scikit-build-core/pull/61
42-
- fix: incorrect min version of macOS by @henryiii in
43-
https://github.com/scikit-build/scikit-build-core/pull/50
44-
- fix: lists and bool settings by @henryiii in
45-
https://github.com/scikit-build/scikit-build-core/pull/56
46-
- fix: mkdir for sdist if missing, test polish by @henryiii in
47-
https://github.com/scikit-build/scikit-build-core/pull/44
48-
- fix: simple example PyPy support workaround by @henryiii in
49-
https://github.com/scikit-build/scikit-build-core/pull/37
50-
51-
- refactor(pyproject): tags configuration group by @henryiii in
52-
https://github.com/scikit-build/scikit-build-core/pull/55
53-
- refactor(setuptools): use native bdist_wheel setting for abi3 by @henryiii in
54-
https://github.com/scikit-build/scikit-build-core/pull/52
55-
- refactor: rename `cmake_settings` to `skbuild_settings` by @henryiii in
56-
https://github.com/scikit-build/scikit-build-core/pull/46
57-
58-
* chore(pyproject): refactor wheel code a bit to read better by @henryiii in
59-
https://github.com/scikit-build/scikit-build-core/pull/65
60-
61-
- chore: better logging on macOS for deployment target by @henryiii in
62-
https://github.com/scikit-build/scikit-build-core/pull/48
63-
- chore: format cmake files by @henryiii in
64-
https://github.com/scikit-build/scikit-build-core/pull/54
65-
66-
* tests: reproducible by @henryiii in
67-
https://github.com/scikit-build/scikit-build-core/pull/66
44+
### What's Changed
45+
46+
Features:
47+
48+
- Allow python packages to be specified by @henryiii in #58
49+
- Autocopy packages if names match by @henryiii in #53
50+
- Include/exclude by @henryiii in #59
51+
- Color status messages for wheel by @henryiii in #60
52+
- Support reproducible sdist builds by @agoose77 in #64
53+
- Prettier logging with config setting by @henryiii in #40
54+
- Add `extra-tags` by @henryiii in #49
55+
- Support for setting python & abi tag (including limited API) by @henryiii in
56+
#47
57+
- (setuptools) Use setup keyword support by @henryiii in #42
58+
- (setuptools) `cmake_source_dir` from scikit-build classic by @henryiii in #45
59+
60+
Fixes:
61+
62+
- Avoid copy, avoid failure if pre-existing by @henryiii in #41
63+
- Better support for FindPython by @henryiii in #38
64+
- Fallback to make if available (setting) by @henryiii in #57
65+
- Handle `PermissionError` in reading `libdir.is_dir()` by @agoose77 in #43
66+
- Include `--config` when installing by @henryiii in #61
67+
- Incorrect min version of macOS by @henryiii in #50
68+
- Lists and bool settings by @henryiii in #56
69+
- Mkdir for sdist if missing, test polish by @henryiii in #44
70+
- Simple example PyPy support workaround by @henryiii in #37
71+
72+
Refactoring:
73+
74+
- Tags configuration group by @henryiii in #55
75+
- (setuptools) Use native bdist_wheel setting for abi3 by @henryiii in #52
76+
- Rename `cmake_settings` to `skbuild_settings` by @henryiii in #46
77+
- Refactor wheel code a bit to read better by @henryiii in #65
78+
79+
Other things:
80+
81+
- Better logging on macOS for deployment target by @henryiii in #48
82+
- Format cmake files by @henryiii in #54
6883

6984
## Version 0.1.0a0
7085

0 commit comments

Comments
 (0)