Re: updating merge request

2023-01-20 Thread Aaron Hill

On 2023-01-19 11:01 pm, Werner LEMBERG wrote:

[SNIP]
Nope.  The preferred way is to make the MR's commit as pretty as
possible.  No final squashing.


That *almost* seems like squashing, but with more steps.  Certainly, 
there is nothing to squash if everything is expressed neatly in one 
commit.  At the end of the day, it makes for a nice clean history in the 
main line either way you approach.


The only critique might come down to where one is expected to apply 
their effort.  When possible, engineers should take advantage of 
automated systems so their time is spent primarily on the problem at 
hand.  That could mean using linters to reformat code, leveraging 
continuous integration to run test suites, or (in this case) letting 
repositories systematically squash (or rebase, or whatever) when 
accepting requests.  It saves contributors making ambiguous choices 
and/or doing what amounts to busy work.


I will need to remember to keep my branches tidy before I submit 
anything, since I cannot rely on squash as a crutch.



-- Aaron Hill



Re: Documentation viewer in Frescobaldi

2023-01-20 Thread Andrew Bernard

Where is the Frescobaldi mailing list? Do you mean Google Groups?

Andrew


On 20/01/2023 8:09 pm, Federico Bruni wrote:
The answer to the other questions is more complex. We are working on 
it... I will reply to your question in the Frescobaldi mailing list. 




Re: Documentation viewer in Frescobaldi

2023-01-20 Thread Federico Bruni

Yes, I mean the Google Group

Il giorno ven 20 gen 2023 alle 20:43:02 +1100, Andrew Bernard 
 ha scritto:

Where is the Frescobaldi mailing list? Do you mean Google Groups?

Andrew


On 20/01/2023 8:09 pm, Federico Bruni wrote:
The answer to the other questions is more complex. We are working on 
it... I will reply to your question in the Frescobaldi mailing list.






Re: updating merge request

2023-01-20 Thread Jean Abou Samra

Le 20/01/2023 à 10:36, Aaron Hill a écrit :

On 2023-01-19 11:01 pm, Werner LEMBERG wrote:

[SNIP]
Nope.  The preferred way is to make the MR's commit as pretty as
possible.  No final squashing.


That *almost* seems like squashing, but with more steps. Certainly, 
there is nothing to squash if everything is expressed neatly in one 
commit.  At the end of the day, it makes for a nice clean history in 
the main line either way you approach.


The only critique might come down to where one is expected to apply 
their effort.  When possible, engineers should take advantage of 
automated systems so their time is spent primarily on the problem at 
hand.  That could mean using linters to reformat code, leveraging 
continuous integration to run test suites, or (in this case) letting 
repositories systematically squash (or rebase, or whatever) when 
accepting requests.  It saves contributors making ambiguous choices 
and/or doing what amounts to busy work.


I will need to remember to keep my branches tidy before I submit 
anything, since I cannot rely on squash as a crutch.




In our case, Gitlab's feature to automatically squash all commits upon
merging doesn't fit the bill because we often do MRs with multiple
commits that we *do* want to end up as separate commits in master
(Lukas gave an exampe).

Rewriting history is just something that one might not be used to coming
from other projects, but perfectly fine for our purposes. In the end,
doing "git commit --amend --no-edit" isn't more work than
"git commit -m 'fix it'", especially with an alias. In case that helps
anyone, I have these in my ~/.gitconfig, to make editing the history
more convenient:


[alias]
  reword = commit --amend
  pushfl = push --force-with-lease
  sync = rebase master
  rework = !git rebase -i $(git merge-base HEAD master)
  continue = rebase --continue
  abort = rebase --abort
  fixup = commit --amend -a --no-edit
  select-fixup = commit --amend --no-edit



Jean



OpenPGP_signature
Description: OpenPGP digital signature


Re: updating merge request

2023-01-20 Thread Jean Abou Samra

Le 20/01/2023 à 08:05, Lukas-Fabian Moser a écrit :
(Personally, I use two local branches for developing a feature: one in 
which I keep track of my progress by adding commit after commit, and 
one which is the "squashed" version that I update with amend/squash 
and use for pushing. git's interactive rebase feature is my best 
friend here. But there might be better methods.)



That must be time-consuming. Out of interest, why do you feel the need 
to maintain this separate branch instead of just amending the one that 
is being submitted? Or do you only do it before submitting but don't 
keep it in sync afterwards?


Jean



OpenPGP_signature
Description: OpenPGP digital signature


Re: updating merge request

2023-01-20 Thread Aaron Hill

On 2023-01-20 3:22 am, Jean Abou Samra wrote:
Rewriting history is just something that one might not be used to 
coming

