Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 15 additions & 9 deletions docs/1. Initializing/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,20 @@
description: This chapter guides you through setting up a robust development environment for MLOps projects using Python. Learn how to manage Python versions, install dependencies with Poetry, and use Git and GitHub for version control and collaboration.
---

# 1. Initializing
# 1. 🚀 Initializing

The initialization phase is crucial in setting the stage for efficient and streamlined development, particularly for projects centered around Python and MLOps. This chapter aims to guide you through establishing a robust development setup, ensuring that every necessary tool and environment is correctly configured from the get-go. By following these foundational steps, you'll create a solid base for your project, enabling smooth progress and reducing the likelihood of delays caused by environment-related issues.
Welcome to the first step of your MLOps journey! The initialization phase is all about laying a solid foundation for your projects. A well-configured development environment is not just a matter of convenience—it's a critical component that ensures efficiency, reproducibility, and smooth collaboration. In this chapter, we'll guide you through setting up everything you need, from system prerequisites to the essential tools that will power your MLOps workflows. By the end of this section, you'll have a robust and streamlined setup, ready to tackle any development challenge that comes your way.

- **[1.0. System](./1.0. System.md)**: This section ensures your system is adequately prepared, outlining the essential prerequisites for installing and effectively running the necessary development tools.
- **[1.1. Python](./1.1. Python.md)**: Here, we introduce how to set up Python—the core programming language for our projects. We'll focus on version management and creating isolated environments for each project to avoid conflicts and dependency issues.
- **[1.2. uv](./1.2. uv.md)**: We explore `uv`, an extremely fast Python tool written in Rust. Uv can install Python versions, manage virtual environments, and handle dependencies, making it a versatile tool for MLOps projects.
- **[1.3. uv (project)](./1.3. uv (project).md)**: This part delves into using `uv` for project packaging. It simplifies the process of defining, installing, and updating project metadata and dependencies with ease.
- **[1.4. git](./1.4. git.md)**: Focuses on `git`, the cornerstone version control system integral to GitHub. You'll learn how to initiate and manage repositories effectively, a critical skill for collaborative development.
- **[1.5. GitHub](./1.5. GitHub.md)**: Discusses how to leverage GitHub for project hosting, version control, and collaboration. It's a pivotal component in modern development workflows, facilitating teamwork and project management.
- **[1.6. VS Code](./1.6. VS Code.md)**: Highlights the setup of Visual Studio Code (VS Code), showing how to adapt this versatile editor into an integrated development environment (IDE) customized for Python and MLOps projects.
- **[1.0. 💻 System](./1.0. System.md)**: Before diving into the tools, we'll make sure your system is ready. This section covers the recommended operating systems, hardware specifications, and essential software packages. We'll also discuss the pros and cons of using local versus cloud-based environments like GitHub Codespaces.

- **[1.1. 🐍 Python](./1.1. Python.md)**: Python is the lingua franca of AI and machine learning. Here, we'll explore why it's the preferred language for MLOps, how to choose the right version for your projects, and the best practices for managing different Python versions to avoid conflicts and ensure consistency.

- **[1.2. 📦 uv](./1.2. uv.md)**: Meet `uv`, an incredibly fast and versatile tool that will become your best friend for managing Python packages and environments. We'll show you how to install `uv` and use it as a high-performance replacement for `pip`, `venv`, and even `pyenv`, simplifying your workflow with a single, powerful tool.

- **[1.3. 🛠️ uv (project)](./1.3. uv (project).md)**: Building on the basics of `uv`, this section dives into using it for project packaging. You'll learn how to define, manage, and install project dependencies using a `pyproject.toml` file, distinguishing between main and development dependencies to keep your production artifacts lean and efficient.

- **[1.4. 🐙 git](./1.4. git.md)**: Version control is non-negotiable in modern software development. This section introduces `git`, the cornerstone of version control. You'll learn how to track changes, manage different versions of your code, and collaborate with others effectively. We'll also cover best practices, like what to include in your `.gitignore` file.

- **[1.5. ☁️ GitHub](./1.5. GitHub.md)**: Take your `git` skills to the cloud with GitHub. We'll explore how to use GitHub for hosting your code, collaborating with your team, and leveraging its powerful features like GitHub Actions for automation and GitHub Projects for task management. It's the central hub for your MLOps projects.

- **[1.6. 📝 VS Code](./1.6. VS Code.md)**: A great developer needs a great editor. This section guides you through setting up Visual Studio Code (VS Code) as a powerful IDE for Python and MLOps. We'll share the must-have extensions and configuration settings to supercharge your productivity and create a seamless development experience.