On Sun, 17 Jan 2016 10:56:38 +0100, Luc Maisonobe wrote:
Le 16/01/2016 16:51, Gilles a écrit :
Hi.

Context: nobody gave an opinion on the arguments which I put
forward in these posts:
  http://markmail.org/message/uiljlf63uucnfyy2
  http://markmail.org/message/ifwuijbgjytne6w2

As a consequence, the lack of any development policy, rather
than being the touted advantage of the "free world" of Apache,
is, objectively, a quite efficient way to push in the direction
of the stronger voice, not necessarily backed with the stronger
arguments (especially when those are not "technical" but, in
reality, "political"!).
This has been the subject of another post, that also was not
followed by a constructive debate in order to change this
community's ways, so that it would not discourage proposals
for code evolutions towards a modern use of the Java language.

Thus, in this context, I obviously can't know whether "silence
is consent" or if people will continue raising objections to my
experimenting with the contents of the "random" package, even
after not raising concern and/or not engaging in the practical
discussions about the proposals.

Also, it is disrespectful to let people think that they could
work on some part of the library, and then voice an opinion
akin to the hidden policy that there exists, in CM, codes
that are deemed too sensitive to be ever touched again.

My first idea was to make incremental changes in "random".
The first few, and little, steps unexpectedly implied a huge
amount of work, mainly due to the disproportionate
justifications that were being required.

It is a fact that even tiny, even no-op, changes meet
infinitely more opposition than adding even very large chunks
of new code.

Hence, I propose that all my recent changes to the "random"
package be reverted so that it will match the contents of the
3.6 release (modulo the changes which were explicitly agreed
on like those in "RandomGeneratorAbstractTest").

I did answer to at least part of your proposals, and suggested
this experimentation is done on a branch.
At the same time, you also proposed to adopt another branching
policy, and this was seen positively by anyone.

So I would suggest that rather than adding a parallel rng package,
which reminds me of the difficulties we get with the two optim and
optimization packages, you continue doing your changes directly
in the random package as you started to do, but in a feature branch.

Sorry, but I don't agree.
I've explained that I want to propose as a *replacement* to "random".
Almost every file will be changed, and a basic requirement is to have
the RNGs, and only the RNGs, in their own package/module.

So for example, "RandomDataGenerator" and "ValueServer", as "users"
of the RNGs, should not be in the "rng" package (but but stay in
"random" whatever else changed or delete there).

This situation here cannot be more different than for the "optim"
package!
First, the old "optimization" _has_ been deleted in "master"; we
had to keep it in the 3.x line.
The code in "optim" has been been criticized but until now nobody
came up with a better proposal, so the only working code must
obviously stay.

For "rng", I'll propose a working remplacement, and we'll be able
to immediately decide whether to keep "random" as is or adapt it
in order to remove the redundancy with the new "rng" and/or write
some adaptation layers from "random" to "rng".

Best regards,
Gilles


Is that possible?  [Luc, as the most experienced "git" user,
would you mind managing this, perhaps delicate, operation?]

Reverting is not difficult. Remember the trick discussed on
this list to port commits between math3 and math4? It was
basically doing a "git diff -p some-commit~1 some-commit",
then patching the commit with a sed and applying it later on.

Here is it even simpler because we don't have to patch the commit.
The trick is to do the git diff the other way round, i.e.
"git diff -p some-commit some-commit~1".

Also rather than reverting them and restarting again, in
order not to lose your work I'll cut a new feature branch
first, then revert on master only. You will be able to
continue your work on the feature branch.

On a related subject, I also read on another list that infra
now allows deleting branches again. The concerns I had with
short-lived hotfix branches are therefore not realistic
anymore, we can do as many brnahces and as short-lived as we want.


I would then pursue my refactoring in a new package named
  org.apache.commons.math4.rng
where all the modifications, that led to the latest outburst of
conservatism, will take place.
It will also allow me to further experiment and see where it
leads, without having to argue endlessly on every compatibility
breaking.

In effect, it's a fork of "random" (but within CM).
Of course, this will happen in a "feature branch" which I'll
create upstream when the renaming has been performed.

Then people can see both sets of codes "side-by-side", analyze
them, experiment with usage, and run benchmarks of the alternative
versions of the RNG classes.

Ultimately, if the rift between conservatists and modernists
remains, both the "random" and the "rng" packages can coexist
in the 4.0 release of the library.

I would really prefer not to live again the
optim/optimization/least squares nightmare.

best regards,
Luc



Regards,
Gilles


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to