Skip to content

Testing infrastructure for 31 open-source projects with automated error code insertion and validation

License

Notifications You must be signed in to change notification settings

Err0-io/err0-open-source-bundle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

err0.io Open Source Test Bundle

err0.io logo

Testing Infrastructure for 31 Major Open-Source Projects

License Projects Docker err0.io

Quick Start β€’ Documentation β€’ Contributing β€’ Support


🎯 What is This?

A comprehensive test suite containing 31 major open-source projects as git submodules for testing the err0.io error code management agent across diverse programming languages and frameworks.

What is err0.io?

err0.io is an error code management system that automatically inserts unique error codes into your source code's logging statements, making it easier to trace and debug issues in production. This repository provides a large-scale test environment to validate the err0 agent's capabilities.

✨ Features

  • πŸ”§ 31 Production Projects - Test across real-world codebases
  • 🐳 Docker-Based - Consistent execution environment
  • πŸ€– Automated Testing - Comprehensive soak tests and validation
  • πŸ”’ Secure - Token-based authentication with gitignored credentials
  • πŸ“š Multi-Language - Java, Python, Ruby, Rust, Kotlin, Swift, C#, JavaScript, and more
  • ⚑ Flexible - Production, development, and local testing modes

πŸ“¦ Repository Contents

This repository contains 31 open-source projects organized by category:

πŸ€– Android/Mobile (5 projects)
  • Signal-Android - Private messaging for Android
  • Signal-iOS - Private messaging for iOS
  • Telegram - Messaging app for Android
  • Telegram-iOS - Messaging app for iOS
  • UTM - Virtual machines for iOS and macOS
β˜• Backend Frameworks - JVM (4 projects)
  • spring-framework - Application framework for Java
  • ktor - Asynchronous framework for Kotlin
  • ratpack - Web framework for Java
  • tomcat - Java servlet container
🌐 Backend Frameworks - Other (4 projects)
  • django - Web framework for Python
  • rails - Web framework for Ruby
  • vapor - Web framework for Swift
  • strapi - Headless CMS for Node.js
β‚Ώ Blockchain/Cryptocurrency (1 project)
  • bitcoin - Bitcoin Core implementation
πŸ“ CMS/E-commerce (4 projects)
  • WordPress - Content management system (PHP)
  • drupal - Content management framework (PHP)
  • magento2 - E-commerce platform (PHP)
  • moodle - Learning management system (PHP)
πŸš€ DevOps/IoT (4 projects)
  • kubernetes - Container orchestration system
  • mender - OTA software updater
  • SmartThingsEdgeDrivers - Samsung SmartThings drivers
  • cerbos - Access control and authorization
