Dear Elliotte, Dear Mukul,

On Sun, 12 Jan 2025 at 13:27, Elliotte Rusty Harold <[email protected]>
wrote:

> On Sun, Jan 12, 2025 at 7:58 AM Mukul Gandhi <[email protected]>
> wrote:
> >
> >
> > This is true, while having GitHub as repos source. But for the next
> Xerces-J release I've a feeling that we can make a release without
> implementing this. A question definitely comes that, whether we should
> delay the next release for probably long time to implement and test this
> feature, or having a next release fairly quickly without having automated
> regression tests.
>
> The latter. In general I like to push out small changes before
> commencing work on big projects. It's like letting the person with one
> gallon of milk go in front of your stuffed shopping cart in the
> supermarket checkout line.
>
> Also, while working on github, make sure it's still possible to
> release from the old system if required for emergency security fixes.
>
>
>
Striving for automation as quickly as possible usually saves you time and
will give you more confidence in deliverables avoiding manual errors, and
making processes reproducible.
However, it would be sufficient if it is possible to reproduce as an
external developer that all tests run without errors and that the sources
for all dependencies are available.
Correct me if I am wrong, but that is a basic criterion of projects of the
Apache Foundation, right?

In addition, when I talked about adding the tests, I did not mean to add
the XSD Test Suite, which I suggest referencing or implementing as a GitHub
subrepository.
I was referring to the xml-schema-1-1-tests branch, which should be merged
with the xml-schema-1-1-dev branch.
Perhaps I oversee the reason for the tests and sources in different
branches, but I find it hard to use the tests of one branch to test the
sources of another.

If you fix an issue on a branch, what are the dependencies? How many
branches do you have to touch?
Are you able to reapply the fix by a simple "git rebase", like a feature
branch - like an XSD 1.1 branch over an XSD 1.0 branch (aka trunk)?
I suggest taking a look at the Xerces repository using GitKraken (or some
similar branch viewing tool) to see the dependencies.

Another challenge in transparency is the versioning of the dependencies
listed as JARs in <xerces-j>/tools
If I am not mistaken, the sources of PsychoPath XPath are nonexistent and
are being flagged as problematic in terms of security.

Apache Maven has over Apache Ant the advantage of having transparency over
the used versions - the versions are being downloaded as binary and source
and can be debugged and fixed.
With Maven it is easy to switch versions for testing and make this switch
transparent and trustworthy!
Most of all, any developer can download the sources from GitHub and build &
debug Xerces out-of-the-box, which is not so easy these days...
When I aimed to switch from ANT to Maven and experimented with different
JDK versions PychoPath turned out to be the biggest problem.
Therefore, I invite you to stand on my shoulders and take a look at the
branches of
https://github.com/svanteschubert/xerces-j/branches
with a tool such as GitKraken to understand the branches.
I have written some months ago several emails to Xerces' user & dev list
explaining the problems I have accounted for, guess there is no need to
duplicate these emails.

To sum it up: The issues I am mentioning might annoy you, as they have
existed for a long time and no committer likes to touch them, but I think
we all want the same thing in the end:

   1. *Stability* - as not a single test is failing before a new release
   2. *Transparency* - as all tests can be run (by any developer easily)
   and all sources of dependencies do exist!

Thank you in advance,
Svante

Reply via email to