Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
1c1eb2a
Initial plan
Copilot Sep 9, 2025
f9d918b
Add core vector store functionality: ValueType enum, Value vector met…
Copilot Sep 9, 2025
6d7dcc6
Complete vector store implementation with comprehensive tests and exa…
Copilot Sep 9, 2025
84c2a8a
Implement comprehensive production-ready vector store features
Copilot Sep 12, 2025
8f058ba
fixup
phrocker Sep 12, 2025
e552805
Initial plan
Copilot Sep 12, 2025
7eabbd6
Comprehensive testing of build capabilities and limitations discovered
Copilot Sep 12, 2025
984afe2
Complete GitHub Copilot instructions with comprehensive testing and v…
Copilot Sep 12, 2025
c47d53e
Merge pull request #5 from SentriusLLC/copilot/fix-4
phrocker Sep 12, 2025
9dcad5e
Merge pull request #1 from SentriusLLC/copilot/fix-1
phrocker Sep 12, 2025
ee6e0d0
Initial plan
Copilot Sep 12, 2025
7ef15c3
Fix vectorindexfooter build issues and add robust error handling
Copilot Sep 12, 2025
502a1a9
format
phrocker Sep 12, 2025
c87cabe
Add setter method for VectorIndexFooter to resolve SpotBugs UWF_UNWRI…
Copilot Sep 12, 2025
996dfb5
Fix vector compression/decompression arithmetic bugs
Copilot Sep 12, 2025
35daa0a
Fix test
phrocker Sep 15, 2025
6944b5a
Disable example class from spot bugs
phrocker Sep 15, 2025
f82977e
Merge pull request #7 from SentriusLLC/copilot/fix-6
phrocker Sep 16, 2025
c816179
Initial plan
Copilot Sep 16, 2025
04f7a59
Complete Helm chart for Apache Accumulo with Alluxio storage layer
Copilot Sep 16, 2025
ed67603
Add implementation summary documentation
Copilot Sep 16, 2025
5e29788
Add Docker files, build scripts, secret generation, and Helm helpers
Copilot Sep 17, 2025
8cc919d
Add Apache license headers to all new files to fix RAT check
Copilot Sep 17, 2025
28013f1
Fix QA failures: shell script formatting and linting issues
Copilot Sep 19, 2025
c47e213
Add .gitignore entries for Docker and Helm build artifacts
Copilot Sep 19, 2025
f6cf523
Fix license headers using Maven license plugin format
Copilot Sep 19, 2025
a395fde
Merge pull request #9 from SentriusLLC/copilot/fix-8
phrocker Sep 19, 2025
acbabe2
add charts as exclusion
phrocker Sep 20, 2025
b18c732
Initial plan
Copilot Sep 20, 2025
69a3ad7
Fix Helm chart indentation and formatting issues
Copilot Sep 20, 2025
bda3ff5
Fix missing license header termination in Helm templates
Copilot Sep 20, 2025
6bd0e9a
Merge pull request #11 from SentriusLLC/copilot/fix-10
phrocker Sep 20, 2025
cc42598
Initial plan
Copilot Sep 22, 2025
26f764d
Initial analysis of Helm deployment YAML parse error
Copilot Sep 22, 2025
9e9a671
Fix YAML indentation issues in Helm templates
Copilot Sep 22, 2025
8845735
Complete fix for Helm deployment YAML parse error - Issue #12 resolved
Copilot Sep 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
207 changes: 207 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
# Apache Accumulo (Veculo Repository)
Apache Accumulo is a sorted, distributed key/value store based on Google's BigTable design. It is built on top of Apache Hadoop, Zookeeper, and Thrift. This repository contains a multi-module Java Maven project requiring Java 17.

**ALWAYS reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here.**

## Working Effectively

