|
| 1 | +# Create Release Notes |
| 2 | + |
| 3 | +This guide walks through how to write release notes for Specify updates. |
| 4 | + |
| 5 | +These release notes are always packaged in [Markdown format](https://www.markdownguide.org/basic-syntax/). If you are not familiar, please learn more about the syntax! This is the same syntax used for text editing on GitHub. |
| 6 | + |
| 7 | +1. Draft a new release based on the `main` branch or any target branch used for an upcoming release. This can be done on the [https://github.com/specify/specify7/releases](https://github.com/specify/specify7/releases) page on GitHub if you have the appropriate access in the `specify7` repository. |
| 8 | + |
| 9 | +2. Use the "Generate Release Notes" button next to the tag and target options. |
| 10 | + |
| 11 | +  |
| 12 | + |
| 13 | +3. Copy and paste the contents of the auto-generated release notes into a text editor with [regex](https://en.wikipedia.org/wiki/Regular_expression) support. I recommend BBEdit (on Mac) or Sublime Text (on any system). |
| 14 | + |
| 15 | +4. Use the following "find" and "replace" strings, enabling `grep` or `regex` in your replacement settings. |
| 16 | + |
| 17 | + This reorders the string, removes authorship credit, and simplifies the link to the PR if a user would like to learn more. |
| 18 | + |
| 19 | + **Find:** |
| 20 | + ``` |
| 21 | + ^(\* .+?)\s+by\s+@\S+\s+in\s+(https:\/\/github\.com\/specify\/specify7\/pull\/(\d+))\s*$ |
| 22 | + ``` |
| 23 | + |
| 24 | + **Replace:** |
| 25 | + ``` |
| 26 | + ` \1 ((#\3)[\2])` |
| 27 | + ``` |
| 28 | + |
| 29 | +  |
| 30 | + |
| 31 | +5. Replace the strings, noting that now the strings have been transformed into the format we use for release notes: |
| 32 | + |
| 33 | + ```md |
| 34 | + * Batch Edit: Support for editing basic fields by @sharadsw in https://github.com/specify/specify7/pull/5417` |
| 35 | + ``` |
| 36 | + |
| 37 | + is now |
| 38 | + |
| 39 | + ```md |
| 40 | + * Batch Edit: Support for editing basic fields ((#5417)[https://github.com/specify/specify7/pull/5417]) |
| 41 | + ``` |
| 42 | + |
| 43 | +4. Create a new Markdown document using [VSCode](https://code.visualstudio.com/), [StackEdit](https://stackedit.io/), or a text editor of your choice with real-time Markdown preview. Copy and paste this basic structure into it: |
| 44 | + |
| 45 | + ```md |
| 46 | + ## [7.10.2](https://github.com/specify/specify7/compare/v7.10.1...v7.10.2) (15 April 2025) |
| 47 | + |
| 48 | + ### Added |
| 49 | + |
| 50 | + ### Changed |
| 51 | + |
| 52 | + ### Fixed |
| 53 | + |
| 54 | + --- |
| 55 | + |
| 56 | + The full changelog is available on [GitHub](https://github.com/specify/specify7/blob/production/CHANGELOG.md) |
| 57 | + |
| 58 | + For source code go to the [GitHub Specify 7 repository](http://github.com/specify/specify7/) |
| 59 | + |
| 60 | + For more information about Specify 7, or about this release, see [Specify 7 | Specify Collections Consortium](https://www.specifysoftware.org/products/specify-7/), or email [ [email protected]](mailto: [email protected]). |
| 61 | + ``` |
| 62 | + |
| 63 | +9. Add the bullet list of changes you transformed using regex earlier into the newly created document from Step 4. |
| 64 | + |
| 65 | + ```md |
| 66 | + ## [7.10.2](https://github.com/specify/specify7/compare/v7.10.1...v7.10.2) (15 April 2025) |
| 67 | + |
| 68 | + ### Added |
| 69 | + |
| 70 | + ### Changed |
| 71 | + |
| 72 | + ### Fixed |
| 73 | + |
| 74 | + * Formatter fixes ([#6159](https://github.com/specify/specify7/pull/6159)) |
| 75 | + * Allow to select formatter in field schema config ([#6255](https://github.com/specify/specify7/pull/6255)) |
| 76 | + * Add uniqueIdentifier to storage table ([#6249](https://github.com/specify/specify7/pull/6249)) |
| 77 | + * Add key to display correct cat num format tooltip ([#6246](https://github.com/specify/specify7/pull/6246)) |
| 78 | + * Use default typesearch when no custom field ([#6236](https://github.com/specify/specify7/pull/6236)) |
| 79 | + * Add save blocker on primary CO deletion+ protect blocker if CO in COJO ([#6181](https://github.com/specify/specify7/pull/6181)) |
| 80 | + * Display name for parent COG name in QB results instead of Arent ([#6168](https://github.com/specify/specify7/pull/6168)) |
| 81 | + * Add formMeta menu in "View in Forms" and add unload protect to "Use Localized Field Labels" ([#5416](https://github.com/specify/specify7/pull/5416)) |
| 82 | + * Add 'Download' button to record set attachment viewer ([#6052](https://github.com/specify/specify7/pull/6052)) |
| 83 | + * Batch Edit: Support for editing basic fields ([#5417](https://github.com/specify/specify7/pull/5417)) |
| 84 | + * Allow to delete non default taxon tree ([#6186](https://github.com/specify/specify7/pull/6186)) |
| 85 | + * Add tooltip for required fields in bulk carry forward config ([#6202](https://github.com/specify/specify7/pull/6202)) |
| 86 | + * Fix missing aggregation separators, add `patches` Django app ([#6115](https://github.com/specify/specify7/pull/6115)) |
| 87 | + * Add modern attachment mimetype icons ([#6119](https://github.com/specify/specify7/pull/6119)) |
| 88 | + * Fix tree structure issues due to an old WorkBench bug ([#5366](https://github.com/specify/specify7/pull/5366)) |
| 89 | + * Fix missing coordinate text fields for decimal coordinates ([#5368](https://github.com/specify/specify7/pull/5368)) |
| 90 | + * Ensure Correct COT Selection in QB When Sharing Formatters ([#6252](https://github.com/specify/specify7/pull/6252)) |
| 91 | + * A default value can now be used for a query combo box ([#6037]([https://github.com/specify/specify7/pull/6037])) |
| 92 | + * Fix ordering of query params ([#6318](https://github.com/specify/specify7/pull/6318)) |
| 93 | + * Fix revert for `0023` migration [dev-only] ([#6309](https://github.com/specify/specify7/pull/6309)) |
| 94 | + * Fix export to csv notifications ([#6330](https://github.com/specify/specify7/pull/6330)) |
| 95 | + * Disable batch edit for spAuditLog ([#6325](https://github.com/specify/specify7/pull/6325)) |
| 96 | + * Add new icon for batch edit ([#6334](https://github.com/specify/specify7/pull/6334)) |
| 97 | + * Refactor `TreeRankRecord` to allow null tree id ([#6322](https://github.com/specify/specify7/pull/6322)) |
| 98 | + * Allow to merge node in trees ([#6346](https://github.com/specify/specify7/pull/6346)) |
| 99 | + * Batch Edit: Use scoped picklist for formatting in batch edit ([#6344](https://github.com/specify/specify7/pull/6344)) |
| 100 | + * Add tooltip when batch edit is disabled for trees ([#6349](https://github.com/specify/specify7/pull/6349)) |
| 101 | + * Add dataentry_task.xml for geology config ([#6365](https://github.com/specify/specify7/pull/6365)) |
| 102 | + --- |
| 103 | + |
| 104 | + The full changelog is available on [GitHub](https://github.com/specify/specify7/blob/production/CHANGELOG.md) |
| 105 | + |
| 106 | + For source code go to the [GitHub Specify 7 repository](http://github.com/specify/specify7/) |
| 107 | + |
| 108 | + For more information about Specify 7, or about this release, see [Specify 7 | Specify Collections Consortium](https://www.specifysoftware.org/products/specify-7/), or email [ [email protected]](mailto: [email protected]). |
| 109 | + ``` |
| 110 | + |
| 111 | +10. Update the version number. The example below is accurate for the `v7.10.2` release: |
| 112 | + |
| 113 | + ```md |
| 114 | + ## [7.10.2](https://github.com/specify/specify7/compare/v7.10.1...v7.10.2) (15 April 2025) |
| 115 | + ``` |
| 116 | + |
| 117 | + Notice that you need to adjust the primary heading (`[7.10.2]`) _and_ the URL (`v7.10.1...v7.10.2`) where `v7.10.1` is the previous tagged release and `v7.10.2` after the `...` is the current release. The date (`(15 April 2025`) must be updated to reflect the date the software is released. |
| 118 | + |
| 119 | + The comparison URL enables users to click on the version and compare all the changes between it and the previous version. |
| 120 | + |
| 121 | +11. Open each PR link in your browser (`Ctrl`+click on each link in a Markdown/GitHub preview) and begin renaming and moving each change under the appropriate subheading. |
| 122 | + |
| 123 | + There are three subheading categories: |
| 124 | + 1. **Added**: Newly added capabilities. |
| 125 | + 2. **Changed**: Changes that alter existing behavior or functionality. |
| 126 | + 3. **Fixed**: Bug fixes that resolve existing issues. |
| 127 | + |
| 128 | + As you visit each link and rename these items, move them under the appropriate heading. Order the items within each heading in descending order of importance so users see the most critical changes first. |
| 129 | + |
| 130 | + Instead of saying: |
| 131 | + |
| 132 | + * Add "default" initialize property to QCBX ([#6037]([https://github.com/specify/specify7/pull/6037])) |
| 133 | + |
| 134 | + Make it easy to understand for a user, using the original issue as a reference: |
| 135 | + |
| 136 | + * A default value can now be assigned to a query combo box ([#6037]([https://github.com/specify/specify7/pull/6037])) |
| 137 | + |
| 138 | + Add a mention in italics of any requesting member institutions following a `–` (dash) within the parentheses for the PR. |
| 139 | + |
| 140 | + * A default value can now be used for a query combo box ([#6037]([https://github.com/specify/specify7/pull/6037]) – *Requested by South African Institute for Aquatic Biodiversity*) |
| 141 | + |
| 142 | + For clarity, if there are two requesting institutions, separate them by adding `and` between them. |
| 143 | + |
| 144 | + For three or more requesting institutions, use commas before using an and. Oxford comma is needed for Theresa's approval. |
0 commit comments