Skip to content

Releases: JOJ0/discodos

DiscoDOS v3.0.3

31 Dec 11:47
Compare
Choose a tag to compare

3.0 PyPI package was faulty due to a number of outdated things around how DiscoDOS was packaged. Some tiny feature fixes too:

  • Packaging changed from using pbr to regular setup.py
  • Added dependencies in setup.py via install_requires
  • Fixed stats command collection counts and added sales stats
  • Bring back accidentally deleted discosync tool
  • Added non-python files in setup.py via package_data (ls_tui.tcss Textual stylesheet file)

(3.0.1. through 3.0.2 were iterations to finally get a working package)

DiscoDOS v3.0

31 Dec 11:10
Compare
Choose a tag to compare

Overview

DiscoDOS 3.0 is huge! The plan was to support "selling records" on the Discogs Marketplace. A lot of fixing seemed to be essential to achieve that goal nicely, refactoring madness started, some unplanned features where suddenly more easily possible, the developer couldn't resist and in the end....all went overboard and dozens of features "just happened" along the road.

Some highlights:

  • dsc ls - a TUI app to manage Discogs Marketplace listings using the beautiful Textual framework.
  • A bunch of new dsc subcommands and loads of usability improvements and reworks of existing commands.
  • Progress bars for longer running process using Rich Progress.
  • Generally making more use of the wonderful Rich library which goal is to make CLI applications more coloful, better usable and visually appealing in general.

New Features and Improvements

  • Importing is now divided into several subcommands and new things can be imported:
    • dsc import release for single releases (fixed and performance improved).
    • dsc import basic for a minimal full-collection import (more data is imported, a new 'collection' table saves each collection item instance, notes, collection folder).
    • dsc import sales for the Marketplace inventory (new).
    • dsc import listing for single Marketplace listings (new).
  • Cleanup commands group:
    • dsc clean sales
    • dsc clean collection
  • Incorporated Rich indicators for each and every (potentially long running) import and clean operation
  • All print statements in DiscoDOS use Rich print which gives a basic set of colors certain CLI elements (numbers, strings, json) but also "enables" futher use of Rich console markup.
  • dsc sell - a "wizard type" CLI command guiding through the process of listing a record for sale.
  • dsc stats - More statistics.
  • dsc links - From the ashes of "dsc search all", a key/value search based report view - get every hyperlink DiscoDOS can generate in one view.
  • dsc ls - a Textual App for displaying collection and sales data. Its main purpose is "managing Marketplace listings":
    • Key/value search for what you want to see/edit, for example: dsc ls artist=squarepusher status=forsale
    • A table view displaying search results
    • A three column subpanel viewing details about: 1. sales listing, 2. Your price and marketplace stats, 3. A list of YouTube videos
    • Supersimple "one-key-commands" v - fetch video links, l - fetch sales listing, return - fetch marketplace stats and suggested prices
    • A "non-tui" version of dsc ls is available too (-x/--no-tui or config option - see below).

New config options

  • enable_tui - toggle Textual-based UI for the dsc ls command.
  • discogs_sold_folder_id - collection items in this Discogs collection folder are marked "sold" during import basic automatically.

Documentation

Fixes and improvements under the hood

  • Restructured almost everything. Introduced Python subpackages ctrl, model, view and separated a lot of 1000+ lines long files to smaller module files.
  • Online operations moved to a separate mix-in class DiscogsMixin
  • Use TableDefaults descriptor class more often - column/field/shortcut/naming-magic
  • Almost everything touched, now black-formatted.
  • f-strings instead of .format()
  • Wherever possible refactored to "early returns", modularization, pythonic variable/class naming, comprehensions to improve code quality
  • Logging now uses %s-formatting and loads of INFO level clutter was changed to DEBUG or removed.
  • Refactored fundamental database functions, supporting new useful flags like as_dict, join, union
  • Streamlined "getters" and Discogs "fetchers" naming
  • There is still a lot of room for improvement, but it's definitely a start!

Known issues

  • Collection folders not yet displayed with names, just ID's in dsc ls TUI.

DiscoDOS v2.0

23 Jul 19:07
Compare
Choose a tag to compare

New & Breaking Changes

  • Introduce CLI frontend rewrite based on Click by @JOJ0 in #17
    • The new CLI main command is now dsc
    • disco is still existing for reference but is not maintained anymore
    • There are 2 reasons for the rewrite
      • I prefer to maintain a Click-based CLI rather than an argparser-based one.
      • There was a naming conflict with an Ubuntu package. See #15
  • Fix docs (CLI rewrite), fix rtd build, state AcousticBrainz shutdown in README by @JOJ0 in #20
    • Docs have been updated to state the new dsc command but might occassionally be still outdated in that matter.
    • Since AcousticBrainz was shut down, key and BPM fetching does not work anymore.
    • There are still loads of notes about AcousticBrainz in the docs, those are not updated yet. Help wanted!

Notes

DiscoDOS v1.1

02 Apr 15:36
Compare
Choose a tag to compare

New

  • *Brainz matching (-z/-zz option of import, search and mix subcommands): New options --skip-unmatched/-s --force/-f giving more customization possibilites for these longrunning processes.

  • The --resume option of the import subcommand is now available as --offset as well, which better reflects what it does when used in combo with aforementioned new options.

  • New subcommend disco stats giving several counts of releases and tracks in the DiscoBASE, *Brainz match results, tracks used in mixes, and so on.

  • New disco mix option --format, providing a way to directly pass to the CLI table rendering module (tabulate) what displaying-style should be used. E.g this way even html output can be rendered: Try disco mix <mixname> --format html

  • A graphical version of DiscoDOS is available as a preview. Check out the qtgui branch if interested. Install requirements via pip install -r gui_requirements.txt and launch gui.py. Thanks a lot to @D8bp8Ags for getting this started, providing a very good basis of a QT based GUI, helping and motivating me to learn a little PyQT programming already and supporting the DiscoDOS project overall. Very much appreciated! Thanks again!

Improved

  • Internal overhaul: PEP8 linting as good as possible in many parts of the code.
  • Splitting up classes into smaller modules for code readability.
  • New class TableDefaults in view_common module, providing a smarter way to handle CLI column headers. This actually was introduced to better handle defaults of TableViews of the QT-GUI in development but then was advanced to support both GUI and CLI things.
  • Loads of more improvements related to QT-GUI development that made it into master already.

Fixes

  • Fixes and improvements in test suites: test_collection, test_mix, test_config.
  • Some fixes in github actions pipelines.
  • Fix a bug where content of CLI table cells (like album names, track names, etc.) was not displayed correctly (cut off too early)

Notes

DiscoDOS v1.0.1

29 Mar 10:10
Compare
Choose a tag to compare

Fixes

  • When Discogs search didn't get any results (either invoked via disco search <searchterm> or disco mix <mixname> -a <searchterm> or any other way) one of the following two errors were shown to the user. All the requested operations were working properly but especially on macOS it caused an ugly popup message - this is fixed now.

    • AttributeError: bool object has no attribute pages
    • TypeError: can only concatenate str (not "int") to str
  • Also when Discogs search didn't find anything, before above errors were shown, a tiny ERROR message about a "non-existent list index" was shown to the user. The error was already catched and handled but is useless to the user anyway, thus it is not shown anymore.

View all release notes: https://github.com/JOJ0/discodos/releases

DiscoDOS v1.0.0

21 Mar 10:04
Compare
Choose a tag to compare

DiscoDOS 1.0 is finally released!

New

  • Update full releases (rather than single tracks or whole mixes)
    • Discogs update: search -u all
    • *Brainz update: search -z all
  • DiscoDOS got a website: https://discodos.jojotodos.net
  • All documentation is generated with Sphinx and hosted on https://discodos.readthedocs.org.
    • Prior docs from github markdown files included
    • New autogenerated "Commands Reference" section
    • And a lot more fixes and improvements to docs
  • Testsuite is run automatically on pushes to master branch using github actions
  • Release process automations
    • Fully automated generation of Windows package using github actions
    • Improvements in generation of macOS package (posix_pack.sh). Has to be executed on local machine because github actions doesn't support running on "older" macOS versions
    • Autogeneration of github release when a new tag is pushed

Improved

  • Longer Artist/Track/Release names in mix tracklist view are now split into several lines rather than just 2 lines. The default breaking point is fixed to 16 characters and might be configurable in future versions.
  • Http Error handling in Discogs update and *Brainz matching is now even more robust. This especially improves long-running *Brainz matching processes.
  • Some additional counters are shown in final *Brainz match stats
  • Testsuite code style: formatting/linting towards PEP8 compliance

