# All changes to data.tree are documented here.

## Version 0.2.0-rc.1 Elder

- ADD: ClimbByAttribute
- FIX: Aggregate and Cumulate now work always on attributes having a formatter
- ADD: as.igraph now has a 'directed' parameter
- ADD: print now has a pruneMethod, allowing different methods to avoid that a huge tree is printed to the console
- REMOVE: FromDataFrameTaxonomy and ToDataFrameTaxonomy (replaced by FromDataFrameNetwork and ToDataFrameNetwork, but with some differences)
- ADD: FromDataFrameNetwork and ToDataFrameNetwork
- IMPROVE: make Traversal "level" much faster
- ADD: Node$RemoveChild
- ADD: Node$RemoveAttribute
- ADD: as.igraph.Node now supports different directions (climb and descend)

## Version 0.1.9 Pine II

- Set correct version number in DESCRIPTION file

## Version 0.1.8 Pine

- Node
  - CHANGE: Node$depth is now called Node$height, as the old naming was confusing for many, because in CS, the Node$level is sometimes 
- Utils
  - CHANGE: Renamed CreateDummyTree to CreateRegularTree
  - CHANGE: Height renamed to DefaultPlotHeight, so as to avoid confusion with Node$height
  - ADD: CreateRandomTree to test trees
  - ADD: trees can now be climbed directly, e.g. acme$IT$`Go agile`
  - ADD: print.Node with limit parameter is now much faster
  - ADD: Clone is now much faster

## Version 0.1.7 Chestnut

- General
  - ADD: demo portfolio
  - ADD: demo decisiontree
  - ADD: demo population / treemap
- Node
  - CHANGE: Node$level is now 1-based (used to be: 0-based), i.e. if Node$isRoot then Node$level = 1
  - CHANGE: Node$Find is now called Node$Climb to avoid confusion with base::Find
called depth
  - ADD: print.Node contains a limit parameter, allowing to limit the max number of Nodes to be printed
  - ADD: Clone (returning a deep copy)
  - ADD: Prune (pruning the tree)
  - ADD: SetFromat (support for setting formatter functions on a Node)
  - ADD: Traverse, standalone traverse method that can be used for piping and whenever you need to apply multiple Get/Set/Do on the same traversal
  - ADD: Node$isBinary active
  - ADD: standalone versions of isLeaf, isNotLeaf, isRoot, isNotRoot for concise filtering
  - ADD: AreNamesUnique to test if names of the node's are unique throughout the tree (and not only among siblings)
  - FIX: node$position now returns 1 for root
  - ADD: Aggregate function now supports functions
  - ADD: node$averageBranchingFactor
  - CHANGE: Aggregate function does not cache anymore by default. See cacheAttribute for details.
  - Node$Get: 
    - CHANGE: Renamed filterFun parameter to pruneFun
    - ADD: new parameter filterFun, as opposed to pruneFun
    - CHANGE: removed the assign parameter (use Do instead)
    - ADD: new traversal modes "in-order", "level"
    - ADD: parameter inheritFromAncestors
  - Node$Set:
    - ADD: filterFun and pruneFun
    - ADD: support for traversal order
  - Node$Do:
    - ADD: new function Do, which applies a function to Nodes
- Conversions
  - ADD: conversion to and from list of lists (and thus to and from yaml, json, etc.)
  - ADD: conversion from data.frame
  - ADD: conversion to and from dendrogram
  - ADD: conversion to and from phylo from the ape package
  - ADD: conversion to Newick notation
  - ADD: conversion ToDataFrameTable (returning leafs only)
  - ADD: conversion ToDataFrameTree
  - ADD: conversion ToDataFrameTaxonomy
  - ADD: conversion to igraph
- Utils
  - CHANGE: Renamed PrintFixedDecimal to FormatFixedDecimal to achieve better consistency
  - ADD: CreateDummyTree to test large trees
  - ADD: CreateRandomTree to test trees