Semantic versioning - major version for a traditional web application












-1















I have a Rails app which is a traditional web application (HTTP requests are processed and HTML pages are rendered). As of now, it does not have an APIs that are exposed to other apps.



I want to use semantic versioning for versioning the application. Currently it is at '0.0.0'.



Quoting from the documentation:




MAJOR version when you make incompatible API changes,

MINOR version when you add functionality in a backwards-compatible manner, and

PATCH version when you make backwards-compatible bug fixes.




From what I understand, because there are no applications dependent on mine, the major version will never change. Only the minor and patch versions will change, the major version will always remain 0.



I want to know if my understanding is correct. Is there any scenario in which my major version will change?










share|improve this question




















  • 2





    Why do you want to use versioning? (Are you distributing copies of the app to users or do you have different versions installed in different environments, or what - semantic versioning may not match your needs)

    – Joni
    Jan 1 at 13:57













  • Yes, I have it deployed on different environments - prod, demo and test. I want to be able to identify the version of the software on different environments, it could get confusing otherwise. Eventually, I would also develop APIs that can be used by a mobile application.

    – mridula
    Jan 2 at 6:55
















-1















I have a Rails app which is a traditional web application (HTTP requests are processed and HTML pages are rendered). As of now, it does not have an APIs that are exposed to other apps.



I want to use semantic versioning for versioning the application. Currently it is at '0.0.0'.



Quoting from the documentation:




MAJOR version when you make incompatible API changes,

MINOR version when you add functionality in a backwards-compatible manner, and

PATCH version when you make backwards-compatible bug fixes.




From what I understand, because there are no applications dependent on mine, the major version will never change. Only the minor and patch versions will change, the major version will always remain 0.



I want to know if my understanding is correct. Is there any scenario in which my major version will change?










share|improve this question




















  • 2





    Why do you want to use versioning? (Are you distributing copies of the app to users or do you have different versions installed in different environments, or what - semantic versioning may not match your needs)

    – Joni
    Jan 1 at 13:57













  • Yes, I have it deployed on different environments - prod, demo and test. I want to be able to identify the version of the software on different environments, it could get confusing otherwise. Eventually, I would also develop APIs that can be used by a mobile application.

    – mridula
    Jan 2 at 6:55














-1












-1








-1








I have a Rails app which is a traditional web application (HTTP requests are processed and HTML pages are rendered). As of now, it does not have an APIs that are exposed to other apps.



I want to use semantic versioning for versioning the application. Currently it is at '0.0.0'.



Quoting from the documentation:




MAJOR version when you make incompatible API changes,

MINOR version when you add functionality in a backwards-compatible manner, and

PATCH version when you make backwards-compatible bug fixes.




From what I understand, because there are no applications dependent on mine, the major version will never change. Only the minor and patch versions will change, the major version will always remain 0.



I want to know if my understanding is correct. Is there any scenario in which my major version will change?










share|improve this question
















I have a Rails app which is a traditional web application (HTTP requests are processed and HTML pages are rendered). As of now, it does not have an APIs that are exposed to other apps.



I want to use semantic versioning for versioning the application. Currently it is at '0.0.0'.



Quoting from the documentation:




MAJOR version when you make incompatible API changes,

MINOR version when you add functionality in a backwards-compatible manner, and

PATCH version when you make backwards-compatible bug fixes.




From what I understand, because there are no applications dependent on mine, the major version will never change. Only the minor and patch versions will change, the major version will always remain 0.



I want to know if my understanding is correct. Is there any scenario in which my major version will change?







semantic-versioning






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 3 at 14:39









Amy

21.7k1874131




21.7k1874131










asked Jan 1 at 13:46









mridulamridula

2,05311740




2,05311740








  • 2





    Why do you want to use versioning? (Are you distributing copies of the app to users or do you have different versions installed in different environments, or what - semantic versioning may not match your needs)

    – Joni
    Jan 1 at 13:57













  • Yes, I have it deployed on different environments - prod, demo and test. I want to be able to identify the version of the software on different environments, it could get confusing otherwise. Eventually, I would also develop APIs that can be used by a mobile application.

    – mridula
    Jan 2 at 6:55














  • 2





    Why do you want to use versioning? (Are you distributing copies of the app to users or do you have different versions installed in different environments, or what - semantic versioning may not match your needs)

    – Joni
    Jan 1 at 13:57













  • Yes, I have it deployed on different environments - prod, demo and test. I want to be able to identify the version of the software on different environments, it could get confusing otherwise. Eventually, I would also develop APIs that can be used by a mobile application.

    – mridula
    Jan 2 at 6:55








