IanTDuncan / MealTime

Project for CSC 480
0 stars 0 forks source link

Source Code Control #46

Closed aaleksandraristic closed 5 months ago

aaleksandraristic commented 8 months ago

Here is the PDF for the Pipeline: Agile development.pdf

Divided into the following issues:

BeepDroid commented 8 months ago

For the GitLab Version Control System: A version control system (VCS) tracks changes to a file or set of files over time. This will help to manage and control the source code as it's pushed and updated.

GitHub Reposity: Our repository will make use of the appropriate branches to keep our code orderly and ready for the implementation stage.

This is from the pipeline, I will post sources shortly.

aaleksandraristic commented 8 months ago

GitLab Version Control System

GitLab is a web-based platform for version control and DevOps that provides a range of features for software development and collaboration. It is similar to other version control systems like Git, but it goes beyond just version control to offer a comprehensive suite of tools for the entire software development lifecycle. Here are the key aspects and details about GitLab:

Version Control System: GitLab is primarily known for its version control capabilities. It is built on top of Git, a distributed version control system. Git allows multiple developers to collaborate on a project by tracking changes, managing revisions, and enabling concurrent development.

Web-Based Platform: GitLab is accessible through a web interface, which makes it easy for teams to collaborate, manage, and track the progress of their projects from anywhere with an internet connection.

Features: GitLab offers a wide range of features beyond version control, including issue tracking, continuous integration/continuous deployment (CI/CD), code review, project management, and more.

Here are some key features: Issue Tracking: You can create, manage, and track issues and bugs in your projects. CI/CD Pipelines: GitLab allows you to automate the building, testing, and deployment of your applications. Code Review: You can perform code reviews and collaborate with team members on code changes. Project Management: GitLab provides tools for project planning, roadmaps, and task management. Wiki: You can create and edit project wikis for documentation. Container Registry: Store and manage Docker container images. Security Scanning: GitLab has built-in security tools for scanning code and dependencies for vulnerabilities.

CI/CD with GitLab Runner: GitLab provides GitLab Runner, which is an open-source application that runs your CI/CD jobs and sends the results back to GitLab. You can define CI/CD pipelines in a .gitlab-ci.yml file in your project's repository.

Security: GitLab takes security seriously and provides features like role-based access control, security scanning, and compliance management.

aaleksandraristic commented 8 months ago

GitHub Repository

GitHub and GitLab are both web-based platforms for version control and collaboration, and they have many similarities, but there are also some key differences between the two. Here's a comparison of GitHub and GitLab:

Self-Hosting: GitLab has a strong focus on self-hosting. You can install and manage your own GitLab instance on your servers, providing complete control over your data and infrastructure.

GitHub does not offer a self-hosted solution like GitLab. GitHub's primary service is cloud-based, and it is not possible to run a fully self-hosted GitHub instance.

Built-In CI/CD: Both GitHub and GitLab offer built-in CI/CD capabilities, but GitLab's CI/CD is tightly integrated and a core feature of GitLab, making it more accessible and seamless for users.

GitHub Actions is GitHub's CI/CD offering, which was introduced after GitLab's CI/CD. It is also a powerful tool but might feel separate from the core GitHub experience for some users.

Enterprise Features: Both GitHub and GitLab offer enterprise solutions with features like advanced security, compliance, and centralized management.

Maybe it will be good to try out both platforms to see which one better suits our needs and workflow.

aaleksandraristic commented 8 months ago

Decision: Using GitHub

@Cade5480 and I have discussed this, and we both agreed that it would be best to use GitHub for our project since we have already used it as a major tool and it would be easier to use.