Skip to content

Other platforms bindings and renaming - #6

Open
GeraultTr wants to merge 69 commits into
developfrom
other_platforms_bindings
Open

GeraultTr wants to merge 69 commits into
developfrom
other_platforms_bindings

Conversation

@GeraultTr

Copy link
Copy Markdown
Contributor

No description provided.

…conf.py on the guidelines' template reading the package metadata, the full extension list, a notebook (doc/notebooks, run by nbmake in CI and by nbsphinx), the doc extra, conda/environment.yml, CONTRIBUTING.md, CODE_OF_CONDUCT.md and CHANGELOG.md
…, the data model, reading and writing frames and sequences, the conformance dump (every conformance file read as expected; what it writes passes fspm-tf validate and glTF-Validator with no warning); a MultiScaleTreeGraph.jl package extension (from_mtg, to_mtg: MTG.jl's test files rebuilt exactly, another platform's graph read as an MTG); its CI (Julia 1.10 and latest, the conformance action); doc/julia.md, implementations
…ng to 8 bytes (glTF-Validator warned of more than 3 bytes beyond it); the conformance files are unchanged
…mbered 1, 2, ... in id order (MTG.jl sizes its attribute store by the largest id: CPlantBox's 2^32 offsets saturated memory), each id kept in fspm_tf_id; a parent in another complex (a lateral's first segment) kept in fspm_tf_parent and fspm_tf_edge_type, the node under its own complex; from_mtg writes both back (the conformance root system and CPlantBox's plants: MTG and back, the same graph)
…ing and writing frames and sequences, the conformance dump and tool (every conformance file read as expected; what it writes passes both validators with no warning), a CMake package; CPlantBox's adapter (bindings/cpp/cplantbox): organisms as Plant, Organ and SubOrgan with CPlantBox's variables declared and its parameters in extras, PlantVisualiser geometry, the soil grid and segment-to-cell mapping, static root systems from CPlantBox's frames and from other platforms' (by segment ends and complexes); CI on Linux, macOS and Windows, conformance, the adapter on a pinned CPlantBox; doc/cpp.md
…antGraphs (from_graph, to_graph: one entity set, the nodes' types as labels and their fields as variables, the graph's data as scalars, the turtle's movements left out, edge types guessed; nodes rebuilt from their rows) and PlantGeomTurtle (add_geometry!: feed! replayed, each triangle with its node, the mesh equal to PlantGeomPrimitives.Mesh(graph)); their tests in their own project (PlantGraphs needs Julia 1.12) and CI job; the attribute-to-column conversion shared by the adapters (src/values.jl)
…ainer, the data model, reading and writing frames and sequences, the conformance dump and tool (every conformance file read as expected; what it writes passes both validators with no warning); GroIMP's adapter (bindings/java/groimp, on GroIMP's Graph module): one entity set per refinement depth (names and ranks given), complex and parent from each node's incoming edges, other edge bits as relations, managed fields as variables, and graphs (GroIMP's or another platform's) back into the model's node classes; CI on Linux, macOS and Windows, conformance, the adapter on a pinned GroIMP; doc/java.md
…ntBox), bindings/java GPL-3.0-or-later (GroIMP); the rest of fspm-TF stays CeCILL-C
… user decided them: missing values in integer, text and boolean columns (UINT8 0/1 with noData 255); an entity set's scale (a base scale or mixed) and ranks as base scale positions; reading by content (standard names, the complex chain); position columns in their declared length unit; a data structure's labels map; the extras key, the platform's name in lower case; unique relation names, bearer relations' names and labels; edge_type unknown; the order column; parents in another complex; date formats; sparse ids; conformance/ as part of the agreement and the sources' precedence. Vocabulary 0.2 (Seed, mtg_index, the new enumerations); the reference codec, validator (each new rule) and ParaView reader; the conformance files regenerated with a new scene, missing_values
…oolean columns, an entity set's scale, a data structure's labels, a variable's format, edge_type unknown, the order column; its adapters on 0.2 instead of their extras: MTG.jl's missing attributes as missing, dates with their format, the children's order as order, mtg_index's standard name, ranks and labels given, its extras under virtualplantlab (model, scales, metadata, scene); PlantGraphs' edges unknown and children's order, missing fields; reading another platform's frame unchanged
… with a free noData, text with a free noData string, booleans as UINT8 0/1/255 with FSPM_boolean), an entity set's scale, a data structure's labels, a variable's format, edge_type unknown, the order column; CPlantBox's adapter on 0.2: its Organ set mixed, Plant and SubOrgan with their scales, segment ends in cm as declared (a rebuilt root system bit for bit), its order as branching_order (order is reserved)
… not written, with a warning, rather than overwriting it
…s with a free noData, text with a free noData string, booleans as UINT8 0/1/255 with FSPM_boolean), an entity set's scale, a data structure's labels, a variable's format, edge_type unknown, the order column; GroIMP's adapter on 0.2: missing fields as missing rather than in extras, each scale's base scale (scaleScales) and the classes' vocabulary labels (labels) given
…ec/ holds and how each file is checked, which source prevails, a reading path, the three layers of a file with conformance/root_system.glb annotated, a glossary, how a codec proves itself, the standards it builds on; the conformance files' README in the built docs
…, reordered to the cells' C order) and CPlantBox's hydraulics per segment and per node (add_segment_values, add_node_values: a segment takes its distal node's value), declared with their units and standard names; tests place each value where it belongs; doc/cpp.md
…sually means the branching order, which platforms name order (CPlantBox's organs, OpenAlea MTGs); every codec, the validator, the adapters, the conformance files and the docs; CPlantBox's organs keep their own order
…): File > Export of the 3D view to .glb, or the CLI's export3d, writes the project as an fspm-TF frame: the graph by GroImp.toDataStructure, the scene's geometry as one mesh meshed by GroIMP's glTF plugin, each triangle with its node's and its complexes' rows (an instance's geometry: the node instantiating it); test/run_in_groimp.sh grows simpleRapeseed headless in GroIMP 3.0.0, exports it and checks the frame (456,900 vertices, all with their node; both validators clean); CI job groimp-plugin; GroIMP's modules from its package registry
…frames (FSPM_scene.update: the sender, removed entities) in the schema, the Python and Julia codecs and the validator; the session's messages (spec/schema/coupling.schema.json: declarations with entity sets' rights owns/refines/follows and outputs/inputs, links with units, factors and changes of scale, turns, updates, stop); openalea.fspm_tf.coupling: resolution, stages, a coordinator holding the shared structure (id ranges, rights, removals down the scales), launching participants and recording the session, ZeroMQ and folder transports, replay of a recorded sequence (hold, linear), the participant's side; fspm-tf couple; ucum.conversion_factor; FspmTF.jl's participant (folder; ZeroMQ by FspmTFZMQExt), tested against the coordinator over both transports, in CI too; enum columns with missing values refused by the Python codec; the Coupling platforms page
…0.1 and 0.2 files stay valid, conformance files regenerated, expected values unchanged); links between two data structures through a mapping a participant provides (sum: amounts shared by weight, kept; mean: weighted mean), replays providing their mappings and declaring every set and variable of their frames; coupling conformance sessions (conformance/coupling: two_scales, two_data_structures; generate.py; fspm-tf couple-conformance) passed by the Python, Julia, C++ and Java participants over ZeroMQ and a folder; partial frames (update) in every codec and dump; the C++ participant (fspm_tf/coupling.hpp, libzmq) and the Java one (org.openalea.fspmtf.coupling, JeroMQ optional); CPlantBox's growing log and GroIMP's log (four runs) replayed as participants; the frame tools skip conformance/coupling; the coordinator's lookups vectorized and the Python codec's enum and text columns encoded without per-row loops (a 100,000-segment step: 99 ms instead of 230 ms); CI jobs for all of it
…nal companion of a sequence (spec/schema/views.schema.json), named configurations of layers; openalea.fspm_tf.views (reading, writing, checking against a frame, the selection, display options); the ParaView reader's Views and Configuration, one block per layer holding its entities only (frame_to_vtk(frame, views=, configuration=)); the macros apply_fspm_tf_views.py and save_fspm_tf_views.py; tests
…JSON parsed, each column and mesh decoded on first access (LazyColumns, LazyList; decoded columns are copies), frame.close() or a with block; the ParaView reader and replays use it (a replay decodes only the columns links use); the folder transport deletes each message once read unless the session keeps them (keepMessages in the welcome, Coordinator(keep_messages=), --keep-messages), in the Python, Julia, C++ and Java participants, the conformance sessions checking the folder is left empty; tests
…he reading guide's example at 0.3, the coupling schema and §11 in its path; the README (coupling sessions, schemas, conformance sessions, what each binding holds); the index page; the design note's status, §4.6 and §5.2 updated to what was decided (GLB partial frames over ZeroMQ or a folder, not Arrow; codecs in this repository); P4 and P5 done; 'draft for 0.3' wording removed; the API page lists LazyColumns, LazyList and the conformance module
…DE: isolate in the view or a new panel with its own camera) and clear_fspm_tf_selection, the picked cells grown to their entity at the scale with what it contains across layers, hidden layers shown for the selection only; the reader gives each cell its containing entities' ids and each block its data structure and scales; views checked in ParaView 6.2 (pvbatch, check_in_paraview.py --design, manual): no jsonschema needed, block names, cell data, colour map presets, ColorBy without an array, the representation saved, configurations switched; tests
…): ParaView's current selection taken at creation (a Selection input, Copy Active Selection), its Scale a drop-down of the frames' scales, the picked cells grown in every layer, following time steps; show_fspm_tf_selection the one macro left (isolate or a split panel, run again to go back); select_at_scale and clear_fspm_tf_selection removed; checked in ParaView 6.2 (pvbatch); tests
….encoding3d and the encoding3d command, the Julia package encoding3d (and its extensions), the C++ library encoding3d (namespace, headers, targets, tools), the Java packages org.openalea.encoding3d (Encoding3dException, the GroIMP plugin encoding3d and Encoding3dExport), ENCODING3D_ environment variables and CMake options, the ParaView reader and macros, the docs and the URLs; the conformance files written again (their generator)
…selection (SelectIDs needs a representation; it failed under pvpython and pvbatch)
…opening from views.json (per-block colour variable, colour map, opacity, visibility; no macro); Save Views and Save As on the reader, Isolate, Show In Panel and Put Back on Select at scale (the macros removed); roots drawn as tubes by the reader; paraview/README.md, the user's how-to; tests, docs
…hid through their scalar bar (ParaView 6.2's representations have no SetScalarBarVisibility); check_in_paraview: a legend shown before Isolate, Show In Panel after Isolate, the active view kept after a screenshot
…e, ParaView, packing and the measured compressions, how a platform writes instances, derived fields and parts: a reduced network's eliminated nodes, a coarse cell's linear recovery), the API reference, the platforms' page, viewing and checking; tutorial 1's sections 5 (sections as instances of one shape, their cells' water potential a derived field) and 6 (the sequence packed into one file); README, governance, CHANGELOG
…ck on a platform's run (its last frame with derived fields, a few instances selected at their owners' scale, the rebuilt field compared with evaluate, isolated, put back)
…quence packed stored, deflate, lzma, and with every ZIP64 record; rewritten only when their members change); compare-all checks the instances' dumps (frames, evaluated derived fields within 1e-12 relative, embedded, parts, each archive's frames; --skip-instances for a 0.3 reader); the Python run dumps them and writes the instances as a sequence and an archive; the action validates written archives
…s), shared parts (Template, Operator; SHA-256 keys; embedded or parts/<key>.glb; add_part, frame_part), evaluate (dense, csr, solve by LU), .fspm.zip archives read and packed (minizip-ng: ZIP64, deflate, lzma; found or fetched), the index's parts; its conformance run dumps the instances and archives and writes the instances with its own parts; tests
…ds), shared parts (Template, Operator; SHA-256 keys; embedded or parts/<key>.glb; Parts.add, Parts.part), Instances.evaluate (dense, csr, solve by LU), .fspm.zip archives (ZIP64 central directory read here, deflate by java.util.zip, lzma by xz-java; packed stored or deflate by ZipOutputStream), the index's parts; its conformance run dumps the instances and archives and writes the instances with its own parts; InstancesTest
…lds), shared parts (Template, Operator; SHA-256 keys; embedded or parts/<key>.glb; add_part!, frame_part), evaluate (dense, csr, solve by sparse LU), .fspm.zip archives (ZipArchives.jl: ZIP64, stored, deflate, packing; lzma members by liblzma's raw decoder through XZ_jll), the index's parts; its conformance run dumps the instances and archives and writes the instances with its own parts; tests
…what each packs), the specification's §9 (archives/, the dumps compare-all compares), platforms, instances, README, CHANGELOG; compare's docstring for Sphinx
…ock, its instances placed by Select at scale for the entities it selects only (grow_entities, instance_rows_at; Expand Hidden Instances draws them all); instances blocks with the ids, rows and colour variables only (All Instance Arrays for every variable), arrays handed to VTK without copies; one frame read shared by the reader and the filter (open_frame, last two) and derived fields rebuilt once per open frame; Select at scale: default Scale 'picked' (views.picked_scale), the <Visibility replace_input="0"/> hint, Show In Panel hiding the selection Apply drew (Put Back shows it), missing_instances said once per time step with the plants that have some, rebuild errors raised; colouring among the arrays present (block_displays main_array) and redrawn when they change; placed_meshes' mesh an index; tests; check_in_paraview --large
…ance Arrays, Expand Hidden Instances, the picked Scale, choose a Scale and Apply then the buttons, Show In Panel, the no-sections message, --large), using.md, python.md (frame_period="1 d", the reader's frames), implementations.md (metafspm writes 0.4; its extras read by metafspm alone, absent_rows/none_rows), CHANGELOG
…es the archive aside, checks it (check_archive: every file of the sequence a member and nothing else, its size and CRC-32 read back, the archive valid with 0 errors), moves it into place, then removes the folder; a failed check keeps the folder and raises ArchiveCheckError; a folder holding other files refused before writing; encoding3d pack --keep-folder. validate_sequence takes a .fspm.zip (its parts were reported missing). Specification §8: an adaptive grid's cell refined again is the same entity and may have its id again, with the same level and index; the validator checks that (use case 1's soil: 3 errors -> 0). Tests, conformance run and ParaView check keep their folders, tutorial 1, docs, CHANGELOG
…write through set_values and read with values_at and column (g.property() is a read-only mapping), the plant models are CompositeModels with parts (tutorial 3's joining its session after super().__init__), the plants planted with planting([Planting(depth=0.01)]), time_step="6 h" and frame_period="step" (a number is seconds), scene.simulate with pack_at_finish=True (the frames read from frames.fspm.zip, the folder removed); 2a run (0 errors), 3 run with a Python stand-in for carbon.jl (no Julia here); READMEs (frames.fspm.zip, encoding3d's clone on other_platforms_bindings)
…(glb.write: the header, the JSON chunk, each buffer view from its array's memory and its padding); BufferBuilder keeps byte views of the arrays, glb.pack joins the same pieces once (to_bytes, part_bytes). Files byte-identical (conformance files, tests; metafspm use case 1's frames); 8 plants at day 12 (39 MB): the write's peak +0.19 -> +0.06 GB, with sections +0.24 -> +0.12 GB; tests
…s ignored by the packaging template's parts/ line (.gitignore now excepts it), so a checkout had the 0.4 instance scenes without their five parts and every codec's instance tests and conformance failed in CI (a clean clone: Python 30 failed -> 241 passed)
…CSR and solve operators), conformance_run.py among the recipe's test source files (test_compare), the evaluated.json files compared within the protocol's relative 1e-12 (their last digits follow the platform's BLAS: CI's OpenBLAS gave -0.1209000343524562 for -0.12090003435245619), every other committed file still byte for byte
…ata structure) leaves out its empty children in every codec (glTF-Validator: one error per operator part, failing the codecs' conformance and the validate job); operator parts' keys change, conformance instances, expected values and archives regenerated; CI: the coupling generator's JSON with LF line endings on Windows, the chosen instances' evaluation within 1e-12 (MKL), the validator steps printing each failing file's errors; CHANGELOG
…and the Python codec's conformance (the instances' CSR operators), numpy for the Julia coupling job (pip's dependencies are empty, numpy and jsonschema being conda's)
…ues (their last digits follow the platform's BLAS: CI's -0.11220714531088972 for -0.11220714531088974), which test_conformance compares within the protocol's 1e-12; every other file still byte for byte
… authors, license, repository, documentation, keywords)
….toml too); stand-ins for the ORCIDs, affiliations and the concept DOI, to fill before a release is archived
… a release is archived) instead of the DOI copied from mtg's
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Propose binders to each platforms to begin collaborations Rename it

1 participant