OSS

From Training Material
Revision as of 21:43, 12 February 2026 by Lsokolowski1 (talk | contribs)
Jump to navigation Jump to search

THIS IS A DRAFT

This text may not be complete.

title
OSS Training Course
author
Lukasz Sokolowski


OSS

OSS Training Materials

Introduction

  • Code management, versioning, and licensing
  • Automation and code quality (best practices)
  • Continuous Integration (CI) on GitHub/GitLab
  • Automated testing (unit, integration, end-to-end)
  • Changelog (Keep a Changelog, Conventional Commits)
  • Issue management and roadmap
  • Best practices in issue creation (templates, labels, milestones)
  • Documentation
    • Effective README: objectives, installation, usage, contributions
    • Contributing Guide (CONTRIBUTING.md)
    • API documentation (Swagger, Sphinx, Docusaurus, etc.)

Intro Con't

  • TODO

Code management, versioning, and licensing

Code management

  • systematic handling of source code throughout its lifecycle
  • including: tracking changes, organizing files, and enabling collaboration
  • ensures code is reliable, traceable, and maintainable across teams and over time

Versioning

  • assigning unique identifiers to different states of a codebase
  • developers can track modifications, revert to previous versions, and understand who made changes and why
  • this is foundational for collaboration, debugging, and ensuring code quality

Licensing

  • governs how software and its source code can be used, modified, and distributed
  • Open-source tools like Git are released under permissive licenses
    • such as the GNU General Public License (GPL) version 2.0 - it guarantees users the freedom to share and modify the software
  • However, organizations must consider licensing implications
    • when using version control platforms - especially with AI features
    • public repositories may be used to train models
    • potentially raising intellectual property concerns

Key tools like GitHub, GitLab, and Bitbucket support both centralized (CVCS) and distributed (DVCS) version control, with Git being the most widely adopted DVCS. These platforms enable modern workflows such as GitOps, CI/CD pipelines, and pull request-based code reviews, enhancing development speed and system reliability.