Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. what is the best way to do / maintain a version of a product ?

what is the best way to do / maintain a version of a product ?

Scheduled Pinned Locked Moved The Lounge
questiondiscussionannouncement
25 Posts 12 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    ravikhoda
    wrote on last edited by
    #1

    HI all, one of our client going to launch a 1.0 version of a product in the market in near future. as we are new with maintaining a version of a product i would like to know the best practice to take care about that. there may be new plugins/ functionality will be added to the product which may be separate module or may be interconnected with existing modules. i want to know the best practice to maintain this, from document level to code level or something else as well.

    Ravi Khoda

    P N T R P 6 Replies Last reply
    0
    • R ravikhoda

      HI all, one of our client going to launch a 1.0 version of a product in the market in near future. as we are new with maintaining a version of a product i would like to know the best practice to take care about that. there may be new plugins/ functionality will be added to the product which may be separate module or may be interconnected with existing modules. i want to know the best practice to maintain this, from document level to code level or something else as well.

      Ravi Khoda

      P Offline
      P Offline
      Pete OHanlon
      wrote on last edited by
      #2

      What you are talking about is release management and that's a much bigger topic than would fit in a single lounge response. To be honest, you should have been thinking about release management all along because it affects things such as source branching strategies, testing strategies, application architecture, regression paths, versioning, serialization - the list of things it encompasses is huge.

      R 1 Reply Last reply
      0
      • P Pete OHanlon

        What you are talking about is release management and that's a much bigger topic than would fit in a single lounge response. To be honest, you should have been thinking about release management all along because it affects things such as source branching strategies, testing strategies, application architecture, regression paths, versioning, serialization - the list of things it encompasses is huge.

        R Offline
        R Offline
        ravikhoda
        wrote on last edited by
        #3

        Alright thanks for your reply. i got a lot of new keywords to google and check about them. will do some more research on that. Thanks

        Ravi Khoda

        1 Reply Last reply
        0
        • R ravikhoda

          HI all, one of our client going to launch a 1.0 version of a product in the market in near future. as we are new with maintaining a version of a product i would like to know the best practice to take care about that. there may be new plugins/ functionality will be added to the product which may be separate module or may be interconnected with existing modules. i want to know the best practice to maintain this, from document level to code level or something else as well.

          Ravi Khoda

          N Offline
          N Offline
          Nagy Vilmos
          wrote on last edited by
          #4

          Firstly, get thee to a repository. Use whatever you like, but use one. Now use a file structure with head - the current head revision, development - branched off a version, and branch - holding each release. This structure I've used successfully:

          product
          +- branch
          | +- v1.0
          | | | +- v1.0.1
          | | | +- v1.1
          | | | +- user
          | +- | +- head
          | +- documents
          | |

          For any major piece of work, branch to a user area and on completion integrate back. Integration to the branch lines is only for release and there should be no development there. Then have an automated build process that can pull down any line, say product\head or product\branch\v1.0, build it and package it. As a super bonus, have the build process put on the version stamps to the files [left as an exercise for the reader]. This structure means you can patch any or all versions of the code and manage your code safely. But no one wants to reduce the risk do they?

          R P 2 Replies Last reply
          0
          • N Nagy Vilmos

            Firstly, get thee to a repository. Use whatever you like, but use one. Now use a file structure with head - the current head revision, development - branched off a version, and branch - holding each release. This structure I've used successfully:

            product
            +- branch
            | +- v1.0
            | | | +- v1.0.1
            | | | +- v1.1
            | | | +- user
            | +- | +- head
            | +- documents
            | |

            For any major piece of work, branch to a user area and on completion integrate back. Integration to the branch lines is only for release and there should be no development there. Then have an automated build process that can pull down any line, say product\head or product\branch\v1.0, build it and package it. As a super bonus, have the build process put on the version stamps to the files [left as an exercise for the reader]. This structure means you can patch any or all versions of the code and manage your code safely. But no one wants to reduce the risk do they?

            R Offline
            R Offline
            ravikhoda
            wrote on last edited by
            #5

            alright something new for me but will give it a go. my project is in asp.net should i go with SVN or Visual Source Safe as version tool.?

            Ravi Khoda

            N 1 Reply Last reply
            0
            • R ravikhoda

              alright something new for me but will give it a go. my project is in asp.net should i go with SVN or Visual Source Safe as version tool.?

              Ravi Khoda

              N Offline
              N Offline
              Nagy Vilmos
              wrote on last edited by
              #6

              I purposefully did not use the phrase version tool or recommend any particular repository. There are many factors that go into choosing a scheme and with the information you give it is hard to say which is better for you.

              R 1 Reply Last reply
              0
              • N Nagy Vilmos

                I purposefully did not use the phrase version tool or recommend any particular repository. There are many factors that go into choosing a scheme and with the information you give it is hard to say which is better for you.

                R Offline
                R Offline
                ravikhoda
                wrote on last edited by
                #7

                Alright will check that. thanks for your time and suggetions. :thumbsup:

                Ravi Khoda

                1 Reply Last reply
                0
                • N Nagy Vilmos

                  Firstly, get thee to a repository. Use whatever you like, but use one. Now use a file structure with head - the current head revision, development - branched off a version, and branch - holding each release. This structure I've used successfully:

                  product
                  +- branch
                  | +- v1.0
                  | | | +- v1.0.1
                  | | | +- v1.1
                  | | | +- user
                  | +- | +- head
                  | +- documents
                  | |

                  For any major piece of work, branch to a user area and on completion integrate back. Integration to the branch lines is only for release and there should be no development there. Then have an automated build process that can pull down any line, say product\head or product\branch\v1.0, build it and package it. As a super bonus, have the build process put on the version stamps to the files [left as an exercise for the reader]. This structure means you can patch any or all versions of the code and manage your code safely. But no one wants to reduce the risk do they?

                  P Offline
                  P Offline
                  PIEBALDconsult
                  wrote on last edited by
                  #8

                  Branching is evil and is a sign of a flawed process.

                  This space intentionally left blank.

                  N J 2 Replies Last reply
                  0
                  • P PIEBALDconsult

                    Branching is evil and is a sign of a flawed process.

                    This space intentionally left blank.

                    N Offline
                    N Offline
                    Nagy Vilmos
                    wrote on last edited by
                    #9

                    Ooh! Ooh! Holy War! :-D And what, pray tell, is evil about branching off at the point you build a product so that it can be easily be maintained separately or in parallel to the head revision? TBH I have worked with various repository structures and branch to release has always seemed the easiest and most sensible to me. But what would I know after a quarter century of hacking? ;P

                    P 1 Reply Last reply
                    0
                    • N Nagy Vilmos

                      Ooh! Ooh! Holy War! :-D And what, pray tell, is evil about branching off at the point you build a product so that it can be easily be maintained separately or in parallel to the head revision? TBH I have worked with various repository structures and branch to release has always seemed the easiest and most sensible to me. But what would I know after a quarter century of hacking? ;P

                      P Offline
                      P Offline
                      PIEBALDconsult
                      wrote on last edited by
                      #10

                      Nagy Vilmos wrote:

                      a quarter century of hacking

                      In my quarter century I have never created a branch. In CMS (Code Management System for VMS) we used Classes, now in TFS we use Labels. If your tool doesn't support something like this (I'm looking at you Subversion) then you are using the wrong tool.

                      Nagy Vilmos wrote:

                      the head revision

                      That is totally wrong-headed thinking, which is a curse of the "Branch" mentality imposed by inferior tools.

                      This space intentionally left blank.

                      J 1 Reply Last reply
                      0
                      • R ravikhoda

                        HI all, one of our client going to launch a 1.0 version of a product in the market in near future. as we are new with maintaining a version of a product i would like to know the best practice to take care about that. there may be new plugins/ functionality will be added to the product which may be separate module or may be interconnected with existing modules. i want to know the best practice to maintain this, from document level to code level or something else as well.

                        Ravi Khoda

                        T Offline
                        T Offline
                        TechTriumph1985
                        wrote on last edited by
                        #11

                        Hello Ravi, One of the approaches would be to use Version tool like SVN (tortoisesvn.net/about.html). You can then create branches to maintain different versions of your product. Please visit the link mentioned above on the usage/details of the product. Many Thanks & Regards, Mehul Bhadricha

                        R 1 Reply Last reply
                        0
                        • T TechTriumph1985

                          Hello Ravi, One of the approaches would be to use Version tool like SVN (tortoisesvn.net/about.html). You can then create branches to maintain different versions of your product. Please visit the link mentioned above on the usage/details of the product. Many Thanks & Regards, Mehul Bhadricha

                          R Offline
                          R Offline
                          ravikhoda
                          wrote on last edited by
                          #12

                          thanks for your suggestion. i will check it and get back if i need some more details.

                          Ravi Khoda

                          1 Reply Last reply
                          0
                          • R ravikhoda

                            HI all, one of our client going to launch a 1.0 version of a product in the market in near future. as we are new with maintaining a version of a product i would like to know the best practice to take care about that. there may be new plugins/ functionality will be added to the product which may be separate module or may be interconnected with existing modules. i want to know the best practice to maintain this, from document level to code level or something else as well.

                            Ravi Khoda

                            R Offline
                            R Offline
                            R Erasmus
                            wrote on last edited by
                            #13

                            Search Code Project for versioning tools topic or something similar... there has been tons of post on this subject.

                            "Program testing can be used to show the presence of bugs, but never to show their absence." << please vote!! >>

                            K 1 Reply Last reply
                            0
                            • R R Erasmus

                              Search Code Project for versioning tools topic or something similar... there has been tons of post on this subject.

                              "Program testing can be used to show the presence of bugs, but never to show their absence." << please vote!! >>

                              K Offline
                              K Offline
                              Kirk 10389821
                              wrote on last edited by
                              #14

                              I have to take point with your signature...

                              R. Erasmus wrote:

                              "Program testing can be used to show the presence of bugs, but never to show their absence."

                              If a previously discovered bug is added to the list of tests to be run (TDD), then the passing of all tests, would include at least one case in which a bugs absence is duly identified... Maybe the specificity of such absence is an issue, but its absences, nonetheless.

                              P G 2 Replies Last reply
                              0
                              • K Kirk 10389821

                                I have to take point with your signature...

                                R. Erasmus wrote:

                                "Program testing can be used to show the presence of bugs, but never to show their absence."

                                If a previously discovered bug is added to the list of tests to be run (TDD), then the passing of all tests, would include at least one case in which a bugs absence is duly identified... Maybe the specificity of such absence is an issue, but its absences, nonetheless.

                                P Offline
                                P Offline
                                Peter R Fletcher
                                wrote on last edited by
                                #15

                                I think you misunderstood the (IMHO) truth expressed in the signature. You can design a test to confirm the absence of most previously identified bugs that do not depend on the timing of multiple asynchronous events. These latter can be the very devil, not only to identify and fix but to be sure that you have fixed! What you usually can't do is devise a test that shows that anything except a trivial program is free of all possible bugs.

                                1 Reply Last reply
                                0
                                • K Kirk 10389821

                                  I have to take point with your signature...

                                  R. Erasmus wrote:

                                  "Program testing can be used to show the presence of bugs, but never to show their absence."

                                  If a previously discovered bug is added to the list of tests to be run (TDD), then the passing of all tests, would include at least one case in which a bugs absence is duly identified... Maybe the specificity of such absence is an issue, but its absences, nonetheless.

                                  G Offline
                                  G Offline
                                  gggustafson
                                  wrote on last edited by
                                  #16

                                  You might be interested in the source of that quotation[^]

                                  Gus Gustafson

                                  1 Reply Last reply
                                  0
                                  • R ravikhoda

                                    HI all, one of our client going to launch a 1.0 version of a product in the market in near future. as we are new with maintaining a version of a product i would like to know the best practice to take care about that. there may be new plugins/ functionality will be added to the product which may be separate module or may be interconnected with existing modules. i want to know the best practice to maintain this, from document level to code level or something else as well.

                                    Ravi Khoda

                                    P Offline
                                    P Offline
                                    patbob
                                    wrote on last edited by
                                    #17

                                    The absolute minimum is to keep a copy of the code that went into each release. Duplicate those copies to give you a place to do continued work, for example one copy to do bugfixes to the current product, another for the new development that goes into the next release. Revision control systems give you the ability to create these copies virtually so you don't have the mess of full copies of the code lying around. At a minimum, you want to be able to put out bugfix releases while you're still in the middle of adding and debugging the new features for the next major release, so you need three copies (one to archive the code that was in the code of the actual release).

                                    We can program with only 1's, but if all you've got are zeros, you've got nothing.

                                    1 Reply Last reply
                                    0
                                    • P PIEBALDconsult

                                      Nagy Vilmos wrote:

                                      a quarter century of hacking

                                      In my quarter century I have never created a branch. In CMS (Code Management System for VMS) we used Classes, now in TFS we use Labels. If your tool doesn't support something like this (I'm looking at you Subversion) then you are using the wrong tool.

                                      Nagy Vilmos wrote:

                                      the head revision

                                      That is totally wrong-headed thinking, which is a curse of the "Branch" mentality imposed by inferior tools.

                                      This space intentionally left blank.

                                      J Offline
                                      J Offline
                                      jnlt
                                      wrote on last edited by
                                      #18

                                      You can branch (to my way of thinking) if you have a legitimate branch in custom business software. A customer wants something and will from thence forth essentially have a separate product that must be maintained, hopefully using libraries to not be totally a new animal.

                                      1 Reply Last reply
                                      0
                                      • P PIEBALDconsult

                                        Branching is evil and is a sign of a flawed process.

                                        This space intentionally left blank.

                                        J Offline
                                        J Offline
                                        jschell
                                        wrote on last edited by
                                        #19

                                        PIEBALDconsult wrote:

                                        Branching is evil and is a sign of a flawed process.

                                        How do you do an emergency fix of an existing production application?

                                        P P 2 Replies Last reply
                                        0
                                        • R ravikhoda

                                          HI all, one of our client going to launch a 1.0 version of a product in the market in near future. as we are new with maintaining a version of a product i would like to know the best practice to take care about that. there may be new plugins/ functionality will be added to the product which may be separate module or may be interconnected with existing modules. i want to know the best practice to maintain this, from document level to code level or something else as well.

                                          Ravi Khoda

                                          J Offline
                                          J Offline
                                          jschell
                                          wrote on last edited by
                                          #20

                                          ravikhoda wrote:

                                          there may be new plugins/ functionality will be added to the product which may be separate module or may be interconnected with existing modules.

                                          You need to decide exactly what that means. Specifically is a "plugin" going to be treated as a separate deliverable or will they always be part of the original product. An alternative way to think of this is if your "product" is on version 2.1.3 will Plugin XXX be version 2.1.3 or can it be 15.8.16? If it is a separate deliverable then that impacts your layout and can also impact your choice of version control.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups