Releases: JOJ0/discodos
DiscoDOS v3.0.3
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 regularsetup.py
- Added dependencies in
setup.py
viainstall_requires
- Fixed
stats
command collection counts and added sales stats - Bring back accidentally deleted
discosync
tool - Added non-python files in
setup.py
viapackage_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
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
andclean
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).
- Key/value search for what you want to see/edit, for example:
New config options
enable_tui
- toggle Textual-based UI for thedsc ls
command.discogs_sold_folder_id
- collection items in this Discogs collection folder are marked "sold" duringimport basic
automatically.
Documentation
- New layout using the PyData Sphinx theme
- A lot of outdated documentation was removed
- New features where of course documented
- Deprecations where noted, eg. AcousticBrainz is discontinued but still working partly in DiscoDOS
- Generally docs are now more polished - less sections - more self-explanatory "where to look for what"
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
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
- The new CLI main command is now
- 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!
- Docs have been updated to state the new
Notes
- Builds for Windows and macOS are not provided anymore, please install from git: https://discodos.readthedocs.io/en/latest/CONTRIBUTION.html#install-development-version
- Full Changelog: v1.1...v2.0
DiscoDOS v1.1
New
-
*Brainz matching (
-z/-zz
option ofimport
,search
andmix
subcommands): New options--skip-unmatched/-s
--force/-f
giving more customization possibilites for these longrunning processes. -
The
--resume
option of theimport
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: Trydisco mix <mixname> --format html
-
A graphical version of DiscoDOS is available as a preview. Check out the
qtgui
branch if interested. Install requirements viapip install -r gui_requirements.txt
and launchgui.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
- Installation and upgrade guides: https://discodos.readthedocs.io/en/latest/INSTALLATION.html
- The macOS version was built an macOS 10.5. Catalina and thus requires at least that version. It is tested with
bash
as the default shell. Please report problems encountered withzsh
. - The Windows version was not tested but is supposed to run on Windows 10 and higher versions. File a github issue in case of problems. I'm happy to help.
- Any other OS: Install from git directly: https://discodos.readthedocs.io/en/latest/CONTRIBUTION.html#install-development-version
DiscoDOS v1.0.1
Fixes
-
When Discogs search didn't get any results (either invoked via
disco search <searchterm>
ordisco 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
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
- Discogs update:
- 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
This is an autogenerated DiscoDOS pre-release.
Final release coming soon...
DiscoDOS v1.0_rc3
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
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
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!