You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ko...@apache.org on 2022/01/25 23:36:44 UTC

[couchdb-erlfdb] branch main updated (20ae851 -> 46af08f)

This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-erlfdb.git.


    from 20ae851  Update URL for FDB packages
     new 651631d  Fix issues caused by foundationdb.org breakage
     new 46af08f  Install FDB synchronously

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .devcontainer/Dockerfile               | 23 ++++++---------
 .devcontainer/create_cluster_file.bash | 52 ++++++++++++++++++++++++++++++++++
 .devcontainer/docker-compose.yaml      |  4 +--
 .github/workflows/ci.yml               |  4 +--
 4 files changed, 64 insertions(+), 19 deletions(-)
 create mode 100644 .devcontainer/create_cluster_file.bash

[couchdb-erlfdb] 02/02: Install FDB synchronously

Posted by ko...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-erlfdb.git

commit 46af08f50f543d1ddca6e545b726ec2b31a3bc88
Author: Adam Kocoloski <ko...@apache.org>
AuthorDate: Tue Jan 25 18:19:47 2022 -0500

    Install FDB synchronously
    
    We were seeing CI failures where the FDB installation would not be
    completed before we tried to invoke `fdbcli --version`
---
 .github/workflows/ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index da00984..8b5b64c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -99,8 +99,8 @@ jobs:
         run: |
           Set-PSDebug -Trace 1
           Invoke-WebRequest -Uri https://github.com/apple/foundationdb/releases/download/$env:FDB_VERSION/foundationdb-$env:FDB_VERSION-x64.msi -OutFile foundationdb-$env:FDB_VERSION-x64.msi
-          msiexec /i foundationdb-$env:FDB_VERSION-x64.msi /passive
-          echo "c:/Program Files/foundationdb/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
+          Start-Process -Wait -FilePath msiexec -ArgumentList /i, foundationdb-$env:FDB_VERSION-x64.msi, /passive
+          echo "C:\Program Files\foundationdb\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
       - name: Install FoundationDB (macOS)
         if: ${{ matrix.os == 'macos-latest' }}
         run: |

[couchdb-erlfdb] 01/02: Fix issues caused by foundationdb.org breakage

Posted by ko...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-erlfdb.git

commit 651631d02a91e11016e2acfb1b2e0ec311b88657
Author: Adam Kocoloski <ko...@apache.org>
AuthorDate: Tue Jan 25 14:39:05 2022 -0500

    Fix issues caused by foundationdb.org breakage
    
    The foundationdb.org collapse and subsequent move to GitHub created a
    bit of fallout:
    
    * Update package URLs from foundationdb.org to github.com
    
    * Install Python package via pip as it's not published on GitHub
    
    * Bump version to 6.3.23 as pypi has limited release selection
    
    * Vendor the create_cluster_file.bash script (FDB elected to remove it
      from their published container builds).
---
 .devcontainer/Dockerfile               | 23 ++++++---------
 .devcontainer/create_cluster_file.bash | 52 ++++++++++++++++++++++++++++++++++
 .devcontainer/docker-compose.yaml      |  4 +--
 3 files changed, 62 insertions(+), 17 deletions(-)

diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 2dec11e..fb9e43c 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -13,23 +13,11 @@ ARG FDB_VERSION
 
 # Install the FDB client used underneath erlfdb
 RUN set -ex; \
-    wget https://www.foundationdb.org/downloads/${FDB_VERSION}/ubuntu/installers/foundationdb-clients_${FDB_VERSION}-1_amd64.deb; \
+    wget https://github.com/apple/foundationdb/releases/download/${FDB_VERSION}/foundationdb-clients_${FDB_VERSION}-1_amd64.deb; \
     mkdir /var/lib/foundationdb; \
     dpkg -i foundationdb-clients_${FDB_VERSION}-1_amd64.deb; \
     rm foundationdb-clients_${FDB_VERSION}-1_amd64.deb
 
