docs: Add CONTRIBUTING.md and LICENSE files to the repository
This commit is contained in:
84
CONTRIBUTING.md
Normal file
84
CONTRIBUTING.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# Contributing to gsplash
|
||||
|
||||
Thanks for your interest in contributing. gsplash is a small utility and contributions that keep it that way are most welcome.
|
||||
|
||||
## What to work on
|
||||
|
||||
Check the issue tracker on [GitHub](https://github.com/sortedcord/gsplash) for open issues. If you want to add something new, open an issue first to discuss it before writing code. This avoids wasted effort if the change isn't a good fit for the project.
|
||||
|
||||
Good areas to contribute:
|
||||
|
||||
- Bug fixes (see known issues in README or open issues)
|
||||
- Broader video format or image format support
|
||||
- Wayland compatibility improvements
|
||||
- Packaging for other distributions
|
||||
|
||||
## Building
|
||||
|
||||
You'll need:
|
||||
|
||||
- GCC or Clang
|
||||
- make, pkg-config
|
||||
- SDL2, SDL2\_image
|
||||
- ffmpeg (`libavformat`, `libavcodec`, `libswscale`, `libavutil`)
|
||||
|
||||
On Arch Linux:
|
||||
|
||||
```bash
|
||||
sudo pacman -S sdl2 sdl2_image ffmpeg
|
||||
```
|
||||
|
||||
On Ubuntu/Debian:
|
||||
|
||||
```bash
|
||||
sudo apt install libsdl2-dev libsdl2-image-dev libavformat-dev libavcodec-dev libswscale-dev libavutil-dev
|
||||
```
|
||||
|
||||
Then build:
|
||||
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
The binary is output to `build/gsplash`.
|
||||
|
||||
## Testing
|
||||
|
||||
Before submitting a PR, run the automated test suite:
|
||||
|
||||
```bash
|
||||
make check
|
||||
```
|
||||
|
||||
This runs a headless smoke test and the CLI argument validation suite. Both must pass.
|
||||
|
||||
For visual changes (render modes, layout), also run the interactive test with a real image:
|
||||
|
||||
```bash
|
||||
./tests/test_interactive.sh path/to/image.png
|
||||
```
|
||||
|
||||
If you're adding new CLI arguments or flags, add corresponding cases to `tests/test_cli.sh`.
|
||||
|
||||
## Code style
|
||||
|
||||
- Match the existing style: 4-space indentation, `snake_case`, braces on their own line.
|
||||
- All new functions in `video.c`/`video.h` should have declarations in the header.
|
||||
- Avoid adding new dependencies unless there's a strong reason. SDL2 and ffmpeg are already heavy.
|
||||
|
||||
## Submitting a PR
|
||||
|
||||
1. Fork the repo and create a branch from `main`.
|
||||
2. Keep commits focused — one logical change per commit.
|
||||
3. Write a clear PR description explaining what the change does and why.
|
||||
4. If the change fixes a bug, reference the issue number.
|
||||
5. PRs should target `github.com/sortedcord/gsplash` — this is the canonical public remote.
|
||||
|
||||
## Reporting bugs
|
||||
|
||||
Open an issue on GitHub with:
|
||||
|
||||
- Your OS and desktop environment
|
||||
- The gsplash version or commit hash
|
||||
- The command you ran
|
||||
- The full stderr output (gsplash logs to stderr via `[splash]` prefixed lines)
|
||||
Reference in New Issue
Block a user