Skip to content

Commit

Permalink
Merge branch 'main' into full_tests_on_macos_rebased
Browse files Browse the repository at this point in the history
  • Loading branch information
ikolomi authored Jul 8, 2024
2 parents b435c50 + 58266d5 commit 609e9fe
Show file tree
Hide file tree
Showing 154 changed files with 11,921 additions and 4,514 deletions.
22 changes: 18 additions & 4 deletions .github/workflows/npm-cd.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# The cross platform build was created based on the [Packaging Rust Applications for the NPM Registry blog](https://blog.orhun.dev/packaging-rust-for-npm/).

name: Continuous Deployment
name: NPM - Continuous Deployment

on:
pull_request:
Expand All @@ -14,6 +14,11 @@ on:
push:
tags:
- "v*.*"
workflow_dispatch:
inputs:
version:
description: 'The release version of GLIDE, formatted as v*.*.* or v*.*.*-rc*'
required: true

concurrency:
group: npm-${{ github.head_ref || github.ref }}
Expand Down Expand Up @@ -99,8 +104,17 @@ jobs:
- name: Set the release version
shell: bash
run: |
export version=`if ${{ github.event_name == 'pull_request' }}; then echo '255.255.255'; else echo ${GITHUB_REF:11}; fi`
echo "RELEASE_VERSION=${version}" >> $GITHUB_ENV
if ${{ env.EVENT_NAME == 'pull_request' }}; then
R_VERSION="255.255.255"
elif ${{ env.EVENT_NAME == 'workflow_dispatch' }}; then
R_VERSION="${{ env.INPUT_VERSION }}"
else
R_VERSION=${GITHUB_REF:11}
fi
echo "RELEASE_VERSION=${R_VERSION}" >> $GITHUB_ENV
env:
EVENT_NAME: ${{ github.event_name }}
INPUT_VERSION: ${{ github.event.inputs.version }}

- name: Setup node
if: ${{ matrix.build.TARGET != 'aarch64-unknown-linux-musl' }}
Expand Down Expand Up @@ -153,7 +167,7 @@ jobs:
echo "NPM_TAG=${npm_tag}" >> $GITHUB_ENV
- name: Check that the release version dont have typo init
if: ${{ github.event_name != 'pull_request' && contains(github.ref, '-') && !contains(github.ref, 'rc') }}
if: ${{ github.event_name != 'pull_request' && contains(env.RELEASE_VERSION, '-') && !contains(env.RELEASE_VERSION, 'rc') }}
run: |
echo "The release version "${GITHUB_REF:11}" contains a typo, please fix it"
echo "The release version should be in the format v{major-version}.{minor-version}.{patch-version}-rc{release-candidate-number} when it a release candidate or v{major-version}.{minor-version}.{patch-version} in a stable release."
Expand Down
59 changes: 36 additions & 23 deletions .github/workflows/pypi-cd.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# The cross platform build was created based on the [Packaging Rust Applications for the NPM Registry blog](https://blog.orhun.dev/packaging-rust-for-npm/).

name: Continuous Deployment
name: PyPI - Continuous Deployment

on:
pull_request:
Expand All @@ -13,6 +13,11 @@ on:
push:
tags:
- "v*.*"
workflow_dispatch:
inputs:
version:
description: 'The release version of GLIDE, formatted as v*.*.* or v*.*.*-rc*'
required: true

concurrency:
group: pypi-${{ github.head_ref || github.ref }}
Expand Down Expand Up @@ -77,23 +82,22 @@ jobs:
- name: Set the release version
shell: bash
run: |
export version=`if ${{ github.event_name == 'pull_request' }}; then echo '255.255.255'; else echo ${GITHUB_REF:11}; fi`
echo "RELEASE_VERSION=${version}" >> $GITHUB_ENV
# For NPM and Cargo we need the the rc version to be {version}-rc{number} while for PyPi we need it to be {version}rc{number}
# This is because PyPi does not allow the '-' character in the version name
# So the tag will be as NPM and Cargo ask: v1.0.0-rc1 and for PyPi we'll chnage it to: v1.0.0rc1
- name: Change and set realease version for RC
if: ${{ github.event_name != 'pull_request' && contains(github.ref, 'rc') }}
shell: bash
run: |
export py_version=`echo ${GITHUB_REF:11} | sed 's/-rc/rc/'`
echo "PY_RELEASE_VERSION=${py_version}" >> $GITHUB_ENV
if ${{ env.EVENT_NAME == 'pull_request' }}; then
R_VERSION="255.255.255"
elif ${{ env.EVENT_NAME == 'workflow_dispatch' }}; then
R_VERSION="${{ env.INPUT_VERSION }}"
else
R_VERSION=${GITHUB_REF:11}
fi
echo "RELEASE_VERSION=${R_VERSION}" >> $GITHUB_ENV
env:
EVENT_NAME: ${{ github.event_name }}
INPUT_VERSION: ${{ github.event.inputs.version }}

