Configure the UI endpoint and the router

Changes proposed:

Prepare the endpoint for UI
Add router setup

Code of Conduct
By submitting this issue, you agree to follow our Code of Conduct

[x] I agree to follow this project's Code of Conduct

Codecov Report

Merging #26 (d102db9) into master (731442b) will increase coverage by 0.18%.
The diff coverage is 23.17%.

@@            Coverage Diff             @@
##           master      #26      +/-   ##
==========================================
+ Coverage   20.53%   20.72%   +0.18%
==========================================
  Files          18       20       +2
  Lines         901      941      +40
  Branches        6        6
==========================================
+ Hits          185      195      +10
- Misses        710      740      +30
  Partials        6        6

Flag
Coverage Δ

backend
20.72% <23.17%> (+0.18%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...es/backend/src/platform/controllers/github_ctl.clj
9.75% <ø> (-1.12%)
:arrow_down:

modules/backend/src/platform/main.clj
25.00% <0.00%> (-1.93%)
:arrow_down:

modules/backend/src/platform/models/github_sql.clj
11.05% <0.00%> (+0.05%)
:arrow_up:

modules/backend/src/platform/router.clj
15.38% <15.38%> (ø)

modules/backend/src/platform/system/app_runner.clj
40.00% <25.00%> (-26.67%)
:arrow_down:

modules/backend/src/platform/api/v1/handlers.clj
40.00% <40.00%> (ø)

...ackend/src/platform/system/web/middleware/cors.clj
44.44% <44.44%> (ø)

...end/src/platform/system/web/middleware/context.clj
57.14% <57.14%> (ø)


in the services section unable to click read more because it keep flipping the cards

Fixed please check https://github.com/anuragverma108/WildGuard/pull/1423


Phonon with Vue js

Love what you have done with Phonon - tried it out with Riot and it works pretty well. Have you or anyone every used Phonon with Vuejs? Would love to see an example of this.

@jsantari : I forgot to notify you, but the example with VueJS is available

Can't find the example any where. Is it available somewhere now?

For v1 it's here https://github.com/quark-dev/Phonon-Framework/tree/v1/examples/pizza-app-with-vue


[ERROR] cannot use a string pattern on a bytes-like object

Hi,
when I try to compile I get this error:
[ERROR] cannot use a string pattern on a bytes-like object
[mbed] ERROR: "/usr/local/bin/python3" returned error code 1.
I am using Ubuntu 16.04 with Python3.6.0 and mbed-cli 1.7.3.
I created a test project with the command:
mbed new test
and then I try to compile with:
mbed compile -m auto -t GCC_ARM
Regards.

Cc @cmonr

ARM Internal Ref: MBOTRIAGE-1151

Using python 3.5.2 I got:
Traceback (most recent call last):
File "/home/peluso/Work/arm/test/mbed-os/tools/make.py", line 41, in
from tools.tests import TESTS, Test, TEST_MAP
File "/home/peluso/Work/arm/test/mbed-os/tools/tests.py", line 18, in
from tools.data.support import DEFAULT_SUPPORT, CORTEX_ARM_SUPPORT
File "/home/peluso/Work/arm/test/mbed-os/tools/data/support.py", line 17, in
from tools.targets import TARGETS
File "/home/peluso/Work/arm/test/mbed-os/tools/targets/init.py", line 557, in
update_target_data()
File "/home/peluso/Work/arm/test/mbed-os/tools/targets/init.py", line 546, in update_target_data
in Target.get_json_target_data().items()
File "/home/peluso/Work/arm/test/mbed-os/tools/targets/init.py", line 70, in wrapper
CACHES[(func.name, args)] = func(*args, **kwargs)
File "/home/peluso/Work/arm/test/mbed-os/tools/targets/init.py", line 142, in get_json_target_data
Target.__targets_json_location_default)
File "/home/peluso/Work/arm/test/mbed-os/tools/utils.py", line 351, in json_file_to_dict
object_pairs_hook=OrderedDict)
File "/usr/lib/python3.5/json/init.py", line 312, in loads
s.class.name))
TypeError: the JSON object must be str, not 'bytes'

@theotherjimmy mbed-os-5.9.2

I get a different traceback on that version, corrected by https://github.com/ARMmbed/mbed-os/pull/7466

you may want to git clean -xf in mbed-os. That will clean up any old byte code that you may have generated with an old version of mbed-os (which had that problem).

@theotherjimmy I tried the following commands:
cd mbed-os
git clean -xf
but I continue to get the same error message when I try to compile.

I cannot reproduce the specific error you encountered.

Having the same issue here. Installed mbed cli though mingw, using python 3.4.5, downloaded the mbed-os-example-blinky project and get the same error as @ValentinoPeluso

Also having the same issue. I was trying to compile the Blinky example code. Using Windows and installed mbed-cli through pip.
Version
> mbed-cli
usage: mbed [-h] [--version]             ...

Command-line code management tool for ARM mbed OS - http://www.mbed.com
version 1.7.5

> mbed ls
mbed-os-example-blinky (#1cd80b0e70a9)
mbed-os (#62f8b922b420, tags: latest, mbed-os-5.9.2)

> python --version
Python 3.6.5

Compiler Path
> mbed config --list
[mbed] Global config:
GCC_ARM=C:\Program Files (x86)\GNU Tools Arm Embedded\7 2018-q2-update\bin

Command and Output
> mbed compile -m NUCLEO_L476RG -t GCC_ARM -vv
---
[mbed] Working path "C:\...\workspace\mbed-os-example-blinky" (program)
[mbed] Exec "c:\...\appdata\local\programs\python\python36-32\python.exe -m pip list -l" in "C:\...\workspace\mbed-os-example-blinky"
Package          Version
---------------- ---------
appdirs          1.4.3
beautifulsoup4   4.6.0
certifi          2018.4.16
chardet          3.0.4
colorama         0.3.9
enum34           1.1.6
fasteners        0.14.1
future           0.16.0
fuzzywuzzy       0.16.0
idna             2.7
intelhex         2.2.1
intervaltree     2.1.0
Jinja2           2.10
jsonschema       2.6.0
junit-xml        1.8
lockfile         0.12.2
MarkupSafe       1.0
mbed-cli         1.7.5
mbed-greentea    1.4.0
mbed-host-tests  1.4.0
mbed-ls          1.4.6
mock             2.0.0
monotonic        1.5
pbr              4.1.0
pip              10.0.1
prettytable      0.7.2
pyelftools       0.24
pyOCD            0.10.0
pyserial         3.4
pywinusb         0.4.2
PyYAML           3.13
requests         2.19.1
setuptools       39.0.1
six              1.11.0
sortedcontainers 2.0.4
urllib3          1.23
websocket-client 0.48.0
[mbed] Exec "c:\...\appdata\local\programs\python\python36-32\python.exe -u C:\...\workspace\mbed-os-example-blinky\mbed-os\tools\make.py -t GCC_ARM -m NUCLEO_L476RG --source . --build .\BUILD\NUCLEO_L476RG\GCC_ARM -v" in "C:\...\workspace\mbed-os-example-blinky"
Traceback (most recent call last):
  File "C:\...\workspace\mbed-os-example-blinky\mbed-os\tools\make.py", line 290, in <module>
    ignore=options.ignore)
  File "C:\...\workspace\mbed-os-example-blinky\mbed-os\tools\build_api.py", line 555, in build_project
    toolchain.version_check()
  File "C:\...\workspace\mbed-os-example-blinky\mbed-os\tools\toolchains\gcc.py", line 118, in version_check
    match = self.GCC_VERSION_RE.search(stdout)
TypeError: cannot use a string pattern on a bytes-like object
[mbed] ERROR: "c:\...\appdata\local\programs\python\python36-32\python.exe" returned error.
       Code: 1
       Path: "C:\...\workspace\mbed-os-example-blinky"
       Command: "c:\...\appdata\local\programs\python\python36-32\python.exe -u C:\...\workspace\mbed-os-example-blinky\mbed-os\tools\make.py -t GCC_ARM -m NUCLEO_L476RG --source . --build .\BUILD\NUCLEO_L476RG\GCC_ARM -v"

I looked into this issue and found a temporary fix.
Original mbed-os\tools\toolchains\gcc.py
# this function checks the gcc compiler version
 def version_check(self):
        # run "%GCC_ARM_PATH%\arm-none-eabi-gcc --version" and store the output into "stdout"
        stdout, _, retcode = run_cmd([self.cc[0], "--version"], redirect=True)
        msg = None
        match = self.GCC_VERSION_RE.search(stdout) # this line is the problem
        ...

Output value of "arm-none-eabi-gcc --version"
> arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 7-2018-q2-update) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907]
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Basically gcc.py uses regex to extract the substring '7.3.1' but run_cmd() returns the value to byte, not string. That's why we get a TypeError.
Quick Fix. Modify gcc.py
    def version_check(self):
        stdout, _, retcode = run_cmd([self.cc[0], "--version"], redirect=True)
        msg = None
        stdout = stdout.decode("utf-8") # ADD THIS LINE
        match = self.GCC_VERSION_RE.search(stdout)

@Albis-dev Maybe you missed the comment above where I submitted a PR to mbed-os with a fix for the very issue you ran into. https://github.com/ARMmbed/mbed-os/pull/7466 is the PR.

@ValentinoPeluso @Albis-dev @mecwerks Since the PR that fixes the issues is now on master (and in the mbed-os-5.9 branch), would y'all mind updating your installations and verifying that the issue was fixed?

@ValentinoPeluso @Albis-dev @mecwerks Note that it's on master of mbed-os, and that you need to update mbed-os to get the fix.

@cmonr Can confirm it's working now.


ERROR - No module named 'celery_config' when triggering a separate task in Airflow on Docker

