[GNC-dev] Dependencies policy for major releases

Geert Janssens geert.gnucash at kobaltwit.be
Sun Nov 13 09:28:13 EST 2022


Op zaterdag 29 oktober 2022 18:53:57 CET schreef john:
> What really makes sense? How many users are building for themselves and on
> what?

Here are a few of my thoughts on this topic (I threw away several earlier attempts because 
they became way too long...)

With my developer hat on I prefer to have as little conditional code as possible in the sources 
as this complicates reasoning about the code and makes it harder to test. So ideally no parts 
of the code that require certain versions of a dependency and other parts of the code for 
other versions of that same dependency. So that's the "most extreme" policy in John's 
writing. I am aware this is not always possible, especially as we offer gnucash on multiple 
platforms.

The other approach, where we freeze minimum dependencies on the stable branch, sounds 
like a nice compromise, but has the drawback that it makes the stable code more 
complicated in order to accommodate support for multiple versions of a dependency. So we 
trade the stability of an older dependency for complexity in our own code. I don't know if 
that's really a good trade-off for a small development team.

>From the perspective of an end user (on linux), the group affected the most are self-builders. 
A few have spoken up, but I have no idea of the size of this group in the wider community 
and whether or not they tend to run up-to-date distros.

The feedback we have received so far expresses a prudent willingness to self-build 
dependencies if needed.

On the whole my opinion is we can aim for more recent dependencies when it's useful, 
needed or desired.

How recent then can "more recent" be ? In my mind anything that's in the most recent LTS, 
should be fine in all cases. For anything more recent than that, we should consider how hard 
it would be to self-build the dependency.

Regards,

Geert


More information about the gnucash-devel mailing list