Re: Plan for the current testing situation

2015-11-12 Thread Georg Baum
Guenter Milde wrote:

> What is the policy regarding change-tracking for Development.lyx?

Not needed: It is not translated. If we want to know latzer who edited a 
certain part then we can use git.


Georg



Re: Plan for the current testing situation

2015-11-12 Thread Guenter Milde
On 2015-11-11, Scott Kostyshak wrote:
> On Tue, Nov 10, 2015 at 03:30:24PM +, Guenter Milde wrote:
>> On 2015-11-10, Scott Kostyshak wrote:
>> > On Mon, Nov 09, 2015 at 11:19:16AM +0100, Vincent van Ravesteijn wrote:
>> >> And yes of course there is an implicit rule that when your commit breaks
>> >> something or has problems whatsoever you are expected to fix it within a
>> >> reasonable timeframe.

>> This is, what I prefer. Could we make this an explicit rule:

>>When your commit breaks something or has problems whatsoever you are
>>expected to fix it within a reasonable timeframe.

>>If it is not possible to solve the problems, revert the commit or move it
>>to a "feature branch" (remember, branching is dead easy with Git).

>>"Reasonable" depends on the problems involved and may range from 1 day to
>>some weeks.

> This seems to be the most popular opinion. Günter, if you do not here
> any more comments, please feel free to put this in Development.lyx.

What is the policy regarding change-tracking for Development.lyx?

Günter



Re: Plan for the current testing situation

2015-11-10 Thread Scott Kostyshak
On Tue, Nov 10, 2015 at 03:30:24PM +, Guenter Milde wrote:
> On 2015-11-10, Scott Kostyshak wrote:
> > On Mon, Nov 09, 2015 at 11:19:16AM +0100, Vincent van Ravesteijn wrote:
> >> And yes of course there is an implicit rule that when your commit breaks
> >> something or has problems whatsoever you are expected to fix it within a
> >> reasonable timeframe.
> 
> This is, what I prefer. Could we make this an explicit rule:
> 
>When your commit breaks something or has problems whatsoever you are
>expected to fix it within a reasonable timeframe.
>
>If it is not possible to solve the problems, revert the commit or move it
>to a "feature branch" (remember, branching is dead easy with Git).
> 
>"Reasonable" depends on the problems involved and may range from 1 day to
>some weeks.

This seems to be the most popular opinion. Günter, if you do not here
any more comments, please feel free to put this in Development.lyx.

> One problem with the current testing situation is, that many failing test
> are due to fixes that correct behaviour that was wrong before (like
> reporting missing characters in the output document as an error).
> 
> Next, this led to discovery of the use of a wrong encoding with Xe/LuaTeX
> and TeX fonts - solving this brought more problems to light.
> 
> I believe such "indirect" problems must be solved "collectively" - after a
> consensus whether to revert the "discovering" commit (and live with the old
> hidden bugs), temporarily invert affected tests or do some hacks to get a
> clean state, or have a concerted effort to solve the basic problems.

Agreed. But I don't think this is a common situation.

Scott


Re: Plan for the current testing situation

2015-11-10 Thread Guenter Milde
On 2015-11-10, Scott Kostyshak wrote:
> On Mon, Nov 09, 2015 at 11:19:16AM +0100, Vincent van Ravesteijn wrote:

>> >> So my preferred policy would be:
>> if a
>> >> commit is found to have broken a test, either the situation is resolved
>> within
>> >> a day (i.e. the bug is fixed or the test is fixed) or the commit is
>> reverted 
>> >> (and perhaps pushed to a separate remote branch).
>> >
>> > A small remark: imposing a 1-day rule seems ad hoc to me. Do we even have
>> such rules for compilation warnings? For compilation failures? For the
>> latter, I imagine that people want it solved ASAP, but this arises more out
>> of social pressure, not an ad hoc rule.

> Social pressure does not work with everyone. Also, some people do not
> understand why certain things are so frustrating to others.

...

