Skip to content

Commit

Permalink
chore: doc improvements, update hashes
Browse files Browse the repository at this point in the history
Signed-off-by: Sam Gammon <sam@elide.ventures>
  • Loading branch information
sgammon committed Aug 23, 2023
1 parent 6e6e9f1 commit 7e834a9
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 31 deletions.
2 changes: 1 addition & 1 deletion MODULE.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"Defines the GraalVM Rules for Bazel module."
"GraalVM Rules for Bazel"

module(
name = "rules_graalvm",
Expand Down
59 changes: 45 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,17 @@ Use [GraalVM](https://graalvm.org) from [Bazel](https://bazel.build), with suppo

## Installation

> API docs for [`graalvm_repository`](./api/repositories.md)
**Via `WORKSPACE.bazel`:**

```starlark
http_archive(
name = "rules_graalvm",
sha256 = None,
sha256 = "f41cc6ccdcacb5aeab7eb9f62223f1f570213b3fd0deeab386ef6188e35486ce",
strip_prefix = "rules_graalvm-0.9.1",
urls = [
"https://github.com/sgammon/rules_graalvm/releases/download/v0.9.1/rules_graalvm-0.9.1.tar.gz",
"https://github.com/sgammon/rules_graalvm/releases/download/v0.9.1/rules_graalvm-0.9.1.zip",
],
)
```
Expand All @@ -48,28 +50,38 @@ graalvm_repository(
components = [
# if you need components like `js` or `wasm`, add them here
],
distribution = "oracle", # `oracle`, `ce`, or `community`
distribution = "ce", # `oracle`, `ce`, or `community`
java_version = "20", # `17`, `20`, or `21`, as supported by the version provided
version = "20.0.2", # earlier version format like `22.x` also supported
)
```

```starlark
load("@rules_graalvm//graalvm:workspace.bzl", "register_graalvm_toolchains", "rules_graalvm_repositories")
```

```starlark
rules_graalvm_repositories()

register_graalvm_toolchains()
```

**Or, via `MODULE.bazel`:**

> [!IMPORTANT]
> To use Bzlmod with `rules_graalvm`, you will need the `archive_override` below (until we go live on BCR).
```starlark
bazel_dep(name = "rules_graalvm", version = "0.9.0")
bazel_dep(name = "rules_graalvm", version = "0.9.1")
```

```starlark
# Until we ship to BCR:
archive_override(
module_name = "rules_graalvm",
urls = ["https://github.com/sgammon/rules_graalvm/releases/download/v0.9.1/rules_graalvm-0.9.1.tar.gz"],
urls = ["https://github.com/sgammon/rules_graalvm/releases/download/v0.9.1/rules_graalvm-0.9.1.zip"],
strip_prefix = "rules_graalvm-0.9.1",
integrity = None,
integrity = "sha256-9BzGzNysta6rfrn2IiPx9XAhOz/Q3uqzhu9hiONUhs4=",
)
```

Expand All @@ -85,27 +97,33 @@ gvm.graalvm(
# if you need components like `js` or `wasm`, add them here
],
)
use_repo(
gvm,
"graalvm",
)
use_repo(gvm, "graalvm")
register_toolchains("@graalvm//:all")
```

## Usage: Java Toolchains

You can use the `graalvm_repository` as a Java toolchain, by registering it like below:

**From `WORKSPACE.bazel`:**
**Via `WORKSPACE.bazel`:**

```starlark
# graalvm_repository(...)
load("@rules_graalvm//graalvm:workspace.bzl", "register_graalvm_toolchains", "rules_graalvm_repositories")
```

```starlark
register_toolchains("@graalvm//:toolchain")
rules_graalvm_repositories()

register_graalvm_toolchains()
```

**From `.bazelrc`:**
**Via Bzlmod:**

```starlark
register_toolchains("@graalvm//:all")
```

**To _use_ the toolchain, add this to your `.bazelrc`:**

```
build --extra_toolchains=@graalvm//:toolchain
Expand Down Expand Up @@ -147,6 +165,8 @@ the installation instructions.
When using toolchains, the `native_image_tool` attribute can be omitted, which delegates to Bazel's
toolchain system to resolve the tool:

**Resolve via toolchains:**

```python
native_image(
name = "main-native",
Expand All @@ -155,6 +175,17 @@ native_image(
)
```

**Or point to a specific `native-image` tool:**

```python
native_image(
name = "main-native",
deps = [":main"],
main_class = "Main",
native_image_tool = "@graalvm//:native-image",
)
```

## Build a native binary on Bazel 4 and Bazel 5

> API docs for legacy [`native_image`](./api/legacy.md) rule
Expand Down
64 changes: 48 additions & 16 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
# GraalVM Rules for Bazel

[![CI](https://github.com/sgammon/rules_graalvm/actions/workflows/on.push.yml/badge.svg)](https://github.com/sgammon/rules_graalvm/actions/workflows/on.push.yml)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4-ff69b4.svg)](CODE_OF_CONDUCT.md)
![Bazel 7](https://img.shields.io/badge/Bazel%207-black?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0My41NyA0My4zNyI%2BCiAgPGRlZnM%2BCiAgICA8c3R5bGU%2BCiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogIzAwNDMwMDsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMDA3MDFhOwogICAgICB9CgogICAgICAuY2xzLTMgewogICAgICAgIGZpbGw6ICM0M2EwNDc7CiAgICAgIH0KCiAgICAgIC5jbHMtNCB7CiAgICAgICAgZmlsbDogIzc2ZDI3NTsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM%2BCiAgPGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0ibTIxLjc4LDMyLjY4djEwLjY5bC0xMC44OS0xMC44OXYtMTAuNjlsMTAuODksMTAuODlaIi8%2BCiAgICA8cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Im0yMS43OCwzMi42OGwxMC45LTEwLjg5djEwLjY5bC0xMC45LDEwLjg5di0xMC42OVoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0ibTEwLjg5LDIxLjc5djEwLjY5TDAsMjEuNTh2LTEwLjY5bDEwLjg5LDEwLjlaIi8%2BCiAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Im00My41NywxMC44OXYxMC42OWwtMTAuODksMTAuOXYtMTAuNjlsMTAuODktMTAuOVoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0ibTIxLjc4LDMyLjY4bC0xMC44OS0xMC44OSwxMC44OS0xMC45LDEwLjksMTAuOS0xMC45LDEwLjg5WiIvPgogICAgPHBhdGggY2xhc3M9ImNscy00IiBkPSJtMTAuODksMjEuNzlMMCwxMC44OSwxMC44OSwwbDEwLjg5LDEwLjg5LTEwLjg5LDEwLjlaIi8%2BCiAgICA8cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Im0zMi42OCwyMS43OWwtMTAuOS0xMC45TDMyLjY4LDBsMTAuODksMTAuODktMTAuODksMTAuOVoiLz4KICA8L2c%2BCjwvc3ZnPg%3D%3D&logoColor=gray)
![Bzlmod](https://img.shields.io/badge/Bzlmod-black?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0My41NyA0My4zNyI%2BCiAgPGRlZnM%2BCiAgICA8c3R5bGU%2BCiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogIzAwNDMwMDsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMDA3MDFhOwogICAgICB9CgogICAgICAuY2xzLTMgewogICAgICAgIGZpbGw6ICM0M2EwNDc7CiAgICAgIH0KCiAgICAgIC5jbHMtNCB7CiAgICAgICAgZmlsbDogIzc2ZDI3NTsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM%2BCiAgPGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMiIgZD0ibTIxLjc4LDMyLjY4djEwLjY5bC0xMC44OS0xMC44OXYtMTAuNjlsMTAuODksMTAuODlaIi8%2BCiAgICA8cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Im0yMS43OCwzMi42OGwxMC45LTEwLjg5djEwLjY5bC0xMC45LDEwLjg5di0xMC42OVoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0ibTEwLjg5LDIxLjc5djEwLjY5TDAsMjEuNTh2LTEwLjY5bDEwLjg5LDEwLjlaIi8%2BCiAgICA8cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Im00My41NywxMC44OXYxMC42OWwtMTAuODksMTAuOXYtMTAuNjlsMTAuODktMTAuOVoiLz4KICAgIDxwYXRoIGNsYXNzPSJjbHMtMyIgZD0ibTIxLjc4LDMyLjY4bC0xMC44OS0xMC44OSwxMC44OS0xMC45LDEwLjksMTAuOS0xMC45LDEwLjg5WiIvPgogICAgPHBhdGggY2xhc3M9ImNscy00IiBkPSJtMTAuODksMjEuNzlMMCwxMC44OSwxMC44OSwwbDEwLjg5LDEwLjg5LTEwLjg5LDEwLjlaIi8%2BCiAgICA8cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Im0zMi42OCwyMS43OWwtMTAuOS0xMC45TDMyLjY4LDBsMTAuODksMTAuODktMTAuODksMTAuOVoiLz4KICA8L2c%2BCjwvc3ZnPg%3D%3D&logoColor=gray)

---

> Latest release: `0.9.1`
These rules let you use [GraalVM](https://graalvm.org) from [Bazel](https://bazel.build), with support for:
> **Important**
> Currently in beta. Feedback welcome but will probably break your build.
Use [GraalVM](https://graalvm.org) from [Bazel](https://bazel.build), with support for:

- [Building native image binaries](./native-image.md)
- [Installing components with `gu`](./components.md)
Expand All @@ -22,14 +32,22 @@ These rules let you use [GraalVM](https://graalvm.org) from [Bazel](https://baze
```python
http_archive(
name = "rules_graalvm",
sha256 = "96323ac1b7a5b9db1ae1a388c5ed1fb830d4628d3ab4b7f09538558321e03111",
strip_prefix = "rules_graalvm-0.9.0",
sha256 = "f41cc6ccdcacb5aeab7eb9f62223f1f570213b3fd0deeab386ef6188e35486ce",
strip_prefix = "rules_graalvm-0.9.1",
urls = [
"https://github.com/sgammon/rules_graalvm/releases/download/v0.9.1/rules_graalvm-0.9.1.tar.gz",
"https://github.com/sgammon/rules_graalvm/releases/download/v0.9.1/rules_graalvm-0.9.1.zip",
],
)
```

```python
load("@rules_graalvm//graalvm:workspace.bzl", "register_graalvm_toolchains", "rules_graalvm_repositories")

rules_graalvm_repositories()

register_graalvm_toolchains()
```

```python
load("@rules_graalvm//graalvm:repositories.bzl", "graalvm_repository")
```
Expand All @@ -48,20 +66,17 @@ graalvm_repository(

**Or, via `MODULE.bazel`:**

> **Important**
> To use Bzlmod with `rules_graalvm`, you will need the `archive_override` below (until this package is made available on BCR).
```python
bazel_dep(name = "rules_graalvm", version = "0.9.0")
bazel_dep(name = "rules_graalvm", version = "0.9.1")
```

```python
# Until we ship to BCR:
archive_override(
module_name = "rules_graalvm",
urls = ["https://github.com/sgammon/rules_graalvm/releases/download/v0.9.1/rules_graalvm-0.9.1.tar.gz"],
urls = ["https://github.com/sgammon/rules_graalvm/releases/download/v0.9.1/rules_graalvm-0.9.1.zip"],
strip_prefix = "rules_graalvm-0.9.1",
integrity = None,
integrity = "sha256-9BzGzNysta6rfrn2IiPx9XAhOz/Q3uqzhu9hiONUhs4=",
)
```

Expand All @@ -77,10 +92,8 @@ gvm.graalvm(
# if you need components like `js` or `wasm`, add them here
],
)
use_repo(
gvm,
"graalvm",
)
use_repo(gvm, "graalvm")
register_toolchains("@graalvm//:all")
```

## Usage
Expand All @@ -101,10 +114,16 @@ You can use the `graalvm_repository` as a Java toolchain, by registering it like
```

```python
register_toolchains("@graalvm//:toolchain")
load("@rules_graalvm//graalvm:workspace.bzl", "register_graalvm_toolchains", "rules_graalvm_repositories")
```

```python
rules_graalvm_repositories()

register_graalvm_toolchains()
```

**From `.bazelrc`:**
**To _use_ the toolchain, add this to your `.bazelrc`:**

```
build --extra_toolchains=@graalvm//:toolchain
Expand Down Expand Up @@ -145,11 +164,24 @@ the installation instructions.
When using toolchains, the `native_image_tool` attribute can be omitted, which delegates to Bazel's
toolchain system to resolve the tool:

**Resolve via toolchains:**

```python
native_image(
name = "main-native",
deps = [":main"],
main_class = "Main",
)
```

**Or point to a specific `native-image` tool:**

```python
native_image(
name = "main-native",
deps = [":main"],
main_class = "Main",
native_image_tool = "@graalvm//:native-image",
)
```

Expand Down

0 comments on commit 7e834a9

Please sign in to comment.