[Libusbx-devel] Keeping the 1.0.9rc3 tag

Pete Batard pete at akeo.ie
Wed Mar 28 09:23:57 EDT 2012


On 2012.03.28 13:35, Michael Plante wrote:
> Ok, so you plan to
> allocate a ton of offsets.  You say 65.  Maybe that's enough.

Because you seriously think that we want to handle more than 20 
semi-official branches at anyone time?

> I.e., people who have modified it know where they got it from.

Yes, usually, and the two cases of interest to us with regards to people 
who have modified the library is:
1.

> That's what I said.  You can't put the hash in the version number.  So what?
> Put it elsewhere.

Hi, I'm using TortoiseGit and MSVC. Please come back when you can 
explain how I'm going to do that.

Also, It's not an either/or. We can go with the solution I advocate, 
and, if you really feel like it, we can add an extra field for the hash 
in the versioning we'll report in libusb_get_version() once you or 
somebody else provide a solution that can do so.

> With manual coordination of offsets between developers, as you just
> described above, it can work.

Again, the only developers we need to concern ourselves with are the 
ones that are affiliated with us. Even if successful, there won't be 
that many. Everybody else will be assigned the same offset, because 
versioning of their *custom* library is not something that we need to 
solve, since there is no sure way we can produce something that will 
keep everybody and their custom usage happy (especially if they don't 
use git as their VCS).

Please don't try to make us address issues that aren't relevant to us.

> It's still an unnecessary pain

For you.

> and people
> have to actually RECOGNIZE that it branched, which is not always obvious.

Exactly. No matter how careful, there's no sure way of recognizing or 
making people recognize that something branched. So we go with freezout, 
hope that people will TELL us if they forked in the scope that is 
relevant to us (people coming to this list with an issue) or if not, 
either reproduce the issue from the version they report in master (or a 
semi-official branch we will recognize if the version has an offset) or 
if not, go back and ask them if they aren't using a branch by any chance.

But at least, we can almost always get someone to report a version that 
is relevant to us (unless they went out of their way to fake a version), 
and in the case of a DLL, they don't even have to run a program, they 
can just right click on the DLL.

> Additionally, if anyone disagrees about who gets what offset (say they go
> offline to develop for a few days)

Same unconvincing argument as "65 will not be enough". "If sourceforge 
goes down, what will we do?", "If the earth explodes tomorrow, who will 
continue libusbx development?". Or are we going to start to disagree 
over how a number gets assigned? It's the same as with sample names: one 
person proposes it (or does it) and everybody follows. People can rename 
the samples if they disagree (or try to see if others feel they should 
be changed), but they're not going to go very far if they go for 
something without concerting, unless they are alone at the helm.

In a democracy, whoever is not there to vote loses their voice.

> all those commits have to be amended or it fails.

More unconvincing plea.

> Why not let it get handled automatically?

Because you're still nowhere near of proposing even the shadow of a 
solution that can actually leverage the git hash and work, and because 
hashes are for computers, distances (or rather coordinates converted as 
a distance) are for people. As a maintainer, I hope that I at least get 
some choice over what I IDENTIFY will make my job easier (figuring out 
how commits relate in the branches I need to worry about), rather than 
go with something that makes it harder, just so someone may (because I'd 
like to see a proposal) get their versioning sorted in a branch that, as 
a maintainer, I should never have to care about.

If people branch and want to reuse our versioning, we give them a 
specific offset. If they apply it, then the problem of fidning out 
whether someone carried out modifications in their library when they 
come to us is solved just as well as it would with a hash, because all 
we need to know is that they have forked. We do not need to know 
anything more, especially we're not going to go troubleshoot someone's 
custom git tree if they provide us with the location of their commit. 
I'd like to help people, but I also know that there is such thing as 
limiting the scope of what you want to take one to make a project 
successful, which means stating the harsh reality that if you have 
forked, and we can't reproduce the issue in mainline, you are on your own.

Now, if people branch and don't reuse our versioning (because they use a 
different VCS, or because they chose to, or because they didn't pay 
attention to what we stated in the pre-commit hook) then we have a 
problem. But this is a problem no solution can solve. The only thing we 
can do is try to add some additional safety, such as, in the case 
someone uses git, we can try to somehow try to add a git commit ID, 
which if we can, I wouldn't mind doing, but which looks very difficult 
to do as we can't use a pre-commit hook and we have all the 
git-oblivious platforms to consider

> Risk vs cost.

EXACTLY what I am considering and that you don't, since you're coming 
without the cost of your solution, as you have nothing more than an 
ethereal "wouldn't it be nice" one.

> Your percentages are unconvincing.

You may not be convinced, but at least I have a proposal. If you want 
something utterly unconvincing, how about a non material proposal.

Let me give you in on a little maintainer's secret. Between a proposal, 
and wind, the proposal always wins. It's not enough to shoot down a 
proposal if you don't have a concrete alternative to provide, that 
everybody can judge the merits of. You have about 2 weeks to come up 
with one. I'll be waiting.

Regards,

/Pete



More information about the libusbx mailing list