Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v3.5.0 #2211

Merged
merged 29 commits into from
Feb 4, 2024
Merged

Release v3.5.0 #2211

merged 29 commits into from
Feb 4, 2024

Conversation

s-martin and others added 13 commits December 13, 2023 21:32
* ignore test dir for coverage

* trigger a py file change

* don't calculate coverage for test files itself

* Rename . coveragerc to .coveragerc

* Use coveragerc
* pbc.c: add 'package' to rpc commands

* pbc.c: Also recognise negative numbers as int in values
(somehow hacky solution)
* fix typos and add docs for pbc

* fix typo and fix markdown warnings

* move cli docs to builders

* move cli client to builders

* fix markdown warnings
* fix editorconfig for yml files

* add workflow for webapp build on release

* filter paths for CI installation worlflow

* abort installation if needed download failed

* fix SemVer definition

* add workflow for webapp bundle build and releases.
remove old workflow

* add main to version.py

* fix prebuild webapp bundle download

add download for latest bundle:
used if no bundle for the commit is found and force download is set.

* changes to webapp build option

changed order: kiosk_mode and node option
change message to better reflect the behavior.
move local build finmessage to the 'yes' case:
Download is forced and node is not installed. the message is irritating

* add checks for correct version for branch

* activate official repo check

* set next develop version

* Update message

* make webapp downloads on forks possible

* bugfix elif

* add abort if sources failed to load

* Updated WEBAPP NODE message

* change filename to short hash (10 chars)

* add semver ref to version.py
* add possibility to execute commands directly

* add documentation

* ignore node modules in flakek8

* fix comments
* move GPIO docs and convert to markdown

* add wsl

* fix markdown warnings
* CoverArt with Cache in Docker, Cache Path on Pi missing

* Make cache path available in both Docker and Pi

* Fix flake8 errors
* move GPIO docs and convert to markdown

* add wsl

* fix markdown warnings

* improve docs (remove rst stuff)
* Activate codeql analysis

* Update codeql version

* Update checkout version

* Rename workflow file

* Update name of workflow

* Setup Python deps manually

* Install packages

* Fix packages
This makes sure the 'venv' is initalized using the correct user, preventing permission errors

Closes issue #2198

Co-authored-by: pre-commit fix Vito Zanotelli <[email protected]>
…2179)

* Adding additional player controls to assign to cards

* streamline some RPC command namings across jukebox and webapp

* Fix typos

* Fix Repeat toggles

* Fix toggle_shuffle

* Fix typo in command

* Fix another typo

* Fix wrong parameter for shuffle

* Update German translation for single-repeat

* Simplify Shuffle option

* Simplify Repeat option

* Streamline Player functions with new set_ methods in jukebox

* Abstract OptionsSelector

* Refactor some code

* Fix indentation

* Rename set_ methods

* Undo some doc changes
@pabera pabera added the future3 Relates to future3 development label Jan 8, 2024
@pabera pabera self-assigned this Jan 8, 2024
@coveralls
Copy link

coveralls commented Jan 8, 2024

Pull Request Test Coverage Report for Build 7776487752

  • -2 of 4 (50.0%) changed or added relevant lines in 1 file are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-14.2%) to 38.2%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/jukebox/jukebox/version.py 2 4 50.0%
Totals Coverage Status
Change from base Build 7174377156: -14.2%
Covered Lines: 416
Relevant Lines: 1089

💛 - Coveralls

@AlvinSchiller
Copy link
Collaborator

Whats missing:
The need to update the jukebox.yaml for the coverart should be documented here.
Or we implement the automatic update / default value initialization before (which i would prefer :) ).

Copy link
Collaborator

@Groovylein Groovylein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. I skipped the JavaScript part, because I do not have expertise here.

run: |
./run_pytest.sh --cov --cov-report xml
./run_pytest.sh --cov --cov-report xml --cov-config=.coveragerc
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you expect by running it with coverage?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In coveralls.io you can check how much of the code is covered by our unit tests.
The Python GitHub Action runs the tests with coverage.

See the coveralls comment in this PR or other out related PRs.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, do we look for more coverage? Should we update the Contribution info as well?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think generally it's useful to improve the coverage, but from my point of view we should focus on making future3 feature "complete" at this point.

But it probably wouldn't hurt to encourage people in CONTRIBUTING to add unit tests.

