OSS
THIS IS A DRAFT
This text may not be complete.
- title
- OSS Training Course
- author
- Lukasz Sokolowski
OSS
OSS Training Materials
Copyright Notice
Copyright © 2004-2026 by NobleProg Limited All rights reserved.
This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise.
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
- practice of 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, which 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—where 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.