Skip to content

Latest commit

 

History

History
835 lines (558 loc) · 27.6 KB

CHANGELOG.md

File metadata and controls

835 lines (558 loc) · 27.6 KB

Change Log


To be released


0.7.0

This update contains breaking changes

Workspace

new:

  • add a shell.nix file to handle render libs by @imrn99 in #219

refactor:

  • update issue & PR templates by @imrn99 & @dssgabriel in #229
  • simplify and improve documentation consistency by @imrn99 in #263

deps:

  • revert some upgrades that broke the render menu by @imrn99 in #206
  • update thiserror requirement from 1.0.64 to 2.0.3 by @dependabot in #221
  • bump codecov/codecov-action from 4.6.0 to 5.0.7 by @dependabot in #242
  • chore(deps): bump codecov/codecov-action from 5.0.7 to 5.1.2 by @dependabot in #258
  • chore(deps): update itertools requirement from 0.13.0 to 0.14.0 by @dependabot in #262

Published crates

honeycomb-core

core definitions and tools for combinatorial map implementation

new:

  • add 3D geometry primitives by @imrn99 in #181
  • add struct wrappers around inner storages by @imrn99 in #208

refactor:

  • change impls of the fetch_<CELLS> methods by @imrn99 in #204
  • improve grid building routines by @imrn99 in #209
  • change underlying implementation of CMap2 to add sync mechanisms by @imrn99 in #201
  • turn internal CMap2 items into structs by @imrn99 in #223
  • rework sew methods to allow for more control by @imrn99 in #224
  • update AttributeUpdate methods returns by @imrn99 in #237
  • rework attribute semantics by @imrn99 in #226
  • rewrite grid building routines by @imrn99 in #241
  • add new variants to OrbitPolicy by @imrn99 in #238
  • move OrbitPolicy to the components submodule by @imrn99 in #250
  • delete the i-cell collection structures by @imrn99 in #251
  • update basic operations of CMap2 by @imrn99 in #252
  • delete the utils featureby @imrn99 in #254
  • delete the io feature by @imrn99 in #255
  • make dimension an argument of sew/link methods by @imrn99 in #253
  • update sew variants by @imrn99 in #261

fix:

  • use transactional ID computation in atomically_two_sew by @imrn99 in #222
  • elude lifetimes where possible by @imrn99 in #244

honeycomb-kernels

implementations of meshing kernels using combinatorial maps

new:

refactor:

  • use prealloc methods for edge splitting by @imrn99 in #203
  • add intermediate compute before step 2 by @imrn99 in #205
  • improve dart preallocation code by @imrn99 in #211
  • rewrite step 1 to enable parallelization by @imrn99 in #210
  • clean-up module code by @imrn99 in #216

Others

honeycomb-benches

core structures & methods benchmarks

new:

  • add fetch_... methods benchmarks by @imrn99 in #202
  • add a criterion bench for triangulation functions by @imrn99 in #207
  • add binaries to bench scaling of non-conflicting transactions by @imrn99 in #240

refactor:

  • unify naming & update doc by @imrn99 in #218

honeycomb-guide

mdbook-based user guide with information regarding usage & non-code-related aspects of the project

new:

  • add STM usage example by @imrn99 in #248

refactor:

  • update user guide & Pages deploy by @imrn99 in #217

0.6.0

This update contains breaking changes

Workspace

new:

  • add a new Cargo profile dedicated to profiling (e.g. perf, flamegraphes, ...) by @imrn99 in #157

refactor:

  • replace some explicit panic! and unwrap calls with cleaner alternatives by @imrn99 in #174 and #176
  • cleanup error enums by @imrn99 in #190
  • replace regular prints with prints to stderr for warnings by @imrn99 in #192
  • turn edge-splitting methods into kernel-crate functions by @imrn99 in #193

