Skip to content

Commit

Permalink
Merge branch 'main' into design-async-client-raw-ffi
Browse files Browse the repository at this point in the history
Signed-off-by: Andrew Carbonetto <[email protected]>
  • Loading branch information
acarbonetto committed Nov 21, 2023
2 parents 8d2e183 + 199507f commit 16d4a69
Show file tree
Hide file tree
Showing 80 changed files with 253,532 additions and 1,037 deletions.
96 changes: 96 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
name: "🐛 Bug Report"
description: Report a bug
title: "(topic): (short issue description)"
labels: [bug, needs-triage]
assignees: []
body:
- type: textarea
id: description
attributes:
label: Describe the bug
description: What is the problem? A clear and concise description of the bug.
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: |
What did you expect to happen?
validations:
required: true
- type: textarea
id: current
attributes:
label: Current Behavior
description: |
What actually happened?
Please include full errors, uncaught exceptions, stack traces, and relevant logs.
If service responses are relevant, please include wire logs.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Reproduction Steps
description: |
Provide a self-contained, concise snippet of code that can be used to reproduce the issue.
For more complex issues provide a repo with the smallest sample that reproduces the bug.
Avoid including business logic or unrelated code, it makes diagnosis more difficult.
The code sample should be an SSCCE. See http://sscce.org/ for details. In short, please provide a code sample that we can copy/paste, run and reproduce.
validations:
required: true
- type: textarea
id: solution
attributes:
label: Possible Solution
description: |
Suggest a fix/reason for the bug
validations:
required: false
- type: textarea
id: context
attributes:
label: Additional Information/Context
description: |
Anything else that might be relevant for troubleshooting this bug. Providing context helps us come up with a solution that is most useful in the real world.
validations:
required: false

- type: input
id: operating-system
attributes:
label: OS
validations:
required: true

- type: dropdown
id: language
attributes:
label: Language
multiple: true
options:
- TypeScript
- Python
validations:
required: true

- type: input
id: language-version
attributes:
label: Language Version
description: E.g. TypeScript (5.2.2) | Python (3.9)
validations:
required: false

- type: textarea
id: other
attributes:
label: Other information
description: |
e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. associated pull-request, stackoverflow, etc
validations:
required: false
59 changes: 59 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
name: 🚀 Feature Request
description: Suggest an idea for this project
title: "(topic): (short issue description)"
labels: [feature-request, needs-triage]
assignees: []
body:
- type: textarea
id: description
attributes:
label: Describe the feature
description: A clear and concise description of the feature you are proposing.
validations:
required: true
- type: textarea
id: use-case
attributes:
label: Use Case
description: |
Why do you need this feature?
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed Solution
description: |
Suggest how to implement the addition or change. Please include prototype/workaround/sketch/reference implementation.
validations:
required: false
- type: textarea
id: other
attributes:
label: Other Information
description: |
Any alternative solutions or features you considered, a more detailed explanation, stack traces, related issues, links for context, etc.
validations:
required: false
- type: checkboxes
id: ack
attributes:
label: Acknowledgements
options:
- label: I may be able to implement this feature request
required: false
- label: This feature might incur a breaking change
required: false
- type: input
id: client-version
attributes:
label: Client version used
validations:
required: true
- type: input
id: environment
attributes:
label: Environment details (OS name and version, etc.)
validations:
required: true
42 changes: 42 additions & 0 deletions .github/workflows/build-node-wrapper/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Build Node wrapper

inputs:
os:
description: "The current operating system"
required: true
type: string
options:
- macOS
- ubuntu
- amazon-linux
release_mode:
description: "Enable building the wrapper in release mode"
required: false
type: boolean
default: 'false'

env:
CARGO_TERM_COLOR: always

runs:
using: "composite"
steps:
- name: Install software dependencies
uses: ./.github/workflows/install-shared-dependencies
with:
os: ${{ inputs.os }}

- name: npm install
shell: bash
working-directory: ./node/rust-client
run: |
rm -rf node_modules && npm install --frozen-lockfile
npm install
- name: Build
shell: bash
run: |
source "$HOME/.cargo/env"
rm -rf node_modules && npm install --frozen-lockfile
npm run build
working-directory: ./node
54 changes: 54 additions & 0 deletions .github/workflows/build-python-wrapper/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Build Python wrapper