- name: Check that the release version dont have typo init
if: ${{ github.event_name != 'pull_request' && contains(github.ref, '-') && !contains(github.ref, 'rc') }}
if: ${{ github.event_name != 'pull_request' && contains(env.RELEASE_VERSION, '-') && !contains(env.RELEASE_VERSION, 'rc') }}
run: |
echo "The release version "${GITHUB_REF:11}" contains a typo, please fix it"
echo "The release version "${{ env.RELEASE_VERSION }}" contains a typo, please fix it"
echo "The release version should be in the format v{major-version}.{minor-version}.{patch-version}-rc{release-candidate-number} when it a release candidate or v{major-version}.{minor-version}.{patch-version} in a stable release."
exit 1
Expand Down Expand Up @@ -154,20 +158,29 @@ jobs:
with:
working-directory: ./python
target: ${{ matrix.build.TARGET }}
args: --release --strip --out wheels -i ${{ github.event_name != 'pull_request' && 'python3.8 python3.9 python3.10 python3.11 python3.12' || 'python3.10' }}
args: --release --strip --out wheels -i ${{ github.event_name != 'pull_request' && 'python3.8 python3.9 python3.10 python3.11 python3.12' || 'python3.10' }}
manylinux: auto
container: ${{ matrix.build.CONTAINER != '' && matrix.build.CONTAINER || '2014' }}
before-script-linux: |
# Install protobuf compiler
if [[ $(`which apt`) != '' ]]
then
apt install protobuf-compiler -y
else
PB_REL="https://github.com/protocolbuffers/protobuf/releases"
curl -LO $PB_REL/download/v3.15.8/protoc-3.15.8-linux-x86_64.zip
unzip protoc-3.15.8-linux-x86_64.zip -d $HOME/.local
export PATH="$PATH:$HOME/.local/bin"
then
echo "installing unzip and curl"
apt install unzip curl -y
fi
PB_REL="https://github.com/protocolbuffers/protobuf/releases"
ARCH=`uname -p`
if [[ $ARCH == 'x86_64' ]]; then
PROTOC_ARCH="x86_64"
elif [[ $ARCH == 'aarch64' ]]; then
PROTOC_ARCH="aarch_64"
else
echo "Running on unsupported architecture: $ARCH. Expected one of: ['x86_64', 'aarch64']"
exit 1
fi
curl -LO $PB_REL/download/v3.20.3/protoc-3.20.3-linux-${PROTOC_ARCH}.zip
unzip protoc-3.20.3-linux-${PROTOC_ARCH}.zip -d $HOME/.local
export PATH="$PATH:$HOME/.local/bin"
- name: Build Python wheels (macos)
if: startsWith(matrix.build.NAMED_OS, 'darwin')
Expand Down
44 changes: 18 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,36 @@
### Valkey GLIDE

