Hello,

On 6/30/24 13:26, Urs Janßen wrote:
On Sun, Jun 30, 2024 at 12:12:27PM +0100, James Cowgill wrote:
Package: libuchardet-dev
Version: 0.0.8-1
Severity: wishlist

A new "upstream version" is available with a new API
deprecating uchardet_get_charset() in favour of
chardet_get_n_candidates() and uchardet_get_encoding()

The version number was not yet increased :(

Yes, because there is no 'new "upstream version"', very simply. The new API is still very much work-in-progress, which will make the API a lot more robust (allowing programs to make decisions differently by having a list of candidates, for instance for cases where the programs have additional information on expected languages, and more), also adding language detection. But it's not out yet.

The only API officially released is still the legacy one, with version 0.0.8 being the last version (the one to package). Please do not package development code. Well unless it's a package explicitly marked as experimental, with the clear statement that the API is not stable, may change at any moment and that bugs are to be expected.

See
https://gitlab.freedesktop.org/uchardet/uchardet/-/commit/8118133e0017c4e1b3ddc9fad104c0ba19692cd7
https://gitlab.freedesktop.org/uchardet/uchardet/-/commit/5a949265d577ccfbaef7bca01ad875b2aa84eace
https://gitlab.freedesktop.org/uchardet/uchardet/-/commit/669ede73a3473bab7fea4d01f093bb273a5430af
https://gitlab.freedesktop.org/uchardet/uchardet/-/commit/908f9b8ba776d21cd6e0b0b836014dd212f9a12f
I don't think these count as a new upstream version. They are commits
applied to the development branch but no tag or any "release" has been
made. I don't think it's a good idea to upload these to Debian until
They are also in the normal brach; I ran into this while adding charset
guessing to an application and looking at uchardet.h.

I guess that by "normal", you mean the main branch. I don't see why you would consider this branch with some kind of each-commit-is-a-release logic. It's not how software development and release procedure work, nor has it ever worked this way. The uchardet software is not some kind of "rolling release" software. We have software versions.

People are obviously free to build and run the HEAD of the main branch for themselves if they want, taking into account the drawbacks (more bugs, less stability, moving target API, etc.), but if you want stable releases, use the official releases please.


urs% git clonehttps://gitlab.freedesktop.org/uchardet/uchardet.git
Cloning into 'uchardet'...
remote: Enumerating objects: 3281, done.
remote: Counting objects: 100% (142/142), done.
remote: Compressing objects: 100% (60/60), done.
remote: Total 3281 (delta 89), reused 125 (delta 82), pack-reused 3139 (from 1)
Receiving objects: 100% (3281/3281), 1.44 MiB | 1.09 MiB/s, done.
Resolving deltas: 100% (2333/2333), done.

urs% grep chardet_get_n_candidates uchardet/src/uchardet.h
DEPRECATED("use uchardet_get_n_candidates() and uchardet_get_encoding() instead 
(since 0.1.0)")
UCHARDET_INTERFACE size_t       uchardet_get_n_candidates   (uchardet_t ud);

there's a release - especially when there are API changes that upstream
could potentially revert before a release.
IMHO unlikely as those API changes were introduced ~4 years ago and are
in the normal branch for > a year now.

I don't see the relationship with development time and API stability. As I recall, I had changed these API at least once since I introduced them and even though I think they are fine right now, there is no certainty that I won't change my mind (or that a contributor won't make me change my mind by convincing me of a better API), and certainly no promises for this not to happen. API stability is only promised with released versions, not with development code which is a moving target. Commits are not the release unit, the versioning scheme is.

As for the time spent on development, it is what it is. I have limited time and uchardet is not my main project. GIMP is my main project (as I am GIMP's main developer and maintainer). Also uchardet has quite some stability right now and since the evolution I am working on is quite huge (compared to the development history of this project so far), I take my time not to mess up this huge evolution.

So I'll release "when it's ready" and for now it is development code whose API may change anytime.

If you want to see these changes in Debian then the best way is try to
persuade upstream to do a proper "0.0.9" release, then I will happily
update the package.
I've added Jehan<je...@girinstud.io>  to Cc.

I won't make a new release right now. I wish to work again on uchardet soonish, but only after I will release GIMP 3.

In any case, there is quite some more work for me to make the first release containing this new API. I might even do one more stable release with the old API only before, if needed (though it may not be needed; as said, legacy uchardet is quite stable right now).

Thanks all! And good work on Debian! 👍

Jehan

--
ZeMarmot open animation film
http://film.zemarmot.net
Liberapay:https://liberapay.com/ZeMarmot/
Patreon:https://patreon.com/zemarmot
Tipeee:https://www.tipeee.com/zemarmot

Reply via email to