Deployment details
Running deployment on Docker for Local MWAA
aws-mwaa-local-runner:
https://github.com/aws/aws-mwaa-local-runner
What happened
When triggering a single task instance through the UI (on demand), as soon as I click Run I get an error "Ooops!
Something bad has happened."
Here is the stack trace:
local-runner_1  | /usr/local/lib/python3.7/site-packages/airflow/configuration.py:361 DeprecationWarning: The default_queue option in [celery] has been moved to the default_queue option in [operators] - the old setting has been used, but please update your config.
local-runner_1  | [2021-10-22 05:21:40,118] {{configuration.py:484}} ERROR - No module named 'celery_config'
local-runner_1  | [2021-10-22 05:21:40,124] {{app.py:1892}} ERROR - Exception on /run [POST]
local-runner_1  | Traceback (most recent call last):
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/configuration.py", line 482, in getimport
local-runner_1  |     return import_string(full_qualified_path)
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/utils/module_loading.py", line 32, in import_string
local-runner_1  |     module = import_module(module_path)
local-runner_1  |   File "/usr/lib64/python3.7/importlib/__init__.py", line 127, in import_module
local-runner_1  |     return _bootstrap._gcd_import(name[level:], package, level)
local-runner_1  |   File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
local-runner_1  |   File "<frozen importlib._bootstrap>", line 983, in _find_and_load
local-runner_1  |   File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
local-runner_1  | ModuleNotFoundError: No module named 'celery_config'
local-runner_1  |
local-runner_1  | During handling of the above exception, another exception occurred:
local-runner_1  |
local-runner_1  | Traceback (most recent call last):
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
local-runner_1  |     response = self.full_dispatch_request()
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
local-runner_1  |     rv = self.handle_user_exception(e)
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
local-runner_1  |     reraise(exc_type, exc_value, tb)
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
local-runner_1  |     raise value
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
local-runner_1  |     rv = self.dispatch_request()
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
local-runner_1  |     return self.view_functions[rule.endpoint](**req.view_args)
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/www/auth.py", line 51, in decorated
local-runner_1  |     return func(*args, **kwargs)
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/www/decorators.py", line 72, in wrapper
local-runner_1  |     return f(*args, **kwargs)
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/www/views.py", line 1525, in run
local-runner_1  |     from airflow.executors.celery_executor import CeleryExecutor
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/executors/celery_executor.py", line 72, in <module>
local-runner_1  |     celery_configuration = conf.getimport('celery', 'celery_config_options')
local-runner_1  |   File "/usr/local/lib/python3.7/site-packages/airflow/configuration.py", line 486, in getimport
local-runner_1  |     f'The object could not be loaded. Please check "{key}" key in "{section}" section. '
local-runner_1  | airflow.exceptions.AirflowConfigException: The object could not be loaded. Please check "celery_config_options" key in "celery" section. Current value: "celery_config.CUSTOM_CELERY_CONFIG".

What you expected to happen
single task is triggered on-demand and running
How to reproduce
Start Apache airflow locally in docker environment
Create a sample DAG
Go into Graph View
Click on the Task Instance
Click Run
It looks like a environment issue,
This option is incorrect:
https://github.com/aws/aws-mwaa-local-runner/blob/9deba415c94fee8443508e466709d35dbcde122c/docker/config/airflow.cfg#L643
Here is default value:
airflow/airflow/config_templates/default_airflow.cfg

Hey. We are also running into this issue. Please let us know if you find a fix for this.
We are also looking into it and will do the same.

Local-runner is not using celery.  Please confirm if you're seeing this in 2.2.2 (latest version)

Hi,
Still facing the same issue with local runner.
ERROR - No module named 'celery_config' aws-mwaa-local-runner-2_2-local-runner-1  | [2022-11-09 00:41:47,438] {{app.py:1892}} ERROR - Exception on /run [POST] aws-mwaa-local-runner-2_2-local-runner-1  | Traceback (most recent call last): aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/airflow/configuration.py", line 482, in getimport aws-mwaa-local-runner-2_2-local-runner-1  |     return import_string(full_qualified_path) aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/airflow/utils/module_loading.py", line 32, in import_string aws-mwaa-local-runner-2_2-local-runner-1  |     module = import_module(module_path) aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/lib64/python3.7/importlib/__init__.py", line 127, in import_module aws-mwaa-local-runner-2_2-local-runner-1  |     return _bootstrap._gcd_import(name[level:], package, level) aws-mwaa-local-runner-2_2-local-runner-1  |   File "<frozen importlib._bootstrap>", line 1006, in _gcd_import aws-mwaa-local-runner-2_2-local-runner-1  |   File "<frozen importlib._bootstrap>", line 983, in _find_and_load aws-mwaa-local-runner-2_2-local-runner-1  |   File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked aws-mwaa-local-runner-2_2-local-runner-1  | ModuleNotFoundError: No module named 'celery_config' aws-mwaa-local-runner-2_2-local-runner-1  |  aws-mwaa-local-runner-2_2-local-runner-1  | During handling of the above exception, another exception occurred: aws-mwaa-local-runner-2_2-local-runner-1  |  aws-mwaa-local-runner-2_2-local-runner-1  | Traceback (most recent call last): aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app aws-mwaa-local-runner-2_2-local-runner-1  |     response = self.full_dispatch_request() aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request aws-mwaa-local-runner-2_2-local-runner-1  |     rv = self.handle_user_exception(e) aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception aws-mwaa-local-runner-2_2-local-runner-1  |     reraise(exc_type, exc_value, tb) aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise aws-mwaa-local-runner-2_2-local-runner-1  |     raise value aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request aws-mwaa-local-runner-2_2-local-runner-1  |     rv = self.dispatch_request() aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request aws-mwaa-local-runner-2_2-local-runner-1  |     return self.view_functions[rule.endpoint](**req.view_args) aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/airflow/www/auth.py", line 51, in decorated aws-mwaa-local-runner-2_2-local-runner-1  |     return func(*args, **kwargs) aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/airflow/www/decorators.py", line 72, in wrapper aws-mwaa-local-runner-2_2-local-runner-1  |     return f(*args, **kwargs) aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/airflow/www/views.py", line 1536, in run aws-mwaa-local-runner-2_2-local-runner-1  |     from airflow.executors.celery_executor import CeleryExecutor aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/airflow/executors/celery_executor.py", line 72, in <module> aws-mwaa-local-runner-2_2-local-runner-1  |     celery_configuration = conf.getimport('celery', 'celery_config_options') aws-mwaa-local-runner-2_2-local-runner-1  |   File "/usr/local/lib/python3.7/site-packages/airflow/configuration.py", line 486, in getimport aws-mwaa-local-runner-2_2-local-runner-1  |     f'The object could not be loaded. Please check "{key}" key in "{section}" section. ' aws-mwaa-local-runner-2_2-local-runner-1  | airflow.exceptions.AirflowConfigException: The object could not be loaded. Please check "celery_config_options" key in "celery" section. Current value: "celery_config.CUSTOM_CELERY_CONFIG".

Were you able to fix this issue?


feat: improve Cpf debug output format

Motivation
In a list containing several objects, the current approach seems overly intricate and notably unavailing, mainly due to the representation of values in ASCII instead of their true numerical forms, coupled with the requirement for a separate line for each digit. This aims to enhance readability.
Example
Changes the debug representation from
Cpf {
    digits: [
        51,
        56,
        53,
        50,
        49,
        49,
        51,
        57,
        48,
        51,
        57,
    ],
}

to
Cpf(
    385.211.390-39,
)

OMG that's great!


Splits get_region and get_token to separate scripts and adds server selection ability to run_setup

Get region and get token now operate separately, if calling one directly with the intent of connecting like the old setup, get_region is the default script to call.

I think this code is clean. It could use some small improvements, but the general idea and direction is very good.
@dom11990 and @iPherian: This was a change that you requested and recommended. What do you think about this fork?

@g00nix Looks good, apart from minor improvements as you say, and one suggestion: Make get_token accept the meta ip and hostname as env vars so it doesn't have to do a full region scan each time. Example in his fork: PR faireOwl/manual-connections#1
@faireOwl

We need to set up a permanent endpoint that allows you to generate tokens, so that you are not forced to go through the meta to get your token. This will allow you to properly separate get_region and get_token, since you won't need the region to get the token.
This mostly means this project will get postponed by another week, till we manage to host the new endpoint. I will try to get it done faster, but no promises. :smile_cat:

Merged to https://github.com/pia-foss/manual-connections/tree/v2.0.0
Closing this PR.


Add CI workflow

The flake checks can be the same as what's in the cloud-reaper workflow file. Other checks should run parts of nix-watch itself and look for specific things, e.g:
nix-watch -c
touch <some file>

should cause the current process to be killed, resulting in an error: interrupted by user if the process takes long enough. If the output of nix-watch is captured to a file, a grep of the file for that error could be one way of checking it's working. Another way to test that the -c, --clear flag works would be to check the status of the PID.

There's a bash testing framework called bat that could aid in testing functionality.

#19


librespot: bad credentials

System Health details
System Information

version
core-2024.9.3

installation_type
Home Assistant OS

dev
false

hassio
true

docker
true

user
root

virtualenv
false

python_version
3.12.4

os_name
Linux

os_version
6.6.46-haos

arch
x86_64

timezone
Europe/Berlin

config_dir
/config

Home Assistant Community Store

GitHub API
ok

GitHub Content
ok

GitHub Web
ok

HACS Data
ok

GitHub API Calls Remaining
5000

Installed Version
2.0.1

Stage
running

Available Repositories
1424

Downloaded Repositories
7

Home Assistant Cloud

logged_in
false

can_reach_cert_server
ok

can_reach_cloud_auth
ok

can_reach_cloud
ok

Home Assistant Supervisor

host_os
Home Assistant OS 13.1

update_channel
stable

supervisor_version
supervisor-2024.09.1

agent_version
1.6.0

docker_version
26.1.4

disk_total
30.8 GB

disk_used
10.5 GB

healthy
true

supported
true

host_connectivity
true

supervisor_connectivity
true

ntp_synchronized
true

virtualization
kvm

board
ova

supervisor_api
ok

version_api
ok

installed_addons
Mosquitto broker (6.4.1), Samba share (12.3.2), Zigbee2MQTT (1.40.1-1), NGINX Home Assistant SSL proxy (3.10.1), Advanced SSH & Web Terminal (19.0.0), Matter Server (6.5.1)

Dashboards

dashboards
6

resources
1

views
5

mode
storage

Recorder

oldest_recorder_run
19. September 2024 um 04:57

current_recorder_run
28. September 2024 um 08:19

estimated_db_size
1263.86 MiB

database_engine
sqlite

database_version
3.45.3

SpotifyPlus

integration_version
v1.0.58

clients_configured
1: meiser79 (premium)

api_endpoint_reachable
ok

Checklist