πŸ’Ž .NET (2 projects)
  • Umbraco-CMS - Content management system (C#)
  • roslyn - C# and Visual Basic compiler
πŸ’¬ Forums/Community (1 project)
  • NodeBB - Forum software (Node.js)
πŸ“§ Infrastructure (1 project)
  • postfix - Mail transfer agent
🎨 Kotlin Libraries (1 project)
  • kotlinx.html - HTML DSL for Kotlin
🧠 Machine Learning (1 project)
  • pytorch - Machine learning framework
πŸ¦€ Rust/Systems Programming (2 projects)
  • servo - Browser engine
  • leptos - Web framework for Rust
πŸ§ͺ Test/Example (1 project)
  • zf2-orders - Internal test project

πŸš€ Quick Start

Prerequisites

Requirement Version Installation
🐳 Docker Latest Install Docker
πŸ“¦ Git 2.13+ Pre-installed on most systems
πŸ”§ Perl Any Pre-installed on Linux/macOS

Disk Space Requirements:

  • Initial clone: ~500 MB
  • All submodules: ~50 GB
  • Individual submodules: 10 MB - 5 GB each

Installation

# 1. Clone the repository
git clone https://github.com/Err0-io/err0-open-source-bundle.git
cd err0-open-source-bundle

# 2. Initialize submodules (choose one)
# Option A: Initialize specific projects only (recommended)
git submodule update --init --depth 1 django rails kubernetes

# Option B: Initialize all projects (downloads ~50 GB)
git submodule update --init --depth 1

# Option C: Full history with err0/initial branches
./freshen-submodules.sh

# 3. Configure environment
cp .env.template .env
nano .env  # Edit with your err0 server details

# 4. Set up authentication tokens
# See tokens/README.md for instructions

First Test Run

# Test a single project
./err0agent-dev-insert.sh tokens/err0-django-*.json django

# Test all configured projects
./dev-insert.sh

πŸ“– Documentation

Document Description
SETUP.md πŸ“š Detailed setup and configuration guide
TESTING.md πŸ§ͺ Testing workflows and soak tests
SECURITY.md πŸ”’ Security practices and token management
CONTRIBUTING.md 🀝 Contribution guidelines
MIGRATION.md πŸ”„ Migration guide for existing users
tokens/README.md 🎫 Token generation instructions

πŸ”§ Usage

Script Overview

Script Purpose Environment
err0agent-insert.sh Insert error codes Production (latest)
err0agent-dev-insert.sh Insert error codes Development (develop)
err0agent-localdev-insert.sh Insert error codes Local build
err0agent-analyse.sh Analyze error codes Production
err0agent-dev-analyse.sh Analyze uncommitted changes Development
err0agent-dev-check.sh Check canonicalization Development
dev-insert.sh Bulk insert (all projects) Development
dev-analyse.sh Bulk analyze (all projects) Development

Example Workflows

πŸ§ͺ Test a New Feature

# Initialize submodules
./freshen-submodules.sh

# Insert error codes into all projects
./dev-insert.sh

# Review changes
git submodule foreach git diff

# Commit changes
git submodule foreach git add .
git submodule foreach git commit -m "Add err0 codes"

# Verify canonicalization
./dev-analyse.sh

πŸ”¬ Run Comprehensive Soak Test

# Full integration test (4-6 hours)
# - Creates test branches
# - Runs insert operations
# - Commits and tags changes
# - Verifies code canonicalization
# - Tests idempotency
./soak-test.pl

🏠 Test Against Local Server

# Configure for localhost
echo "ERR0_HOST=localhost:8443" > .env

# Run operations
./dev-insert.sh
./dev-analyse.sh

πŸ” Security

⚠️ NEVER commit token files to version control!

  • Token files contain authentication credentials
  • .gitignore prevents accidental commits
  • Pre-commit hooks validate no secrets are committed
  • Rotate tokens regularly (every 90 days recommended)
  • See SECURITY.md for detailed practices

🀝 Contributing

We welcome contributions! Here's how you can help:

  • πŸ› Report Bugs - Open an issue
  • πŸ’‘ Suggest Features - Start a discussion
  • πŸ“ Improve Docs - Submit documentation improvements
  • πŸ”§ Add Projects - Propose new open-source projects to test

See CONTRIBUTING.md for detailed guidelines.

πŸ› οΈ Troubleshooting

🐳 Docker Issues

Cannot connect to Docker daemon:

# Start Docker service
sudo systemctl start docker  # Linux
# or start Docker Desktop     # macOS/Windows

Permission denied:

# Add user to docker group (Linux)
sudo usermod -aG docker $USER
newgrp docker
πŸ“¦ Submodule Issues

Submodule could not be updated:

git submodule deinit -f <project>
git submodule update --init <project>

No submodule mapping found:

git submodule sync
git submodule update --init
🎫 Token Issues

No token file found:

# Check token file naming
ls tokens/err0-django-*.json

# Verify token directory
echo $ERR0_TOKEN_DIR

# Read setup guide
cat tokens/README.md

Authentication failed:

  • Verify token is not expired
  • Check ERR0_HOST matches token's host field
  • Ensure network connectivity to err0 server

πŸ“Š Project Structure

err0-open-source-bundle/
β”œβ”€β”€ πŸ“„ README.md                  # This file
β”œβ”€β”€ πŸ“„ SETUP.md                   # Detailed setup guide
β”œβ”€β”€ πŸ“„ TESTING.md                 # Testing documentation
β”œβ”€β”€ πŸ“„ SECURITY.md                # Security practices
β”œβ”€β”€ πŸ“„ CONTRIBUTING.md            # Contribution guidelines
β”œβ”€β”€ πŸ“„ LICENSE                    # Apache 2.0 license
β”œβ”€β”€ πŸ“ config/                    # Configuration files
β”‚   β”œβ”€β”€ project-list.txt          # All 31 projects
β”‚   └── submodule-mappings.txt    # GitHub URL mappings
β”œβ”€β”€ πŸ“ scripts/                   # Helper scripts
β”‚   β”œβ”€β”€ config-helper.sh          # Environment loader
β”‚   β”œβ”€β”€ validate-setup.sh         # Setup validator
β”‚   └── install-hooks.sh          # Git hooks installer
β”œβ”€β”€ πŸ“ hooks/                     # Pre-commit hooks
β”‚   └── pre-commit                # Token detection
β”œβ”€β”€ πŸ“ tests/                     # Test suite
β”‚   β”œβ”€β”€ security-test.sh          # Security validation
β”‚   β”œβ”€β”€ unit-test.sh              # Unit tests
β”‚   └── integration-test.sh       # Integration tests
β”œβ”€β”€ πŸ“ tokens/                    # Token storage (gitignored)
β”‚   β”œβ”€β”€ README.md                 # Token setup guide
β”‚   └── *.json                    # Authentication tokens
β”œβ”€β”€ πŸ”§ err0agent-*.sh             # Operation scripts (11 files)
β”œβ”€β”€ πŸ”§ dev-*.sh                   # Bulk operation scripts
β”œβ”€β”€ πŸ§ͺ soak-test*.pl              # Integration test scripts
β”œβ”€β”€ πŸ”„ freshen-submodules.sh      # Submodule manager
└── πŸ“ [31 submodule directories] # Open-source projects

πŸ“œ License

This repository is licensed under the Apache License 2.0.

Note: Each submodule project retains its own license (MIT, Apache 2.0, GPL, etc.). Please refer to individual project directories for their specific licensing terms.

πŸ™ Acknowledgments

This test bundle includes code from 31 major open-source projects. We extend our gratitude to all contributors:

  • 🐍 The Django Software Foundation
  • ☸️ The Kubernetes Authors
  • πŸ’Ž The Ruby on Rails team
  • 🌸 The Spring Framework team
  • ...and 27 other amazing projects!

See each project's directory for full contributor acknowledgments.

πŸ’¬ Support

Need help? We've got you covered:

πŸ”— Related Projects


Made with ❀️ by the err0.io team

err0.io

About

Testing infrastructure for 31 open-source projects with automated error code insertion and validation

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published