{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,2]],"date-time":"2026-03-02T21:19:10Z","timestamp":1772486350350,"version":"3.50.1"},"reference-count":24,"publisher":"MDPI AG","issue":"1","license":[{"start":{"date-parts":[[2025,1,6]],"date-time":"2025-01-06T00:00:00Z","timestamp":1736121600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Software"],"abstract":"<jats:p>Version Control Systems (VCSs) are used by development teams to manage the collaborative evolution of source code, and there are several widely used industry standard VCSs. In addition to the code files themselves, metadata about the changes made are also recorded by the VCS, and this is often used with analytical tools to provide insight into the software development, a process known as Mining Software Repositories (MSRs). MSR tools are numerous but most often limited to one VCS format and, therefore, restricted in their scope of application in addition to the initial effort required to implement parsers for verbose textual VCS output. To address this limitation, a domain-specific language (DSL), the Common Language of Software Evolution in Repositories (CLOSER), was defined that abstracted away from specific implementations while isomorphically mapping to the data model of all major VCS formats. Using CLOSER directly as a data model or as an intermediate stage in a conversion analysis approach could make use of all major repositories rather than be limited to a single format. The initial barrier to adoption for MSR approaches was also lowered as CLOSER output is a concise, easily machine-readable format. CLOSER was implemented in tooling and tested against a number of common expected use cases, including a direct use in MSR analysis, proving the fidelity of the model and implementation. CLOSER was also successfully used to convert raw output logs from one VCS format to another, offering the possibility that legacy analysis tools could be used on other technologies without any changes being required. In addition to the advantages of a generic model opening all major VCS formats for analysis parsing, the CLOSER format was found to require less code and complete parsing faster than traditional VCS logging outputs.<\/jats:p>","DOI":"10.3390\/software4010001","type":"journal-article","created":{"date-parts":[[2025,1,6]],"date-time":"2025-01-06T04:37:10Z","timestamp":1736138230000},"page":"1","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["A Common Language of Software Evolution in Repositories (CLOSER)"],"prefix":"10.3390","volume":"4","author":[{"given":"Jordan","family":"Garrity","sequence":"first","affiliation":[{"name":"iManage, Belfast BT3 9DT, UK"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1088-4749","authenticated-orcid":false,"given":"David","family":"Cutting","sequence":"additional","affiliation":[{"name":"School of Electronics, Electrical Engineering and Computer Science, Queen\u2019s University Belfast, Belfast BT7 1NN, UK"}]}],"member":"1968","published-online":{"date-parts":[[2025,1,6]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","first-page":"52","DOI":"10.1109\/MS.2010.39","article-title":"Collaboration Tools for Global Software Engineering","volume":"27","author":"Lanubile","year":"2010","journal-title":"IEEE Softw."},{"key":"ref_2","doi-asserted-by":"crossref","unstructured":"Hassan, A.E. (October, January 28). The road ahead for Mining Software Repositories. Proceedings of the 2008 Frontiers of Software Maintenance, Beijing, China.","DOI":"10.1109\/FOSM.2008.4659248"},{"key":"ref_3","doi-asserted-by":"crossref","unstructured":"Dyer, R., Nguyen, H.A., Rajan, H., and Nguyen, T.N. (2013, January 18\u201326). Boa: A Language and Infrastructure for Analyzing Ultra-Large-Scale Software Repositories. Proceedings of the 2013 International Conference on Software Engineering, ICSE\u201913, San Francisco, CA, USA.","DOI":"10.1109\/ICSE.2013.6606588"},{"key":"ref_4","doi-asserted-by":"crossref","first-page":"75","DOI":"10.1007\/s10664-011-9181-9","article-title":"On the reproducibility of empirical software engineering studies based on data retrieved from development repositories","volume":"17","author":"Robles","year":"2012","journal-title":"Empir. Softw. Eng."},{"key":"ref_5","unstructured":"Fowler, M., and Parsons, R. (2010). Domain-Specific Languages, Pearson Education. [1st ed.]."},{"key":"ref_6","unstructured":"Scheidgen, M., Smidt, M., and Fischer, J. Creating and Analyzing Source Code Repository Models. Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development."},{"key":"ref_7","doi-asserted-by":"crossref","first-page":"108","DOI":"10.1109\/MS.2005.140","article-title":"Version control systems","volume":"22","author":"Spinellis","year":"2005","journal-title":"IEEE Softw."},{"key":"ref_8","doi-asserted-by":"crossref","first-page":"77","DOI":"10.1002\/smr.344","article-title":"A survey and taxonomy of approaches for mining software repositories in the context of software evolution","volume":"19","author":"Kagdi","year":"2007","journal-title":"J. Softw. Maint. Evol. Res. Pract."},{"key":"ref_9","unstructured":"Trautsch, A., Trautsch, F., Herbold, S., Ledel, B., and Grabowski, J. (July, January 27). The smartshark ecosystem for software repository mining. Proceedings of the ACM\/IEEE 42nd International Conference on Software Engineering: Companion Proceedings, Seoul, Republic of Korea."},{"key":"ref_10","doi-asserted-by":"crossref","first-page":"446","DOI":"10.1109\/TSE.2005.71","article-title":"Hipikat: A project memory for software development","volume":"31","author":"Cubranic","year":"2005","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_11","unstructured":"Hassan, A.E., and Holt, R.C. (2004, January 26). Using development history sticky notes to understand software architecture. Proceedings of the 12th IEEE International Workshop on Program Comprehension, Bari, Italy."},{"key":"ref_12","doi-asserted-by":"crossref","first-page":"653","DOI":"10.1109\/32.859533","article-title":"Predicting fault incidence using software change history","volume":"26","author":"Graves","year":"2000","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_13","doi-asserted-by":"crossref","unstructured":"Herraiz, I., Gonzalez-Barahona, J.M., and Robles, G. (2007, January 20\u201326). Towards a Theoretical Model for Software Growth. Proceedings of the Fourth International Workshop on Mining Software Repositories (MSR\u201907:ICSE Workshops 2007), Minneapolis, MN, USA.","DOI":"10.1109\/MSR.2007.31"},{"key":"ref_14","doi-asserted-by":"crossref","first-page":"57","DOI":"10.1145\/502059.502041","article-title":"Bugs as deviant behavior: A general approach to inferring errors in systems code","volume":"35","author":"Engler","year":"2001","journal-title":"ACM SIGOPS Oper. Syst. Rev."},{"key":"ref_15","doi-asserted-by":"crossref","first-page":"306","DOI":"10.1145\/1095430.1081755","article-title":"PR-Miner: Automatically extracting implicit programming rules and detecting violations in large software code","volume":"30","author":"Li","year":"2005","journal-title":"ACM SIGSOFT Softw. Eng. Notes"},{"key":"ref_16","doi-asserted-by":"crossref","unstructured":"Hassan, A.E. (2006, January 24\u201327). Mining Software Repositories to Assist Developers and Support Managers. Proceedings of the 2006 22nd IEEE International Conference on Software Maintenance, Philadelphia, PA, USA.","DOI":"10.1109\/ICSM.2006.38"},{"key":"ref_17","first-page":"2","article-title":"Preprocessing CVS Data for Fine-Grained Analysis","volume":"4","author":"Zimmermann","year":"2004","journal-title":"Proc. MSR"},{"key":"ref_18","doi-asserted-by":"crossref","unstructured":"Allamanis, M., and Sutton, C. (2013, January 18\u201319). Mining source code repositories at massive scale using language modeling. Proceedings of the 2013 10th Working Conference on Mining Software Repositories (MSR), San Francisco, CA, USA.","DOI":"10.1109\/MSR.2013.6624029"},{"key":"ref_19","unstructured":"(2024, March 28). Stack Overflow. Available online: https:\/\/insights.stackoverflow.com\/survey\/2015."},{"key":"ref_20","unstructured":"(2024, April 19). Git Documentation. Available online: https:\/\/git-scm.com\/doc."},{"key":"ref_21","unstructured":"Fitzpatrick, B.W., Pilato, C.M., and Collins-Sussman, B. (2004). Version Control with Subversion, O\u2019Reilly Media."},{"key":"ref_22","unstructured":"O\u2019Sullivan, B. (2009). Mercurial: The Definitive Guide: The Definitive Guide, O\u2019Reilly Media, Inc."},{"key":"ref_23","unstructured":"Cutting, D. (2016). Enhancing Legacy Software System Analysis by Combining Behavioural and Semantic Information Sources. [Ph.D. Thesis, University of East Anglia]."},{"key":"ref_24","unstructured":"Garrity, J. (2024, October 12). CLOSER Source Code. Available online: https:\/\/github.com\/closer-evolution\/closer."}],"container-title":["Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/2674-113X\/4\/1\/1\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,8]],"date-time":"2025-10-08T10:23:26Z","timestamp":1759919006000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/2674-113X\/4\/1\/1"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,1,6]]},"references-count":24,"journal-issue":{"issue":"1","published-online":{"date-parts":[[2025,3]]}},"alternative-id":["software4010001"],"URL":"https:\/\/doi.org\/10.3390\/software4010001","relation":{},"ISSN":["2674-113X"],"issn-type":[{"value":"2674-113X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,1,6]]}}}