[X] I have enabled SmartInspect debug logging for my installation.
[X] I have filled out the issue template to the best of my ability.
[X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
[X] This issue is not a duplicate issue of any previous issues..

Describe the issue
I try to use SpotifyPlus together with a librespot instance (running latest 0.5.0-dev compiled today in a Docker container). The zeroconf authentication fails with
[2024-09-28T09:16:31Z ERROR librespot] could not initialize spirc: Permission denied { Login failed with reason: Bad credentials }
I captured the zeroconf communication and posted it in the HA forum.
I do not see why it does not work. BTW, my loginID is not a canonical one, but is identical to my username.
Reproduction steps
none
Debug logs
none

Diagnostics dump
No response

I have spent the last 3 days learning about spotifyd, and how it works.
I was finally able to get Spotifyd installed on my WSL Debian image, and running with PulseAudio. I am now in the process of testing.
A few things I have learned thus far:
as you said, it (and Librespot) does not support the zeroconf resetUsers endpoint. I have changes in the works for SpotifyPlus to account for this.
Spotifyd must be ran in “discovery” mode in order for it to register itself with zeroconf / mDNS. If you specify the “username” config option, then it will NOT register with zeroconf (even if you have the zeroconf_port config option set). SpotifyPlus uses zeroconf discovery to find Spotify Connect devices, and will not find the Spotifyd device if running in username mode.
The Librespot credentials.json file contents can be used directly as the username, password, and Authorization type when building the blob for the zeroconf addUser call. The credentials file can be generated by running Spotifyd service in discovery mode, and authenticating to it via one of the Spotify apps. It will create the credentials.json file in the cache folder (specified by cache_path config setting).
Will keep you posted as I learn more.

Thanks a lot for you work!!! I'm running librespot in discovery mode and don't use any credentials.json.

@meiser79
Question for you - did librespot generate a credentials.json file for you in its cache location?  This would be the same location it puts audio files, volume files, etc.  If you are running spotifyd, it places the credentials file in the location specified by the cache_path configuration variable (e.g. home/user/.cache/spotifyd/credentials.json).
Here's what I am thinking ...
The Librespot credentials.json file contents can be used directly as the username, password, and Authorization type when building the blob for the zeroconf addUser call.  I believe the contents of the credentials file do not change, as long as the password is not changed for the user.   In order for SpotifyPlus to authenticate to Spotify using librespot, it needs to access the same credentials that librespot uses to authenticate.  SpotifyPlus will not be able to access the librespot cache location to load the credentials file, so the user would have to copy the credentials file to a location that SpotifyPlus can access.  For HA users, this would be the /config/.storage location.
Furthermore, it appears the librespot  credentials.json file is structured for a single user's credentials.   SpotifyPlus supports multiple users, so it would need to access different credential files based on the user that is authenticating.  This could be accomplished by renaming the crednetials.json file to something like credentials_username.json in the SpotifyPlus location.  Note that you would not rename the librespot cache location file.
Thoughts?  I have most of this tested and working - just have to implement the multi-user support, which is just a file path formulation based on the user that is authenticating.

As I only run librespot in discovery mode, there's no credentials.json. I could create a credentials.json via librespot's OAuth option and then copy it to the right location.
Your proposal is fine for me even though it's means to handle all this via SSH and not the HA UI. But that's also fine for me.
I for sure do not understand all details about librespot, but I would really like to understand why it works with the Spotify Android app or the Spotify Desktop app even though these apps also don't know the credentials.json.
Do you know what is missing on the spotifyd/librespot side?

I am not sure why it works with Spotify Android App myself.  I believe that the Spotify embedded client uses another method besides zeroconf to detect the presence of Spotify Connect devices on the network (SSDP / Simple Service Discovery Protocol maybe?), as well as the zeroconf / mDNS / Bonjour service.
As for the discovery mode, you should be able to enable discovery mode (like spotifyd does) on librespot, and it will generate the credentials.json once a Spotify App client (mobile, web, etc) connects up to it.
I am not sure if both discovery AND oauth login are required to do that or not.  I would think just the discovery mode would be enough.
I would try just discovery mode first to see if it generates the credentials file; if it doesn't, then enable the oauth mode.  Again, I am not overly familiar with librespot, so not sure.

This is the debug output if the Spotify Android app connects:
sysadmin@server:~$ ./librespot -v
[2024-09-28T16:14:42Z INFO  librespot] librespot 0.5.0-dev 118a9e1 (Built on 2024-09-28, Build ID: FvANduSm, Profile: release)
[2024-09-28T16:14:42Z TRACE librespot] Command line argument(s):
[2024-09-28T16:14:42Z TRACE librespot] 		v
[2024-09-28T16:14:42Z DEBUG librespot_core::session] new Session
[2024-09-28T16:14:42Z DEBUG librespot_discovery::server] Zeroconf server listening on <IP_ADDRESS>:41769
[2024-09-28T16:14:42Z INFO  librespot_playback::mixer::softmixer] Mixing with softvol and volume control: Log(60.0)
[2024-09-28T16:14:42Z DEBUG librespot_playback::player] new Player [0]
[2024-09-28T16:14:42Z INFO  librespot_playback::convert] Converting with ditherer: tpdf
[2024-09-28T16:14:42Z INFO  librespot_playback::audio_backend::pulseaudio] Using PulseAudioSink with format: S16
[2024-09-28T16:14:44Z WARN  libmdns::fsm] error sending packet Os { code: 99, kind: AddrNotAvailable, message: "Cannot assign requested address" }
[2024-09-28T16:14:46Z WARN  libmdns::fsm] error sending packet Os { code: 99, kind: AddrNotAvailable, message: "Cannot assign requested address" }
[2024-09-28T16:14:49Z WARN  libmdns::fsm] error sending packet Os { code: 99, kind: AddrNotAvailable, message: "Cannot assign requested address" }
[2024-09-28T16:14:50Z WARN  libmdns::fsm] error sending packet Os { code: 99, kind: AddrNotAvailable, message: "Cannot assign requested address" }
[2024-09-28T16:14:52Z WARN  libmdns::fsm] error sending packet Os { code: 99, kind: AddrNotAvailable, message: "Cannot assign requested address" }
[2024-09-28T16:14:55Z WARN  libmdns::fsm] error sending packet Os { code: 99, kind: AddrNotAvailable, message: "Cannot assign requested address" }
[2024-09-28T16:14:57Z WARN  libmdns::fsm] error sending packet Os { code: 99, kind: AddrNotAvailable, message: "Cannot assign requested address" }
[2024-09-28T16:14:57Z DEBUG librespot_discovery::server] POST "/" {}
[2024-09-28T16:14:57Z DEBUG librespot_core::session] Shutdown: Invalidating session
[2024-09-28T16:14:57Z DEBUG librespot::component] new MercuryManager
[2024-09-28T16:14:57Z DEBUG librespot::component] new ChannelManager
[2024-09-28T16:14:57Z DEBUG librespot_core::session] new Session
[2024-09-28T16:14:57Z DEBUG librespot_connect::spirc] new Spirc[0]
[2024-09-28T16:14:57Z DEBUG librespot::component] new MercuryManager
[2024-09-28T16:14:57Z DEBUG librespot::component] new ApResolver
[2024-09-28T16:14:57Z DEBUG librespot_core::http_client] Requesting https://apresolve.spotify.com/?type=accesspoint&type=dealer&type=spclient
[2024-09-28T16:14:57Z DEBUG librespot_playback::player] command=SetSession
[2024-09-28T16:14:57Z DEBUG librespot_core::session] drop Session
[2024-09-28T16:14:57Z DEBUG librespot::component] drop ChannelManager
[2024-09-28T16:14:57Z DEBUG librespot::component] drop MercuryManager
[2024-09-28T16:14:57Z INFO  librespot_core::session] Connecting to AP "ap-gew4.spotify.com:4070"
[2024-09-28T16:14:58Z DEBUG librespot_core::connection] Authenticating with AP using AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS
[2024-09-28T16:14:58Z INFO  librespot_core::session] Authenticated as 'meiser79' !
[2024-09-28T16:14:58Z DEBUG librespot_connect::spirc] canonical_username: meiser79
[2024-09-28T16:14:58Z DEBUG librespot_playback::player] command=AddEventSender

This is when SpotifyPlus authenticates:
sysadmin@server:~$ ./librespot -v
[2024-09-28T16:21:36Z INFO  librespot] librespot 0.5.0-dev 118a9e1 (Built on 2024-09-28, Build ID: FvANduSm, Profile: release)
[2024-09-28T16:21:36Z TRACE librespot] Command line argument(s):
[2024-09-28T16:21:36Z TRACE librespot] 		v
[2024-09-28T16:21:36Z DEBUG librespot_core::session] new Session
[2024-09-28T16:21:36Z DEBUG librespot_discovery::server] Zeroconf server listening on <IP_ADDRESS>:38159
[2024-09-28T16:21:36Z INFO  librespot_playback::mixer::softmixer] Mixing with softvol and volume control: Log(60.0)
[2024-09-28T16:21:36Z DEBUG librespot_playback::player] new Player [0]
[2024-09-28T16:21:36Z INFO  librespot_playback::convert] Converting with ditherer: tpdf
[2024-09-28T16:21:36Z INFO  librespot_playback::audio_backend::pulseaudio] Using PulseAudioSink with format: S16
[2024-09-28T16:22:03Z DEBUG librespot_core::session] Shutdown: Invalidating session
[2024-09-28T16:22:03Z DEBUG librespot::component] new MercuryManager
[2024-09-28T16:22:03Z DEBUG librespot::component] new ChannelManager
[2024-09-28T16:22:03Z DEBUG librespot_core::session] new Session
[2024-09-28T16:22:03Z DEBUG librespot_connect::spirc] new Spirc[0]
[2024-09-28T16:22:03Z DEBUG librespot::component] new MercuryManager
[2024-09-28T16:22:03Z DEBUG librespot::component] new ApResolver
[2024-09-28T16:22:03Z DEBUG librespot_core::http_client] Requesting https://apresolve.spotify.com/?type=accesspoint&type=dealer&type=spclient
[2024-09-28T16:22:03Z DEBUG librespot_playback::player] command=SetSession
[2024-09-28T16:22:03Z DEBUG librespot_core::session] drop Session
[2024-09-28T16:22:03Z DEBUG librespot::component] drop ChannelManager
[2024-09-28T16:22:03Z DEBUG librespot::component] drop MercuryManager
[2024-09-28T16:22:04Z INFO  librespot_core::session] Connecting to AP "ap-gew4.spotify.com:4070"
[2024-09-28T16:22:04Z DEBUG librespot_core::connection] Authenticating with AP using AUTHENTICATION_USER_PASS
[2024-09-28T16:22:04Z ERROR librespot] could not initialize spirc: Permission denied { Login failed with reason: Bad credentials }

So there's the difference regarding the AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS vs. AUTHENTICATION_USER_PASS.

Yeppers - the SpotifyPlus app currently uses USER_PASS.  That will change (for librespot clients anyway) with the new release.
Also, do you know how librespot handles multiple users?  So if you had another Spotify account and you tried to connect up to spotifyd or your app that uses librespot, how it would handle it?  Does it create a separate credentials.json file?  Does it add both accounts to the same credentials.json?

FYI - just released a new version of the SpotifyPlus integration
[ 1.0.59 ] - 2024/09/28

Added support for devices that utilize spotifyd / librespot. See the wiki documentation for more information on how to configure support for spotifyD / librespot applications.

Requirements

SpotifyPlus integration (>= 1.0.59) is installed and properly configured.
librespot application is configured in discovery mode.
librespot credentials.json file copied to spotifywebapiPython storage location.

I think this will fix your problem.  Be sure to follow the wiki documentation for how to configure the access to librespot credentials.json file.
Reach out if you have any questions or problems with it.

Hi, I cannot update the integration in HA. Do you need to make a release as version 1.0.59 is not shown in the Releaases tab.
I'll check with multiple accounts, we have a family account with 2 accounts, let's see how librespot handles it in the credentials.json.

@meiser79
DOH!  Sorry about that - I was in such a rush to get this out there, I forgot to publish the release.
Thanks for letting me know.
It is now published.

One remark; wiki says /config/.storage/spotifywebapiPython_librespot_credentials.json, but the file needs to be /config/.storage/SpotifyWebApiPython_librespot_credentials.json

btw, check out the spotifywebapipython librespot credentials file format wiki docs on adding multiple accounts to the copy of the librespot credentials file.  Be sure to NOT modify the original credentials.json file that librespot uses - it won't recognize multiple accounts in the file.
Instead of looking like this:
{"username":"31l77xxxxxxxxxxxxxxxxx","auth_type":1,"auth_data":"QVFBOW ... AydVY="}

it will look like this:
[
{"username":"31l77xxxxxxxxxxxxxxxxx","auth_type":1,"auth_data":"QVFBOW ... AydVY="},
{"username":"3222xxxxxxxxxxxxxxxxx","auth_type":1,"auth_data":"QVFBOW ... AydVY="}
]

Let me know how it goes.
Thanks

So with one user, it works fine. Thanks a lot!!
Testing with multiple accounts later.

Thanks for your help in testing.
I updated the wiki docs for the file name case.

I checked with 2 accounts which belong to the same family account. The content of librespot's credentials.json is replaced with the respective account token, so it just handles the last connected account.
I just have my "meiser79" account configured in HA. I can still start a playlist with this account if the other account is connected to the librespot device (it gets kicked out).
So from my point of view, everything works fine and as expected!!! Very well done!
Therefore, I close this bug report.


(refactor) Removes code-specific details from the

This PR removes code-specific details from the developers' documentation on building new exchange connectors.
The pages that are completely new consist of information that was migrated from the removed pages. That being said, I've edited them as well, so a read-through is a must.
ch[21305]

Created a separate PR to merge into the Foundation repository.


Memory allocation problem on a slurm system

Hello,
I was running the workflow for an extensive data set (over 800 samples) on a slrum platform (UPPMAX). I used the GATK approach with intervals. I got an error message like this:
rule create_cov_bed:
input: results/GCA_009792885.1/summary_stats/all_cov_sumstats.txt, results/GCA_009792885.1/callable_sites/all_samples.d4
output: results/GCA_009792885.1/callable_sites/lark20231207_callable_sites_cov.bed
jobid: 2558
benchmark: benchmarks/GCA_009792885.1/covbed/lark20231207_benchmark.txt
reason: Missing output files: results/GCA_009792885.1/callable_sites/lark20231207_callable_sites_cov.bed; Input files updated by another job: results/GCA_009792885.1/summary_stats/all_cov_sumstats.txt, results/GCA_009792885.1/callable_sites/all_samples.d4
wildcards: refGenome=GCA_009792885.1, prefix=lark20231207
resources: mem_mb=448200, mem_mib=427437, disk_mb=448200, disk_mib=427437, tmpdir=
sbatch: error: Memory specification can not be satisfied
sbatch: error: Batch job submission failed: Requested node configuration is not available
Traceback (most recent call last):
File "/crex/proj/uppstore2019097/nobackup/zongzhuang_larks_working/Final_variant_callinglarks/snpArcher/./profiles/slurm/slurm-submit.py", line 59, in
print(slurm_utils.submit_job(jobscript, **sbatch_options))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/crex/proj/uppstore2019097/nobackup/zongzhuang_larks_working/Final_variant_callinglarks/snpArcher/profiles/slurm/slurm_utils.py", line 131, in submit_job
raise e
File "/crex/proj/uppstore2019097/nobackup/zongzhuang_larks_working/Final_variant_callinglarks/snpArcher/profiles/slurm/slurm_utils.py", line 129, in submit_job
res = subprocess.check_output(["sbatch"] + optsbatch_options + [jobscript])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/sw/apps/conda/latest/rackham/lib/python3.11/subprocess.py", line 466, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/sw/apps/conda/latest/rackham/lib/python3.11/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['sbatch', '--partition=core', '--time=7-00:00:00', '--ntasks=8', '--output=logs/slurm/slurm-%j.out', '--account=naiss2023-5-278', '--mem=448200', '/crex/proj/uppstore2019097/nobackup/zongzhuang_larks_working/Final_variant_callinglarks/snpArcher/.snakemake/tmp.fi5cgg1q/snakejob.create_cov_bed.2558.sh']' returned non-zero exit status 1.
Error submitting jobscript (exit code 1):
Select jobs to execute...
There is not enough memory on the slurm system. I'm not sure where the issue is, whether due to I didn't ask for large enough memory in the setting or the HPC simply cannot provide that much memory. Should I probably change the source code to ask for a larger memory allocation for the workflow from the beginning (e.g. more than 1000 nodes)?
Besides, the whole workflow runs not that fast either; for the bam2vcf jobs, it reported a progress of 2% every 24 hours and obviously will go over the time limitation of the snakemake slurm job. Could you please give some suggestions on this? Thanks in advance.
Best,
Zongzhuang

Hi Zongzhuang, sorry for your issues with this. Could you provide your config, resource config, and command line used to run snparcher? The create_cov_bed step is pretty memory intensive so that could be the issue with regards to your posted error log. As for slow progress, that could be a number of things outside of snpArcher's control, such as HPC queue and resource limits. However, please post those things above, and we can try to diagnose.

@cademirch Thanks for your suggestion! Here are the config, resources, and the bash script I used to run snparcher (.sh). They are all archived in this zip file.
By asking the UPPMAX support, I got a suggestion to ask for a fat node partition job of at least 512 GB (-C 512 GB) instead of using the core partition as I did, which has at most 128 GB. Is this something I can change in the cluster-config file? Besides, since there are only a few fat nodes on the cluster, is it possible to make the workflow only submit the jobs with intensive memory requirements in the node partition, and the others keep with the previous setting? I'm also unsure if I need to kill the current process and restart it to apply the changes.
Zongzhuang_config.zip

Hi Zonghuang,
I took a look and you configs look OK to me. One thing I will suggest is using the --slurm option when executing Snakemake instead of the profile. See these docs for more details: https://snakemake.readthedocs.io/en/v7.32.3/executing/cluster.html#executing-on-slurm-clusters
As for submitting certain rules to specific partitions this is possible, the docs above detail how. I would suggest creating a YAML profile and you can define which rules will go to which partition. I'll provide an example here:
uppmax_example_profile.yaml
slurm: True # same as `--slurm on command line`
jobs: 1000 # set number of jobs to run concurrently
use-conda: True
# can set other wanted command line options here
default-resources:
  slurm_partition: <Your partition name here> # This will be default partition for all rules
  slurm_account: <Your slurm account> # If applicable on your cluster
set-resources:
  create_cov_bed:
     slurm_partition: <Your big partition name here> # This will override default partition for this rule
 # ... you can specify partitions for certain rules by following this pattern

Then when you run snparcher you can do so with this profile. Let me know if this helps!

Hi Cade,
Many thanks for your explanation!
I'm unsure whether using the --slurm option without the --profile option can work in this case. The cpus-per-task issue on slurm system seems to persist still, which is now partially solved by an edition in profiles/slurm/slurm_utils.py.
If this is the case that I still have to use the --profile option, can I probably modify profiles/slurm/config.yaml (or something in cluster_config.yml?) for submitting certain rules to specific partitions?

Okay, sorry I didn't realize that issue also. So in your shell script you sent above looks like this:
❯ cat run_pipeline_zongz1123.sh
#!/bin/bash
#SBATCH -A naiss2023-5-278
#SBATCH -p core
#SBATCH -n 1
#SBATCH -t 10-00:00:00
#SBATCH -J snpArcher
#SBATCH -e snpArcher_%A_%a.err # File to which STDERR will be written
#SBATCH -o snpArcher_%A_%a.out
#SBATCH --mail-type=all
#SBATCH<EMAIL_ADDRESS>module load conda/latest

CONDA_BASE=$(conda info --base)
source $CONDA_BASE/etc/profile.d/conda.sh
mamba activate snparcher
snakemake --snakefile workflow/Snakefile --profile ./profiles/slurm

You would edit the file .profiles/slurm to include this:
default-resources:
  slurm_partition: <Your partition name here> # This will be default partition for all rules
  slurm_account: <Your slurm account> # If applicable on your cluster
set-resources:
  create_cov_bed:
     slurm_partition: <Your big partition name here> # This will override default partition for this rule
 # ... you can specify partitions for certain rules by following this pattern

Let me know if this makes sense and is helpful!

Ah my apologies, I messed up with what I posted. I believe what you have is correct. It's a bit confusing between the two main ways to run SLURM with snakemake. I will look more into the issue you posted above as well now that I have a slurm cluster to test on.

Hello!
Just to follow up on this discussion, how is memory getting determined for this rule? Is it modifiable and capabale of being run with lower memory? looking at the create_cov_bed rule I don't see any resources section.
The discussion above could be a potential solution, but we're running this rule and it's trying to request a ton of memory (1,700 GB) that may not exist on any node on our computing cluster (error message below saying "Requested node configuration is not available").
If it's useful information, we're using low-depth human sample (~325) mapped to the hg38 genome, which is quite complete.
Sincerley,
Brian
[Wed Feb 7 13:22:58 2024]
rule create_cov_bed:
input: results/hg38/summary_stats/all_cov_sumstats.txt, results/hg38/callable_sites/all_samples.d4
output: results/hg38/callable_sites/past_and_turk_callable_sites_cov.bed
jobid: 1634
benchmark: benchmarks/hg38/covbed/past_and_turk_benchmark.txt
reason: Missing output files: results/hg38/callable_sites/past_and_turk_callable_sites_cov.bed
wildcards: refGenome=hg38, prefix=past_and_turk
resources: mem_mb=1743686, mem_mib=1662909, disk_mb=1743686, disk_mib=1662909, tmpdir=
sbatch: error: Memory specification can not be satisfied
sbatch: error: Batch job submission failed: Requested node configuration is not available
Traceback (most recent call last):
File "/Genomics/ayroleslab2/emma/snpArcher/profiles/slurm/slurm-submit.py", line 59, in
print(slurm_utils.submit_job(jobscript, **sbatch_options))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Genomics/ayroleslab2/emma/snpArcher/profiles/slurm/slurm_utils.py", line 131, in submit_job
raise e
File "/Genomics/ayroleslab2/emma/snpArcher/profiles/slurm/slurm_utils.py", line 129, in submit_job
res = subprocess.check_output(["sbatch"] + optsbatch_options + [jobscript])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Genomics/argo/users/emmarg/.conda/envs/snparcher/lib/python3.12/subprocess.py", line 466, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Genomics/argo/users/emmarg/.conda/envs/snparcher/lib/python3.12/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['sbatch', '--time=9000', '--nodes=1', '--mem=1743686', '--
output=logs/slurm/slurm-%j.out', '--cpus-per-task=1',
'/Genomics/ayroleslab2/emma/snpArcher/past_and_turk/.snakemake/tmp.lh6xpm8u/snakejob.create_cov_bed.1634.sh']'
returned non-zero exit status 1.
Error submitting jobscript (exit code 1):