-# FDB bindings tester uses the Python bindings; install them from a
-# package to avoid building FDB from source
-RUN set -ex; \
-    wget https://www.foundationdb.org/downloads/${FDB_VERSION}/bindings/python/foundationdb-${FDB_VERSION}.tar.gz; \
-    tar zxf foundationdb-${FDB_VERSION}.tar.gz; \
-    cd foundationdb-${FDB_VERSION}; \
-    if [ "${FDB_VERSION}" < "6.3.0" ]; then \
-        python setup.py install; \
-    else \
-        python3 setup.py install; \
-    fi; \
-    rm ../foundationdb-${FDB_VERSION}.tar.gz
 
 # Clone FoundationDB repo to retrieve bindings tester package and
 # patch it to support erlfdb
@@ -43,9 +31,14 @@ RUN set -ex; \
 RUN set -ex; \
     apt-get update; \
     apt-get install -y --no-install-recommends \
-        dnsutils; \
+        dnsutils \
+        python3-setuptools \
+        python3-pip; \
     rm -rf /var/lib/apt/lists/*
 
-COPY --from=fdb /var/fdb/scripts/create_cluster_file.bash /usr/local/bin/
+# FDB bindings tester uses the Python bindings
+RUN pip3 install foundationdb==${FDB_VERSION}
+
+COPY create_cluster_file.bash /usr/local/bin/
 
 CMD sleep infinity
diff --git a/.devcontainer/create_cluster_file.bash b/.devcontainer/create_cluster_file.bash
new file mode 100644
index 0000000..73b9b12
--- /dev/null
+++ b/.devcontainer/create_cluster_file.bash
@@ -0,0 +1,52 @@
+#! /bin/bash
+
+#
+# create_cluster_file.bash
+#
+# This source file is part of the FoundationDB open source project
+#
+# Copyright 2013-2018 Apple Inc. and the FoundationDB project authors
+#
+# 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.
+#
+
+# This script creates a cluster file for a server or client.
+# This takes the cluster file path from the FDB_CLUSTER_FILE
+# environment variable, with a default of /etc/foundationdb/fdb.cluster
+#
+# The name of the coordinator must be defined in the FDB_COORDINATOR environment
+# variable, and it must be a name that can be resolved through DNS.
+
+function create_cluster_file() {
+	FDB_CLUSTER_FILE=${FDB_CLUSTER_FILE:-/etc/foundationdb/fdb.cluster}
+	mkdir -p $(dirname $FDB_CLUSTER_FILE)
+
+	if [[ -n "$FDB_CLUSTER_FILE_CONTENTS" ]]; then
+		echo "$FDB_CLUSTER_FILE_CONTENTS" > $FDB_CLUSTER_FILE
+	elif [[ -n $FDB_COORDINATOR ]]; then
+		coordinator_ip=$(dig +short $FDB_COORDINATOR)
+		if [[ -z "$coordinator_ip" ]]; then
+			echo "Failed to look up coordinator address for $FDB_COORDINATOR" 1>&2
+			exit 1
+		fi
+		coordinator_port=${FDB_COORDINATOR_PORT:-4500}
+		echo "docker:docker@$coordinator_ip:$coordinator_port" > $FDB_CLUSTER_FILE
+	else
+		echo "FDB_COORDINATOR environment variable not defined" 1>&2
+		exit 1
+	fi
+}
+
+if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
+	create_cluster_file "$@"
+fi
\ No newline at end of file
diff --git a/.devcontainer/docker-compose.yaml b/.devcontainer/docker-compose.yaml
index 79a310b..dceb276 100644
--- a/.devcontainer/docker-compose.yaml
+++ b/.devcontainer/docker-compose.yaml
@@ -7,7 +7,7 @@ services:
         ERLANG_VERSION: "24"
 
         # This should always match the value in fdb.image
-        FDB_VERSION: "6.2.30"
+        FDB_VERSION: "6.3.23"
 
     environment:
       # This needs to match the name of the FoundationDB service below
@@ -28,4 +28,4 @@ services:
     network_mode: service:fdb
 
   fdb:
-    image: foundationdb/foundationdb:6.2.30
+    image: foundationdb/foundationdb:6.3.23