Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hatch to manage Python virtualenvs #87

Merged
merged 15 commits into from
Nov 8, 2022
3 changes: 0 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@
name = "y-py"
version = "0.5.4"
rust-version = "1.58"
authors = ["John Waidhofer <[email protected]>", "Kevin Jahns <[email protected]>", "Pierre-Olivier Simonard <[email protected]>"]
edition = "2018"
homepage = "https://github.com/y-crdt/ypy"
repository = "https://github.com/y-crdt/ypy"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,28 +39,28 @@ assert value == "hello world!"

## Development Setup

0. Install Rust and Python
1. Install `maturin` in order to build Ypy
0. [Install Rust](https://www.rust-lang.org/tools/install) and [Python](https://www.python.org/downloads/)
- Some alternative bootstrapping options are [pyenv](https://github.com/pyenv/pyenv) for Python, or using [mamba](https://github.com/conda-forge/miniforge) to `mamba install rust python`.
1. Install [hatch](https://hatch.pypa.io/latest/install/) (`python -m pip install hatch`)
2. Create a development build of the library
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should remain agnostic to the users' package manager of choice in the setup. If we provide the default instructions with pip and have a pyproject.toml, more advanced users will be able to leverage it regardless of whether they are using poetry or hatch

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm good with whatever wording you want to use here. I think the original docs got across the point that you need bootstrapping before being able to build ypy, and these do as well.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for this section, lets keep it simple and use the pip instructions. We can keep the alternative bootstrapping section and link out to hatch docs in case people need extra assistance.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not entirely sure what tweaks you're asking for but I'm 👍 if you want to commit directly to the PR with the wording you'd like to see here. I think this may be the last item to resolve in the PR?


*Make sure to `unset CONDA_PREFIX` if you are in a conda environment. If `hatch` is not found on your PATH, you can run `python -m hatch` instead*
```
pip install maturin
hatch run maturin develop
```

2. Create a development build of the library
`maturin develop`

## Tests

All tests are located in `/tests`. You can run them with `pytest`.

```
pytest
hatch run pytest
```

## Build Ypy :

Build the library as a wheel and store them in `target/wheels` :

```
maturin build
hatch run maturin build
```
14 changes: 14 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
[build-system]
requires = ["maturin>=0.13,<0.14"]
build-backend = "maturin"

[project]
name = "y-py"
version = "0.5.4"
description = "Python bindings for the Y-CRDT built from yrs (Rust)"
authors = [
{ name = "John Waidhofer", email = "[email protected]" },
{ name = "Kevin Jahns", email = "[email protected]" },
{ name = "Pierre-Olivier Simonard", email = "[email protected]" }
]
readme = "README.md"
homepage = "https://github.com/y-crdt/ypy"
repository = "https://github.com/y-crdt/ypy"
dependencies = ["pytest", "maturin"]
2 changes: 0 additions & 2 deletions setup.cfg

This file was deleted.

3 changes: 0 additions & 3 deletions setup.py

This file was deleted.