mirror of https://github.com/citusdata/citus.git
Add devcontainer support to release 13.0 (#7739)
Add devcontainer support to release 13.0pull/7738/head
parent
c0a5f5c78c
commit
16ab11622b
|
@ -0,0 +1,33 @@
|
||||||
|
# gdbpg.py contains scripts to nicely print the postgres datastructures
|
||||||
|
# while in a gdb session. Since the vscode debugger is based on gdb this
|
||||||
|
# actually also works when debugging with vscode. Providing nice tools
|
||||||
|
# to understand the internal datastructures we are working with.
|
||||||
|
source /root/gdbpg.py
|
||||||
|
|
||||||
|
# when debugging postgres it is convenient to _always_ have a breakpoint
|
||||||
|
# trigger when an error is logged. Because .gdbinit is sourced before gdb
|
||||||
|
# is fully attached and has the sources loaded. To make sure the breakpoint
|
||||||
|
# is added when the library is loaded we temporary set the breakpoint pending
|
||||||
|
# to on. After we have added out breakpoint we revert back to the default
|
||||||
|
# configuration for breakpoint pending.
|
||||||
|
# The breakpoint is hard to read, but at entry of the function we don't have
|
||||||
|
# the level loaded in elevel. Instead we hardcode the location where the
|
||||||
|
# level of the current error is stored. Also gdb doesn't understand the
|
||||||
|
# ERROR symbol so we hardcode this to the value of ERROR. It is very unlikely
|
||||||
|
# this value will ever change in postgres, but if it does we might need to
|
||||||
|
# find a way to conditionally load the correct breakpoint.
|
||||||
|
set breakpoint pending on
|
||||||
|
break elog.c:errfinish if errordata[errordata_stack_depth].elevel == 21
|
||||||
|
set breakpoint pending auto
|
||||||
|
|
||||||
|
echo \n
|
||||||
|
echo ----------------------------------------------------------------------------------\n
|
||||||
|
echo when attaching to a postgres backend a breakpoint will be set on elog.c:errfinish \n
|
||||||
|
echo it will only break on errors being raised in postgres \n
|
||||||
|
echo \n
|
||||||
|
echo to disable this breakpoint from vscode run `-exec disable 1` in the debug console \n
|
||||||
|
echo this assumes it's the first breakpoint loaded as it is loaded from .gdbinit \n
|
||||||
|
echo this can be verified with `-exec info break`, enabling can be done with \n
|
||||||
|
echo `-exec enable 1` \n
|
||||||
|
echo ----------------------------------------------------------------------------------\n
|
||||||
|
echo \n
|
|
@ -0,0 +1 @@
|
||||||
|
postgresql-*.tar.bz2
|
|
@ -0,0 +1,7 @@
|
||||||
|
\timing on
|
||||||
|
\pset linestyle unicode
|
||||||
|
\pset border 2
|
||||||
|
\setenv PAGER 'pspg --no-mouse -bX --no-commandbar --no-topbar'
|
||||||
|
\set HISTSIZE 100000
|
||||||
|
\set PROMPT1 '\n%[%033[1m%]%M %n@%/:%> (PID: %p)%R%[%033[0m%]%# '
|
||||||
|
\set PROMPT2 ' '
|
|
@ -0,0 +1,12 @@
|
||||||
|
[[source]]
|
||||||
|
url = "https://pypi.org/simple"
|
||||||
|
verify_ssl = true
|
||||||
|
name = "pypi"
|
||||||
|
|
||||||
|
[packages]
|
||||||
|
docopt = "*"
|
||||||
|
|
||||||
|
[dev-packages]
|
||||||
|
|
||||||
|
[requires]
|
||||||
|
python_version = "3.9"
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"_meta": {
|
||||||
|
"hash": {
|
||||||
|
"sha256": "6956a6700ead5804aa56bd597c93bb4a13f208d2d49d3b5399365fd240ca0797"
|
||||||
|
},
|
||||||
|
"pipfile-spec": 6,
|
||||||
|
"requires": {
|
||||||
|
"python_version": "3.9"
|
||||||
|
},
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"name": "pypi",
|
||||||
|
"url": "https://pypi.org/simple",
|
||||||
|
"verify_ssl": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"docopt": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491"
|
||||||
|
],
|
||||||
|
"index": "pypi",
|
||||||
|
"version": "==0.6.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"develop": {}
|
||||||
|
}
|
|
@ -0,0 +1,84 @@
|
||||||
|
#! /usr/bin/env pipenv-shebang
|
||||||
|
"""Generate C/C++ properties file for VSCode.
|
||||||
|
|
||||||
|
Uses pgenv to iterate postgres versions and generate
|
||||||
|
a C/C++ properties file for VSCode containing the
|
||||||
|
include paths for the postgres headers.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
generate_c_cpp_properties-json.py <target_path>
|
||||||
|
generate_c_cpp_properties-json.py (-h | --help)
|
||||||
|
generate_c_cpp_properties-json.py --version
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h --help Show this screen.
|
||||||
|
--version Show version.
|
||||||
|
|
||||||
|
"""
|
||||||
|
import json
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
from docopt import docopt
|
||||||
|
|
||||||
|
|
||||||
|
def main(args):
|
||||||
|
target_path = args['<target_path>']
|
||||||
|
|
||||||
|
output = subprocess.check_output(['pgenv', 'versions'])
|
||||||
|
# typical output is:
|
||||||
|
# 14.8 pgsql-14.8
|
||||||
|
# * 15.3 pgsql-15.3
|
||||||
|
# 16beta2 pgsql-16beta2
|
||||||
|
# where the line marked with a * is the currently active version
|
||||||
|
#
|
||||||
|
# we are only interested in the first word of each line, which is the version number
|
||||||
|
# thus we strip the whitespace and the * from the line and split it into words
|
||||||
|
# and take the first word
|
||||||
|
versions = [line.strip('* ').split()[0] for line in output.decode('utf-8').splitlines()]
|
||||||
|
|
||||||
|
# create the list of configurations per version
|
||||||
|
configurations = []
|
||||||
|
for version in versions:
|
||||||
|
configurations.append(generate_configuration(version))
|
||||||
|
|
||||||
|
# create the json file
|
||||||
|
c_cpp_properties = {
|
||||||
|
"configurations": configurations,
|
||||||
|
"version": 4
|
||||||
|
}
|
||||||
|
|
||||||
|
# write the c_cpp_properties.json file
|
||||||
|
with open(target_path, 'w') as f:
|
||||||
|
json.dump(c_cpp_properties, f, indent=4)
|
||||||
|
|
||||||
|
|
||||||
|
def generate_configuration(version):
|
||||||
|
"""Returns a configuration for the given postgres version.
|
||||||
|
|
||||||
|
>>> generate_configuration('14.8')
|
||||||
|
{
|
||||||
|
"name": "Citus Development Configuration - Postgres 14.8",
|
||||||
|
"includePath": [
|
||||||
|
"/usr/local/include",
|
||||||
|
"/home/citus/.pgenv/src/postgresql-14.8/src/**",
|
||||||
|
"${workspaceFolder}/**",
|
||||||
|
"${workspaceFolder}/src/include/",
|
||||||
|
],
|
||||||
|
"configurationProvider": "ms-vscode.makefile-tools"
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
return {
|
||||||
|
"name": f"Citus Development Configuration - Postgres {version}",
|
||||||
|
"includePath": [
|
||||||
|
"/usr/local/include",
|
||||||
|
f"/home/citus/.pgenv/src/postgresql-{version}/src/**",
|
||||||
|
"${workspaceFolder}/**",
|
||||||
|
"${workspaceFolder}/src/include/",
|
||||||
|
],
|
||||||
|
"configurationProvider": "ms-vscode.makefile-tools"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
arguments = docopt(__doc__, version='0.1.0')
|
||||||
|
main(arguments)
|
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Attach Citus (devcontainer)",
|
||||||
|
"type": "cppdbg",
|
||||||
|
"request": "attach",
|
||||||
|
"processId": "${command:pickProcess}",
|
||||||
|
"program": "/home/citus/.pgenv/pgsql/bin/postgres",
|
||||||
|
"additionalSOLibSearchPath": "/home/citus/.pgenv/pgsql/lib",
|
||||||
|
"setupCommands": [
|
||||||
|
{
|
||||||
|
"text": "handle SIGUSR1 noprint nostop pass",
|
||||||
|
"description": "let gdb not stop when SIGUSR1 is sent to process",
|
||||||
|
"ignoreFailures": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Open core file",
|
||||||
|
"type": "cppdbg",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "/home/citus/.pgenv/pgsql/bin/postgres",
|
||||||
|
"coreDumpPath": "${input:corefile}",
|
||||||
|
"cwd": "${workspaceFolder}",
|
||||||
|
"MIMode": "gdb",
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"id": "corefile",
|
||||||
|
"type": "command",
|
||||||
|
"command": "extension.commandvariable.file.pickFile",
|
||||||
|
"args": {
|
||||||
|
"dialogTitle": "Select core file",
|
||||||
|
"include": "**/core*",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
|
@ -0,0 +1,217 @@
|
||||||
|
FROM ubuntu:22.04 AS base
|
||||||
|
|
||||||
|
# environment is to make python pass an interactive shell, probably not the best timezone given a wide variety of colleagues
|
||||||
|
ENV TZ=UTC
|
||||||
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||||
|
|
||||||
|
# install build tools
|
||||||
|
RUN apt update && apt install -y \
|
||||||
|
bzip2 \
|
||||||
|
cpanminus \
|
||||||
|
curl \
|
||||||
|
flex \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
libcurl4-gnutls-dev \
|
||||||
|
libicu-dev \
|
||||||
|
libkrb5-dev \
|
||||||
|
liblz4-dev \
|
||||||
|
libpam0g-dev \
|
||||||
|
libreadline-dev \
|
||||||
|
libselinux1-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libxslt-dev \
|
||||||
|
libzstd-dev \
|
||||||
|
locales \
|
||||||
|
make \
|
||||||
|
perl \
|
||||||
|
pkg-config \
|
||||||
|
python3 \
|
||||||
|
python3-pip \
|
||||||
|
software-properties-common \
|
||||||
|
sudo \
|
||||||
|
uuid-dev \
|
||||||
|
valgrind \
|
||||||
|
zlib1g-dev \
|
||||||
|
&& add-apt-repository ppa:deadsnakes/ppa -y \
|
||||||
|
&& apt install -y \
|
||||||
|
python3.9-full \
|
||||||
|
# software properties pulls in pkexec, which makes the debugger unusable in vscode
|
||||||
|
&& apt purge -y \
|
||||||
|
software-properties-common \
|
||||||
|
&& apt autoremove -y \
|
||||||
|
&& apt clean
|
||||||
|
|
||||||
|
RUN sudo pip3 install pipenv pipenv-shebang
|
||||||
|
|
||||||
|
RUN cpanm install IPC::Run
|
||||||
|
|
||||||
|
RUN locale-gen en_US.UTF-8
|
||||||
|
|
||||||
|
# add the citus user to sudoers and allow all sudoers to login without a password prompt
|
||||||
|
RUN useradd -ms /bin/bash citus \
|
||||||
|
&& usermod -aG sudo citus \
|
||||||
|
&& echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
|
||||||
|
|
||||||
|
WORKDIR /home/citus
|
||||||
|
USER citus
|
||||||
|
|
||||||
|
# run all make commands with the number of cores available
|
||||||
|
RUN echo "export MAKEFLAGS=\"-j \$(nproc)\"" >> "/home/citus/.bashrc"
|
||||||
|
|
||||||
|
RUN git clone --branch v1.3.2 --depth 1 https://github.com/theory/pgenv.git .pgenv
|
||||||
|
COPY --chown=citus:citus pgenv/config/ .pgenv/config/
|
||||||
|
ENV PATH="/home/citus/.pgenv/bin:${PATH}"
|
||||||
|
ENV PATH="/home/citus/.pgenv/pgsql/bin:${PATH}"
|
||||||
|
|
||||||
|
USER citus
|
||||||
|
|
||||||
|
# build postgres versions separately for effective parrallelism and caching of already built versions when changing only certain versions
|
||||||
|
FROM base AS pg14
|
||||||
|
RUN MAKEFLAGS="-j $(nproc)" pgenv build 14.12
|
||||||
|
RUN rm .pgenv/src/*.tar*
|
||||||
|
RUN make -C .pgenv/src/postgresql-*/ clean
|
||||||
|
RUN make -C .pgenv/src/postgresql-*/src/include install
|
||||||
|
|
||||||
|
# create a staging directory with all files we want to copy from our pgenv build
|
||||||
|
# we will copy the contents of the staged folder into the final image at once
|
||||||
|
RUN mkdir .pgenv-staging/
|
||||||
|
RUN cp -r .pgenv/src .pgenv/pgsql-* .pgenv/config .pgenv-staging/
|
||||||
|
RUN rm .pgenv-staging/config/default.conf
|
||||||
|
|
||||||
|
FROM base AS pg15
|
||||||
|
RUN MAKEFLAGS="-j $(nproc)" pgenv build 15.7
|
||||||
|
RUN rm .pgenv/src/*.tar*
|
||||||
|
RUN make -C .pgenv/src/postgresql-*/ clean
|
||||||
|
RUN make -C .pgenv/src/postgresql-*/src/include install
|
||||||
|
|
||||||
|
# create a staging directory with all files we want to copy from our pgenv build
|
||||||
|
# we will copy the contents of the staged folder into the final image at once
|
||||||
|
RUN mkdir .pgenv-staging/
|
||||||
|
RUN cp -r .pgenv/src .pgenv/pgsql-* .pgenv/config .pgenv-staging/
|
||||||
|
RUN rm .pgenv-staging/config/default.conf
|
||||||
|
|
||||||
|
FROM base AS pg16
|
||||||
|
RUN MAKEFLAGS="-j $(nproc)" pgenv build 16.3
|
||||||
|
RUN rm .pgenv/src/*.tar*
|
||||||
|
RUN make -C .pgenv/src/postgresql-*/ clean
|
||||||
|
RUN make -C .pgenv/src/postgresql-*/src/include install
|
||||||
|
|
||||||
|
# create a staging directory with all files we want to copy from our pgenv build
|
||||||
|
# we will copy the contents of the staged folder into the final image at once
|
||||||
|
RUN mkdir .pgenv-staging/
|
||||||
|
RUN cp -r .pgenv/src .pgenv/pgsql-* .pgenv/config .pgenv-staging/
|
||||||
|
RUN rm .pgenv-staging/config/default.conf
|
||||||
|
|
||||||
|
FROM base AS uncrustify-builder
|
||||||
|
|
||||||
|
RUN sudo apt update && sudo apt install -y cmake tree
|
||||||
|
|
||||||
|
WORKDIR /uncrustify
|
||||||
|
RUN curl -L https://github.com/uncrustify/uncrustify/archive/uncrustify-0.68.1.tar.gz | tar xz
|
||||||
|
WORKDIR /uncrustify/uncrustify-uncrustify-0.68.1/
|
||||||
|
RUN mkdir build
|
||||||
|
WORKDIR /uncrustify/uncrustify-uncrustify-0.68.1/build/
|
||||||
|
RUN cmake ..
|
||||||
|
RUN MAKEFLAGS="-j $(nproc)" make -s
|
||||||
|
|
||||||
|
RUN make install DESTDIR=/uncrustify
|
||||||
|
|
||||||
|
# builder for all pipenv's to get them contained in a single layer
|
||||||
|
FROM base AS pipenv
|
||||||
|
|
||||||
|
WORKDIR /workspaces/citus/
|
||||||
|
|
||||||
|
# tools to sync pgenv with vscode
|
||||||
|
COPY --chown=citus:citus .vscode/Pipfile .vscode/Pipfile.lock .devcontainer/.vscode/
|
||||||
|
RUN ( cd .devcontainer/.vscode && pipenv install )
|
||||||
|
|
||||||
|
# environment to run our failure tests
|
||||||
|
COPY --chown=citus:citus src/ src/
|
||||||
|
RUN ( cd src/test/regress && pipenv install )
|
||||||
|
|
||||||
|
# assemble the final container by copying over the artifacts from separately build containers
|
||||||
|
FROM base AS devcontainer
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.source=https://github.com/citusdata/citus
|
||||||
|
LABEL org.opencontainers.image.description="Development container for the Citus project"
|
||||||
|
LABEL org.opencontainers.image.licenses=AGPL-3.0-only
|
||||||
|
|
||||||
|
RUN yes | sudo unminimize
|
||||||
|
|
||||||
|
# install developer productivity tools
|
||||||
|
RUN sudo apt update \
|
||||||
|
&& sudo apt install -y \
|
||||||
|
autoconf2.69 \
|
||||||
|
bash-completion \
|
||||||
|
fswatch \
|
||||||
|
gdb \
|
||||||
|
htop \
|
||||||
|
libdbd-pg-perl \
|
||||||
|
libdbi-perl \
|
||||||
|
lsof \
|
||||||
|
man \
|
||||||
|
net-tools \
|
||||||
|
psmisc \
|
||||||
|
pspg \
|
||||||
|
tree \
|
||||||
|
vim \
|
||||||
|
&& sudo apt clean
|
||||||
|
|
||||||
|
# Since gdb will run in the context of the root user when debugging citus we will need to both
|
||||||
|
# download the gdbpg.py script as the root user, into their home directory, as well as add .gdbinit
|
||||||
|
# as a file owned by root
|
||||||
|
# This will make that as soon as the debugger attaches to a postgres backend (or frankly any other process)
|
||||||
|
# the gdbpg.py script will be sourced and the developer can direcly use it.
|
||||||
|
RUN sudo curl -o /root/gdbpg.py https://raw.githubusercontent.com/tvesely/gdbpg/6065eee7872457785f830925eac665aa535caf62/gdbpg.py
|
||||||
|
COPY --chown=root:root .gdbinit /root/
|
||||||
|
|
||||||
|
# install developer dependencies in the global environment
|
||||||
|
RUN --mount=type=bind,source=requirements.txt,target=requirements.txt pip install -r requirements.txt
|
||||||
|
|
||||||
|
# for persistent bash history across devcontainers we need to have
|
||||||
|
# a) a directory to store the history in
|
||||||
|
# b) a prompt command to append the history to the file
|
||||||
|
# c) specify the history file to store the history in
|
||||||
|
# b and c are done in the .bashrc to make it persistent across shells only
|
||||||
|
RUN sudo install -d -o citus -g citus /commandhistory \
|
||||||
|
&& echo "export PROMPT_COMMAND='history -a' && export HISTFILE=/commandhistory/.bash_history" >> "/home/citus/.bashrc"
|
||||||
|
|
||||||
|
# install citus-dev
|
||||||
|
RUN git clone --branch develop https://github.com/citusdata/tools.git citus-tools \
|
||||||
|
&& ( cd citus-tools/citus_dev && pipenv install ) \
|
||||||
|
&& mkdir -p ~/.local/bin \
|
||||||
|
&& ln -s /home/citus/citus-tools/citus_dev/citus_dev-pipenv .local/bin/citus_dev \
|
||||||
|
&& sudo make -C citus-tools/uncrustify install bindir=/usr/local/bin pkgsysconfdir=/usr/local/etc/ \
|
||||||
|
&& mkdir -p ~/.local/share/bash-completion/completions/ \
|
||||||
|
&& ln -s ~/citus-tools/citus_dev/bash_completion ~/.local/share/bash-completion/completions/citus_dev
|
||||||
|
|
||||||
|
# TODO some LC_ALL errors, possibly solved by locale-gen
|
||||||
|
RUN git clone https://github.com/so-fancy/diff-so-fancy.git \
|
||||||
|
&& mkdir -p ~/.local/bin \
|
||||||
|
&& ln -s /home/citus/diff-so-fancy/diff-so-fancy .local/bin/
|
||||||
|
|
||||||
|
COPY --link --from=uncrustify-builder /uncrustify/usr/ /usr/
|
||||||
|
|
||||||
|
COPY --link --from=pg14 /home/citus/.pgenv-staging/ /home/citus/.pgenv/
|
||||||
|
COPY --link --from=pg15 /home/citus/.pgenv-staging/ /home/citus/.pgenv/
|
||||||
|
COPY --link --from=pg16 /home/citus/.pgenv-staging/ /home/citus/.pgenv/
|
||||||
|
|
||||||
|
COPY --link --from=pipenv /home/citus/.local/share/virtualenvs/ /home/citus/.local/share/virtualenvs/
|
||||||
|
|
||||||
|
# place to run your cluster with citus_dev
|
||||||
|
VOLUME /data
|
||||||
|
RUN sudo mkdir /data \
|
||||||
|
&& sudo chown citus:citus /data
|
||||||
|
|
||||||
|
COPY --chown=citus:citus .psqlrc .
|
||||||
|
|
||||||
|
# with the copy linking of layers github actions seem to misbehave with the ownership of the
|
||||||
|
# directories leading upto the link, hence a small patch layer to have to right ownerships set
|
||||||
|
RUN sudo chown --from=root:root citus:citus -R ~
|
||||||
|
|
||||||
|
# sets default pg version
|
||||||
|
RUN pgenv switch 16.3
|
||||||
|
|
||||||
|
# make connecting to the coordinator easy
|
||||||
|
ENV PGPORT=9700
|
|
@ -0,0 +1,11 @@
|
||||||
|
|
||||||
|
init: ../.vscode/c_cpp_properties.json ../.vscode/launch.json
|
||||||
|
|
||||||
|
../.vscode:
|
||||||
|
mkdir -p ../.vscode
|
||||||
|
|
||||||
|
../.vscode/launch.json: ../.vscode .vscode/launch.json
|
||||||
|
cp .vscode/launch.json ../.vscode/launch.json
|
||||||
|
|
||||||
|
../.vscode/c_cpp_properties.json: ../.vscode
|
||||||
|
./.vscode/generate_c_cpp_properties-json.py ../.vscode/c_cpp_properties.json
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"image": "ghcr.io/citusdata/citus-devcontainer:main",
|
||||||
|
"runArgs": [
|
||||||
|
"--cap-add=SYS_PTRACE",
|
||||||
|
"--ulimit=core=-1",
|
||||||
|
],
|
||||||
|
"forwardPorts": [
|
||||||
|
9700
|
||||||
|
],
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"extensions": [
|
||||||
|
"eamodio.gitlens",
|
||||||
|
"GitHub.copilot-chat",
|
||||||
|
"GitHub.copilot",
|
||||||
|
"github.vscode-github-actions",
|
||||||
|
"github.vscode-pull-request-github",
|
||||||
|
"ms-vscode.cpptools-extension-pack",
|
||||||
|
"ms-vsliveshare.vsliveshare",
|
||||||
|
"rioj7.command-variable",
|
||||||
|
],
|
||||||
|
"settings": {
|
||||||
|
"files.exclude": {
|
||||||
|
"**/*.o": true,
|
||||||
|
"**/.deps/": true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mounts": [
|
||||||
|
"type=volume,target=/data",
|
||||||
|
"source=citus-bashhistory,target=/commandhistory,type=volume",
|
||||||
|
],
|
||||||
|
"updateContentCommand": "./configure",
|
||||||
|
"postCreateCommand": "make -C .devcontainer/",
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
PGENV_MAKE_OPTIONS=(-s)
|
||||||
|
|
||||||
|
PGENV_CONFIGURE_OPTIONS=(
|
||||||
|
--enable-debug
|
||||||
|
--enable-depend
|
||||||
|
--enable-cassert
|
||||||
|
--enable-tap-tests
|
||||||
|
'CFLAGS=-ggdb -Og -g3 -fno-omit-frame-pointer -DUSE_VALGRIND'
|
||||||
|
--with-openssl
|
||||||
|
--with-libxml
|
||||||
|
--with-libxslt
|
||||||
|
--with-uuid=e2fs
|
||||||
|
--with-icu
|
||||||
|
--with-lz4
|
||||||
|
)
|
|
@ -0,0 +1,9 @@
|
||||||
|
black==23.11.0
|
||||||
|
click==8.1.7
|
||||||
|
isort==5.12.0
|
||||||
|
mypy-extensions==1.0.0
|
||||||
|
packaging==23.2
|
||||||
|
pathspec==0.11.2
|
||||||
|
platformdirs==4.0.0
|
||||||
|
tomli==2.0.1
|
||||||
|
typing_extensions==4.8.0
|
|
@ -0,0 +1,28 @@
|
||||||
|
[[source]]
|
||||||
|
name = "pypi"
|
||||||
|
url = "https://pypi.python.org/simple"
|
||||||
|
verify_ssl = true
|
||||||
|
|
||||||
|
[packages]
|
||||||
|
mitmproxy = {editable = true, ref = "main", git = "https://github.com/citusdata/mitmproxy.git"}
|
||||||
|
construct = "*"
|
||||||
|
docopt = "==0.6.2"
|
||||||
|
cryptography = ">=41.0.4"
|
||||||
|
pytest = "*"
|
||||||
|
psycopg = "*"
|
||||||
|
filelock = "*"
|
||||||
|
pytest-asyncio = "*"
|
||||||
|
pytest-timeout = "*"
|
||||||
|
pytest-xdist = "*"
|
||||||
|
pytest-repeat = "*"
|
||||||
|
pyyaml = "*"
|
||||||
|
werkzeug = "==2.3.7"
|
||||||
|
|
||||||
|
[dev-packages]
|
||||||
|
black = "*"
|
||||||
|
isort = "*"
|
||||||
|
flake8 = "*"
|
||||||
|
flake8-bugbear = "*"
|
||||||
|
|
||||||
|
[requires]
|
||||||
|
python_version = "3.9"
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue