Re: [Math][Numbers] Regression (due to a change in "BigFraction" class?)

2022-06-26 Thread Alex Herbert
On Sun, 26 Jun 2022 at 21:27, Gilles Sadowski  wrote:

>
>
> >
> > Strangely I am not receiving emails from GH actions (or jenkins) to
> inform
> > me that the build fails after a commit. There may be a setting for the GH
> > actions that is missing to enable e-mail to the committer after a build
> > failure.
>
> I also did not see the failure until trying a local build of [Math].
> Isn't it related to the fact that such test failures entail that the build
> is tagged as "unstable" rather than "failed"?
>

For GH actions I think we can add this to the .asf.yaml [1,2]:

notifications:
  jobs:   dev@commons.apache.org

I am not sure if we should try this with dev@ or use another e-mail list.


For Jenkins the post build editable e-mail notification section had
'Disable Extended Email Publisher' selected. I have unchecked this box (as
per the RNG config); we will wait to see if it now sends emails on a build
error. Note that statistics and math also have this setting unchecked.
Geometry has the setting checked (perhaps it should be updated).

However this may not be the setting to fix this since it was not checked in
the math config and math had a recent build failure after it was triggered
by a change in numbers. The email is targeted at the developer who created
the commit. So the math build failure should have been sent to me since I
have the most recent commit on master. But I received no email. The math
build is logged as a failed build but the log output shows that maven still
completes remaining modules and uploads the SNAPSHOT artifacts.

Also note that the Jenkins build for numbers continues to deploy all
modules after a module has failed tests (see [3] for the failed build after
the offending commit). So there is something in the Jenkins setup that is
ignoring test failures and continuing with the build to deploy artifacts
from all the modules.

Alex

[1]
https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features#Git.asf.yamlfeatures-GitHubActionsbuildstatusemails
[2]
https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features#Git.asf.yamlfeatures-Notificationsettingsforrepositories
[3] https://ci-builds.apache.org/job/Commons/job/commons-numbers/150/


Re: [numbers][gsoc] GSoC 2022 - NUMBERS-186 Proposal

2022-06-26 Thread Alex Herbert
On Sun, 26 Jun 2022 at 20:52, Sumanth Rajkumar 
wrote:

> Hi,
> I have raised PR #113 after rebasing to the master branch with Alex's
> checkstyle changes
>
> As per feedback, I have made the following changes
> a) Added javadoc comments
> b) Ensured test coverage
> c) Renamed accessors on the interface
>

Thanks for the changes. Note that a new PR is not required. You can simply
force push changes to the previous PR. It is covering the same subject.

I've not yet fully read the PR. However the level of abstraction on some of
the simple functions seems excessive. Many of the scalar operations
using applyScalarFunction are one liners that have been abstracted to
multiple layers of function references. Simple operations such as add,
subtract, conjugate, negate, arg (defined as Math.atan2) may be better left
alone. They can be duplicated into the complex functions class if the API
is for public consumption but performance may be impacted by the
abstraction. The code is definitely made less readable.

Also note that you have some double empty lines which should be a
single empty line and then some functions ending with } and no empty line
after. These can be simply fixed using a regular expression to search for
them.

I note that some javadoc is missing for private methods. I have not set
checkstyle to enforce this and the default scope is public. It should at
least be protected, but my preference would be package. I will see if the
rest of the project is OK for this and then update the rule.


>
>
> > Gilles Sadowski  wrote:
> > In "DComplex", I propose that the accessors be named "real()" and
> > "imag()" (or just
> > "re()" and "im()").  ["DComplex" is not a very satisfying name either...]
>
> For the interface name, shall I change it to Complex64 from DComplex?
>

In c the 'complex' keyword is a suffix:

double complex c1;
float complex c2;
long double complex c3;

In c++ the type is generic (and read as a suffix):

complex c1;
complex c2;

Either of these would be my preference over DComplex or Complex64.


> > Are we sure that all this code needs to be part of the public API?
> > If not, I'd suggest limiting accessibility to "package-private".
>
> Are you referring to the static methods in ComplexFunctions and
> ComplexBiFunctions classes?
> I think they would need to be public for developers to be able to compose
> multiple operations...
>

The static helper functions have been extracted to support all the ISO c99
operations on the list structure of complex numbers.

A list will ideally implement a generic foreach operation. So to apply a
single function only requires making the static functions public. The
alternative is to make the list expose all the ISO c99 operations in its
public API.

