Skip to content

Commit 27f9c36

Browse files
[#1341] Add section explaining SDK release process
1 parent 263ccb2 commit 27f9c36

5 files changed

Lines changed: 39 additions & 8 deletions

File tree

docs/source/Plugins/installing.rst

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,26 @@ automatically. Once installed, use it like any built-in Basilisk module:
3838
Version Compatibility
3939
---------------------
4040

41-
A plugin wheel is compiled against a specific Basilisk version. Always
42-
install matching versions to avoid ABI incompatibilities:
41+
A plugin wheel is compiled against a specific Basilisk version. The plugin's
42+
own version number is controlled by the plugin developer and does not need to
43+
match Basilisk's version. What matters is that the wheel was built against the
44+
same BSK headers as the Basilisk release you have installed.
45+
46+
Always verify you have the correct Basilisk version before installing a plugin.
47+
The plugin's documentation should state which Basilisk version it targets:
4348

4449
.. code-block:: bash
4550
46-
pip install "bsk==2.9.1" "my-plugin==2.9.1"
51+
pip install "bsk==2.9.1" "my-plugin"
52+
53+
If the installed Basilisk version does not match what the plugin was compiled
54+
against, CMake will error at configure time with an error message.
4755

48-
If the versions do not match, the plugin's CMake build will error with a
49-
clear message telling you which versions to align.
56+
.. note::
57+
A plugin built with ``bsk-sdk==2.X.Y`` only works with Basilisk ``2.X.Y``.
58+
Upgrading Basilisk means rebuilding the plugin against the matching SDK
59+
version. We are exploring ways to make version compatibility easier in the
60+
future.
5061

5162
Installing the SDK (for plugin authors)
5263
----------------------------------------

docs/source/Plugins/overview.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ Quick Start
144144

145145
.. code-block:: cmake
146146
147-
cmake_minimum_required(VERSION 3.18)
147+
cmake_minimum_required(VERSION 3.26)
148148
project(my_plugin LANGUAGES C CXX)
149149
150150
find_package(Python3 REQUIRED COMPONENTS Interpreter Development.Module NumPy)
@@ -185,7 +185,7 @@ Quick Start
185185
sim.AddModelToTask("task", mod)
186186
187187
A complete working example is provided in the
188-
`bsk-sdk repository <https://github.com/AVSLab/bsk_sdk/tree/develop/examples/custom-atm-plugin>`_.
188+
`bsk-sdk repository <https://github.com/AVSLab/bsk_sdk/tree/master/examples/custom-atm-plugin>`_.
189189

190190
Version Compatibility
191191
---------------------

docs/source/Plugins/writing.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ write the module itself. This page covers only the plugin-specific
1717
packaging: the project layout, ``CMakeLists.txt``, and ``pyproject.toml``.
1818

1919
A complete working example is in the
20-
`bsk-sdk repository <https://github.com/AVSLab/bsk_sdk/tree/main/examples/custom-atm-plugin>`_.
20+
`bsk-sdk repository <https://github.com/AVSLab/bsk_sdk/tree/master/examples/custom-atm-plugin>`_.
2121

2222
Prerequisites
2323
-------------

docs/source/Support/Developer/releaseGuide.rst

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,3 +136,21 @@ Where to make changes
136136
created. Release branches must remain stable and focused on fixes only.
137137
- Cherry-picks should be small, focused, and preferably reference the original
138138
commit hash in the message.
139+
140+
Releasing the BSK SDK
141+
---------------------
142+
The `bsk-sdk <https://github.com/AVSLab/bsk_sdk>`_ package vendors the Basilisk
143+
SDK headers and runtime for plugin authors. Its version is kept in sync with
144+
Basilisk, so a new BSK release requires a corresponding SDK release.
145+
146+
CI automatically checks out the Basilisk submodule at the tag matching the
147+
version string in ``pyproject.toml``, so no manual submodule update is needed.
148+
The only manual steps are:
149+
150+
#. On a branch of develop, update the ``version`` field in ``pyproject.toml``
151+
to match the new BSK release (e.g. ``2.X.Y``).
152+
#. Open a PR merging the updated ``pyproject.toml`` into ``develop`` on the
153+
``bsk-sdk`` repo. The PR CI workflow will test the SDK wheel build.
154+
#. Merge ``develop`` into ``master``.
155+
#. Push the matching tag ``v2.X.Y`` to ``master`` to trigger the wheel build
156+
and PyPI publish via GitHub Actions.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- Added documentation for the ``bsk-sdk`` plugin system, covering how to install,
2+
write, and distribute out-of-tree Basilisk plugins as standard Python wheels.

0 commit comments

Comments
 (0)