from other projects, but perfectly fine for our purposes.


It was impressed upon me to treat rewriting history as fraught with 
peril, potentially even Bad(tm) in the Ghostbusters sense:


"Try to imagine all life as you know it stopping instantaneously and
 every molecule in your body exploding at the speed of light." -- 
Egon Spengler


One might argue that anything in your development branch is not really 
part of "history" yet as it has not been accepted.  (The situation gets 
murkier when people are forking forks.)  As such, it *should* be safe to 
mess about with commits to clean up typos or catch missing files, what 
have you.  And I would agree this results in a cleaner submission that 
is easier to review for correctness.  (I probably should clarify my 
earlier comments that I do not intentionally make my commits messy, just 
that I usually do not stress about them being so absolutely pristine; 
again, I am used to work being squashed, so any niceness I put in there 
gets lost.)


So I can see --amend being useful for the little things.  But let's say 
during a review, it is determined that the scope could increase to cover 
more items than originally planned but that still feels part of the same 
submission.  (Anything too distinct really should be an independent 
request.)  Now, you might not necessarily want to force all of the new 
development work into the existing commit.  Reviewers might even 
appreciate seeing the individual slices of the task more cleanly 
delineated.  In a sense, there is some "history" to the process that 
might be worth preserving during this stage.



-- Aaron Hill



Re: updating merge request

2023-01-20 Thread Luca Fascione
At first I saw it like you Aaron,
but after thinking about this for the last several hours it occurred to me
that we're only rewriting the history of the current MR, we're not junking
a big part of the project.
The idea is that given that there's no squash upon acceptance, the history
in the MR will go in "as is".
I do see the value in this, and I'd think you'll want a judicious user of
git, with a developed taste for repo grooming to
use a mix of history rewrites and additions during the lifetime of an MR if
there's back and forth on it.

I do keep my commit history very clean while working, I'd put in maybe up
to 8-10 commits, and then pause and rebase -i onto that
until I'm happy that the story told by the commits to my colleagues is
sensible. At that point I push, because our stuff is not MR-based.
But for the projects based on MR's we always did "squash on merge", which
left me uneasy. I must say I do prefer that the contributor
does have a say in how to best represent their work as a series of commits,
so although it's scary and "different", I feel this idea of
force-pushing amends and such onto an MR is actually a nice idea.

Luca

On Fri, Jan 20, 2023 at 3:03 PM Aaron Hill  wrote:

> On 2023-01-20 3:22 am, Jean Abou Samra wrote:
> > Rewriting history is just something that one might not be used to
> > coming
> > from other projects, but perfectly fine for our purposes.
>
> It was impressed upon me to treat rewriting history as fraught with
> peril, potentially even Bad(tm) in the Ghostbusters sense:
>
>  "Try to imagine all life as you know it stopping instantaneously and
>   every molecule in your body exploding at the speed of light." --
> Egon Spengler
>
> One might argue that anything in your development branch is not really
> part of "history" yet as it has not been accepted.  (The situation gets
> murkier when people are forking forks.)  As such, it *should* be safe to
> mess about with commits to clean up typos or catch missing files, what
> have you.  And I would agree this results in a cleaner submission that
> is easier to review for correctness.  (I probably should clarify my
> earlier comments that I do not intentionally make my commits messy, just
> that I usually do not stress about them being so absolutely pristine;
> again, I am used to work being squashed, so any niceness I put in there
> gets lost.)
>
> So I can see --amend being useful for the little things.  But let's say
> during a review, it is determined that the scope could increase to cover
> more items than originally planned but that still feels part of the same
> submission.  (Anything too distinct really should be an independent
> request.)  Now, you might not necessarily want to force all of the new
> development work into the existing commit.  Reviewers might even
> appreciate seeing the individual slices of the task more cleanly
> delineated.  In a sense, there is some "history" to the process that
> might be worth preserving during this stage.
>
>
> -- Aaron Hill
>
>

-- 
Luca Fascione


Re: RFC: require librsvg to implement SVG image support

2023-01-20 Thread Jean Abou Samra
[In case people are wondering why I’m not replying: I want to actually see what 
it takes to cross-compile Poppler, this takes time, and I don’t have a lot of 
it ATM, hence the delay.]





Re: updating merge request

2023-01-20 Thread David Zelinsky
Lukas-Fabian Moser  writes:

> Am 20.01.23 um 07:38 schrieb Aaron Hill:
>
>> On 2023-01-19 8:54 pm, David Zelinsky wrote:
>>
>>> Am I misunderstanding something?  Or is what it says in 3.2 a mistake?
>>
>> If GitLab works similar to GitHub ...
>
> Accepted practice in lilypond development is different. We all rewrite
> history ... Gitlab itself has the feature of keeping track of the
> various versions of a merge requests and letting us browse them
> conveniently.