To create a composite function that eventually writes back to the list can
be implemented by writing intermediate values to a result which is then
passed to the next operation. This can be satisfied by using the Complex
class. This already exposes all the ISO c99 functions. So perhaps it is not
required to make all the helper functions public for the purpose of
composing multiple operations. But it would be helpful for all the single
operations.


>
> Thanks,
> Sumanth
>
> PS: Noticed master branch unit test failures in numbers-fraction module
>

This has been fixed. Sorry for the mistake.

Alex


Re: [Math][Numbers] Regression (due to a change in "BigFraction" class?)

2022-06-26 Thread Gilles Sadowski
Hello.

Le dim. 26 juin 2022 à 22:17, Alex Herbert  a écrit :
>
> On Sun, 26 Jun 2022 at 21:12, Gilles Sadowski  wrote:
>
> > Hello.
> >
> > Jenkins (as well as local build of [Math]) is failing:
> >   https://ci-builds.apache.org/job/Commons/job/commons-math/336/
> >
> > Two regressions appeared in unit tests untouched for ages:
> >   org.apache.commons.math4.legacy.analysis.polynomials.PolynomialsUtilsTest
> >
> > org.apache.commons.math4.legacy.ode.nonstiff.AdamsNordsieckTransformerTest
> >
> > The impacted classes
> >   org.apache.commons.math4.legacy.analysis.polynomials.PolynomialsUtils
> >   org.apache.commons.math4.legacy.ode.nonstiff
> > both depend on class "BigFraction" from [Numbers] that has been modified
> > in commit 1497df18dfb77f454450d71733c31a47560c6845.
> > There, parentheses have been removed in logical tests.
> > Could this seemingly innocuous change be causing this issue?
> >
>
> Yes. It is a rounding error I introduced when erasing the wrong set of
> parentheses. I have corrected the error. Sorry for the mistake.

Once in a (long) while. ;-)
It's great to see that the test suites are working!

>
> Strangely I am not receiving emails from GH actions (or jenkins) to inform
> me that the build fails after a commit. There may be a setting for the GH
> actions that is missing to enable e-mail to the committer after a build
> failure.

I also did not see the failure until trying a local build of [Math].
Isn't it related to the fact that such test failures entail that the build
is tagged as "unstable" rather than "failed"?

Regards,
Gilles

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



Re: [Math][Numbers] Regression (due to a change in "BigFraction" class?)

2022-06-26 Thread Alex Herbert
On Sun, 26 Jun 2022 at 21:12, Gilles Sadowski  wrote:

> Hello.
>
> Jenkins (as well as local build of [Math]) is failing:
>   https://ci-builds.apache.org/job/Commons/job/commons-math/336/
>
> Two regressions appeared in unit tests untouched for ages:
>   org.apache.commons.math4.legacy.analysis.polynomials.PolynomialsUtilsTest
>
> org.apache.commons.math4.legacy.ode.nonstiff.AdamsNordsieckTransformerTest
>
> The impacted classes
>   org.apache.commons.math4.legacy.analysis.polynomials.PolynomialsUtils
>   org.apache.commons.math4.legacy.ode.nonstiff
> both depend on class "BigFraction" from [Numbers] that has been modified
> in commit 1497df18dfb77f454450d71733c31a47560c6845.
> There, parentheses have been removed in logical tests.
> Could this seemingly innocuous change be causing this issue?
>

Yes. It is a rounding error I introduced when erasing the wrong set of
parentheses. I have corrected the error. Sorry for the mistake.

Strangely I am not receiving emails from GH actions (or jenkins) to inform
me that the build fails after a commit. There may be a setting for the GH
actions that is missing to enable e-mail to the committer after a build
failure.

Alex


[Math][Numbers] Regression (due to a change in "BigFraction" class?)

2022-06-26 Thread Gilles Sadowski
Hello.

Jenkins (as well as local build of [Math]) is failing:
  https://ci-builds.apache.org/job/Commons/job/commons-math/336/

Two regressions appeared in unit tests untouched for ages:
  org.apache.commons.math4.legacy.analysis.polynomials.PolynomialsUtilsTest
  org.apache.commons.math4.legacy.ode.nonstiff.AdamsNordsieckTransformerTest

The impacted classes
  org.apache.commons.math4.legacy.analysis.polynomials.PolynomialsUtils
  org.apache.commons.math4.legacy.ode.nonstiff
both depend on class "BigFraction" from [Numbers] that has been modified
in commit 1497df18dfb77f454450d71733c31a47560c6845.
There, parentheses have been removed in logical tests.
Could this seemingly innocuous change be causing this issue?
If so, there is a probably unwanted side-effect (either in [Numbers] or in
[Math]).

