/ STATUS.org
STATUS.org
  1  # SPDX-FileCopyrightText: 2026 Le'Core collective
  2  #
  3  # SPDX-License-Identifier: LGPL-3.0-or-later
  4  
  5  #+TITLE: Le'Core - Development Status
  6  #+LANGUAGE: en
  7  
  8  Development happens in spurts, and there is still a ways to go before this can
  9  be pronounced fully Ready, let alone usable.  I have a readiness status on
 10  each piece, which is one or more of:
 11  
 12  - Planned ::
 13  
 14    To be designed and implemented.  So far, it is only an idea.
 15  
 16  - Deferred ::
 17  
 18    The component is pushed to the future, i.e. it doesn't stop the
 19    encompasing component from being deemed Ready.
 20  
 21  - Rejected ::
 22  
 23    There was a plan, but the component was deemed unnecessary, or was
 24    replaced with something else.
 25  
 26    Items marked this way will disappear entirely in a future commit.
 27  
 28  - Design in progress ::
 29  
 30    A first rough design is being written, describing the ideas that are to be
 31    implemented.
 32  
 33  - Implementation in progress ::
 34  
 35    A first implementation is in the works.
 36  
 37  - On hold ::
 38  
 39    A design or implementation exist, but there are serious doubts about
 40    them.
 41  
 42  - Testing in progress ::
 43  
 44    Implementation is pretty much done, but is undergoing feasibility tests
 45  
 46  - Ready ::
 47  
 48    This first rough design is pretty much done, and there's a working
 49    implementation.
 50  
 51  - Documented ::
 52  
 53    This has proper documentation
 54  
 55  At some point, this status marker will not be necessary any more.
 56  
 57  Ideally, all components should reach a state of Ready + Documented.
 58  
 59  * Designs
 60  
 61  Designs are made in the form of stories, which are maintained in a separate
 62  repository, Le'Sec stories[fn:Le'Sec-stories].
 63  
 64  [fn:Le'Sec-stories] https://seed.le-pri.me/rad:zQ8psYPsgeSGJQrsUqXCP5oWdrPM,
 65  or =rad:zQ8psYPsgeSGJQrsUqXCP5oWdrPM= on the [[https://radicle.xyz][Radicle]] network.
 66  
 67  * Intended library names:
 68  
 69  - On Unix: ~liblecore_s.a~, ~liblecore.so.{major}~
 70  - On Windows: ~liblecore_s.lib~, ~liblecore.lib+liblecore{major}.dll~
 71  - On VMS: ~LIBLECORE_S.LIB~, ~LIBLECORE{major}.EXE~
 72  
 73  * Intended public header directory:
 74  
 75  =${PREFIX}/include/lecore/=
 76  
 77  * Source directories and files
 78  
 79  - Documentation source: =doc/=
 80  - Code source: =src/=
 81  - Public header source: =include/lecore/=
 82  
 83  * Components
 84  
 85  ** Core C type factory
 86  
 87  Status: Ready
 88  
 89  This is a foundational C type factory, implemented as as the inclusion file
 90  =include/lecore/core.inc= that works as a template for what core types that
 91  need to be defined.  Comments in this file explain how it's intended to work.
 92  
 93  ** Environment
 94  
 95  Status: Ready
 96  
 97  This is a generic data store, and the root of all other data that concerns
 98  libraries that extend Le'Core.  Applications must create at least one
 99  environment to be able to used anything else.
100  
101  *** Plugins
102  
103  Status: Ready
104  
105  This is functionality to start and stop plugins.  The plugins can be built
106  into the applications, provided by libraries, or provided as dynamically
107  loadable modules.  It's entirely up to the application to decide how to get
108  them; all this commponent does is give support to get them started an
109  stopped.
110  
111  *** Parameters and Parameter Descriptors
112  
113  Status: Planned
114  
115  This is functionality to pass diverse parameters between applications and
116  plugins, or even between plugins.  The idea is that parameters are key:value
117  tuples, defined by the "owner" of the parameter with the help of parameter
118  descriptors.  The "other end" is responsible for formatting the value to be
119  passed according to that descriptor.
120  
121  *** Operation factory, and Registration
122  
123  Status: Planned
124  
125  This is a C type factory for all sorts of operation classes, implemented as
126  the inclusion file =include/lecore/operation.inc=.
127  
128  *** Object factories, and Registration
129  
130  Status: Planned
131  
132  This is a C type factory for all sorts of object classes, implemented as the
133  inclusion file =include/lecore/object.inc=.  Object classes are an extension
134  of the Core types, specifically made to handle a payload with which diverse
135  operations can be performed, as well as support for associated data
136  operations:
137  
138  - Generator: Planned
139  
140    This is an associated operation that generates an object payload, given
141    some input Parameters.
142  
143    The input Parameters may be anything that can be used to generate a
144    payload, including some of the payload facts, but the main function of a
145    Generator is still to generate a whole payload internally.  If the caller
146    has all the payload facts, then it's better to use the Constructor.
147  
148  - Constructor: Planned
149  
150    This is an associated operation that constructs an object payload, given
151    payload Parameters.
152  
153    This is almost like the Generator, except that this takes input from the
154    caller to construct the payload,
155  
156  - Extractor: Planned
157  
158    This is an associated operation that is used to extract the object payload
159    in form of Parameters.
160  
161  Extended Operation support to create operation classes with an associated
162  Object class and type is supported as well.