>> Yes, the 1-day rule might lead to frustrated developers and increases the
>> noise in master branch even more.

> OK. How about a 1 week rule then? Or you would prefer no rule and just
> deal with it case-by-case and implicit rule as you mention below and as
> Guillaume refers to?

>> And yes of course there is an implicit rule that when your commit breaks
>> something or has problems whatsoever you are expected to fix it within a
>> reasonable timeframe.

This is, what I prefer. Could we make this an explicit rule:

   When your commit breaks something or has problems whatsoever you are
   expected to fix it within a reasonable timeframe.
   
   If it is not possible to solve the problems, revert the commit or move it
   to a "feature branch" (remember, branching is dead easy with Git).

   "Reasonable" depends on the problems involved and may range from 1 day to
   some weeks.


One problem with the current testing situation is, that many failing test
are due to fixes that correct behaviour that was wrong before (like
reporting missing characters in the output document as an error).

Next, this led to discovery of the use of a wrong encoding with Xe/LuaTeX
and TeX fonts - solving this brought more problems to light.

I believe such "indirect" problems must be solved "collectively" - after a
consensus whether to revert the "discovering" commit (and live with the old
hidden bugs), temporarily invert affected tests or do some hacks to get a
clean state, or have a concerted effort to solve the basic problems.

Günter



Re: Plan for the current testing situation

2015-11-09 Thread Scott Kostyshak
Note: quoting is not correct (probably because of replying on phone).

On Mon, Nov 09, 2015 at 11:19:16AM +0100, Vincent van Ravesteijn wrote:
> >> Ideally, I would like for commits that break tests to be on a separate
> git
> >> branch. Once the bugs exposed by a commit are fixed or the tests are
> fixed, or
> >> the .lyx files are fixed, then the branch could be merged to master. This
> >> allows us to presere a "0 failing tests" situation on the master branch
> so it
> >> is extremely easy to catch regressions. So my preferred policy would be:
> if a
> >> commit is found to have broken a test, either the situation is resolved
> within
> >> a day (i.e. the bug is fixed or the test is fixed) or the commit is
> reverted
> >> (and perhaps pushed to a separate remote branch).
> >
> >
> > A small remark: imposing a 1-day rule seems ad hoc to me. Do we even have
> such rules for compilation warnings? For compilation failures? For the
> latter, I imagine that people want it solved ASAP, but this arises more out
> of social pressure, not an ad hoc rule.

Social pressure does not work with everyone. Also, some people do not
understand why certain things are so frustrating to others.

> However I like the idea of having a
> "candidate" remote branch, which would open up possibilities. If that's
> really needed.
> >
> 
> Yes, the 1-day rule might lead to frustrated developers and increases the
> noise in master branch even more.

OK. How about a 1 week rule then? Or you would prefer no rule and just
deal with it case-by-case and implicit rule as you mention below and as
Guillaume refers to?

> And yes of course there is an implicit rule that when your commit breaks
> something or has problems whatsoever you are expected to fix it within a
> reasonable timeframe.
> 
> I already proposed to have a "staging" branch where commits are pushed to
> first. If there are no breaking tests and no other comments they would be
> merged to master after n days. The problems with such a  construction are:
> - devs are not eager to have to learn/understand/use an even more complex
> git-o-cratic workflow,

Yes this is indeed a real issue. Maybe in the future once everyone is
more comfortable with git we can consider this.

> - there will be merge conflicts, people have to make sure to indicate which
> commit depends on which (or use feature branches which takes us back to the
> first point),
> - you unavoidably need some sort of maintainer to decide what gets merged
> when and who resolves merge conflicts and is reasonably always present (or
> to try to use some autocomplex scripting).

Seems like we cannot do this at this point then.

Scott


Re: Plan for the current testing situation

