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.
- Introduce Renovate bot to manage dependencies
- Use Fork/Join Framework (ForkJoinPool)
- Introduce new benchmark settings to application.properties
- Use Java Microbenchmark Harness (JMH) to measure algorithms performance
- Replace JUnit with Spock
- Use Java Faker to generate random test data
- Migrate from JDK 11 to JDK 17
- Include integration tests in JaCoCo code coverage
- Remove "v" from the release configuration (Git tags) to follow Semantic Versioning 2.0.0
- Static Application Security Testing (SAST)
- Lombok annotations for generated fields (improve code coverage)
- Maven release plugin
- LICENSE file
- Missing unit tests
- Display a message in Markdown files if a PDF document is not supported
- Update EXERCISES.md and README.md files
- Replace Vavr tuples with javatuples library
- Code coverage displayed on GitLab
- SonarCloud integration (configure it again accordingly to an official guide)
- PROFILER.md file
- Use an executor service instead of creating a new thread each time for the waiting mechanism
- Unify the generated benchmark report with the benchmark table in README.md (thanks to this change, it is possible to copy the generated result directly to Markdown file)
- Sonar warnings
- Update benchmark results
- Refactor sorting algorithms (QuickSort)
- Update benchmark results
- Improve sorting algorithms (CocktailShakerSort, HeapSort, MergeSort, QuickSort, SelectionSort, ShellSort)
- The benchmark table formatting
- The benchmark table contains execution and algorithms details
- Measure memory during an algorithm execution
- The format of saving benchmark results
- Milliseconds to nanoseconds as a default time execution unit
- Refactor a part of algorithms: Bubble Sort, Insertion Sort, Counting Sort, Selection Sort
- Create the benchmark results file when it does not exist
- Show logs during benchmark calculations
- A new benchmark option in GUI
- A benchmark table in README.md (it's still empty because algorithms need refactoring)
- Adjust packages structure
- Adjust Logback configuration to not show redundant information
- Code coverage as a badge on Gitlab using JaCoCo plugin
- New logger library (SLF4J & Logback)
- SonarQube support (using SonarCloud)
- The root package name is set to com.showmeyourcode.algorithms
- Upgrade JUnit 4.12 to JUnit 5.1
- Upgrade Maven compiler plugin 3.5.1 to 3.8.0
- General code refactoring (use camelCase instead of snake_case for variables)
- Adjust Java classes structure according to good design principles
The first release 🎉🎉🎉
- Sorting algorithms
- BubbleSort
- CountingSort
- HeapSort
- InsertSort
- MergeSort
- QuickSort
- SelectionSort
- ShakerSort
- ShellSort