Topic 4 — Versioning Systems

Version control systems(VCS) are fundamental to managing open-source projects, ensuring collaboration, maintaining project integrity, and tracking contributions(Fig 1). My experience contributing to FreeCodeCamp and p5.js introduced me to practical version control workflows, particularly through Git and GitHub. Before engaging in these contributions, my use of GitHub was primarily for individual projects, such for my assignment project or lecture learning. However, actively working within open-source communities allowed me to understand structured version control practices, including issue tracking, pull requests (PRs), and code review processes, which are essential for maintaining high-quality contributions.

Figure 1:popular distributed version control systems From Greeks for Greeks

In my initial contributions to FreeCodeCamp, I worked locally by cloning the repository, creating a new branch for my translations, making edits, and pushing changes to my personal fork before submitting a pull request to the main repository. This structured workflow ensured that changes were reviewed before merging into the project. However, as I became more comfortable with open-source contributions, I transitioned to using Gitpod, a cloud-based development environment that allowed me to work directly within a browser(Fig 2). Using Gitpod streamlined my workflow by eliminating the need for local setup while still following the same branching and PR submission process.

Fig 2: GitPod work space environment

Both FreeCodeCamp and p5.js utilise GitHub as their primary version control and project management platform, yet their approaches to contribution workflows differ. FreeCodeCamp employs an automated system whereby contributors request tasks via a GitHub Action bot, complete their assigned translations, and submit PRs for review. This structured process streamlines contributions and ensures consistency across translations. In contrast, p5.js adopts a more decentralised approach, allowing contributors to identify issues independently and engage with maintainers prior to commencing work. When I encountered untranslated sections in the p5.js documentation, I created an issue, awaited approval, and was subsequently assigned the task. This experience illustrated the varying ways open-source projects manage collaboration and the differing levels of automation utilised in version control workflows.

While GitHub serves as the dominant platform for version control in open-source projects, some communities rely on different systems tailored to their specific needs. For example, during my coursework, I explored Blender’s contribution system, which operates independently from GitHub. Blender uses its own custom versioning and development platform called “Blender Developer Portal”, which integrates source code management, bug tracking, and contributor collaboration in one ecosystem. Unlike GitHub-based workflows, Blender’s development pipeline is structured through Differential revisions in Phabricator, where contributions are reviewed and discussed before integration. Additionally, its Blender Weblate translation system provides a dedicated interface for managing language localisations, streamlining the process of translating Blender’s interface and documentation (Fig 3). Blender’s reliance on an independent infrastructure highlights how some open-source projects opt for more specialised tools rather than widely used version control platforms like Git. This comparison helped me recognise that different open-source projects tailor their workflows to best fit their governance structures, security requirements, and contributor engagement strategies.

Fig 3: Blender Weblate translation system

Other open-source communities also adopt version control systems beyond GitHub. For example, the Apache Software Foundation frequently utilises Apache Subversion (SVN), a centralised system that enforces strict access control over repository changes, making it suitable for projects requiring structured governance. Meanwhile, Mercurial, another distributed version control system, has been employed in projects like Mozilla due to its efficient handling of large repositories and robust branching capabilities (O’Sullivan, 2009). Some projects integrate Git with GitLab, which offers additional CI/CD (Continuous Integration/Continuous Deployment) tools to automate testing and deployment, thereby streamlining development processes beyond mere source code management (Loeliger & McCullough, 2012). Understanding these various versioning systems highlights how open-source projects select tools that best align with their governance structures, security needs, and development workflows.

Communication in Open-Source Contributions

Beyond version control, effective communication plays a crucial role in maintaining collaboration and efficiency in open-source projects. At FreeCodeCamp, initial discussions and project updates were conducted through its Discord community, where contributors could seek guidance, ask questions, and coordinate efforts. However, after joining the Chinese translation team, I noticed that communication shifted to WeChat. This decision was made to facilitate discussions specifically in Chinese, ensuring that contributors could clarify technical terminology and translation standards without impacting the broader global community on Discord. Using WeChat enabled the Chinese translation team to collaborate more efficiently while keeping FreeCodeCamp’s main communication channels open for all contributors, regardless of language.

In contrast, my contributions to p5.js involved different communication dynamics. Although I joined the p5.js Discord community, I was initially uncertain whom to contact regarding my translation work. Unlike FreeCodeCamp, which had structured communication channels for specific tasks, p5.js relied more on issue tracking and PR comments for collaboration. Consequently, my primary method of engagement was through GitHub issues and comments, where I interacted with maintainers and received feedback. This approach effectively managed structured contributions but lacked the immediacy of real-time communication platforms such as Discord or WeChat.

During my coursework, I also examined Blender’s communication ecosystem, which differs significantly from both FreeCodeCamp and p5.js. Instead of using GitHub or Discord, Blender contributors interact through Blender Chat (powered by Element/Matrix) and the Blender DevTalk forums, where developers and contributors discuss ongoing projects, roadmap updates, and community guidelines (Fig 4a, Fig 4b). This structured discussion system ensures that conversations remain focused and traceable while keeping contributions well documented. The diversity in communication platforms across different open-source projects illustrates how governance structures influence collaboration. While some projects prioritise real-time chat tools for instant feedback, others prefer asynchronous, structured discussions to maintain a clear and organised development process.

Conclusion

While GitHub serves as the backbone for version control and contribution tracking in many open-source projects, alternative versioning systems like Blender’s Developer Portal, Apache Subversion, and Mercurial demonstrate the adaptability of open-source projects to different needs. Additionally, communication tools such as Discord, WeChat, Blender Chat, and DevTalk forums complement these workflows by fostering discussions tailored to each community’s requirements. FreeCodeCamp’s structured approach, with a combination of Discord for global discussions and WeChat for localized translation coordination, provided clear channels for engagement. Meanwhile, p5.js’s reliance on GitHub issues and PR comments reinforced an asynchronous workflow where contributors interacted through documented discussions rather than direct messaging. Understanding these different structures has helped me navigate open-source contributions more effectively, allowing me to adapt to varying collaboration models while ensuring my work aligns with each project’s workflow. Furthermore, learning about Blender’s independent infrastructure and its tailored approach to versioning and communication broadened my perspective on how open-source projects design their workflows beyond traditional Git-based systems.

References

Loeliger, J. and McCullough, M., 2012. Version Control with Git: Powerful tools and techniques for collaborative software development. ” O’Reilly Media, Inc.”.

O’Sullivan, B., 2009. Mercurial: The Definitive Guide: The Definitive Guide. ” O’Reilly Media, Inc.”.

What Is Subversion? SVN Explained – https://www.perforce.com/blog/vcs/what-svn

Blender Foundation. (2024). Blender Developer Portal. Available at: https://developer.blender.org/

Blender Foundation. (2024). Blender Chat & DevTalk. Available at: https://devtalk.blender.org/

Version Control Systems from Geeks for Geeks: https://www.geeksforgeeks.org/version-control-systems

Leave a Reply

Your email address will not be published. Required fields are marked *

*