Stream: Mirror: Isabelle Development Mailing List

Topic: [isabelle-dev] Admin/components/README.md


view this post on Zulip Email Gateway (Mar 25 2024 at 19:04):

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:

"""

Repeatable component builds

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

view this post on Zulip Email Gateway (Mar 27 2024 at 13:46):

From: Makarius <makarius@sketis.net>
Here is an updated version:
https://isabelle-dev.sketis.net/source/isabelle/browse/default/Admin/components/;ebd988ee1d57

In particular:

"""

Dynamic setup of large components

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: Apr 28 2024 at 08:19 UTC