documentation/builders/gpio.md Outdated Show resolved Hide resolved

You can also use WSL on Windows 10 or 11. This section describes how to use WSL with Visual Studio Code.

1. Install a Debian or Ubuntu image from Microsoft Store
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you need to install wsl as well. I would provide a link here:
https://learn.microsoft.com/en-us/windows/wsl/install

src/jukebox/jukebox/version.py Outdated Show resolved Hide resolved
@s-martin
Copy link
Collaborator

s-martin commented Jan 8, 2024

Event device is not merged yet

@pabera
Copy link
Collaborator Author

pabera commented Jan 8, 2024

Event device is not merged yet

I know - it's considered a draft and just created to represent the next release early on (updated the description)

* adjust swapfile if memory is too low

* add option for webapp build

* update ci tests

* Update run_install_webapp_local.sh

* update ENABLE_WEBAPP_BUILD handling

* updated logging

* add build webapp test workflow

* fix path

* fix actions

* fix: add shell

* fix trigger path

* adjust node mem calculation

leave enough memory for the system.
increase swap with min size

* use shell script for builds

* add env CI

* use new action for release build

* adjusted min sizes

* remove obsolete code

* update workflow name

* move update dependencies entirely to rebuild script. update docs

* move existing build folder to backup. update docs

* increase swap with lower step size. minor fixes

* refactor vars and logging. added verbose param.

* update logging

* fix indentation

* update logging. moved NODEMEM check

* refactor webapp build during installation

removed unneccessay vars (only use ENABLE_WEBAPP_PROD_DOWNLOAD).
trimmed webapp build option.
updated messages.
harmonized var access and queries

* Update docs

* Update messages

* harmonize webapp wording

* fix flake8

* fix flake8

* update node installation.

update node version for armv6.
use recommended setup from nodesource.
removed update version on new installation run.

* update docs

* ci add platform linux/armv6 (deactivated)

* reverted to https://deb.nodesource.com/ installation

* update docs

* align fin message

* Update docs. Remove full URL references to branch

* ignore stderr if node is not installed before

* ignore stderr if node is not installed before

* bugfix. removed additional char

* add npm project config

better network handling especially for armv6l devices

* use performance optimized install command

update warning for armv6l devices

* Update docs

Update installation steps. split for version. add tip from installation-
Add webapp doc for developers.
update docs and link to new webapp doc.
eliminate duplications.
merged developer-issues into new webapp doc

* also raise fetch-retry-mintimeout

* update docs

harmonize wording for webapp.
add build output.
change ARMv6 installation note.

* add note for webserver restart

* update installation docs. add bullet list

* change npm config values

* show "slow hardware message" at installation start

* update armv6l warning for webapp rebuild

* make script return value more clear

* Make local webapp build an optional step
due to unpredictable npm connection errors.

Show webapp fin message only if webapp build fails

* use prebuilt webapp bundle also for develop

* update docs

* Update webapp.md

* Update customize_options.sh (typos)

* Update installation.md

* Update system.md

* Update installation.md

* Update webapp.md

* Update customize_options.sh

* change npm config values

* update docs

* update welcome to match changes in wiki

* update rebuild message

* Add doc links

* update ignorefiles for build.bak

* Update doc and link for constributors

* Update CONTRIBUTING.md

---------

Co-authored-by: pabera <[email protected]>
@pabera pabera mentioned this pull request Jan 16, 2024
@pabera pabera added this to the v3.5 milestone Jan 16, 2024
* Add components folder to installation and docs. First component is hifiberry sound card

* Allow for all hifiberry boards

* Disabling HDMI Audio

* Finalize HiFiBerry doc

* Refer to Pi Pinout for convenience

* Enable ALSA config as an option as well

* Allow script to be run multiple times

* Add OnOff SHIM as component

* Make script more robust based on PR comments

* Update hifiberry soundcard options

* Automate soundcard detection for asound.conf

* use /boot/config based on debian version

* Reorganize a few things

* some bugfixes

* Final fixes

* Optimize case

* Update docs

* Uninstall option

* fix: Remove option was not reachable

* fix: enable sudo

* fix: make I/O fail silently

* feat: Introduce 1-line installation

* feat: outsource onboard_sound as its own option

* refactor: remove alsa config

* fix: update case function

* fix: adding some thens

