# Development

**URL:** https://discourse.beets.io/c/development/6.md?page=1

[Latest](https://discourse.beets.io/latest.md) · [Categories](https://discourse.beets.io/categories.md)

**Page:** 2

---

## [Metalinks plugin](https://discourse.beets.io/t/metalinks-plugin/1747)

<div class="topic-metadata">

**Author:** [@louson](https://discourse.beets.io/u/louson)\
**Replies:** 0\
**Last updated:** [April 15, 2021, 11:27pm UTC](https://discourse.beets.io/t/metalinks-plugin/1747 "2021-04-15T23:27:31Z")

</div>

Hello, I have a draft of a plugin called beets-metalinks. My goal is to help HTTP downloads of my library (on every platform). The idea is to work with softwares like aria2. The plugin manages metalinks in the beets li…

---

## [Should we start recording the original path and filename on import?](https://discourse.beets.io/t/should-we-start-recording-the-original-path-and-filename-on-import/1494)

<div class="topic-metadata">

**Author:** [@RollingStar](https://discourse.beets.io/u/RollingStar)\
**Replies:** 7\
**Last updated:** [March 23, 2021, 10:46pm UTC](https://discourse.beets.io/t/should-we-start-recording-the-original-path-and-filename-on-import/1494 "2021-03-23T22:46:11Z")

</div>

As I said here, I think recording this information would raise confidence in Beets and allow it to become more lossless. It keeps more options open for beets development in the future. (Imagine taking a second pass at au…

---

## [New AURA plugin](https://discourse.beets.io/t/new-aura-plugin/1512)

<div class="topic-metadata">

**Author:** [@out-of-range](https://discourse.beets.io/u/out-of-range)\
**Replies:** 3\
**Last updated:** [March 18, 2021, 7:05pm UTC](https://discourse.beets.io/t/new-aura-plugin/1512 "2021-03-18T19:05:57Z")

</div>

Hello everyone, I’ve been working on a beets plugin that implements an AURA server, and you can now take a look and try it out! The new code is currently in the aura branch: see the plugin file and the documentation (p…

---

## [Queries without accents](https://discourse.beets.io/t/queries-without-accents/1725)

<div class="topic-metadata">

**Author:** [@GrahamCobb](https://discourse.beets.io/u/GrahamCobb)\
**Replies:** 3\
**Last updated:** [March 17, 2021, 3:46pm UTC](https://discourse.beets.io/t/queries-without-accents/1725 "2021-03-17T15:46:26Z")

</div>

I am an English speaker and, like many others, am terrible with handling accented letters. I can’t even remember the keyboard shortcuts for ones which come up most frequently, like e-acute or o-umlaut. Let alone how to t…

---

## [Module not found for python file in plugin directory](https://discourse.beets.io/t/module-not-found-for-python-file-in-plugin-directory/1660)

<div class="topic-metadata">

**Author:** [@phirestalker](https://discourse.beets.io/u/phirestalker)\
**Replies:** 3\
**Last updated:** [January 20, 2021, 4:09am UTC](https://discourse.beets.io/t/module-not-found-for-python-file-in-plugin-directory/1660 "2021-01-20T04:09:09Z")

</div>

I am writing a plugin and I wish to keep certain functions in a separate file. It is called utils.py and it is in the same directory (beetsplug) that the main plugin file is in. I use from utils import \* and I get the er…

---

## [Stale bot - "pinned" label?](https://discourse.beets.io/t/stale-bot-pinned-label/1396)

<div class="topic-metadata">

**Author:** [@jackwilsdon](https://discourse.beets.io/u/jackwilsdon)\
**Replies:** 5\
**Last updated:** [January 11, 2021, 6:53pm UTC](https://discourse.beets.io/t/stale-bot-pinned-label/1396 "2021-01-11T18:53:04Z")

</div>

What are people’s thoughts on having some form of “pinned” label for GitHub issues / pull requests so that stale bot never marks them as stale? I’m bringing this up after seeing @adrian’s comment on #1893 - it sounds li…

---

## [Saving cache data to disk in a plugin](https://discourse.beets.io/t/saving-cache-data-to-disk-in-a-plugin/1643)

<div class="topic-metadata">

**Author:** [@phirestalker](https://discourse.beets.io/u/phirestalker)\
**Replies:** 2\
**Last updated:** [January 4, 2021, 10:47pm UTC](https://discourse.beets.io/t/saving-cache-data-to-disk-in-a-plugin/1643 "2021-01-04T22:47:00Z")

</div>

I would like to know if there is a best practice for where or how plugins should store large cached data. The data will be lists of dicts if that makes a difference. If there is no current best practice, what would you r…

---

## [Tag naming conventions](https://discourse.beets.io/t/tag-naming-conventions/1626)

<div class="topic-metadata">

**Author:** [@dosoe](https://discourse.beets.io/u/dosoe)\
**Replies:** 0\
**Last updated:** [December 24, 2020, 9:53am UTC](https://discourse.beets.io/t/tag-naming-conventions/1626 "2020-12-24T09:53:37Z")

</div>

Hi! Flexible tags have been implemented some time ago an I believe it’s time for a discussion on tag naming conventions. So far, all tags needed to be listed in beets/beets/autotag/hooks.py, but flexible tags allow to c…

---

## [New user / database - files deleted upon import](https://discourse.beets.io/t/new-user-database-files-deleted-upon-import/1580)

<div class="topic-metadata">

**Author:** [@CrossmenX](https://discourse.beets.io/u/CrossmenX)\
**Replies:** 1\
**Last updated:** [November 8, 2020, 6:20pm UTC](https://discourse.beets.io/t/new-user-database-files-deleted-upon-import/1580 "2020-11-08T18:20:39Z")

</div>

Installed Beets via docker image, made a few changes to config file to change folder convention for \\genre \\album year - album name\\ - all other settings as default. After a few test imports, I noticed that one artist w…

---

## [Feature Request - Add more information to Skip](https://discourse.beets.io/t/feature-request-add-more-information-to-skip/1554)

<div class="topic-metadata">

**Author:** [@cs\_legend\_93](https://discourse.beets.io/u/cs_legend_93)\
**Replies:** 1\
**Last updated:** [October 26, 2020, 12:11am UTC](https://discourse.beets.io/t/feature-request-add-more-information-to-skip/1554 "2020-10-26T00:11:35Z")

</div>

Hello! I am using Beets more and more, during the import process, it would be great to know more information on why a skip occurred. Currently it just says ‘skip’, but would be nice if it said: skip - Thanks!

---

## [Plugin idea: Expose "also performs as" for album artist field](https://discourse.beets.io/t/plugin-idea-expose-also-performs-as-for-album-artist-field/1541)

<div class="topic-metadata">

**Author:** [@RollingStar](https://discourse.beets.io/u/RollingStar)\
**Replies:** 6\
**Last updated:** [October 23, 2020, 7:36pm UTC](https://discourse.beets.io/t/plugin-idea-expose-also-performs-as-for-album-artist-field/1541 "2020-10-23T19:36:44Z")

</div>

Not sure if this should be a base feature or a plugin. a few artists perform under multiple names. in some cases, their work is so similar that i would prefer to group it all together. Vektroid is perhaps the best exampl…

---

## [Request: Updated dev guide](https://discourse.beets.io/t/request-updated-dev-guide/1527)

<div class="topic-metadata">

**Author:** [@RollingStar](https://discourse.beets.io/u/RollingStar)\
**Replies:** 4\
**Last updated:** [October 11, 2020, 10:22pm UTC](https://discourse.beets.io/t/request-updated-dev-guide/1527 "2020-10-11T22:22:44Z")

</div>

Seems there is some knowledge that isn’t in the dev guide itself. https://beets.readthedocs.io/en/stable/dev/index.html The overall principle I would follow is document things unique to beets while give less/no detail o…

---

## [Which fields would one expect to stay constant between moves?](https://discourse.beets.io/t/which-fields-would-one-expect-to-stay-constant-between-moves/1528)

<div class="topic-metadata">

**Author:** [@RollingStar](https://discourse.beets.io/u/RollingStar)\
**Replies:** 3\
**Last updated:** [September 30, 2020, 11:40pm UTC](https://discourse.beets.io/t/which-fields-would-one-expect-to-stay-constant-between-moves/1528 "2020-09-30T23:40:19Z")

</div>

I’m working on a test in support of this. I want to test that only a whitelist of fields can change between moves. I have a few that I’m not sure about: item fields: filesize # can changing filesystems change reported …

---

## [Idea: list candidates in relation to path formats](https://discourse.beets.io/t/idea-list-candidates-in-relation-to-path-formats/1511)

<div class="topic-metadata">

**Author:** [@RollingStar](https://discourse.beets.io/u/RollingStar)\
**Replies:** 1\
**Last updated:** [September 20, 2020, 2:26pm UTC](https://discourse.beets.io/t/idea-list-candidates-in-relation-to-path-formats/1511 "2020-09-20T14:26:06Z")

</div>

Beets is built around finding the exact release a user has. But is that always necessary? My path format is pretty minimalist. An album might look like this: Broke For Free - 2012 - Gold Can Stay Currently, I have some…

---

## [Importing untagged albums is borderline useless](https://discourse.beets.io/t/importing-untagged-albums-is-borderline-useless/1461)

<div class="topic-metadata">

**Author:** [@RollingStar](https://discourse.beets.io/u/RollingStar)\
**Replies:** 4\
**Last updated:** [August 27, 2020, 11:26pm UTC](https://discourse.beets.io/t/importing-untagged-albums-is-borderline-useless/1461 "2020-08-27T23:26:23Z")

</div>

Asking beets to import an untagged track/album is almost pointless. It depends on manual work from the user. (17 items) No matching release found for 17 tracks. For help, see: https://beets.readthedocs.org/en/latest/faq…

---

## [Bench.py - benchmarking plugin from 2016?](https://discourse.beets.io/t/bench-py-benchmarking-plugin-from-2016/1481)

<div class="topic-metadata">

**Author:** [@RollingStar](https://discourse.beets.io/u/RollingStar)\
**Replies:** 0\
**Last updated:** [August 27, 2020, 4:30pm UTC](https://discourse.beets.io/t/bench-py-benchmarking-plugin-from-2016/1481 "2020-08-27T16:30:54Z")

</div>

I thought it was interesting that this exists, although it clearly needs a lot of love.

---

## [Beets as a use case for (master) thesis](https://discourse.beets.io/t/beets-as-a-use-case-for-master-thesis/1421)

<div class="topic-metadata">

**Author:** [@89qagGF7](https://discourse.beets.io/u/89qagGF7)\
**Replies:** 9\
**Last updated:** [August 21, 2020, 11:09am UTC](https://discourse.beets.io/t/beets-as-a-use-case-for-master-thesis/1421 "2020-08-21T11:09:51Z")

</div>

Hi, I’m in the process of choosing a project for my masters thesis (computer science + engineering). I have been using beets for a while and now I’m playing with the idea of beets as a use case for my thesis. The motivat…

---

## [Requiring basic tests for contributions](https://discourse.beets.io/t/requiring-basic-tests-for-contributions/1440)

<div class="topic-metadata">

**Author:** [@jtpavlock](https://discourse.beets.io/u/jtpavlock)\
**Replies:** 6\
**Last updated:** [August 7, 2020, 11:36am UTC](https://discourse.beets.io/t/requiring-basic-tests-for-contributions/1440 "2020-08-07T11:36:27Z")

</div>

I think a lot of benefits come from testing, even the most basic of tests. To help combat our low test coverage, and get the other benefits from testing, I think we should (even if just temporarily) require at least bas…

---

## [Call for PR review help](https://discourse.beets.io/t/call-for-pr-review-help/1422)

<div class="topic-metadata">

**Author:** [@adrian](https://discourse.beets.io/u/adrian)\
**Replies:** 2\
**Last updated:** [August 5, 2020, 5:51pm UTC](https://discourse.beets.io/t/call-for-pr-review-help/1422 "2020-08-05T17:51:34Z")

</div>

Following on a previous time I did this, I wanted to paste my to-do list of open pull requests that just need a careful review. If you find yourself with some extra time, please consider it! They all just need someone to…

---

## [Fixing Flake8 Errors for plugin contribution](https://discourse.beets.io/t/fixing-flake8-errors-for-plugin-contribution/1454)

<div class="topic-metadata">

**Author:** [@davidswarbrick](https://discourse.beets.io/u/davidswarbrick)\
**Replies:** 1\
**Last updated:** [August 4, 2020, 6:39pm UTC](https://discourse.beets.io/t/fixing-flake8-errors-for-plugin-contribution/1454 "2020-08-04T18:39:19Z")

</div>

I previously started work on PR #3560, a plugin to allow the contents of a query to be tweeted - an admittedly niche use-case, but (I hoped) a useful introduction to contribution to the project. I’ve returned to the cod…

---

## [Should we adopt the 'git flow' branching model?](https://discourse.beets.io/t/should-we-adopt-the-git-flow-branching-model/1409)

<div class="topic-metadata">

**Author:** [@jtpavlock](https://discourse.beets.io/u/jtpavlock)\
**Replies:** 6\
**Last updated:** [August 3, 2020, 10:56pm UTC](https://discourse.beets.io/t/should-we-adopt-the-git-flow-branching-model/1409 "2020-08-03T22:56:30Z")

</div>

Git flow is a branching model for git that I think could provide some benefits. One of the main points of git flow is that master is a strictly production/release branch where every commit is a new release. Some of the …

---

## [Building manpages on sdist](https://discourse.beets.io/t/building-manpages-on-sdist/1443)

<div class="topic-metadata">

**Author:** [@jtpavlock](https://discourse.beets.io/u/jtpavlock)\
**Replies:** 4\
**Last updated:** [August 2, 2020, 3:02pm UTC](https://discourse.beets.io/t/building-manpages-on-sdist/1443 "2020-08-02T15:02:44Z")

</div>

I noticed we build manpages on source distributions, def build\_manpages(): # Go into the docs directory and build the manpage. docdir = os.path.join(os.path.dirname(\_\_file\_\_), 'docs') curdir = os.getcwd() …

---

## [Writing tests with pytest!](https://discourse.beets.io/t/writing-tests-with-pytest/1435)

<div class="topic-metadata">

**Author:** [@jtpavlock](https://discourse.beets.io/u/jtpavlock)\
**Replies:** 1\
**Last updated:** [July 29, 2020, 1:51am UTC](https://discourse.beets.io/t/writing-tests-with-pytest/1435 "2020-07-29T01:51:34Z")

</div>

So, we now have pytest as a test runner, but what about using it to write tests too? I’ve seen the sentiments presented here that perhaps we don’t want to couple too closely to pytest, however that was now over 5 years …

---

## [Switching to using a universal code formatter](https://discourse.beets.io/t/switching-to-using-a-universal-code-formatter/1431)

<div class="topic-metadata">

**Author:** [@jtpavlock](https://discourse.beets.io/u/jtpavlock)\
**Replies:** 5\
**Last updated:** [July 28, 2020, 3:55am UTC](https://discourse.beets.io/t/switching-to-using-a-universal-code-formatter/1431 "2020-07-28T03:55:57Z")

</div>

The title makes it sound like there may be several options, but I think black is the de facto. So, why should we use black? Consistent code base Never have to worry about formatting ever again, and it looks good Effec…

---

## [Choosing a developer chat platform](https://discourse.beets.io/t/choosing-a-developer-chat-platform/1380)

<div class="topic-metadata">

**Author:** [@adrian](https://discourse.beets.io/u/adrian)\
**Replies:** 20\
**Last updated:** [July 18, 2020, 3:59pm UTC](https://discourse.beets.io/t/choosing-a-developer-chat-platform/1380 "2020-07-18T15:59:30Z")

</div>

Yeah, I’ve been thinking about a communication channel as well. Here’s a bit of a confession: I used to use IRC a lot more, but in the era of Slack and its open-source equivalents, I’ve found my patience for IRC’s well-…

---

## [Updating the errors we ignore with flake8](https://discourse.beets.io/t/updating-the-errors-we-ignore-with-flake8/1393)

<div class="topic-metadata">

**Author:** [@jtpavlock](https://discourse.beets.io/u/jtpavlock)\
**Replies:** 6\
**Last updated:** [July 12, 2020, 2:35am UTC](https://discourse.beets.io/t/updating-the-errors-we-ignore-with-flake8/1393 "2020-07-12T02:35:25Z")

</div>

I’m going through the ignore errors on flake8, and noticed that there are some that I don’t quite understand why we are choosing to ignore. Continuation line under-indented for hanging indent (E121) There’s only a si…

---

## [What is the timeframe for the v1.5.0 release?](https://discourse.beets.io/t/what-is-the-timeframe-for-the-v1-5-0-release/1145)

<div class="topic-metadata">

**Author:** [@jakabadambalazs](https://discourse.beets.io/u/jakabadambalazs)\
**Replies:** 6\
**Last updated:** [July 4, 2020, 6:45pm UTC](https://discourse.beets.io/t/what-is-the-timeframe-for-the-v1-5-0-release/1145 "2020-07-04T18:45:00Z")

</div>

Just curious. Is there a planned date for the next release? I have a few PRs and ideas that I would like to be included in it but I need to plan ahead.

---

## [Deprecating Python2.7](https://discourse.beets.io/t/deprecating-python2-7/1359)

<div class="topic-metadata">

**Author:** [@jtpavlock](https://discourse.beets.io/u/jtpavlock)\
**Replies:** 1\
**Last updated:** [June 27, 2020, 1:32pm UTC](https://discourse.beets.io/t/deprecating-python2-7/1359 "2020-06-27T13:32:01Z")

</div>

Has there been any talk to dropping support of Python2.7? Now that it’s officially been dropped upstream, it seems appropriate to begin to move on :smiley: .

---

## [\[ANN\] beets 1.4.9](https://discourse.beets.io/t/ann-beets-1-4-9/779)

<div class="topic-metadata">

**Author:** [@adrian](https://discourse.beets.io/u/adrian)\
**Replies:** 0\
**Last updated:** [May 31, 2019, 12:15am UTC](https://discourse.beets.io/t/ann-beets-1-4-9/779 "2019-05-31T00:15:26Z")

</div>

We’ve got another (small) release! This is a quick update to fix some problems and clear the decks for a larger change to the dependency structure in the next release. Check it out:

---

## [\[ANN\] beets 1.4.8](https://discourse.beets.io/t/ann-beets-1-4-8/754)

<div class="topic-metadata">

**Author:** [@adrian](https://discourse.beets.io/u/adrian)\
**Replies:** 1\
**Last updated:** [May 17, 2019, 6:49pm UTC](https://discourse.beets.io/t/ann-beets-1-4-8/754 "2019-05-17T18:49:10Z")

</div>

I know it has been ridiculously, unconscionably long since the last beets release (more on this elsewhere on the forum), which is why I am especially elated to announce the release of beets 1.4.8. There are so many thing…

[Previous page](https://discourse.beets.io/c/development/6.md)

[Next page](https://discourse.beets.io/c/development/6.md?page=2)