We have seen this a number of times - the default memory specification seems to go off the rails for a reason we don't yet understand.
One solution is to just define mem_mb =  some other reasonable number in the snakemake rule directly, in the resources section.
We are hoping to debug this but so far haven't tracked down the problem.

I think this may be happening since create_cov_bed is not defined in the resources yaml, so Snakemake comes up with a default:
https://github.com/snakemake/snakemake/blob/0998cc57cbd02c38d1a3bbf1662c8b23b7601e20/snakemake/resources.py#L11-L16

Hello, this issue has failed at the qc module of 2/3 otherwise successful runs. I have defined
resources:
    mem_mb = 16000

in the workflow/modules/qc/Snakemake file before the 'run' or 'shell' command in every rule, but the error and job failure persist. Snakefile and err file attached.
As you say Cade, the first error is for create_cov_bed, which is not a rule on this Snakefile.
err336.txt
Snakefile.txt

Ah my apologies, I messed up with what I posted. I believe what you have is correct. It's a bit confusing between the two main ways to run SLURM with snakemake. I will look more into the issue you posted above as well now that I have a slurm cluster to test on.

Thanks, Cade. The workflow is now appropriately finished. Defining the specific resource allocation of each job in cluster_config.yml , as I did, is the solution. : )


Fix/remove unnecessary UUID test case

