Skip to content

Commit 9f564e2

Browse files
authored
Merge pull request #80 from Pi4J/release/3.0.0
Release Notes for 3.0.0
2 parents 9e34260 + 321b3e6 commit 9f564e2

3 files changed

Lines changed: 54 additions & 41 deletions

File tree

content/_index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ title: Welcome to Pi4J
55
## Welcome to Pi4J
66

77
{{% notice warning %}}
8-
**Pi4J is moving to Java version 21!** Please [read this blog post for more info](/blog/2025/20250211-welcome-java-21/). 3.0.0-SNAPSHOT of Pi4J is already available for testing from the Maven Repository if you enable snapshots in your pom-file.
8+
**Pi4J moved to Java version 21!** Please [read this blog post for more info](/blog/2025/20250211-welcome-java-21/). 3.0.1 is the first release that requires Java 21 or newer.
99
{{% /notice %}}
1010

11-
**Latest release: V2.8.0 (2025-01-28, see [Release Notes](/about/release-notes/)).**
11+
**Latest release: V3.0.1 (2025-03-??, see [Release Notes](/about/release-notes/)).**
1212

1313
This project is intended to provide **a friendly object-oriented I/O API and implementation libraries for Java Programmers** to access the **full I/O capabilities of the Raspberry Pi platform**. This project abstracts the low-level native integration and interrupt monitoring to enable Java programmers to **focus on implementing their application business logic**.
1414

@@ -44,5 +44,5 @@ This resulted in the following main versions:
4444

4545
* [V1.X](/about/info-v1): Deprecated, based on Java 8, later Java 11.
4646
* [V2.X.X](/about/info-v2): Completely reworked code base, based on Java 11.
47-
* [V3.X.X](/about/info-v3): Based on latest V2 and Java 21.
47+
* [V3.X.X](/about/info-v3): Based on Pi4J 2.8.0 and Java 21.
4848

content/about/info-v3.md

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ title: 'What''s New in V3'
33
weight: 22
44
---
55