inputs:
os:
description: "The current operating system"
required: true
type: string
options:
- macOS
- ubuntu
- amazon-linux
release_mode:
description: "Enable building the wrapper in release mode"
required: false
type: boolean
default: 'false'

env:
CARGO_TERM_COLOR: always

runs:
using: "composite"
steps:
- name: Install software dependencies
uses: ./.github/workflows/install-shared-dependencies
with:
os: ${{ inputs.os }}

- name: Install Python software dependencies
shell: bash
run: |
python3 -m ensurepip --upgrade
python3 -m pip install --upgrade pip
python3 -m pip install virtualenv mypy-protobuf
- name: Generate protobuf files
shell: bash
working-directory: .
run: |
export PATH="$PATH:$HOME/.local/bin"
MYPY_PROTOC_PATH=`which protoc-gen-mypy`
protoc --plugin=protoc-gen-mypy=${MYPY_PROTOC_PATH} -Iprotobuf=./babushka-core/src/protobuf/ --python_out=./python/python/pybushka --mypy_out=./python/python/pybushka ./babushka-core/src/protobuf/*.proto
- name: Build Pybushka
shell: bash
working-directory: ./python
run: |
source "$HOME/.cargo/env"
python3 -m venv .env
source .env/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt
RELEASE_FLAG=`if [ ${{ inputs.release_mode }} = 'true' ]; then echo --release; fi`
maturin develop ${RELEASE_FLAG}
38 changes: 38 additions & 0 deletions .github/workflows/install-shared-dependencies/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Install shared software dependencies

inputs:
os:
description: "The current operating system"
required: true
type: string
options:
- macOS
- ubuntu
- amazon-linux

runs:
using: "composite"
steps:
- name: Install software dependencies for macOS
shell: bash
if: "${{ inputs.os == 'macOS' }}"
run: |
brew install git gcc pkgconfig protobuf openssl redis
- name: Install software dependencies for Ubuntu
shell: bash
if: "${{ inputs.os == 'ubuntu' }}"
run: |
sudo apt update
sudo apt install protobuf-compiler
- name: Install software dependencies for Amazon-Linux
shell: bash
if: "${{ inputs.os == 'amazon-linux' }}"
run: |
yum install -y gcc pkgconfig protobuf-compiler openssl openssl-devel which curl redis6 --allowerasing
- name: Install Rust
shell: bash
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
78 changes: 39 additions & 39 deletions .github/workflows/java-benchmark.yml
Original file line number Diff line number Diff line change
@@ -1,46 +1,46 @@
name: Java client benchmarks

on:
workflow_dispatch:
inputs:
name:
required: false
type: string
workflow_dispatch:
inputs:
name:
required: false
type: string

run-name: ${{ inputs.name == '' && format('{0} @ {1}', github.ref_name, github.sha) || inputs.name }}

jobs:
java-benchmark:
strategy:
matrix:
java:
- 11
- 17
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: ${{ matrix.java }}

- name: Start Redis
run: docker run -p 6379:6379 -p 8001:8001 -d redis/redis-stack

- name: Run benchmarks
working-directory: java
run: ./gradlew :benchmark:run

- name: Upload test reports
if: always()
continue-on-error: true
uses: actions/upload-artifact@v3
with:
name: test-reports-${{ matrix.java }}
path: |
java/benchmarks/build/reports/**
java-benchmark:
strategy:
matrix:
java:
- 11
- 17
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: ${{ matrix.java }}

- name: Start Redis
run: docker run -p 6379:6379 -p 8001:8001 -d redis/redis-stack

- name: Run benchmarks
working-directory: java
run: ./gradlew :benchmark:run

- name: Upload test reports
if: always()
continue-on-error: true
uses: actions/upload-artifact@v3
with:
name: test-reports-${{ matrix.java }}
path: |
java/benchmarks/build/reports/**
Loading

0 comments on commit 16d4a69

Please sign in to comment.