@@ -237,7 +237,7 @@ page. Under the hood this is using
237
237
238
238
To run some of the examples in the documentation as if they were tests run:
239
239
240
- .. code-block ::
240
+ .. code-block :: bash
241
241
242
242
nox -s test_docs
243
243
@@ -254,18 +254,119 @@ You should then navigate to to see the documentation.
254
254
Release Process
255
255
---------------
256
256
257
- Under construction...
257
+ 1. Update version
258
+ 2. Add changelog entry
259
+
260
+ - Include merged pull requests
261
+ - Include closed issues
262
+
263
+ 3. Commit final release changes
264
+ 4. Create a release tag
265
+ 5. Manually author a release in GitHub
266
+
267
+
268
+ Update Release Version
269
+ ......................
270
+
271
+ To update the version for all core Javascript and Python packages in IDOM run:
272
+
273
+ .. code-block :: bash
274
+
275
+ nox -s update_version -- < new-version>
276
+
277
+ .. note ::
278
+
279
+ The new version must adhere to `SemVer <https://semver.org/ >`__. Once IDOM
280
+ becomes stable we will shift to using `CalVer <https://calver.org/ >`__.
281
+
282
+
283
+ Create Changelog Entry
284
+ ......................
285
+
286
+ Immediately after updating the version you'll need to create a changelog entry for the
287
+ release. This should **always ** include a human authored summary of the changes it
288
+ includes. For example, new or deprecated features, performance improvements, and bug
289
+ fixes (whatever is relevant). To help with this, there are some useful tools for
290
+ gathering the Pull Requests and Issues that have been merged and resolved since the last
291
+ release. While reviewing these items can help in writing a human authored release
292
+ summary, you **must not ** resort to a bullet list of Pull Request and Issue
293
+ descriptions. Putting these two together, the format of a changelog entry should look a
294
+ bit like this:
295
+
296
+ .. code-block :: text
297
+
298
+ X.Y.Z
299
+ -----
300
+
301
+ The release summary...
302
+
303
+ **Closed Issues**
304
+
305
+ - Some issue - :issue:`123`
306
+ - Another issue - :issue:`456`
307
+
308
+ **Pull Requests**
309
+
310
+ - Some pull request - :pull:`123`
311
+ - Another pull request - :pull:`456`
312
+
313
+ **Deprecated Features**
314
+
315
+ - Description one
316
+ - Description two
317
+
318
+ To create the list of pull requests and closed issues you can copy the output of the
319
+ following commands using the ``<format> `` of your choosing (``rst ``, ``md ``, ``text ``):
320
+
321
+ .. note ::
322
+
323
+ You should currate the list - not everything needs to be included.
324
+
325
+ .. code-block :: bash
326
+
327
+ nox -s latest_closed_issues -- < format>
328
+ nox -s latest_pull_requests -- < format>
329
+
330
+ Once the version has been updated and the changelog entry completed, you should commit
331
+ the changes.
332
+
333
+
334
+ Creating The Release
335
+ ....................
336
+
337
+ The final release process involves two steps:
338
+
339
+ 1. Creating a tag for the release
340
+ 2. Authoring a release in GitHub
341
+
342
+ To create the release tag you can run the following command:
343
+
344
+ .. note ::
345
+
346
+ To just create the tag without pushing, omit the trailing ``push `` argument
347
+
348
+ .. code-block :: bash
349
+
350
+ nox -s tag -- push
351
+
352
+ Last, you must create a
353
+ `"Release" <https://docs.github.com/en/github/administering-a-repository/releasing-projects-on-github/managing-releases-in-a-repository >`__
354
+ in GitHub. Because we pushed a tag using the command above, there should already be a
355
+ saved draft which needs a title and desription. The title should simply be the version
356
+ (same as the tag), and the description should, at minimum, be a markdown version of the
357
+ already authored :ref: `Changelog summary <Create Changelog Entry >`.
258
358
259
359
260
360
Other Core Repositories
261
361
-----------------------
262
362
263
363
IDOM depends on several other core projects. For documentation on them you should refer
264
- to their respective documentation in the links below
364
+ to their respective documentation in the links below:
265
365
266
- - https://github.com/idom-team/idom-client-react - Javascript client for IDOM
267
366
- https://github.com/idom-team/flake8-idom-hooks - Enforces the :ref: `Rules of Hooks `
268
-
367
+ - https://github.com/idom-team/idom-jupyter - IDOM integration for Jupyter
368
+ - https://github.com/idom-team/idom-dash - IDOM integration for Plotly Dash
369
+ - https://github.com/idom-team/django-idom - IDOM integration for Django
269
370
270
371
.. Links
271
372
.. =====
0 commit comments