6-
Versions 3.0.0 is based on 2.8.0 (released in January 2025), but bumps the **Java version to 21** or newer! We [asked our users](https://github.com/Pi4J/pi4j/discussions/409) which minimal Java version we should use, but there was no one clear answer, as expected ;-)
6+
Versions 3.0.1 is based on 2.8.0 (released in January 2025), but bumps the **Java version to 21**!
77

8-
The current/latest Long Term Support (LTS) version of Java is version 21. So it makes sense to jump forward from 11 to 21. This will also prepare us for a the next LTS, which will be Java 25 in September 2025. Bumping to the latest LTS makes it possible to make use of many newer Java language and runtime improvements, simplify some of the code, etc.
8+
We [asked our users](https://github.com/Pi4J/pi4j/discussions/409) which minimal Java version we should use, but there was no one clear answer, as expected ;-)
99

10-
We would like to move to Java 22 as this would allow us to easier call C code to interact with the GPIOs, thanks to [JEP 454: Foreign Function & Memory API](https://openjdk.org/jeps/454). Unfortanelty, 22 is not a LTS, so it would force us to bump the version every six months with each new release, up till 25.
10+
The current/latest Long Term Support (LTS) version of Java is version 21. So it makes sense to jump forward from 11 to 21. This will also prepare us for the next LTS, which will be Java 25 in September 2025. Bumping to the latest LTS makes it possible to make use of many newer Java language and runtime improvements, simplify parts of the code, etc.
11+
12+
We would like to move to Java 22 as this would allow us to easier call C code to interact with the GPIOs, thanks to [JEP 454: Foreign Function & Memory API](https://openjdk.org/jeps/454). Unfortunately, 22, is not a LTS, so it would force us to bump the version every six months with each new release, up till 25.
1113

1214
[The sources of V3 can be found in the GitHub repository `pi4j/pi4j`](https://github.com/Pi4J/pi4j).
1315

@@ -22,21 +24,3 @@ The Pi4J V3 source code is available in this GitHub repository: [`pi4j/pi4j` Git
2224
```shell
2325
git clone https://github.com/Pi4J/pi4j
2426
```
25-
26-
Pi4J V3 is not yet released, but you can already use version `3.0.0-SNAPSHOT` for testing if you add the snapshot Maven repository to your pom-file.
27-
28-
```xml
29-
<repositories>
30-
<repository>
31-
<id>oss-snapshots-repo</id>
32-
<name>Sonatype OSS Maven Repository</name>
33-
<url>https://oss.sonatype.org/content/groups/public</url>
34-
<releases>
35-
<enabled>false</enabled>
36-
</releases>
37-
<snapshots>
38-
<enabled>true</enabled>
39-
</snapshots>
40-
</repository>
41-
</repositories>
42-
```

content/about/release-notes.md

Lines changed: 46 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,36 @@ weight: 40
55

66
All releases of Pi4J V2+ are listed on [github.com/Pi4J/pi4j/releases](https://github.com/Pi4J/pi4j/releases).
77

8-
## 2025-01-28 - V2.8.0
8+
## V3
9+
10+
Requires Java 21, see [What's New in V3](/about/info-v3/) for more info.
11+
12+
### 2025-03-24 - V3.0.1
13+
14+
This is the first release of Pi4J that requires the Java runtime 21 or higher. Check the blog post [Pi4J welcomes Java 21](/blog/2025/20250211-welcome-java-21/) to understand why we needed this change to make the project ready for the future...
15+
16+
Because of a last-minute change to improve the detection of Raspberry Pi 5, 500 and Compute 5, **release 3.0.0 has been skipped**.
17+
18+
* Bump Java version to 21, and update many dependencies, Maven plugin, etc.
19+
* Added JNA dependency (needed for Java 21).
20+
* Added Maven wrapper.
21+
* Improved lifecycle shutdown handling for registry elements: Updated the `Lifecycle` interface to clarify shutdown behavior and added tests to ensure proper element recreation after shutdown. These enhancements make the shutdown process more robust and intuitive.
22+
* Issue [#308](https://github.com/Pi4J/pi4j/discussions/308): Remove serial support from Pi4J. All serial methods are marked as `@Deprecated(forRemoval = true)`. We advise to use [jSerialComm](https://fazecast.github.io/jSerialComm/) for all serial communication.
23+
* Pull request [#438](https://github.com/Pi4J/pi4j/pull/438): Extra unit test for shutdown and re-creation of a DigitalInput.
24+
* Issue [#439](https://github.com/Pi4J/pi4j/issues/439): Allow Specifying GPIO Chip for GpioDContext. For more info on how to use, see [Specifying the GPIO Chip](/documentation/providers/gpiod/).
25+
* Pull request [#449](https://github.com/Pi4J/pi4j/pull/449): Fixes a minor bug in DigitalOutput where pulseAsync ignored the given state and always pulsed high.
26+
* Pull request [#452](https://github.com/Pi4J/pi4j/pull/452): PWM linuxfs failed if the first interface call was off().
27+
* Pull request [#453](https://github.com/Pi4J/pi4j/pull/453) for issue [#296](https://github.com/Pi4J/pi4j/discussions/296): Generic BoardModels (with and without RP1) have been added, with a new method `BoardInfoHelper.current().setBoardModel(BoardModel.GENERIC);` to make it possible to **use Pi4J on other types of boards**. The goal of the Pi4J project is still to focus on the Raspberry Pi. However, this should allow testing the compatibility of the library with other boards with a similar architecture. We are looking forward to feedback from the community and possible improvements to this approach.
28+
29+
Thanks to contributions by [@stefanhaustein](https://github.com/stefanhaustein), [@Haruka0522](https://github.com/Haruka0522), [@mpilone](https://github.com/mpilone), [@dariuszzbyrad](https://github.com/dariuszzbyrad), [@taartspi](https://github.com/taartspi), [@eitch](https://github.com/eitch), [@fdelporte](https://github.com/fdelporte).
30+
31+
All changes: https://github.com/Pi4J/pi4j/compare/2.8.0...3.0.1
32+
33+
## V2
34+
35+
Requires Java 11, see [What's New in V2](/about/info-v2/) for more info.
36+
37+
### 2025-01-28 - V2.8.0
938

1039
* Several code and JavaDoc improvements by adding the checkstyle plugin.
1140
* Improvements in loading the Mock providers to build and test Pi4J on a Raspberry Pi.
@@ -27,7 +56,7 @@ Special thanks to [Dariusz Zbyrad](https://github.com/dariuszzbyrad) for joining
2756

2857
All changes: https://github.com/Pi4J/pi4j/compare/2.7.0...2.8.0
2958

30-
## 2025-01-28 - V2.8.0
59+
### 2025-01-28 - V2.8.0
3160

3261
* Several code and JavaDoc improvements by adding the checkstyle plugin.
3362
* Improvements in loading the Mock providers to build and test Pi4J on a Raspberry Pi.
@@ -49,7 +78,7 @@ Special thanks to [Dariusz Zbyrad](https://github.com/dariuszzbyrad) for joining
4978

5079
All changes: https://github.com/Pi4J/pi4j/compare/2.7.0...2.8.0
5180

52-
## 2024-10-03 - V2.7.0
81+
### 2024-10-03 - V2.7.0
5382

5483
* Libraries are loaded depending on the platform, by calling `BoardInfoHelper.runningOnRaspberryPi()`.
5584
* `BoardModel` has been extended with 2Gb Raspberry Pi 5, Raspberry Pi Pico 2, and extra board codes for the Compute Module 4.
@@ -72,7 +101,7 @@ Thanks to contributions by [@ylexus](https://github.com/ylexus), [@mores](https:
72101

73102
All changes: https://github.com/Pi4J/pi4j/compare/2.6.1...2.7.0
74103

75-
## 2024-07-29 - V2.6.1
104+
### 2024-07-29 - V2.6.1
76105

77106
This is a minor bug fix release to allow a smoother integration in a Spring Boot Starter by allowing to run on PC for testing without initialization errors and with reduced logging of the I2C Mock plugin.
78107

@@ -81,7 +110,7 @@ This is a minor bug fix release to allow a smoother integration in a Spring Boot
81110

82111
All changes: https://github.com/Pi4J/pi4j/compare/2.6.0...2.6.1
83112

84-
## 2024-04-29 - V2.6.0
113+
### 2024-04-29 - V2.6.0
85114

86115
* New hardware PWM provider added to the GpioD plugin, see:
87116
* [Blog: PWM Hardware Support on RPi5](https://pi4j.com/blog/2024/20240423_pwm_rpi5/).
@@ -103,13 +132,13 @@ Make sure to also read the interviews with [Robert von Burg](https://pi4j.com/bl
103132

104133
All changes: https://github.com/Pi4J/pi4j/compare/2.5.1...2.6.0
105134

106-
## 2024-03-18 - V2.5.1
135+
### 2024-03-18 - V2.5.1
107136

108137
Sorry! Because of a configuration error, the wrong native code is included in 2.5.0 for the new GpioD Provider. But [thanks to the lightning fast action](https://github.com/Pi4J/pi4j/commit/6ac458ec2d9b38a20b2195f4ecc03a65fbdebff7) of [Robert von Burg](https://github.com/eitch) we have a fixed version for you to enjoy :-)
109138

110139
All changes: https://github.com/Pi4J/pi4j/compare/2.5.0...2.5.1
111140

112-
## 2024-03-18 - V2.5.0
141+
### 2024-03-18 - V2.5.0
113142

114143
With over 100 commits from multiple branches, this is a major release with many improvements! With many thanks to the core team ([Robert von Burg](https://github.com/eitch), [Tom Aarts](https://github.com/taartspi)), and a major addition of [Alexander Liggesmeyer](https://github.com/alex9849), Pi4J is again lifted to a higher level!
115144

@@ -119,7 +148,7 @@ You can find out [more about Alexander in this blog post](/blog/2024/20240318_in
119148
The new GpioD Provider needs the latest Raspberry Pi OS version (`Debian GNU/Linux 12 (bookworm)`).
120149
{{% /notice %}}
121150

122-
### Changes in 2.5.0
151+
#### Changes in 2.5.0
123152

124153
* A new GpioD Provider adds **support for the Raspberry Pi 5**.
125154
* Issues [#321](https://github.com/Pi4J/pi4j/issues/321), [#320](https://github.com/Pi4J/pi4j/issues/320), [#317](https://github.com/Pi4J/pi4j/issues/317)
@@ -138,11 +167,11 @@ The new GpioD Provider needs the latest Raspberry Pi OS version (`Debian GNU/Lin
138167

139168
All changes: https://github.com/Pi4J/pi4j/compare/2.4.0...2.5.0
140169

141-
### Known Issue
170+
#### Known Issue
142171

143172
* _java.io.IOException: Remote I/O error java.base/java.io.RandomAccessFile.writeBytes(Native Method). Using linuxfs-i2c, dependent upon i2c operations this exception can occur_: If the program initially uses read or write, and later uses readRegister or writeRegister there is no exception. However, if the program initially uses readRegister or writeRegister subsequent write or read may encounter this exception. For more info and the temporary fix, check [#335](https://github.com/Pi4J/pi4j/issues/335).
144173

145-
## 2023-10-24 - V2.4.0
174+
### 2023-10-24 - V2.4.0
146175

147176
* Extended LinuxFS plugin
148177
* PWM provider
@@ -167,7 +196,7 @@ Thanks to [@GeVanCo](https://github.com/GeVanCo), [@MMMMMNG](https://github.com/
167196

168197
All changes: https://github.com/Pi4J/pi4j/compare/2.3.0...2.4.0
169198

170-
## 2023-02-06 - V2.3.0
199+
### 2023-02-06 - V2.3.0
171200

172201
* Improvements for PIGPIO.gpioCfgInterfaces by [@bwaldvogel](https://github.com/bwaldvogel).
173202
* New i2c interface to support multibyte register address by [@taartspi](https://github.com/taartspi).
@@ -176,7 +205,7 @@ All changes: https://github.com/Pi4J/pi4j/compare/2.3.0...2.4.0
176205

177206
All changes: https://github.com/Pi4J/pi4j/compare/2.2.1...2.3.0
178207

179-
## 2022-10-17 - V2.2.1
208+
### 2022-10-17 - V2.2.1
180209

181210
Multiple fixes by [@taartspi](https://github.com/taartspi):
182211

@@ -187,17 +216,17 @@ Multiple fixes by [@taartspi](https://github.com/taartspi):
187216

188217
All changes: https://github.com/Pi4J/pi4j/compare/2.2.0...2.2.1
189218

190-
## 2022-08-30 - V2.2.0
219+
### 2022-08-30 - V2.2.0
191220

192221
What an amazing achievement! No major issues were found in the previous release, but several small fixes were added by more people than ever before in the Pi4J-history. This is a real confirmation of the openness of this project and how a community can work together to further improve a project.
193222

194223
A big thank you to everyone who experimented with Pi4J, took part in the discussions, filed an issue, created a merge request, added examples,...!
195224

196-
### New example implementations
225+
#### New example implementations
197226

198227
Thanks to the work of FHNW students and @taartspi, the list of available example implementations has become larger and larger. We even moved them to their own section of this documentation website! Take a look at [Example implementations](/examples/) if you need a quick-start to use a buzzer, camera, LED strip, TCA9548, MCP4725,... or any of the other examples.
199228

200-
### Changes in V2.2.0
229+
#### Changes in V2.2.0
201230

202231
Multiple improvements were added in this release (and others are already in progress for the next one!):
203232

@@ -213,6 +242,6 @@ Multiple improvements were added in this release (and others are already in prog
213242

214243
All the differences can be checked by comparing with the previous release 2.1.1 via [this link](https://github.com/Pi4J/pi4j/compare/2.1.1...2.2.0).
215244

216-
## Earlier release notes
245+
## V1
217246

218-
Release notes of the previous releases of Pi4J V2+ are available on [github.com/Pi4J/pi4j/releases](https://github.com/Pi4J/pi4j/releases).
247+
Up till version 1.3.0 requires Java 8, while version 1.4.0 requires Java 11. See [Info about V1](/about/info-v1/) for more info.

0 commit comments

Comments
 (0)