Chakracore: Why the software history was not kept?

Created on 15 Jul 2016  路  3Comments  路  Source: chakra-core/ChakraCore

Hi there,

I'm a researcher studying software evolution. As part of my current research, I'm studying the implications of open-sourcing a proprietary software, for instance, if the project succeed in attracting newcomers. However, I observed that some projects, like _ChakraCore_, deleted their software history when transitioning to open-source.

https://github.com/Microsoft/ChakraCore/commit/5d8406741f8c60e7bf0a06e4fb71a5cf7a6458dc

Knowing that software history is indispensable for developers (e.g., developers need to refer to history several times a day), I would like to ask ChakraCore developers the following four brief questions:

  1. Why did you decide to not keep the software history?
  2. Do the core developers faced any kind of problems, when trying to refer to the old history? If so, how did they solve these problems?
  3. Do the newcomers faced any kind of problems, when trying to refer to the old history? If so, how did they solve these problems?
  4. How does the lack of history impacted on software evolution? Does it placed any burden in understanding and evolving the software?

Thanks in advance for your collaboration,

Gustavo Pinto, PhD
http://www.gustavopinto.org

Question

Most helpful comment

Hi Gustavo,
Interesting research you鈥檙e doing! Hopefully the following will help you.

  1. Why did you decide to not keep the software history?
    The ChakraCore history could not be easily brought from the proprietary source control system in which the sources resided for almost all of their existence. We moved to Git a couple of months before opening up the repo. During that time, we did extensive cleanup of the sources to make them ready to share. We cleaned out embarrassing or inappropriate comments, brought the code up to Microsoft OSS standards, and generally improved code hygiene, robustness, and security. We removed that bit of history because the point of those changes were to remove things that we explicitly didn鈥檛 want to share.
  2. Do the core developers faced any kind of problems, when trying to refer to the old history? If so, how did they solve these problems?
    The bulk of the history of the sources is still available to the project owners, and we do indeed use that history in some circumstances, such as performing root cause analysis of bugs.
  3. Do the newcomers faced any kind of problems, when trying to refer to the old history? If so, how did they solve these problems?
    This has not been a problem that newcomers have raised.
  4. How does the lack of history impacted on software evolution? Does it placed any burden in understanding and evolving the software?
    As I mentioned, when performing RCA on issues of interest, like security issues, having the history helps us look for other places in which we may have introduced bugs at the time the root issue was introduced. We don鈥檛 have other sources of documentation that may compensate for lack of history. Not having history would most definitely be limiting and reduce our understanding of why the code looks the way it does today.

Ed

All 3 comments

Hi Gustavo,
Interesting research you鈥檙e doing! Hopefully the following will help you.

  1. Why did you decide to not keep the software history?
    The ChakraCore history could not be easily brought from the proprietary source control system in which the sources resided for almost all of their existence. We moved to Git a couple of months before opening up the repo. During that time, we did extensive cleanup of the sources to make them ready to share. We cleaned out embarrassing or inappropriate comments, brought the code up to Microsoft OSS standards, and generally improved code hygiene, robustness, and security. We removed that bit of history because the point of those changes were to remove things that we explicitly didn鈥檛 want to share.
  2. Do the core developers faced any kind of problems, when trying to refer to the old history? If so, how did they solve these problems?
    The bulk of the history of the sources is still available to the project owners, and we do indeed use that history in some circumstances, such as performing root cause analysis of bugs.
  3. Do the newcomers faced any kind of problems, when trying to refer to the old history? If so, how did they solve these problems?
    This has not been a problem that newcomers have raised.
  4. How does the lack of history impacted on software evolution? Does it placed any burden in understanding and evolving the software?
    As I mentioned, when performing RCA on issues of interest, like security issues, having the history helps us look for other places in which we may have introduced bugs at the time the root issue was introduced. We don鈥檛 have other sources of documentation that may compensate for lack of history. Not having history would most definitely be limiting and reduce our understanding of why the code looks the way it does today.

Ed

Closing question as answered, but feel free to comment if you'd like to discuss further.

Hi @dilijev and @EdMaurer,

thanks once again for answering our research inquiries. We were able to collect 35 responses and we drafted a research paper with the results. The paper was submitted and accepted for the 14th International Conference on Open Source Systems (http://oss2018.org/). You can find the paper here. Hope you enjoy reading the paper!

Thanks again,

Gustavo

Was this page helpful?
0 / 5 - 0 ratings