Ok, I understand this now.  It took me a while but I finally found where
this is explained:

  https://docs.gitlab.com/ee/user/project/merge_requests/versions.html

I wish this were documented more prominently, both in the GitLab docs
and in the Contributor's Guide, since it's a GitLab feature that is
quite different from (some might say contrary to) the usual git
behavior.  Granted it is mentioned in GC 3.2, but, without more
explanation, to someone experienced with git but not GitLab it just
sounds mysterious, or like a mistake.  Maybe the CG could include the
above link.


> Note that it's not strictly necessary that a merge request consists of
> one commit only: Logically independent "smallish" commits are fine
> (possible example: one commit for the feature, one for the larger
> documentation revision the feature necessitates). But always make sure
> that each single commit gives a "working" version of LilyPond in order
> to allow for bisecting later ...

I see the logic in this.  In my case, most of the the MR reviews were
pointing out typos or small stylistic corrections.  I can see that it
makes sense to fix those with an --amend.  But one of the reviews
(Jean's) suggested adding a few inline examples in the documentation I
had written.  Is that something that's worth including as a new commit?
Both versions are complete and valid; it's just a question of which is
better.  After everyone sees the examples I've added, the consensus
*might* be the original version was best.

Does that make sense?


> (Personally, I use two local branches for developing a feature: one in
> which I keep track of my progress by adding commit after commit, and
> one which is the "squashed" version that I update with amend/squash
> and use for pushing. git's interactive rebase feature is my best
> friend here. But there might be better methods.)

Yes, in any case I have no intention of overwriting my own local
history.  I like to commit frequently, so each commit reflects some
specific change, not a bunch of different things.  I will rebase -i on a
parellel branch and squash the things that don't warrant new commits in
the MR.

-David



Re: updating merge request

2023-01-20 Thread Jean Abou Samra

Le 20/01/2023 à 15:03, Aaron Hill a écrit :

On 2023-01-20 3:22 am, Jean Abou Samra wrote:

Rewriting history is just something that one might not be used to coming
from other projects, but perfectly fine for our purposes.


It was impressed upon me to treat rewriting history as fraught with 
peril, potentially even Bad(tm) in the Ghostbusters sense:


    "Try to imagine all life as you know it stopping instantaneously and
 every molecule in your body exploding at the speed of light." -- 
Egon Spengler


One might argue that anything in your development branch is not really 
part of "history" yet as it has not been accepted.  (The situation 
gets murkier when people are forking forks.)  As such, it *should* be 
safe to mess about with commits to clean up typos or catch missing 
files, what have you.  And I would agree this results in a cleaner 
submission that is easier to review for correctness.  (I probably 
should clarify my earlier comments that I do not intentionally make my 
commits messy, just that I usually do not stress about them being so 
absolutely pristine; again, I am used to work being squashed, so any 
niceness I put in there gets lost.)




Indeed, overwriting history is Very Bad™ for shared branches, but not really
a problem for development branches as long as a single developer edits
them.



So I can see --amend being useful for the little things.  But let's 
say during a review, it is determined that the scope could increase to 
cover more items than originally planned but that still feels part of 
the same submission.  (Anything too distinct really should be an 
independent request.)  Now, you might not necessarily want to force 
all of the new development work into the existing commit. Reviewers 
might even appreciate seeing the individual slices of the task more 
cleanly delineated.  In a sense, there is some "history" to the 
process that might be worth preserving during this stage.





Yes, exactly! And that is what our process is designed to facilitate :)

If there are two commits in the MR

Commit A: add XYZ
Commit B: take advantage of XYZ to better reimplement QRST

and you want to modify XYZ to address reviewers' suggestions, the more 
"usual"

workflow is adding a new commit on top, yielding

Commit A: add XYZ
Commit B: take advantage of XYZ to better reimplement QRST
Commit C: fix typo in XYZ

whereas in our process, you "rebase -i" to get

Commit A: add XYZ   [amended version with a different commit ID]
Commit B: take advantage of XYZ to better reimplement QRST  [also a new 
commit ID]


and

* the next reviewer who looks at the MR sees only the logical structure,
  not cluttered by the fixes,

* everything can be cleanly integrated into master as-is, without squashing
  A and B (which you would need if you wanted C not to be separate from
  A, due to the ordering).


IOW: it may seem counterintuitive, but our workflow that involves editing
commits in-place instead of adding more commits is precisely aimed at
allowing more structure between the commits, by making the history
of the branch reflect what you eventually want to end up in the repo,
a *logical* structure, rather than the temporal structure driven by
"I just happened to fix this before that".