2015-11-09 Thread Scott Kostyshak
On Mon, Nov 09, 2015 at 09:13:37AM +, Guillaume Munch wrote:
> Le 02/11/2015 03:41, Scott Kostyshak a écrit :
> >Thanks to all of those participating in the discussions about tests. I have
> >learned a lot the last couple of weeks. Thank you also to those who have 
> >tried
> >to run the tests. This to me is a great step forward. I know that the export
> >tests are sloppy cheap tests, but I appreciate that some of you agree that 
> >they
> >do have use, at least until we have unit testing. The question now is, how 
> >can
> >we get the most use out of them and how can we maximize their signal to noise
> >ratio?
> 
> Thank you for taking time to make a summary message. The messages about
> tests were too many, so I could not follow the discussions. If you could
> write another summary once the situation with tests is resolved it would be
> very useful.

Yes, I will try to remember to do this. Hopefully we can put everything
in Development.lyx. It might take a bit for the test situation to
stabilize though. Please feel free to ask for an update of the
situation if I forget to give one.


Re: Plan for the current testing situation

2015-11-09 Thread Vincent van Ravesteijn
>> Ideally, I would like for commits that break tests to be on a separate
git
>> branch. Once the bugs exposed by a commit are fixed or the tests are
fixed, or
>> the .lyx files are fixed, then the branch could be merged to master. This
>> allows us to presere a "0 failing tests" situation on the master branch
so it
>> is extremely easy to catch regressions. So my preferred policy would be:
if a
>> commit is found to have broken a test, either the situation is resolved
within
>> a day (i.e. the bug is fixed or the test is fixed) or the commit is
reverted
>> (and perhaps pushed to a separate remote branch).
>
>
> A small remark: imposing a 1-day rule seems ad hoc to me. Do we even have
such rules for compilation warnings? For compilation failures? For the
latter, I imagine that people want it solved ASAP, but this arises more out
of social pressure, not an ad hoc rule. However I like the idea of having a
"candidate" remote branch, which would open up possibilities. If that's
really needed.
>

Yes, the 1-day rule might lead to frustrated developers and increases the
noise in master branch even more.

And yes of course there is an implicit rule that when your commit breaks
something or has problems whatsoever you are expected to fix it within a
reasonable timeframe.

I already proposed to have a "staging" branch where commits are pushed to
first. If there are no breaking tests and no other comments they would be
merged to master after n days. The problems with such a  construction are:
- devs are not eager to have to learn/understand/use an even more complex
git-o-cratic workflow,
- there will be merge conflicts, people have to make sure to indicate which
commit depends on which (or use feature branches which takes us back to the
first point),
- you unavoidably need some sort of maintainer to decide what gets merged
when and who resolves merge conflicts and is reasonably always present (or
to try to use some autocomplex scripting).

Vincent


Re: Plan for the current testing situation

2015-11-09 Thread Guillaume Munch

Le 02/11/2015 03:41, Scott Kostyshak a écrit :

Thanks to all of those participating in the discussions about tests. I have
learned a lot the last couple of weeks. Thank you also to those who have tried
to run the tests. This to me is a great step forward. I know that the export
tests are sloppy cheap tests, but I appreciate that some of you agree that they
do have use, at least until we have unit testing. The question now is, how can
we get the most use out of them and how can we maximize their signal to noise
ratio?


Thank you for taking time to make a summary message. The messages about 
tests were too many, so I could not follow the discussions. If you could 
write another summary once the situation with tests is resolved it would 
be very useful.




Ideally, I would like for commits that break tests to be on a separate git
branch. Once the bugs exposed by a commit are fixed or the tests are fixed, or
the .lyx files are fixed, then the branch could be merged to master. This
allows us to presere a "0 failing tests" situation on the master branch so it
is extremely easy to catch regressions. So my preferred policy would be: if a
commit is found to have broken a test, either the situation is resolved within
a day (i.e. the bug is fixed or the test is fixed) or the commit is reverted
(and perhaps pushed to a separate remote branch).


