Skip to content

Release/2.0.0#250

Draft
pSpitzner wants to merge 61 commits intomainfrom
release/2.0.0
Draft

Release/2.0.0#250
pSpitzner wants to merge 61 commits intomainfrom
release/2.0.0

Conversation

@pSpitzner
Copy link
Owner

No description provided.

semohr and others added 18 commits December 19, 2025 18:30
- enhanced multistage docker for smaller builds (done to 500mb from 750mb)
- make use of bash instead of sh for all scripts
- added uv.lock file
- optimized some of the bash code (find, source common)
- Updated node to 22
- Use uv sync to check if dependencies are installed
… locking.

(On my mac, we I had conflicting access locks)
Removed apt list caches, since we delete them afterwards anyway.
Deleted unused testsetup docker compose.
This should make our docker image a bit smaller as pandas is a huge
dependency.

This also improves performance marginally.
Co-authored-by: pSpitzner <github@makeitso.one>
Co-Authored-By: semohr <sebastian@mohrenclan.de>

* Added eyconf dependency and drafted dataclasses for schema validation

* fixed failing tests due to config validation. however, i think our mixins do not work
as we think - we get some ~ 30 tests failing without those two changes.
it seems modifications to the config object survive `refresh_config()` calls,
at least in the test suite!

* started new beets config from scratch. did some type experiments that might better
end up in eyconf.

* Refactored config class to newer leaner format using eyconf.

* get_config now uses the new format.

* - fixed the remaining tests
- renamed `refresh` to `reload` to indicate the io happening,
  and `to_confuse` to `beets_config` as property. This felt more consistent, as we
  cannot afford to recreate beets' config every time we access its config (too slow)

* A bit of cleanup:
- light refactoring
- consistent str type for autotag config option
- started using new schema via py2ts in frontend

* if we do not reset the beets config so often, we need to be more careful with
overlays

* trying to fix file io tests

* Created a deprecation warning helper. Should help us identify
depredations easier.

* added tests for config and included full validation in reload
(before we did half of the validation, schema only, that felt too inbetween)

* Added changelog entry and configuration error if a configured inbox folder
does not exist

* closes #235

* updated eyconf, but more work upstream needed, fixed some tests, typed import section

* removed workarounds since we updated eyconf

* consistent naming `metadata_sources`

* wip: further config tweaks

* updated config cloading to match eyconf PR
[PR 16](semohr/eyconf#16)
once we updated eyconf, this commit fixes our tests.

* inbox folders can now use headings as name fallbacks

* fixed a bug on inbox folder validation, but that required a bit of more test mixins.
one still failing.

* cleaner config override in test suite,
bumped eyconf dependency

* added benchmark and fixed commit_to_beets.
our config with validation is at most some 3ms slower (5ms to 8ms), so seems fine since
it should be a one-time call.

* added docs for schema validation, and updated frontend types

* fix "_use_heading" frontend type

* linting, formatting and dependencies

* updated changelog
* Added a minimal file upload form the the frontend. Allows to select files
via drag and drop into the browser window or by manual selection.

* wip: implemented file drag example (frontend) and added backend route.
tests now run through, but it still seems that our custom exceptions do not
 propagate through the xhr (invalid targetdir does not raise in frontend nor console log)

* added new dropzone animation. not quite there yet, but i like the different inbox styling.

* drag prevention on outside of inbox dorps

* fixed drop not releasing drag overlay

* added progress overlay

* prevent uploading anything thats not a single archive file (only via frontend)

* reworked upload, now supports multiple files, progress, and error handling.

* Quite some cleanup:
- Added generic useDrag hook
- Refactored upload into multiple files

* Finalized and styled upload progress for files.

Other dialog parts still need some work but basic functions
are working.

* a few changes:
- dialog styling
- enabled dialog dropzone
- excluding .git from repo permission fix

a few bugs around uploading:
- we can add the same file multiple times
- we can add files after the upload finished :P

* a bit of progress on what to do after uploading. (resetting progress)

* added cancel button and automatic dialog closing

* Added upload temp_dir configuration for imbox upload.

* Removed unnecessary title state, should be derived.

* Moved filelist and dir out of api layer and refactored state slightly.
Structure is now flat instead of nested. Makes things easier.

* Filename and dirs are not parsed correctly because of url encoding.

* Readded close form after timeout.

* Enhanced file upload tests with some extra cases.

* Fixed ci pipeline

* run prettier

* Added Upload Action Button

* Added some tests for the validation route

* removed legacy file upload frontend component

* re-added config option for upload dir, frontend: added upload section to actions-info

---------

Co-Authored-By: semohr <sebastian@mohrenclan.de>
Co-authored-by: pSpitzner <github@makeitso.one>
pSpitzner and others added 30 commits January 12, 2026 21:48
Now, we dont get non-functional inboxes on first startup, even if users dont
volume mount into /music.

(no changelog entry because this is part of the v2 config validation)
* Changed heuristic for archive checks to only use file
extensions.
make redis server connection configurable through $REDIS_URL
environment:
- commands run as root are prefixed with an activate
- commands run as beetle automatically activate using .bashrc
…mages

in the dockerfile (yes it builds directly on debian:trixie-slim, but search replace)
Clarifications around the python environment activation.
Sticking to python:3.12-slim-trixie but now we are more explicit when and how we activate the virtual environment:
- commands run as root are prefixed with an activate
- commands run as beetle automatically activate using .bashrc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants