CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-org-apache-avro--avro-toplevel

Apache Avro meta-framework that coordinates data serialization implementations across multiple programming languages

Pending
Overview
Eval results
Files

framework-coordination.mddocs/

Framework Coordination

Central coordination and build management capabilities for the entire Apache Avro ecosystem, providing unified versioning, dependency management, and cross-language compatibility.

Capabilities

Maven Project Coordination

Coordinates Maven-based builds and dependency management across all Java components and related language implementations.

<!-- Main project coordinates -->
<project>
  <groupId>org.apache.avro</groupId>
  <artifactId>avro-toplevel</artifactId>
  <version>1.12.0</version>
  <packaging>pom</packaging>
  <name>Apache Avro Toplevel</name>
  
  <!-- Includes Java implementation module -->
  <modules>
    <module>lang/java</module>
  </modules>
</project>

Usage Examples:

<!-- Include as parent POM for Avro-related projects -->
<parent>
  <groupId>org.apache.avro</groupId>
  <artifactId>avro-toplevel</artifactId>
  <version>1.12.0</version>
</parent>

<!-- Reference in dependency management -->
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.apache.avro</groupId>
      <artifactId>avro-toplevel</artifactId>
      <version>1.12.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Version Management

Centralized version control and synchronization across all language implementations and components.

# Version specification file
VERSION_FILE="share/VERSION.txt"

# Version format: MAJOR.MINOR.PATCH
# Example: 1.12.0

Usage Examples:

# Read current version
VERSION=$(cat share/VERSION.txt)
echo "Current Avro version: $VERSION"

# Use in build scripts
mvn versions:set -DnewVersion=$(cat share/VERSION.txt)

# Docker builds
docker build --build-arg AVRO_VERSION=$(cat share/VERSION.txt) .

Cross-Language Build Coordination

Orchestrates builds across multiple programming languages with consistent tooling and standards.

# Main build script interface
function build() {
  language: string      # Target language (java, python, js, etc.)
  target: string       # Build target (compile, test, package, clean)
  flags?: string[]     # Additional build flags
  returns: BuildResult
}

# Build result structure
interface BuildResult {
  success: boolean
  language: string
  artifacts: string[]
  testResults?: TestSummary
  errors?: string[]
}

# Language detection and build dispatch
function detectLanguages(): string[]
function buildLanguage(language: string, target: string): BuildResult
function buildAll(target: string): BuildResult[]

Usage Examples:

# Build all language implementations
./build.sh

# Build specific language
./build.sh java

# Run tests across all languages
./build.sh test

# Clean all build artifacts
./build.sh clean

# Package for distribution
./build.sh package

Development Environment Coordination

Manages development tools, configurations, and environments across the entire project ecosystem.

# Development environment configuration
DevEnvironment:
  java:
    version: "11+"
    buildTool: "maven"
    testFramework: "junit"
  
  docker:
    baseImages: 
      - "openjdk:11-jdk"
      - "python:3.9"
      - "node:16"
    
  editors:
    vscode:
      extensions: ["ms-vscode.vscode-json", "redhat.java"]
      settings: ".vscode/settings.json"
    
  git:
    hooks: "share/githooks/"
    attributes: ".gitattributes"

Usage Examples:

# Setup development environment
./build.sh setup-dev

# Install git hooks
cp share/githooks/* .git/hooks/
chmod +x .git/hooks/*

# Use editor configurations
cp share/editors/vscode/* .vscode/

# Docker development environment
docker-compose up -d

Project Structure Management

Defines and maintains the organizational structure for the multi-language Avro ecosystem.

# Project structure definition
ProjectStructure:
  root: "/"
  
  languages:
    - path: "lang/java"
      primary: true
      buildSystem: "maven"
    - path: "lang/python" 
      buildSystem: "setuptools"
    - path: "lang/js"
      buildSystem: "npm"
    - path: "lang/csharp"
      buildSystem: "dotnet"
  
  shared:
    schemas: "share/schemas/"
    tests: "share/test/"
    docs: "doc/"
    version: "share/VERSION.txt"
  
  build:
    script: "build.sh"
    docker: "docker-compose.yml"
    maven: "pom.xml"

Usage Examples:

# Navigate project structure
ls lang/                    # List all language implementations
ls share/schemas/          # Browse shared schemas
ls share/test/             # Access shared test data

# Find language-specific components
find lang/ -name "pom.xml"       # Java Maven projects
find lang/ -name "package.json"  # JavaScript packages
find lang/ -name "setup.py"      # Python packages

Install with Tessl CLI

npx tessl i tessl/maven-org-apache-avro--avro-toplevel

docs

build-tools.md

framework-coordination.md

index.md

language-implementations.md

schema-registry.md

tile.json