Should generated documentation be stored in a Git repository?Should generated documentation go in version control history?Should Git be used for documentation and project management? Should the code be in a separate repository?Documentation with images - what is the most git-friendly approach?How can I get git to clone untracked filesShould I use git for project files, other than the actual source?Strategy for maintaining offline repository safely using gitGit Submodule for untracked folder?How can I split a repository that contains many projects which share the same build system?How can I use local Git with VSSShould minified CSS be stored in Git?How to use git when project files are on different drives?

How do I unravel apparent recursion in an edef statement?

Why were early aviators' trousers flared at the thigh?

What is the word for interior with a circle

Was Tyrion always a poor strategist?

Is being an extrovert a necessary condition to be a manager?

Would it be possible to set up a franchise in the ancient world?

How to fix "webpack Dev Server Invalid Options" in Vuejs

pwaS eht tirsf dna tasl setterl fo hace dorw

Can a problematic AL DM/organizer prevent me from running a separatate AL-legal game at the same store?

Hotel booking: Why is Agoda much cheaper than booking.com?

How do you play the middle D and F in this passage?

What does this 'x' mean on the stem of the voice's note, above the notehead?

Why does string strummed with finger sound different from the one strummed with pick?

Can the bitcoin lightning network support more than 8 decimal places?

What does it mean for a program to be 32 or 64 bit?

Does the Aboleth have expertise in history and perception?

Is it possible to view all the attribute data in QGIS

Addressing an email

Very serious stuff - Salesforce bug enabled "Modify All"

Character had a different name in the past. Which name should I use in a flashback?

Warped chessboard

How does the "reverse syntax" in Middle English work?

Is it a good idea to teach algorithm courses using pseudocode instead of a real programming language?

In Dutch history two people are referred to as "William III"; are there any more cases where this happens?



Should generated documentation be stored in a Git repository?


Should generated documentation go in version control history?Should Git be used for documentation and project management? Should the code be in a separate repository?Documentation with images - what is the most git-friendly approach?How can I get git to clone untracked filesShould I use git for project files, other than the actual source?Strategy for maintaining offline repository safely using gitGit Submodule for untracked folder?How can I split a repository that contains many projects which share the same build system?How can I use local Git with VSSShould minified CSS be stored in Git?How to use git when project files are on different drives?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








45















When you use tools like jsdocs, it generates static HTML files and its styles in your codebase based on the comments in your code.



Should these files be checked into the Git repository or should they be ignored with .gitignore?










share|improve this question



















  • 3





    There may be an argument to store them in a GitHub repository as you can publish the static HTML using pages. Although then an entirely separate set of arguments arise as to how you ensure they're up to date etc...

    – Boris the Spider
    May 13 at 7:51






  • 20





    If files are generated, then by definition they aren't source.

    – chrylis
    May 13 at 9:29






  • 3





    You publish what you want published. Especially on GitHub. If you want everyone to see a generated PDF or image, you should include it instead of expecting everyone to install LaTeX and compile it themselves. For example, this repository wouldn't be very good if it didn't include the produced images, only the project files...

    – Džuris
    May 13 at 9:57






  • 5





    rather blatant duplicate of Should generated documentation go in version control history?

    – gnat
    May 13 at 15:35






  • 6





    As a consumer of third party libraries, out of the 10 times that I see a library with no online documentation (whether in a subfolder of the repository, or linked from the readme), I will click away and skip those libraries, all 10 times. I'm not going to mess around with Doxygen for half an hour just to see if a library meets my needs.

    – Alexander
    May 14 at 0:50

















45















When you use tools like jsdocs, it generates static HTML files and its styles in your codebase based on the comments in your code.



Should these files be checked into the Git repository or should they be ignored with .gitignore?










share|improve this question



















  • 3





    There may be an argument to store them in a GitHub repository as you can publish the static HTML using pages. Although then an entirely separate set of arguments arise as to how you ensure they're up to date etc...

    – Boris the Spider
    May 13 at 7:51






  • 20





    If files are generated, then by definition they aren't source.

    – chrylis
    May 13 at 9:29






  • 3





    You publish what you want published. Especially on GitHub. If you want everyone to see a generated PDF or image, you should include it instead of expecting everyone to install LaTeX and compile it themselves. For example, this repository wouldn't be very good if it didn't include the produced images, only the project files...

    – Džuris
    May 13 at 9:57






  • 5





    rather blatant duplicate of Should generated documentation go in version control history?

    – gnat
    May 13 at 15:35






  • 6





    As a consumer of third party libraries, out of the 10 times that I see a library with no online documentation (whether in a subfolder of the repository, or linked from the readme), I will click away and skip those libraries, all 10 times. I'm not going to mess around with Doxygen for half an hour just to see if a library meets my needs.

    – Alexander
    May 14 at 0:50













45












45








45


5






When you use tools like jsdocs, it generates static HTML files and its styles in your codebase based on the comments in your code.



Should these files be checked into the Git repository or should they be ignored with .gitignore?










share|improve this question
















When you use tools like jsdocs, it generates static HTML files and its styles in your codebase based on the comments in your code.



Should these files be checked into the Git repository or should they be ignored with .gitignore?







git documentation






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 13 at 14:11









Peter Mortensen

1,11521114




1,11521114










asked May 13 at 0:31









garbage collectiongarbage collection

6311014




6311014







  • 3





    There may be an argument to store them in a GitHub repository as you can publish the static HTML using pages. Although then an entirely separate set of arguments arise as to how you ensure they're up to date etc...

    – Boris the Spider
    May 13 at 7:51






  • 20





    If files are generated, then by definition they aren't source.

    – chrylis
    May 13 at 9:29






  • 3





    You publish what you want published. Especially on GitHub. If you want everyone to see a generated PDF or image, you should include it instead of expecting everyone to install LaTeX and compile it themselves. For example, this repository wouldn't be very good if it didn't include the produced images, only the project files...

    – Džuris
    May 13 at 9:57






  • 5





    rather blatant duplicate of Should generated documentation go in version control history?

    – gnat
    May 13 at 15:35






  • 6





    As a consumer of third party libraries, out of the 10 times that I see a library with no online documentation (whether in a subfolder of the repository, or linked from the readme), I will click away and skip those libraries, all 10 times. I'm not going to mess around with Doxygen for half an hour just to see if a library meets my needs.

    – Alexander
    May 14 at 0:50












  • 3





    There may be an argument to store them in a GitHub repository as you can publish the static HTML using pages. Although then an entirely separate set of arguments arise as to how you ensure they're up to date etc...

    – Boris the Spider
    May 13 at 7:51






  • 20





    If files are generated, then by definition they aren't source.

    – chrylis
    May 13 at 9:29






  • 3





    You publish what you want published. Especially on GitHub. If you want everyone to see a generated PDF or image, you should include it instead of expecting everyone to install LaTeX and compile it themselves. For example, this repository wouldn't be very good if it didn't include the produced images, only the project files...

    – Džuris
    May 13 at 9:57






  • 5





    rather blatant duplicate of Should generated documentation go in version control history?

    – gnat
    May 13 at 15:35






  • 6





    As a consumer of third party libraries, out of the 10 times that I see a library with no online documentation (whether in a subfolder of the repository, or linked from the readme), I will click away and skip those libraries, all 10 times. I'm not going to mess around with Doxygen for half an hour just to see if a library meets my needs.

    – Alexander
    May 14 at 0:50







