Skip to content

Latest commit

 

History

History
152 lines (102 loc) · 2.99 KB

CONTRIBUTING.md

File metadata and controls

152 lines (102 loc) · 2.99 KB

Development Guide

Requirements

Toolchain Version
Rust ^1.88.0
just ^1.36.0
uv ^0.5.0
Docker -

Workflow

Get the source code

git clone https://github.com/Nugine/s3s.git
cd s3s

Run basic checks and tests

just dev

Run the codegen

just crawl
just codegen

It should change nothing if you are running the latest code.

Run semver checks

Check for API breaking changes:

just semver-checks

Note: This requires published crate versions on crates.io to compare against.

Open documentation

just doc

Play the test server

Install s3s-fs from source

cargo install --path crates/s3s-fs --features binary

You can also use the shortcut

just install s3s-fs

Or install from crates.io

cargo install s3s-fs --features binary

Run s3s-fs with example configuration

./scripts/s3s-fs.sh

Credentials used in the example configuration:

Access Key: AKEXAMPLES3S
Secret Key: SKEXAMPLES3S

Then you can explore it with your favorite S3 client!

Run E2E tests

MinIO-backed E2E tests start a MinIO container. MinIO stopped publishing free community images and removed the minio/minio Docker Hub repository, so s3s builds the last upstream state from source and publishes it to ghcr.io/s3s-project/minio; the pinned digest lives in scripts/minio.env.

Install s3s-proxy

just install s3s-proxy

Run the combined server and save logs

./scripts/s3s-proxy.sh | tee target/s3s-proxy.log

Open a new terminal, then run the test suite

./scripts/mint.sh | tee target/mint.log

Run Ceph s3-tests (E2E)

Install s3s-proxy

just install s3s-proxy

Run a minimal Ceph s3-tests run against s3s-proxy (backed by MinIO):

./scripts/e2e-s3tests.sh

This script has additional prerequisites:

  • Docker must be installed and a local Docker daemon running (used to start MinIO).
  • Network access is required on first run so the script can clone the ceph/s3-tests repository.

Run the rclone S3 integration test

The rclone test covers real client workflows including recursive transfers, content verification, object listing and deletion, ranged reads, remote-to-remote copy, and a forced multipart upload. Install s3s-fs, ensure Docker is running, then run:

just install s3s-fs
./scripts/e2e-rclone-fs.sh

The underlying runner can also validate another S3-compatible endpoint. See tests/rclone/README.md for configuration and coverage details.

Git

Commit Message

We follow the Conventional Commits specification.