top of page

Version Control Systems (VCS) a trend in Computational Hydrological Modeling

1. Introduction

When it comes to software development, Version Control Systems (VCS) are the backbone of managing projects with multiple developers or extensive lines of code [1]. However, did you know that these tools are now trendy in the field of computational hydrological modelling? In this blog, we will explore what VCS is and how it can significantly benefit hydrology experts, even those who aren't tech-expert


2. What is VCS and its Role in Hydrological Modeling?


Version Control Systems are online and local platforms designed to efficiently manage changes in the source code of any software over time [1][10. Although primarily used by software developers, VCS has found current trend popularity in the hydrological community. These powerful tools can significantly improve the development and use of computational hydrological models.


3. Meet Git - The Most Popular VCS


The most common and most popular VCS used in hydrology is Git [1][2]. Born during the development of the Linux operating system, Linus Torvalds created Git in 2005 to coordinate the Linux kernel's development [1]. Today, Git dominates the VCS landscape for hydrological projects. Its platform GitHub is the home of around 500 projects under the category of "Hydrology" [4]. Notable examples include Pysheds and Simple-Hydrology, while the VIC model [5][6] ranks in the top 10 most popular repositories under the hydrology category.


4. How the VCS works?


Picture source codes as a compilation of several documents written in a programming language like Python or C++. Imagine you have a brilliant idea for contributing to this code—maybe adding comments, making modifications, or introducing new functions. That's where VCS comes into play, offering two paradigms for managing these contributions.

The traditional centralized VCS model hosts the software code (the script containing the hydrological model's source code) on a single central server. As a developer, you can access the latest version locally [3]. Still, there's a catch: you need constant network access and permissions to commit your contributions.


However, with the advent of distributed development in the past decade[8] [9][10, VCS has embraced new frontiers, fitting perfectly with the rise of remote work trends and the open-science movement. In this approach, you, the developer, have your own complete copy of the "source code document" (the hydrological model's source code) stored on your local computer[8]. This newfound independence enables you to work autonomously, making changes locally (commits) and later sharing them with other developers by pushing them to the VCS repositories. Essentially, you have a local copy of the source code document, contribute directly on your computer, and then submit those contributions to the central repository, making them instantly available to every developer collaborating on the hydrological model source code document.


5. Advantages of Using Git in Hydrology


5.1 Streamlined Development Workflow


With its decentralized approach, VCS transforms hydrological model development into a clear and collaborative workflow, enabling multiple contributors to modify the code simultaneously. Imagine you're working on a study in an African basin, needing to adjust how the model handles evapotranspiration. With VCS, you can make these changes locally, test the results, and submit your contributions without worry, as other researchers worldwide can work on different aspects simultaneously. The modular design of VCS resolves code conflicts effortlessly, fostering seamless collaboration among researchers and model developers globally [1].


5.2 Enhanced Reusability and Adaptability

Code reuse and adaptability, a powerful concept in software development, extends its benefits to hydrological modelling through VCS's collaborative approach. To address specific water management challenges, you can reuse and adapt hydrological tools and computational models locally. For instance, someone in Ghana can easily adjust a model created in Chile, knowing that older code versions remain securely stored. But independent researchers in Nepal can also use several pieces of code from diverse models to build their own model. This approach encourages the exploration of various workflows and promotes collaborative work [7].


5.3 Boosting Reproducibility in Hydrological Studies


Collaboration facilitated by VCS ensures seamless sharing of data, files, and documents, empowering hydrological studies to achieve reproducibility [3]. For example, your students can copy the repository of a modelling approach from a paper, run it, and learn from the results reported by researchers in their articles. This verification process enhances the transparency and accessibility of hydrological research, building trust in the accuracy and reliability of findings [7].


6. Conclusion


Version Control Systems (VCS), with Git leading the way [1][2][3], have revolutionized computational hydrological modelling. By facilitating diverse workflows, improving reusability, and fostering collaboration, VCS propels innovation in the hydrology domain. As more hydrologists embrace this approach, we can anticipate remarkable advancements in hydrological modelling and water management, positively impacting society and the environment. Let's harness the power of VCS for open collaboration in hydrology!



References:

[1] Zolkifli, N. N., Ngah, A., & Deraman, A. (2018). Version Control System: A Review. Procedia Computer Science, 135, 408–415. https://doi.org/10.1016/j.procs.2018.08.191


[2]Atlassian. What is Git | Atlassian Git Tutorial. Atlassian. Retrieved July 24, 2023, from https://www.atlassian.com/git/tutorials/what-is-git


[3]What is Git and Why Should You Use It? Free Intro to Git Guide. (2022, December 19). https://www.nobledesktop.com/learn/git/what-is-git


[4]Build software better, together. (n.d.). GitHub. Retrieved July 24, 2023, from https://github.com


[5]Liang, X., D. P. Lettenmaier, E. F. Wood, and S. J. Burges (1994), A simple hydrologically based model of land surface water and energy fluxes for general circulation models, J. Geophys. Res., 99(D7), 14415–14428, doi:10.1029/94JD00483.


[6]Hamman, J. J., Nijssen, B., Bohn, T. J., Gergel, D. R., & Mao, Y. (2018). The Variable Infiltration Capacity model version 5 (VIC-5): Infrastructure improvements for new applications and reproducibility. Geoscientific Model Development, 11(8), 3481–3496. https://doi.org/10.5194/gmd-11-3481-2018


[7]Hutton, C., Wagener, T., Freer, J., Han, D., Duffy, C., & Arheimer, B. (2017). Reply to comment by Añel on “Most computational hydrology is not reproducible, so is it really science?” Water Resources Research, 53(3), 2575–2576. https://doi.org/10.1002/2017WR020480


[8]Brindescu, C., Codoban, M., Shmarkatiuk, S., & Dig, D. (2014). How do centralized and distributed version control systems impact software changes? Proceedings of the 36th International Conference on Software Engineering, 322–333. https://doi.org/10.1145/2568225.2568322


[9]de Alwis, B., & Sillito, J. (2009). Why are software projects moving from centralized to decentralized version control systems? 2009 ICSE Workshop on Cooperative and Human Aspects on Software Engineering, 36–39. https://doi.org/10.1109/CHASE.2009.5071408


[10]Ruparelia, N. B. (2010). The history of version control. ACM SIGSOFT Software Engineering Notes, 35(1), 5–9. https://doi.org/10.1145/1668862.1668876


Comments


bottom of page