@@ -237,7 +237,7 @@ page. Under the hood this is using
237237
238238To run some of the examples in the documentation as if they were tests run:
239239
240- .. code-block ::
240+ .. code-block :: bash
241241
242242 nox -s test_docs
243243
@@ -254,18 +254,119 @@ You should then navigate to to see the documentation.
254254Release Process
255255---------------
256256
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 >`.
258358
259359
260360Other Core Repositories
261361-----------------------
262362
263363IDOM 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:
265365
266- - https://github.com/idom-team/idom-client-react - Javascript client for IDOM
267366- 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
269370
270371.. Links
271372.. =====
0 commit comments