resilves #1129

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

14 of 14 (100.0%)  changed or added relevant lines in 2 files are covered.
65 unchanged lines in 10 files lost coverage.
Overall coverage decreased (-0.08%) to 98.781%

Files with Coverage Reduction
New Missed Lines
%

core/src/data/value/mod.rs
1
98.95%

core/src/executor/validate.rs
1
99.24%

storages/sled-storage/src/index_mut.rs
1
98.66%

storages/sled-storage/src/lib.rs
1
98.61%

core/src/plan/mock.rs
2
95.37%

core/src/executor/fetch.rs
3
96.95%

storages/memory-storage/src/lib.rs
3
96.25%

core/src/executor/alter/table.rs
6
94.87%

storages/sled-storage/src/alter_table.rs
14
96.05%

core/src/executor/aggregate/mod.rs
33
82.9%

Totals

Change from base Build<PHONE_NUMBER>:
-0.08%

Covered Lines:
40772

Relevant Lines:
41275

💛  - Coveralls

I think I am ready for the review :)


Inputs register

Add input value and param validation and normalization in the compiler.
Essentially I've created a registry of input types that the compiler supports. The input classes will validate and morph params and values passed into it and throw errors accordingly.
If an input-type is not supported an error is thrown.
Resolves #148
Resolves #558
Will eventually help juttle/juttle-viewer#34
TODO:

[ ] Add support for multi-select input
[ ] Add support for date input
[ ] Add support for duration input

@dmajda @go-oleg - Because I'm a noob to this side of things a review would be appreciated before I wrap up the rest of the work for this pr.

Looks good overall. A couple of high-level notes:

I’d probably join all the commits except the last one into one (they are closely tied together).
(I think this is the first time ever I’m suggesting joining commits instead of splitting them :smile:.)

Names of normalizeValue and normalizeParams are misleading in that these methods actually also validate. Personally, I’d split them into validateValue/validateParams (or checkValue/checkParams) which would throw errors and normalizeValue/normalizeParams which would do any changes. But I understand this could lead to some code duplication so maybe it’s not that great idea. Up to you.
If you decide to keep validation and normalization together, then improving method names could help a little. But I don’t have any suggestions beside processValue/processParams which are fairly generic (but I think I’d still take generic over misleading).

What is the purpose of making inputs classes versus simple functions? The only thing they really do is that they check & normalize values/params and serialize the input back. There is no state involved which would make objects more natural solution.

Terminology: I think we’re using the term “options” for “things with dashes” both internally (in the code) and externally (e.g. in the docs). I think I’d prefer that over “params” for inputs too, unless you have some strong reason to deviate.


Azure Spatial Anchors, locate anchor race condition

When locating an anchor according to the documentation, Locate a cloud spatial anchor, you should subscribe to AnchorLocated on the current session.
Which works fine, except there is a race condition and if you try to use GetPose() on the foundanchor. It throws an "Didn't find the anchor" message.
The only solution is to use the SpatialAnchorManager's AnchorLocated.
So our code went from:
cloudManager.Session.AnchorLocated += (object sender, AnchorLocatedEventArgs args) =>
to
cloudManager.AnchorLocated += (object sender, AnchorLocatedEventArgs args) =>
This is the versions we're using:
Unity 2020.3.15f2,
Azure Spatial Anchors SDK 2.10.2
Mixed Reality Toolkit Foundation 2.7.2
OpenXR Plugin 1.0.1
The solution was found in this thread and answer.
https://github.com/Azure/azure-spatial-anchors-samples/issues/121#issuecomment-577574706

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 47ed5367-ee97-31a2-78ff-dd98e5c23d24
Version Independent ID: 2e975197-ca07-351a-f538-372500c0cc8f
Content: Create & locate anchors in Unity - Azure Spatial Anchors
Content Source: articles/spatial-anchors/how-tos/create-locate-anchors-unity.md
Service: azure-spatial-anchors
GitHub Login: @msftradford
Microsoft Alias: parkerra