deps:

  • bump codecov/codecov-action from 4.5.0 to 4.6.0 by @dependabot in #182
  • minimize dependency tree by @imrn99 in #165
  • bump egui_dock from 0.13.0 to 0.14.0 & bevy_egui from 0.29.0 to 0.30.0 by @imrn99 in #187
  • bump:
    • rustversion from 1.0.15 to 1.0.18
    • bevy from 0.14.1 to 0.14.2
    • bevy_mod_outline from 0.8.1 to 0.8.3

Published crates

honeycomb (new member, not yet published)

main crate

This is a reexport-only crate used to provide a single, clean user-facing API

added in #160

honeycomb-core

core definitions and tools for combinatorial map implementation

new:

  • add utility method set_beta to CMap2 by @imrn99 in #170
  • add no-allocation variants of split_edge & splitn_edge by @imrn99 in #180

refactor:

  • reorganize crate content and add a prelude module by @imrn99 in #159
  • replace from_ *function of CMapBuilder by trait impls by @imrn99 in #163
  • remove Orbit2::is_isolated by @imrn99 in #167
  • remove lifetime from OrbitPolicy & update AttributeBind by @imrn99 in #173
  • remove CMapError by @imrn99 in #171
  • improve some error enums by @imrn99 in #169
  • replace attribute-related panics with warnings by @imrn99 in #178
  • remove panics from manager storage accesses by @imrn99 in #179

fix:

  • correct face computation in serializing code by @imrn99 in #168

honeycomb-kernels

implementations of meshing kernels using combinatorial maps

new:

  • implement polygon triangulation routines by @imrn99 in #177
  • setup grisubal benchmark framework by @imrn99 in #164

honeycomb-render

visualization tool for combinatorial maps

refactor:

  • rewrite render tool using bevy instead of wgpu by @imrn99 in #144

Others

honeycomb-benches

core structures & methods benchmarks

new:

  • setup grisubal benchmark framework by @imrn99 in #164
  • add scripts to streamline the benchmarking process by @imrn99 in #191
  • add benchmarking tools for the grid building routines by @imrn99 in #194

refactor:

  • remove irrelevant benchmarks by @imrn99 in #195

honeycomb-examples

project examples

  • improve and filter-out examples by @imrn99 in #156

honeycomb-guide

mdbook-based user guide with information regarding usage & non-code-related aspects of the project

refactor:

  • update user guide structure & content by @imrn99 in #161
  • update rustdoc & user guide by @imrn99 in #166

0.5.0

This update contains breaking changes

Workspace

fix:

  • fix errors introduced by rand update by @imrn99 in #130
  • indent lists in doc correctly to comply with clippy by @imrn99 in #126

deps:

  • bump codecov/codecov-action from 4.4.1 to 4.5.0 by @dependabot in #112
  • update iai-callgrind requirement from 0.11.0 to 0.12.0 by @dependabot in #133
  • bump vtkio version to 0.7.0-rc1 & disable its default features by @imrn99 in #142
  • update iai-callgrind requirement from 0.12.0 to 0.13.0 by @dependabot in #145

Published crates

honeycomb-core

core definitions and tools for combinatorial map implementation

new:

  • add splitn_edge method to CMap2 by @imrn99 in #127
  • add remove_storage method to AttrStorageManager by @imrn99 in #128
  • add origin offset directly to grid descriptor/builder by @imrn99 in #148

refactor:

  • rewrite Vertex2 & Vector2 as tuple structs by @imrn99 in #124

fix:

  • extend generic attribute storages when adding darts by @imrn99 in #122

honeycomb-kernels (new member)

implementations of meshing kernels using combinatorial maps

new:

  • add an overlay grid type algorithm: grisubal; it takes a 2D boundary as input and return a combinatorial map of the boundary, captured in an orthogonal grid; an optional clipping step is also implemented
    • this was implemented in PRs #109, #111, #113, #115, #114, #116, #123, #119, #129, #131, #134, #135, #136, #137, #138, #140, #141, #143, #146, #147, #149, #151, and #152

test:

  • add coverage using basic geometries by @imrn99 in #139

honeycomb-render

visualization tool for combinatorial maps

fix:

  • add condition over shrink dir to prevent some crashes by @imrn99 in #121