Valkey General Language Independent Driver for the Enterprise (GLIDE), is an AWS-sponsored, open-source Valkey client that includes support for open-source Redis 6.2 to 7.2. Valkey GLIDE works with any distribution that adheres to the Redis Serialization Protocol (RESP) specification, including Amazon ElastiCache, and Amazon MemoryDB.
Strategic, mission-critical applications have requirements for security, optimized performance, minimal downtime, and observability. Valkey GLIDE is designed to provide a client experience that helps meet these objectives. It is sponsored and supported by AWS, and comes pre-configured with best practices learned from over a decade of operating RESP-compatible services used by hundreds of thousands of customers. To help ensure consistency in development and operations, Valkey GLIDE is implemented using a core driver framework, written in Rust, with extensions made available for each supported programming language. This design ensures that updates easily propagate to each language and reduces overall complexity. In this Preview release, Valkey GLIDE is available for Python and Java, with support for Javascript (Node.js) actively under development.
# Valkey GLIDE
Valkey General Language Independent Driver for the Enterprise (GLIDE), is an open-source Valkey client library. Valkey GLIDE is one of the official client libraries for Valkey, and it supports all Valkey commands. Valkey GLIDE supports Valkey 7.2 and above, and Redis open-source 6.2, 7.0 and 7.2. Application programmers use Valkey GLIDE to safely and reliably connect their applications to Valkey- and Redis OSS- compatible services. Valkey GLIDE is designed for reliability, optimized performance, and high-availability, for Valkey and Redis OSS based applications. It is sponsored and supported by AWS, and is pre-configured with best practices learned from over a decade of operating Redis OSS-compatible services used by hundreds of thousands of customers. To help ensure consistency in application development and operations, Valkey GLIDE is implemented using a core driver framework, written in Rust, with language specific extensions. This design ensures consistency in features across languages and reduces overall complexity.

## Supported Engine Versions
GLIDE for Redis is API-compatible with the following engine versions:
Valkey GLIDE is API-compatible with the following engine versions:

| Engine Type | Version |
|--------------------|---------|
| Valkey and Redis | 7.2 |
| Valkey and Redis | 7.0 |
| Valkey and Redis | 6.2 |
| Engine Type | 6.2 | 7.0 | 7.2 |
|-----------------------|-------|-------|-------|
| Valkey | V | V | V |
| Redis | V | V | V |

## Current Status
We've made GLIDE for Redis an open-source project, and are releasing it in Preview to the community to gather feedback, and actively collaborate on the project roadmap. We welcome questions and contributions from all Redis stakeholders.
This preview release is recommended for testing purposes only. It is available in Python and Javascript (Node.js), with Java to follow. We're tracking its production readiness and future features on the [roadmap](https://github.com/orgs/aws/projects/187/).

In this release, Valkey GLIDE is available for Python and Java. Support for Node.js is actively under development, with plans to include more programming languages in the future. We're tracking future features on the [roadmap](https://github.com/orgs/aws/projects/187/).

## Getting Started

- [Node](./node/README.md)
- [Python](./python/README.md)
- [Java](./java/README.md)
- [Documentation](https://github.com/aws/glide-for-redis/wiki)
- [Python](./python/README.md)
- [Documentation](https://github.com/valkey-io/valkey-glide/wiki)

## Getting Help
If you have any questions, feature requests, encounter issues, or need assistance with this project, please don't hesitate to open a GitHub issue. Our community and contributors are here to help you. Before creating an issue, we recommend checking the [existing issues](https://github.com/aws/glide-for-redis/issues) to see if your question or problem has already been addressed. If not, feel free to create a new issue, and we'll do our best to assist you. Please provide as much detail as possible in your issue description, including:
If you have any questions, feature requests, encounter issues, or need assistance with this project, please don't hesitate to open a GitHub issue. Our community and contributors are here to help you. Before creating an issue, we recommend checking the [existing issues](https://github.com/valkey-io/valkey-glide/issues) to see if your question or problem has already been addressed. If not, feel free to create a new issue, and we'll do our best to assist you. Please provide as much detail as possible in your issue description, including:

1. A clear and concise title
2. Detailed description of the problem or question
3. A reproducible test case or series of steps
4. The GLIDE for Redis version in use
5. Operating system
6. Redis version
7. Redis cluster information, cluster topology, number of shards, number of replicas, used data types
8. Any modifications you've made that are relevant to the issue
9. Anything unusual about your environment or deployment
3. Reproducible test case or step-by-step instructions
4. Valkey GLIDE version in use
5. Operating system details
6. Server version
7. Cluster or standalone setup information, including topology, number of shards, number of replicas, and data types used
8. Relevant modifications you've made
9. Any unusual aspects of your environment or deployment
10. Log files


## Contributing

GitHub is a platform for collaborative coding. If you're interested in writing code, we encourage you to contribute by submitting pull requests from forked copies of this repository. Additionally, please consider creating GitHub issues for reporting bugs and suggesting new features. Feel free to comment on issues that interest. For more info see [Contributing](./CONTRIBUTING.md).
Expand Down
Loading

0 comments on commit 609e9fe

Please sign in to comment.