Skip to main content

VCS inspired by Git.

Project description

🌲 Codetrail: Where Code Goes Hiking

PyPI Python License Built with Sheer Determination

🤔 What's This All About?

Welcome to the learning experience! First things first: Codetrail is not trying to be the next Git. Heck, we're actually using Git as our version control system. We're just crazy enough to build our own distributed version control system from scratch because... why not?

💡 The Mission

We're here to prove that with:

  • A dangerous amount of curiosity
  • Caffeine (lots of it)
  • Sheer, unadulterated determination
  • And perhaps a slight dash of madness

You can build a distributed version control system from the ground up. Is it practical? Probably not. Is it educational? Absolutely! Will it be fun? You bet your last semicolon it will be!

📑 Design & Documentation

RFCs (Request for Comments)

We believe in learning by doing, but also in documenting why we did what we did. Each major feature comes with its own RFC in the /docs/rfcs directory. These RFCs explain our thinking, design decisions, and implementation details.

Current RFCs:

Want to contribute a new feature? Start by reading our existing RFCs to understand our design philosophy, then draft your own RFC before diving into code. We promise to read it, even if it's written on a napkin (digital napkins preferred).

🗺️ Roadmap (Or: How We're Building This Thing)

Phase 1: Baby Steps 🐣

  • Project setup (You're looking at it!)
  • init - Because every journey needs a starting point. (CODETRAIL001)
  • config - Local config only (we're keeping it simple, folks)
  • add - Teaching codetrail which files to track
  • commit - Making our first memories together

Phase 2: Walking Steadily 🚶

  • status - Finding out what's going on
  • log - A trip down memory lane
  • branch - Because sometimes we need parallel universes
  • checkout - Time travel between branches

Phase 3: Starting to Run 🏃

  • merge - Bringing parallel universes together
  • reset - For when we mess up (it happens)
  • revert - For when we mess up but want to be fancy about fixing it
  • Basic conflict resolution (pray we don't need this)

Future Dreams 💭

  • Remote repository support
  • Push/pull mechanisms
  • Interactive rebase (because we're ambitious)
  • Whatever cool feature you suggest!

🎯 What Makes Codetrail Different?

Unlike other VCS projects that try to compete with Git, we're here to:

  • Learn how Git's magic actually works
  • Break things (intentionally, of course)
  • Fix those things (eventually)
  • Document every "aha!" and "oh no!" moment
  • Share the journey with fellow code adventurers

🚀 Getting Started

Prerequisites

  • Python 3.8 or higher
  • pip (Python package installer)

Basic Usage

# From PyPI
pip install codetrail

# For development
git clone https://github.com/mochams/codetrail
cd codetrail
poetry install

# Run to see supported commands
python -m codetrail --help

# Run to see usage of a particular command e.g init
python -m codetrail init --help

# Run your command. e.g init
python -m codetrail init

🤝 Contributing

Found a bug? That's probably a feature! But if you insist, here's how you can help:

Before You Start

  1. Check out our RFCs in /docs/rfcs to understand our design decisions
  2. Browse through existing issues and pull requests
  3. For new features, consider writing an RFC first

Development Process

  1. Fork the repo
  2. Create your feature branch
  3. Write tests (yes, we're that serious)
  4. Commit your changes
  5. Push to the branch
  6. Open a Pull Request

RFC Process

  1. Check existing RFCs to avoid duplication
  2. Use the RFC template in /docs/rfcs/Template.md
  3. Submit RFC as a pull request
  4. Engage in discussion with maintainers
  5. Once approved, implement away!

👀 Watching the Project

Interested in following our journey? Here's how to stay updated:

  • ⭐ Star the repository to show your support
  • 👀 Watch the repository for all activity
  • 🔔 Follow releases for major updates
  • 📖 Check our Wiki for learning resources and documentation

⚠️ Warning

If you're looking for a production-ready VCS, you might want to stick with Git. If you're looking for an adventure in code that might occasionally explode in your face (in a good way), you're in the right place!


Made with ❤️ and excessive amounts of ☕

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codetrail-0.2.0.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

codetrail-0.2.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file codetrail-0.2.0.tar.gz.

File metadata

  • Download URL: codetrail-0.2.0.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for codetrail-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d51e6a9f5bfa42bdf41a8337a7f51a9daf41a2ba62e42172b681fad3a0c6c8c1
MD5 705088c7b8ad2f094f89042e53ca87f5
BLAKE2b-256 377c0e4a93bd1dcbf24da43431c4090292888bad20d0cbfea766f540a104da05

See more details on using hashes here.

File details

Details for the file codetrail-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: codetrail-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for codetrail-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 862bc0ca3bfb80fa62d1593d191ace6abaaedd6c344a3a02fc4fbb4d411bb9b2
MD5 6e49fbf7f42f6439bdf611d7e2cc0f6b
BLAKE2b-256 f7436cc48417fd44d6ed9a102ebcc4876ba7f8b6a664cf86d3666be40c0f87fa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page