3




3





There may be an argument to store them in a GitHub repository as you can publish the static HTML using pages. Although then an entirely separate set of arguments arise as to how you ensure they're up to date etc...

– Boris the Spider
May 13 at 7:51





There may be an argument to store them in a GitHub repository as you can publish the static HTML using pages. Although then an entirely separate set of arguments arise as to how you ensure they're up to date etc...

– Boris the Spider
May 13 at 7:51




20




20





If files are generated, then by definition they aren't source.

– chrylis
May 13 at 9:29





If files are generated, then by definition they aren't source.

– chrylis
May 13 at 9:29




3




3





You publish what you want published. Especially on GitHub. If you want everyone to see a generated PDF or image, you should include it instead of expecting everyone to install LaTeX and compile it themselves. For example, this repository wouldn't be very good if it didn't include the produced images, only the project files...

– Džuris
May 13 at 9:57





You publish what you want published. Especially on GitHub. If you want everyone to see a generated PDF or image, you should include it instead of expecting everyone to install LaTeX and compile it themselves. For example, this repository wouldn't be very good if it didn't include the produced images, only the project files...

– Džuris
May 13 at 9:57




5




5





rather blatant duplicate of Should generated documentation go in version control history?

– gnat
May 13 at 15:35





rather blatant duplicate of Should generated documentation go in version control history?

– gnat
May 13 at 15:35




6




6





As a consumer of third party libraries, out of the 10 times that I see a library with no online documentation (whether in a subfolder of the repository, or linked from the readme), I will click away and skip those libraries, all 10 times. I'm not going to mess around with Doxygen for half an hour just to see if a library meets my needs.

– Alexander
May 14 at 0:50





As a consumer of third party libraries, out of the 10 times that I see a library with no online documentation (whether in a subfolder of the repository, or linked from the readme), I will click away and skip those libraries, all 10 times. I'm not going to mess around with Doxygen for half an hour just to see if a library meets my needs.

– Alexander
May 14 at 0:50










8 Answers
8






active

oldest

votes


















128














Absent any specific need, any file that can be built, recreated, constructed, or generated from build tools using other files checked into version control should not be checked in. When the file is needed, it can be (re)built from the other sources (and normally would be as some aspect of the build process).



So those files should be ignored with .gitignore.






share|improve this answer


















  • 4





    But this may depend on versions of build tools or even the availability of build tools (e.g. to generate some files some old version of a build tool is required). How do you handle that? Can you address it in your answer?

    – Peter Mortensen
    May 13 at 10:20







  • 27





    @PeterMortensen If you need an artifact built with a special version of buld tools, you build it with the version of build tools that you need. Such a need is either a) discoverd by yourself, in which case you're on your own; b) documented in README ("You'll need two have 2 specific versions of doxygen installed..."); c) dealt with by the build scripts (they check the available build tools versions and act appropriately). In any case, source control is for sources, not for build artifacts.

    – Joker_vD
    May 13 at 10:32






  • 1





    And I'd add: artifacts are to store artifacts ;) E.g. if you really want to make sure you have the documentation ready for a certain version of the project artifact, store both a compiled project artifact and the documentation artifact in some artifact store.

    – Frank Hopkins
    May 14 at 0:18






  • 4





    @Alexander Would you also put the built binary into the repo? The documentation is built. You take the built documentation and make it accessible somewhere.

    – 1201ProgramAlarm
    May 14 at 1:06






  • 4





    @1201ProgramAlarm "Would you also put the built binary into the repo?" Nope, because a built binary has low up-front value to people browsing around GitHub, as compared to the documentation. "You take the built documentation and make it accessible somewhere." As long as that's publicly hosted, visibly linked, then yea that's great. It's probably the best case.

    – Alexander
    May 14 at 1:31


















23














My rule is that when I clone a repository and press a “build” button, then, after a while, everything is built. To achieve this for your generated documentation, you have two choices: either someone is responsible for creating these docs and putting them into git, or you document exactly what software I need on my development machine, and you make sure that pressing the “build” button builds all the documentation on my machine.



In the case of generated documentation, where any single change that I make to a header file should change the documentation, doing this on each developer’s machine is better, because I want correct documentation all the time, not only when someone has updated it. There are other situations where generating something might be time consuming, complicated, require software for which you have only one license, etc. In that case, giving one person the responsibility to put things into git is better.



@Curt Simpson: Having all the software requirements documented is a lot better than I have seen in many places.






share|improve this answer




















  • 7





    Don't document what software someone needs to to the build (or at least don't just document): make the build script tell the user what he's missing or even install it itself if that's reasonable. In most of my repos any half-way competent developer can just run ./Test and get a build or get good information about what he needs to do to get a build.

    – Curt J. Sampson
    May 13 at 15:14






  • 5





    I don't really agree that putting generated documentation into git can be good in the case you specify. That's the reason we have artifactories and archives.

    – Sulthan
    May 13 at 17:13











  • That is your rule and it is a good rule and I like it. But others can make their own rules.

    – emory
    May 13 at 20:41











  • I think you mean "run a build command," as there would be no build button on your machine. ...Unless you're expecting the entire build to be integrated with an IDE, which is wholly unreasonable.

    – jpmc26
    May 14 at 15:14












  • @jpmc26 I find it totally reasonable to have the entire build integrated in an IDE. The build button on my machine is Command-B.

    – gnasher729
    2 days ago


















14














These files should not be checked in because the data to generate them is already present. You do not want to store data twice (DRY).



If you have an CI system, you could perhaps make that build the docs and store them for that build/publish it to a web server.






share|improve this answer








New contributor



