Skip to content

Commit

Permalink
Merge branch 'master' into tcook-add-spanner
Browse files Browse the repository at this point in the history
  • Loading branch information
DataBoyTX committed Jan 17, 2025
2 parents 4a8e244 + bd483a9 commit 46daae6
Show file tree
Hide file tree
Showing 26 changed files with 1,301 additions and 49 deletions.
99 changes: 99 additions & 0 deletions .github/workflows/ci-gpu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: ci-gpu
on:
pull_request:
types:
- labeled
workflow_dispatch:
repository_dispatch:
types:
- trigger-ci-gpu

jobs:

stub_mt:
name: Always-succeed step to prevent appearing as a failure
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Do nothing
run: echo "Do nothing"

gpu-permission:
if: >
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'pull_request' && contains(fromJson('["lmeyerov", "tanmoyio", "aucahuasi", "silkspace", "DataBoyTx"]'), github.actor))
runs-on: ubuntu-latest
steps:
- name: Do nothing
run: echo "Do nothing"

cancel_outstanding:
name: Detect and cancel outstanding runs of this workflow
if: |
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'pull_request' && contains(github.event.label.name, 'gpu-ci'))
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Cancel Previous Runs
if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-cancel') }}
uses: styfle/cancel-workflow-action@0.11.0
with:
access_token: ${{ github.token }}

test-full-ai:
needs: [ gpu-permission ]
if: |
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'pull_request' && contains(github.event.label.name, 'gpu-ci'))
runs-on:
group: GPU Runners - Public

strategy:
matrix:
python-version: ['3.10', 3.11, 3.12]

steps:

- name: Checkout repo
uses: actions/checkout@v3

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: nvidia-smi
run: nvidia-smi

- name: Install test dependencies
run: |
python -m venv pygraphistry
source pygraphistry/bin/activate
python -m pip install --upgrade pip
python -m pip install --extra-index-url=https://pypi.nvidia.com -e .[test,testai,ai,rapids]
echo "skrub: `pip show skrub | grep Version`"
echo "pandas: `pip show pandas | grep Version`"
echo "numpy: `pip show numpy | grep Version`"
echo "scikit-learn: `pip show scikit-learn | grep Version`"
echo "scipy: `pip show scipy | grep Version`"
echo "umap-learn: `pip show umap-learn | grep Version`"
- name: Test RAPIDS
shell: 'script -q -e -c "bash {0}"' # tty
run: |
source pygraphistry/bin/activate
python -c 'import cudf; v = cudf.DataFrame({\"x\": [1,2,3]}).x.sum(); print(\"got\", v); assert v == 6'
- name: Type check
env:
PYTHON_VERSION: ${{ matrix.python-version }}
run: |
source pygraphistry/bin/activate
./bin/typecheck.sh
- name: Run all tests
run: |
source pygraphistry/bin/activate
python -m pytest --version
python -B -m pytest -vv
2 changes: 1 addition & 1 deletion .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ build:
- cp -r demos docs/source/demos
- cp README.md docs/source/README.md
- cp ARCHITECTURE.md docs/source/ARCHITECTURE.md
- cp CONTRIBUTE.md docs/source/CONTRIBUTE.md
- cp CONTRIBUTING.md docs/source/CONTRIBUTING.md
- cp DEVELOP.md docs/source/DEVELOP.md

# build html
Expand Down
2 changes: 1 addition & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Architecture

This document should help get started with modifying code. See also [develop.md](DEVELOP.md) for developer commands and [CONTRIBUTE.md](CONTRIBUTE.md) for community guidelines.
This document should help get started with modifying code. See also [develop.md](DEVELOP.md) for developer commands and [CONTRIBUTING.md](CONTRIBUTING.md) for community guidelines.

## Client/Server Wrangling Tool

Expand Down
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,47 @@ The changelog format is based on [Keep a Changelog](https://keepachangelog.com/e
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) and all PyGraphistry-specific breaking changes are explictly noted here.

## [Development]

## [0.35.6 - 2025-01-11]

### Docs

* Fix typo in new shaping tutorial
* Privacy-preserving analytics

## [0.35.5 - 2025-01-10]

### Docs

* New tutorial on graph shaping

## [0.35.4 - 2024-12-28]

### Fixes

* `Plottable._render` now typed as `RenderModesConcrete`
* Remote GFQL - Handle `output_type is None`

## [0.35.3 - 2024-12-24]

### Docs

* Rename CONTRIBUTE.md to CONTRIBUTING.md to match OSS standards (snyk)
* setup.py: add project_urls
* Add FUNDING.md
* Add CODE_OF_CONDUCT.md

### Feat

* GFQL serialization: Edge AST node deserializes as more precise `ASTEdge` subclasses

### Fixes

* GFQL Hop: Detect #614 of node id column name colliding with edge src/dst id column name and raise `NotImplementedError`
* MyPy: Remove explicit type annotation from Engine

## [0.35.2 - 2024-12-13]

