git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: Derrick Stolee <derrickstolee@github.com>,
	Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>,
	git@vger.kernel.org
Subject: Re: [PATCH 0/2] Integrate Scalar into the CI builds
Date: Fri, 03 Jun 2022 12:36:42 +0200	[thread overview]
Message-ID: <220603.86bkvaxbvc.gmgdl@evledraar.gmail.com> (raw)
In-Reply-To: <nycvar.QRO.7.76.6.2206031147220.349@tvgsbejvaqbjf.bet>


On Fri, Jun 03 2022, Johannes Schindelin wrote:

> Hi Stolee,
>
> On Thu, 2 Jun 2022, Derrick Stolee wrote:
>
>> On 6/2/2022 10:13 AM, Ævar Arnfjörð Bjarmason wrote:
>> >
>> > On Thu, Jun 02 2022, Derrick Stolee wrote:
>> >
>> >> On 6/2/2022 5:05 AM, Johannes Schindelin via GitGitGadget wrote:
>> >>> Note that the changes to the GitHub workflow are somewhat transient in
>> >>> nature: Based on the feedback I received on the Git mailing list, I see some
>> >>> appetite for turning Scalar into a full-fledged top-level command in Git,
>> >>> similar to gitk. Therefore my current plan is to do exactly that in the end
>> >>> (and I already have patches lined up to that end). This will essentially
>> >>> revert the ci/run-build-and-tests.sh change in this patch series.
>> >>
>> >> I expect that this won't be a full remote, since we will still want to
>> >> exclude Scalar from the build without INCLUDE_SCALAR enabled.
>
> We had this `INCLUDE_SCALAR` condition in microsoft/git for a while but
> since I got the sense that many regulars were in favor of treating
> `scalar` like a top-level command (similar to `gitk`), I've since changed
> the over-all course to compiling it unconditionally.
>
> The only remnant is the CMake definition, and only in the transitory phase
> while Scalar is still in `contrib/scalar/`, and only because I could not
> find a better way to encapsulate it.
>
> But yes, if we decide to go with the `INCLUDE_SCALAR` approach, it won't
> be a full remove/revert.
>
>> > Scalar (well, scalar.o, not scalar the binary) has been included in the
>> > default build (including CI) for a while now.
>>
>> I'm talking about scalar the binary being important. I'm glad that
>> scalar.o has been built already.
>
> These are the raw logs of the `linux-gcc` job of the most recent CI build
> of `seen`, as of time of writing:
>
> https://github.com/git/git/commit/7f1978ce8bfe41074df4fc96ff7f2a28e5807fd1/checks/6718714644/logs
>
> When I download those logs and then let my browser search for the term
> "scalar", it comes up empty, even if, say, "range-diff.o" is found. Which
> is exactly according to my plan: no part of Scalar is to be built unless
> explicitly asked for.
>
> The only job that touches it is the `static-analysis` job, which is a bit
> unfortunate. But I cannot justify the complexity of the patch it would
> take to address that.
>
> In other words: The statement that `scalar.o` is included in the default
> build, without any qualifying note about `static-analysis`, is quite
> misleading.

As the person making that claim: Yes that is really misleading, sorry.

I was under the false recollection that since we added it to $(OBJECTS)
we built it by default, as in "make" was building it.

It *is* of course built my "make objects" etc., but due to how our
dependency tree works not to create "git", or even "libgit.a" (the
dependency relationship there being the other way around).

But an you point out (and I'd missed this, but it make sense in
retrospect) I was (accidentally!) right in the "CI" part of that since
we're including it in "make sparse", which is because we create *.sp
files from everything we have a *.o for.

As an aside re the "justify the complexity" the patch to "fix" that
would be rather trivial:

	diff --git a/Makefile b/Makefile
	index 18ca6744a50..aae16d140a5 100644
	--- a/Makefile
	+++ b/Makefile
	@@ -2966,7 +2966,7 @@ t/helper/test-%$X: t/helper/test-%.o GIT-LDFLAGS $(GITLIBS) $(REFTABLE_TEST_LIB)
	 check-sha1:: t/helper/test-tool$X
	 	t/helper/test-sha1.sh
	 
	-SP_OBJ = $(patsubst %.o,%.sp,$(C_OBJ))
	+SP_OBJ = $(patsubst %.o,%.sp,$(filter-out $(SCALAR_OBJECTS),$(C_OBJ)))
	 
	 $(SP_OBJ): %.sp: %.c %.o
	 	$(QUIET_SP)cgcc -no-compile $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) \

But (and I've noted this before) I think the better fix is to just
properly integrate scalar.

We (accidentally) have been building it by default, which the patches to
integrate it sought to explictly avoid to avoid bothering anyone.

But ... nobody's been bothered, so I think if anything this should be a
data point suggesting that we're being overly careful in this case.

I.e. that we don't need the many intermediate steps of adding
special-cases to various components, when there seems to be unanimous
agreement on the end-goal. Can't we just skip to that already?

:)

  reply	other threads:[~2022-06-03 10:48 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-02  9:05 [PATCH 0/2] Integrate Scalar into the CI builds Johannes Schindelin via GitGitGadget
2022-06-02  9:05 ` [PATCH 1/2] cmake: optionally build `scalar`, too Johannes Schindelin via GitGitGadget
2022-06-02 10:18   ` Ævar Arnfjörð Bjarmason
2022-06-02  9:05 ` [PATCH 2/2] ci: also run the `scalar` tests Johannes Schindelin via GitGitGadget
2022-06-02 10:24   ` Ævar Arnfjörð Bjarmason
2022-06-02 13:35   ` Derrick Stolee
2022-06-03 10:33     ` Johannes Schindelin
2022-06-02 14:00 ` [PATCH 0/2] Integrate Scalar into the CI builds Derrick Stolee
2022-06-02 14:13   ` Ævar Arnfjörð Bjarmason
2022-06-02 14:30     ` Derrick Stolee
2022-06-03 10:04       ` Johannes Schindelin
2022-06-03 10:36         ` Ævar Arnfjörð Bjarmason [this message]
2022-06-13 21:03 ` Johannes Schindelin
2022-06-23 10:41   ` Ævar Arnfjörð Bjarmason

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=220603.86bkvaxbvc.gmgdl@evledraar.gmail.com \
    --to=avarab@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=derrickstolee@github.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@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).