Re: on mr 28 run locally.

Florent Rougon via Flightgear-devel <[email protected]> Mon, 27 Jul 2026 08:37:20 +0200
Newsgroups gmane.games.flightgear.devel
Message-ID <[email protected]>
--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Hi,

Le 26/07/2026, Patrick Callahan <[email protected]> a écrit:

> Short answer:
>
> src/reference/cpp-api/translations/classes/DefaultTranslationParser.rst
> and src/reference/cpp-api/translations/classes/TranslationDomain.rst:
>
> have begun to fail when a local build of main is done on an empty build
> directory.
> due to the classes they reference being in the flightgear namespace in the
> corresponding cxx files.

Ah, that's interesting...

> They do not fail during CI, even though the gitlab-ci.yaml specifies the
> same sphinx command with --fail-on-warnin
>
> Is there some caching preventing a failure in CI?

No, there isn't. The only caching is:

sphinx-build:

  (...)

  cache:
    key: venv
    paths:
      - .venv            # where the venv managed by 'uv' is stored

and:

.pre-commit-common:
  (...)

  variables:
    PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit
  cache:
    key: pre-commit
    paths:
      - ${PRE_COMMIT_HOME}

Thus, what is cached is comprised of:
  - Python binaries and packages installed by 'uv';
  - packages installed by pre-commit.

> flightgear/src/Translations/DefaultTranslationParser.cxx
> and flightgear/src/Translations/TranslationDomain.cxx
>
> both declare namespace flightgear for the classes they contain.

Indeed, this seems to be a mistake of mine in the .rst files. I suppose
there is some heuristic (or bug) that allows these classes to be found
on the CI as well as on my computer despite the lack of the 'flightgear'
namespace in .rst files.

I just did a full build from a brand new repo using the attached
clean_build.sh script. The 'sphinx-build' output on stdout & stderr is
attached (the full build log including Doxygen takes 67 KB *after* xz
compression; can send in private if you want...).

> The other translation modules do not declare flightgear as a namespace.

The “namespacing discrepancy” in the C++ code is explained as follows.
At first, everything was in the 'flightgear' namespace, however when I
wrapped the classes with CppBind and used std::shared_ptr for the ghost
pointer type, I hit a build error that was too difficult for me to fix.
I found that the problem disappeared if the wrapped classes were in the
root namespace, so I moved them there. Those that are still in the
'flightgear' namespace either aren't exposed to CppBind or don't use
std::shared_ptr as the shared pointer wrapper template.

See for instance in flightgear/src/Scripting/NasalTranslations.cxx:

void initNasalTranslations(naRef globals, naContext c)
{
    nasal::Hash globalsModule(globals, c);
    nasal::Hash fgTranslateModule = globalsModule.createHash("FGTranslate");

    fgTranslateModule.set("new", &f_new_FGTranslate);

    FGTranslate::setupGhost();
    TranslationResource::setupGhost();
    TranslationUnit::setupGhost();
}

The types here that have a setupGhost() call *don't* include the two
classes you mentioned.

> To correct this will take a merge request for the two .rst files adding
> flightgear::
>
> I can easily do that if you wish.

You or I can fix this, that will be fine either way for me. Choose
whatever is simpler for you (if I push a fix, you'll have to rebase your
MR). Of course, I'd like the fix to be in a separate commit from the
rest. :-)

Regards

-- 
Florent

--=-=-=
Content-Type: application/x-sh
Content-Disposition: attachment; filename=clean_build.sh
Content-Transfer-Encoding: base64

IyEgL2Jpbi9zaAoKc2V0IC1lCgpjZCAvdG1wICYmIHJtIC1yZiBkb2MtYnVpbGQgJiYgbWtkaXIg
ZG9jLWJ1aWxkICYmIGNkIGRvYy1idWlsZAojIFRoZXNlIHR3byBhcmUgb24gJ25leHQnCmxuIC1z
IH4vZmxpZ2h0Z2Vhci9zcmMvc2ltZ2VhcgpsbiAtcyB+L2ZsaWdodGdlYXIvc3JjL2ZsaWdodGdl
YXIKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0bGFiLmNvbS9mbGlnaHRnZWFyL2RvY3VtZW50YXRpb24u
Z2l0CmNkIGRvY3VtZW50YXRpb24KZG94eWdlbiBEb3h5Z2VuLWNvbmZpZ3Mvc2ltZ2Vhci5Eb3h5
ZmlsZQpkb3h5Z2VuIERveHlnZW4tY29uZmlncy9mbGlnaHRnZWFyLkRveHlmaWxlCnNwaGlueC1i
dWlsZCAtLWZhaWwtb24td2FybmluZyAtYiBodG1sIC4vc3JjIC4vYnVpbGQK
--=-=-=
Content-Type: application/x-xz
Content-Disposition: attachment; filename=sphinx-output.txt.xz
Content-Transfer-Encoding: base64

