mirror of
https://github.com/jlengrand/OpenGraphKt.git
synced 2026-03-10 08:31:23 +00:00
* Moving back to Java 17 compatibility. I'll change demo-remote a little later, because otherwise I have to break the project for some time. * Prepares version 0.1.3
159 lines
4.0 KiB
Markdown
159 lines
4.0 KiB
Markdown
# Contributing to OpenGraphKt
|
|
|
|
Thank you for your interest in contributing to OpenGraphKt! This document provides guidelines and instructions for contributing to the project.
|
|
|
|
## Development Setup
|
|
|
|
### Prerequisites
|
|
|
|
- Java 17 or later (JVM toolchain configured for Java 17)
|
|
- Gradle 8.14.3+ (wrapper included)
|
|
- Git
|
|
|
|
### Getting Started
|
|
|
|
1. Clone the repository:
|
|
```bash
|
|
git clone https://github.com/jlengrand/OpenGraphKt.git
|
|
cd OpenGraphKt
|
|
```
|
|
|
|
2. Build the project:
|
|
```bash
|
|
./gradlew build
|
|
```
|
|
|
|
3. Run tests:
|
|
```bash
|
|
./gradlew test
|
|
```
|
|
|
|
4. Check code coverage:
|
|
```bash
|
|
./gradlew koverXmlReport
|
|
./gradlew koverVerify # Enforces 70% minimum coverage
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
- `opengraphkt/` - Core library module (published to Maven Central)
|
|
- `demo/` - Local file parsing examples
|
|
- `demo-remote/` - Remote URL parsing examples using published artifact
|
|
- `scrape-test/` - Testing/scraping utilities
|
|
|
|
## Making Changes
|
|
|
|
### Code Style
|
|
|
|
- Follow Kotlin coding conventions
|
|
- Use meaningful variable and function names
|
|
- Add KDoc comments for public APIs
|
|
|
|
### Testing
|
|
|
|
- Write tests for all new functionality
|
|
- Maintain minimum 70% code coverage (enforced by Kover)
|
|
- Run tests locally before submitting PR: `./gradlew test`
|
|
|
|
### Commits
|
|
|
|
- Write clear, concise commit messages
|
|
- Reference issue numbers when applicable
|
|
- Keep commits focused and atomic
|
|
|
|
## Submitting Changes
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch: `git checkout -b feature/your-feature-name`
|
|
3. Make your changes
|
|
4. Run tests and ensure coverage: `./gradlew test koverVerify`
|
|
5. Commit your changes
|
|
6. Push to your fork
|
|
7. Submit a Pull Request
|
|
|
|
## Publishing New Versions
|
|
|
|
This section is for maintainers only.
|
|
|
|
### Version Numbering
|
|
|
|
OpenGraphKt follows [Semantic Versioning](https://semver.org/):
|
|
- **MAJOR** version for incompatible API changes
|
|
- **MINOR** version for backwards-compatible functionality additions
|
|
- **PATCH** version for backwards-compatible bug fixes
|
|
|
|
### Pre-Release Checklist
|
|
|
|
1. **Update version number** in `opengraphkt/build.gradle.kts`:
|
|
```kotlin
|
|
version = "0.1.3-SNAPSHOT" // Change to "0.1.3" for release
|
|
```
|
|
|
|
2. **Update demo-remote dependency** in `demo-remote/build.gradle.kts`:
|
|
```kotlin
|
|
dependencies {
|
|
implementation("fr.lengrand:opengraphkt:0.1.3") // Match release version
|
|
}
|
|
```
|
|
|
|
3. **Run full test suite**:
|
|
```bash
|
|
./gradlew clean build test koverVerify
|
|
```
|
|
|
|
4. **Test demo applications**:
|
|
```bash
|
|
./gradlew :demo:run
|
|
./gradlew :demo-remote:run
|
|
```
|
|
|
|
### Publishing to Maven Central
|
|
|
|
The project uses the `com.vanniktech.maven.publish` plugin for publishing. Publishing is automated through GitHub Actions.
|
|
|
|
1. **Bump version ** in `opengraphkt/build.gradle.kts`:
|
|
```kotlin
|
|
version = "0.1.4"
|
|
```
|
|
|
|
2. **Publish to local Maven for testing** (optional):
|
|
```bash
|
|
./gradlew publishToMavenLocal
|
|
```
|
|
|
|
3. **Create GitHub release** (this triggers the publishing workflow):
|
|
- Go to GitHub repository → Releases → "Draft a new release"
|
|
- Click "Choose a tag" and create a new tag (e.g., `v0.1.3`)
|
|
- Set the release title (e.g., `v0.1.3`)
|
|
- Add release notes describing changes
|
|
- Click "Publish release"
|
|
|
|
4. **GitHub Actions will automatically**:
|
|
- Build the project
|
|
- Run tests
|
|
- Publish to Maven Central
|
|
- The workflow is triggered automatically when you create a new release
|
|
|
|
5. After a few minutes, you will see the new version in [Maven Central](https://mvnrepository.com/artifact/fr.lengrand/opengraphkt). You can also directly check the real-time status on [Central Sonartype](https://central.sonatype.com/publishing/deployments).
|
|
|
|
### Post-Release Steps
|
|
|
|
1. **Bump version to next SNAPSHOT** in `opengraphkt/build.gradle.kts`:
|
|
```kotlin
|
|
version = "0.1.5-SNAPSHOT"
|
|
```
|
|
|
|
2. **Commit version bump**:
|
|
```bash
|
|
git commit -am "Bump version to 0.1.5-SNAPSHOT"
|
|
git push
|
|
```
|
|
|
|
## Questions?
|
|
|
|
If you have questions or need help, please:
|
|
- Open an issue on GitHub
|
|
- Check existing issues and discussions
|
|
|
|
Thank you for contributing to OpenGraphKt!
|