Parameters: establish requirements for a descriptor registry
Since the design established thus far calls for a fixed size container and a size-constrained stack of virtual interfaces and implementation within, it is clear that more diverse parts of the type and scale handling must be forwarded into a second layer, maintained within a registry and keyed by ID. Taking the prospective use into account, a two-level structure with a fixed-size top-level index table and dynamically added extents seems to cover all requirements, and allows for a lightweight, atomic-protected read-access path.
This commit is contained in:
parent
da9b40df03
commit
fc8dd9408a
4 changed files with 337 additions and 7 deletions
101
src/lib/par/type-registry.hpp
Normal file
101
src/lib/par/type-registry.hpp
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
/*
|
||||
TYPE-REGISTRY.hpp - generic registry for type or policy descriptors
|
||||
|
||||
Copyright (C)
|
||||
2026 Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
||||
**Lumiera** is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version. See the file COPYING for further details.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/** @file type-registry.hpp
|
||||
** Generic registration table and access mechanism to type descriptors keyed by ID.
|
||||
** The implementation of parameters is based on layered virtual interfaces and implementations,
|
||||
** packaged into a fixed storage buffer that is transported with value semantics. This overall shape
|
||||
** implies a strict storage size regime and thus forces to _fold away_ the more flexible parts of
|
||||
** the behaviour variations into a second layer, retaining only an ID in the core implementation.
|
||||
**
|
||||
** The type registry for parameters provides the generic mechanism underlying this setup scheme:
|
||||
** - it is parametrised by an implementation type (of the descriptor) with a fixed size
|
||||
** - the storage is organised by a fixed-sized index table and heap allocated storage extents.
|
||||
** - entries are never discarded, and thus an atomic lock suffices _for read access_
|
||||
** @remark while this scheme is defined in a generic way, it aims at one specific
|
||||
** usage pattern and should not be stretched beyond that.
|
||||
**
|
||||
** @todo WIP-WIP-WIP can be considered an initial draft and placeholder, as of 2026
|
||||
*/
|
||||
|
||||
|
||||
#ifndef LIB_PAR_TYPE_REGISTRY_H
|
||||
#define LIB_PAR_TYPE_REGISTRY_H
|
||||
|
||||
|
||||
#include "lib/error.hpp"
|
||||
#include "lib/nocopy.hpp"
|
||||
//#include "lib/meta/trait.hpp"
|
||||
//#include "lib/util.hpp"
|
||||
|
||||
//#include <concepts>
|
||||
//#include <limits>
|
||||
|
||||
|
||||
namespace lib {
|
||||
namespace par {
|
||||
|
||||
/**
|
||||
* Management of descriptor entries keyed by numeric ID.
|
||||
* Based on a fixed index table and extents added dynamically.
|
||||
* Slots can be claimed, creating an entry with stable address.
|
||||
* Creation and access are thread safe, Entries are never discarded.
|
||||
*/
|
||||
template<class ELM>
|
||||
class TypeRegistry
|
||||
: util::NonCopyable
|
||||
{
|
||||
public:
|
||||
class ID;
|
||||
|
||||
template<typename...INIT>
|
||||
ID makeSlot (INIT&&...);
|
||||
|
||||
ELM& operator[] (ID) const;
|
||||
};
|
||||
|
||||
|
||||
/** type tagged numeric registry entry ID */
|
||||
template<class ELM>
|
||||
class TypeRegistry<ELM>::ID
|
||||
{
|
||||
uint idx_;
|
||||
|
||||
public:
|
||||
ID (uint ix =0) : idx_{ix} { }
|
||||
operator uint() const { return idx_; }
|
||||
// default copy operations
|
||||
};
|
||||
|
||||
|
||||
|
||||
template<class ELM>
|
||||
template<typename...INIT>
|
||||
inline TypeRegistry<ELM>::ID
|
||||
TypeRegistry<ELM>::makeSlot (INIT&&... initArg)
|
||||
{
|
||||
UNIMPLEMENTED ("allocate new slot, possibly grow extents, under mutex lock");
|
||||
}
|
||||
|
||||
template<class ELM>
|
||||
inline ELM&
|
||||
TypeRegistry<ELM>::operator[] (ID slot) const
|
||||
{
|
||||
UNIMPLEMENTED ("access slot by ID, protected by atomic acquire");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}} // namespace lib::par
|
||||
#endif /*LIB_PAR_TYPE_REGISTRY_H*/
|
||||
|
|
@ -25,3 +25,8 @@ END
|
|||
PLANNED "Enumeration domains" NomSet_test << END
|
||||
return: 0
|
||||
END
|
||||
|
||||
|
||||
PLANNED "Parameter type registry" TypeRegistry_test << END
|
||||
return: 0
|
||||
END
|
||||
|
|
|
|||
117
tests/lib/par/type-registry-test.cpp
Normal file
117
tests/lib/par/type-registry-test.cpp
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
/*
|
||||
TypeRegistry(Test) - verify nominal and ordinal scale enumerations
|
||||
|
||||
Copyright (C)
|
||||
2026, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
||||
**Lumiera** is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version. See the file COPYING for further details.
|
||||
|
||||
* *****************************************************************/
|
||||
|
||||
/** @file type-registry.cpp
|
||||
** unit test \ref TypeRegistry_test
|
||||
*/
|
||||
|
||||
|
||||
#include "test/run.hpp"
|
||||
//#include "test/test-helper.hpp"
|
||||
#include "lib/par/type-registry.hpp"
|
||||
#include "test/tracking-dummy.hpp"
|
||||
#include "lib/util.hpp"
|
||||
#include "test/diagnostic-output.hpp"/////////////TODO
|
||||
|
||||
//#include <utility>
|
||||
//#include <string>
|
||||
//#include <vector>
|
||||
|
||||
//using std::string;
|
||||
//using std::vector;
|
||||
//using std::swap;
|
||||
using util::isSameObject;
|
||||
|
||||
|
||||
namespace lib {
|
||||
namespace par {
|
||||
namespace test{
|
||||
|
||||
// using lumiera::error::LUMIERA_ERROR_LOGIC;
|
||||
|
||||
namespace {//Test fixture....
|
||||
|
||||
}//(End)Test fixture
|
||||
|
||||
using ::test::Dummy;
|
||||
using Registry = TypeRegistry<Dummy>;
|
||||
using RegID = Registry::ID;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**************************************************************************//**
|
||||
* @test verify a index/extent based registration table for type descriptors
|
||||
* - new slots can be claimed and then re-accessed by ID
|
||||
* - storage is stable even while new extents are added, and not leaked
|
||||
* - read access can happen concurrently with allocating new slots.
|
||||
*/
|
||||
class TypeRegistry_test : public Test
|
||||
{
|
||||
|
||||
virtual void
|
||||
run (Arg)
|
||||
{
|
||||
seedRand();
|
||||
|
||||
simpleUsage();
|
||||
verify_storageSanity();
|
||||
verify_concurrentAccess();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
simpleUsage()
|
||||
{
|
||||
const int MARK = 1 + rani (1000);
|
||||
|
||||
Registry registry;
|
||||
RegID id = registry.makeSlot (MARK);
|
||||
|
||||
Dummy& entry = registry[id];
|
||||
CHECK (MARK == entry.getID());
|
||||
CHECK (isSameObject (entry, registry[id]));
|
||||
|
||||
VERIFY_FAIL ("not yet allocated", registry[12345]);
|
||||
}
|
||||
|
||||
|
||||
/** @test
|
||||
* @todo WIP 9/26 🔁 define ⟶ implement
|
||||
*/
|
||||
void
|
||||
verify_storageSanity()
|
||||
{
|
||||
UNIMPLEMENTED ("verify coherent storage handling and proper clean-up");
|
||||
}
|
||||
|
||||
|
||||
/** @test
|
||||
* @todo WIP 9/26 🔁 define ⟶ implement
|
||||
*/
|
||||
void
|
||||
verify_concurrentAccess()
|
||||
{
|
||||
UNIMPLEMENTED ("press slot allocation and data access concurrently");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/** Register this test class... */
|
||||
LAUNCHER (TypeRegistry_test, "unit lib");
|
||||
|
||||
|
||||
|
||||
}}} // namespace lib::par::test
|
||||
|
|
@ -84452,9 +84452,23 @@
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<node CREATED="1788123756658" HGAP="31" ID="ID_1426033062" MODIFIED="1788123771818" TEXT="die BaseDomain-ID kann statisch liegen" VSHIFT="1">
|
||||
<node CREATED="1788123756658" HGAP="31" ID="ID_1426033062" MODIFIED="1790471988055" TEXT="die BaseDomain-ID könnte statisch liegen" VSHIFT="1">
|
||||
<font NAME="SansSerif" SIZE="11"/>
|
||||
</node>
|
||||
<node CREATED="1790471989989" ID="ID_368143788" MODIFIED="1790472005535" TEXT="lege sie aber nun erst mal mit in den IDRecord">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1790472108504" ID="ID_380080816" MODIFIED="1790472341753" TEXT="wegen optimiertem Datenzugriff ⟶ bereits in Disposition">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Disposition ist das Implementation-Service-Interface; es ist die Grenze zwischen den Interface-Layern und dem (eigentlich opaquen) Implementierungs-Aufbau; somit ein guter Ort, einen IDRecord verbindlich bereitzustellen, denn die Festlegung, einen »slot« für Klassifikation und damit und damit verschiedene Dimensionen des »Typs« zu verbrauchen, erscheint angemessen und akzeptabel im Overhead.
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<arrowlink COLOR="#331dc1" DESTINATION="ID_768311001" ENDARROW="Default" ENDINCLINATION="723;0;" ID="Arrow_ID_1947843702" STARTARROW="None" STARTINCLINATION="422;20;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1788124658818" ID="ID_775970800" MODIFIED="1788124658818" TEXT="Rolle der (Scale)Prototypen bedenken">
|
||||
<arrowlink COLOR="#332ab5" DESTINATION="ID_203751727" ENDARROW="Default" ENDINCLINATION="-1438;69;" ID="Arrow_ID_433092199" STARTARROW="None" STARTINCLINATION="-344;26;"/>
|
||||
|
|
@ -84764,6 +84778,7 @@
|
|||
<node CREATED="1788380437998" ID="ID_1881580962" MODIFIED="1788380488048" TEXT="sonst ist kein »short-circuit« möglich">
|
||||
<arrowlink COLOR="#7a6a8b" DESTINATION="ID_1468282295" ENDARROW="Default" ENDINCLINATION="116;-139;" ID="Arrow_ID_582693889" STARTARROW="None" STARTINCLINATION="220;17;"/>
|
||||
</node>
|
||||
<node CREATED="1790473843121" ID="ID_289990682" MODIFIED="1790473853207" TEXT="dieser »codiert« die Typ-Spielarten"/>
|
||||
</node>
|
||||
<node CREATED="1788293586698" ID="ID_1746668987" MODIFIED="1788293628728" TEXT="Inhaltlich gehört es aber näher zum ParamData-Record"/>
|
||||
</node>
|
||||
|
|
@ -85298,7 +85313,9 @@
|
|||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1788380520115" ID="ID_1609007571" MODIFIED="1788404265183" TEXT="führe also eine generische Spec mit einem ID-Record ein">
|
||||
<linktarget COLOR="#578fd2" DESTINATION="ID_1609007571" ENDARROW="Default" ENDINCLINATION="53;-180;" ID="Arrow_ID_486335926" SOURCE="ID_569414817" STARTARROW="None" STARTINCLINATION="-29;106;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1788380609599" ID="ID_768311001" MODIFIED="1788380631272" TEXT="und die zugehörige Storage kommt in die Disposition"/>
|
||||
<node CREATED="1788380609599" ID="ID_768311001" MODIFIED="1788380609599" TEXT="und die zugehörige Storage kommt in die Disposition">
|
||||
<linktarget COLOR="#331dc1" DESTINATION="ID_768311001" ENDARROW="Default" ENDINCLINATION="723;0;" ID="Arrow_ID_1947843702" SOURCE="ID_380080816" STARTARROW="None" STARTINCLINATION="422;20;"/>
|
||||
</node>
|
||||
<node CREATED="1788380657233" ID="ID_659200917" MODIFIED="1788381357392" TEXT="Neben-Thema: brauche nun eine Basis-Typ-ID">
|
||||
<arrowlink COLOR="#80969f" DESTINATION="ID_550975867" ENDARROW="Default" ENDINCLINATION="-1482;411;" ID="Arrow_ID_1821706956" STARTARROW="None" STARTINCLINATION="434;28;"/>
|
||||
<node CREATED="1788381363706" HGAP="31" ID="ID_1985934952" MODIFIED="1788381363706" TEXT="die kann unmittelbar statisch und eindeutig zugewiesen werden" VSHIFT="6">
|
||||
|
|
@ -86104,7 +86121,8 @@
|
|||
<node CREATED="1789079643596" ID="ID_1571313547" MODIFIED="1789079662309" TEXT="die Scale sollte rein symbolisch dargestellt werden">
|
||||
<node CREATED="1789079678938" ID="ID_311127403" MODIFIED="1789079685621" TEXT="als ein Satz algebraische Daten"/>
|
||||
<node CREATED="1789079686328" ID="ID_1110601241" MODIFIED="1789079697987" TEXT="ausgestattet mit Informationsfunktionen"/>
|
||||
<node CREATED="1789079698677" ID="ID_1651075832" MODIFIED="1789079705138" TEXT="jedoch ohne Operationalisierung"/>
|
||||
<node CREATED="1790469747133" ID="ID_107922186" MODIFIED="1790469747133" TEXT="mit Wert-Ermittlungs-Funktionen (pure)"/>
|
||||
<node CREATED="1789079698677" ID="ID_1651075832" MODIFIED="1790469774810" TEXT="jedoch ohne operationallisierte Logik"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1789082704022" ID="ID_1925473607" MODIFIED="1789082723794" TEXT="muß eine Registry bereits jetzt bauen">
|
||||
<icon BUILTIN="yes"/>
|
||||
|
|
@ -86273,6 +86291,21 @@ class ScaleRegistry
|
|||
<linktarget COLOR="#426aa5" DESTINATION="ID_435108847" ENDARROW="Default" ENDINCLINATION="28;-70;" ID="Arrow_ID_1818399541" SOURCE="ID_735608493" STARTARROW="None" STARTINCLINATION="-393;12;"/>
|
||||
<linktarget COLOR="#365ac0" DESTINATION="ID_435108847" ENDARROW="Default" ENDINCLINATION="-11;82;" ID="Arrow_ID_246372510" SOURCE="ID_438812693" STARTARROW="None" STARTINCLINATION="14;-8;"/>
|
||||
<node CREATED="1789159448086" ID="ID_1755995276" MODIFIED="1789159547368" TEXT="Feste Index-Tabelle + heap-allozierte Extents"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1790478166301" ID="ID_1258631659" MODIFIED="1790478197709" TEXT="Implementierung nach Standard-Schema (wie von Claude vorgeschlagen)">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1790478209106" ID="ID_1599776496" MODIFIED="1790478269240" TEXT="Testabdeckung">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1790478219335" ID="ID_265184931" MODIFIED="1790478266894" TEXT="Standard-Nutzen">
|
||||
<icon BUILTIN="pencil"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1790478228069" ID="ID_194433887" MODIFIED="1790478263177" TEXT="Memory-Konsistenz">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1790478238100" ID="ID_1243204093" MODIFIED="1790478263177" TEXT="Concurrency safe">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -87389,6 +87422,25 @@ Prop.1: dist%3 1 2 0 1 2 0
|
|||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1790094501963" ID="ID_438812693" MODIFIED="1790094572153" TEXT="und diese Registry sollte generisch angelegt sein">
|
||||
<arrowlink COLOR="#365ac0" DESTINATION="ID_435108847" ENDARROW="Default" ENDINCLINATION="-11;82;" ID="Arrow_ID_246372510" STARTARROW="None" STARTINCLINATION="14;-8;"/>
|
||||
<node CREATED="1790469975638" ID="ID_1306037041" MODIFIED="1790469981295" TEXT="inwiefern?"/>
|
||||
<node CREATED="1790469982412" ID="ID_1297951248" MODIFIED="1790470003336" TEXT="hier ist mehr zu »registrieren« als nur die Scale-Deskriptoren"/>
|
||||
<node CREATED="1790470019568" ID="ID_5893879" MODIFIED="1790470044739" TEXT="also gemeinsames Baumuster — aber nicht universelle Generizität"/>
|
||||
</node>
|
||||
<node CREATED="1790473957382" ID="ID_747301753" MODIFIED="1790473972104" TEXT="was bedeutet hier Registrieren / Registry?">
|
||||
<node CREATED="1790474034779" ID="ID_670483363" MODIFIED="1790474067986" TEXT="ein spezieller Scale-Descriptor ⟹ identifiziert durch eine ID (numerisch)">
|
||||
<node CREATED="1790474293557" ID="ID_1634478029" MODIFIED="1790474313566" TEXT="ID-Nummern sind ephemer und gültig nur in einer Runtime-Instanz"/>
|
||||
<node CREATED="1790474314638" ID="ID_1442840242" MODIFIED="1790474337583" TEXT="sie werten zufällig nach Aufruf-Reihenfolge lückenlos vergeben"/>
|
||||
<node CREATED="1790474342886" ID="ID_1882997371" MODIFIED="1790474363136" TEXT="ID-«slots» werden niemals wiederverwendet"/>
|
||||
<node COLOR="#42207e" CREATED="1790474369927" ID="ID_1326954832" MODIFIED="1790474390602" TEXT="(mal sehen wie weit das reicht...">
|
||||
<font NAME="SansSerif" SIZE="10"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1790474121848" ID="ID_1163539569" MODIFIED="1790474164518" TEXT="Zugriff per Typ(compiletime)+ID(runtime)"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1790474208388" ID="ID_1335701954" MODIFIED="1790478289060" TEXT="Concurrency">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1790474214328" ID="ID_1925127627" MODIFIED="1790474250457" TEXT="Neuerstellen unter globalem Lock (pro Typ ⟶ Registry)"/>
|
||||
<node CREATED="1790474251717" ID="ID_1300983163" MODIFIED="1790474272111" TEXT="Zugriff per atomic-acquire"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -87873,7 +87925,7 @@ Prop.1: dist%3 1 2 0 1 2 0
|
|||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1788919077662" ID="ID_768555857" MODIFIED="1788919903351" TEXT="wie gehen wir um mit Zeit-Entitäten als Parameterwerten?">
|
||||
<node CREATED="1788919077662" ID="ID_768555857" MODIFIED="1790473520895" TEXT="wie gehen wir um mit Zeit-Entitäten als Parameterwerten?">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -87888,7 +87940,7 @@ Prop.1: dist%3 1 2 0 1 2 0
|
|||
man könnte die Basis-Typen erweitern und die Diskrepanzen auf Ebene der Typ-Handler abfangen
|
||||
</li>
|
||||
<li>
|
||||
denkbar wäre auch eine alternative Implementierung der Disposition (ParamData) notwendig, so daß man das Quantisierungs-Grid geeignet darstellen kann und u.U. sogar einen TimeSpan (zwei Datenwerte) noch in der Standard-Buffer-Storage unterbringt
|
||||
möglicherweise wäre auch eine alternative Implementierung der Disposition (ParamData) notwendig, so daß man das Quantisierungs-Grid geeignet darstellen kann und u.U. sogar einen TimeSpan (zwei Datenwerte) noch in der Standard-Buffer-Storage unterbringt
|
||||
</li>
|
||||
<li>
|
||||
man könnte stattdessen solche Parameter in die Kategorie der »komplexen Parameter« einordnen, die ja durchaus sehr häufig sein werden (z.B Farbwerte sind Vektoren); demnach wäre eine Zeit-Entität eben auch ein komplexer Wert, der auch ein Grid bzw. einen Timecode-Quantisierer impliziert
|
||||
|
|
@ -199589,6 +199641,24 @@ that situation will improve in forseeable future.</pre>
|
|||
<node CREATED="1765904221705" ID="ID_168400791" MODIFIED="1765904240857" TEXT="Projektorganisation">
|
||||
<node CREATED="1765904243219" ID="ID_762435721" MODIFIED="1765904327595" TEXT="Ticket-System"/>
|
||||
</node>
|
||||
<node CREATED="1790478502069" ID="ID_772236764" MODIFIED="1790478812357" TEXT="Knowledge-Technology">
|
||||
<icon BUILTIN="stop"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1790478720379" ID="ID_1701964799" MODIFIED="1790478754887" TEXT="Policy für Verwendung von Knowledge-Tech(„AI“)">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
<node CREATED="1790478543962" ID="ID_1537548387" MODIFIED="1790479601962" TEXT="Plan: Agent-accessible Knowlege-Base">
|
||||
<arrowlink COLOR="#9f5585" DESTINATION="ID_1054806825" ENDARROW="Default" ENDINCLINATION="-358;-39;" ID="Arrow_ID_1308347771" STARTARROW="None" STARTINCLINATION="92;968;"/>
|
||||
<node CREATED="1790478640790" ID="ID_368351739" MODIFIED="1790478675060" TEXT="strukuriert als themen-Keyword ⟶ summary">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1790478617109" ID="ID_60449110" MODIFIED="1790478638326" TEXT="Aufbau mit Claude">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1790478776155" ID="ID_1385239652" MODIFIED="1790478797613" TEXT="Bootstrap als »onboarding«-Prozeß">
|
||||
<icon BUILTIN="pencil"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1756651585768" FOLDED="true" ID="ID_1780831155" MODIFIED="1773679549551" TEXT="Website / Infrastruktur">
|
||||
<icon BUILTIN="go"/>
|
||||
<node BACKGROUND_COLOR="#d4bcb8" COLOR="#435e98" CREATED="1768412090280" FOLDED="true" ID="ID_1149298290" MODIFIED="1769124560527" TEXT="Situation(allgemein)">
|
||||
|
|
@ -215436,7 +215506,7 @@ actively maintained upstream. Please remove gdl from Debian.</pre>
|
|||
<node CREATED="1764297022138" ID="ID_1594986433" MODIFIED="1764297041259" TEXT="jeweils abgeglichen mit Debian/Trixie und Ubuntu/Noble"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1583523694636" HGAP="56" ID="ID_446319704" MODIFIED="1583523704860" TEXT="Build-Umgebung" VSHIFT="6">
|
||||
<node CREATED="1583523694636" HGAP="56" ID="ID_446319704" MODIFIED="1790478885932" TEXT="Build/Entwicklungs-Umgebung" VSHIFT="6">
|
||||
<node COLOR="#338800" CREATED="1583523705722" ID="ID_1278670650" MODIFIED="1583523709609" TEXT="Eclipse-Projekt">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
|
|
@ -215472,7 +215542,44 @@ actively maintained upstream. Please remove gdl from Debian.</pre>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1689294635406" FOLDED="true" HGAP="23" ID="ID_1624761863" MODIFIED="1764296266132" TEXT="Test/Debug" VSHIFT="35">
|
||||
<node CREATED="1790478820998" FOLDED="true" HGAP="476" ID="ID_1054806825" MODIFIED="1790479601962" TEXT="Agent-Harness" VSHIFT="10">
|
||||
<edge COLOR="#7e8e8f"/>
|
||||
<cloud COLOR="#d0bea4"/>
|
||||
<linktarget COLOR="#9f5585" DESTINATION="ID_1054806825" ENDARROW="Default" ENDINCLINATION="-358;-39;" ID="Arrow_ID_1308347771" SOURCE="ID_1537548387" STARTARROW="None" STARTINCLINATION="92;968;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1790479201267" ID="ID_745439775" MODIFIED="1790479209417" TEXT="Vorentwurf">
|
||||
<node CREATED="1790479220679" ID="ID_1833680061" MODIFIED="1790479225242" TEXT="Zwei Phasen">
|
||||
<node CREATED="1790479226935" ID="ID_1770569711" MODIFIED="1790479231754" TEXT="Einarbeitung mit Claude"/>
|
||||
<node CREATED="1790479232579" ID="ID_995893621" MODIFIED="1790479240619" TEXT="Experimente mit erweitertem Harness"/>
|
||||
</node>
|
||||
<node CREATED="1790479243641" ID="ID_871575753" MODIFIED="1790479247205" TEXT="Zwei Richtungen">
|
||||
<node CREATED="1790479251829" ID="ID_91822617" MODIFIED="1790479442224" TEXT="Coding-Assistent mit Projektkenntnis">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Ein Assistent der den Charakter des Projekts kennt, mit dem Design-Stil und den Arbeitsmustern vertraut ist, und alle wesentlichen Elemente der Codebasis zuornen kann bezüglich Architektur, Vision, Entwicklungsstand
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1790479271537" ID="ID_659450664" MODIFIED="1790479581516" TEXT="Projekt-Prozeduren automatisieren">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Das soll ehr der »Köder« sein, damit Leute nicht mit ihren eigenen tollen Ideen um die Ecke gebogen kommen...
|
||||
</p>
|
||||
<p>
|
||||
Das Projekt stellt gewisse Arbeits-Schemata und Prozeßbausteine bereit, wie z.B. Git-Flow-Aktionen, Release-Verifikation, ggfs. auch ein Codereview-Vorfilter. Dies sind Bausteine, die ich »in der Schublade liegen haben möchte«
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1689294635406" FOLDED="true" HGAP="39" ID="ID_1624761863" MODIFIED="1790478917694" TEXT="Test/Debug" VSHIFT="24">
|
||||
<cloud COLOR="#e4d4ac"/>
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1696182724524" ID="ID_1871189508" MODIFIED="1696182799932" TEXT="Test-parameter">
|
||||
|
|
|
|||
Loading…
Reference in a new issue