Drivers for various electronic components, using the Pi4J library
Find a file
Stefan Haustein 024c34e247
Merge pull request #134 from stefanhaustein/main
Delete outdated test case for oob access
2026-06-09 22:17:54 +02:00
.github/workflows Release 1.0.0 2026-06-06 14:25:39 +02:00
.mvn/wrapper Initial commit 2025-08-19 12:27:55 +02:00
config/checkstyle Added checkstyle plugin 2025-08-20 11:37:27 +02:00
docs VideoDisplay Driver for st7789. 2025-08-20 10:10:09 -04:00
src Delete outdated case and bring comments and code into sync.. 2026-06-09 21:58:46 +02:00
.gitignore Cleanup gitignore 2025-08-19 20:25:38 +02:00
CONTRIBUTING.md Update CONTRIBUTING.md 2025-10-12 20:52:23 +02:00
jreleaser.yml Release 1.0.0 2026-06-06 14:18:38 +02:00
LICENSE Initial commit 2025-08-19 12:27:55 +02:00
mvnw Initial commit 2025-08-19 12:27:55 +02:00
mvnw.cmd Initial commit 2025-08-19 12:27:55 +02:00
pom.xml Bump to 1.0.1-SNAPSHOT 2026-06-06 15:03:03 +02:00
README.md README cleanup 2026-06-06 15:17:19 +02:00

Pi4J :: Drivers

GitHub Actions: Maven build

THIS IS THE VERY START OF A NEW PROJECT. NO USABLE CODE IS YET AVAILABLE.

This project contains driver implementations for various electronic components, using Pi4J V4+. Full description will be available on the Pi4J website at Documentation > Using the Drivers Library.

For the current coverage state and plans, please refer to https://docs.google.com/document/d/1Gyeaq6xCbvmE-ZH675zyYz2Jhhc-76IA5tvJtxvjmbE/edit?usp=sharing

Using this Library

As this is library is still in early stage, you can only get a SNAPSHOT-version. To be able to use it in your project, you'll need to add both the dependency, and allow SNAPSHOTs:

<dependencies>
   ...
   <dependency>
      <groupId>com.pi4j</groupId>
      <artifactId>pi4j-drivers</artifactId>
      <version>${pi4j.drivers.version}</version>
   </dependency>
   ...
</dependencies>

<!-- Add the following if you want to use a SNAPSHOT version -->
<repositories>
  <repository>
      <id>sonatype-snapshots</id>
      <name>Maven Central Snapshots</name>
      <url>https://central.sonatype.com/repository/maven-snapshots</url>
      <releases>
         <enabled>false</enabled>
      </releases>
      <snapshots>
         <enabled>true</enabled>
      </snapshots>
   </repository>
</repositories>

CONTRIBUTING

Please refer to CONTRIBUTING.md.

BUILD DEPENDENCIES & INSTRUCTIONS

This project can be built with Maven:

./mvnw verify

Release Flow

Releases are automated via JReleaser and GitHub Actions, but the workflow can also be started manually from the GitHub Actions tab.
The workflow is defined in .github/workflows/release.yml.

How it works

The release pipeline triggers automatically whenever pom.xml is pushed to main and the version does not end in -SNAPSHOT.
You can also run it manually if you already pushed a version change earlier and want to finish the release later.
No manual tag creation is needed — JReleaser creates the Git tag, GitHub Release, and publishes to Maven Central.

push pom.xml to main (non-SNAPSHOT version)
        │
        ▼
 check-version job
  └─ version is SNAPSHOT? → skip, do nothing
  └─ version is release?  → continue
        │
        ▼
 release job
  ├─ Build JAR + sources JAR + javadoc JAR (-Prelease)
  ├─ Stage artifacts to target/staging-deploy
  ├─ Validate JReleaser config (jreleaser:config)
  ├─ Open GitHub issue for manual approval (FDelporte / stefanhaustein)
  │     └─ Approver comments "approved" on the issue
  └─ JReleaser full-release
        ├─ GPG-sign all artifacts
        ├─ Publish bundle to Maven Central Portal
        └─ Create GitHub Release with auto-generated changelog

Step-by-step for maintainers

1. Remove the -SNAPSHOT suffix and push:

# Set the release version (e.g. 1.0.0)
./mvnw versions:set -DnewVersion=1.0.0 -DgenerateBackupPoms=false

git add pom.xml
git commit -m "chore: release 1.0.0"
git push origin main

The workflow starts automatically. A GitHub issue is opened asking for approval.

2. Approve the release:

One of the listed approvers (FDelporte, stefanhaustein) comments approved on the auto-created issue.
The pipeline resumes and publishes to Maven Central.

3. Bump to the next development snapshot:

./mvnw versions:set -DnewVersion=1.0.1-SNAPSHOT -DgenerateBackupPoms=false

git add pom.xml
git commit -m "chore: prepare next development iteration 1.0.1-SNAPSHOT"
git push origin main
# workflow triggers but immediately skips (SNAPSHOT detected)

LICENSE

Pi4J is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.