hmm I would have left the API and SPI aggregated as those are meant to stick 
close, but this comes at the cost of a mini mono repo again. So in the first 
step I would just have plc4x-api, plc4x-spi.

- Sebastian

On 2025/11/20 16:17:51 Christofer Dutz wrote:
> Oh …
> and mabe adding to this … a new release would then be:
> 
> 
>   *
> Release build-tools (If something changed)
>   *
> Release protocols (If something changed)
>   *
> Release API4{X} (if something changed)
>   *
> Release PLC4{X) (If something changed)
>   *
> Release / Update Website (Obviously something must have changed)
> 
> Working with half released stuff and releasing all in one go will be very 
> difficult for non-maven-professionals.
> 
> 
> Chris
> 
> Von: Christofer Dutz <[email protected]>
> Datum: Donnerstag, 20. November 2025 um 17:13
> An: [email protected] <[email protected]>
> Betreff: AW: Suggestion to introduce dedicated repos for API, SPI and 
> languages
> 
> Hi Sebastian,
> 
> Well SPI would more be part of the language, right?
> And API would not be a „plc4x-api“ but a „plc4j-api“, „plc4go-api“, 
> „plc4py-api“ right?
> 
> Dammit … you already mentioned most of my objections 😉 Yes we would be adding 
> 10 repos … and even if we would not release the API modules if nothing has 
> changed, still would we need to release all language modules. Or we only 
> release language modules, if we worked on them (However then I think we’ll 
> simply stop releasing some of them and effectively move them to some sort of 
> project attic). We also need to keep in mind, that our code-generation is 
> Java based, so you’ll not really make things 100% native by splitting up. 
> Also should we not forget, that we have quite some interdependencies … like 
> we use the PLC4J part to generate part of the documentation for the website.
> 
> The reasoning I do understand and I have seen this type of discussion before. 
> In Apache Cocoon the project switched to releasing only modules that had 
> changes. This was a very clean approach, but from a user-perspective it was a 
> nightmare. If you wanted to use module X you had to search for which API 
> version that works with. Many issues here also only popped up at runtime, 
> which made things even worse.
> 
> I do like your idea of a sub-module … so far we only have GO as one of these 
> source-based repos, right? Couldn’t we simply create a new repo and mount 
> part of the PLC4X repo there? Or we simply fork out the PLC4Go module and 
> link it back in via git-submodules?
> 
> In general I would be in favor of one repo per language. Especially as it 
> seems I might really get funding and then I would start working on the SPI 
> 3.0 for PLC4J … if we didn’t move PLC4J in this new repo, but I would start 
> building a completely new one there, this would simplify things.
> 
> Chris
> 
> 
> 
> Von: Sebastian Rühl <[email protected]>
> Datum: Donnerstag, 20. November 2025 um 16:58
> An: [email protected] <[email protected]>
> Betreff: Suggestion to introduce dedicated repos for API, SPI and languages
> 
> Hi together,
> 
> after some thoughts and discussions it came clear that it would be a good 
> move to introduce dedicated repos for:
> - API (plc4x-api)
> - SPI (plc4x-spi)
> - Lanugages (plc4j, plc4go, plc4py)
> 
> The idea is to have it like in slf4j. They have their slf4j-api package and 
> then different implementations that you can throw in. For plc4x we could have 
> the same where the version of the API then really reflects changes on the API 
> itself, the SPI would be the driver-devel-kit and the languages could have 
> their own repo without all other languages interfering (The current approach 
> for example is a nightmare for source based languages like Go where you 
> always pull in this huge behemoth of our mono-repo plc4x). We can still keep 
> plc4x as monorepo and then pull in the parts as subtree/git-submodules so we 
> can keep that as compability/convenience.
> One could say: oh but now I need to release 10 repos. But I would counter to 
> that: why would you need to release, lets say the API, if nothing didn't 
> change there.
> Also what I quite like on this approach that it could allow for drop in 
> replacements for other OpenSource solutions or even commercial offerings. 
> Also that would put PLC4X in a spot where it belongs to: A API for PLCs. :)
> 
> So my vote would be with a big +1 to introduce new repos and have that all a 
> bit more manageable.
> 
> - Sebastian
> 

Reply via email to