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

2024-03-27 Thread Makarius

On 25/03/2024 20:03, Makarius wrote:
Isabelle/36e33d227bf0 now provides Admin/components/README.md as merged and 
updated version of former PLATFORMS + README in that directory.


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-...@in.tum.de
https://mailman46.in.tum.de/mailman/listinfo/isabelle-dev


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

2024-03-25 Thread Makarius
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-...@in.tum.de
https://mailman46.in.tum.de/mailman/listinfo/isabelle-dev