<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ semantics - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ semantics - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 27 Jun 2026 14:19:44 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/semantics/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ A quick intro to Semantic Versioning: what it is, and why we use it ]]>
                </title>
                <description>
                    <![CDATA[ We create numbers like 1.0.0 and 1.0.1 for releases and hotfixes when we work on Git Flow. What do these numbers represent, and why do we use them? These numbers represent the version number of the product we put out in the world. We use them because... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/semantic-versioning-1fd6f57749f7/</link>
                <guid isPermaLink="false">66c4c799034a1005e6c59650</guid>
                
                    <category>
                        <![CDATA[ Git ]]>
                    </category>
                
                    <category>
                        <![CDATA[ semantics ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Zell Liew ]]>
                </dc:creator>
                <pubDate>Wed, 03 Oct 2018 04:58:47 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/0*FQw6EFwILTQfFjY3.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>We create numbers like <code>1.0.0</code> and <code>1.0.1</code> for releases and hotfixes when we work on Git Flow. What do these numbers represent, and why do we use them?</p>
<p>These numbers represent the version number of the product we put out in the world. We use them because we’re following a best practice called Semantic Versioning.</p>
<p><strong>When we use Semantic Versioning, developers will know whether a change will break their code.</strong> The numbers give a clue to the kind of changes that have occurred.</p>
<p>Many popular projects use Semantic Versioning. Examples are React and Vue.</p>
<h3 id="heading-understanding-semantic-versioning">Understanding Semantic Versioning</h3>
<p><strong>A semantic version has three numbers.</strong> The rightmost number is a patch version.</p>
<h4 id="heading-patch-versions">Patch Versions</h4>
<p><strong>Patch versions are used for bugfixes.</strong> There are no functionality changes. (That’s why we use a patch version when we released a hotfix in the <a target="_blank" href="https://zellwk.com/blog/git-flow">previous lesson</a>).</p>
<p>When you increase a new patch, <strong>you increase the rightmost number by 1.</strong> From 1, you increase it to 2, then to 3, and so on.</p>
<p><strong>If your patch number is 9</strong> when you increase the patch version again, <strong>you increase it to 10,</strong> then 11, then 12, and so on. (There are no limits to the numbers.)</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0*FQw6EFwILTQfFjY3.png" alt="Image" width="730" height="270" loading="lazy"></p>
<h4 id="heading-minor-versions">Minor versions</h4>
<p>The second number is called the minor version number. It is <strong>used when you release new functionality</strong> in your project.</p>
<p>When you increase the minor version, you also increase it by one. <strong>But</strong> <strong>when you increase the minor version, you must reset the patch version to zero.</strong></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0*ljytd-KnDUHIcPP_.png" alt="Image" width="532" height="260" loading="lazy"></p>
<h4 id="heading-major-versions">Major versions</h4>
<p>The leftmost number is a major version. When you increase the major version, you tell people that there are <strong>backward-incompatible changes</strong>. People may experience breakage if they use the next version.</p>
<p><strong>When you increase the major version number, you reset both patch version and minor versions.</strong></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0*HDxRFW5vBUnkN1pN.png" alt="Image" width="512" height="288" loading="lazy"></p>
<h4 id="heading-pre-releases">Pre-releases</h4>
<p>If you want to create a pre-release (like an alpha or beta version), you can add a <code>-</code>, followed by the words <code>alpha</code> or <code>beta</code>.</p>
<p>There are <strong>no hard and fast rules for pre-releases</strong>, so you can name them anything you want. Usually, we use alpha or beta, followed by a number, like <code>alpha1</code>.</p>
<h3 id="heading-starting-a-project">Starting a project</h3>
<p>Most people start projects with <code>0.1.0</code>. When you’re ready to release the project to the public, you increase the version to <code>1.0.0</code>.</p>
<p>Thanks for reading. Did this article help you in any way? If you did, <a target="_blank" href="http://twitter.com/share?text=Semantic%20Versioning%20by%20@zellwk%20?%20&amp;url=https://zellwk.com/blog/semantic-versioning/&amp;hashtags=">I hope you consider sharing it</a>. You might help someone out. Thank you!</p>
<p>This article was originally posted on <a target="_blank" href="https://zellwk.com/blog/semantic-versioning"><em>my blog</em></a><em>.</em><br>Sign up for my <a target="_blank" href="https://zellwk.com/">newsletter</a> if you want more articles to help you become a better frontend developer.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