### Docs

* Python remote mode notebook: Fixed engine results
Expand Down
29 changes: 29 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# PyGraphistry Code of Conduct

PyGraphistry is an open-source project built on collaboration and respect. This Code of Conduct lays out how we expect everyone to interact so we can maintain a positive and productive environment.

## How We Work Together

- Treat others decently—listen, respond constructively, and keep it professional.
- Stay focused on ideas and solutions, not personal disagreements.
- Be helpful, especially to newcomers or those asking for clarification.

## What’s Not Okay

Harassment, personal attacks, or sharing private information without permission are not okay. Be respectful and avoid language or behavior that alienates or disrupts others.

## Where This Applies

This Code of Conduct applies to all spaces related to the PyGraphistry project, like GitHub repositories, pull request discussions, and private communications. If you’re representing PyGraphistry in public (e.g., social media or events), we expect the same standards of behavior.

## If There’s a Problem

If you see or experience behavior that doesn’t align with this Code of Conduct, let us know at **[oss@graphistry.com](mailto:oss@graphistry.com)**. We’ll handle it privately and work together to figure out the next steps.

## What Happens Next

Breaking the rules? We’ll handle it case by case. You might get a warning, a temporary ban, or permanent removal from the project.

---

Thanks for being part of PyGraphistry!
File renamed without changes.
12 changes: 11 additions & 1 deletion DEVELOP.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Development Setup

See also [CONTRIBUTE.md](CONTRIBUTE.md) and [ARCHITECTURE.md](ARCHITECTURE.md)
See also [CONTRIBUTING.md](CONTRIBUTING.md) and [ARCHITECTURE.md](ARCHITECTURE.md)

Development is setup for local native and containerized Python coding & testing, and with automatic GitHub Actions for CI + CD. The server tests are like the local ones, except against a wider test matrix of environments.

Expand Down Expand Up @@ -97,6 +97,16 @@ graphistry.__version__

GitHub Actions: See `.github/workflows`

CI runs on every PR and updates them

### GPU CI

GPU CI can be manually triggered by core dev team members:

1. Push intended changes to protected branches `gpu-public` or `master`
2. Manually trigger action [ci-gpu](https://github.com/graphistry/pygraphistry/actions/workflows/ci-gpu.yml) on one of the above branches

GPU tests can also be run locally via `./docker/test-gpu-local.sh` .

## Debugging Tips

Expand Down
32 changes: 32 additions & 0 deletions FUNDING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Supporting PyGraphistry

PyGraphistry is an open-source Python project proudly sponsored by [Graphistry](https://www.graphistry.com), a leader in GPU-accelerated visual graph analytics and AI. Your support helps us maintain and expand PyGraphistry as a free and open tool for the data science and graph analytics community.

## How to Support

If your organization uses PyGraphistry or benefits from GPU-accelerated analytics, please consider supporting this project indirectly by becoming a customer or directly such as through code contributions and sponsored development. Reach out to the Graphistry team to discuss sponsorship opportunities:

- Email: [oss@graphistry.com](mailto:oss@graphistry.com)
- Website: [Graphistry Sponsorship](https://www.graphistry.com)
- Social: Say hello and stay connected via the [community Slack](https://join.slack.com/t/graphistry-community/shared_invite/zt-53ik36w2-fpP0Ibjbk7IJuVFIRSnr6g), [Twitter](https://twitter.com/graphistry) account, & [LinkedIn](https://www.linkedin.com/company/graphistry)

## Why Support PyGraphistry?

Your contributions help us:
- Keep PyGraphistry maintained, up-to-date, and secure
- Be responsive to user feedback, bug reports, and feature requests
- Advance PyGraphistry's capabilities, performance, and usability
- Ensure the project remains free and open-source
- Support the community through documentation, tutorials, and responsive issue tracking

## Corporate Sponsorship Opportunities

We welcome sponsorships from companies that depend on PyGraphistry for analytics, visualization, and AI. Sponsorships may include:
- Recognition in PyGraphistry's release notes and documentation
- Early access to new features and roadmap acceleration
- Collaboration opportunities with the Graphistry team

## Thank You

A huge thanks to the Graphistry team and community for supporting PyGraphistry, and to all our users for their continued support!

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,5 +207,5 @@ Explore [10 Minutes to PyGraphistry](https://pygraphistry.readthedocs.io/en/late

## Contribute

See [CONTRIBUTE](https://pygraphistry.readthedocs.io/en/latest/CONTRIBUTE.html) and [DEVELOP](https://pygraphistry.readthedocs.io/en/latest/DEVELOP.html) for participating in PyGraphistry development, or reach out to our team
See [CONTRIBUTING](https://pygraphistry.readthedocs.io/en/latest/CONTRIBUTING.html) and [DEVELOP](https://pygraphistry.readthedocs.io/en/latest/DEVELOP.html) for participating in PyGraphistry development, or reach out to our team

Loading

0 comments on commit 46daae6

Please sign in to comment.