From: Makarius <makarius@sketis.net>
Isabelle/36e33d227bf0 now provides Admin/components/README.md as merged and
updated version of former PLATFORMS + README in that directory.
Using Markdown makes it look more fancy, but that is also difficult to do
properly, because there are too many Markdown standards. This version is meant
to work for VSCode and Phabricator, e.g. see the bottom of
https://isabelle-dev.sketis.net/source/isabelle/browse/default/Admin/components/;36e33d227bf0
Concerning the text, the main addition is:
"""
Historically, Isabelle components have often been assembled manually, packaged
as .tar.gz
and uploaded to the administrative directory. This model no
longer fits the typical complexity of multi-platform tools.
The current quality standard demands a separate tool in Isabelle/Scala, to
build a component in a repeatable manner: e.g. see isabelle component_jdk
or
isabelle component_e
with sources in src/Pure/Admin
. Such tools often
require a Unix platform (Linux or macOS), or the specific platform for which
the target is built. In the latter case, the component build tool is run
manually in each operating-system context, using the base-line versions
specified above (e.g. via Docker); all results are assembled into one big
.tar.gz
archive.
Multi-platform tools also require thorough testing on all platforms: base-line
and latest versions. It "works for me on my system" is not sufficient for the
general public.
"""
Makarius
isabelle-dev mailing list
isabelle-dev@in.tum.de
https://mailman46.in.tum.de/mailman/listinfo/isabelle-dev
From: Makarius <makarius@sketis.net>
Here is an updated version:
https://isabelle-dev.sketis.net/source/isabelle/browse/default/Admin/components/;ebd988ee1d57
In particular:
"""
An alternative approach, especially for components that are very large and/or
rarely used, is to provide an Isabelle setup tool that interested users may
run for themselves. This works particularly well for software products that
have their own "store" of downloadable artifacts. For example, see
isabelle dotnet_setup
as defined in src/Pure/Tools/dotnet_setup.scala
.
"""
Isabelle component management has become and art and an industry. There is
more to say, especially for automated build setup (e.g. Setup_Tool service
classes), but the text is already rather long.
Makarius
isabelle-dev mailing list
isabelle-dev@in.tum.de
https://mailman46.in.tum.de/mailman/listinfo/isabelle-dev
Last updated: Feb 01 2025 at 20:19 UTC