You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<li><ahref="#buildScript">Regarding the Build Script</a></li>
18
+
<li><ahref="#release">Release strategy, conventions, preparation and execution</a></li>
18
19
</ul>
19
20
20
21
<hr>
@@ -299,3 +300,30 @@ As an example, let's assume you have created the svgs for Redhat and Amazon Web
299
300
<li>Comment on the PR so maintainers don't have to manually upload icon result.</li>
300
301
<li>Publishing a new release to <ahref="https://www.npmjs.com/package/devicon">npm</a>; See <ahref="https://github.com/devicons/devicon/issues/288">#288</a></li>
301
302
</ul>
303
+
304
+
<h2id='release'>Release strategy, conventions, preparation and execution</h2>
305
+
<h5>Release strategy</h5>
306
+
<p>Devicon does not follow a strict release plan. A new release is depended on current amount of contributions, required bugfixes/patches and will be discussed by the team of maintainers.</p>
307
+
<p>Generally speaking: A new release will be published when new icons are added or a bug was fixed. When it's predictable that multiple icons are added in a foreseeable amount of time they are usually wrapped together.</p>
308
+
<h5>Conventions</h5>
309
+
<p>The version naming follows the rules of <ahref="https://semver.org/">Semantic Versioning</a>. Given a version number MAJOR.MINOR.PATCH, increment the:</p>
310
+
<ul>
311
+
<li>MAJOR version when you make incompatible API changes,</li>
312
+
<li>MINOR version when you add functionality <b>(like a new icon)</b> in a backwards compatible manner, and</li>
313
+
<li>PATCH version when you make backwards compatible bug fixes.</li>
314
+
</ul>
315
+
<h5>Release preparation and execution</h5>
316
+
<ol>
317
+
<li>Define the next release version number based on the conventions</li>
318
+
<li>Checkout <code>development</code> as <code>draft-release</code> branch</li>
319
+
<li>Bump the package version using <code>npm version v<i>MAJOR</i>.<i>MINOR</i>.<i>PATCH</i> -m "bump npm version to v<i>MAJOR</i>.<i>MINOR</i>.<i>PATCH</i>"</code> (see <code><a href="https://github.com/devicons/devicon/pull/497">#487</a></code>)</li>
320
+
<li>Push the branch <code>draft-release</code></li>
321
+
<li>Manually trigger the workflow <code><a href="https://github.com/devicons/devicon/actions/workflows/build_icons.yml">build_icons.yml</a></code> (which has a <code>workflow_dispatch</code> event trigger) and select the branch <code>draft-release</code> as target branch. This will build a font version of all icons using icomoon and automatically creates a pull request to merge the build result back into <code>draft-release</code></li>
322
+
<li>Review and approve the auto-create pull request created by the action of the step above</li>
323
+
<li>Create a pull request towards <code>development</code>. Mention the release number in the pull request title and add information about all new icons, fixes, features and enhancements in the description of the pull request. It's also a good idea to mention and thank all contributions who participated in the release (take description of <code><a href="https://github.com/devicons/devicon/pull/504">#504</a></code> as an example).</li>
324
+
<li>Wait for review and approval of the pull request (<b>DON'T</b> perform a squash-merge)</li>
325
+
<li>Once merged create a pull request with BASE <code>master</code> and HEAD <code>development</code>. Copy the description of the earlier pull request.</li>
326
+
<li>Since it was already approved in the 'development' stage a maintainer is allowed to merge it (<b>DON'T</b> perform a squash-merge).</li>
327
+
<li>Create a <a href="https://github.com/devicons/devicon/releases/new">new release</a> using v<i>MAJOR</i>.<i>MINOR</i>.<i>PATCH</i> as tag and release title. Use the earlier created description as description of the release.</li>
328
+
<li>Publishing the release will trigger the <a href="/.github/workflows/npm_publish.yml">npm_publish.yml</a> workflow which will execute a <code>npm publish</code> leading to a updated <a href="https://www.npmjs.com/package/devicon">npm package</a> (v<i>MAJOR</i>.<i>MINOR</i>.<i>PATCH</i>).</li>
0 commit comments