Not that I am an out-and-out fan of this workflow, but its tradeoffs
have served us well so far, I would say.

While this may not be the most usual workflow with GitHub/GitLab,
it's not unheard of at all. E.g., the more traditional email-based
workflow (in Git itself, the Linux kernel, many GNU projects, etc.)
has the same logical separation of commits where you amend patches
even after making more patches on top of them.

https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html#separate-your-changes



OpenPGP_signature
Description: OpenPGP digital signature


Re: updating merge request

2023-01-20 Thread Jean Abou Samra

Le 20/01/2023 à 23:45, David Zelinsky a écrit :

Note that it's not strictly necessary that a merge request consists of
one commit only: Logically independent "smallish" commits are fine
(possible example: one commit for the feature, one for the larger
documentation revision the feature necessitates). But always make sure
that each single commit gives a "working" version of LilyPond in order
to allow for bisecting later ...

I see the logic in this.  In my case, most of the the MR reviews were
pointing out typos or small stylistic corrections.  I can see that it
makes sense to fix those with an --amend.  But one of the reviews
(Jean's) suggested adding a few inline examples in the documentation I
had written.  Is that something that's worth including as a new commit?
Both versions are complete and valid; it's just a question of which is
better.  After everyone sees the examples I've added, the consensus
*might* be the original version was best.

Does that make sense?




Not worth a separate commit IMHO. (Objections against adding examples
seem unlikely.)




(Personally, I use two local branches for developing a feature: one in
which I keep track of my progress by adding commit after commit, and
one which is the "squashed" version that I update with amend/squash
and use for pushing. git's interactive rebase feature is my best
friend here. But there might be better methods.)

Yes, in any case I have no intention of overwriting my own local
history.  I like to commit frequently, so each commit reflects some
specific change, not a bunch of different things.  I will rebase -i on a
parellel branch and squash the things that don't warrant new commits in
the MR.




As you wish, however this sounds like it will involve lots of busywork.

In general, if splitting into multiple commits helps understanding,
it should be in the branch submitted for review anyway. If it doesn't,
it's not clear to me why you want the chronology for yourself, but
it's your choice of course.



OpenPGP_signature
Description: OpenPGP digital signature


PATCHES - Countdown to January 23

2023-01-20 Thread Colin Campbell

Here is the current countdown report.

The next countdown will begin on January 23rd.

A list of all merge requests can be found here:
https://gitlab.com/lilypond/lilypond/-/merge_requests?sort=label_priority


 Push:

!1813 Fix issue 6521 - Thomas Morley
https://gitlab.com/lilypond/lilypond/-/merge_requests/1813

!1787 Add PNG image support - Jean Abou Samra
https://gitlab.com/lilypond/lilypond/-/merge_requests/1787


 Countdown:

!1815 Update files for web server - Federico Bruni
https://gitlab.com/lilypond/lilypond/-/merge_requests/1815


 Review:

!1817 LSR was updated to version 2.24 [2023-Jan-20] - Werner Lemberg
https://gitlab.com/lilypond/lilypond/-/merge_requests/1817

!1816 expand documentation of defineBarLine - David Zelinsky
https://gitlab.com/lilypond/lilypond/-/merge_requests/1816


 New:

No patches in New at this time.


 Waiting:

!1810 Let \rhythm markup derive from current layout - David Kastrup
https://gitlab.com/lilypond/lilypond/-/merge_requests/1810


Cheers,

Colin




New Chinese (simplified) PO file for 'lilypond' (version 2.23.80)

2023-01-20 Thread Translation Project Robot
Hello, gentle maintainer.

This is a message from the Translation Project robot.

A revised PO file for textual domain 'lilypond' has been submitted
by the Chinese (simplified) team of translators.  The file is available at:

https://translationproject.org/latest/lilypond/zh_CN.po

(We can arrange things so that in the future such files are automatically
e-mailed to you when they arrive.  Ask at the address below if you want this.)

All other PO files for your package are available in:

https://translationproject.org/latest/lilypond/

Please consider including all of these in your next release, whether
official or a pretest.

Whenever you have a new distribution with a new version number ready,
containing a newer POT file, please send the URL of that distribution
tarball to the address below.  The tarball may be just a pretest or a
snapshot, it does not even have to compile.  It is just used by the
translators when they need some extra translation context.

The following HTML page has been updated:

https://translationproject.org/domain/lilypond.html

If any question arises, please contact the translation coordinator.

Thank you for all your work,

The Translation Project robot, in the
name of your translation coordinator.