Others

honeycomb-examples

project examples

new:

  • add example for the grisubal kernel by @imrn99 in #120

honeycomb-guide

mdbook-based user guide with information regarding usage & non-code-related aspects of the project

new:

  • add honeycomb-kernel and grisubal pages by @imrn99 in #117 and #153

0.4.0

This update contains breaking changes

Workspace

  • update visuals in code documentation & user guide by @imrn99 in #95
  • bump various actions' versions

Published crates

honeycomb-core

core definitions and tools for combinatorial map implementation

  • implement a generic attribute system to bind custom data structures to topological entities of a CMap2
    • implement AttrStorageManager struct and AttributeStorage trait by @imrn99 in #89
    • replace standalone impl blocks of attribute collections by @imrn99 in #92
    • add UnknownAttributeStorage trait for attribute-agnostic methods by @imrn99 in #96
    • replace Any by UnknownAttributeStorage to handle collections in attribute manager by @imrn99 in #97
    • add storage manager to builder by @imrn99 in #102
    • add generic storage manager to CMap2 by @imrn99 in #103
  • change internal Vtk building routine to return a Result by @imrn99 in #91
  • expand BuilderError with more specialized variants by @imrn99 in #91

0.3.1

Workspace

  • remove the feature matrix from the test CI, which now uses the --all-features option

Published crates

honeycomb-core

core definitions and tools for combinatorial map implementation

new:

  • add CMap2::split_edge for future algorithm implementations by @imrn99 in #83
  • add CMapBuilder structure by @imrn99 in #87

refactor:

  • deprecate old constructors by @imrn99 in #88

honeycomb-render

visualization tool for combinatorial maps

fix:

  • update aspect ratio to prevent deformation of the rendered map by @imrn99 in #85
  • shrink face relatively to their original sizes by @imrn99 in #86

Others

honeycomb-benches

refactor:

  • update and fix benchmarks by @imrn99 in #84

0.3.0

New changelog format!

