chore: import upstream snapshot with attribution
Integration Tests - MySQL + Elasticsearch / Detect Changes (push) Has been cancelled
Integration Tests - MySQL + Elasticsearch / integration-tests-mysql-elasticsearch (push) Has been cancelled
Integration Tests - PostgreSQL + Elasticsearch + Redis / Detect Changes (push) Has been cancelled
Integration Tests - PostgreSQL + Elasticsearch + Redis / integration-tests-postgres-elasticsearch-redis (push) Has been cancelled
Integration Tests - PostgreSQL + OpenSearch / Detect Changes (push) Has been cancelled
Integration Tests - PostgreSQL + OpenSearch / integration-tests-postgres-opensearch (push) Has been cancelled
Java Checkstyle / java-checkstyle (push) Has been cancelled
Maven Collate Tests / maven-collate-ci (push) Has been cancelled
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests-status (push) Has been cancelled
Publish Package to Maven Central Repository / publish-maven-packages (push) Has been cancelled
OpenMetadata Service Unit Tests / Detect Changes (push) Has been cancelled
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests (push) Has been cancelled
OpenMetadata Service Unit Tests / k8s_operator-unit-tests (push) Has been cancelled
Integration Tests - MySQL + Elasticsearch / Detect Changes (push) Has been cancelled
Integration Tests - MySQL + Elasticsearch / integration-tests-mysql-elasticsearch (push) Has been cancelled
Integration Tests - PostgreSQL + Elasticsearch + Redis / Detect Changes (push) Has been cancelled
Integration Tests - PostgreSQL + Elasticsearch + Redis / integration-tests-postgres-elasticsearch-redis (push) Has been cancelled
Integration Tests - PostgreSQL + OpenSearch / Detect Changes (push) Has been cancelled
Integration Tests - PostgreSQL + OpenSearch / integration-tests-postgres-opensearch (push) Has been cancelled
Java Checkstyle / java-checkstyle (push) Has been cancelled
Maven Collate Tests / maven-collate-ci (push) Has been cancelled
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests-status (push) Has been cancelled
Publish Package to Maven Central Repository / publish-maven-packages (push) Has been cancelled
OpenMetadata Service Unit Tests / Detect Changes (push) Has been cancelled
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests (push) Has been cancelled
OpenMetadata Service Unit Tests / k8s_operator-unit-tests (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# Copyright 2021 Collate
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM mcr.microsoft.com/devcontainers/base:ubuntu-22.04
|
||||
|
||||
# System libraries required for building OpenMetadata connectors
|
||||
# Mirrors: .github/actions/prepare-for-docker-build/action.yml
|
||||
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
unixodbc-dev \
|
||||
librdkafka-dev \
|
||||
gcc \
|
||||
libsasl2-dev \
|
||||
build-essential \
|
||||
libssl-dev \
|
||||
libffi-dev \
|
||||
libevent-dev \
|
||||
wkhtmltopdf \
|
||||
libkrb5-dev \
|
||||
jq \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"name": "OpenMetadata - Development",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"context": "../.."
|
||||
},
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
|
||||
"ghcr.io/devcontainers/features/java:1": {
|
||||
"version": "21",
|
||||
"installMaven": true,
|
||||
"mavenVersion": "3.9.9"
|
||||
},
|
||||
"ghcr.io/devcontainers/features/python:1": {
|
||||
"version": "3.11"
|
||||
},
|
||||
"ghcr.io/devcontainers/features/node:1": {
|
||||
"version": "22.17.0"
|
||||
}
|
||||
},
|
||||
"postCreateCommand": "npm install -g yarn@1.22.22 --force && bash .devcontainer/dev/post-create.sh",
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"vscjava.vscode-java-pack",
|
||||
"ms-python.python",
|
||||
"ms-python.vscode-pylance",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"esbenp.prettier-vscode",
|
||||
"eamodio.gitlens",
|
||||
"redhat.vscode-yaml"
|
||||
],
|
||||
"settings": {
|
||||
"editor.formatOnSave": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"remoteEnv": {
|
||||
"PATH": "${containerEnv:PATH}:${containerEnv:HOME}/.local/bin"
|
||||
},
|
||||
"remoteUser": "vscode",
|
||||
"forwardPorts": [3000],
|
||||
"portsAttributes": {
|
||||
"3000": { "label": "Frontend Dev Server" }
|
||||
}
|
||||
}
|
||||
Executable
+95
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright 2021 Collate
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
|
||||
echo "=== Setting up OpenMetadata Development Environment ==="
|
||||
|
||||
cd "$REPO_ROOT"
|
||||
|
||||
# Ensure ANTLR4 is available
|
||||
echo "Setting up ANTLR4..."
|
||||
# Ensure user-local binaries are available for this script and child processes.
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
ANTLR_VERSION=4.9.2
|
||||
ANTLR_JAR_DIR="$HOME/.local/lib"
|
||||
ANTLR_JAR_PATH="$ANTLR_JAR_DIR/antlr-${ANTLR_VERSION}-complete.jar"
|
||||
ANTLR_BIN_PATH="$HOME/.local/bin/antlr4"
|
||||
|
||||
CURRENT_ANTLR_VERSION=""
|
||||
if command -v antlr4 &> /dev/null; then
|
||||
CURRENT_ANTLR_VERSION="$(antlr4 -version 2>&1 | awk '{print $NF}')"
|
||||
fi
|
||||
|
||||
if [ "$CURRENT_ANTLR_VERSION" != "$ANTLR_VERSION" ]; then
|
||||
if ! command -v java &> /dev/null; then
|
||||
echo "ERROR: Java runtime is required to run ANTLR."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$HOME/.local/bin" "$ANTLR_JAR_DIR"
|
||||
curl -fsSL "https://www.antlr.org/download/antlr-${ANTLR_VERSION}-complete.jar" -o "$ANTLR_JAR_PATH"
|
||||
|
||||
cat > "$ANTLR_BIN_PATH" <<'EOF'
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
exec java -jar "$HOME/.local/lib/antlr-4.9.2-complete.jar" "$@"
|
||||
EOF
|
||||
|
||||
chmod 755 "$ANTLR_BIN_PATH"
|
||||
fi
|
||||
|
||||
# Install frontend dependencies
|
||||
echo "Installing frontend dependencies..."
|
||||
cd openmetadata-ui/src/main/resources/ui
|
||||
yarn install --frozen-lockfile
|
||||
cd -
|
||||
|
||||
# Set up Python virtual environment for ingestion
|
||||
echo "Setting up Python ingestion environment..."
|
||||
if command -v python3 &> /dev/null; then
|
||||
PYTHON_BIN="$(command -v python3)"
|
||||
elif command -v python &> /dev/null; then
|
||||
PYTHON_BIN="$(command -v python)"
|
||||
else
|
||||
echo "ERROR: Python is required but was not found in PATH."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Running python version: $($PYTHON_BIN --version)"
|
||||
|
||||
# Always use a dedicated venv in the devcontainer to avoid overwriting the host .venv
|
||||
# (which is volume-mounted and likely contains platform-incompatible binaries).
|
||||
VENV_DIR=".venv-devcontainer"
|
||||
|
||||
"$PYTHON_BIN" -m venv "$VENV_DIR"
|
||||
source "$VENV_DIR/bin/activate"
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
# Run Make targets from repo root to ensure scripts/ and ingestion/ paths resolve correctly
|
||||
make install_dev generate
|
||||
|
||||
# Verify prerequisites
|
||||
echo "Verifying prerequisites..."
|
||||
make prerequisites
|
||||
|
||||
echo "=== Development environment ready ==="
|
||||
echo ""
|
||||
echo "Quick start commands:"
|
||||
echo " Backend: mvn clean package -DskipTests"
|
||||
echo " Frontend: cd openmetadata-ui/src/main/resources/ui && yarn start"
|
||||
echo " Ingestion: source $VENV_DIR/bin/activate && cd ingestion"
|
||||
echo " Format: mvn spotless:apply (Java) | yarn lint:fix (Frontend)"
|
||||
Reference in New Issue
Block a user