A small remark: imposing a 1-day rule seems ad hoc to me. Do we even 
have such rules for compilation warnings? For compilation failures? For 
the latter, I imagine that people want it solved ASAP, but this arises 
more out of social pressure, not an ad hoc rule. However I like the idea 
of having a "candidate" remote branch, which would open up 
possibilities. If that's really needed.



Guillaume




Re: Plan for the current testing situation

2015-11-04 Thread Georg Baum
Guenter Milde wrote:

> On 2015-11-02, Georg Baum wrote:
> 
>> 1) Fix the first half of bug #9744. This is an easy and safe change
> 
> Actually, "allowing parallel configuration of TeX and non-TeX fonts" is a
> precondition for the proposed config value "automatic" for "use non-TeX
> fonts":
> 
> * Currently, the LyX file stores font configuration only for one font set,
>   either TeX-fonts or non-TeX-fonts, however
>   
> * documents with non-default fonts usually require configuration for both
> sets
>   to get a consistent look (e.g. choose Times/Helvetica/Courier lookalikes
>   or "Linux Libertine" fonts - be it 8-bit or Unicode encoded fonts).

Thanks, now I finally understand what was meant by "parallel configuration". 
I always thought that it meant the LaTeX side, so that it should somehow be 
possible to use both (which I did not understand how that could work).

Such a change would be easy as well.

>> Günter, maybe you want to have a try yourself (if Scott agrees to do
>> this before 2.2.0)?
> 
> I am willing to help but cannot do this.

I'll try to find some time.


Georg



Re: Plan for the current testing situation

2015-11-04 Thread Guenter Milde
On 2015-11-02, Georg Baum wrote:
> Scott Kostyshak wrote:

>> So in summary, regarding the XeTeX + TeX fonts, I propose the above policy
>> to start with; and if we find that there really is such a low signal to
>> noise ratio then we can change our minds and ignore them. But we will
>> never know what the signal to noise ratio is if we just ignore them now.

> This does all make sense (including the snipped part). Nevertheless I'd like 
> to propose that we put some intermediate steps in:

> 1) Fix the first half of bug #9744. This is an easy and safe change 

Actually, "allowing parallel configuration of TeX and non-TeX fonts" is a
precondition for the proposed config value "automatic" for "use non-TeX
fonts":

* Currently, the LyX file stores font configuration only for one font set,
  either TeX-fonts or non-TeX-fonts, however
  
* documents with non-default fonts usually require configuration for both sets
  to get a consistent look (e.g. choose Times/Helvetica/Courier lookalikes
  or "Linux Libertine" fonts - be it 8-bit or Unicode encoded fonts).
  
* Documents using non-Latin scripts or "exotic" accented characters may even
  fail to compile with the default fonts (either TeX or non-TeX) due to our
  new "missing character" error.
  (E.g. the "Latin Modern" default for non-TeX fonts has no small Greek
  letters nor Cyrillic ones.)
  
> which has the additional benefit to make most of Günters concerns about
> the "View XeTeX" toolbar button much less important. 

Just using non-TeX fonts will lead to failures with, e.g., all Russian,
Bulgarian, Serbian, Greek and Hebrew manuals!

> Also, if we do not do it before 2.2.0, we cannot do it for 2.2.x (file
> format change). 

This also regards both parts of the proposed change.

> Günter, maybe you want to have a try yourself (if Scott agrees to do
> this before 2.2.0)?

I am willing to help but cannot do this.

> 2) Set the new "automatic" value for "use non-TeX fonts" for all documents 
> that should work with XeTeX in principle

> 3) Re-evaluate the test status and decide then whether some tests do still 
> need to be suspended or inverted.

> My guess would be that after these three steps, the tests would be much more 
> usable, and that the tests that do then still fail would point to real 
> problems which should not be ignored.

As said above, many documents that shall work with XeTeX "in principle"
require font customization with non-TeX fonts.

Maybe we need a "default non-TeX fonts mechanism" for non-Latin scripts.

Günter



Re: Plan for the current testing situation

