All Versions
10
Latest Version
Avg Release Cycle
204 days
Latest Release
1259 days ago

Changelog History

  • v8.9.0 Changes

    November 12, 2020

    πŸš€ This release includes major features such as continuous actions, square CB, probabilistic label tree, slates, CB distributionally robust optimization, CB ADF RND, Python wheels and many bug fixes.

    πŸš€ Click here to read the full release notes.

  • v8.8.1 Changes

    March 03, 2020

    πŸš€ This patch release fixes an issue in the Python bindings where parsing examples from text sometimes caused crashes.

    πŸ›  Fixes:

    • πŸ›  Fix delete behavior for examples created using parse function (#2206)
  • v8.8.0 Changes

    December 07, 2019
    • πŸ‘ There has significant work in streamlining and improving support for the Python bindings. Thanks @peterychang! (#1928)
    • The Conditional Contextual Bandit reduction got merged in, this reduction allows you to express problems where there are multiple slots to fill. See here for the wiki page. (#1816) (#1995) (#2078) (#2141)
    • CMake install targets have been added to the build files (#2172) (#2135)

      • Now you can find and link VW easily in other projects:

      find_package(VowpalWabbit REQUIRED)add_executable(my_exe main.cpp)target_link_libraries(my_exe PRIVATE VowpalWabbit::vw)

    • πŸ”€ Slim VW got merged into master. This is an experimental lightweight inference runtime that supports a subset of VW features. (#2028)

    • πŸ› Bug fixes! (see all changes below)

    Internal improvements

    We are at work overhauling and modernizing VW, some of the relevant changes on that front are below:

    • Migrate c arrays to std::array (#2094)
    • πŸ‘‰ Make hashing constexpr in C++14 and unify rotl impl (#2093)
    • Make is_example_header const (#2095)
    • Allow constructor arugments for calloc_or_throw (#2070)
    • Learner now holds type erased reduction data (#2060)
    • Use numeric_limits (#2107)
    • πŸ‘» Unify throwing of exceptions to use vw_exception instead of bare std:exception (#2171)
    • Cb explore adf atomization (#2069)
    • Refactor cb_adf reduction (#2057)
    • Move cb_sample to be class based (#2087)
    • Atomize topk reduction (#2050)
    • Atomize autolink reduction (#2047)

    Other notable changes:

    • πŸ— --version now includes commit id if available at build time (#1951)
    • 🍎 Macos added as CI target (#1965)
    • πŸ‘ Allow escaped command lines (#2157)
    • ⚑️ Update MSVC Toolchain to v14.1 (#1988)
    • Multiinstance mode for multiline examples (#1934)

    All Changes

    Click to expand all changes in 8.8.0

    • πŸ›  Fix warning (#2179)
    • βž• Add/exclude new folders in the python MANIFEST (#2180)
    • πŸ›  fix some warnings (#2177)
    • πŸ›  Fixes for Learning2Search Subsystem (#2176)
    • Install rapidjson too (#2174)
    • πŸ‘‰ Use standard save/load functionality for sklearn Python lib (#2142)
    • 0️⃣ Default the label for CCB when reading cached labels (#2158)
    • πŸ‘ Allow escaped command lines (#2157)
    • πŸ›  Fix header install locations (#2172)
    • πŸ‘» Unify throwing of exceptions to use vw_exception instead of bare std::exception (#2171)
    • Disallow combining no_sample and cb_sample (#2148)
    • πŸ›  Fix memory leak in search.cc (#2167)
    • πŸ›  Fix unlabeled sgd examples (#2162)
    • βž• Add deleter for parsed examples (#2153)
    • πŸ›  Fix misinterpreted negative option (#2149)
    • Catalina segfault mitigation (#2152)
    • Implement CCB type binding for Python (#2141)
    • ⚑️ Update test dependencies (#2147)
    • Fix typo: setup.py is not in vowpal_wabbit/python (#2143)
    • Throw instead of silently append nullptr when types don't match (#2139)
    • πŸ›  Fix variadic macro warning (#2138)
    • βœ… Create testing harness for cluster operation of VW and add test (#2134)
    • πŸ‘Œ Improve VW support for CMake install process (#2135)
    • πŸ— Properly support default build type, fix comment, define project version (#2133)
    • ⚑️ Update cluster readme to markdown, cleanup, format code (#2131)
    • πŸ›  Fix slim build and various CMake fixes (#2130)
    • ⚑️ Update CMakeLists.txt (#2127)
    • πŸ›  fixed docker image version (#2126)
    • Fix segfault when ring_size argument is not supplied (#2125)
    • πŸ—„ Python: fix deprecated joblib (#2068)
    • forgot to set a parameter (#2114)
    • βž• Add option to turn off sampling for CCB (#2096)
    • βœ‚ Remove redunant copy from CCB reduction (#2112)
    • πŸ›  Fix segfault in CCB - MTR must clean up predictions allocated for cost sensitive examples (#2111)
    • Softmaxpredfile (#2113)
    • Update vw_types.natvis (#2109)
    • Use numeric_limits (#2107)
    • Refactor cb_adf reduction (#2057)
    • πŸ›  Fix an LGTM warning in recommend (#2105)
    • ⚑️ Update CMakeSettings.json (#2104)
    • βœ‚ Remove all usages of "using namespace std" (#2071)
    • πŸ›  Fix lots of warnings and clang-tidy suggestions (#2085)
    • πŸ‘‰ Make hashing constexpr in C++14 and unify rotl impl (#2093)
    • Migrate c arrays to std::array (#2094)
    • Cb explore adf initialize vars (#2102)
    • 0️⃣ "-q" as default nc delay option (#2098)
    • Move cb_sample to be class based (#2087)
    • Cb explore adf atomization (#2069)
    • πŸ›  Fix OSX builds when not using Anaconda. (#2097)
    • πŸ‘· Mac Os X CI tests fixes (#2035)
    • Make is_example_header const (#2095)
    • Enable use of newer standards (#2092)
    • mitigate clang-cl SIMD issue (#2091)
    • Java Binding Improvements (#2081)
    • πŸ›  fix: softmax can overflow (#2088)
    • πŸ›  Fix type issues and windows version in cmake file (#2084)
    • Atomize topk reduction (#2050)
    • ⚑️ Update badges in Python readme (#2086)
    • πŸ‘ pdrop support for cb/ccb dsjson (#2078)
    • βž• Add CMake option to force color codes (#2082)
    • Atomize autolink reduction (#2047)
    • βž• Add forwarding header for commonly used objects in reductions headers (#2080)
    • πŸ›  Fix initilizer (#2073)
    • πŸ— Force OSX to build .so files for python (#2061)
    • Allow constructor arugments for calloc_or_throw (#2070)
    • Propagate cache reading failures (#2062)
    • Learner now holds type erased reduction data (#2060)
    • βœ‚ Remove unnecessary null checks (#2067)
    • βœ‚ Remove most usages of unsafe sprintf function (#2054)
    • πŸ›  Fix LGTM Java build issues (#2063)
    • βž• Add unit tests to coverage report (#2053)
    • βœ‚ remove copy from closure, and do by reference (#2058)
    • Limit python install parallelisation to number of cpus (#2056)
    • ⚑️ Update noexcept specifier (#2048)
    • πŸ›  Fix memory leak in CCB prediction (#2065)
    • 🚚 Constrain doxygen input dirs, remove graphs (#2055)
    • vw_slim into master (#2028)
    • DBG helper and new natvis (#2042)
    • Multiinstance mode for multiline examples (#1934)
    • Properly add CCB index feature with stride/offset (#2041)
    • πŸ›  Ataymano/memory leaks fixes (#2020)
    • Implement explicit included actions for CCB (#1995)
    • βž• Add VW-JNI SNAPSHOT publishing to nightly build
    • πŸ›  Fix compile errors on centos (#2005)
    • Install all headers as fix for missing headers in installed library (#1994)
    • βž• Add comment to to tovw to clarify usage (#1999)
    • βž• Add comment to learner.h (#1997)
    • ⚑️ Update MSVC Toolchain to v14.1 (#1988)
    • βœ‚ Remove deprecated projects and old scripts (#1992)
    • πŸ›  fixed command line argument retrieval from parsed model (#1993)
    • πŸ›  Fix implicit fallthrough warning and unused variable warning in GCC (#1984)
    • Replace nanpattern and infpattern with std:: equivalents (#1983)
    • 🐳 Migrate Travis to migrated Docker image + cleanup old files (#1982)
    • βž• Add Azure pipeline for Linux CI (#1981)
    • βž• Add constexpr and noexcept to some functions, cleanup unused functions (#1985)
    • vw-hyperopt. Passing additional command when training and validating (#1959)
    • 🚚 Ensure vw object cannot be moved or copied (#1986)
    • πŸ›  Fix building GCOV with Clang (#1980)
    • ⚑️ Update RunTests to be able to find binaries in the build directory (#1979)
    • Test and unify usage of ec_is_example_header (#1970)
    • Remove thread_local_storage from ccb (#1976)
    • βœ‚ Remove hard requirement for git during Windows build (#1977)
    • πŸ–¨ Action scores print tag (#1971)
    • πŸ›  Fix some warnings (#1973)
    • βœ‚ Remove two makefiles that were missed in Cmake change (#1969)
    • cd_adf: Added importance weight probability clipping for cb_type mtr, ips, dr (#1952)
    • πŸ›  Fix file permissions for macos CI scripts (#1966)
    • βž• Add macos pipeline (#1965)
    • βž• Add LICENSE to the python source package (#1963)
    • βž• Add source info to VW Nuget description, and update copyright years. (#1962)
    • πŸ”– Update new_version script (#1956)
    • ⚑️ Update python README to reflect new build proceedures (#1961)
    • Conditional Contextual Bandit (#1816)
    • ⚑️ Java Maven pom.xml.in update (#1954)
    • βž• Add git commit to output of --version (#1951)
    • cover and regcb: data.counter++ only in learn examples (not predict) (#1950)
    • πŸ›  Spark/JNI multipass fixes and AllReduce quiet support (#1949)
    • cb_explore_adf: fixed bug when resetting cb_type + improvements (#1948)
    • πŸ‘ vw-hyperopt (add support for passing namespaces) (#1941)
    • Tau first should count only learn examples (not predict) (#1944)
    • Python distributions (#1928)
    • πŸ— Enable suppressing NuGet version tag for official builds (#1946)
    • Fix predict path for cb_explore_adf First (#1939)
    • CS simulator v3.0 (#1932)
    • cs/cli/vw_label.h: Avoid to throw for precision issues (#1933)
    • βœ‚ Remove hard-coded version in Windows CI package gen script. (#1936)
    • πŸ›  Fix clear labels the correct way (#1930)
  • v8.7.0 Changes

    June 07, 2019
    • 🚚 The repo has moved to the VowpalWabbit organization
    • The group of core maintainers has been growing with steady improvements

    πŸ”„ Changes

    πŸ›  As always, lots of bug fixes.

    πŸ‘· Build System

    πŸ‘· The build system for VW has been overhauled to use CMake. This means, easier dependency resolution, faster build times and easier consumption as a dependency. The old automake + make systems have been replaced by this and eventually the .sln file will be replaced too. (#1624)

    Reductions/Learning Algorithms

    • Coin betting (#1903)
    • Contextual Memory Tree (#1799)
    • Warm start for cbify (#1534)
    • Softmax learner for cbadf (#1839)
    • cbify: --cbify_ldf for multiline (csoaa_ldf input datasets (#1681))

    Other Improvements

    • The parser has moved to using std types for concurency and has a clearer data production model. You’ll slowly notice more RAII types in VW. (#1731) (#1777)
    • A clang format file was added and the codebase reformatted. This is to keep things more consistent and easy to read. (#1701)
    • πŸ”§ The Python bindings can now use JSON as the input format, as long as the VW instance you’re using is configured to be parsing input as JSON (#1809)
    • πŸ“œ A new --strict_parse option was added to throw instead of warn for malformed examples (#1906)
    • ⚑️ Bare Java JNI Bindings optimized for Apache Spark (#1798)
    • βž• Add multiclass support for hyperopt utl (#1682)

    All Changes

    Click to expand all changes in 8.7.0

    • Warm start for cbify (#1534)
    • utl/vw-varinfo: work-around for issue/1547 (#1548)
    • βœ… Gramhagen 1538 python make test (#1550)
    • Fixed bug in CLI parsing of --csoaa_ldf multiline (#1551)
    • ksvm lambda fix (#1556)
    • Fixed bug causing to reset dump_interval to 1 when input model -i is provided (#1558)
    • Extract stable_unique to own function for clarity (#1559)
    • πŸ‘Œ Improvements and small fixes to utl (vw-lda, csv2vw (#1580)
    • πŸ“œ When parsing dsjson, skip lines not starting with "{" (#1593)
    • 🏁 Clean windows build and unify output paths (#1599)
    • βœ… Remove unused cs_testcommon project and directory (#1606)
    • build instructions: program_options insufficient (#1607)
    • Fixed _labelIndex out of bound error message (#1609)
    • ⚑️ Update Readme with details on installing boost dependencies (#1613)
    • βž• Add caching to appveyor build (#1616)
    • πŸ— Use a prebuilt docker image for travis build (#1620)
    • πŸ— CMake build definitions (#1624)
    • πŸ›  VS 2017 fixes (#1628)
    • πŸ— Further improve build cache by saving packages (#1634)
    • ⚑️ Update Travis and Appveyor badges to reflect organization change (#1642)
    • πŸ›  Fix cb explore adf segfault (#1643)
    • πŸ— Make VW setup projects buildable from the command-line (#1646)
    • πŸ— Use nuget restore instead of nuget install in Appveyor build (#1659)
    • βœ‚ Remove unused boost packages from VW (#1664)
    • Replace $(SolutionDir with $(ProjectDir (#1666)
    • ⚠ Use cerr for parser warnings (#1670)
    • Export vw audit output to .tsv file (#1677)
    • πŸ”§ Enable selective CMake configuration, improve messaging (#1678)
    • Fix crash when empty multi_ex is supplied for --cb_explore_adf (#1679)
    • cbify: --cbify_ldf for multiline (csoaa_ldf input datasets (#1681)
    • βž• add multiclass support for hyperopt utl (#1682)
    • bugfix: cb_adf is not including some examples in stats calculation (#1686)
    • Move trace_message from arguments to vw object (#1688)
    • βž• Add bug report issue template (#1693)
    • πŸ›  Fix some VW initialization memory leaks (#1697)
    • Fix memory leak in cb_explore_adf (#1698)
    • vw java 11 compatibility (#1700)
    • βž• Add clang-format (#1701)
    • πŸ›  Fix best constant and best constant's loss calculation when using ksvm (#1704)
    • ⚑️ Update assembly versions to match current version (#1705)
    • πŸ”¨ options_i command line parsing refactor (#1706)
    • πŸ›  Disable stdin processing for all but single instance CLI. Fixes 1300 (#1708)
    • πŸ‘‰ Use std::exp instead of exp free function (#1709)
    • πŸ›  Fix unused params warnings plus incomplete struct init (done to default values. (#1710)
    • πŸ“œ Add check for hash_inv when creating json parser (#1711)
    • πŸ›  Compile fixes (#1713)
    • πŸ”„ Change from strcmp to std::string operator== (#1715)
    • ⚑️ Update Dockerfile for TravisCI, define pipeline, upgrade Java (#1716)
    • Change to using a bool_switch for bool options (#1717)
    • Ataymano/mac options types fix (#1718)
    • βž• Add clang-format 7.0.1 to CI image (#1719)
    • ⚑️ Create Windows build scripts and update instructions (#1721)
    • Make cbify reduction respect is_learn parameter (#1722)
    • Add natvis file for v_array and substring (#1723)
    • πŸ”— Remove -DSTATIC_LINK_VW from Ubuntu build instructions (#1727)
    • πŸ›  Fix warnings in Windows MSVC x64 build (#1730)
    • 🚚 Move to std types for concurrency (#1731)
    • πŸ“¦ Scripts for running tests and generating NuGet packages (#1732)
    • πŸ›  Fix a small issue and cleanup usage of long long (#1733)
    • πŸ›  Fix file enocding for .rc files (#1734)
    • πŸ›  Fix build scripts forcing Debug builds. Add LTO mode and fix VW default visibility. (#1735)
    • ⚑️ Update README.md (#1737)
    • ⚑️ Update image used in travis (#1738)
    • πŸ›  Fix model file parser for proper treatment of negative-valued options (#1742)
    • shift clang-format to advise (#1744)
    • βœ… [tests] Make repeat.py compatible with python 3. (#1747)
    • βœ… Do not define BOOST_TEST_DYN_LINK when statically linking (#1750)
    • πŸ›  Fix test 175 (#1751)
    • Convert TopK reduction to be multiline example based (#1752)
    • βœ… RunTests: use test label number instead of counter (#1753)
    • πŸ›  Fix static linking (#1758)
    • πŸ“œ Small Json parser cleanup (#1759)
    • πŸ“œ Type erase json parser context for easier deletion (#1760)
    • Migrate from v_array to std::vector in some places + other changes (#1765)
    • On OSX, we need to catch boost::program_options::ambiguous_option directly. Probably due to different boost versions. (#1776)
    • πŸ“œ Parser now uses object and prod/cons queue and object pool for example parsing (#1777)
    • Fix resetting of cb_type (#1779)
    • πŸ›  Fix weighted average on cluster mode (#1781)
    • Allow spanning_tree to be a static executable (#1787)
    • [audit] Make sure --audit output is reproducible across systems. (#1788)
    • βž• Add example C# Simulator (#1790)
    • πŸ›  Fix usage of char instead of unsigned char for namespace index (#1791)
    • πŸ›  Fix to bug 1729: no bias regularization for BFGS not working (#1794)
    • ⚑️ Bare Java JNI Bindings optimized for Apache Spark (#1798)
    • Contextual Memory Tree (#1799)
    • expand Boost_LIBRARIES for pkg-config libs (#1801)
    • Use std::stable_sort when computing interactions. (#1804)
    • πŸ‘ [OSX] Improve support for static linking. (#1807)
    • πŸ“œ Enable JSON example parsing in Python bindings (#1809)
    • πŸ›  Fix example constructor (#1814)
    • 🐧 [python] Fix packaging so it's possible to produce a wheels package on linux. (#1815)
    • ⚑️ Update Python readme to reflect latest way to consume bindings from source (#1817)
    • πŸ›  Fix L2S HookTask in c-library and Python bindings (#1818)
    • Clear cb labels when returning to pool (#1822)
    • πŸ›  Fix build scripts for python3 (#1823)
    • Fix "average loss" bug in cb_explore.cc (#1825)
    • βž• Add gitter chat badge to readme (#1826)
    • πŸ›  Fix README.Windows.md link (#1827)
    • Consume RapidJson through submodule (#1828)
    • πŸ›  fix bug 1784: return probabilities for actions in the correct order in python binding (#1830)
    • πŸ›  Fix else statement (#1832)
    • πŸ›  Fix NaN issue in box-muller tranform (#1833)
    • πŸ›  Fix v142 toolchain (#1834)
    • ⚑️ Implement finish_example, update scripts to match (#1837)
    • cb_adf and cb_explore_adf: Setting --cb_type mtr as default (#1838)
    • First attempt at softmax learner for cbadf (#1839)
    • Fix conda_install.sh script (#1843)
    • Fix counting issue with --holdout_after option (#1844)
    • 🐳 Run coveralls inside docker (#1847)
    • 🏁 Cmake build on Windows (#1849)
    • Fix coveralls badge URL in README [(#1850)]#1850)
    • 🏁 Azure Pipeline for Windows CI (#1853)
    • cleaning up broken python3 vcxproj files (#1854)
    • BF: add cmake to installed dependencies in unstable singularity images (#1857)
    • Ataymano/c wrapper fix2 (#1859)
    • πŸ›  Fix Azure Pipeline build-break (#1867)
    • Enable Version and Tag override for NuGet pack (#1870)
    • πŸ”€ Shared example merge reduction (#1873)
    • Update gd_mf_weights.cc right namespace (#1874)
    • πŸ›  Fixed warning message ips -> mtr (#1875)
    • πŸ›  Fix dsjson parser regression and add smoke-test (#1878)
    • do not output progressive validation loss for oaa with subsampling (#1880)
    • βž• Add python documentation generation (#1884)
    • πŸ“š Update python documentation theme and index (#1885)
    • πŸ”„ Change references from SolutionDir to ProjectDir (#1886)
    • 🚚 Clean up some options warnings and remove some extra copies (#1888)
    • fix to make invert_hash work with bfgs (#1892)
    • Treat resource files as binary (#1896)
    • ⚠ memory leaks and warnings (#1898)
    • πŸ”„ Change version-generation for C# bindings to use version.txt (#1899)
    • πŸ”„ Change to absolute https path for submodule (#1900)
    • πŸ›  fix for no label confidence (#1901)
    • Coin betting (#1903)
    • πŸ‘‰ Use Appveyor MSBuildLogger (#1904)
    • πŸ‘» Optional exception (#1906)
    • fix closing invalid file descriptor with memory_io_buf (#1910)
    • βœ‚ remove warnings (#1911)
    • πŸ›  Fix to save the state of FTRL models (#1912)
    • πŸ›  fix static library build (#1913)
    • ⚠ more warnings (#1915)
    • πŸ›  fix for daemon race condition (#1918)
    • Bremen79 fix save ftrl (#1919)
    • πŸ”„ change semantics of lambda (#1920)
  • v8.7.0.post1_with_python

    July 11, 2019
  • v8.6.1 Changes

    July 21, 2018

    The internal version number now matches the tag number

  • v8.6.1.rl_hotfix1

    June 03, 2019
  • v8.6.0 Changes

    July 05, 2018

    πŸ›  This version has many bug fixes of course. In addition,
    (1) There are many improvements to the contextual bandit code thanks to Alberto Bietti (https://arxiv.org/abs/1802.04064 ).
    (2) There are significant improvements to save_resume due to @denik.

    Internally,
    πŸ“œ (a) The argument parsing code has been rewritten to be more consistent throughout the code base via parser_helper.h.
    (b) There are significant improvements in the way that multiline examples are handled thanks to @rajan-chari

    πŸš€ Note that unlike previous release versions, I've left the "Makefile" build system in place rather than using Automake. Automake is still available if desired, but you'll need to run it manually if you want to use it.

  • v8.5.0 Changes

    December 03, 2017

    ⚑️ 8.5.0 has further improvements, including fully working sparse model support, empirically optimized exploration algorithms, a new cost-sensitive active learning algorithm (https://arxiv.org/abs/1703.01014), and baseline prediction support.

  • v8.4.0 Changes

    July 22, 2017

    πŸ“œ There aren’t many new features since 8.3.0 (better JSON language support, better offline eval, sparse parameter support), so this version simply addresses a number of issues that have shown up over time