### Environment Requirements
- **Java Version**: Java 17 (OpenJDK 17.0.16+ required)
- **Build Tool**: Apache Maven 3.9.11+
- **Memory**: 3-4GB free memory recommended for integration tests
- **Disk Space**: 10GB free disk space recommended for integration tests
- **Network**: **CRITICAL LIMITATION** - Apache snapshots repository (`repository.apache.org`) is not accessible due to DNS restrictions

### Build Status: **DOES NOT BUILD**
**DO NOT attempt to build this repository** - it will fail due to network restrictions preventing access to essential dependencies.

#### Critical Build Limitation
```bash
# This command WILL FAIL - do not attempt:
mvn clean package
# Error: Could not transfer artifact org.apache.accumulo:accumulo-access:pom:1.0.0-SNAPSHOT
# from/to apache.snapshots (https://repository.apache.org/snapshots): repository.apache.org
```

**Root Cause**: The project depends on `org.apache.accumulo:accumulo-access:1.0.0-SNAPSHOT` which is only available from Apache snapshots repository. This dependency is essential - it provides core classes like `AccessEvaluator`, `AccessExpression` used throughout the codebase and cannot be removed.

### Working Commands
Despite build limitations, these commands work correctly:

#### Static Analysis and Validation (All work perfectly)
```bash
# Check for unapproved characters - takes 2 seconds
src/build/ci/find-unapproved-chars.sh

# Check for unapproved JUnit usage - takes 1 second
src/build/ci/find-unapproved-junit.sh

# Check package naming conventions - takes 1 second
src/build/ci/check-module-package-conventions.sh

# Check for startMini without stopMini - takes 1 second
src/build/ci/find-startMini-without-stopMini.sh

# Check for abstract IT classes - takes 1 second
src/build/ci/find-unapproved-abstract-ITs.sh
```

#### Maven Analysis Commands (Work for first 2 modules only)
```bash
# Show active profiles - works, takes 1 second
mvn help:active-profiles

# Validate first 2 modules (accumulo-project, accumulo-start) - takes 3 seconds, FAILS at accumulo-core
mvn -B validate -DverifyFormat

# Show effective POM - works, takes 1 second
mvn help:effective-pom -q
```

#### What Works in Validation
- **accumulo-project module**: Full validation including format checks (SUCCESS)
- **accumulo-start module**: Full validation including format checks (SUCCESS)
- **accumulo-core module and beyond**: FAIL due to dependency resolution (FAILS)

### Repository Structure
```
/home/runner/work/veculo/veculo/
|-- assemble/ # Assembly configuration and distribution
| |-- conf/ # Configuration files (accumulo-env.sh, etc.)
| +-- bin/ # Binary scripts
|-- core/ # Core Accumulo libraries (FAILS to build)
|-- server/ # Server components
| |-- base/ # Base server classes
| |-- compactor/ # Compaction service
| |-- gc/ # Garbage collector
| |-- manager/ # Manager server
| |-- monitor/ # Monitor server
| |-- native/ # Native libraries
| +-- tserver/ # Tablet server
|-- shell/ # Accumulo shell CLI
|-- start/ # Startup utilities (builds successfully)
|-- test/ # Test harness and utilities
|-- minicluster/ # Mini cluster for testing
+-- src/build/ci/ # CI scripts (all work)
```

## Validation Workflows

### When Making Changes
1. **ALWAYS** run static analysis first (works in any environment):
```bash
src/build/ci/find-unapproved-chars.sh
src/build/ci/find-unapproved-junit.sh
src/build/ci/check-module-package-conventions.sh
```

2. **Test format validation on working modules** (takes 3 seconds, NEVER CANCEL):
```bash
# This will validate accumulo-project and accumulo-start, then fail at accumulo-core
mvn -B validate -DverifyFormat
```

3. **DO NOT attempt compilation** - it will fail due to missing accumulo-access dependency