Regards,
Gilles

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



Re: [numbers][gsoc] GSoC 2022 - NUMBERS-186 Proposal

2022-06-26 Thread Sumanth Rajkumar
Hi,
I have raised PR #113 after rebasing to the master branch with Alex's
checkstyle changes

As per feedback, I have made the following changes
a) Added javadoc comments
b) Ensured test coverage
c) Renamed accessors on the interface


> Gilles Sadowski  wrote:
> In "DComplex", I propose that the accessors be named "real()" and
> "imag()" (or just
> "re()" and "im()").  ["DComplex" is not a very satisfying name either...]

For the interface name, shall I change it to Complex64 from DComplex?

> Are we sure that all this code needs to be part of the public API?
> If not, I'd suggest limiting accessibility to "package-private".

Are you referring to the static methods in ComplexFunctions and
ComplexBiFunctions classes?
I think they would need to be public for developers to be able to compose
multiple operations...

Thanks,
Sumanth

PS: Noticed master branch unit test failures in numbers-fraction module

On Fri, 24 Jun 2022 at 19:43, Gilles Sadowski  wrote:

> Hello.
>
> Le ven. 24 juin 2022 à 16:59, Sumanth Rajkumar
>  a écrit :
> >
> > Hi Alex, Gilles, and Matt,
> >
> > I have raised a PR to the complex-gsoc-22 branch and it has been linked
> to
> > the NUMBERS-188 jira.
>
> One tenet of a project such as "Commons" is that everything must be
> documented.[1]
> For the Javadoc comments, please apply the same style as in other source
> files.
>
> Formatting should also be taken care of (to help review, and future
> maintenance).[2]
>
> Are we sure that all this code needs to be part of the public API?  If
> not, I'd suggest
> limiting accessibility to "package-private".
>
> In "DComplex", I propose that the accessors be named "real()" and
> "imag()" (or just
> "re()" and "im()").  ["DComplex" is not a very satisfying name either...]
>
> Thanks,
> Gilles
>
> [1] I'm a bit surprised that the build succeeds despite the missing
> comments.
> [2] E.g. one argument per line improves readability (IMHO).
>
> >
> > [...]
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


[CANCELLED] [VOTE] Release Apache Commons Configuration 2.8 based on RC2

2022-06-26 Thread Matt Juntunen
Hello,

Apologies for the late response. The second half of this week turned
out to be extraordinarily busy and I haven't had any time for commons.

Thank you for the detailed review, Gary. I am cancelling this vote and
will be making those changes for RC3. It may be a few days more before
I can get to it. Should I also change the version to "2.8.0" instead
of "2.8" while I'm at it?

Regards,
Matt J

