git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Michael J Gruber <git@drmicha.warpmail.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jiang Xin <worldhello.net@gmail.com>,
	Git List <git@vger.kernel.org>,
	Ralf Thielow <ralf.thielow@googlemail.com>
Subject: Re: [ANNOUNCE] Git v2.8.0-rc2
Date: Tue, 22 Mar 2016 11:00:39 +0100	[thread overview]
Message-ID: <56F117C7.2030900@drmicha.warpmail.net> (raw)
In-Reply-To: <xmqqr3f3lhvw.fsf@gitster.mtv.corp.google.com>

Junio C Hamano venit, vidit, dixit 21.03.2016 21:01:
> Michael J Gruber <git@drmicha.warpmail.net> writes:
> 
>> I think this is a general question about how to track build
>> products.  The proper place may be in a tree that is referenced
>> from a note or so.
> 
>> Maybe I shouldn't consider git.pot a build product - I don't know,
>> as I honestly don't know why we treat it the way we do.
> 
> I think your LaTeX output analogy is interesting.  When working with
> other people editing a single document, each person may update the
> build product (.dvi or .pdf or whatever) in his branch and when you
> merge other people's work, this would create an unresolvable mess
> but that is perfectly fine, because you wouldn't even attempt to
> merge the build product.  Instead, you would merge the source
> material, run the formatter, and pretend as if its output is the
> result of the merging of .dvi or .pdf or whatever.

I have to confess that that is actually my main use of git outside of
git.git, and that my "solution" is tracking .pdf etc. and using a
pre-commit (and pre-merge) hook that prevents me from commiting a state
where "make -q" is not successful. Still not perfect, partly due to the
fact that make is timestamp based, not checksum based. ("Use scons", I
know...)

> But then we need to step back and consider the reason why we keep
> the build product in the first place.  Presumably that is to help
> those who want to consume the build product without having the
> toolchain to build from the source. 

That is certainly a good use case - see, e.g., our documentation. On the
other hand, "make pot" has very light toolchain requirements compared to
"make doc".

Another use case is a "poor man's release accountability" - a build
result depends on the actual toolchain version also, not just the
source, and tracking a build stores a copy of a build result that you
handed out in class, deployed somewhere, ...

> If that is the case, perhaps it
> is also a valid workflow for these collaborating authors of a single
> document not to update the build product, if they know that nobody
> cares about how the final output looks like on their individual
> fork, until their work is merged to some "mainline".

Wouldn't that reasoning imply that there's no point in tracking at all?
That is, in tracking in the main tree.

> The primary consumers of git.pot build product are the l10n teams,
> and I do not think that they want to (or it is practical to ask them
> to) work on translating new messages on individual topics code-side
> people work on.  So perhaps it is a valid workflow to leave git.pot
> behind until i18n coordinator declares "it is time to catch up" and
> regenerates it at some "snapshot" time in the development cycle.

Yes, I just think that "git.pot" in the main tree sends a wrong signal
because it is out of sync in the sense that it is not "make pot"-clean.
The main tree is the place for snapshots (especially not non-rolling
ones). Possible alternatives:

- Do not track git.pot at all.
It can be recreated easily, and (unless I'm horribly mistaken) only l10n
people need it ; everyone else needs the .po files, or rather .mo.

- Make po/ a submodule.
Submodules are exactly our way of stating "this depends on a tree with a
separate history and/or different release cycle; commit bar in the super
project is 'based' on commit foo in the submodule (but not the other way
round!)

- Do it like the extra prebuild doc-branches.

- Snapshot with tags (similar to github releases).

With current master at 047057b, the contained git.pot is actually not
(guaranteed to be) the one containing the translatable strings from that
tree. If you want to find out which one, you'd have to "git log -1
po/git.pot" and rely on the fact that Jiang's tree actually does keep
git.pot in-sync.

Somehow, submodules seem to best represent that one-way dependency. (I'm
not a submodule user at all.)

Michael

P.S.: git.pot is both a build product as well as a build/install
requirement, so my tex/pdf analogy does not apply fully.

  reply	other threads:[~2016-03-22 10:00 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-10 23:04 [ANNOUNCE] Git v2.8.0-rc2 Junio C Hamano
2016-03-12  9:11 ` Max Horn
2016-03-14 18:10   ` Junio C Hamano
2016-03-14 15:29 ` Michael J Gruber
2016-03-14 15:30   ` [PATCH] wt-status: allow "ahead " to be picked up by l10n Michael J Gruber
2016-03-14 15:57     ` Junio C Hamano
2016-03-14 15:56   ` [ANNOUNCE] Git v2.8.0-rc2 Junio C Hamano
2016-03-14 17:47     ` Junio C Hamano
2016-03-16 13:33       ` Michael J Gruber
2016-03-16 13:40         ` Duy Nguyen
2016-03-16 15:32           ` Michael J Gruber
2016-03-16 16:30             ` Junio C Hamano
2016-03-17 14:51               ` Michael J Gruber
2016-03-17 15:14                 ` [RFC/PATCH] Makefile: allow po generation through po target Michael J Gruber
2016-03-17 22:42                   ` Junio C Hamano
2016-03-17 16:15                 ` [ANNOUNCE] Git v2.8.0-rc2 Junio C Hamano
2016-03-20  9:45         ` Jiang Xin
2016-03-20 15:11           ` Michael J Gruber
2016-03-21 20:01             ` Junio C Hamano
2016-03-22 10:00               ` Michael J Gruber [this message]
2016-03-22 17:43                 ` Junio C Hamano
2016-03-15 16:42   ` Jiang Xin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56F117C7.2030900@drmicha.warpmail.net \
    --to=git@drmicha.warpmail.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=ralf.thielow@googlemail.com \
    --cc=worldhello.net@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).