* fix: some iterations did not work

* fix: adding another sudo

* refactor: get_key_by_item_number for associated arrays

* refactor: remove last bits of alsa

* fix: final touches

* fix: add missing removal only option

* fix: outsource example_usage for 1-line install

* fix: condition for 1-line installation

* fix: another fix for if conditions

* refactor: move 1-line installation down

* gs

* another fix

* fix: write array check differently

* refactor: final touches

* feat: enable silent mode for check_existing_hifiberry

* fix: reintroduce sudo check

* fix: documentation

* fix: final touches again

* fix: remove is_sudo again

* fix: Remove last sudo occurrences

* fix: bullet proof

* Make bash files executable

* fix: Update documentation

* fix: 1-line path does not worj

* Update documentation/builders/components/soundcards/hifiberry.md

Co-authored-by: s-martin <[email protected]>

* Update documentation/builders/components/soundcards/hifiberry.md

Co-authored-by: s-martin <[email protected]>

* Update documentation/builders/components/soundcards/hifiberry.md

Co-authored-by: s-martin <[email protected]>

* fix: Update regex for commented code

* Adding OnOff Shim resource
@pabera pabera assigned pabera and unassigned pabera Jan 16, 2024
* adding pydoc-markdown yml

* add lazydocs

* run lazydocs and pydoc-markdown parallel for testing

* fix output path

* add created docs to source control

* fix the path to source code

* change filter

* revert last commit

* use only pydoc-markdown

* remove the test files from version control

* rename script and add to pre-commit hook

* change py file to test pre commit hook

* modify py file again

* test markdown formatting

* updated docstring

* use sphinx renderer

* update markdown

* convert links and formatting to markdown

* make link to plugin docs

* fix comment

* fix wrong docstring

* add more fixes to doc

* update docstring-md

* rename to README.md so github picks it up directly

* fix formatting

* improve docs

* improve docs

* fix docs

* updte docstream md

* fix formatting for md

* fix formatting to md and check crossref

* fix links

* fix formatting for notes

* fix links

* revert wrong fix

* fixed indentation

* add generated docstring

* Check for docstring in action

* Try without request changes

* try request changes

* remove docstring check from action
AlvinSchiller and others added 5 commits January 18, 2024 09:19
* deactivate kiosk mode in armv6 devices

suggestion from Issue 2209

* added "disabling" information to message

* change message to be more clear
* minor fixes

* add "Pre-install preparation / workarounds" section

add "Workaround for network related features on bookworm"

* add "Workaround for 64-bit Kernels"

harmonize and update description / message

* minor fix

* Update warning block
as alerts are not supported inside of "details"

* minor fix

* fix Raspberry Pi OS name

Co-authored-by: s-martin <[email protected]>

* fix Raspberry Pi OS name

* fix typo

* added link to installation

* updates from reviews

* fix file for synchronisation doc.
moved to components

* add docs for samba

* Apply suggestions from code review

Co-authored-by: s-martin <[email protected]>

* restructure builders readme

---------

Co-authored-by: s-martin <[email protected]>
* Update audio.md

* Update audio.md

* Update audio.md

* Update audio.md

---------

Co-authored-by: s-martin <[email protected]>
Co-authored-by: pabera <[email protected]>
* first attempt

* Introduce harmonize_mpd_url

* Revert "first attempt"

This reverts commit c99f2ed.

* feat: add docs about using playlists

* feat: add docs about using livestreams

* feat: add docs about using podcasts

* Apply suggestions from code review

Co-authored-by: s-martin <[email protected]>

* fix: diverify examples

* fix: better folder display

* fix: addressing comments

* fix: addressing comments

* fix: update wrong links and fix some wording

---------

Co-authored-by: pabera <[email protected]>
Co-authored-by: s-martin <[email protected]>
@AlvinSchiller
Copy link
Collaborator

AlvinSchiller commented Feb 1, 2024

I think we have a problem on the update path with this release.
The currently described "just pull" method isn't enough. And a rebuild of the webapp is also not possible if node is not installed in main.

Maybe we find a quickfix, so a rerun of the installation is possible, without massive changes?
Ideas:

  • Move to current Project Folder to "*-backup-$datetime"
  • Let the user rerun the installation
  • copy 'shared'-folder from backup to the current installation
  • give note that manually changes need to be transfered manually