On Fri, Jun 24, 2022 at 7:38 AM Gary Gregory  wrote:
>
> Where is the documentation for the new property-based toggles?
>
> It should be at least be documented here:
> https://dist.apache.org/repos/dist/dev/commons/configuration/2.8-RC2/site/userguide/howto_basicfeatures.html#Variable_Interpolation
>
> Shouldn't the migration page also mention have a new section for this
> version on how to get the features back with the sys prop toggles on
> https://dist.apache.org/repos/dist/dev/commons/configuration/2.8-RC2/site/userguide/upgradeto2_0.html
> ?
>
> Gary
>
> On Tue, Jun 21, 2022 at 11:47 PM Matt Juntunen
>  wrote:
> >
> > We have fixed quite a few bugs and added some significant enhancements
> > since Apache Commons Configuration 2.7 was released, so I would like
> > to release Apache Commons Configuration 2.8.
> >
> > Apache Commons Configuration 2.8 RC2 is available for review here:
> > https://dist.apache.org/repos/dist/dev/commons/configuration/2.8-RC2
> > (svn revision 55251)
> >
> > The Git tag commons-configuration-2.8-RC2 commit for this RC is
> > f540433112b9a93c26c43277c3ec7a3d40565115 which you can browse here:
> > 
> > https://gitbox.apache.org/repos/asf?p=commons-configuration.git;a=commit;h=f540433112b9a93c26c43277c3ec7a3d40565115
> > You may checkout this tag using:
> > git clone https://gitbox.apache.org/repos/asf/commons-configuration.git
> > --branch commons-configuration-2.8-RC2 commons-configuration-2.8-RC2
> >
> > Maven artifacts are here:
> > 
> > https://repository.apache.org/content/repositories/orgapachecommons-1590/org/apache/commons/commons-configuration2/2.8/
> >
> > These are the artifacts and their hashes:
> >
> > #Release SHA-512s
> > #Tue Jun 21 23:27:23 EDT 2022
> > commons-configuration2-2.8-bin.tar.gz=b3f4628ecf3fc52feaf68ca13d0518d0ff5de8bea690a3fa625b91f2ffee9ef0fe1c575743d71bd035ba5d1c0be47a668ec1b28fb1953998f6723cecb8b59a38
> > commons-configuration2-2.8-bin.zip=86dc5ee9d7581b6c0b2f2807fb4f2179eec0dc4dfdb1246ffd9054a64e4511b534a4be015946403f0d0519362029cef2d4d89c684d38eaa4bd1e6af8d8b8b3a9
> > commons-configuration2-2.8-javadoc.jar=91dc9721ebea0345175d02b2d8e4bf08a255034549527edbecd382771540d85ca2423f22a4bc260d42ac33e9c3bd6b36a5fb7713b4919b58a0c06d9661285b0d
> > commons-configuration2-2.8-sources.jar=85e4f25fc9a0682bd3376de2741b48bfb6b77e98795a107c818c0bb51578cde8dd60a5e38177a6ce2a73bc4a1b9f925720321f7320fef0173c6f26c0a303bb55
> > commons-configuration2-2.8-src.tar.gz=924be9a8c0fd5f5a03d9ccd14a0bf79b83323f424fc4580084e807a5f7f242d40146cbdcd34d8d3a0098aeebe3040f77089230176ef737d649666152f2bda6ea
> > commons-configuration2-2.8-src.zip=e6695471c21e0c885b3ad5b0e0ff65a69a65cbc82a7c96d0406342f81b2efb8185b7008dfd7d49603ca96ea44761bb681aacfd997bbbae742ad922d58173305a
> > commons-configuration2-2.8-test-sources.jar=d203e063ec6b7ea16688c9015f10cf41bb3c592e990e214f6f808a20f19efe5973b3d30f4b939d571a8f4c1c2094d52c77733b59d0e7cdf412d27133fac7c7d9
> > commons-configuration2-2.8-tests.jar=6878c163de212e0617650ecbcd68887db1fc0c29f596ca773598b4ef7314e7062f4671208b8360d6ec2ca8f8408c75763912bcc545903e440fd77a6086af5c49
> >
> >
> >
> > I have tested this with ***'mvn clean install site'*** using:
> > ***
> > Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
> > Maven home: /home/matt/tools/maven/apache-maven-3.8.4
> > Java version: 1.8.0_322, vendor: Temurin, runtime:
> > /home/matt/lang/java/jdk8u322-b06/jre
> > Default locale: en_US, platform encoding: UTF-8
> > OS name: "linux", version: "5.17.12-300.fc36.x86_64", arch: "amd64",
> > family: "unix"
> >
> > Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
> > Maven home: /home/matt/tools/maven/apache-maven-3.8.4
> > Java version: 11.0.14.1, vendor: Eclipse Adoptium, runtime:
> > /home/matt/lang/java/jdk-11.0.14.1+1
> > Default locale: en_US, platform encoding: UTF-8
> > OS name: "linux", version: "5.17.12-300.fc36.x86_64", arch: "amd64",
> > family: "unix"
> > ***
> >
> > Details of changes since 2.7 are in the release notes:
> > 
> > https://dist.apache.org/repos/dist/dev/commons/configuration/2.8-RC2/RELEASE-NOTES.txt
> > 
> > https://dist.apache.org/repos/dist/dev/commons/configuration/2.8-RC2/site/changes-report.html
> >
> > Site:
> > 
> > https://dist.apache.org/repos/dist/dev/commons/configuration/2.8-RC2/site/index.html
> > (note some *relative* links are broken and the 2.8 directories are
> > not yet created - these will be OK once the site is deployed.)
> >
> > JApiCmp Report (compared to 2.7):
> > 
> > https://dist.apache.org/repos/dist/dev/commons/configuration/2.8-RC2/s

Re: [CRYPTO] Updated docker build

2022-06-26 Thread sebb
I've merged the docker build into the default branch.
It may not be perfect, but it does work well enough!

