progit-plugin-sdk 0.3.0

Plugin SDK for ProGit — sandboxed LuaJIT runtime with capability-based security. LSL-1.0 (file-level copyleft, proprietary plugins allowed via the commercial bridge).
Documentation
# Contributing to ProGit Plugin SDK

Thank you for your interest in contributing! This SDK is Apache 2.0 licensed to maximize compatibility and encourage ecosystem growth.

## Development Setup

```bash
# Clone the repository
git clone https://git.sovereign-society.org/ProGit/progit-plugin-sdk
cd progit-plugin-sdk

# Build
cargo build

# Run tests
cargo test

# Run examples
cargo run --example lua_hello_world

# Format code
cargo fmt

# Lint
cargo clippy
```

## Code Style

- **SPDX Headers**: All source files must include:
  ```rust
  // SPDX-License-Identifier: Apache-2.0
  // Copyright (c) 2025 Markus Maiwald
  ```

- **Formatting**: Use `cargo fmt` (rustfmt)
- **Linting**: Pass `cargo clippy` with no warnings
- **Documentation**: Public APIs must have doc comments

## Project Structure

```
progit-plugin-sdk/
├── src/
│   ├── lib.rs           # Main entry point
│   ├── traits.rs        # Plugin trait definitions
│   ├── lua/             # Lua runtime
│   │   └── mod.rs
│   └── wasm/            # WASM runtime
│       └── mod.rs
├── examples/            # Example plugins
├── tests/               # Integration tests
└── docs/                # Additional documentation
```

## Adding New Features

1. **New Hook Types**: Add to `PluginHook` enum in `src/traits.rs`
2. **New Plugin Runtimes**: Create new module in `src/`
3. **Examples**: Add to `examples/` directory

## Testing

- Unit tests: `cargo test`
- Integration tests: `cargo test --test '*'`
- Example tests: `cargo run --example <name>`

## Pull Request Process

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Add tests
5. Run `cargo fmt` and `cargo clippy`
6. Commit with clear messages
7. Push to your fork
8. Open a Pull Request

## License

By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.

---

**Questions?** Open an issue or reach out to Markus Maiwald.