2




2





Why do you want to use versioning? (Are you distributing copies of the app to users or do you have different versions installed in different environments, or what - semantic versioning may not match your needs)

– Joni
Jan 1 at 13:57







Why do you want to use versioning? (Are you distributing copies of the app to users or do you have different versions installed in different environments, or what - semantic versioning may not match your needs)

– Joni
Jan 1 at 13:57















Yes, I have it deployed on different environments - prod, demo and test. I want to be able to identify the version of the software on different environments, it could get confusing otherwise. Eventually, I would also develop APIs that can be used by a mobile application.

– mridula
Jan 2 at 6:55





Yes, I have it deployed on different environments - prod, demo and test. I want to be able to identify the version of the software on different environments, it could get confusing otherwise. Eventually, I would also develop APIs that can be used by a mobile application.

– mridula
Jan 2 at 6:55












1 Answer
1






active

oldest

votes


















0














Since you're not developing and releasing software package, semantic versioning is not directly applicable. It sounds like a single "release" number could be enough for your use case, since what you need is track when a code change will be in test and in prod. Assuming code must go through test before going to prod, you would update the number whenever you update the test environment with code from the development branch. This way, at a given moment development would have release N, test would have N-1, and prod N-2.



API versioning is a different problem, independent of release numbering. In my experience API users only care about breaking changes, so those need to be versioned. Also, since users are slow to update their apps you must be prepared to keep old versions around indefinitely.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53995965%2fsemantic-versioning-major-version-for-a-traditional-web-application%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Since you're not developing and releasing software package, semantic versioning is not directly applicable. It sounds like a single "release" number could be enough for your use case, since what you need is track when a code change will be in test and in prod. Assuming code must go through test before going to prod, you would update the number whenever you update the test environment with code from the development branch. This way, at a given moment development would have release N, test would have N-1, and prod N-2.



    API versioning is a different problem, independent of release numbering. In my experience API users only care about breaking changes, so those need to be versioned. Also, since users are slow to update their apps you must be prepared to keep old versions around indefinitely.






    share|improve this answer




























      0














      Since you're not developing and releasing software package, semantic versioning is not directly applicable. It sounds like a single "release" number could be enough for your use case, since what you need is track when a code change will be in test and in prod. Assuming code must go through test before going to prod, you would update the number whenever you update the test environment with code from the development branch. This way, at a given moment development would have release N, test would have N-1, and prod N-2.



      API versioning is a different problem, independent of release numbering. In my experience API users only care about breaking changes, so those need to be versioned. Also, since users are slow to update their apps you must be prepared to keep old versions around indefinitely.






      share|improve this answer


























        0












        0








        0







        Since you're not developing and releasing software package, semantic versioning is not directly applicable. It sounds like a single "release" number could be enough for your use case, since what you need is track when a code change will be in test and in prod. Assuming code must go through test before going to prod, you would update the number whenever you update the test environment with code from the development branch. This way, at a given moment development would have release N, test would have N-1, and prod N-2.



        API versioning is a different problem, independent of release numbering. In my experience API users only care about breaking changes, so those need to be versioned. Also, since users are slow to update their apps you must be prepared to keep old versions around indefinitely.






        share|improve this answer













        Since you're not developing and releasing software package, semantic versioning is not directly applicable. It sounds like a single "release" number could be enough for your use case, since what you need is track when a code change will be in test and in prod. Assuming code must go through test before going to prod, you would update the number whenever you update the test environment with code from the development branch. This way, at a given moment development would have release N, test would have N-1, and prod N-2.



        API versioning is a different problem, independent of release numbering. In my experience API users only care about breaking changes, so those need to be versioned. Also, since users are slow to update their apps you must be prepared to keep old versions around indefinitely.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 3 at 14:34









        JoniJoni

        77k998153




        77k998153
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53995965%2fsemantic-versioning-major-version-for-a-traditional-web-application%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Monofisismo

            Angular Downloading a file using contenturl with Basic Authentication

            Olmecas