or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

build-tools.mdframework-coordination.mdindex.mdlanguage-implementations.mdschema-registry.md

framework-coordination.mddocs/

0

# Framework Coordination

1

2

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

3

4

## Capabilities

5

6

### Maven Project Coordination

7

8

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

9

10

```xml { .api }

11

<!-- Main project coordinates -->

12

<project>

13

<groupId>org.apache.avro</groupId>

14

<artifactId>avro-toplevel</artifactId>

15

<version>1.12.0</version>

16

<packaging>pom</packaging>

17

<name>Apache Avro Toplevel</name>

18

19

<!-- Includes Java implementation module -->

20

<modules>

21

<module>lang/java</module>

22

</modules>

23

</project>

24

```

25

26

**Usage Examples:**

27

28

```xml

29

<!-- Include as parent POM for Avro-related projects -->

30

<parent>

31

<groupId>org.apache.avro</groupId>

32

<artifactId>avro-toplevel</artifactId>

33

<version>1.12.0</version>

34

</parent>

35

36

<!-- Reference in dependency management -->

37

<dependencyManagement>

38

<dependencies>

39

<dependency>

40

<groupId>org.apache.avro</groupId>

41

<artifactId>avro-toplevel</artifactId>

42

<version>1.12.0</version>

43

<type>pom</type>

44

<scope>import</scope>

45

</dependency>

46

</dependencies>

47

</dependencyManagement>

48

```

49

50

### Version Management

51

52

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

53

54

```bash { .api }

55

# Version specification file

56

VERSION_FILE="share/VERSION.txt"

57

58

# Version format: MAJOR.MINOR.PATCH

59

# Example: 1.12.0

60

```

61

62

**Usage Examples:**

63

64

```bash

65

# Read current version

66

VERSION=$(cat share/VERSION.txt)

67

echo "Current Avro version: $VERSION"

68

69

# Use in build scripts

70

mvn versions:set -DnewVersion=$(cat share/VERSION.txt)

71

72

# Docker builds

73

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

74

```

75

76

### Cross-Language Build Coordination

77

78

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

79

80

```bash { .api }

81

# Main build script interface

82

function build() {

83

language: string # Target language (java, python, js, etc.)

84

target: string # Build target (compile, test, package, clean)

85

flags?: string[] # Additional build flags

86

returns: BuildResult

87

}

88

89

# Build result structure

90

interface BuildResult {

91

success: boolean

92

language: string

93

artifacts: string[]

94

testResults?: TestSummary

95

errors?: string[]

96

}

97

98

# Language detection and build dispatch

99

function detectLanguages(): string[]

100

function buildLanguage(language: string, target: string): BuildResult

101

function buildAll(target: string): BuildResult[]

102

```

103

104

**Usage Examples:**

105

106

```bash

107

# Build all language implementations

108

./build.sh

109

110

# Build specific language

111

./build.sh java

112

113

# Run tests across all languages

114

./build.sh test

115

116

# Clean all build artifacts

117

./build.sh clean

118

119

# Package for distribution

120

./build.sh package

121

```

122

123

### Development Environment Coordination

124

125

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

126

127

```yaml { .api }

128

# Development environment configuration

129

DevEnvironment:

130

java:

131

version: "11+"

132

buildTool: "maven"

133

testFramework: "junit"

134

135

docker:

136

baseImages:

137

- "openjdk:11-jdk"

138

- "python:3.9"

139

- "node:16"

140

141

editors:

142

vscode:

143

extensions: ["ms-vscode.vscode-json", "redhat.java"]

144

settings: ".vscode/settings.json"

145

146

git:

147

hooks: "share/githooks/"

148

attributes: ".gitattributes"

149

```

150

151

**Usage Examples:**

152

153

```bash

154

# Setup development environment

155

./build.sh setup-dev

156

157

# Install git hooks

158

cp share/githooks/* .git/hooks/

159

chmod +x .git/hooks/*

160

161

# Use editor configurations

162

cp share/editors/vscode/* .vscode/

163

164

# Docker development environment

165

docker-compose up -d

166

```

167

168

### Project Structure Management

169

170

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

171

172

```yaml { .api }

173

# Project structure definition

174

ProjectStructure:

175

root: "/"

176

177

languages:

178

- path: "lang/java"

179

primary: true

180

buildSystem: "maven"

181

- path: "lang/python"

182

buildSystem: "setuptools"

183

- path: "lang/js"

184

buildSystem: "npm"

185

- path: "lang/csharp"

186

buildSystem: "dotnet"

187

188

shared:

189

schemas: "share/schemas/"

190

tests: "share/test/"

191

docs: "doc/"

192

version: "share/VERSION.txt"

193

194

build:

195

script: "build.sh"

196

docker: "docker-compose.yml"

197

maven: "pom.xml"

198

```

199

200

**Usage Examples:**

201

202

```bash

203

# Navigate project structure

204

ls lang/ # List all language implementations

205

ls share/schemas/ # Browse shared schemas

206

ls share/test/ # Access shared test data

207

208

# Find language-specific components

209

find lang/ -name "pom.xml" # Java Maven projects

210

find lang/ -name "package.json" # JavaScript packages

211

find lang/ -name "setup.py" # Python packages

212

```