This project is using semantic versioning which means that versions has tree numbers:
Major.Minor.Patch, e.g. 1.3.7
and the meaning the the following:
- Major: breaking (remove functionality or change API)
- Minor: Features (new functionality, adding new topics)
- Patch: Fixes (bug fixes, typos, etc.)
We use these three sections in changelog: new features, bug fixes, breaking changes.
List of all subjects (first lines in commit message) since last release:
git log <last tag> HEAD --pretty=format:%s
# example
git log 1.1.0..HEAD --pretty=format:%s
git log 1.3.8..HEAD --pretty=format:"- %s [commit](https://github.com/amejiarosario/dsa.js/commit/%H)" --grep "BREAKING CHANGE:"
git log 1.3.8..HEAD --pretty=format:"- %s [commit](https://github.com/amejiarosario/dsa.js/commit/%H)" --grep "^feat.*:"
git log 1.3.8..HEAD --pretty=format:"- %s [commit](https://github.com/amejiarosario/dsa.js/commit/%H)" --grep "^fix.*:"
New features in this release
git log <last release> HEAD --grep feat
Install
npm install -g doctoc
Add to *.md:
<!-- START doctoc -->
<!-- END doctoc -->
Run:
doctoc README.md
- PDF: callouts and emojis are not showing correctly
- Writeup on balancing trees
-
BinaryTree
implementation on its own. So far, we only have BST. - TreeSet should be able to store objects. Does it need a comparator? on BST in case node's values are not just numbers but also objects.
- Refactor LinkedList.remove(). It's doing to much maybe it can be refactor in terms of removeByPosition and indexOf
- More algorithm and datastructres! Greedy, Divide and Conquer etc.
- Algorithms visualizations like https://bost.ocks.org/mike/algorithms/
- sorting algorithms needs a comparator. So, it can sort objects as well. Replace
Array.sort
formergesort
insrc/algorithms/knapsack-fractional.js
Install fswatch http://emcrisostomo.github.io/fswatch/usage.html
# Watch for changes
brew install fswatch
Watch for changes in *.js and *.adoc
fswatch /Users/admejiar/Code/algorithmsJS/src/**/*.js /Users/admejiar/Code/algorithmsJS/**/*.adoc | xargs -n1 -I{} make pdf
Some notes while working on this project
Running one test without changing file
jest -t '#findNodeAndParent'
Running one test changing code
it.only('should return with an element and its parent', () => {
// ...
});
Getting some (200k+) English words are useful for testing and benchmarking.
cat /usr/share/dict/words > benchmarks/dict.txt
Disabling ESLints
somthing(t) => 1 // eslint-disable-line no-unused-vars
// eslint-disable-next-line no-use-before-define
const thing = new Thing();
/*eslint-disable */
//suppress all warnings between comments
alert('foo');
/*eslint-enable */
/* eslint-disable no-alert, no-console */
alert('foo');
console.log('bar');
/* eslint-enable no-alert */