Tvde1 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.


























    4














    One advantage of having them in some repository (either the same or a different one, preferably automatically generated) is that then you can see all the changes to the documentation. Sometimes those diffs are easier to read than the diffs to the source code (specifically if you only care about specification changes, not implementation one).



    But in most cases having them in source control is not needed, as the other answers explained.






    share|improve this answer


















    • 1





      That would pretty much require a pre-commit hook in each and every repo that is used to create commits. Because if the documentation generation process is not fully automated, you will get commits that have the documentation out-of-sync with the code. And those broken commits will hurt understandability more than uncommitted documentation.

      – cmaster
      May 14 at 11:10






    • 1





      This doesn't have to be at the commit stage. It could easily be a downstream/CI/Jenkins job to publish them every time they are deemed worthy of storage. This may well be each commit, but the decision should be decoupled in the absence of a good reason. Or at least that's the way I see it.

      – ANone
      May 14 at 13:57


















    3














    Ignored. You'll want to have the repo's users be able to rebuild them anyway, and it removes the complexity of being sure the doc's are always in sync. There's no reason not to have the built artifacts bundled up in one place if you want to have everything in one place and not have to build anything. However source repos are not really a good place to do this though as complexity there hurts more than most places.






    share|improve this answer
































      2














      It depends on your deployment process. But committing generated files into a repository is an exception and should be avoided, if possible. If you can answer both of the following questions with Yes, checking in your docs might be a valid option:



      • Are the docs a requirement for production?

      • Does your deployment system lack the necessary tools to build the docs?

      If these conditions are true, you are probably deploying with a legacy system or a system with special security constrains. As an alternative, you could commit the generated files into a release branch and keep the master branch clean.






      share|improve this answer




















      • 1





        Committing generated files into a release branch doesn't work in every situation, but there are a number, especially with things like static web sites built from markdown, where this is an excellent solution. I do it often enough that I built a special tool to easily generate such commits as part of the build process.

        – Curt J. Sampson
        May 13 at 15:16


















      2














      It depends. If those docs:



      • Needs to be part of the repository, like the readme.md, then it's preferred to keep them in the git repo. Because it can be tricky to handle those situations on a automated way.


      • If you don't have an automated way to build and update them, like a CI system, and it is intended to be seen for the general audience, then is preferred to keep them in the git repo.


      • Takes A LOT of time to build them, then is justifiable to keep them.


      • Are intended to be seen for the general audience (like the user manual), and it takes a considerable time to build, while your previous docs becomes inaccessible (offline), then is justifiable to keep them in the git repo.


      • Are intended to be seen for the general audience and has to show a history of its changes/evolution, it could be easier to keep previous doc versions commited and build/commit the new one linked to the previous. Justifiable.


      • Has an specific accepted reason for all the team to be commited, then is justifiable to keep them in the git repo. (We don't know your context, you & your team do)


      In any other scenario, it should be safely ignored.



      However, if its justifiable to keep them in the git repo, could be a sign of another bigger issue that your team is facing. (Not having a CI system or similar, horrible performance issues, facing downtime while building, etc.)






      share|improve this answer








      New contributor



      throawableAccount2892391 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.


























        1














        As a principle of version control, only "primary objects" should be stored in a repository, not "derived objects".



        There are exceptions to the rule: namely, when there are consumers of the repository who require the derived objects, and are reasonably expected not to have the required tools to generate them. Other considerations weigh in, like is the amount of material unwieldy? (Would it be better for the project just get all the users to have the tools?)



        An extreme example of this is a project that implements a rare programming language whose compiler is written in that language itself (well known examples include Ocaml or Haskell). If only the compiler source code is in the repository, nobody can build it; they don't have a compiled version of the compiler that they can run on the virtual machine, so that they can compile that compiler's source code. Moreover, the latest features of the language are immediately used in the compiler source itself, so that close to the latest version of the compiler is always required to build it: a month old compiler executable obtained separately will not compile the current code because the code uses language features that didn't exist a month ago. In this situation, the compiled version of the compiler almost certainly has to be checked into the repository and kept up-to-date.






        share|improve this answer























          protected by gnat May 14 at 6:24



          Thank you for your interest in this question.
          Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).



          Would you like to answer one of these unanswered questions instead?














          8 Answers
          8






          active

          oldest

          votes








          8 Answers
          8






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          128














          Absent any specific need, any file that can be built, recreated, constructed, or generated from build tools using other files checked into version control should not be checked in. When the file is needed, it can be (re)built from the other sources (and normally would be as some aspect of the build process).



          So those files should be ignored with .gitignore.






          share|improve this answer


















          • 4





            But this may depend on versions of build tools or even the availability of build tools (e.g. to generate some files some old version of a build tool is required). How do you handle that? Can you address it in your answer?

            – Peter Mortensen
            May 13 at 10:20







          • 27





            @PeterMortensen If you need an artifact built with a special version of buld tools, you build it with the version of build tools that you need. Such a need is either a) discoverd by yourself, in which case you're on your own; b) documented in README ("You'll need two have 2 specific versions of doxygen installed..."); c) dealt with by the build scripts (they check the available build tools versions and act appropriately). In any case, source control is for sources, not for build artifacts.

            – Joker_vD
            May 13 at 10:32






          • 1





            And I'd add: artifacts are to store artifacts ;) E.g. if you really want to make sure you have the documentation ready for a certain version of the project artifact, store both a compiled project artifact and the documentation artifact in some artifact store.

            – Frank Hopkins
            May 14 at 0:18






          • 4





            @Alexander Would you also put the built binary into the repo? The documentation is built. You take the built documentation and make it accessible somewhere.

            – 1201ProgramAlarm
            May 14 at 1:06






          • 4





            @1201ProgramAlarm "Would you also put the built binary into the repo?" Nope, because a built binary has low up-front value to people browsing around GitHub, as compared to the documentation. "You take the built documentation and make it accessible somewhere." As long as that's publicly hosted, visibly linked, then yea that's great. It's probably the best case.

            – Alexander
            May 14 at 1:31















          128














          Absent any specific need, any file that can be built, recreated, constructed, or generated from build tools using other files checked into version control should not be checked in. When the file is needed, it can be (re)built from the other sources (and normally would be as some aspect of the build process).



          So those files should be ignored with .gitignore.






          share|improve this answer


















          • 4





            But this may depend on versions of build tools or even the availability of build tools (e.g. to generate some files some old version of a build tool is required). How do you handle that? Can you address it in your answer?

            – Peter Mortensen
            May 13 at 10:20







          • 27





            @PeterMortensen If you need an artifact built with a special version of buld tools, you build it with the version of build tools that you need. Such a need is either a) discoverd by yourself, in which case you're on your own; b) documented in README ("You'll need two have 2 specific versions of doxygen installed..."); c) dealt with by the build scripts (they check the available build tools versions and act appropriately). In any case, source control is for sources, not for build artifacts.

            – Joker_vD
            May 13 at 10:32






          • 1





            And I'd add: artifacts are to store artifacts ;) E.g. if you really want to make sure you have the documentation ready for a certain version of the project artifact, store both a compiled project artifact and the documentation artifact in some artifact store.

            – Frank Hopkins
            May 14 at 0:18






          • 4





            @Alexander Would you also put the built binary into the repo? The documentation is built. You take the built documentation and make it accessible somewhere.

            – 1201ProgramAlarm
            May 14 at 1:06






          • 4





            @1201ProgramAlarm "Would you also put the built binary into the repo?" Nope, because a built binary has low up-front value to people browsing around GitHub, as compared to the documentation. "You take the built documentation and make it accessible somewhere." As long as that's publicly hosted, visibly linked, then yea that's great. It's probably the best case.

            – Alexander
            May 14 at 1:31













          128












          128








          128







          Absent any specific need, any file that can be built, recreated, constructed, or generated from build tools using other files checked into version control should not be checked in. When the file is needed, it can be (re)built from the other sources (and normally would be as some aspect of the build process).



          So those files should be ignored with .gitignore.






          share|improve this answer













          Absent any specific need, any file that can be built, recreated, constructed, or generated from build tools using other files checked into version control should not be checked in. When the file is needed, it can be (re)built from the other sources (and normally would be as some aspect of the build process).



          So those files should be ignored with .gitignore.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered May 13 at 0:42









          1201ProgramAlarm1201ProgramAlarm

          8772815




          8772815







          • 4





            But this may depend on versions of build tools or even the availability of build tools (e.g. to generate some files some old version of a build tool is required). How do you handle that? Can you address it in your answer?

            – Peter Mortensen
            May 13 at 10:20







          • 27





            @PeterMortensen If you need an artifact built with a special version of buld tools, you build it with the version of build tools that you need. Such a need is either a) discoverd by yourself, in which case you're on your own; b) documented in README ("You'll need two have 2 specific versions of doxygen installed..."); c) dealt with by the build scripts (they check the available build tools versions and act appropriately). In any case, source control is for sources, not for build artifacts.

            – Joker_vD
            May 13 at 10:32






          • 1





            And I'd add: artifacts are to store artifacts ;) E.g. if you really want to make sure you have the documentation ready for a certain version of the project artifact, store both a compiled project artifact and the documentation artifact in some artifact store.

            – Frank Hopkins
            May 14 at 0:18






          • 4





            @Alexander Would you also put the built binary into the repo? The documentation is built. You take the built documentation and make it accessible somewhere.

            – 1201ProgramAlarm
            May 14 at 1:06






          • 4





            @1201ProgramAlarm "Would you also put the built binary into the repo?" Nope, because a built binary has low up-front value to people browsing around GitHub, as compared to the documentation. "You take the built documentation and make it accessible somewhere." As long as that's publicly hosted, visibly linked, then yea that's great. It's probably the best case.

            – Alexander
            May 14 at 1:31












          • 4





            But this may depend on versions of build tools or even the availability of build tools (e.g. to generate some files some old version of a build tool is required). How do you handle that? Can you address it in your answer?

            – Peter Mortensen
            May 13 at 10:20







          • 27





            @PeterMortensen If you need an artifact built with a special version of buld tools, you build it with the version of build tools that you need. Such a need is either a) discoverd by yourself, in which case you're on your own; b) documented in README ("You'll need two have 2 specific versions of doxygen installed..."); c) dealt with by the build scripts (they check the available build tools versions and act appropriately). In any case, source control is for sources, not for build artifacts.

            – Joker_vD
            May 13 at 10:32






          • 1





            And I'd add: artifacts are to store artifacts ;) E.g. if you really want to make sure you have the documentation ready for a certain version of the project artifact, store both a compiled project artifact and the documentation artifact in some artifact store.

            – Frank Hopkins
            May 14 at 0:18






          • 4





            @Alexander Would you also put the built binary into the repo? The documentation is built. You take the built documentation and make it accessible somewhere.

            – 1201ProgramAlarm
            May 14 at 1:06






          • 4





            @1201ProgramAlarm "Would you also put the built binary into the repo?" Nope, because a built binary has low up-front value to people browsing around GitHub, as compared to the documentation. "You take the built documentation and make it accessible somewhere." As long as that's publicly hosted, visibly linked, then yea that's great. It's probably the best case.

            – Alexander
            May 14 at 1:31







          4




          4





          But this may depend on versions of build tools or even the availability of build tools (e.g. to generate some files some old version of a build tool is required). How do you handle that? Can you address it in your answer?

          – Peter Mortensen
          May 13 at 10:20






          But this may depend on versions of build tools or even the availability of build tools (e.g. to generate some files some old version of a build tool is required). How do you handle that? Can you address it in your answer?

          – Peter Mortensen
          May 13 at 10:20





          27




          27





          @PeterMortensen If you need an artifact built with a special version of buld tools, you build it with the version of build tools that you need. Such a need is either a) discoverd by yourself, in which case you're on your own; b) documented in README ("You'll need two have 2 specific versions of doxygen installed..."); c) dealt with by the build scripts (they check the available build tools versions and act appropriately). In any case, source control is for sources, not for build artifacts.

          – Joker_vD
          May 13 at 10:32





          @PeterMortensen If you need an artifact built with a special version of buld tools, you build it with the version of build tools that you need. Such a need is either a) discoverd by yourself, in which case you're on your own; b) documented in README ("You'll need two have 2 specific versions of doxygen installed..."); c) dealt with by the build scripts (they check the available build tools versions and act appropriately). In any case, source control is for sources, not for build artifacts.

          – Joker_vD
          May 13 at 10:32




          1




          1





          And I'd add: artifacts are to store artifacts ;) E.g. if you really want to make sure you have the documentation ready for a certain version of the project artifact, store both a compiled project artifact and the documentation artifact in some artifact store.

          – Frank Hopkins
          May 14 at 0:18





          And I'd add: artifacts are to store artifacts ;) E.g. if you really want to make sure you have the documentation ready for a certain version of the project artifact, store both a compiled project artifact and the documentation artifact in some artifact store.

          – Frank Hopkins
          May 14 at 0:18




          4




          4





          @Alexander Would you also put the built binary into the repo? The documentation is built. You take the built documentation and make it accessible somewhere.

          – 1201ProgramAlarm
          May 14 at 1:06





          @Alexander Would you also put the built binary into the repo? The documentation is built. You take the built documentation and make it accessible somewhere.

          – 1201ProgramAlarm
          May 14 at 1:06




          4




          4





          @1201ProgramAlarm "Would you also put the built binary into the repo?" Nope, because a built binary has low up-front value to people browsing around GitHub, as compared to the documentation. "You take the built documentation and make it accessible somewhere." As long as that's publicly hosted, visibly linked, then yea that's great. It's probably the best case.

          – Alexander
          May 14 at 1:31





          @1201ProgramAlarm "Would you also put the built binary into the repo?" Nope, because a built binary has low up-front value to people browsing around GitHub, as compared to the documentation. "You take the built documentation and make it accessible somewhere." As long as that's publicly hosted, visibly linked, then yea that's great. It's probably the best case.

          – Alexander
          May 14 at 1:31













          23














          My rule is that when I clone a repository and press a “build” button, then, after a while, everything is built. To achieve this for your generated documentation, you have two choices: either someone is responsible for creating these docs and putting them into git, or you document exactly what software I need on my development machine, and you make sure that pressing the “build” button builds all the documentation on my machine.



          In the case of generated documentation, where any single change that I make to a header file should change the documentation, doing this on each developer’s machine is better, because I want correct documentation all the time, not only when someone has updated it. There are other situations where generating something might be time consuming, complicated, require software for which you have only one license, etc. In that case, giving one person the responsibility to put things into git is better.



          @Curt Simpson: Having all the software requirements documented is a lot better than I have seen in many places.






          share|improve this answer




















          • 7





            Don't document what software someone needs to to the build (or at least don't just document): make the build script tell the user what he's missing or even install it itself if that's reasonable. In most of my repos any half-way competent developer can just run ./Test and get a build or get good information about what he needs to do to get a build.

            – Curt J. Sampson
            May 13 at 15:14






          • 5





            I don't really agree that putting generated documentation into git can be good in the case you specify. That's the reason we have artifactories and archives.

            – Sulthan
            May 13 at 17:13











          • That is your rule and it is a good rule and I like it. But others can make their own rules.

            – emory
            May 13 at 20:41











          • I think you mean "run a build command," as there would be no build button on your machine. ...Unless you're expecting the entire build to be integrated with an IDE, which is wholly unreasonable.

            – jpmc26
            May 14 at 15:14












          • @jpmc26 I find it totally reasonable to have the entire build integrated in an IDE. The build button on my machine is Command-B.

            – gnasher729
            2 days ago















          23














          My rule is that when I clone a repository and press a “build” button, then, after a while, everything is built. To achieve this for your generated documentation, you have two choices: either someone is responsible for creating these docs and putting them into git, or you document exactly what software I need on my development machine, and you make sure that pressing the “build” button builds all the documentation on my machine.



          In the case of generated documentation, where any single change that I make to a header file should change the documentation, doing this on each developer’s machine is better, because I want correct documentation all the time, not only when someone has updated it. There are other situations where generating something might be time consuming, complicated, require software for which you have only one license, etc. In that case, giving one person the responsibility to put things into git is better.



          @Curt Simpson: Having all the software requirements documented is a lot better than I have seen in many places.






          share|improve this answer




















          • 7





            Don't document what software someone needs to to the build (or at least don't just document): make the build script tell the user what he's missing or even install it itself if that's reasonable. In most of my repos any half-way competent developer can just run ./Test and get a build or get good information about what he needs to do to get a build.

            – Curt J. Sampson
            May 13 at 15:14






          • 5





            I don't really agree that putting generated documentation into git can be good in the case you specify. That's the reason we have artifactories and archives.

            – Sulthan
            May 13 at 17:13











          • That is your rule and it is a good rule and I like it. But others can make their own rules.

            – emory
            May 13 at 20:41











          • I think you mean "run a build command," as there would be no build button on your machine. ...Unless you're expecting the entire build to be integrated with an IDE, which is wholly unreasonable.

            – jpmc26
            May 14 at 15:14












          • @jpmc26 I find it totally reasonable to have the entire build integrated in an IDE. The build button on my machine is Command-B.

            – gnasher729
            2 days ago













          23












          23








          23







          My rule is that when I clone a repository and press a “build” button, then, after a while, everything is built. To achieve this for your generated documentation, you have two choices: either someone is responsible for creating these docs and putting them into git, or you document exactly what software I need on my development machine, and you make sure that pressing the “build” button builds all the documentation on my machine.



          In the case of generated documentation, where any single change that I make to a header file should change the documentation, doing this on each developer’s machine is better, because I want correct documentation all the time, not only when someone has updated it. There are other situations where generating something might be time consuming, complicated, require software for which you have only one license, etc. In that case, giving one person the responsibility to put things into git is better.



          @Curt Simpson: Having all the software requirements documented is a lot better than I have seen in many places.






          share|improve this answer















          My rule is that when I clone a repository and press a “build” button, then, after a while, everything is built. To achieve this for your generated documentation, you have two choices: either someone is responsible for creating these docs and putting them into git, or you document exactly what software I need on my development machine, and you make sure that pressing the “build” button builds all the documentation on my machine.



          In the case of generated documentation, where any single change that I make to a header file should change the documentation, doing this on each developer’s machine is better, because I want correct documentation all the time, not only when someone has updated it. There are other situations where generating something might be time consuming, complicated, require software for which you have only one license, etc. In that case, giving one person the responsibility to put things into git is better.



          @Curt Simpson: Having all the software requirements documented is a lot better than I have seen in many places.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 2 days ago

























          answered May 13 at 6:55









          gnasher729gnasher729

          21.3k22863




          21.3k22863







          • 7





            Don't document what software someone needs to to the build (or at least don't just document): make the build script tell the user what he's missing or even install it itself if that's reasonable. In most of my repos any half-way competent developer can just run ./Test and get a build or get good information about what he needs to do to get a build.

            – Curt J. Sampson
            May 13 at 15:14






          • 5





            I don't really agree that putting generated documentation into git can be good in the case you specify. That's the reason we have artifactories and archives.

            – Sulthan
            May 13 at 17:13











          • That is your rule and it is a good rule and I like it. But others can make their own rules.

            – emory
            May 13 at 20:41











          • I think you mean "run a build command," as there would be no build button on your machine. ...Unless you're expecting the entire build to be integrated with an IDE, which is wholly unreasonable.

            – jpmc26
            May 14 at 15:14












          • @jpmc26 I find it totally reasonable to have the entire build integrated in an IDE. The build button on my machine is Command-B.

            – gnasher729
            2 days ago












          • 7





            Don't document what software someone needs to to the build (or at least don't just document): make the build script tell the user what he's missing or even install it itself if that's reasonable. In most of my repos any half-way competent developer can just run ./Test and get a build or get good information about what he needs to do to get a build.

            – Curt J. Sampson
            May 13 at 15:14






          • 5





            I don't really agree that putting generated documentation into git can be good in the case you specify. That's the reason we have artifactories and archives.

            – Sulthan
            May 13 at 17:13











          • That is your rule and it is a good rule and I like it. But others can make their own rules.

            – emory
            May 13 at 20:41











          • I think you mean "run a build command," as there would be no build button on your machine. ...Unless you're expecting the entire build to be integrated with an IDE, which is wholly unreasonable.

            – jpmc26
            May 14 at 15:14












          • @jpmc26 I find it totally reasonable to have the entire build integrated in an IDE. The build button on my machine is Command-B.

            – gnasher729
            2 days ago







          7




          7





          Don't document what software someone needs to to the build (or at least don't just document): make the build script tell the user what he's missing or even install it itself if that's reasonable. In most of my repos any half-way competent developer can just run ./Test and get a build or get good information about what he needs to do to get a build.

          – Curt J. Sampson
          May 13 at 15:14





          Don't document what software someone needs to to the build (or at least don't just document): make the build script tell the user what he's missing or even install it itself if that's reasonable. In most of my repos any half-way competent developer can just run ./Test and get a build or get good information about what he needs to do to get a build.

          – Curt J. Sampson
          May 13 at 15:14




          5




          5





          I don't really agree that putting generated documentation into git can be good in the case you specify. That's the reason we have artifactories and archives.

          – Sulthan
          May 13 at 17:13





          I don't really agree that putting generated documentation into git can be good in the case you specify. That's the reason we have artifactories and archives.

          – Sulthan
          May 13 at 17:13













          That is your rule and it is a good rule and I like it. But others can make their own rules.

          – emory
          May 13 at 20:41





          That is your rule and it is a good rule and I like it. But others can make their own rules.

          – emory
          May 13 at 20:41













          I think you mean "run a build command," as there would be no build button on your machine. ...Unless you're expecting the entire build to be integrated with an IDE, which is wholly unreasonable.

          – jpmc26
          May 14 at 15:14






          I think you mean "run a build command," as there would be no build button on your machine. ...Unless you're expecting the entire build to be integrated with an IDE, which is wholly unreasonable.

          – jpmc26
          May 14 at 15:14














          @jpmc26 I find it totally reasonable to have the entire build integrated in an IDE. The build button on my machine is Command-B.

          – gnasher729
          2 days ago





          @jpmc26 I find it totally reasonable to have the entire build integrated in an IDE. The build button on my machine is Command-B.

          – gnasher729
          2 days ago











          14














          These files should not be checked in because the data to generate them is already present. You do not want to store data twice (DRY).



          If you have an CI system, you could perhaps make that build the docs and store them for that build/publish it to a web server.






          share|improve this answer








          New contributor



          Tvde1 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.























            14














            These files should not be checked in because the data to generate them is already present. You do not want to store data twice (DRY).



            If you have an CI system, you could perhaps make that build the docs and store them for that build/publish it to a web server.






            share|improve this answer








            New contributor



            Tvde1 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.





















              14












              14








              14







              These files should not be checked in because the data to generate them is already present. You do not want to store data twice (DRY).



              If you have an CI system, you could perhaps make that build the docs and store them for that build/publish it to a web server.






              share|improve this answer








              New contributor



              Tvde1 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.









              These files should not be checked in because the data to generate them is already present. You do not want to store data twice (DRY).



              If you have an CI system, you could perhaps make that build the docs and store them for that build/publish it to a web server.







              share|improve this answer








              New contributor



              Tvde1 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.








              share|improve this answer



              share|improve this answer






              New contributor



              Tvde1 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.








              answered May 13 at 8:55









              Tvde1Tvde1

              2514




              2514




              New contributor



              Tvde1 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.




              New contributor




              Tvde1 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.























                  4














                  One advantage of having them in some repository (either the same or a different one, preferably automatically generated) is that then you can see all the changes to the documentation. Sometimes those diffs are easier to read than the diffs to the source code (specifically if you only care about specification changes, not implementation one).



                  But in most cases having them in source control is not needed, as the other answers explained.






                  share|improve this answer


















                  • 1





                    That would pretty much require a pre-commit hook in each and every repo that is used to create commits. Because if the documentation generation process is not fully automated, you will get commits that have the documentation out-of-sync with the code. And those broken commits will hurt understandability more than uncommitted documentation.

                    – cmaster
                    May 14 at 11:10






                  • 1





                    This doesn't have to be at the commit stage. It could easily be a downstream/CI/Jenkins job to publish them every time they are deemed worthy of storage. This may well be each commit, but the decision should be decoupled in the absence of a good reason. Or at least that's the way I see it.

                    – ANone
                    May 14 at 13:57















                  4














                  One advantage of having them in some repository (either the same or a different one, preferably automatically generated) is that then you can see all the changes to the documentation. Sometimes those diffs are easier to read than the diffs to the source code (specifically if you only care about specification changes, not implementation one).



                  But in most cases having them in source control is not needed, as the other answers explained.






                  share|improve this answer


















                  • 1





                    That would pretty much require a pre-commit hook in each and every repo that is used to create commits. Because if the documentation generation process is not fully automated, you will get commits that have the documentation out-of-sync with the code. And those broken commits will hurt understandability more than uncommitted documentation.

                    – cmaster
                    May 14 at 11:10






                  • 1





                    This doesn't have to be at the commit stage. It could easily be a downstream/CI/Jenkins job to publish them every time they are deemed worthy of storage. This may well be each commit, but the decision should be decoupled in the absence of a good reason. Or at least that's the way I see it.

                    – ANone
                    May 14 at 13:57













                  4












                  4








                  4







                  One advantage of having them in some repository (either the same or a different one, preferably automatically generated) is that then you can see all the changes to the documentation. Sometimes those diffs are easier to read than the diffs to the source code (specifically if you only care about specification changes, not implementation one).



                  But in most cases having them in source control is not needed, as the other answers explained.






                  share|improve this answer













                  One advantage of having them in some repository (either the same or a different one, preferably automatically generated) is that then you can see all the changes to the documentation. Sometimes those diffs are easier to read than the diffs to the source code (specifically if you only care about specification changes, not implementation one).



                  But in most cases having them in source control is not needed, as the other answers explained.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered May 13 at 22:47









                  Paŭlo EbermannPaŭlo Ebermann

                  793411




                  793411







                  • 1





                    That would pretty much require a pre-commit hook in each and every repo that is used to create commits. Because if the documentation generation process is not fully automated, you will get commits that have the documentation out-of-sync with the code. And those broken commits will hurt understandability more than uncommitted documentation.

                    – cmaster
                    May 14 at 11:10






                  • 1





                    This doesn't have to be at the commit stage. It could easily be a downstream/CI/Jenkins job to publish them every time they are deemed worthy of storage. This may well be each commit, but the decision should be decoupled in the absence of a good reason. Or at least that's the way I see it.

                    – ANone
                    May 14 at 13:57












                  • 1





                    That would pretty much require a pre-commit hook in each and every repo that is used to create commits. Because if the documentation generation process is not fully automated, you will get commits that have the documentation out-of-sync with the code. And those broken commits will hurt understandability more than uncommitted documentation.

                    – cmaster
                    May 14 at 11:10






                  • 1





                    This doesn't have to be at the commit stage. It could easily be a downstream/CI/Jenkins job to publish them every time they are deemed worthy of storage. This may well be each commit, but the decision should be decoupled in the absence of a good reason. Or at least that's the way I see it.

                    – ANone
                    May 14 at 13:57







                  1




                  1





                  That would pretty much require a pre-commit hook in each and every repo that is used to create commits. Because if the documentation generation process is not fully automated, you will get commits that have the documentation out-of-sync with the code. And those broken commits will hurt understandability more than uncommitted documentation.

                  – cmaster
                  May 14 at 11:10





                  That would pretty much require a pre-commit hook in each and every repo that is used to create commits. Because if the documentation generation process is not fully automated, you will get commits that have the documentation out-of-sync with the code. And those broken commits will hurt understandability more than uncommitted documentation.

                  – cmaster
                  May 14 at 11:10




                  1




                  1





                  This doesn't have to be at the commit stage. It could easily be a downstream/CI/Jenkins job to publish them every time they are deemed worthy of storage. This may well be each commit, but the decision should be decoupled in the absence of a good reason. Or at least that's the way I see it.

                  – ANone
                  May 14 at 13:57





                  This doesn't have to be at the commit stage. It could easily be a downstream/CI/Jenkins job to publish them every time they are deemed worthy of storage. This may well be each commit, but the decision should be decoupled in the absence of a good reason. Or at least that's the way I see it.

                  – ANone
                  May 14 at 13:57











                  3














                  Ignored. You'll want to have the repo's users be able to rebuild them anyway, and it removes the complexity of being sure the doc's are always in sync. There's no reason not to have the built artifacts bundled up in one place if you want to have everything in one place and not have to build anything. However source repos are not really a good place to do this though as complexity there hurts more than most places.






                  share|improve this answer





























                    3














                    Ignored. You'll want to have the repo's users be able to rebuild them anyway, and it removes the complexity of being sure the doc's are always in sync. There's no reason not to have the built artifacts bundled up in one place if you want to have everything in one place and not have to build anything. However source repos are not really a good place to do this though as complexity there hurts more than most places.






                    share|improve this answer



























                      3












                      3








                      3







                      Ignored. You'll want to have the repo's users be able to rebuild them anyway, and it removes the complexity of being sure the doc's are always in sync. There's no reason not to have the built artifacts bundled up in one place if you want to have everything in one place and not have to build anything. However source repos are not really a good place to do this though as complexity there hurts more than most places.






                      share|improve this answer















                      Ignored. You'll want to have the repo's users be able to rebuild them anyway, and it removes the complexity of being sure the doc's are always in sync. There's no reason not to have the built artifacts bundled up in one place if you want to have everything in one place and not have to build anything. However source repos are not really a good place to do this though as complexity there hurts more than most places.







                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      edited May 14 at 13:52

























                      answered May 13 at 14:01









                      ANoneANone

                      30115




                      30115





















                          2














                          It depends on your deployment process. But committing generated files into a repository is an exception and should be avoided, if possible. If you can answer both of the following questions with Yes, checking in your docs might be a valid option:



                          • Are the docs a requirement for production?

                          • Does your deployment system lack the necessary tools to build the docs?

                          If these conditions are true, you are probably deploying with a legacy system or a system with special security constrains. As an alternative, you could commit the generated files into a release branch and keep the master branch clean.






                          share|improve this answer




















                          • 1





                            Committing generated files into a release branch doesn't work in every situation, but there are a number, especially with things like static web sites built from markdown, where this is an excellent solution. I do it often enough that I built a special tool to easily generate such commits as part of the build process.

                            – Curt J. Sampson
                            May 13 at 15:16















                          2














                          It depends on your deployment process. But committing generated files into a repository is an exception and should be avoided, if possible. If you can answer both of the following questions with Yes, checking in your docs might be a valid option:



                          • Are the docs a requirement for production?

                          • Does your deployment system lack the necessary tools to build the docs?

                          If these conditions are true, you are probably deploying with a legacy system or a system with special security constrains. As an alternative, you could commit the generated files into a release branch and keep the master branch clean.






                          share|improve this answer




















                          • 1





                            Committing generated files into a release branch doesn't work in every situation, but there are a number, especially with things like static web sites built from markdown, where this is an excellent solution. I do it often enough that I built a special tool to easily generate such commits as part of the build process.

                            – Curt J. Sampson
                            May 13 at 15:16













                          2












                          2








                          2







                          It depends on your deployment process. But committing generated files into a repository is an exception and should be avoided, if possible. If you can answer both of the following questions with Yes, checking in your docs might be a valid option:



                          • Are the docs a requirement for production?

                          • Does your deployment system lack the necessary tools to build the docs?

                          If these conditions are true, you are probably deploying with a legacy system or a system with special security constrains. As an alternative, you could commit the generated files into a release branch and keep the master branch clean.






                          share|improve this answer















                          It depends on your deployment process. But committing generated files into a repository is an exception and should be avoided, if possible. If you can answer both of the following questions with Yes, checking in your docs might be a valid option:



                          • Are the docs a requirement for production?

                          • Does your deployment system lack the necessary tools to build the docs?

                          If these conditions are true, you are probably deploying with a legacy system or a system with special security constrains. As an alternative, you could commit the generated files into a release branch and keep the master branch clean.







                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited May 13 at 14:52









                          TRiG

                          94011021




                          94011021










                          answered May 13 at 9:53









                          TrendfischerTrendfischer

                          1976




                          1976







                          • 1





                            Committing generated files into a release branch doesn't work in every situation, but there are a number, especially with things like static web sites built from markdown, where this is an excellent solution. I do it often enough that I built a special tool to easily generate such commits as part of the build process.

                            – Curt J. Sampson
                            May 13 at 15:16












                          • 1





                            Committing generated files into a release branch doesn't work in every situation, but there are a number, especially with things like static web sites built from markdown, where this is an excellent solution. I do it often enough that I built a special tool to easily generate such commits as part of the build process.

                            – Curt J. Sampson
                            May 13 at 15:16







                          1




                          1





                          Committing generated files into a release branch doesn't work in every situation, but there are a number, especially with things like static web sites built from markdown, where this is an excellent solution. I do it often enough that I built a special tool to easily generate such commits as part of the build process.

                          – Curt J. Sampson
                          May 13 at 15:16





                          Committing generated files into a release branch doesn't work in every situation, but there are a number, especially with things like static web sites built from markdown, where this is an excellent solution. I do it often enough that I built a special tool to easily generate such commits as part of the build process.

                          – Curt J. Sampson
                          May 13 at 15:16











                          2














                          It depends. If those docs:



                          • Needs to be part of the repository, like the readme.md, then it's preferred to keep them in the git repo. Because it can be tricky to handle those situations on a automated way.


                          • If you don't have an automated way to build and update them, like a CI system, and it is intended to be seen for the general audience, then is preferred to keep them in the git repo.


                          • Takes A LOT of time to build them, then is justifiable to keep them.


                          • Are intended to be seen for the general audience (like the user manual), and it takes a considerable time to build, while your previous docs becomes inaccessible (offline), then is justifiable to keep them in the git repo.


                          • Are intended to be seen for the general audience and has to show a history of its changes/evolution, it could be easier to keep previous doc versions commited and build/commit the new one linked to the previous. Justifiable.


                          • Has an specific accepted reason for all the team to be commited, then is justifiable to keep them in the git repo. (We don't know your context, you & your team do)


                          In any other scenario, it should be safely ignored.



                          However, if its justifiable to keep them in the git repo, could be a sign of another bigger issue that your team is facing. (Not having a CI system or similar, horrible performance issues, facing downtime while building, etc.)






                          share|improve this answer








                          New contributor



                          throawableAccount2892391 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.























                            2














                            It depends. If those docs:



                            • Needs to be part of the repository, like the readme.md, then it's preferred to keep them in the git repo. Because it can be tricky to handle those situations on a automated way.


                            • If you don't have an automated way to build and update them, like a CI system, and it is intended to be seen for the general audience, then is preferred to keep them in the git repo.


                            • Takes A LOT of time to build them, then is justifiable to keep them.


                            • Are intended to be seen for the general audience (like the user manual), and it takes a considerable time to build, while your previous docs becomes inaccessible (offline), then is justifiable to keep them in the git repo.


                            • Are intended to be seen for the general audience and has to show a history of its changes/evolution, it could be easier to keep previous doc versions commited and build/commit the new one linked to the previous. Justifiable.


                            • Has an specific accepted reason for all the team to be commited, then is justifiable to keep them in the git repo. (We don't know your context, you & your team do)


                            In any other scenario, it should be safely ignored.



                            However, if its justifiable to keep them in the git repo, could be a sign of another bigger issue that your team is facing. (Not having a CI system or similar, horrible performance issues, facing downtime while building, etc.)






                            share|improve this answer








                            New contributor



                            throawableAccount2892391 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.





















                              2












                              2








                              2







                              It depends. If those docs:



                              • Needs to be part of the repository, like the readme.md, then it's preferred to keep them in the git repo. Because it can be tricky to handle those situations on a automated way.


                              • If you don't have an automated way to build and update them, like a CI system, and it is intended to be seen for the general audience, then is preferred to keep them in the git repo.


                              • Takes A LOT of time to build them, then is justifiable to keep them.


                              • Are intended to be seen for the general audience (like the user manual), and it takes a considerable time to build, while your previous docs becomes inaccessible (offline), then is justifiable to keep them in the git repo.


                              • Are intended to be seen for the general audience and has to show a history of its changes/evolution, it could be easier to keep previous doc versions commited and build/commit the new one linked to the previous. Justifiable.


                              • Has an specific accepted reason for all the team to be commited, then is justifiable to keep them in the git repo. (We don't know your context, you & your team do)


                              In any other scenario, it should be safely ignored.



                              However, if its justifiable to keep them in the git repo, could be a sign of another bigger issue that your team is facing. (Not having a CI system or similar, horrible performance issues, facing downtime while building, etc.)






                              share|improve this answer








                              New contributor



                              throawableAccount2892391 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                              Check out our Code of Conduct.









                              It depends. If those docs:



                              • Needs to be part of the repository, like the readme.md, then it's preferred to keep them in the git repo. Because it can be tricky to handle those situations on a automated way.


                              • If you don't have an automated way to build and update them, like a CI system, and it is intended to be seen for the general audience, then is preferred to keep them in the git repo.


                              • Takes A LOT of time to build them, then is justifiable to keep them.


                              • Are intended to be seen for the general audience (like the user manual), and it takes a considerable time to build, while your previous docs becomes inaccessible (offline), then is justifiable to keep them in the git repo.


                              • Are intended to be seen for the general audience and has to show a history of its changes/evolution, it could be easier to keep previous doc versions commited and build/commit the new one linked to the previous. Justifiable.


                              • Has an specific accepted reason for all the team to be commited, then is justifiable to keep them in the git repo. (We don't know your context, you & your team do)


                              In any other scenario, it should be safely ignored.



                              However, if its justifiable to keep them in the git repo, could be a sign of another bigger issue that your team is facing. (Not having a CI system or similar, horrible performance issues, facing downtime while building, etc.)







                              share|improve this answer








                              New contributor



                              throawableAccount2892391 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                              Check out our Code of Conduct.








                              share|improve this answer



                              share|improve this answer






                              New contributor



                              throawableAccount2892391 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                              Check out our Code of Conduct.








                              answered May 13 at 16:26









                              throawableAccount2892391throawableAccount2892391

                              291




                              291




                              New contributor



                              throawableAccount2892391 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                              Check out our Code of Conduct.




                              New contributor




                              throawableAccount2892391 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                              Check out our Code of Conduct.























                                  1














                                  As a principle of version control, only "primary objects" should be stored in a repository, not "derived objects".



                                  There are exceptions to the rule: namely, when there are consumers of the repository who require the derived objects, and are reasonably expected not to have the required tools to generate them. Other considerations weigh in, like is the amount of material unwieldy? (Would it be better for the project just get all the users to have the tools?)



                                  An extreme example of this is a project that implements a rare programming language whose compiler is written in that language itself (well known examples include Ocaml or Haskell). If only the compiler source code is in the repository, nobody can build it; they don't have a compiled version of the compiler that they can run on the virtual machine, so that they can compile that compiler's source code. Moreover, the latest features of the language are immediately used in the compiler source itself, so that close to the latest version of the compiler is always required to build it: a month old compiler executable obtained separately will not compile the current code because the code uses language features that didn't exist a month ago. In this situation, the compiled version of the compiler almost certainly has to be checked into the repository and kept up-to-date.






                                  share|improve this answer





























                                    1














                                    As a principle of version control, only "primary objects" should be stored in a repository, not "derived objects".



                                    There are exceptions to the rule: namely, when there are consumers of the repository who require the derived objects, and are reasonably expected not to have the required tools to generate them. Other considerations weigh in, like is the amount of material unwieldy? (Would it be better for the project just get all the users to have the tools?)



                                    An extreme example of this is a project that implements a rare programming language whose compiler is written in that language itself (well known examples include Ocaml or Haskell). If only the compiler source code is in the repository, nobody can build it; they don't have a compiled version of the compiler that they can run on the virtual machine, so that they can compile that compiler's source code. Moreover, the latest features of the language are immediately used in the compiler source itself, so that close to the latest version of the compiler is always required to build it: a month old compiler executable obtained separately will not compile the current code because the code uses language features that didn't exist a month ago. In this situation, the compiled version of the compiler almost certainly has to be checked into the repository and kept up-to-date.






                                    share|improve this answer



























                                      1












                                      1








                                      1







                                      As a principle of version control, only "primary objects" should be stored in a repository, not "derived objects".



                                      There are exceptions to the rule: namely, when there are consumers of the repository who require the derived objects, and are reasonably expected not to have the required tools to generate them. Other considerations weigh in, like is the amount of material unwieldy? (Would it be better for the project just get all the users to have the tools?)



                                      An extreme example of this is a project that implements a rare programming language whose compiler is written in that language itself (well known examples include Ocaml or Haskell). If only the compiler source code is in the repository, nobody can build it; they don't have a compiled version of the compiler that they can run on the virtual machine, so that they can compile that compiler's source code. Moreover, the latest features of the language are immediately used in the compiler source itself, so that close to the latest version of the compiler is always required to build it: a month old compiler executable obtained separately will not compile the current code because the code uses language features that didn't exist a month ago. In this situation, the compiled version of the compiler almost certainly has to be checked into the repository and kept up-to-date.






                                      share|improve this answer















                                      As a principle of version control, only "primary objects" should be stored in a repository, not "derived objects".



                                      There are exceptions to the rule: namely, when there are consumers of the repository who require the derived objects, and are reasonably expected not to have the required tools to generate them. Other considerations weigh in, like is the amount of material unwieldy? (Would it be better for the project just get all the users to have the tools?)



                                      An extreme example of this is a project that implements a rare programming language whose compiler is written in that language itself (well known examples include Ocaml or Haskell). If only the compiler source code is in the repository, nobody can build it; they don't have a compiled version of the compiler that they can run on the virtual machine, so that they can compile that compiler's source code. Moreover, the latest features of the language are immediately used in the compiler source itself, so that close to the latest version of the compiler is always required to build it: a month old compiler executable obtained separately will not compile the current code because the code uses language features that didn't exist a month ago. In this situation, the compiled version of the compiler almost certainly has to be checked into the repository and kept up-to-date.







                                      share|improve this answer














                                      share|improve this answer



                                      share|improve this answer








                                      edited 2 days ago

























                                      answered May 14 at 21:20









                                      KazKaz

                                      2,6961326




                                      2,6961326















                                          protected by gnat May 14 at 6:24



                                          Thank you for your interest in this question.
                                          Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).



                                          Would you like to answer one of these unanswered questions instead?



                                          Popular posts from this blog

                                          Grendel Contents Story Scholarship Depictions Notes References Navigation menu10.1093/notesj/gjn112Berserkeree

                                          Area configuration aggregation error after install Porto themeMagento 2.1 CE Installed but front/backend not loading/workingCSS not loading on page within Magento 2 pageCannot install module in Magento 2no commands defined in the “setup” namespace. in Magento2Magento 2: Static files are present but shows 404Why do i have to always run the commands to clean cache in Magento 2.1.8?Failure reason: 'Unable to unserialize value.'Error 500 after magento migrationIn production mode the site does not loadMagento 2 : Error 500 after installing

                                          Middle Expansion Olielle Resaix Definition: Uttering songs of triumph shouting with joy triumphant exulting Sejunction Journal 붙다 달 고급 품목 외출 The stretch trades the screeching tin. Definition: The act of speaking with a drawl a drawl Cough Sand Definition: An uproar a quarrel a noisy outbreak Shake Iron Publicize Horse House Baby 사과 Resaix Flaggy Jelly Temporary Unequaled Puppet A drop in the bucket Shrew 성격 회원 성질 미팅 The burn frames the tacky quality. Materialistic The smoke reduces the way. Yammoe Nondescript Cheek 얼굴 배 약하다 날리다 타다 The illegal country shows the iron. Help Rule Drearien Smoke Teaching Meaty Wasp Abraham Lincoln Jaws 진심 수리하다 Size Cork Idea Convert Think Lark John Lennon 거울 청소 군 추천하다 아이스크림