@eirikhanssensteria thanks for reaching out! That CloudSpatialAnchor.GetPose() extension method relies on SpatialAnchorManager and the SpatialAnchorManager must do extra work during after the CloudSpatialAnchorSession.AnchorLocated event to make the pose available. We will work on adding more detail to our docs page (#31481757).


Switch from PM2 to node itself

On closer inspection, this gives operators a better method for failovering by doing this explicitly instead of implicitly within the container. The latter will force more memory consumption, make hateful logs, and is more difficult to check whether an instance had a problem and was auto restarted
@joostverdoorn @alexnederlof Please check whether you agree with the reasoning here

I have 0 knowledge on this subject

I don't think this is a good idea at all. Why wouldn't you want to use pm2? PM2 has all the logging and monitoring you need already, allows you to run an application on multiple cores, and hardly has any overhead. What do you intend to replace this with?

I'd rather allow the operator to specify multiple containers. Currently:

the instance count is hard coded
the logging is prepended with some server stuff, so its not parsable as json anymore
problems with the instance cannot be checked at docker level

By defining node as a runtime:

Operators can decide how many instances to run
The logging becomes parsable by using just json-lines
Any problem now manifests itself at a Docker level, instead of multiple levels

To be honest I feel pm2 is great for bare-metal stuff, but violates the concept of Docker. Docker should contain one process, and not contain process management systems etc.
https://stackoverflow.com/questions/28942614/should-i-use-forever-pm2-within-a-docker-container

Not all types of instances are equal though. To compare it with Java, instances in a PM2 pool are more like threads in a threadpool than standalone instances. One doesn't necessarily exclude the other.
For example, the instance within PM2 are more lightweight, startup faster, and allow containers to use more than one core (which also makes resource allocation with Docker easier).

the instance count is hard coded

In a typical setup you set the instances to 0, which tells pm2 to start as many workers as there are cores. You can then use docker to configure the number of cores available to the container, and how much priority it should have on those cores.

the logging is prepended with some server stuff, so its not parsable as json anymore

You can turn that off (you need to run the app as a daemon, and then run pm2 logs --raw).

problems with the instance cannot be checked at docker level

If you're talking about the worker instances, then I don't think it's much of a problem. As I said, these are more like threads in a threadpool than like stand-alone application instances. This should just be logged by the application itself, and therefore end up in the logs. I don't think this should necessarily be a responsibility of docker.
To be clear: I don't think that PM2 is absolutely, 100% necessary, but I do think it is better to run with than without PM2.


Create a Detail page for Organization.

We need to list all the events that this Organization have created.

Hey, I would like to work on this item.

Hi @atmishra, please be welcome to contribute with us
This issue depends on #130 #288.
<3

Hi @atmishra, when can you start developing this?

I will start it soon. Can we discuss it in more detail?

Sure we can. Just tell me your ideas and questions.

Hi @luanfonceca
I'm trying to understand the features surrounding the organization, however, I couldn't understand very well all the picture.
For example:

for who is the organization page detail? the owner for update or a public page for every one.. #301
(as an organization owner) How can I access my organization?
Will it be possible for people see all organizations? or visitors will see just shared organization links (such as /organizations/grupysp)

Hi @huogerac, the Organization is usually a group of that manages the events.
The Organization is for the Members.
Everyone can see the Organization profile.
There will be a link on the User Sidebar to list the organizations that i belong to.


feat: add more convenience targets

Add platform-aware :data and :control convenience targets at the top of the package repo so that we can use @<REPO>//<PACKAGE>:data directly. See changes to examples/debian_snapshot/BUILD:
diff --git a/examples/debian_snapshot/BUILD.bazel b/examples/debian_snapshot/BUILD.bazel
index 88b98ba..298c261 100644
--- a/examples/debian_snapshot/BUILD.bazel
+++ b/examples/debian_snapshot/BUILD.bazel
@@ -58,10 +58,7 @@ tar(

 cacerts(
     name = "cacerts",
-    package = select({
-        "@platforms//cpu:arm64": "@bullseye//ca-certificates/arm64:data",
-        "@platforms//cpu:x86_64": "@bullseye//ca-certificates/amd64:data",
-    }),
+    package = "@bullseye//ca-certificates:data",
 )

 oci_image(

Also, add :deps to complement :data.
Finally, with the changes in #115 and the previous commit, we can now remove a bunch of select from the examples and use the new target aliases.
NOTE: This PR adds to #115 some functionality that I had in #100 and we can close #100 completely.

@thesayyn sorry for the noise :( I'll back out the rebase and pull the last fix that changes the architecture map into a separate PR.

@thesayyn the noise comes from the stacked PRs, when I rebased this PR on top of #120, I didn't realize it would make it much harder to review 😞
I'm used to stacked PRs and rebases "just working" and GH is pretty terrible when it comes to this, I didn't realize it would dump all of the contents from your PR in here as changes :-/
Can you review #120 first? Otherwise, you can focus on just this two commits::

b953eb7 - feat: add more convenience targets
5c38a79 - chore: remove select() from the examples

OK, I managed to back out the rebase, this PR is now "clean" and separate from #120.
I'm really really sorry for all the noise, I'm still getting used to working with GH's limitations :(

@thesayyn let me know if the PR is to your liking, I'll be happy to make more changes if needed. Thanks.

@thesayyn I've further simplified the PR removing all of the "refactored" methods, so now it's just clear that the PR ditched the _PACKAGE_TEMPLATE in favor of reusing package_template.
Let me know if the PR is to your liking, I'll be happy to make more changes if needed. Thanks.

@thesayyn I'm going to rebase the branch on main to remove the "Conflicting files" message from the threads but you now have the "clean Compares" to check.
Learning to work around GH limitations... 😅

@thesayyn and, again, after I did the two pushes before the rebase, somehow GH is not showing the "Compare" for the two of them, only for the last one!?? This makes it impossible to see the changes I did to address your comments... this is absurd, I really don't know how GH can be failing at this stuff o.0.
Here's my "manual compare link" between the changes: Compare 3327243..b198392.


[SPARK-39001][SQL][DOCS] Document which options are unsupported in CSV and JSON functions

What changes were proposed in this pull request?
This PR proposes to document which options do not work and are explicitly unsupported in CSV and JSON functions.
Why are the changes needed?
To avoid users to misunderstand the options.
Does this PR introduce any user-facing change?
Yes, it documents which options don't work in CSV/JSON expressions.
How was this patch tested?
I manually built the docs and checked the HTML output.

cc @tgravescs for a quick look when you find some time.

+1, LGTM. Merging to master/3.3.
Thank you, @HyukjinKwon and @tgravescs for review.


flutter run fails after updating to the latest stable release

After running  flutter run in my app i get the following error
NOTE: before the update everything worked
 FAILURE: Build failed with an exception.
[  +50 ms] * What went wrong:
[   +1 ms] Execution failed for task ':app:checkDebugDuplicateClasses'.
[   +1 ms] > 1 exception was raised by workers:
[   +1 ms]   java.util.zip.ZipException

Here is the full output of flutter run -v
[  +40 ms] executing: [C:\flutter\] git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +102 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +3 ms] 9f5ff2306bb3e30b2b98eee79cd231b1336f41f4
[        ] executing: [C:\flutter\] git describe --match v*.*.* --first-parent --long --tags
[  +56 ms] Exit code 0 from: git describe --match v*.*.* --first-parent --long --tags
[        ] v1.12.13+hotfix.7-0-g9f5ff2306
[  +10 ms] executing: [C:\flutter\] git rev-parse --abbrev-ref --symbolic @{u}
[  +70 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/stable
[        ] executing: [C:\flutter\] git ls-remote --get-url origin
[  +50 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[ +119 ms] executing: [C:\flutter\] git rev-parse --abbrev-ref HEAD
[  +70 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[ +161 ms] executing: C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe devices -l
[  +30 ms] Exit code 0 from: C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe devices -l
[   +1 ms] List of devices attached
           emulator-5554          device product:sdk_gphone_x86 model:Android_SDK_built_for_x86 device:generic_x86
           transport_id:2
[  +32 ms] C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 shell getprop
[ +111 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[  +11 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +5 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[   +2 ms] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[   +3 ms] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[   +3 ms] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +232 ms] Generating F:\flutter\gallery\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java
[  +49 ms] ro.hardware = ranchu
[  +77 ms] Using hardware rendering with device Android SDK built for x86. If you get graphics artifacts, consider
enabling
           software rendering with "--enable-software-rendering".
[  +27 ms] Launching lib\main.dart on Android SDK built for x86 in debug mode...
[  +24 ms] executing: C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 shell -x
logcat -v time -s flutter
[  +10 ms] executing: C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe version
[  +66 ms] Android Debug Bridge version 1.0.41
           Version 29.0.4-5871666
           Installed as C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe
[   +8 ms] executing: C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe start-server
[  +40 ms] Building APK
[  +36 ms] Running Gradle task 'assembleDebug'...
[   +8 ms] gradle.properties already sets `android.enableR8`
[  +15 ms] Using gradle from F:\flutter\gallery\android\gradlew.bat.
[  +26 ms] executing: C:\Program Files\Android\Android Studio\jre\bin\java -version
[ +222 ms] Exit code 0 from: C:\Program Files\Android\Android Studio\jre\bin\java -version
[   +2 ms] openjdk version "1.8.0_202-release"
           OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
           OpenJDK 64-Bit Server VM (build 25.202-b03, mixed mode)
[  +13 ms] executing: [F:\flutter\gallery\android\] F:\flutter\gallery\android\gradlew.bat -Pverbose=true
-Ptarget=F:\flutter\gallery\lib\main.dart -Ptrack-widget-creation=true -Pfilesystem-scheme=org-dartlang-root
-Ptarget-platform=android-x86 assembleDebug
[+5501 ms] > Task :app:compileFlutterBuildDebug
[  +40 ms] [  +40 ms] executing: [C:\flutter\] git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +3 ms] [ +171 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +3 ms] [   +3 ms] 9f5ff2306bb3e30b2b98eee79cd231b1336f41f4
[  +11 ms] [        ] executing: [C:\flutter\] git describe --match v*.*.* --first-parent --long --tags
[  +18 ms] [ +112 ms] Exit code 0 from: git describe --match v*.*.* --first-parent --long --tags
[   +4 ms] [        ] v1.12.13+hotfix.7-0-g9f5ff2306
[   +1 ms] [  +52 ms] executing: [C:\flutter\] git rev-parse --abbrev-ref --symbolic @{u}
[   +3 ms] [ +124 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[   +1 ms] [        ] origin/stable
[   +5 ms] [        ] executing: [C:\flutter\] git ls-remote --get-url origin
[  +73 ms] [  +75 ms] Exit code 0 from: git ls-remote --get-url origin
[   +3 ms] [        ] https://github.com/flutter/flutter.git
[ +196 ms] [ +156 ms] executing: [C:\flutter\] git rev-parse --abbrev-ref HEAD
[  +11 ms] [  +61 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[   +2 ms] [        ] stable
[  +85 ms] [  +64 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[   +3 ms] [        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[   +4 ms] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +6 ms] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +1 ms] [  +11 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[   +3 ms] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[   +2 ms] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[   +4 ms] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[   +9 ms] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[   +4 ms] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +158 ms] [ +189 ms] Initializing file store
[   +3 ms] [  +28 ms] Done initializing file store
[+2198 ms] [+2126 ms] Skipping target: kernel_snapshot
[   +3 ms] [  +89 ms] debug_android_application: Starting due to {InvalidatedReason.outputMissing}
[ +296 ms] [ +231 ms] debug_android_application: Complete
[   +3 ms] [  +30 ms] Persisting file store
[   +3 ms] [  +27 ms] Done persisting file store
[   +1 ms] [   +5 ms] build succeeded.
[  +91 ms] [  +35 ms] "flutter assemble" took 2,899ms.
[  +99 ms] > Task :app:packLibsflutterBuildDebug UP-TO-DATE
[   +2 ms] > Task :app:preBuild UP-TO-DATE
[   +4 ms] > Task :app:preDebugBuild UP-TO-DATE
[   +1 ms] > Task :app:compileDebugAidl NO-SOURCE
[   +1 ms] > Task :app:checkDebugManifest UP-TO-DATE
[  +19 ms] > Task :app:compileDebugRenderscript NO-SOURCE
[  +71 ms] > Task :app:generateDebugBuildConfig UP-TO-DATE
[   +4 ms] > Task :app:cleanMergeDebugAssets
[   +2 ms] > Task :app:mergeDebugShaders UP-TO-DATE
[   +1 ms] > Task :app:compileDebugShaders UP-TO-DATE
[   +1 ms] > Task :app:generateDebugAssets UP-TO-DATE
[  +89 ms] > Task :app:mergeDebugAssets
[ +302 ms] > Task :app:copyFlutterAssetsDebug
[   +5 ms] > Task :app:mainApkListPersistenceDebug UP-TO-DATE
[   +3 ms] > Task :app:generateDebugResValues UP-TO-DATE
[   +1 ms] > Task :app:generateDebugResources UP-TO-DATE
[ +190 ms] > Task :app:mergeDebugResources UP-TO-DATE
[  +10 ms] > Task :app:createDebugCompatibleScreenManifests UP-TO-DATE
[ +102 ms] > Task :app:processDebugJavaRes NO-SOURCE
[ +101 ms] > Task :app:checkDebugDuplicateClasses FAILED
[  +71 ms] FAILURE: Build failed with an exception.
[  +50 ms] * What went wrong:
[   +1 ms] Execution failed for task ':app:checkDebugDuplicateClasses'.
[   +1 ms] > 1 exception was raised by workers:
[   +1 ms]   java.util.zip.ZipException
[   +4 ms] * Try:
[   +2 ms] Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log
output. Run with --scan to get full insights.
[   +3 ms] * Get more help at https://help.gradle.org
[   +5 ms] BUILD FAILED in 9s
[   +4 ms] 14 actionable tasks: 5 executed, 9 up-to-date
[ +374 ms] Running Gradle task 'assembleDebug'... (completed in 10.6s)
[  +11 ms] "flutter run" took 11,631ms.
Gradle task assembleDebug failed with exit code 1

#0      throwToolExit (package:flutter_tools/src/base/common.dart:28:3)
#1      buildGradleApp (package:flutter_tools/src/android/gradle.dart:387:7)
#2      _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:73:64)
#3      _rootRunUnary (dart:async/zone.dart:1134:38)
#4      _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#5      _FutureListener.handleValue (dart:async/future_impl.dart:139:18)
#6      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:680:45)
#7      Future._propagateToListeners (dart:async/future_impl.dart:709:32)
#8      Future._completeWithValue (dart:async/future_impl.dart:524:5)
#9      _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:32:15)
#10     _completeOnAsyncReturn (dart:async-patch/async_patch.dart:290:13)
#11     _DefaultProcessUtils.stream (package:flutter_tools/src/base/process.dart)
#12     _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:73:64)
#13     _rootRunUnary (dart:async/zone.dart:1134:38)
#14     _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#15     _FutureListener.handleValue (dart:async/future_impl.dart:139:18)
#16     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:680:45)
#17     Future._propagateToListeners (dart:async/future_impl.dart:709:32)
#18     Future._completeWithValue (dart:async/future_impl.dart:524:5)
#19     Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:554:7)
#20     _rootRun (dart:async/zone.dart:1126:13)
#21     _CustomZone.run (dart:async/zone.dart:1023:19)
#22     _CustomZone.runGuarded (dart:async/zone.dart:925:7)
#23     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:965:23)
#24     _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
#25     _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
#26     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)
#27     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:175:5)

flutter doctor -v output
[√] Flutter (Channel stable, v1.12.13+hotfix.7, on Microsoft Windows [Version 10.0.17134.1], locale en-US)
    • Flutter version 1.12.13+hotfix.7 at C:\flutter
    • Framework revision 9f5ff2306b (5 days ago), 2020-01-26 22:38:26 -0800
    • Engine revision a67792536c
    • Dart version 2.7.0

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk
    • ANDROID_SDK_ROOT = C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    • All Android licenses accepted.

[√] Android Studio (version 3.5)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 39.0.3
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] IntelliJ IDEA Community Edition (version 2019.2)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3
    • Flutter plugin version 42.2.2
    • Dart plugin version 192.7761

[√] VS Code (version 1.41.1)
    • VS Code at C:\Users\M.U.S.E.M.B.I\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.6.0

[√] Connected device (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

• No issues found!

Hi @cherlow
could you please run
flutter pub cache repair
cd <YOUR APP FOLDER>
flutter clean
If the issue persist please provide your updated flutter run --verbose
together with a minimal code sample to reproduce the problem
thank you

i have tried running in a newly created flutter project using flutter create <project name>
flutter channel stable
flutter upgrade --force
flutter pub cache repair
cd <YOUR APP FOLDER>
flutter clean

But i still get an error
[  +12 ms] FAILURE: Build failed with an exception.
[   +5 ms] * What went wrong:
[   +3 ms] Execution failed for task ':app:checkDebugDuplicateClasses'.
[  +16 ms] > 1 exception was raised by workers:
[   +6 ms]   java.util.zip.ZipException
[   +2 ms] * Try:
[   +2 ms] Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log
output. Run with --scan to get full insights.
[   +6 ms] * Get more help at https://help.gradle.org
[   +1 ms] BUILD FAILED in 23s

flutter doctor -v output
[√] Flutter (Channel stable, v1.12.13+hotfix.7, on Microsoft Windows [Version 10.0.17134.1], locale en-US)
    • Flutter version 1.12.13+hotfix.7 at C:\flutter
    • Framework revision 9f5ff2306b (7 days ago), 2020-01-26 22:38:26 -0800
    • Engine revision a67792536c
    • Dart version 2.7.0

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk
    • ANDROID_SDK_ROOT = C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    • All Android licenses accepted.

[√] Android Studio (version 3.5)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 39.0.3
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] IntelliJ IDEA Community Edition (version 2019.2)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3
    • Flutter plugin version 42.2.2
    • Dart plugin version 192.7761

[√] VS Code (version 1.41.1)
    • VS Code at C:\Users\M.U.S.E.M.B.I\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.6.0

[√] Connected device (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

• No issues found!

flutter run -v output
[  +32 ms] executing: [C:\flutter\] git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +101 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +4 ms] 9f5ff2306bb3e30b2b98eee79cd231b1336f41f4
[   +2 ms] executing: [C:\flutter\] git describe --match v*.*.* --first-parent --long --tags
[  +71 ms] Exit code 0 from: git describe --match v*.*.* --first-parent --long --tags
[   +1 ms] v1.12.13+hotfix.7-0-g9f5ff2306b
[  +12 ms] executing: [C:\flutter\] git rev-parse --abbrev-ref --symbolic @{u}
[  +57 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[   +1 ms] origin/stable
[   +2 ms] executing: [C:\flutter\] git ls-remote --get-url origin
[  +49 ms] Exit code 0 from: git ls-remote --get-url origin
[   +1 ms] https://github.com/flutter/flutter.git
[ +111 ms] executing: [C:\flutter\] git rev-parse --abbrev-ref HEAD
[  +58 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[   +1 ms] stable
[ +170 ms] executing: C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe devices -l
[  +36 ms] Exit code 0 from: C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe devices -l
[   +1 ms] List of devices attached
           emulator-5554          device product:sdk_gphone_x86 model:Android_SDK_built_for_x86 device:generic_x86
           transport_id:1
[  +36 ms] C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 shell getprop
[  +98 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[   +8 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +7 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[   +2 ms] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +215 ms] Generating F:\flutter\samp2\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java
[  +42 ms] ro.hardware = ranchu
[  +51 ms] Using hardware rendering with device Android SDK built for x86. If you get graphics artifacts, consider
enabling
           software rendering with "--enable-software-rendering".
[  +25 ms] Launching lib\main.dart on Android SDK built for x86 in debug mode...
[  +24 ms] executing: C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 shell -x
logcat -v time -s flutter
[  +12 ms] executing: C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe version
[  +52 ms] Android Debug Bridge version 1.0.41
           Version 29.0.4-5871666
           Installed as C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe
[   +9 ms] executing: C:\Users\M.U.S.E.M.B.I\AppData\Local\Android\Sdk\platform-tools\adb.exe start-server
[  +70 ms] Building APK
[  +39 ms] Running Gradle task 'assembleDebug'...
[   +8 ms] gradle.properties already sets `android.enableR8`
[  +11 ms] Using gradle from F:\flutter\samp2\android\gradlew.bat.
[  +21 ms] executing: C:\Program Files\Android\Android Studio\jre\bin\java -version
[ +148 ms] Exit code 0 from: C:\Program Files\Android\Android Studio\jre\bin\java -version
[   +1 ms] openjdk version "1.8.0_202-release"
           OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
           OpenJDK 64-Bit Server VM (build 25.202-b03, mixed mode)
[   +9 ms] executing: [F:\flutter\samp2\android\] F:\flutter\samp2\android\gradlew.bat -Pverbose=true
-Ptarget=F:\flutter\samp2\lib\main.dart -Ptrack-widget-creation=true -Pfilesystem-scheme=org-dartlang-root
-Ptarget-platform=android-x86 assembleDebug
[+4883 ms] > Task :app:compileFlutterBuildDebug
[   +2 ms] [  +46 ms] executing: [C:\flutter\] git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +2 ms] [ +124 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +1 ms] [   +1 ms] 9f5ff2306bb3e30b2b98eee79cd231b1336f41f4
[   +1 ms] [        ] executing: [C:\flutter\] git describe --match v*.*.* --first-parent --long --tags
[   +1 ms] [  +69 ms] Exit code 0 from: git describe --match v*.*.* --first-parent --long --tags
[   +3 ms] [        ] v1.12.13+hotfix.7-0-g9f5ff2306b
[   +2 ms] [  +10 ms] executing: [C:\flutter\] git rev-parse --abbrev-ref --symbolic @{u}
[   +1 ms] [  +55 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[   +1 ms] [        ] origin/stable
[   +3 ms] [        ] executing: [C:\flutter\] git ls-remote --get-url origin
[   +1 ms] [  +49 ms] Exit code 0 from: git ls-remote --get-url origin
[   +1 ms] [        ] https://github.com/flutter/flutter.git
[   +1 ms] [ +112 ms] executing: [C:\flutter\] git rev-parse --abbrev-ref HEAD
[   +1 ms] [  +63 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[   +1 ms] [        ] stable
[   +4 ms] [  +35 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[   +3 ms] [        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[   +3 ms] [        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +2 ms] [   +6 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[   +3 ms] [        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[   +1 ms] [        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[   +2 ms] [ +176 ms] Initializing file store
[   +3 ms] [  +31 ms] kernel_snapshot: Starting due to {}
[   +5 ms] [  +31 ms] C:\flutter\bin\cache\dart-sdk\bin\dart.exe
C:\flutter\bin\cache\artifacts\engine\windows-x64\frontend_server.dart.snapshot --sdk-root
C:\flutter\bin\cache\artifacts\engine\common\flutter_patched_sdk/ --target=flutter
-Ddart.developer.causal_async_stacks=true -Ddart.vm.profile=false -Ddart.vm.product=false
--bytecode-options=source-positions,local-var-info,debugger-stops,instance-field-initializers,keep-unreachable-code,avoi
d-closure-call-instructions --enable-asserts --track-widget-creation --no-link-platform --packages
F:\flutter\samp2\.packages --output-dill
F:\flutter\samp2\.dart_tool\flutter_build\c4bc1c1fefbac57310ffe4b65cceaae2\app.dill --depfile
F:\flutter\samp2\.dart_tool\flutter_build\c4bc1c1fefbac57310ffe4b65cceaae2\kernel_snapshot.d package:samp2/main.dart
[+13008 ms] [+13468 ms] kernel_snapshot: Complete
[+1799 ms] [+1807 ms] debug_android_application: Starting due to {}
[+1599 ms] [+1570 ms] debug_android_application: Complete
[ +400 ms] [ +411 ms] Persisting file store
[   +2 ms] [  +23 ms] Done persisting file store
[   +2 ms] [   +3 ms] build succeeded.
[  +93 ms] [  +25 ms] "flutter assemble" took 17,653ms.
[ +201 ms] > Task :app:packLibsflutterBuildDebug UP-TO-DATE
[   +3 ms] > Task :app:preBuild UP-TO-DATE
[   +2 ms] > Task :app:preDebugBuild UP-TO-DATE
[   +1 ms] > Task :app:compileDebugAidl NO-SOURCE
[   +2 ms] > Task :app:checkDebugManifest
[   +4 ms] > Task :app:compileDebugRenderscript NO-SOURCE
[  +37 ms] > Task :app:generateDebugBuildConfig
[  +55 ms] > Task :app:cleanMergeDebugAssets
[   +7 ms] > Task :app:mergeDebugShaders UP-TO-DATE
[   +1 ms] > Task :app:compileDebugShaders UP-TO-DATE
[   +1 ms] > Task :app:generateDebugAssets UP-TO-DATE
[   +1 ms] > Task :app:mergeDebugAssets
[ +376 ms] > Task :app:copyFlutterAssetsDebug
[   +2 ms] > Task :app:mainApkListPersistenceDebug
[   +2 ms] > Task :app:generateDebugResValues
[   +1 ms] > Task :app:generateDebugResources
[+1511 ms] > Task :app:createDebugCompatibleScreenManifests
[ +289 ms] > Task :app:processDebugManifest
[  +87 ms] > Task :app:processDebugJavaRes NO-SOURCE
[ +506 ms] > Task :app:checkDebugDuplicateClasses FAILED
[ +210 ms] > Task :app:mergeDebugResources
[  +98 ms] FAILURE: Build failed with an exception.
[  +12 ms] * What went wrong:
[   +1 ms] Execution failed for task ':app:checkDebugDuplicateClasses'.
[   +5 ms] > 1 exception was raised by workers:
[   +5 ms]   java.util.zip.ZipException
[  +79 ms] * Try:
[   +6 ms] Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log
output. Run with --scan to get full insights.
[   +2 ms] * Get more help at https://help.gradle.org
[   +1 ms] BUILD FAILED in 25s
[   +1 ms] 15 actionable tasks: 12 executed, 3 up-to-date
[ +370 ms] Running Gradle task 'assembleDebug'... (completed in 25.9s)
[   +9 ms] "flutter run" took 26,952ms.
Gradle task assembleDebug failed with exit code 1

#0      throwToolExit (package:flutter_tools/src/base/common.dart:28:3)
#1      buildGradleApp (package:flutter_tools/src/android/gradle.dart:387:7)
#2      _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:73:64)
#3      _rootRunUnary (dart:async/zone.dart:1134:38)
#4      _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#5      _FutureListener.handleValue (dart:async/future_impl.dart:139:18)
#6      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:680:45)
#7      Future._propagateToListeners (dart:async/future_impl.dart:709:32)
#8      Future._completeWithValue (dart:async/future_impl.dart:524:5)
#9      _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:32:15)
#10     _completeOnAsyncReturn (dart:async-patch/async_patch.dart:290:13)
#11     _DefaultProcessUtils.stream (package:flutter_tools/src/base/process.dart)
#12     _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:73:64)
#13     _rootRunUnary (dart:async/zone.dart:1134:38)
#14     _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#15     _FutureListener.handleValue (dart:async/future_impl.dart:139:18)
#16     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:680:45)
#17     Future._propagateToListeners (dart:async/future_impl.dart:709:32)
#18     Future._completeWithValue (dart:async/future_impl.dart:524:5)
#19     Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:554:7)
#20     _rootRun (dart:async/zone.dart:1126:13)
#21     _CustomZone.run (dart:async/zone.dart:1023:19)
#22     _CustomZone.runGuarded (dart:async/zone.dart:925:7)
#23     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:965:23)
#24     _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
#25     _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
#26     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)
#27     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:175:5)

Hi @cherlow
Did you try this workaround? https://github.com/flutter/flutter/issues/48159#issuecomment-571513079

I couldn't figure out how, but i switched from windows to linux and everything works fine...am closing this issue


Unable to Navigate Out of Notes Level with Arrow Keys

When a note is created for a row in Zavala Outliner, navigation using the arrow keys becomes restricted to the notes level. Users are unable to move up or down to escape the notes level, effectively getting “stuck” in the notes section.
Steps to Reproduce

Open Zavala Outliner.
Create a new row and add a note to it.
Attempt to navigate away from the notes level using the up or down arrow keys in the keyboard

Environment

App Version: 3.06 (from Mac App Store)
Device: Macbook Air 2020
Operating System: macOS Sequoia 15.2

Since it is somewhat difficult to get into the Notes field, I don't want to exit the Notes field on up and down arrow keys. I could see people exiting the Notes field unintentionally which would be frustrating.
To exit the Notes field use the ESC key instead.

Understood. Esc key method is good enough.


Adding Locale.Root to toLowerCase calls

Fix issue with Turkish language: https://developer.android.com/reference/java/lang/String#toLowerCase(java.util.Locale)

Assuming that it's not possible in Azure AD to define scopes using the Turkish language.


OStorageException: Cluster Id -1 is invalid in database 'X' and crash with indexes and abstract classes

OrientDB Version: 3.0.12
Java Version: 11.0.1+13
OS: Windows 10
Expected behavior
No crash and exception. Or at least make exception non-fatal and less cryptic if such usage of abstract classes is forbidden.
Actual behavior
OrientDB throws exception and crashes.
Steps to reproduce
OClass c = session.createClass("A");
c.createProperty("id", OType.LONG);
c.createIndex("A.id", OClass.INDEX_TYPE.UNIQUE, "id");

OClass c1 = session.createClass("B", "A");
c1.setAbstract(true); // <- exception throws here

It is already fixed on the latest 3.0.x version because we started to use durable version of storage configuration.


Recent version 7.29.0 raises 'Missing "key" prop for element in array  react/jsx-key' unnecessarily; breaks build

When using version 7.29.0 in my webapp and running a build I am seeing thousands of 'Missing "key" prop for element in array  react/jsx-key' errors which seem to be raised for every file, against lines which do not involve arrays at all. It appears to be raised any time an element contains any other element.
Versioning down to 7.28.0 fixes the issue.
Example
src/ui/components/resourceVideo/ResourceVideo.tsx
  Line 17:7:  Missing "key" prop for element in array  react/jsx-key
  Line 17:7:  Missing "key" prop for element in array  react/jsx-key
  Line 18:7:  Missing "key" prop for element in array  react/jsx-key
  Line 18:7:  Missing "key" prop for element in array  react/jsx-key

ResourceVideo.tsx:
import React, { FC, useRef, useState } from 'react';

import './ResourceVideo.sass';
import VimeoVideoPlayInModal from '../vimeoVideoPlayInModal/VimeoVideoPlayInModal';

type Props = {
  videoUrl: string;
  videoTitle: string;
};
const ResourceVideo: FC<Props> = ({
  videoUrl,
  videoTitle,
}: Props): JSX.Element => {
  return (

      <VimeoVideoPlayInModal videoUrl={videoUrl} />

{videoTitle}

  );
};

export default ResourceVideo;

See #3215

Duplicate of #3215

Duplicate of #3215.

v7.29.1 is released.


Feature/pubmed update

https://github.com/opentrials/opentrials/issues/200

Should be around 500k publications.

:+1:


Clone dependency not declared in Makefile

PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t

#   Failed test 'use Eixo::Base::Clase;'
#   at t/001_class.t line 4.
#     Tried to use 'Eixo::Base::Clase'.
#     Error:  Can't locate Clone.pm in @INC (you may need to install the Clone module) (@INC contains: /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/arch /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl . /.cpanm/work/1443652631.121/Eixo-Base-1.106/lib) at /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib/Eixo/Base/Clase.pm line 4.
# BEGIN failed--compilation aborted at /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib/Eixo/Base/Clase.pm line 4.
# Compilation failed in require at (eval 4) line 2.
# BEGIN failed--compilation aborted at (eval 4) line 2.
Attempt to reload Eixo/Base/Clase.pm aborted.
Compilation failed in require at /usr/share/perl/5.18/parent.pm line 20.
BEGIN failed--compilation aborted at t/001_class.t line 7.
# Tests were run but no plan was declared and done_testing() was not seen.
t/001_class.t .....................
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/1 subtests

#   Failed test 'use Eixo::Base::Clase;'
#   at t/002_class_methods_validation.t line 4.
#     Tried to use 'Eixo::Base::Clase'.
#     Error:  Can't locate Clone.pm in @INC (you may need to install the Clone module) (@INC contains: /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/arch /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl . /.cpanm/work/1443652631.121/Eixo-Base-1.106/lib) at /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib/Eixo/Base/Clase.pm line 4.
# BEGIN failed--compilation aborted at /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib/Eixo/Base/Clase.pm line 4.
# Compilation failed in require at (eval 4) line 2.
# BEGIN failed--compilation aborted at (eval 4) line 2.
Attempt to reload Eixo/Base/Clase.pm aborted.
Compilation failed in require at /usr/share/perl/5.18/parent.pm line 20.
BEGIN failed--compilation aborted at t/002_class_methods_validation.t line 7.
# Tests were run but no plan was declared and done_testing() was not seen.
t/002_class_methods_validation.t ..
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/1 subtests
t/003_sub_validation.t ............ ok
Can't locate Clone.pm in @INC (you may need to install the Clone module) (@INC contains: /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/arch /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl . /.cpanm/work/1443652631.121/Eixo-Base-1.106/lib) at /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib/Eixo/Base/Clase.pm line 4.
BEGIN failed--compilation aborted at /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib/Eixo/Base/Clase.pm line 4.
Compilation failed in require at t/004_class_abstract.t line 17.
BEGIN failed--compilation aborted at t/004_class_abstract.t line 17.
# Tests were run but no plan was declared and done_testing() was not seen.
t/004_class_abstract.t ............
Dubious, test returned 2 (wstat 512, 0x200)
All 1 subtests passed
Can't locate Clone.pm in @INC (you may need to install the Clone module) (@INC contains: /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/arch /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib/Eixo/Base/Clase.pm line 4.
BEGIN failed--compilation aborted at /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib/Eixo/Base/Clase.pm line 4.
Compilation failed in require at t/004_class_singleton.t line 5.
BEGIN failed--compilation aborted at t/004_class_singleton.t line 5.
t/004_class_singleton.t ...........
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
Can't locate Clone.pm in @INC (you may need to install the Clone module) (@INC contains: /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/arch /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib/Eixo/Base/Clase.pm line 4.
BEGIN failed--compilation aborted at /.cpanm/work/1443652631.121/Eixo-Base-1.106/blib/lib/Eixo/Base/Clase.pm line 4.
Compilation failed in require at t/100_singleton_regresion.t line 3.
BEGIN failed--compilation aborted at t/100_singleton_regresion.t line 3.
t/100_singleton_regresion.t .......
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/Eixo-Base.t .................

corrected


[s3] Put bucket lifecycle configuration

What problem are we solving?
https://github.com/seaweedfs/seaweedfs/issues/4533
How are we solving the problem?
https://github.com/seaweedfs/seaweedfs/issues/4533
How is the PR tested?
aws --endpoint-url http://<IP_ADDRESS>:8000 s3api get-bucket-lifecycle-configuration --bucket s3tests-4hvwlbmd3gjvnvhe8opq6-2
{
    "Rules": [
        {
            "Expiration": {
                "Days": 31
            },
            "ID": "test1/",
            "Prefix": "test1/",
            "Filter": {
                "Prefix": "test1/"
            },
            "Status": "Enabled"
        },
        {
            "Expiration": {
                "Days": 120
            },
            "ID": "test2/",
            "Prefix": "test2/",
            "Filter": {
                "Prefix": "test2/"
            },
            "Status": "Enabled"
        }
    ]
}

aws --endpoint-url http://<IP_ADDRESS>:8000 s3api delete-bucket-lifecycle --bucket s3tests-4hvwlbmd3gjvnvhe8opq6-2
aws --endpoint-url http://<IP_ADDRESS>:8000 s3api get-bucket-lifecycle-configuration --bucket s3tests-4hvwlbmd3gjvnvhe8opq6-2

An error occurred (NoSuchLifecycleConfiguration) when calling the GetBucketLifecycleConfiguration operation: The lifecycle configuration does not exist

Checks

[ ] I have added unit tests if possible.
[ ] I will add related wiki document changes and link to this PR after merging.

let's avoid any minio code which has a different license.

let's avoid any minio code which has a different license.

Yes, I did it quickly. The structure of Rule differs in different libraries. I tried to take the aws S3 sdk, but there is not enough code for encoding and decoding in xml. And the same thing is somehow wrong to copy this piece of soda from minio, but there is no time for rewriting. You should probably only have fields with TTL, what works and not describe everything.

@chrislusf Done


List can hold entries for which ClearlyDefined does not have data

The components list should be able to hold entries for which ClearlyDefined does not have data. This helps users understand where more investigation is needed before using a component.

@jeffmcaffer Did you get a chance to review this, and can we potentially close this issue?

Not yet but it is assigned to @Teju-Manchenella  so perhaps he has

Yes this is working properly. If a component does not have a specific field (ex. no source location) a place holder value is displayed. Along with that when you drop a package-lock.json file, all the components show up even though most of them have no data in ClearlyDefined (of course with a score 0 since there was no definition). This similar functionality should be seen when we expand into allowing users to view components that have not been crawled by ClearlyDefined, like dragging and dropping package URLs.

@Teju-Manchenella Then to confirm can we close this issue?

Yes we can close this issue