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