Fixes

  • Fix off by one errors when resuming long running processes (e.g Brainz matching)
  • Fix "Can't fetch ... Track not existing on Discogs... error" - this happened when user asked for tracks to be matched that where not updated with Track names from Discogs. Now if unavailable Discogs will just be asked on the fly.
  • Fix --resume silently ignored when given options combination is actually not yet supported or supposed to work together
  • Testsuite fixes: test_collection, test_mix, test_brainz now working well again
  • Many fixes and refactoring in macOS packaging and initial installation magic

Deprecated

  • Packaging of a self-contained Linux version was dropped with this release - Almost any Linux comes with a supported Python version. Please install DiscoDOS as a Python package or use version 1.0_rc2 that is included in Debian/Ubuntu based distros via apt-get install discodos

DiscoDOS v1.0.0-rc4

11 Mar 08:19
Compare
Choose a tag to compare
DiscoDOS v1.0.0-rc4 Pre-release
Pre-release

This is an autogenerated DiscoDOS pre-release.
Final release coming soon...

DiscoDOS v1.0_rc3

29 Jun 16:11
Compare
Choose a tag to compare
DiscoDOS v1.0_rc3 Pre-release
Pre-release

This release is all about making installation and configuration as native as possible on Windows and macOS.

  • Windows: Download installer - run - use Start Menu entries to launch DiscoDOS and view Documentation.
  • macOS: Download .dmg file - doubleclick - Drag and drop DiscoDOS.app to Applications - doubleclick to launch

Release Notes:

  • No separate installation program needed anymore: Just: Install - Run - Essential configuration steps run automatically
  • The token necessary to access the user's Discogs collection is now asked by disco interactively. No need to edit a configuration file anymore.
  • DiscoDOS' files are kept in a place fitting well with what a Windows/macOS user would expect (Home folder - Documents - DiscoDOS).

Builds:

  • Windows package was built on a Windows 10 machine (should be compatible with lower Windows versions too)
  • macOS package was built on a macOS High Sierra 10.13. machine (is not compatible with lower macOS versions - in case you are running an older macOS, please reach out to me (open an issue). I will try to find a way to package on an older machine)

DiscoDOS v1.0_rc2

18 Jun 09:35
Compare
Choose a tag to compare
DiscoDOS v1.0_rc2 Pre-release
Pre-release

This second release candidate was primarily created for packaging DiscoDOS into Debian Linux. It turned out that some of those changes appear useful in Windows and macOS packages as well.

This is a source only release though - for Windows and macOS packages please get rc3 above.

This release (v1.0_rc2) will, if all goes well, be available in Debian GNU/Linux unstable distribution and be installable simply doing apt install discodos. Debian is the basis for a lot of other distros too and hopefully DiscoDOS will make it in those soon. My hopes are up for Ubuntu's October release (20.10) and thus its "childs" Linux Mint, Ubuntu Studio, etc..

Release notes:

  • The separate DiscoDOS setup program vanished, which simplifies installation:
    • All necessary setup-steps run automatically when disco command is launched the first time (download - unzip - run - done)
    • All the setup program functionality was moved to a subcommand of disco, which, if necessary, can still be launched by the user "on demand" (run "disco setup")
  • Loads of documentation was added/updated/improved (README.md, MANUAL.md, INSTALLATION.md, CONTRIBUTION.md)
  • disco mix command:
    • Fix use mix-names multiple times
  • discosync command:
    • Fix ordering of available backups in restore and show commands
  • Changes under the hood:
    • Proper python packaging using setuptools & pbr - eases installation from source and was necessary for Debian packaging
    • Fixes in logger initialization
    • The "Discogs API library module" is now taken from the newly found project "joalla" (https://github.com/joalla/discogs_client)

DiscoDOS v1.0-rc1

02 May 18:53
Compare
Choose a tag to compare
DiscoDOS v1.0-rc1 Pre-release
Pre-release

DiscoDOS 1.0 first "release candidate"

Installation instructions: https://github.com/JOJ0/discodos/blob/master/INSTALLATION.md

Find the right package for your operating system by clicking on "Assets" below.

Packages were built on the following OS-versions. DiscoDOS most probably will require at least these versions to run properly:

  • Windows 10 (build 18363)
  • maOS 10.13.6
  • Ubuntu Linux 18.04.4 LTS

Please report back wether it runs on your system or not. Thanks a lot for your help!