2015-11-03 Thread Scott Kostyshak
On Mon, Nov 02, 2015 at 09:26:07PM +0100, Kornel Benko wrote:
> > It seems to me that the underlying causes of the XeTeX + TeX fonts tests 
> > will
> > not be fixed anytime soon (and that this is OK) so we have two options if we
> > want to clean up the test output. We can either invert the current test
> > failures or ignore all XeTeX TeX font tests. Ignoring the tests means that 
> > they
> > will not be run. Whether we invert or ignore basically depends on how low we
> > think the signal to noise ratio is. I am open to both possibilities, 
> > depending
> > on what others prefer. I do have a preference for inverting the current 
> > tests
> > (and not ignoring).
> 
> I offered a solution already. Test are going to 'revertedTests'.
> Through the file 'suspendedTests' we can select which of them should be 
> suspended.
> 
> That way we have
>   ctest -L export # to run all but suspended tests
>   ctest -L suspended # runs only suspended (which are also inverted)

OK seems reasonable.

Scott


Re: Plan for the current testing situation

2015-11-03 Thread Scott Kostyshak
On Mon, Nov 02, 2015 at 09:21:23PM +0100, Georg Baum wrote:
> Scott Kostyshak wrote:
> 
> > So in summary, regarding the XeTeX + TeX fonts, I propose the above policy
> > to start with; and if we find that there really is such a low signal to
> > noise ratio then we can change our minds and ignore them. But we will
> > never know what the signal to noise ratio is if we just ignore them now.
> 
> This does all make sense (including the snipped part). Nevertheless I'd like 
> to propose that we put some intermediate steps in:
> 
> 1) Fix the first half of bug #9744. This is an easy and safe change which 
> has the additional benefit to make most of Günters concerns about the "View 
> XeTeX" toolbar button much less important. Also, if we do not do it before 
> 2.2.0, we cannot do it for 2.2.x (file format change). Günter, maybe you 
> want to have a try yourself (if Scott agrees to do this before 2.2.0)?

I see. Seems like it would have a good benefit. Would indeed be nice to
have in 2.2.0 beta.

> 2) Set the new "automatic" value for "use non-TeX fonts" for all documents 
> that should work with XeTeX in principle
> 
> 3) Re-evaluate the test status and decide then whether some tests do still 
> need to be suspended or inverted.
> 
> My guess would be that after these three steps, the tests would be much more 
> usable, and that the tests that do then still fail would point to real 
> problems which should not be ignored.

OK so we will hold of from inverting tests, it seems you are suggesting.
I'm fine with that.

Scott


Re: Plan for the current testing situation

2015-11-02 Thread Kornel Benko
Am Sonntag, 1. November 2015 um 22:41:39, schrieb Scott Kostyshak 

> Thanks to all of those participating in the discussions about tests. I have
> learned a lot the last couple of weeks. Thank you also to those who have tried
> to run the tests. This to me is a great step forward. I know that the export
> tests are sloppy cheap tests, but I appreciate that some of you agree that 
> they
> do have use, at least until we have unit testing. The question now is, how can
> we get the most use out of them and how can we maximize their signal to noise
> ratio?
> 
> Ideally, I would like for commits that break tests to be on a separate git
> branch. Once the bugs exposed by a commit are fixed or the tests are fixed, or
> the .lyx files are fixed, then the branch could be merged to master. This
> allows us to presere a "0 failing tests" situation on the master branch so it
> is extremely easy to catch regressions. So my preferred policy would be: if a
> commit is found to have broken a test, either the situation is resolved within
> a day (i.e. the bug is fixed or the test is fixed) or the commit is reverted
> (and perhaps pushed to a separate remote branch). The only way I think there
> will be support for this policy is if the tests are not fragile. If tests
> commonly break even though a commit does not introduce a real bug, then this
> policy would just create a lot of pain without much use. I think that
> non-fragile export tests are a real possibility, but some changes might be
> needed to achieve this.

+1
But as you said, 'ideally'.