On Wed, 22 Jun 2022 at 17:14, sebb  wrote:
>
> On Wed, 22 Jun 2022 at 15:59, Alex Remily  wrote:
> >
> > I went back and reviewed docker setup at your link:
> >
> > https://github.com/apache/commons-crypto/tree/79374289bdd227b5b668039c9336cd10d9e3bf7c/src/docker
> >
> > Nice work.
>
> Props to you for getting the initial build working.
> I just tweaked it.
>
> > I agree that it's more flexible and provides the same
> > capability.  The instructions were straightforward and the end result was a
> > full build.  One can also experiment via the command line, which is nice.
> > A couple of comments.  The comments on lines 16-21 should be removed, as
> > you've provided updated instructions in the readme.
>
> Done.
>
> > I recall that during
> > the last release process I recommended using 18.04 as the base image and
> > was overruled because of backwards compatibility concerns with the native
> > binaries.  I don't know that I share those concerns, but that was the
> > rationale for using the older base.
>
> I see.
> Hopefully not an issue anymore?
>
> > Otherwise, it seems ready to commit and close out 120 and 132.
> >
> > Alex
> >
> > On Tue, Jun 21, 2022 at 5:52 PM sebb  wrote:
> >
> > > On Tue, 21 Jun 2022 at 22:32, Alex Remily  wrote:
> > > >
> > > >  > > previous
> > > > submission.>
> > > >
> > > > Don't know that it's an "improvement", but a different approach.  I 
> > > > think
> > > > if we provide a dockerfile that builds every supported arch (minus the
> > > Mac)
> > > > developers could easily modify it by removing parts they don't want as
> > > > opposed to adding dependencies and builds for the parts that they do.
> > >
> > > That is the case with my version.
> > > The builds are in separate script files that can be easily edited.
> > > And if a build fails due to a source issue, it can just be repeated
> > > after changing the source.
> > > No need to rebuild the image.
> > > Also no need to export the generated output as it is created on the host.
> > >
> > > > Also, I think this approach makes it easier for the next release manager
> > > > because it declares all the necessary dependencies and performs the
> > > builds
> > > > in the proper order.
> > >
> > > AFAICT there is no ordering issue with my version apart from linux32
> > > which needs an extra install.
> > >
> > > >  The last release was something of a challenge because
> > > > a lot of corporate knowledge had been lost when the original developers
> > > > left.
> > >
> > > Indeed.
> > >
> > > There is some documentation in the src/docker/README file, but it
> > > could be expanded.
> > >
> > > >  > > you
> > > > must have used a different checkout when you reported the failures.>
> > > >
> > > > I got sidetracked.  Apologies.  I need to do that and provide feedback.
> > > I
> > > > don't see why we can't have both, as long as we document them.
> > >
> > > I see no reason to have both.
> > >
> > > >  > > > be
> > > > updated.>
> > > >
> > > > As of this PR, it's in the POM but not in the dockerfile.
> > >
> > > Sorry, you are right.
> > > I thought I saw '32-bit build' but it was actually '32-bit Mac build'.
> > > Oops.
> > > We have already decided to drop that.
> > >
> > > > I see that you did a PR review.  I'll try to look at it tonight and
> > > > respond.
> > > >
> > > > Thanks.
> > > >
> > > > On Tue, Jun 21, 2022 at 4:23 PM sebb  wrote:
> > > >
> > > > > On Tue, 21 Jun 2022 at 20:00, Alex Remily 
> > > wrote:
> > > > > >
> > > > > > I went ahead and submitted a PR related to this discussion.  The
> > > > > dockerfile
> > > > > > does a full build, minus the Mac, and should simplify the release
> > > > > process.
> > > > >
> > > > > Not sure how it improves on the Docker build I derived from your
> > > > > previous submission.
> > > > >
> > > > > Did you try the sebb-docker branch again after my last reply?
> > > > > I think you must have used a different checkout when you reported the
> > > > > failures.
> > > > >
> > > > > > Developers can easily modify as needed for their own purposes.  I
> > > > > recommend
> > > > > > removing the 32-bit Mac build profile from the POM, but have not
> > > done so
> > > > > in
> > > > > > this PR.
> > > > >
> > > > > If it is removed from the POM then the Docker build will also need to
> > > > > be updated.
> > > > >
> > > > > Whilst it is unlikely that the 32 bit builds will be needed, at
> > > > > present they seem to work OK,
> > > > > so they might as well be kept.
> > > > >
> > > > > > Alex
> > > > > >
> > > > > > https://github.com/apache/commons-crypto/pull/166
> > > > > >
> > > > > > On Mon, Jun 20, 2022 at 10:24 AM sebb  wrote:
> > > > > >
> > > > > > > On Mon, 20 Jun 2022 at 14:35, Alex Remily 
> > > > > wrote:
> > > > > > > >
> > > > > > > > Sebb,
> > > > > > > >
> > > > > > > > I cloned your repo and ran the dockerfile.  Feedback:
> > > > > > > >
> > > > > > > > The Maven