/Td6WFoAAATm1rRGBMC1D9h7IQEcAAAAAAAAAHZSwyzgPdcHrV0AKR1J2Gk4ZHzr3SRoiWMMqqP0
odxTCqf5c2R0hh8l0Ja2q+RuZOjpgqBVab9L1W67MWGlPPGgQTVQAJd1t/hev8XsAbBQGNJcsiQX
eDZKOwbhNkncwqGBSOIKkqfzbZocK3ubg0mKS/zMdfaUAE9h0WhcPhaEIgMZ2FSjE+eZjbtbxBf6
TZmmKa7sxjVBvQOcMxYsKJEuR5pqxfCrbtBzeJsge6ZGd2cfEWbBOcFp2ZS0aNkF60uBQC6Uny6t
RurGkUVSzj8fO2+AVl5h3s8L11UPUC22v6ZS0IkYscZe7H88kG3yvTrJKh/yUTEe4lXxm5l7+aVR
P30Hb0aXooHSw0PPOyxh75EEdVMVf/3/gIGfacrv+I9V23y2y2cR4sy+W4pZyPawmHJ6WEcm+BmD
GVdfsuo+DUccQYTiou9Lw7v3UfzOseMstpNWn868mtQ+HeBl/QnIiZftisS2N8Deo/j6l4FOP/+2
WnaLN2wwuh6+Eo/PoL3RQzyL66RFQ1ozupx9jGnwkvaM/ZKksdk5eeCXdVjbqkXfo3+MyTGTatXv
u41EaiwnjI5Xt2CJMSMmt4yTUx0fg1aIGjxmvsoDTlx7is5wX/bziDYEHcShyEsu86yW7S+2W0EX
HsisjqaxL9D7aoHg1a/THEJwMzjSfR2j6SEhxTCILfpNbLLHUc/HzNmeoCQ26ptohCTHtCNQwype
JWRY1dl70Q1NtNZh8Yl1LjOTh4N3/J0LC5/+H8uVOar8yosrqQXLxhFVYSVooW/kKEh9qWprFWrW
72ny7j/fRn0EpiQnUMI7YbKPRbu26EykChJ5BAMd+nbw3+jQX2/WC04b4dlpxdKta3KDPclWkwfk
TqnnYu3SUhOO76dbHq+0RNf+Ubl6TvSpUD7aOBb7z1yVkQgktYuYpeelAuVLcEtXaDh71dOcBIKV
LDsomlPp8MeZ+X4NcupjgEeboRcM2kgcFNFRkhNrqh/KzrIxQ9siMCPou4PP6bwUQpa0irUEoodK
MLrZzfieW3u5syOno0B2pfA5518rCYl6t/+isiiUvqZOnda0QvfXjBIWpCDbxG0oEYyiaFHoTUZO
r2DhPlnfbDrddTkvDky0q5cKgV1KvHukRjVEq7q8S4/yUYui0ehYt/v0vyyRw2SauXkkEvZkz/fw
FY6FDLr/WCvyNZgY1VX9XrQ00ZONVm+Gzv31uFaRNkkHK2MVhtgyqXmxy3ct6iyIyp4Zx+ACZk1d
r8JPrKdwFDxIbWba6jfeCAKKdBIcy9JJmu/3KbFtmIcAYtB5PDO4aa7Lf50HKXXzV6Vf0bArxBIc
kr7aIU86OWgheYlqh53bGejYYtD+zkeijKWSlulqY9TZAGT1/nvyUV6AhchHytVkB/4jXvD1WAah
z8qT+FhRB1vVv5hsN0NPPi1Guae4nhtjFYqIG8vy1gw/kJspO+F+TXqmuoCsnIkFm5/6k5w+V1vb
yS8AhPt8Y87ITl3HPIFA1uOWvu5UxUeJBjCzGH1fEnLaeaufqJCrOiY8sD9/lypHD0mQyxCSFLcq
6PwZ0RhYXHt+BR7IUJ6YsszFGuNIOt1wpRjAfuXaMhPini7B4z8UYLU55oDo8oTFQjYUcwetAHdo
gCP4rcfA8KfuY1NEtprGCLFU4KxVdzM0w3+VKKPUxHX07bRikb3JSYY2ppzAyUZht6PwQx7AlMDo
tWdG8wO6DyB1Xx2XAEk7XDal8q66FSY5R+/QAbK/IeVL+cD+wUqLMhtWLVGxKhDzR+0xULtLjfG8
nxTHP3sLddFpM7OfEEYcuovRRhspU+egsGEtbObuEDj3rY3iIYsAv4FCsryx47bQ5QimRovpsN6f
Iiyxc8GhGExQ5coc8n7w5b0/8iKe/qHoQvYn5vtoZ6NjYz/KtFSGQYsLv97xD4/akbSdmVdA8EqB
/yXxgvUSvCqZX5Mgjopqg3UHDnPquYUrTAIPJ+7lZOr/udmGlFQpxQZV9HFWUqCbg3PX8vksQVaH
AbIbhJ1b9ii2CvvriUWT5TXbvqOeBeYsrJGC5rwqSIosoeyjxpqh/6iVMmq+IrfwvIpWjQquQS8E
wjRA4PufqM9fNSNGMsczY57MJCQoU+xnxMGrLuClJ8ugWFqSFnZnSWpHEWQGUXGvjye6uYUlQEvY
06IAal0fzMVQdrPZssRfBvU6heMv7JOmiVtvtDSfNC4LdvYza4XF92MOqavgV7kI+AWI7nN2yomw
w+OBd1VYj8BLN/cXsY40rN4TNIJ/SY7uIuMwMXZcygsJO+bsPcq/CPigklz+jZUA/k7k0shh34e9
CvG7+mD0WLPtJ6PTKoUs2aeSX3n1WlcaBn4hNXTYK2zl9ySAPIowV0qLSW5eZ8uEBazM9jztjMuG
610mB4eHuBZwo3Cw4Nz62uNB0Euvli05Z5zDO/46ON/tXngUZYpaMDdUGlitI/dEqcYsFHeX2TuY
mVA6twwQLNV4E8ai0Q9JLaWbaFy0vY/S3ylaVLU054eWCKdIHuOP12uL/M2tvhfecBLS7YdImk8l
o5L8zwyeFkg961qEw/Z3bWF4eBMFAykeWpRjejbhUjXRKZN7/UxZfjymsCcmEe3hfShMbjxmsk0K
hJOtXG6GHSQJAAAAACC938V5jryJAAHRD9h7AABBmiMjscRn+wIAAAAABFla
--=-=-=
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--=-=-=
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Flightgear-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

--=-=-=--