/monorepo-workshop

Monorepos Workshop ✨🌳

Primary LanguageMDX

Advanced Monorepo Techniques 🌳

Welcome! This workshop is designed to navigate you through the complexities of setting up and managing monorepos within the JavaScript and TypeScript ecosystem.

In this workshop, we'll delve into the benefits of a monorepo structure, including efficient code sharing, streamlined dependency management, and robust codebase resilience. We'll also introduce you to pnpm, a high-performance package manager, and Turborepo, a powerful tool for managing monorepos, optimizing build systems, and enhancing CI/CD workflows.

System Requirements

  • git version 2.39.0 or later
  • Node.js version 16.0.1 or later
  • pnpm version 8.9.0 or later

Setup

  1. Clone the Workshop Repository: Clone the workshop repository from GitHub to your local machine. You can do this by running git clone https://github.com/laurosilvacom/monorepo-workshop in your terminal.

Outline

  • ✅: Teacher's notes are completed.
  • 🏗️: Teacher's notes are in progress.
  1. Monorepos and Forests ✅
  2. Monorepo Architecture ✅
  3. Introduction to PNPM ✅
  4. Managing Multiple Packages and Executing Recursive Commands in a Monorepo ✅
  5. Sharing Code Across Projects in a Monorepo ✅
  6. Versioning and Workspace Pinning ✅
  7. Pinning Node and pnpm Versions 🏗️
  8. Installing Packages 🏗️
  9. Updating Packages and Version Syncing 🏗️
  10. Installing Packages Into the Root 🏗️
  11. Cleaning node_modules 🏗️
  12. Understanding dependencies 🏗️
  13. Implementing Turborepo in Monorepo Projects 🏗️
  14. Exploring Turborepo 🏗️
  15. Setting Up Turborepo 🏗️
  16. Integrating with CI/CD and Remote Caching 🏗️
  17. Collaborative Development with Turborepo 🏗️
  18. Advanced Turborepo Techniques 🏗️

Exercise-Driven Workshop

This workshop is designed to help you learn by doing. It's structured around a series of exercises that will challenge you to engage deeply with the concepts. Here's how it works:

  1. Introduction ⛺: Each lesson begins with an introduction that sets the context. This will give you a clear understanding of what you'll be learning and why it's important.

  2. Exercise and Attempt 🏔️: After the introduction, you'll encounter one or more exercises. These are designed not necessarily for you to complete, but to spark your curiosity and formulate the right questions to ask me as I walk through the material. It's perfectly fine to struggle a bit or even do some Googling.

  3. Solution 🚩: After you've attempted the exercises, I'll walk you through the solutions. This step-by-step walkthrough will help you understand the correct approach and the reasoning behind it.

  4. Elaboration and Feedback ✍️: After each exercise, you'll find an Elaboration and Feedback link. It's crucial to fill this out, focusing particularly on the elaboration part. Here, you'll write down the core concepts you've learned from the exercise. This practice reinforces your new knowledge and helps you remember it more effectively.

By following these steps, you'll gain a deep and practical understanding of the topics covered in this workshop.

Workshop Schedule

Time Activity Length
9:00-10:00 Teaching Block #1 1hr
10:00-10:15 Break 15min
10:15-11:15 Teaching Block #2 1hr
11:15-11:30 Break 15min
11:30-12:30 Teaching Block #3 1hr
12:30-1:00 End