Workspace

  • rename non-published members' folder name (#77)
  • bump various dependencies' version & update code accordingly (#70, #81):
    • iai-callgrind from 0.10.2 to 0.11.0
    • smaa from 0.13.0 to 0.14.0
    • wgpu from 0.19.4 to 0.20.0
    • winit from 0.29.15 to 0.30.0
  • implement nightly conditional compilation for doc generation (#66)

Published crates

honeycomb-core

core definitions and tools for combinatorial map implementation

new:

  • implement basic I/O logic for CMap2 using the vtkio crate (#73, 75)
    • the scope of the support is detailed in the Rust Doc
    • new method & function are available when enabling the new io feature
  • add a new feature, io, used to gate the implementation of VTK I/O code (#73)

refactor:

  • remove the FloatTypealias and the single_precision feature (#74, #76)
  • replace CoordsFloat implementation blocks to automatize implementation for all types that fit the traits requirement (#68)
  • remove FloatType from the public API (#68)
  • change some main methods return type to have better overall consistency (#67):
    • Vector2::normal_dir now returns a result instead of potentially panicking
    • CMap2::vertex now returns a result instead of panicking if no associated vertex is found
  • remove deprecated items from the last release (#64):
    • AttrSparseVec::get_mut, AttrCompactVec::get_mut
    • utils::square_cmap2, utils::splitsquare_cmap2

fix:

  • correct the usage of epsilon values for floating point numbers comparison in tests (#79)

honeycomb-render

visualization tool for combinatorial maps

refactor:

  • replace the Runner struct by a simpler launch function (#70)
    • the function takes the same parameters that were provided to Runner::run
  • rewrite & reorganize most of the internal code due to winit update (#70)

Others

honeycomb-examples

project examples

new:

  • add three new examples to illustrate the new I/O features of the core crate (#73, #75)

honeycomb-guide

mdbook-based user guide with information regarding usage & non-code-related aspects of the project

  • update usage information & content (#82)

0.2.1

Workspace

  • bump rand version from 0.8.5 to 0.9.0-alpha.1 & update code accordingly (#63)

New features

honeycomb-core

core definitions and tools for combinatorial map implementation

  • expand on tests of the core crate (#49)
  • implement the GridBuilder struct as a better, more versatile way to generate grid maps (#60)

honeycomb-examples

project examples

  • add the following examples:
    • render_squaremap_parameterized (#60)
    • render_squaremap_shift, based on benchmarking code (#52)
    • render_squaremap_split_diff, based on benchmarking code (#52)
    • render_squaremap_split_some, based on benchmarking code (#52)

honeycomb-guide

mdbook-based user guide with information regarding usage & non-code-related aspects of the project

  • update usage instructions (#50)
  • add a References section to the index (#61)

honeycomb-render

visualization tool for combinatorial maps

  • add code to properly render faces instead of using implicit coloring (#54)
    • this implied creating new internal structures for efficiency purposes
  • add a cap on the number of frames rendered per second to fix speed disparity induced by machine performance (#56)

Refactor

honeycomb-core

  • mark as deprecated:
    • AttrSparseVec::get_mut, AttrCompactVec::get_mut (#49)
    • utils::square_cmap2, utils::splitsquare_cmap2 (#60)
  • fix various clippy::pedantic lints that were temporarily left as allowed (#51)
  • fix some unwanted behaviors:
    • attribute re-insertion in CMap2::two_unsew (#55)
    • not-panicking execution paths of CMap2::one_sew & CMap2::two_sew (#59)

honeycomb-examples

  • fix memory_usage Rust code and associated script (#55)

honeycomb-render

  • update render code to:
    • skip darts and faces that have only one or less vertex defined (#59)
    • draw proper arrows instead of triangles (#62)
    • draw beta2 function as diamonds (#62)
  • edit the shader to color triangles according to the entity they form (#62)
  • add a key binding (F1) to close the render window (#62)

0.2.0

This update contains breaking changes

New features

honeycomb-benches (new)

core structures & methods benchmarks

  • move and update all benchmarks previously defined in honeycomb-utils to this crate (#31, #36)

honeycomb-core

core definitions and tools for combinatorial map implementation

  • add two new structures for 2D spatial representation: Vertex2 & Vector2, which act as wrappers around a Coords2 value (#25)
  • remove the Vertex2 type alias in favor of the new structure (#25)
  • add a new public module, utils, compiled when the utils feature is enabled (#31)
    • the module contains functions previously defined in the honeycomb-utils crate
  • add two new traits, AttributeLogic and AttributeSupport, for basic attribute genericity (#33)
  • implement new attribute traits for the Vertex2 struct (#33)
  • add two storage structures for generic attributes AttributeSparseVec and AttributeSparseVec (#34)
  • add collection structures that can be used to retrieve all cells of a given dimension of a map (#36)

honeycomb-examples (new)

project examples

  • move all examples previously defined in honeycomb-utils & honeycomb-render to this crate (#29)
  • update examples
    • to reflect mark removal (#24)
    • to fix import path of utility functions (#31)
    • to fit new CMap2 methods signature (#36)

honeycomb-guide

mdbook-based user guide with information regarding usage & non-code-related aspects of the project

  • add pages for the new project members (#32)

Refactor

honeycomb-core

  • change visibility of all honeycomb-core modules to private & re-export types accordingly (#23)
  • rename TwoMap/Orbit to CMap2/Orbit2 for consistency (#23)
  • remove marks table from DartData (#24), resulting in a signature change for many functions and structures (anything with const N_MARKS: usize) '
  • update code to make use of the new 2D representation structures (#25)
  • reorganize internal module structure (#27, #42)
    • create modules cells, spatial_repr, attributes
    • move orbits, coords, vector, vertex, inside new modules
    • clean-up source files
  • rename the benchmarking_utils feature to utils (#31)
  • rework the structure and interface of CMap2 (#36)
    • implement the new cell id computation logic
    • replace the vertex storage with an AttributeSparseVec
  • add support for incomplete vertex orbits in Orbit2 implementation (#36)
  • remove darts, embed modules and their content (#42)
    • move ID aliases to cells and cells::collections modules
  • update the CMap2 quickstart example (#43)
  • change the CMap2::n_darts method's return type to be more intuitive (#45)
    • add the CMap2::n_unused_darts method to provide an alternative to the old method
  • remove the CMap2::set_beta method because of the lack of valid use case (#45)
  • gate the CMap2::set_betas behind the utils feature (#45)

honeycomb-guide

  • update all references to renamed types (#23)
  • remove honeycomb-utils page (#32)
  • update index, summary, core & render pages (#32)

honeycomb-render

visualization tool for combinatorial maps

  • update code:
    • to reflect mark removal (#24)
    • to make use of the new 2D representation structures (#25)
    • to fit new CMap2 methods signature (#36)

honeycomb-utils (removed)

utility routines used in benchmarking and testing

  • remove this crate in favor of:
    • a new member dedicated to benchmarks (#31)
    • a new member dedicated to examples (#29)
    • a new utils module in the core crate (#31)

0.1.3

New Features

honeycomb-core

core definitions and tools for combinatorial map implementation

  • Orbit<'a, const N_MARKS: usize, T: CoordsFloat> - Generic implementation for 2D orbit computations. The structure itself only contains meta-data, the orbit computation is done through the Iterator trait implementation (#18)
  • OrbitPolicy<'a> - Enum used to specify the beta functions used by an orbit. It currently does not support compositions (#18)
  • New (temporary?) method for TwoMap: beta_runtime. It works by redirecting to the original beta method, using match block and a beta identifier provided at runtime (#18)

honeycomb-guide

mdbook-based user guide with information regarding usage & non-code-related aspects of the project

  • update content of the workspace section to include new member (#19)
  • update honeycomb-core's page content (#19)

honeycomb-render (new member)

visualization tool for combinatorial maps

  • implement TwoMap rendering code
  • add examples illustrating basic usage

0.1.2

Repository Changes

  • remove Cargo.lock file from the repository
  • add changelog file (this one!)

New Features

honeycomb-core

core definitions and tools for combinatorial map implementation

  • Coords2<T: CoordsFloat> - Custom 2D coordinates representation using a generic type for inner value.
  • refactor two attributes of TwoMap:
    • free_darts: Vec<DartIdentifier>: rename to unused_darts & change type to BTreeSet
    • free_vertices: Vec<VertexIdentifier>: rename to unused_vertices & change type to BTreeSet

honeycomb-guide

mdbook-based user guide with information regarding usage & non-code-related aspects of the project

  • update usage instructions

honeycomb-utils

utility routines used in benchmarking and testing

  • update content according to features introduced in #15, #16

0.1.1

Repository Changes

  • new CI workflow:
    • bench: run hardware-counter based benchmarks on new version release

New Features

honeycomb-core

core definitions and tools for combinatorial map implementation

  • introduce benchmarking_utils feature, used to compile additional methods & trait implementation useful for benchmarking

honeycomb-guide

mdbook-based user guide with information regarding usage & non-code-related aspects of the project.

  • complete (partially) definition sections (#5)
  • add documentation for the core implementations (#5)
  • add usage instructions (#12)
  • add honeycomb-utils section (#12)

honeycomb-utils (new member)

utility routines used in benchmarking and testing

  • benchmarks for the TwoMap structure and methods (#10, #11)
  • utility functions for benchmarking and testing.
  • example of memory usage information for a given TwoMap

Fixes

  • typos by @cedricchevalier19 (#9)

0.1.0

Repository Changes

  • new CI workflows:
    • doc: build & deploy user guide and code documentation
    • rust-test: run Rust tests, format checker & linter (clippy)

New Features

honeycomb-core (new member)

core definitions and tools for combinatorial map implementation

  • TwoMap - basic 2D combinatorial map implementation
  • full documentation support & deployment

honeycomb-guide (new member)

mdbook-based user guide with information regarding usage & non-code-related aspects of the project