Topic 4: ‘versioning systems`
Intro to versioning software
Versioning systems also called version control systems are softwares that is used to track and manage changes made to files. This article will look into the different aspects of these systems and how I have personally made use of them for my contribution.
Using version control when working on code has a lot of benefits. It makes a complete history of modifications available to everyone that’s working on the project. It is then easier to find where bugs are coming from and who to go to to fix the issues.
This history is also very useful to collaborations as: changes are visible and people can write extra comments about what they have done and why. The feature that makes is essential to collaboration is the ability to work on a personal branch to fix specific issues. The user is then able to merge changes to the main source code. This allows for developers to work separately at the same time. The workflow is then more efficient and less conflicting. Another aspect of the collaboration is the review. When someone gives a proposition to fix an issue and opens a pull request, the code will be reviewed by other developers and some feedback may be given to improve the quality. Having multiple eyes on a piece of code can be necessary for making a good piece of code.
It also has a good workflow for the enhancement of the project as the integration of new code is continuous. People can decide to fix an issue at any time and it will be deployed when it’s ready and approved.
And finally, it is good for keeping a project stable as if an issue comes up it can easily be reverted to the previous version of the code. The versioning software creates backups of the projects as all the changes are tracked. The risks arising from accidentally deleting, or breaking a piece of code are minimised. Experimentations that are thought to be risky can be done on a separate branch allowing for developers to have a safe space to innovate and try new interesting features.
For this unit, we have used Git and GitHub. After getting introduced to the proper way of using these tools, I started using them for my contribution.
GitHub
I used GitHub to find the project I collaborated to first. Because it is so popular, I was able to brows the projects and find this very interesting one.
I then found my issue and got to know the project’s specificities. I found that the features around community management are very useful to keep a project alive. I was able to ask questions to code owners easily and check people’s profile to get an idea of what background contributors had.
I also think the features around safety are good. The access and permissions are managed by the code owners. It has incorporated vulnerability checks. That feature made me feel much safer when working on the project on my own machine.
Git
After forking the project, I started using Git while working on the code. I used Git as a command-line tool to track the changes I made to the code.
I started by having to always have the cheat sheet with me while working on this unit but after some time it felt easier and more confortable.
I also used the git add-on in VS code and it made it much easier to see changes and keep track on the work done by me and others. The commits are visible just by hovering the code and there is an easily accessible commits’ history on the left of the working space.
Conclusion
I was very happy to get more comfortable with that tool because I think it is very useful to use it on personal projects as well. I noticed that right away after working on this unit I felt the need to use versioning software on every project.
GitHub Docs. (n.d.). Getting started with GitHub. [online] Available at: https://docs.github.com/en/get-started.