### Module Analysis
- **start/**: Simple startup utilities, minimal dependencies, validates successfully
- **core/**: Contains core Accumulo APIs, depends on accumulo-access (fails)
- **shell/**: Interactive command-line interface for Accumulo
- **server/***: Various server components (manager, tablet server, etc.)

## Network Requirements
**CRITICAL**: This repository requires access to Apache snapshots repository which is not available in this environment.

Required but unavailable repositories:
- `https://repository.apache.org/snapshots` - **BLOCKED** (DNS resolution fails)

Available repositories:
- `https://repo.maven.apache.org/maven2` - Maven Central (ACCESSIBLE)
- `https://repo1.maven.org` - Maven Central Mirror (ACCESSIBLE)

## Testing Capabilities

### What CAN Be Tested
- Code format validation (Java source formatting)
- Static code analysis (character validation, JUnit usage, package conventions)
- Maven project structure analysis
- Repository exploration and documentation

### What CANNOT Be Tested
- **Compilation**: Fails at accumulo-core due to missing dependencies
- **Unit Tests**: Cannot run due to compilation failure
- **Integration Tests**: Cannot run due to compilation failure
- **Application Startup**: Cannot test without successful build
- **End-to-End Scenarios**: Not possible without working build

## CI/CD Context
Based on `.github/workflows/maven.yaml`:
- **Normal CI Build Time**: 60 minutes (with 60-minute timeout)
- **Unit Tests**: Would normally take significant time with `-Xmx1G` heap
- **Integration Tests**: Require MiniCluster setup with substantial memory/disk
- **QA Checks**: Include SpotBugs, format verification, security scans

**In this environment**: Only static analysis and format validation work.

## Common Tasks Reference

### Repository Root Structure
```bash
ls -la /home/runner/work/veculo/veculo/
# Returns:
# .asf.yaml - Apache Software Foundation config
# .github/ - GitHub workflows and templates
# .mvn/ - Maven wrapper configuration
# DEPENDENCIES - Dependency notices
# LICENSE, NOTICE - Apache license files
# README.md - Project documentation
# TESTING.md - Testing instructions
# pom.xml - Root Maven POM
# assemble/ - Distribution assembly
# core/ - Core libraries (fails to build)
# server/ - Server components
# shell/ - CLI interface
# start/ - Startup utilities
# test/ - Test utilities
```

### Key Configuration Files
- `pom.xml` - Root Maven configuration with 16 modules
- `assemble/conf/accumulo-env.sh` - Environment setup script
- `assemble/conf/accumulo.properties` - Main configuration
- `.github/workflows/maven.yaml` - Main CI workflow (60min timeout)

## Error Messages to Expect

### Build Failure
```
[ERROR] Could not transfer artifact org.apache.accumulo:accumulo-access:pom:1.0.0-SNAPSHOT
from/to apache.snapshots (https://repository.apache.org/snapshots): repository.apache.org:
No address associated with hostname
```

### DNS Resolution Failure
```
** server can't find repository.apache.org: REFUSED
```

### Dependency Resolution
```
[ERROR] Failed to read artifact descriptor for org.apache.accumulo:accumulo-access:jar:1.0.0-SNAPSHOT
```

## Troubleshooting

### "Build hangs or times out"
- **Expected**: Network timeouts when trying to reach Apache snapshots repository
- **Action**: Use static analysis tools instead of build commands

### "Cannot find accumulo-access dependency"
- **Expected**: This dependency is only in Apache snapshots repository
- **Action**: Document the limitation; cannot be worked around

### "Single module builds fail"
- **Expected**: Maven enforcer rules require full reactor for module convergence
- **Action**: Use `mvn validate` for partial validation only

Remember: The goal is to document and understand this repository's structure and limitations, not to achieve a working build in this restricted environment.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,10 @@

# MacOS ignores
.DS_Store

# Docker build artifacts
docker/accumulo/dist/

# Helm chart build artifacts
charts/accumulo/charts/
values-generated.yaml
Loading