All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
-
- Documentation is missing, though comments are very well.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in old tags -> probablycargo yank VERSION
needed
- Replace existing tags with ones referring to
-
-
-
This repository works solid and is used for research. However, it was a student-project and a master-thesis and fulfilled its main purpose perfectly. The amount of changes since the last version are very extensive. Because of this, the changes are not described here.
- Documentation is missing, though comments are very well.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in old tags -> probablycargo yank VERSION
needed
- Replace existing tags with ones referring to
- Add metric-access in graph to all metrics instead of working around it via unnecessary and non-performant access-methods.
- Add licenses of all dependencies to new license (see changed).
- Update
README.md
by adding cgal-installation. - Add notes to
notes.md
about routing-heuristics via population-data and add some info from github-issues. - Add balancer.rs and module
exploration.rs
, which are unfinished yet, but are causing the license-change toGPL
when compiled with the featuregpl
.
- Improve graph-access using Iterators more efficiently.
- Improve routing- and cost-usage.
- Improve access to path-costs of a (shortest) path.
- Implement path-flattening to support unified shortcut-paths and to improve path's cost-accuracy.
- Refactor
Cargo.toml
to support new licensing. - Replace feature
osmgraphing
by featuregpl
to support new licensing. - Refactor configs completely, also differentiating between implementation, unaccessable from outside (like the raw-configs), and the module, accessable.
This makes the implementation more flexible and improves maintenance, especially when generating metrics from others.
- Rename
generating
towriting
and use the wordgenerating
for generating metrics. Further, rewrite thegraph-writing-module
. - Remove collected config and use each sub-config (
parsing
,writing
,routing
) separatedly. - Routing-config has to be created after the graph has been parsed, to have the parsing-config being up-to-date.
- Change the yaml-syntax to be much more (probably
100 %
) explicit and intuitive, leading to a very explicit and verbose implementation, which is easy to extend in complex manners.- Separate parsing graph-data from generating graph-data.
This also includes refactoring the graph-builder a lot.
- At first, the new approach creates the graph as provided, before the specified metrics will be generated. The parsing-config in the graph is being updated during the generation-process.
- A new feature with this approach is the conversion of metrics (like
meters
tokilometers
) and the manipulation of the graph after it has been created.
- Update all existing yaml-files.
- Update the binary
osmgraphing.rs
and merge the . - Update the parsers (
fmi
andpbf
) accordingly.
- Separate parsing graph-data from generating graph-data.
This also includes refactoring the graph-builder a lot.
- Rename
- Don't make things too abstract and use node-indices for computing best paths (instead of created nodes).
- Return
Err(String)
in main-methods instead of printing the error and callingstd::process::exit(1)
to improve readability in certain cases, like testing, when the printed output is swallowed automatically. - Refactor helpers.
- Update tests.
- Documentation is missing, though comments are very well.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in old tags -> probablycargo yank VERSION
needed
- Replace existing tags with ones referring to
- The link to
doc.rs
is hardcoded tomajor.minor.patch=0.y.z
becausedocs.rs
chooses version1.0.0
though it's yanked.. - The explorator compares
vec![f64]
, which only compares the first number of each vector. Replace this by using a helper-methodle
(lower-equals) iterating over the values. - When correcting shortcut-indices after removing duplicated edges, the iteration is done forward, but should be done backward. Otherwise, it leads to wrong shortcuts, loop-references and index-overflows.
- The binary
mapgenerator
is now a part of the binaryosmgraphing
using a flag. - Replace
LICENSE
byLICENSE.md
- New license separating code relating to Apache and GPL.
- Move code of module
units
into separate cargo-cratekissunits
.
- Fix scripts (some bash-syntax has changed?).
- Add link for
v0.12.1
inCHANGELOG.md
.
- Change style of LICENSE and write it with
markdown
.
- Documentation is missing, though comments are very well.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in old tags -> probablycargo yank VERSION
needed
- Replace existing tags with ones referring to
- The link to
doc.rs
is hardcoded tomajor.minor.patch=0.y.z
becausedocs.rs
chooses version1.0.0
though it's yanked.. CHANGELOG.md
has a missing link forv0.12.1
.
- Support generating
fmi
-files withsrc
- anddst
-indices as column. - Extend configs
- Implement config-parser's categories separate from config-generator's categories to guarantee ideal support.
- Add
is-ch-dijkstra
to routing-config (needing a keyword formetrics
). - Extend parser to check config before starting parsing.
- Support graphs created via contraction-hierarchies and efficient routing on these graphs.
- Extend the bidirectional Dijkstra to support normal and contracted graphs efficiently with one implementation (using a flag and lazy bool-evaluation).
- Add contraction-hierarchies-level to nodes.
Further, let the graphbuilder sort edge-ids by level to allow
break
instead ofcontinue
when iterating over leaving-edges in the bidirectional CH-Dijkstra. - Add
ProtoShortcut
s and replaceProtoEdge
s. - Add very basic parsing-tests.
- Add
isle-of-man.ch.fmi
and itsconfig
, and updatepbf-to-fmi.yaml
respectively. - Add
small.ch.fmi
and itsconfig
.yaml` respectively. - Extend parser by removing duplicates.
- Add duplicates to some test-maps.
- Add contraction-hierarchies-level to nodes.
Further, let the graphbuilder sort edge-ids by level to allow
- Extend the graph to access shortcuts and node-level quickly and memory-efficient (via offsets). Make graph-output prettier and add shortcuts.
- Extend the graphbuilder to build shortcuts and their shortcuts.
- Extend the graphbuilder to build in different stages. This allows a better naming-convention for intermediate proto-edge-types and improves maintenance a lot.
- Extend the bidirectional Dijkstra to support normal and contracted graphs efficiently with one implementation (using a flag and lazy bool-evaluation).
- Add script for doing benchmarks.
- Add script for creating flamegraphs.
- Add many defaults
- Move defaults for
SmallVec
-inline-size into a new submodulecapacity
. - Add metric-unit-defaults and use them overall.
- Add realistic accuracy-limits (
1e-6
is way enough, as explained in the respective moduledefaults
, andEPSILON
could easily fail due to rounding-errors). - Add capacity-defaults, like the bytes-limit per chunk when building the graph.
- Move defaults for
- Add helpers
- Add trait
MemSize
considering runtime-dependencies like the number of metrics in a edge.
- Add trait
- Add units and test-cases, and replace many places, where units are relevant.
- It could make sense to export units as own module (Kilometers, Meters, Seconds, Minutes, Hours, KilometersPerHour)
- Config-parser-category
Ignore
is allowed to have the idIgnore
, which may occur multiple times. For this, no other config-parser-category is allowed to have an idIgnore
. It's not hardcoded but named after the enum-variant. - Edit generated
fmi
-map-files.- Let generator print ids of the provided config-edge-categories, not their categories.
- Let generator print
Ignore
-column as_
.
- Make graphbuilder much more efficient in performance and memory (both around
25 %
).- Replace
BTreeMap
of graphbuilder byVec
and a handy (forced) way of adding graph-components. This needs a replacement of node-ids by node-indices during build-phase. - Replace
f32
byf64
thanks to the new optimized graphbuilder.
- Replace
- Slightly update repo, updating code-of-conduct and contributing slightly, and replacing
Apache-2.0-LICENSE
-description by a shorter, more general description of it (including purpose). - Update all maps to be up-to-date (March 14th, 2020).
- Extend parser by some new special-cases (also from older maps).
- Change how random routes are generated in binary
osmgraphing
, using generators (closures) now. - Make graph-access handier by adding/editting functions like
MetricAccessor::get_more(...)
. - Move
SteetType
-documentation into code (where the defaults are set):)
. - Implement
routing::paths::Path
as vector of edge-indices.- This improves efficiency, since no extra intermediate node-mapping is needed, which has to be remapped to edges afterwards.
- Costs are not stored in the path anymore, but can be calculated. One reason for this are shortcuts, which could have slightly different cost than their underlying edges due to rounding-errors. Thanks to the edge-indices in the path, the path is more flexible. It is possible to ask for every possible metric-combination, even for those, which are not optimized by the Dijkstra.
- Paths can be flattened.
- Cleanup/refactor module
helpers
andtests
a little.- Move dijkstra-testing and dijkstra-comparison into
helpers
, reducing code-duplicates in tests. - Extend some tests or refactor some tests.
- Move dijkstra-testing and dijkstra-comparison into
- Documentation is missing, though comments are very well.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in old tags -> probablycargo yank VERSION
needed
- Replace existing tags with ones referring to
- The link to
doc.rs
is hardcoded tomajor.minor.patch=0.y.z
becausedocs.rs
chooses version1.0.0
though it's yanked..
- Remove
routing::paths::{VecPath, HashPath}
.
- Let scripts check
cargo fmt
before building, so user has to format code manually before running it with the script. - Using
Vec::splice(...)
inDijkstra
is too expensive in performance, hence it has been replaced byVec::resize(...)
. - Let binary
osmgraphing
exit with exit-code non-zero, if an error occurs (before, it just returned).
- Let generator add the
edge-metric-count
/dim
to afmi
-map-file.
- Make example-maps and -configs prettier.
- Documentation is missing, though comments are very well.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in old tags -> probablycargo yank VERSION
needed
- Replace existing tags with ones referring to
- The link to
doc.rs
is hardcoded tomajor.minor.patch=0.y.z
becausedocs.rs
chooses version1.0.0
though it's yanked.. - Comparing
f32
could be wrong due to hard criterion<= std::f32::EPSILON
. - When generating a map, only the parser-config's metrics are counted for setting the generated dimension, but it is possible to generate a map of less metrics.
- The build-script doesn't check format neither formats the code.
- In case of an error, the binary
osmgraphing
does return, with error-code0
, instead of returning a non-zero exit-code.
- Let generator convert metrics from kilometers in meters, because parser does read it in meters.
- Count param-indices correctly in
fmi
-parser by movingparam_idx
out of the loop-head to a mutable variable.
- Implement a
mapgenerator
generatingfmi
-map-files by converting from one format to another via config-files.- Implement a module
generating
. - Generate and test
isle-of-man.fmi
out ofisle-of-man.pbf
. - Implement a config for pbf-to-fmi-conversion.
- Implement a module
- Make config cleaner and more flexible.
- Add configs for every map, that is being tested.
- Add respective test-cases.
- Add support for
NodeCategory
s and add variants toEdgeCategory
s.
- Implement a nice trait for supporting file-extensions in a general way.
- Bring sense to TOC in
CHANGELOG.md
. - Update
README.md
. - Reduce default-inline-size of
SmallVec
from 5 to 4 (pub const SMALL_VEC_INLINE_SIZE: usize = 4
). - Move existing module
parsing
and new modulegenerating
into one module calledio
. - Extend parser's preprocessing by checking config.
- Make config cleaner and more flexible.
- Refactor config completely by separating strictly between
raw-config
(direct result of deserialization) and the final config-version. - Rename config-attributes and config-methods.
- Use
Option<...>
for large config-parts (parser
vsgenerator
vsrouting
). - Rename config
schema.yaml
toblueprint.yaml
to keep the keywordschema
free. - Split
EdgeCategory::NodeId
toEdgeCategory::SrcId
andEdgeCategory::DstId
. - Let config remember every id (expect for ignore).
- Refactor config completely by separating strictly between
- Update
notes.md
. - Update
ProtoNode
- Make graphbuilder's
ProtoNode
public. - Let
ProtoNode
remember abool
instead of anedge-count
for the info, whether it is part of an edge.
- Make graphbuilder's
- Simplify metric-access in graph.
- Documentation is missing, though comments are very well.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in old tags -> probablycargo yank VERSION
needed
- Replace existing tags with ones referring to
- The link to
doc.rs
is hardcoded tomajor.minor.patch=0.y.z
becausedocs.rs
chooses version1.0.0
though it's yanked.. - Problem: The generator doesn't convert metrics from kilometers in meters, but parser reads only meters.
- Problem: The
fmi
-parser is not counting the param-indices correctly. If the number ofEdgeCategory
s in a config-file forfmi
-files is higher than the number of elements provided by thefmi
-parser, the file cannot be parsed. This case is relevant sinceEdgeCategory
s don't have to be provided by the map-file, but could be calculated.
- Make config cleaner and more flexible.
- Simplify tests by creating configs directly (instead of using enum
TestType
).
- Simplify tests by creating configs directly (instead of using enum
- Let little build-script stop when error occurs.
- Remove use of
mul_add
to allow compiler to optimize loop (SIMD
). - Let graphbuilder remove edge-duplicates (same src, same dst and exactly, not approximately, same metric). This will also be efficient for shortcuts wrt contraction-hierarchies.
- Add support for routing-config using existing config-files or a str-parser.
- Let the new routing-config specify the metrics used by the
Dijkstra
. - Let the new routing-config specify preferences for each metric.
- Let the big Config being built by a ProtoConfig to support dependencies between Config-components (like
cfg.routing
, having a list of ids, depends on the mapping from id to idx, which is stored incfg.graph
). - Add tests considering the routing-config.
- Let the new routing-config specify the metrics used by the
- Support multiple metrics in
Dijkstra
, using dot-product with a preference-vector. - Little build-script for convenience.
- Create module
helpers
collecting handy functions and adding approximation-comparison forf32
(likeApproxEq
orApproxCmp
).
- Rename container-structs in graph to accessors, since they are only accessing, not owning the graph's data.
- Refactor and update
notes.md
. - Rename metric-categories in configs as the expected unit (like
Length
->Meters
), because explicit is better than implicit. - Extend binary
osmgraphing
- Move complexity from examples to binary.
- Make examples less complex.
- Let binary accept logging-level as cli-arg.
- Move module
defaults
fromnetwork
to a global module. Rename its content accordingly and extend it. - Refactor metrics
- Replace units
Meters
byKilometers
andMilliseconds
bySeconds
to keep numbers nearer to1.0
, which is nearer to the routing-preferences (alpha
). This, hopefully, improves routing-calculations' accuracy. - Let very small non-zero metrics, which are around (or exactly)
0.0
, bestd::f32::EPSILON
instead of1.0
. - Remove trait
Metric
for more simplicity. - Replace all metrics and calculations in
u32
byf32
. Coordinates are included and usesf32
from now. - Add tests for unit-conversions/-calculations.
- Replace units
- Improve memory-consumption by using inlining via
SmallVec
at certain spots.- Makes the use of
par_iter()
(instead ofiter()
) inpbf
-parser great again.
- Makes the use of
- Simplify graph-access-functions by replacing return-values with
panic!
s. - Rename all occurences of
type
tocategory
. - Make test-implementations fabulous again.
- Now, the main-test-files are separated and have a cleaner overview than the underscore-naming-convention and the first approach, where all tests have been in one single test-script.
- Create a module
helpers
containing general implementations, which can be used by the real test-functions. This makes the tests cleaner. - Testing configs is part of
parsing
-tests.
- Documentation is missing, though comments are very well.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in old tags -> probablycargo yank VERSION
needed
- Replace existing tags with ones referring to
- The link to
doc.rs
is hardcoded tomajor.minor.patch=0.y.z
becausedocs.rs
chooses version1.0.0
though it's yanked..
- Remove
Astar
completely, since this project will be used with multiple (custom) metrics and a graph contracted via contraction hierarchies. The old implementation is kept in akutgw
-branch. This makes the routing-module much less complex.- Remove
unidirectional Dijkstra
since thebidirectional Dijkstra
uses only one priority-queue, so overhead for short routes is, if existent, very small. - Remove generics, since their main-purpose has been supporting estimation-functions of
Astar
. For the cost-functions, use the metric-indices from the routing-config instead. - Remove some
CostNode
-implementations. - Remove
routing::factory
.
- Remove
- Remove graph-functions accessing specific metrics, so only one access-method remains.
- Replace branch
master
bynightly
to emphasize the difference betweenrelease
s andmaster
.
- Fix markdown-references in old headings in
CHANGELOG.md
. - Replace
std::process::exit(...)
bypanic!(...)
to improve feedback, e.g. in tests (where logging-messages are swallowed).
- Implement
zero()
forgeo::Coordinate
. - Implement trait
Metric
foru32
. - Add format-check to github-action (
cargo fmt -- --check
). - Support mulitple metrics, where the number is only known during runtime.
- Parse graph with config instead of map-file, which can be provided as
yaml
-file.- Let metrics have ids.
- Let routing-algorithms access graph-metrics with metric-idx.
- Add default-configs for maps
isle-of-man
andsimple-stuttgart
. - Describe every option in a full config (like a schema).
- Support for different vehicle-categories.
- Add tests for deserializing the default-configs.
- Add module
helpers
for general, handy implementations.- The struct
MapFileExt
(name before:Type
) is being moved from moduleparsing
to here. - Initializing logging-levels is being moved from examples and executables to here.
- In the future: dot-product
- The struct
- Implement clean ordering- and equal-traits for
CostNode
s in the routing-modules. - Let github-action upload results of benches in a folder called like the commit-hash.
- Let github-action deploy-and-tag only in a branch called
release
to removecontinue-on-error
- Improve memory-usage, performance and code-style of metrics and graphbuilding.
- Store metrics in the graph as
Vec<Vec<u32>>
(instead ofVec<Vec<MetricU32>>
or multiple vecs). - Access metrics as
u32
or access it as metric (likeMeters
). - Let graphbuilder add metrics with limited memory-usage.
- Consume metrics after adding them to graph, but keep ids.
- Sort proto-edges unstable to sort them fully in-place.
- Store metrics in the graph as
- Simplify indices-structs and metric-structs.
- Make underlying
u32
-values implicit (Struct(u32)
) instead of explicit (Struct { value: u32 }
). - Implement
Deref
andDerefMut
for them, replacingvalue()
,to_usize()
and similar.
- Make underlying
- Push proto-edges in graphbuilder as struct, not as separate attributes.
- Make parser-functions dependent of
self
to addpreprocessing
-phase.- The
fmi
-parser uses thispreprocessing
-phase to determine the node- and edge-ranges in the provided file using the counts at the beginning of afmi
-map-file.
- The
- Rename structs and fields, whose names based on "type", because this is a reserved keyword.
- Make
pbf
-parser single-threaded, since runtime's bottleneck is allocating memory many times. The runtime for parsing ways single-threaded and multi-threaded was identical (3:30 minutes
for multi-threaded,3:20 minutes
for single-threaded). The times are much faster, if the RAM has remaining capacity and doesn't have to use the swap-partition, which has been tested with a Germany-fmi-file with half the number of nodes as the Germany-pbf-file. - Refactor tests making their names uniformly.
- Documentation is missing, though comments are very well.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in old tags -> probablycargo yank VERSION
needed
- Replace existing tags with ones referring to
- The link to
doc.rs
is hardcoded tomajor.minor.patch=0.y.z
becausedocs.rs
chooses version1.0.0
though it's yanked.. CHANGELOG.md
has wrong markdown-references in old headings.
- Remove
MetricU32
. - Due to the new configs, edge-distances can not be calculated for some edges, which are missing this value, but only for all or none.
- Improve graphbuilder's memory-usage.
By estimating the amount of proto-edges referring to
200 MB
(could be changed in the future), the graphbuilder can add only these proto-edges before reallocating. This limits the needed memory-usage. - Add labels in benches to identify non-existent ids/indices.
- Add wiki-content to cargo-documentation and extend
README.md
- Add file
notes.md
for information, which- is not needed anywhere else.
- is future-documentation.
- is a future-issue.
- Stop ignoring
Cargo.lock
in.gitignore
. - Add playground-example for generating random numbers.
- Extend routing
- Implement a bidirectional Astar.
- Implement a real Dijkstra without estimation-function, meaning explicitly instead of implicitly having the estimation-function returning zero.
- Extend routing-factory accordingly.
- Benchmarks for routing-algorithms, added to github-actions as new job uploading results as artifacts.
- Add new testing-map with respective tests especially designed for baiting bidirectional Astar. It has paths between some nodes, whose best path wrt smallest weight is not the best path wrt hop-distance.
- Add random-route-pairs to astar-example basing on random numbers generated by a seeded uniformly distribution.
- Add trait
Display
as dependency for traitMetric
.
- Change graph-building
- Reduce additional memory-usage when building graph. Now, when data is not used anymore, but already stored in the graph, it is dropped.
- Remove
way-id
from the graphbuilder since it is not used anyways. - Let parser already deliver metrics instead of primitives.
- Extract the github-action-step
deploy-and-tag
as separate job. - Change routing
- Refactor complete module to improve code-structure of new modules (-> see section
Added
). - Make
paths
-module more public. Still keep access to underlying implementation-struct (VecPath
orHashPath
) private to be flexible over changes. - Merge some test-modules to reduce folder-complexity and redundant code.
- Refactor complete module to improve code-structure of new modules (-> see section
- Rename some methods more explicetly, like
geo::Coordinate::from -> geo::Coordinate::from_64
.
- Documentation is missing, though comments are very well.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in old tags -> probablycargo yank VERSION
needed
- Replace existing tags with ones referring to
- The link to
doc.rs
is hardcoded tomajor.minor.patch=0.y.z
becausedocs.rs
chooses version1.0.0
though it's yanked.. CostNode
s in the routing-modules are implementing ordering- and equal-traits sloppy.
- In
CHANGELOG.md
, markdown-links (not URLs!) in the table-of-contents should be persistent, meaning#v1.0.0-yanked
should be#v1.0.0
. - In example
astar
, the distance has been printed with two units (123 m m
). - Add an alternative best route to a test-case of the small graph, that has been missing.
- Fix link to
docs.rs
inREADME.md
- Documentation is missing, though comments are very well.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in old tags -> probablycargo yank VERSION
needed
- Replace existing tags with ones referring to
- Routing should be extended by a
bidirectional Astar
. - The link to
doc.rs
is hardcoded tomajor.minor.patch=0.y.z
becausedocs.rs
chooses version1.0.0
though it's yanked.. - Building the graph uses too much additional memory due to not dropping unused data though it is already stored in the graph.
- Implement access to forward-edges and backward-edges, as preparation to the
bidirectional Dijkstra
, .- Process queries for forward-edges and backward-edges by the same code, due to the new pattern with the shallow containers. To achieve this without additional performance-cost, use a index-mapping for offsets, while accessing all other components (node-indices and metrics) directly.
- Extend graph-construction-tests for backward-edges.
- Add documentation for the graph.
- Add a metric-system replacing primitive data-types.
- Support typical calculations as
v = s/t
, typed correctly (meters / milliseconds -> km/h
).
- Support typical calculations as
- Comment in
Cargo.toml
, over changing the version, to not forget changing theCHANGELOG.md
. - Refactor the graph by a new pattern.
- Add new examples playing around with different patterns (
RefCell
vsmoving
vsborrowing
). - Store the data in arrays in one single struct (the graph), while granting access over layer-structs borrowing these arrays and executing user-queries. This makes maintainability without breaking changes easier.
- Let the graph-interface allow access via
NodeContainer
andEdgeContainer
.
- Add new examples playing around with different patterns (
- Replace the use of usize by new structs,
NodeIdx
andEdgeIdx
, to control the access to graph-components. - Refactor logging slightly by adding progress-bars to parsing and building.
- Use a new type-parameter in the
Astar
for a metric-type, which are added in this release.- Change the access to best-path-algorithms slightly.
- Documentation is missing, though comments are very well.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in old tags -> probablycargo yank VERSION
needed
- Replace existing tags with ones referring to
- Routing should be extended by a
bidirectional Astar
.
- The feature showing whether an
edge is enabled
is being removed to make handling backward-edges easier. Edge-ID
s are not needed and hence removed.- When building and finalizing the graph,
ProtoNode
s andProtoEdge
s don't need ordering implemented, hence these implementations are removed.
- Add
CHANGELOG.md
.:)
- Add GitHub-action automatically testing and deploying.
As improvement over travis-ci, it tags commits automatically if the
Cargo.toml
-version has changed and pushed. Before, both (tag andCargo.toml
) had to be updated.
- The
README.md
has no longerNews
due to the newCHANGELOG.md
.
CHANGELOG.md
contains empty version-descriptions.- Replace existing tags with ones referring to
CHANGELOG.md
and add old tag-texts to theCHANGELOG.md
- Inconsistent
semver
in tagging -> probablycargo yank VERSION
needed - The
graph
-interface should allow access vianode
- andedge
-containers- This would improve maintainability and reduce number of breaking changes in the future.
- Further, it would allow using multidimensional metrics easier an probably improves caching thanks to
Structure of Arrays
instead of currently usedArray of Structures
- The
graph
containing forward-edges will be extended by backward-edges.- The feature showing whether an
edge is enabled
will be removed.
- The feature showing whether an
- Routing should be extended by a
bidirectional Astar
.
- The
braess-optimization
has been removed (to akutgw
-branch), since it's just kind of a big playground and interferes with future code, at least when testing. Travis-CI
has been replaced byGitHub
-workflows (-> see sectionAdded
).
- todo
- todo
- todo
- todo
- todo
- todo
- todo
- todo
- todo
- todo
- todo
- todo
- todo
- todo
- todo
- todo
- todo
- todo