> Back from my dream world, the problem with the current situtation is that so
> many tests are failing (200 or so) that it makes it difficult to see if there
> are new regressions. Especially as we move forward in the release process,
> catching new regressions is extremely important. I thus propose some temporary
> measures to get a clean test output. I think that the tests that are failing
> because of known bugs should be inverted. For example, the tests that are
> failing because of the change from babel to polyglossia could be inverted and
> marked with the reason why they are inverted, and referred to in a bug report.
> Georg (who did not introduce the regressions but is kindly working on them) is
> aware of the failing tests, and is also working on better tests that are
> specific to testing language nesting, so in some sense the tests have already
> done their job and we should move on for now.

+1

> A source of fragile tests is the XeTeX tests with TeX fonts. Günter has 
> pointed
> out that exporting using XeTeX and TeX fonts could go from succeeding to
> failing because of an added package, addition of one non-ASCII character, 
> babel
> language files, font problems, and other issues. Further, we should not expect
> that many users are using XeTeX with TeX fonts because it is not common (there
> is a separate discussion we are having on discouraging such a combination).
> Thus, a good question is should we even have tests for this combination?

IMHO yes. Even if they may be 'suspended'. At least even XeTeX may evolve and 
the tests
are ready to wake up.

> It seems to me that the underlying causes of the XeTeX + TeX fonts tests will
> not be fixed anytime soon (and that this is OK) so we have two options if we
> want to clean up the test output. We can either invert the current test
> failures or ignore all XeTeX TeX font tests. Ignoring the tests means that 
> they
> will not be run. Whether we invert or ignore basically depends on how low we
> think the signal to noise ratio is. I am open to both possibilities, depending
> on what others prefer. I do have a preference for inverting the current tests
> (and not ignoring).

I offered a solution already. Test are going to 'revertedTests'.
Through the file 'suspendedTests' we can select which of them should be 
suspended.

That way we have
ctest -L export # to run all but suspended tests
ctest -L suspended # runs only suspended (which are also inverted)

> I'm not convinced that the signal to noise ratio is *so*
> low. If there is a significant chance that these tests will catch bugs that 
> our
> other tests should not, they should be kept. I thus propose to invert the
> current failures (and specify the reason each is failing) and then to treat
> future XeTeX TeX font failures as failures of fragile tests. In some sense,
> fragile tests can be OK if we know they are fragile and treat them as such. We
> could amend our policy to be such that if XeTeX + TeX font tests fail, the
> author of the commit that broke them can simply invert them without having the
> responsibility of fixing them. The advantage of still keeping them (and not
> "ignoring" them) is that the author of the commit might realize "my commit
> should not have broken these tests" and thus find a bug in the commit. For
> example, many commits do not even intend to change LaTeX. You might think that
> other tests would catch most bugs

Re: Plan for the current testing situation

2015-11-02 Thread Georg Baum
Scott Kostyshak wrote:

> So in summary, regarding the XeTeX + TeX fonts, I propose the above policy
> to start with; and if we find that there really is such a low signal to
> noise ratio then we can change our minds and ignore them. But we will
> never know what the signal to noise ratio is if we just ignore them now.

This does all make sense (including the snipped part). Nevertheless I'd like 
to propose that we put some intermediate steps in:

1) Fix the first half of bug #9744. This is an easy and safe change which 
has the additional benefit to make most of Günters concerns about the "View 
XeTeX" toolbar button much less important. Also, if we do not do it before 
2.2.0, we cannot do it for 2.2.x (file format change). Günter, maybe you 
want to have a try yourself (if Scott agrees to do this before 2.2.0)?

2) Set the new "automatic" value for "use non-TeX fonts" for all documents 
that should work with XeTeX in principle

3) Re-evaluate the test status and decide then whether some tests do still 
need to be suspended or inverted.

My guess would be that after these three steps, the tests would be much more 
usable, and that the tests that do then still fail would point to real 
problems which should not be ignored.


Georg