A proper way can then be implemented with v3.6.0

* add ssh welcome script

* changed message

* moved login message setup

* fix sudo on copy

* update message

* fix typo in filename
* fix motd

* fix error message for generic usb reader
@AlvinSchiller
Copy link
Collaborator

AlvinSchiller commented Feb 2, 2024

I think we have a problem on the update path with this release. The currently described "just pull" method isn't enough. And a rebuild of the webapp is also not possible if node is not installed in main.
...

Or we just state that updates are currently broken and a fresh installation has to be done.

powertomato and others added 3 commits February 4, 2024 16:52
* Add NFCPy support

* Fixed PR comments

* Improve documentation, add an example

* Fix setup.inc.sh execution rights

* Fix PR comments

* Fix PR comments

* Fix PR comments
* add setup script for rfid reader. moved python script

* add check for venv activation

* fix

* fix cd fail behavior (dont start subprocess)

* add script for run jukebox for venv.
updated docs.

* add setup script for audio sink. moved python script

* add script for rpc tool. moved python script

* add script for sniffer tool. moved python script

* fixed parameter passing

* fix paths

* fix flake8

* fix comments and docs

* fixed parameter passing

* some fixes

* fixed execution rights

* some fixes

* move scripts to python root again (failing import paths).
fixed absolute path in caller scripts

* fix relative paths

* update notes about config file paths

* update caller scripts path handling

* update comments

* add venv activation to tests

* explicit installation of python3-venv not needed

* renamed audio setup file. 
updated docs path.

* Update configuration.md

* Update coreapps.md

* update motd message

* fix execution rights for motd file.
refactored into own postinstall script

* fix execution right for audio setup

---------

Co-authored-by: pabera <[email protected]>
* fix doc

* prevent run with existing installation

* update docs for update path

* Update documentation/builders/update.md

Co-authored-by: s-martin <[email protected]>

---------

Co-authored-by: s-martin <[email protected]>
@pabera pabera marked this pull request as ready for review February 4, 2024 18:55
pabera and others added 3 commits February 4, 2024 20:07
* reworked autohotspot configuration option

* updated autohotspot creation (copied changes from v2)

* fix placeholder prefix/suffix (%%)

* moved files in subdir for dhcpcd

* renamed setup_autohotspot file

* added switch for network settings

* added autohotspot based on NetworkManager

* update function names

* fixed duplicate variables

* fix var check

* handle CI run for autohotspot setup

* changed network management check for ci

* fixed timer service name

* renamed script. delete obsolete file

* fix syntax

* fix timer service unit definition

* move is is_service_enabled to helper class

* extracted konstant and fixed formatting

* fix indentation

* added shebang again

* some refactorings in autohotspot script

* fix checks

* fix for local vars and arrays. refactor nw_profiles.

* refactored var value and log output

* refactor device and ssid checks

* refactore force_hotspot option

* refactor is_active_ap check and bugfixes

* update log output

* made timer reenablement configurable

* phoniebox header added

* moved check to helper. removed obsolete  code

* removed ip configuration. changed ip

* add note for static ip conf with autohotspot

* harmonize logging and opts

* changed dhcpcd timer from cron to systemd.
add seperate daemon service for wpa-supplicant handling

* fix wifi after restart if autohot spot is deactivated

* add hostname to default hotspot ssid

* updated autohotspot docs

* fix static ip for NetworkManager.
fix ipv6 disablement

* fix boot file paths

* some fixes

* pull config file backup to helpers

* combine service is-enabled calls

* update network related docs

* Update autohotspot.md

Aligned some language and typos

* Update installation.md

Aligning wording and removing typos

---------

Co-authored-by: pabera <[email protected]>
@AlvinSchiller
Copy link
Collaborator

AlvinSchiller commented Feb 4, 2024

Test errors for Web App download can be ignored. This is caused due to the version bump, as no bundle is build for a release version on develop.
Will be fixed after the release and the bump to the next develop version.

@AlvinSchiller AlvinSchiller linked an issue Feb 4, 2024 that may be closed by this pull request
@pabera pabera merged commit 92b4c4b into future3/main Feb 4, 2024
25 of 29 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
future3 Relates to future3 development
Projects
None yet
Development

Successfully merging this pull request may close these issues.

No Skip Rewind Pause Stop Option available?
9 participants