Skip to content

Commit 14b3063

Browse files
committed
describe the release process
1 parent eafaaa3 commit 14b3063

File tree

1 file changed

+106
-5
lines changed

1 file changed

+106
-5
lines changed

docs/source/developer-guide.rst

Lines changed: 106 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ page. Under the hood this is using
237237

238238
To 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.
254254
Release 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

260360
Other Core Repositories
261361
-----------------------
262362

263363
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:
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

Comments
 (0)