Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 10 additions & 5 deletions .github/workflows/install-edgedb.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,15 +5,20 @@ shopt -s nullglob

srv="https://packages.edgedb.com"

curl -fL "${srv}/dist/x86_64-unknown-linux-musl/edgedb-cli" \
> "/usr/local/bin/edgedb"
curl -fL "${srv}/dist/$(uname -m)-unknown-linux-musl/edgedb-cli" \
> "/usr/bin/edgedb"

chmod +x "/usr/local/bin/edgedb"
chmod +x "/usr/bin/edgedb"

useradd --shell /bin/bash edgedb
if command -v useradd >/dev/null 2>&1; then
useradd --shell /bin/bash edgedb
else
# musllinux/alpine doesn't have useradd
adduser -s /bin/bash -D edgedb
fi

su -l edgedb -c "edgedb server install"
ln -s $(su -l edgedb -c "edgedb server info --latest --bin-path") \
"/usr/local/bin/edgedb-server"
"/usr/bin/edgedb-server"

edgedb-server --version
62 changes: 42 additions & 20 deletions .github/workflows/release.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ jobs:
mkdir -p dist/
echo "${VERSION}" > dist/VERSION

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/
Expand All@@ -52,7 +52,7 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true
Expand All@@ -65,19 +65,41 @@ jobs:
pip install -U setuptools wheel pip
python setup.py sdist

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/*.tar.*

build-wheels:
build-wheels-matrix:
needs: validate-release-request
runs-on: ubuntu-latest
outputs:
include: ${{ steps.set-matrix.outputs.include }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- run: pip install cibuildwheel==2.12.3
- id: set-matrix
# Cannot test on Musl distros yet.
run: |
MATRIX_INCLUDE=$(
{
cibuildwheel --print-build-identifiers --platform linux --arch x86_64,aarch64 | grep cp | grep many | jq -nRc '{"only": inputs, "os": "ubuntu-latest"}' \
&& cibuildwheel --print-build-identifiers --platform macos --arch x86_64,arm64 | grep cp | jq -nRc '{"only": inputs, "os": "macos-latest"}' \
&& cibuildwheel --print-build-identifiers --platform windows --arch AMD64 | grep cp | jq -nRc '{"only": inputs, "os": "windows-2019"}'
} | jq -sc
)
echo "include=$MATRIX_INCLUDE" >> $GITHUB_OUTPUT
build-wheels:
needs: build-wheels-matrix
runs-on: ${{ matrix.os }}
name: Build ${{ matrix.only }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-2019]
cibw_python: ["cp37-*", "cp38-*", "cp39-*", "cp310-*"]
cibw_arch: ["auto64"]
include: ${{ fromJson(needs.build-wheels-matrix.outputs.include) }}

defaults:
run:
Expand All@@ -87,32 +109,32 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true

- name: Setup WSL
if: ${{ steps.release.outputs.version == 0 && matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v1
if: ${{ matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v2
with:
wsl-shell-user: edgedb
additional-packages:
ca-certificates
curl

- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v2

- name: Install EdgeDB
uses: edgedb/setup-edgedb@v1

- uses: pypa/cibuildwheel@v2.3.1
- uses: pypa/cibuildwheel@v2.12.3
with:
only: ${{ matrix.only }}
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: ${{ matrix.cibw_python }}
# Cannot test on Musl distros yet.
CIBW_SKIP: "*-musllinux*"
CIBW_ARCHS: ${{ matrix.cibw_arch }}
# EdgeDB doesn't run on CentOS 6, so use 2014 as baseline
CIBW_MANYLINUX_X86_64_IMAGE: "quay.io/pypa/manylinux2014_x86_64"
CIBW_BEFORE_ALL_LINUX: >
.github/workflows/install-edgedb.sh
CIBW_TEST_EXTRAS: "test"
Expand All@@ -126,7 +148,7 @@ jobs:
&& chmod -R go+rX "$(dirname $(dirname $(dirname $PY)))"
&& su -l edgedb -c "EDGEDB_PYTHON_TEST_CODEGEN_CMD=$CODEGEN $PY {project}/tests/__init__.py"

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: wheelhouse/*.whl
Expand All@@ -136,12 +158,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 5
submodules: false

- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v3
with:
name: dist
path: dist/
Expand Down
7 changes: 6 additions & 1 deletion edgedb/_testbase.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,7 +135,7 @@ def _start_cluster(*, cleanup_atexit=True):
stderr=subprocess.STDOUT,
)

for _ in range(250):
for _ in range(600):
try:
with open(status_file, 'rb') as f:
for line in f:
Expand DownExpand Up@@ -171,6 +171,11 @@ def _start_cluster(*, cleanup_atexit=True):

client = edgedb.create_client(password='test', **con_args)
client.ensure_connected()
client.execute("""
# Set session_idle_transaction_timeout to 5 minutes.
CONFIGURE INSTANCE SET session_idle_transaction_timeout :=
<duration>'5 minutes';
""")
_default_cluster = {
'proc': p,
'client': client,
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
3 changes: 2 additions & 1 deletion setup.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -287,7 +287,7 @@ def finalize_options(self):
author_email='hello@magic.io',
url='https://github.com/edgedb/edgedb-python',
license='Apache License, Version 2.0',
packages=['edgedb'],
packages=setuptools.find_packages(),
provides=['edgedb'],
zip_safe=False,
include_package_data=True,
Expand DownExpand Up@@ -337,6 +337,7 @@ def finalize_options(self):
],
cmdclass={'build_ext': build_ext},
test_suite='tests.suite',
python_requires=">=3.7",
install_requires=[
'typing-extensions>=3.10.0; python_version < "3.8.0"',
'certifi>=2021.5.30; platform_system == "Windows"',
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 10 additions & 5 deletions .github/workflows/install-edgedb.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,15 +5,20 @@ shopt -s nullglob

srv="https://packages.edgedb.com"

curl -fL "${srv}/dist/x86_64-unknown-linux-musl/edgedb-cli" \
> "/usr/local/bin/edgedb"
curl -fL "${srv}/dist/$(uname -m)-unknown-linux-musl/edgedb-cli" \
> "/usr/bin/edgedb"

chmod +x "/usr/local/bin/edgedb"
chmod +x "/usr/bin/edgedb"

useradd --shell /bin/bash edgedb
if command -v useradd >/dev/null 2>&1; then
useradd --shell /bin/bash edgedb
else
# musllinux/alpine doesn't have useradd
adduser -s /bin/bash -D edgedb
fi

su -l edgedb -c "edgedb server install"
ln -s $(su -l edgedb -c "edgedb server info --latest --bin-path") \
"/usr/local/bin/edgedb-server"
"/usr/bin/edgedb-server"

edgedb-server --version
62 changes: 42 additions & 20 deletions .github/workflows/release.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ jobs:
mkdir -p dist/
echo "${VERSION}" > dist/VERSION

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/
Expand All@@ -52,7 +52,7 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true
Expand All@@ -65,19 +65,41 @@ jobs:
pip install -U setuptools wheel pip
python setup.py sdist

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/*.tar.*

build-wheels:
build-wheels-matrix:
needs: validate-release-request
runs-on: ubuntu-latest
outputs:
include: ${{ steps.set-matrix.outputs.include }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- run: pip install cibuildwheel==2.12.3
- id: set-matrix
# Cannot test on Musl distros yet.
run: |
MATRIX_INCLUDE=$(
{
cibuildwheel --print-build-identifiers --platform linux --arch x86_64,aarch64 | grep cp | grep many | jq -nRc '{"only": inputs, "os": "ubuntu-latest"}' \
&& cibuildwheel --print-build-identifiers --platform macos --arch x86_64,arm64 | grep cp | jq -nRc '{"only": inputs, "os": "macos-latest"}' \
&& cibuildwheel --print-build-identifiers --platform windows --arch AMD64 | grep cp | jq -nRc '{"only": inputs, "os": "windows-2019"}'
} | jq -sc
)
echo "include=$MATRIX_INCLUDE" >> $GITHUB_OUTPUT
build-wheels:
needs: build-wheels-matrix
runs-on: ${{ matrix.os }}
name: Build ${{ matrix.only }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-2019]
cibw_python: ["cp37-*", "cp38-*", "cp39-*", "cp310-*"]
cibw_arch: ["auto64"]
include: ${{ fromJson(needs.build-wheels-matrix.outputs.include) }}

defaults:
run:
Expand All@@ -87,32 +109,32 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true

- name: Setup WSL
if: ${{ steps.release.outputs.version == 0 && matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v1
if: ${{ matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v2
with:
wsl-shell-user: edgedb
additional-packages:
ca-certificates
curl

- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v2

- name: Install EdgeDB
uses: edgedb/setup-edgedb@v1

- uses: pypa/cibuildwheel@v2.3.1
- uses: pypa/cibuildwheel@v2.12.3
with:
only: ${{ matrix.only }}
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: ${{ matrix.cibw_python }}
# Cannot test on Musl distros yet.
CIBW_SKIP: "*-musllinux*"
CIBW_ARCHS: ${{ matrix.cibw_arch }}
# EdgeDB doesn't run on CentOS 6, so use 2014 as baseline
CIBW_MANYLINUX_X86_64_IMAGE: "quay.io/pypa/manylinux2014_x86_64"
CIBW_BEFORE_ALL_LINUX: >
.github/workflows/install-edgedb.sh
CIBW_TEST_EXTRAS: "test"
Expand All@@ -126,7 +148,7 @@ jobs:
&& chmod -R go+rX "$(dirname $(dirname $(dirname $PY)))"
&& su -l edgedb -c "EDGEDB_PYTHON_TEST_CODEGEN_CMD=$CODEGEN $PY {project}/tests/__init__.py"

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: wheelhouse/*.whl
Expand All@@ -136,12 +158,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 5
submodules: false

- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v3
with:
name: dist
path: dist/
Expand Down
7 changes: 6 additions & 1 deletion edgedb/_testbase.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,7 +135,7 @@ def _start_cluster(*, cleanup_atexit=True):
stderr=subprocess.STDOUT,
)

for _ in range(250):
for _ in range(600):
try:
with open(status_file, 'rb') as f:
for line in f:
Expand DownExpand Up@@ -171,6 +171,11 @@ def _start_cluster(*, cleanup_atexit=True):

client = edgedb.create_client(password='test', **con_args)
client.ensure_connected()
client.execute("""
# Set session_idle_transaction_timeout to 5 minutes.
CONFIGURE INSTANCE SET session_idle_transaction_timeout :=
<duration>'5 minutes';
""")
_default_cluster = {
'proc': p,
'client': client,
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
3 changes: 2 additions & 1 deletion setup.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -287,7 +287,7 @@ def finalize_options(self):
author_email='hello@magic.io',
url='https://github.com/edgedb/edgedb-python',
license='Apache License, Version 2.0',
packages=['edgedb'],
packages=setuptools.find_packages(),
provides=['edgedb'],
zip_safe=False,
include_package_data=True,
Expand DownExpand Up@@ -337,6 +337,7 @@ def finalize_options(self):
],
cmdclass={'build_ext': build_ext},
test_suite='tests.suite',
python_requires=">=3.7",
install_requires=[
'typing-extensions>=3.10.0; python_version < "3.8.0"',
'certifi>=2021.5.30; platform_system == "Windows"',
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 10 additions & 5 deletions .github/workflows/install-edgedb.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,15 +5,20 @@ shopt -s nullglob

srv="https://packages.edgedb.com"

curl -fL "${srv}/dist/x86_64-unknown-linux-musl/edgedb-cli" \
> "/usr/local/bin/edgedb"
curl -fL "${srv}/dist/$(uname -m)-unknown-linux-musl/edgedb-cli" \
> "/usr/bin/edgedb"

chmod +x "/usr/local/bin/edgedb"
chmod +x "/usr/bin/edgedb"

useradd --shell /bin/bash edgedb
if command -v useradd >/dev/null 2>&1; then
useradd --shell /bin/bash edgedb
else
# musllinux/alpine doesn't have useradd
adduser -s /bin/bash -D edgedb
fi

su -l edgedb -c "edgedb server install"
ln -s $(su -l edgedb -c "edgedb server info --latest --bin-path") \
"/usr/local/bin/edgedb-server"
"/usr/bin/edgedb-server"

edgedb-server --version
62 changes: 42 additions & 20 deletions .github/workflows/release.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ jobs:
mkdir -p dist/
echo "${VERSION}" > dist/VERSION

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/
Expand All@@ -52,7 +52,7 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true
Expand All@@ -65,19 +65,41 @@ jobs:
pip install -U setuptools wheel pip
python setup.py sdist

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/*.tar.*

build-wheels:
build-wheels-matrix:
needs: validate-release-request
runs-on: ubuntu-latest
outputs:
include: ${{ steps.set-matrix.outputs.include }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- run: pip install cibuildwheel==2.12.3
- id: set-matrix
# Cannot test on Musl distros yet.
run: |
MATRIX_INCLUDE=$(
{
cibuildwheel --print-build-identifiers --platform linux --arch x86_64,aarch64 | grep cp | grep many | jq -nRc '{"only": inputs, "os": "ubuntu-latest"}' \
&& cibuildwheel --print-build-identifiers --platform macos --arch x86_64,arm64 | grep cp | jq -nRc '{"only": inputs, "os": "macos-latest"}' \
&& cibuildwheel --print-build-identifiers --platform windows --arch AMD64 | grep cp | jq -nRc '{"only": inputs, "os": "windows-2019"}'
} | jq -sc
)
echo "include=$MATRIX_INCLUDE" >> $GITHUB_OUTPUT
build-wheels:
needs: build-wheels-matrix
runs-on: ${{ matrix.os }}
name: Build ${{ matrix.only }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-2019]
cibw_python: ["cp37-*", "cp38-*", "cp39-*", "cp310-*"]
cibw_arch: ["auto64"]
include: ${{ fromJson(needs.build-wheels-matrix.outputs.include) }}

defaults:
run:
Expand All@@ -87,32 +109,32 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true

- name: Setup WSL
if: ${{ steps.release.outputs.version == 0 && matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v1
if: ${{ matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v2
with:
wsl-shell-user: edgedb
additional-packages:
ca-certificates
curl

- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v2

- name: Install EdgeDB
uses: edgedb/setup-edgedb@v1

- uses: pypa/cibuildwheel@v2.3.1
- uses: pypa/cibuildwheel@v2.12.3
with:
only: ${{ matrix.only }}
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: ${{ matrix.cibw_python }}
# Cannot test on Musl distros yet.
CIBW_SKIP: "*-musllinux*"
CIBW_ARCHS: ${{ matrix.cibw_arch }}
# EdgeDB doesn't run on CentOS 6, so use 2014 as baseline
CIBW_MANYLINUX_X86_64_IMAGE: "quay.io/pypa/manylinux2014_x86_64"
CIBW_BEFORE_ALL_LINUX: >
.github/workflows/install-edgedb.sh
CIBW_TEST_EXTRAS: "test"
Expand All@@ -126,7 +148,7 @@ jobs:
&& chmod -R go+rX "$(dirname $(dirname $(dirname $PY)))"
&& su -l edgedb -c "EDGEDB_PYTHON_TEST_CODEGEN_CMD=$CODEGEN $PY {project}/tests/__init__.py"

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: wheelhouse/*.whl
Expand All@@ -136,12 +158,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 5
submodules: false

- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v3
with:
name: dist
path: dist/
Expand Down
7 changes: 6 additions & 1 deletion edgedb/_testbase.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,7 +135,7 @@ def _start_cluster(*, cleanup_atexit=True):
stderr=subprocess.STDOUT,
)

for _ in range(250):
for _ in range(600):
try:
with open(status_file, 'rb') as f:
for line in f:
Expand DownExpand Up@@ -171,6 +171,11 @@ def _start_cluster(*, cleanup_atexit=True):

client = edgedb.create_client(password='test', **con_args)
client.ensure_connected()
client.execute("""
# Set session_idle_transaction_timeout to 5 minutes.
CONFIGURE INSTANCE SET session_idle_transaction_timeout :=
<duration>'5 minutes';
""")
_default_cluster = {
'proc': p,
'client': client,
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
3 changes: 2 additions & 1 deletion setup.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -287,7 +287,7 @@ def finalize_options(self):
author_email='hello@magic.io',
url='https://github.com/edgedb/edgedb-python',
license='Apache License, Version 2.0',
packages=['edgedb'],
packages=setuptools.find_packages(),
provides=['edgedb'],
zip_safe=False,
include_package_data=True,
Expand DownExpand Up@@ -337,6 +337,7 @@ def finalize_options(self):
],
cmdclass={'build_ext': build_ext},
test_suite='tests.suite',
python_requires=">=3.7",
install_requires=[
'typing-extensions>=3.10.0; python_version < "3.8.0"',
'certifi>=2021.5.30; platform_system == "Windows"',
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 10 additions & 5 deletions .github/workflows/install-edgedb.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,15 +5,20 @@ shopt -s nullglob

srv="https://packages.edgedb.com"

curl -fL "${srv}/dist/x86_64-unknown-linux-musl/edgedb-cli" \
> "/usr/local/bin/edgedb"
curl -fL "${srv}/dist/$(uname -m)-unknown-linux-musl/edgedb-cli" \
> "/usr/bin/edgedb"

chmod +x "/usr/local/bin/edgedb"
chmod +x "/usr/bin/edgedb"

useradd --shell /bin/bash edgedb
if command -v useradd >/dev/null 2>&1; then
useradd --shell /bin/bash edgedb
else
# musllinux/alpine doesn't have useradd
adduser -s /bin/bash -D edgedb
fi

su -l edgedb -c "edgedb server install"
ln -s $(su -l edgedb -c "edgedb server info --latest --bin-path") \
"/usr/local/bin/edgedb-server"
"/usr/bin/edgedb-server"

edgedb-server --version
62 changes: 42 additions & 20 deletions .github/workflows/release.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ jobs:
mkdir -p dist/
echo "${VERSION}" > dist/VERSION

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/
Expand All@@ -52,7 +52,7 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true
Expand All@@ -65,19 +65,41 @@ jobs:
pip install -U setuptools wheel pip
python setup.py sdist

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/*.tar.*

build-wheels:
build-wheels-matrix:
needs: validate-release-request
runs-on: ubuntu-latest
outputs:
include: ${{ steps.set-matrix.outputs.include }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- run: pip install cibuildwheel==2.12.3
- id: set-matrix
# Cannot test on Musl distros yet.
run: |
MATRIX_INCLUDE=$(
{
cibuildwheel --print-build-identifiers --platform linux --arch x86_64,aarch64 | grep cp | grep many | jq -nRc '{"only": inputs, "os": "ubuntu-latest"}' \
&& cibuildwheel --print-build-identifiers --platform macos --arch x86_64,arm64 | grep cp | jq -nRc '{"only": inputs, "os": "macos-latest"}' \
&& cibuildwheel --print-build-identifiers --platform windows --arch AMD64 | grep cp | jq -nRc '{"only": inputs, "os": "windows-2019"}'
} | jq -sc
)
echo "include=$MATRIX_INCLUDE" >> $GITHUB_OUTPUT
build-wheels:
needs: build-wheels-matrix
runs-on: ${{ matrix.os }}
name: Build ${{ matrix.only }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-2019]
cibw_python: ["cp37-*", "cp38-*", "cp39-*", "cp310-*"]
cibw_arch: ["auto64"]
include: ${{ fromJson(needs.build-wheels-matrix.outputs.include) }}

defaults:
run:
Expand All@@ -87,32 +109,32 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true

- name: Setup WSL
if: ${{ steps.release.outputs.version == 0 && matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v1
if: ${{ matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v2
with:
wsl-shell-user: edgedb
additional-packages:
ca-certificates
curl

- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v2

- name: Install EdgeDB
uses: edgedb/setup-edgedb@v1

- uses: pypa/cibuildwheel@v2.3.1
- uses: pypa/cibuildwheel@v2.12.3
with:
only: ${{ matrix.only }}
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: ${{ matrix.cibw_python }}
# Cannot test on Musl distros yet.
CIBW_SKIP: "*-musllinux*"
CIBW_ARCHS: ${{ matrix.cibw_arch }}
# EdgeDB doesn't run on CentOS 6, so use 2014 as baseline
CIBW_MANYLINUX_X86_64_IMAGE: "quay.io/pypa/manylinux2014_x86_64"
CIBW_BEFORE_ALL_LINUX: >
.github/workflows/install-edgedb.sh
CIBW_TEST_EXTRAS: "test"
Expand All@@ -126,7 +148,7 @@ jobs:
&& chmod -R go+rX "$(dirname $(dirname $(dirname $PY)))"
&& su -l edgedb -c "EDGEDB_PYTHON_TEST_CODEGEN_CMD=$CODEGEN $PY {project}/tests/__init__.py"

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: wheelhouse/*.whl
Expand All@@ -136,12 +158,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 5
submodules: false

- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v3
with:
name: dist
path: dist/
Expand Down
7 changes: 6 additions & 1 deletion edgedb/_testbase.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,7 +135,7 @@ def _start_cluster(*, cleanup_atexit=True):
stderr=subprocess.STDOUT,
)

for _ in range(250):
for _ in range(600):
try:
with open(status_file, 'rb') as f:
for line in f:
Expand DownExpand Up@@ -171,6 +171,11 @@ def _start_cluster(*, cleanup_atexit=True):

client = edgedb.create_client(password='test', **con_args)
client.ensure_connected()
client.execute("""
# Set session_idle_transaction_timeout to 5 minutes.
CONFIGURE INSTANCE SET session_idle_transaction_timeout :=
<duration>'5 minutes';
""")
_default_cluster = {
'proc': p,
'client': client,
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
3 changes: 2 additions & 1 deletion setup.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -287,7 +287,7 @@ def finalize_options(self):
author_email='hello@magic.io',
url='https://github.com/edgedb/edgedb-python',
license='Apache License, Version 2.0',
packages=['edgedb'],
packages=setuptools.find_packages(),
provides=['edgedb'],
zip_safe=False,
include_package_data=True,
Expand DownExpand Up@@ -337,6 +337,7 @@ def finalize_options(self):
],
cmdclass={'build_ext': build_ext},
test_suite='tests.suite',
python_requires=">=3.7",
install_requires=[
'typing-extensions>=3.10.0; python_version < "3.8.0"',
'certifi>=2021.5.30; platform_system == "Windows"',
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 10 additions & 5 deletions .github/workflows/install-edgedb.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,15 +5,20 @@ shopt -s nullglob

srv="https://packages.edgedb.com"

curl -fL "${srv}/dist/x86_64-unknown-linux-musl/edgedb-cli" \
> "/usr/local/bin/edgedb"
curl -fL "${srv}/dist/$(uname -m)-unknown-linux-musl/edgedb-cli" \
> "/usr/bin/edgedb"

chmod +x "/usr/local/bin/edgedb"
chmod +x "/usr/bin/edgedb"

useradd --shell /bin/bash edgedb
if command -v useradd >/dev/null 2>&1; then
useradd --shell /bin/bash edgedb
else
# musllinux/alpine doesn't have useradd
adduser -s /bin/bash -D edgedb
fi

su -l edgedb -c "edgedb server install"
ln -s $(su -l edgedb -c "edgedb server info --latest --bin-path") \
"/usr/local/bin/edgedb-server"
"/usr/bin/edgedb-server"

edgedb-server --version
62 changes: 42 additions & 20 deletions .github/workflows/release.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ jobs:
mkdir -p dist/
echo "${VERSION}" > dist/VERSION

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/
Expand All@@ -52,7 +52,7 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true
Expand All@@ -65,19 +65,41 @@ jobs:
pip install -U setuptools wheel pip
python setup.py sdist

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/*.tar.*

build-wheels:
build-wheels-matrix:
needs: validate-release-request
runs-on: ubuntu-latest
outputs:
include: ${{ steps.set-matrix.outputs.include }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- run: pip install cibuildwheel==2.12.3
- id: set-matrix
# Cannot test on Musl distros yet.
run: |
MATRIX_INCLUDE=$(
{
cibuildwheel --print-build-identifiers --platform linux --arch x86_64,aarch64 | grep cp | grep many | jq -nRc '{"only": inputs, "os": "ubuntu-latest"}' \
&& cibuildwheel --print-build-identifiers --platform macos --arch x86_64,arm64 | grep cp | jq -nRc '{"only": inputs, "os": "macos-latest"}' \
&& cibuildwheel --print-build-identifiers --platform windows --arch AMD64 | grep cp | jq -nRc '{"only": inputs, "os": "windows-2019"}'
} | jq -sc
)
echo "include=$MATRIX_INCLUDE" >> $GITHUB_OUTPUT
build-wheels:
needs: build-wheels-matrix
runs-on: ${{ matrix.os }}
name: Build ${{ matrix.only }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-2019]
cibw_python: ["cp37-*", "cp38-*", "cp39-*", "cp310-*"]
cibw_arch: ["auto64"]
include: ${{ fromJson(needs.build-wheels-matrix.outputs.include) }}

defaults:
run:
Expand All@@ -87,32 +109,32 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true

- name: Setup WSL
if: ${{ steps.release.outputs.version == 0 && matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v1
if: ${{ matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v2
with:
wsl-shell-user: edgedb
additional-packages:
ca-certificates
curl

- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v2

- name: Install EdgeDB
uses: edgedb/setup-edgedb@v1

- uses: pypa/cibuildwheel@v2.3.1
- uses: pypa/cibuildwheel@v2.12.3
with:
only: ${{ matrix.only }}
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: ${{ matrix.cibw_python }}
# Cannot test on Musl distros yet.
CIBW_SKIP: "*-musllinux*"
CIBW_ARCHS: ${{ matrix.cibw_arch }}
# EdgeDB doesn't run on CentOS 6, so use 2014 as baseline
CIBW_MANYLINUX_X86_64_IMAGE: "quay.io/pypa/manylinux2014_x86_64"
CIBW_BEFORE_ALL_LINUX: >
.github/workflows/install-edgedb.sh
CIBW_TEST_EXTRAS: "test"
Expand All@@ -126,7 +148,7 @@ jobs:
&& chmod -R go+rX "$(dirname $(dirname $(dirname $PY)))"
&& su -l edgedb -c "EDGEDB_PYTHON_TEST_CODEGEN_CMD=$CODEGEN $PY {project}/tests/__init__.py"

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: wheelhouse/*.whl
Expand All@@ -136,12 +158,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 5
submodules: false

- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v3
with:
name: dist
path: dist/
Expand Down
7 changes: 6 additions & 1 deletion edgedb/_testbase.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,7 +135,7 @@ def _start_cluster(*, cleanup_atexit=True):
stderr=subprocess.STDOUT,
)

for _ in range(250):
for _ in range(600):
try:
with open(status_file, 'rb') as f:
for line in f:
Expand DownExpand Up@@ -171,6 +171,11 @@ def _start_cluster(*, cleanup_atexit=True):

client = edgedb.create_client(password='test', **con_args)
client.ensure_connected()
client.execute("""
# Set session_idle_transaction_timeout to 5 minutes.
CONFIGURE INSTANCE SET session_idle_transaction_timeout :=
<duration>'5 minutes';
""")
_default_cluster = {
'proc': p,
'client': client,
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
3 changes: 2 additions & 1 deletion setup.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -287,7 +287,7 @@ def finalize_options(self):
author_email='hello@magic.io',
url='https://github.com/edgedb/edgedb-python',
license='Apache License, Version 2.0',
packages=['edgedb'],
packages=setuptools.find_packages(),
provides=['edgedb'],
zip_safe=False,
include_package_data=True,
Expand DownExpand Up@@ -337,6 +337,7 @@ def finalize_options(self):
],
cmdclass={'build_ext': build_ext},
test_suite='tests.suite',
python_requires=">=3.7",
install_requires=[
'typing-extensions>=3.10.0; python_version < "3.8.0"',
'certifi>=2021.5.30; platform_system == "Windows"',
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 10 additions & 5 deletions .github/workflows/install-edgedb.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,15 +5,20 @@ shopt -s nullglob

srv="https://packages.edgedb.com"

curl -fL "${srv}/dist/x86_64-unknown-linux-musl/edgedb-cli" \
> "/usr/local/bin/edgedb"
curl -fL "${srv}/dist/$(uname -m)-unknown-linux-musl/edgedb-cli" \
> "/usr/bin/edgedb"

chmod +x "/usr/local/bin/edgedb"
chmod +x "/usr/bin/edgedb"

useradd --shell /bin/bash edgedb
if command -v useradd >/dev/null 2>&1; then
useradd --shell /bin/bash edgedb
else
# musllinux/alpine doesn't have useradd
adduser -s /bin/bash -D edgedb
fi

su -l edgedb -c "edgedb server install"
ln -s $(su -l edgedb -c "edgedb server info --latest --bin-path") \
"/usr/local/bin/edgedb-server"
"/usr/bin/edgedb-server"

edgedb-server --version
62 changes: 42 additions & 20 deletions .github/workflows/release.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ jobs:
mkdir -p dist/
echo "${VERSION}" > dist/VERSION

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/
Expand All@@ -52,7 +52,7 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true
Expand All@@ -65,19 +65,41 @@ jobs:
pip install -U setuptools wheel pip
python setup.py sdist

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/*.tar.*

build-wheels:
build-wheels-matrix:
needs: validate-release-request
runs-on: ubuntu-latest
outputs:
include: ${{ steps.set-matrix.outputs.include }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- run: pip install cibuildwheel==2.12.3
- id: set-matrix
# Cannot test on Musl distros yet.
run: |
MATRIX_INCLUDE=$(
{
cibuildwheel --print-build-identifiers --platform linux --arch x86_64,aarch64 | grep cp | grep many | jq -nRc '{"only": inputs, "os": "ubuntu-latest"}' \
&& cibuildwheel --print-build-identifiers --platform macos --arch x86_64,arm64 | grep cp | jq -nRc '{"only": inputs, "os": "macos-latest"}' \
&& cibuildwheel --print-build-identifiers --platform windows --arch AMD64 | grep cp | jq -nRc '{"only": inputs, "os": "windows-2019"}'
} | jq -sc
)
echo "include=$MATRIX_INCLUDE" >> $GITHUB_OUTPUT
build-wheels:
needs: build-wheels-matrix
runs-on: ${{ matrix.os }}
name: Build ${{ matrix.only }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-2019]
cibw_python: ["cp37-*", "cp38-*", "cp39-*", "cp310-*"]
cibw_arch: ["auto64"]
include: ${{ fromJson(needs.build-wheels-matrix.outputs.include) }}

defaults:
run:
Expand All@@ -87,32 +109,32 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true

- name: Setup WSL
if: ${{ steps.release.outputs.version == 0 && matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v1
if: ${{ matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v2
with:
wsl-shell-user: edgedb
additional-packages:
ca-certificates
curl

- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v2

- name: Install EdgeDB
uses: edgedb/setup-edgedb@v1

- uses: pypa/cibuildwheel@v2.3.1
- uses: pypa/cibuildwheel@v2.12.3
with:
only: ${{ matrix.only }}
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: ${{ matrix.cibw_python }}
# Cannot test on Musl distros yet.
CIBW_SKIP: "*-musllinux*"
CIBW_ARCHS: ${{ matrix.cibw_arch }}
# EdgeDB doesn't run on CentOS 6, so use 2014 as baseline
CIBW_MANYLINUX_X86_64_IMAGE: "quay.io/pypa/manylinux2014_x86_64"
CIBW_BEFORE_ALL_LINUX: >
.github/workflows/install-edgedb.sh
CIBW_TEST_EXTRAS: "test"
Expand All@@ -126,7 +148,7 @@ jobs:
&& chmod -R go+rX "$(dirname $(dirname $(dirname $PY)))"
&& su -l edgedb -c "EDGEDB_PYTHON_TEST_CODEGEN_CMD=$CODEGEN $PY {project}/tests/__init__.py"

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: wheelhouse/*.whl
Expand All@@ -136,12 +158,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 5
submodules: false

- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v3
with:
name: dist
path: dist/
Expand Down
7 changes: 6 additions & 1 deletion edgedb/_testbase.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,7 +135,7 @@ def _start_cluster(*, cleanup_atexit=True):
stderr=subprocess.STDOUT,
)

for _ in range(250):
for _ in range(600):
try:
with open(status_file, 'rb') as f:
for line in f:
Expand DownExpand Up@@ -171,6 +171,11 @@ def _start_cluster(*, cleanup_atexit=True):

client = edgedb.create_client(password='test', **con_args)
client.ensure_connected()
client.execute("""
# Set session_idle_transaction_timeout to 5 minutes.
CONFIGURE INSTANCE SET session_idle_transaction_timeout :=
<duration>'5 minutes';
""")
_default_cluster = {
'proc': p,
'client': client,
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
3 changes: 2 additions & 1 deletion setup.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -287,7 +287,7 @@ def finalize_options(self):
author_email='hello@magic.io',
url='https://github.com/edgedb/edgedb-python',
license='Apache License, Version 2.0',
packages=['edgedb'],
packages=setuptools.find_packages(),
provides=['edgedb'],
zip_safe=False,
include_package_data=True,
Expand DownExpand Up@@ -337,6 +337,7 @@ def finalize_options(self):
],
cmdclass={'build_ext': build_ext},
test_suite='tests.suite',
python_requires=">=3.7",
install_requires=[
'typing-extensions>=3.10.0; python_version < "3.8.0"',
'certifi>=2021.5.30; platform_system == "Windows"',
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 10 additions & 5 deletions .github/workflows/install-edgedb.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,15 +5,20 @@ shopt -s nullglob

srv="https://packages.edgedb.com"

curl -fL "${srv}/dist/x86_64-unknown-linux-musl/edgedb-cli" \
> "/usr/local/bin/edgedb"
curl -fL "${srv}/dist/$(uname -m)-unknown-linux-musl/edgedb-cli" \
> "/usr/bin/edgedb"

chmod +x "/usr/local/bin/edgedb"
chmod +x "/usr/bin/edgedb"

useradd --shell /bin/bash edgedb
if command -v useradd >/dev/null 2>&1; then
useradd --shell /bin/bash edgedb
else
# musllinux/alpine doesn't have useradd
adduser -s /bin/bash -D edgedb
fi

su -l edgedb -c "edgedb server install"
ln -s $(su -l edgedb -c "edgedb server info --latest --bin-path") \
"/usr/local/bin/edgedb-server"
"/usr/bin/edgedb-server"

edgedb-server --version
62 changes: 42 additions & 20 deletions .github/workflows/release.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ jobs:
mkdir -p dist/
echo "${VERSION}" > dist/VERSION

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/
Expand All@@ -52,7 +52,7 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true
Expand All@@ -65,19 +65,41 @@ jobs:
pip install -U setuptools wheel pip
python setup.py sdist

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/*.tar.*

build-wheels:
build-wheels-matrix:
needs: validate-release-request
runs-on: ubuntu-latest
outputs:
include: ${{ steps.set-matrix.outputs.include }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- run: pip install cibuildwheel==2.12.3
- id: set-matrix
# Cannot test on Musl distros yet.
run: |
MATRIX_INCLUDE=$(
{
cibuildwheel --print-build-identifiers --platform linux --arch x86_64,aarch64 | grep cp | grep many | jq -nRc '{"only": inputs, "os": "ubuntu-latest"}' \
&& cibuildwheel --print-build-identifiers --platform macos --arch x86_64,arm64 | grep cp | jq -nRc '{"only": inputs, "os": "macos-latest"}' \
&& cibuildwheel --print-build-identifiers --platform windows --arch AMD64 | grep cp | jq -nRc '{"only": inputs, "os": "windows-2019"}'
} | jq -sc
)
echo "include=$MATRIX_INCLUDE" >> $GITHUB_OUTPUT
build-wheels:
needs: build-wheels-matrix
runs-on: ${{ matrix.os }}
name: Build ${{ matrix.only }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-2019]
cibw_python: ["cp37-*", "cp38-*", "cp39-*", "cp310-*"]
cibw_arch: ["auto64"]
include: ${{ fromJson(needs.build-wheels-matrix.outputs.include) }}

defaults:
run:
Expand All@@ -87,32 +109,32 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true

- name: Setup WSL
if: ${{ steps.release.outputs.version == 0 && matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v1
if: ${{ matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v2
with:
wsl-shell-user: edgedb
additional-packages:
ca-certificates
curl

- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v2

- name: Install EdgeDB
uses: edgedb/setup-edgedb@v1

- uses: pypa/cibuildwheel@v2.3.1
- uses: pypa/cibuildwheel@v2.12.3
with:
only: ${{ matrix.only }}
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: ${{ matrix.cibw_python }}
# Cannot test on Musl distros yet.
CIBW_SKIP: "*-musllinux*"
CIBW_ARCHS: ${{ matrix.cibw_arch }}
# EdgeDB doesn't run on CentOS 6, so use 2014 as baseline
CIBW_MANYLINUX_X86_64_IMAGE: "quay.io/pypa/manylinux2014_x86_64"
CIBW_BEFORE_ALL_LINUX: >
.github/workflows/install-edgedb.sh
CIBW_TEST_EXTRAS: "test"
Expand All@@ -126,7 +148,7 @@ jobs:
&& chmod -R go+rX "$(dirname $(dirname $(dirname $PY)))"
&& su -l edgedb -c "EDGEDB_PYTHON_TEST_CODEGEN_CMD=$CODEGEN $PY {project}/tests/__init__.py"

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: wheelhouse/*.whl
Expand All@@ -136,12 +158,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 5
submodules: false

- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v3
with:
name: dist
path: dist/
Expand Down
7 changes: 6 additions & 1 deletion edgedb/_testbase.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,7 +135,7 @@ def _start_cluster(*, cleanup_atexit=True):
stderr=subprocess.STDOUT,
)

for _ in range(250):
for _ in range(600):
try:
with open(status_file, 'rb') as f:
for line in f:
Expand DownExpand Up@@ -171,6 +171,11 @@ def _start_cluster(*, cleanup_atexit=True):

client = edgedb.create_client(password='test', **con_args)
client.ensure_connected()
client.execute("""
# Set session_idle_transaction_timeout to 5 minutes.
CONFIGURE INSTANCE SET session_idle_transaction_timeout :=
<duration>'5 minutes';
""")
_default_cluster = {
'proc': p,
'client': client,
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
3 changes: 2 additions & 1 deletion setup.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -287,7 +287,7 @@ def finalize_options(self):
author_email='hello@magic.io',
url='https://github.com/edgedb/edgedb-python',
license='Apache License, Version 2.0',
packages=['edgedb'],
packages=setuptools.find_packages(),
provides=['edgedb'],
zip_safe=False,
include_package_data=True,
Expand DownExpand Up@@ -337,6 +337,7 @@ def finalize_options(self):
],
cmdclass={'build_ext': build_ext},
test_suite='tests.suite',
python_requires=">=3.7",
install_requires=[
'typing-extensions>=3.10.0; python_version < "3.8.0"',
'certifi>=2021.5.30; platform_system == "Windows"',
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 10 additions & 5 deletions .github/workflows/install-edgedb.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,15 +5,20 @@ shopt -s nullglob

srv="https://packages.edgedb.com"

curl -fL "${srv}/dist/x86_64-unknown-linux-musl/edgedb-cli" \
> "/usr/local/bin/edgedb"
curl -fL "${srv}/dist/$(uname -m)-unknown-linux-musl/edgedb-cli" \
> "/usr/bin/edgedb"

chmod +x "/usr/local/bin/edgedb"
chmod +x "/usr/bin/edgedb"

useradd --shell /bin/bash edgedb
if command -v useradd >/dev/null 2>&1; then
useradd --shell /bin/bash edgedb
else
# musllinux/alpine doesn't have useradd
adduser -s /bin/bash -D edgedb
fi

su -l edgedb -c "edgedb server install"
ln -s $(su -l edgedb -c "edgedb server info --latest --bin-path") \
"/usr/local/bin/edgedb-server"
"/usr/bin/edgedb-server"

edgedb-server --version
62 changes: 42 additions & 20 deletions .github/workflows/release.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -39,7 +39,7 @@ jobs:
mkdir -p dist/
echo "${VERSION}" > dist/VERSION

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/
Expand All@@ -52,7 +52,7 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true
Expand All@@ -65,19 +65,41 @@ jobs:
pip install -U setuptools wheel pip
python setup.py sdist

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: dist/*.tar.*

build-wheels:
build-wheels-matrix:
needs: validate-release-request
runs-on: ubuntu-latest
outputs:
include: ${{ steps.set-matrix.outputs.include }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- run: pip install cibuildwheel==2.12.3
- id: set-matrix
# Cannot test on Musl distros yet.
run: |
MATRIX_INCLUDE=$(
{
cibuildwheel --print-build-identifiers --platform linux --arch x86_64,aarch64 | grep cp | grep many | jq -nRc '{"only": inputs, "os": "ubuntu-latest"}' \
&& cibuildwheel --print-build-identifiers --platform macos --arch x86_64,arm64 | grep cp | jq -nRc '{"only": inputs, "os": "macos-latest"}' \
&& cibuildwheel --print-build-identifiers --platform windows --arch AMD64 | grep cp | jq -nRc '{"only": inputs, "os": "windows-2019"}'
} | jq -sc
)
echo "include=$MATRIX_INCLUDE" >> $GITHUB_OUTPUT
build-wheels:
needs: build-wheels-matrix
runs-on: ${{ matrix.os }}
name: Build ${{ matrix.only }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-2019]
cibw_python: ["cp37-*", "cp38-*", "cp39-*", "cp310-*"]
cibw_arch: ["auto64"]
include: ${{ fromJson(needs.build-wheels-matrix.outputs.include) }}

defaults:
run:
Expand All@@ -87,32 +109,32 @@ jobs:
PIP_DISABLE_PIP_VERSION_CHECK: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 50
submodules: true

- name: Setup WSL
if: ${{ steps.release.outputs.version == 0 && matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v1
if: ${{ matrix.os == 'windows-2019' }}
uses: vampire/setup-wsl@v2
with:
wsl-shell-user: edgedb
additional-packages:
ca-certificates
curl

- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v2

- name: Install EdgeDB
uses: edgedb/setup-edgedb@v1

- uses: pypa/cibuildwheel@v2.3.1
- uses: pypa/cibuildwheel@v2.12.3
with:
only: ${{ matrix.only }}
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD: ${{ matrix.cibw_python }}
# Cannot test on Musl distros yet.
CIBW_SKIP: "*-musllinux*"
CIBW_ARCHS: ${{ matrix.cibw_arch }}
# EdgeDB doesn't run on CentOS 6, so use 2014 as baseline
CIBW_MANYLINUX_X86_64_IMAGE: "quay.io/pypa/manylinux2014_x86_64"
CIBW_BEFORE_ALL_LINUX: >
.github/workflows/install-edgedb.sh
CIBW_TEST_EXTRAS: "test"
Expand All@@ -126,7 +148,7 @@ jobs:
&& chmod -R go+rX "$(dirname $(dirname $(dirname $PY)))"
&& su -l edgedb -c "EDGEDB_PYTHON_TEST_CODEGEN_CMD=$CODEGEN $PY {project}/tests/__init__.py"

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: dist
path: wheelhouse/*.whl
Expand All@@ -136,12 +158,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 5
submodules: false

- uses: actions/download-artifact@v2
- uses: actions/download-artifact@v3
with:
name: dist
path: dist/
Expand Down
7 changes: 6 additions & 1 deletion edgedb/_testbase.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -135,7 +135,7 @@ def _start_cluster(*, cleanup_atexit=True):
stderr=subprocess.STDOUT,
)

for _ in range(250):
for _ in range(600):
try:
with open(status_file, 'rb') as f:
for line in f:
Expand DownExpand Up@@ -171,6 +171,11 @@ def _start_cluster(*, cleanup_atexit=True):

client = edgedb.create_client(password='test', **con_args)
client.ensure_connected()
client.execute("""
# Set session_idle_transaction_timeout to 5 minutes.
CONFIGURE INSTANCE SET session_idle_transaction_timeout :=
<duration>'5 minutes';
""")
_default_cluster = {
'proc': p,
'client': client,
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
3 changes: 2 additions & 1 deletion setup.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -287,7 +287,7 @@ def finalize_options(self):
author_email='hello@magic.io',
url='https://github.com/edgedb/edgedb-python',
license='Apache License, Version 2.0',
packages=['edgedb'],
packages=setuptools.find_packages(),
provides=['edgedb'],
zip_safe=False,
include_package_data=True,
Expand DownExpand Up@@ -337,6 +337,7 @@ def finalize_options(self):
],
cmdclass={'build_ext': build_ext},
test_suite='tests.suite',
python_requires=">=3.7",
install_requires=[
'typing-extensions>=3.10.0; python_version < "3.8.0"',
'certifi>=2021.5.30; platform_system == "Windows"',
Expand Down