# Released: vak 0.6.0 and tweetynet 0.8.0 🐦

**URL:** https://forum.vocalpy.org/t/released-vak-0-6-0-and-tweetynet-0-8-0/38
**Category:** Announcements
**Tags:** tweetynet, vak
**Created:** [July 9, 2022, 8:42pm UTC](https://forum.vocalpy.org/t/released-vak-0-6-0-and-tweetynet-0-8-0/38 "2022-07-09T20:42:39Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![nicholdav](https://yyz2.discourse-cdn.com/flex032/user_avatar/forum.vocalpy.org/nicholdav/32/5_2.png) [@nicholdav](https://forum.vocalpy.org/u/nicholdav)
#### Post date: [July 9, 2022, 8:42pm UTC](https://forum.vocalpy.org/t/released-vak-0-6-0-and-tweetynet-0-8-0/38/1 "2022-07-09T20:42:39Z")

</div>

This release mainly consists of on-going maintenance / clean-up work to get ready for bigger changes  
(bigger changes discussed here: [Engine + core/cli re-design · Issue #359 · vocalpy/vak · GitHub](https://github.com/vocalpy/vak/issues/359) – currently me just talking to myself but feel free to chime in)

The main fix here is to logging, so that messages don’t repeat themselves 3 times.

> <https://github.com/vocalpy/vak/pull/535>
>
> Fix logging so that log statements do not
> repeat themselves (fixes #258).
> To d…o this, we needed to remove all the logic
> that passed loggers around between functions,
> and instead use the stdlib logging module as intended,
> as a singleton where child loggers pass messages
> up to the root logger. Doing so produces a breaking change:
> the \`vak.engine.Model.from\_config\` method
> no longer accepts a \`logger\` parameter.
> 
> This also refactors the logging module,
> removing \`get logger\` and replacing it with
> \`config\_log\_for\_cli\`, which lets the cli
> configure logging while at the same time
> allowing users to configure logging how they want
> when they are not using the cli.
> 
> \--- squash commits ----
> 
> \- Rewrite vak/logging.py module
> + Remove \`log\_or\_print\` function.
> Will now just use python Logger methods directly
> + Add \`config\_logging\_for\_cli\` function.
> Allows the \`cli\` functions to call this to configure
> logging the way we run it now, and at the same time
> let users configure logging however they want when
> they are not using the cli
> + Use timenow.get\_timenow\_as\_str in
> \`config\_logging\_for\_cli\` function for timestamp
> - Add 'level' parameter and use to set logging level
> - Add a FormatHandler
> - Add force parameter, if True then remove handlers
> and add new ones
> \- Rewrite how cli modules configure logging
> + pass force=True into config\_logging\_for\_cli
> inside all cli functions
> \- Make all other modules use stdlib for logging,
> by saying \`logger = logging.getLogger(\_\_name\_\_)\`
> outside of any functions, and then using that logger
> inside functions
> + This also involved removing \`logger\` parameters
> from functions, and removing any \`logger\` arguments
> in function calls
> + including a \*Breaking change\*: remove \`logger\` argument from
> \`vak.engine.Model.from\_config\`
> - Remove logger parameter from vak.models.from\_model\_config\_map
> - Remove logger parameter from TeenyTweetyNet.from\_config method
> - Remove logger parameter from vak.split.train\_test\_dur\_split\_inds
> \- remove logger arguments from all function calls in tests

Fixing that required making a breaking change to the `vak.engine.Model` class, so I went ahead and released a new “minor” version, and made a corresponding fix in `TweetyNet` then made a new release for that package too.

More notes here:

> <https://github.com/vocalpy/vak/blob/main/doc/CHANGELOG.md#060----2022-07-07>
