[Integration][CI] verify-rc-source-integration-linux-ubuntu-22.04-amd64 is failing around JS

Describe the bug, including details regarding any error messages, version, and platform.
The verify-rc-source-integration-linux-ubuntu-22.04-amd64 is failing on several JS producing / consuming stages:
  ################# FAILURES #################
  FAILED TEST: primitive_no_batches C++ producing,  JS consuming
  <class 'RuntimeError'>: Command failed: /arrow/js/bin/integration.ts -a /tmp/tmptj7xy7d2/b41218cd_generated_primitive_no_batches.consumer_stream_as_file -j /tmp/arrow-integration-726dm6bp/generated_primitive_no_batches.json --mode VALIDATE
  With output:

another example (https://github.com/ursacomputing/crossbow/actions/runs/11147590724/job/31018012263):
  ################# FAILURES #################
  FAILED TEST: map_non_canonical C++ producing,  JS consuming
  <class 'subprocess.CalledProcessError'>: Command '/arrow/js/bin/stream-to-file.ts < /tmp/tmpvvkmxtx1/cfe4a30b_generated_map_non_canonical.producer_file_as_stream > /tmp/tmpvvkmxtx1/cfe4a30b_generated_map_non_canonical.consumer_stream_as_file' returned non-zero exit status 133.

  FAILED TEST: primitive JS producing,  C++ consuming
  <class 'subprocess.CalledProcessError'>: Command '/arrow/js/bin/file-to-stream.ts < /tmp/tmpvvkmxtx1/b4860393_generated_primitive.json_as_file > /tmp/tmpvvkmxtx1/b4860393_generated_primitive.producer_file_as_stream' returned non-zero exit status 133.

  FAILED TEST: custom_metadata JS producing,  Java consuming
  <class 'subprocess.CalledProcessError'>: Command '/arrow/js/bin/file-to-stream.ts < /tmp/tmpvvkmxtx1/219d461d_generated_custom_metadata.json_as_file > /tmp/tmpvvkmxtx1/219d461d_generated_custom_metadata.producer_file_as_stream' returned non-zero exit status 133.

  FAILED TEST: primitive_no_batches Go producing,  JS consuming
  <class 'RuntimeError'>: Command failed: /arrow/js/bin/integration.ts -a /tmp/tmpvvkmxtx1/3b3ee219_generated_primitive_no_batches.json_as_file -j /tmp/arrow-integration-67snajw_/generated_primitive_no_batches.json --mode VALIDATE

Those  jobs have been triggered 4-5 times (as seen on the links) and are failing on different PRs. I am unsure on what the problem is.
Component(s)
Continuous Integration, Integration

@kou @pitrou I have no idea what the problem is but seems to be failing always around JS. Any idea what could be?
It also seems to only fail on the Ubuntu 22.04 which makes things weirder.
Probably something we should investigate / fix for the release

Well, is there anyone knowledgeable in JS that we can ask to take a look?

@domoritz @trxcllnt maybe?

Difficult to tell what's going wrong without seeing any output. Is there an easy way to replicate the failures locally?

We should be able to reproduce this locally with archery. Let me try first and then point you in the right direction @trxcllnt.

Hrm, this isn't failing for me locally.

From the v8::ScriptCompiler::CompileUnboundScript reference in the stack trace, it seems like the problem may be in ts-node or swc, since we use those to transpile the source typescript file. It's possible an update to one of those dependencies broke things, and/or an update to those dependencies would fix it.

Thanks @trxcllnt. Re: dependencies, I see a number of dependabot PRs but none look like likely culprits. If we can reproduce the CI failure, looking at ts-node and/or swc looks like a reasonable next step.


fix TestRegressionKikimr17104

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en

Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[x] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Other information

Codecov Report
Base: 62.72% // Head: 44.39% // Decreases project coverage by -18.34% :warning:

Coverage data is based on head (cb4e54f) compared to base (b55b6e3).
Patch has no changes to coverable lines.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@             Coverage Diff             @@
##           master     #574       +/-   ##
===========================================
- Coverage   62.72%   44.39%   -18.34%
===========================================
  Files         221      147       -74
  Lines       21539    15388     -6151
===========================================
- Hits        13511     6831     -6680
- Misses       7356     8245      +889
+ Partials      672      312      -360

Flag
Coverage Δ

1.16.x
43.95% <ø> (-18.38%)
:arrow_down:

1.19.x
44.47% <ø> (-17.98%)
:arrow_down:

1.20.x
44.45% <ø> (-18.12%)
:arrow_down:

insecure
?

integration
?

macOS-latest
44.42% <ø> (+<0.01%)
:arrow_up:

secure
?

ubuntu-latest
44.39% <ø> (-18.30%)
:arrow_down:

unit
44.39% <ø> (-0.10%)
:arrow_down:

windows-latest
?

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

 Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Menu acts like control stick is being held down

On F-Zero x and Diddy Kong Racing(and maybe others) the main menu acts as if the control stick is being held down on the controller.
If you unplug the grey USB and only use the black USB it works as expected.
I have tested this on the latest m64p with the 0.5.0 compat plugin on Windows and Linux.

Hmm, this sounds like the deadzone is too low. Could you try to increase it in the configuration file?

Changing the deadzone doesn't make a difference, to clarify the adapter does work fine with both USBs in game, it's just the menus on those 2 games where the issue occurs.
Games like Mario 64 and Banjo Kazooie work everywhere.

Oh ok, sounds like a strange bug! I'll look into it when I have time.

0.5.1 seems to have fixed whatever was causing the issue

Oh, nice!


Implement Linode detail settings Advanced Profile edit part un

If Xen:

If there are more than 2 config profiles, the boot settings section should be included here below the block device assignment.

Add boot helpers and kernel dropdown to a last section
All disks show up in xen mode
No paravirt option stuff in xen mode

Do all above the block device assignment.

https://github.com/react-component/slider


fix proxy config

Signed-off-by: Roke Jung<EMAIL_ADDRESS>Fix https://github.com/open-cluster-management/backlog/issues/15828

/test test-unit


Make the nav content clickable

The sections in the navbar are just text for now. We want to make them scrollable or precisely clickable.
Example: If I click on the about tab it should take me to about section of the page

Closing, changes merged in #11


UI accessibility pass

switch to using more semantic html
make sure all buttons and dropdowns can be tabbed through

@justinbarry @phoebemirman pretty important for Augur but would recommend scheduling this after MVP launch as we haven't yet seen evidence that this is a must have requirement for any user for launch @Chwy5


[BUG] Bad username or password

Describe the bug
I have 2 docker containers running for 2 iCloud accounts, both have been working fine for weeks/months. However since the last time I've had to reauthenticate for 2FA, one of them is giving me a Bad username or password error. The login used matches the one in the config yaml and the password is correct (verified by logging in to iCloud.com). I've updated to the latest version but the issue persists.
A clear and concise description of what the bug is.
The error I get after the 3rd login attempt:
Enter iCloud password for [xxx]:
Traceback (most recent call last):
File "/app/venv/lib/python3.10/site-packages/icloudpy/base.py", line 362, in _authenticate_with_token
req = self.session.post(
File "/app/venv/lib/python3.10/site-packages/requests/sessions.py", line 635, in post
return self.request("POST", url, data=data, json=json, **kwargs)
File "/app/venv/lib/python3.10/site-packages/icloudpy/base.py", line 158, in request
self._raise_error(code, reason)
File "/app/venv/lib/python3.10/site-packages/icloudpy/base.py", line 187, in _raise_error
raise api_error
icloudpy.exceptions.ICloudPyAPIResponseException: Missing apple_id field
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/venv/lib/python3.10/site-packages/icloudpy/cmdline.py", line 223, in main
else ICloudPyService(
File "/app/venv/lib/python3.10/site-packages/icloudpy/base.py", line 277, in init
self.authenticate()
File "/app/venv/lib/python3.10/site-packages/icloudpy/base.py", line 346, in authenticate
self._authenticate_with_token()
File "/app/venv/lib/python3.10/site-packages/icloudpy/base.py", line 368, in _authenticate_with_token
raise ICloudPyFailedLoginException(msg, error) from error
icloudpy.exceptions.ICloudPyFailedLoginException: ('Invalid authentication token.', ICloudPyAPIResponseException('Missing apple_id field'))
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/venv/bin//icloud", line 8, in
sys.exit(main())
File "/app/venv/lib/python3.10/site-packages/icloudpy/cmdline.py", line 292, in main
raise RuntimeError(message) from error
RuntimeError: Bad username or password for [xxx]
To Reproduce
I realise this will be hard for you to reproduce, so if there's any additional information I could gather for you please let me know.

Tried again just now, same flow as before, but it works now, even on the same version of the docker image. Issue seems to have resolved itself.
Thanks for the great tool, awesome to have local backups of my files and photos! :)


mlkit barcode scanner not reading bigger codes

Hi,
I've cloned repository and run the mlkit-app. Barcode detection feature seems to work fine for simple aztec codes such as short URL etc. but it's having trouble with detecting more complex ones such as:

What are the limitations for aztec codes scanner? Is it can be configured or optimised to detect bigger codes?

@gkaldev is there a known limitation here?

filed internally b/135924014

Testing this with ML Kit's current Barcode implementation, detection starts to work when the barcode takes up at least 220x220 pixels. Please ensure to use a high enough input image size.


Editor's choice: January update

Periodic update

Thanks Tobias. Happy 2021!

Thanks Tobias. Happy 2021!

Happy new year!

Happy new year!


How to clean up after 'attack'

Hi @Neo23x0,
Thanks for your wonderful project, very useful to test https://github.com/Cyb3rWard0g/HELK project (Hunting ELK).
Is it possible to get help with a post-cleanup process?
For example, I have been able to delete one of the WMI Backdoor, but one is still active.
For the first one:

Get-WMIObject -Namespace root\Subscription -Class __EventFilter -Filter "Name='LaunchBeaconingBackdoor'"

I am well aware that if the WMI Backdoor request is related to https://github.com/mattifestation/WMI_Backdoor project, my request is for your global project.
Thanks in advance 😃
Sincerely,
@wikijm

You need to look at scheduled tasks. It creates a few of them that you need to remove.

You need to look at scheduled tasks. It creates a few of them that you need to remove.

any guidance on this?

I will extend the red message, that pops up at the beginning and add the recommendation to create a snapshot of that test system
https://github.com/NextronSystems/APTSimulator#warning

You need to look at scheduled tasks. It creates a few of them that you need to remove.

any guidance on this?

It's really not that difficult. In the search box on your windows machine type "task scheduler" and there are several tasks added and all you need to do is remove them and the APT activity will stop.

Mhhh ... the WMI backdoor may require some additional attention.
https://github.com/NextronSystems/APTSimulator/blob/master/test-sets/persistence/wmi-backdoor.bat

The AV/EDR tools we used blocked all of the powershell execution so that wasn't an issue for us.

Why not just add a 'clean-up' script that removes the tasks that are added?

Simple. It don't have enough time. Other projects require my attention more urgently.
I gladly accept pull requests.

i used the below, maybe it can help someone
Get-WMIObject -Namespace root\Subscription -Class __EventFilter -Filter "Name='TimingIntervalTrigger'" | Remove-WmiObject -Verbose
Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding -Filter "__Path LIKE '%TimingIntervalTrigger%'" | Remove-WmiObject -Verbose
Get-WMIObject -Namespace root/Subscription -Class ActiveScriptEventConsumer -Filter "Name='LaunchBeaconingBackdoor'" | Remove-WMIObject -Verbose


New Optimizer class

Now we have a base class for GTDynamics algorithm hierarchy

Yeah, will merge now, because other branches are already being built on this. You can then merge in master into whatever branch you were developing.


Feature/caching

Description

Adds custom setting to production build in Webpack -> Images get a dynamic hash in their names to avoid caching issues

References
https://github.com/Energinet-DataHub/energy-origin-issues/issues/405

With private browser tab open:

[ ] Open feature environment
[ ] Refresh, verify 304 responses
[ ] Deploy changed JSON and image files
[ ] Refresh, verify fresh 200 responses
[ ] Deploy release without JSON and image file changes
[ ] Refresh, verify 304 responses


Fix typo in README

Just a tiny typo!

@rasa any reason why we still have https://github.com/ScoopInstaller/GenericBucket?
We should delete it for fear of DMCA.


Add configurable request timeout

Default is 10 seconds, since the sand-ruby client has 5 second open timeout and 5 second client timeout.

[ ] @johnny-lai
[x] @abdulchaudhrycoupa
[ ] @supriya

Generated Reviewers

:warning: Do not modify anything in this section! :warning:
The content in this section is managed automatically, and any manual changes to it will be ignored and overwritten the next time the code review status is refreshed! View this PR on Cody to see the current code review status.

AMER-M-611:sand-go johnwu$ go test ./...
ok  	github.com/coupa/sand-go	13.355s
ok  	github.com/coupa/sand-go/cache	(cached)
AMER-M-611:sand-go johnwu$

AMER-M-611:sand-go johnwu$ go test ./... -cover
ok  	github.com/coupa/sand-go	13.321s	coverage: 89.7% of statements
ok  	github.com/coupa/sand-go/cache	(cached)	coverage: 100.0% of statements
AMER-M-611:sand-go johnwu$

AMER-M-611:sand-go johnwu$ go test ./... -cover
ok  	github.com/coupa/sand-go	(cached)	coverage: 89.7% of statements
ok  	github.com/coupa/sand-go/cache	(cached)	coverage: 100.0% of statements
AMER-M-611:sand-go johnwu$

AMER-M-611:sand-go johnwu$ go test ./... -cover
ok  	github.com/coupa/sand-go	13.320s	coverage: 89.7% of statements
ok  	github.com/coupa/sand-go/cache	(cached)	coverage: 100.0% of statements
AMER-M-611:sand-go johnwu$

AMER-M-611:sand-go johnwu$ go test ./... -cover
ok  	github.com/coupa/sand-go	13.334s	coverage: 89.7% of statements
ok  	github.com/coupa/sand-go/cache	(cached)	coverage: 100.0% of statements
AMER-M-611:sand-go johnwu$


Reconcile envoyproxy/data-plane-api and envoyproxy/envoy

This is WiP for the process described in https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/envoy-dev/KcVHFH-zQwQ.
Still TODO:

[x] Update contributing docs and other user facing process information.
[x] Write script to push to data-plane-api on each commit affecting //api.
[ ] More testing, CI fixing, debugging, etc.

Risk Level: Medium (there might be unintentional breakage of dependent builds).
Testing: TBD
Signed-off-by: Harvey Tuch<EMAIL_ADDRESS>

@htuch if possible just for review, can you do the initial copy in a commit, then do commits with actual changes? Otherwise it's really difficult to review.

@mattklein123 done.

@mattklein123 this is ready for another pass. I did a rebase and force push to maintain logical vs. chronological order of the commit history.

@mattklein123 ready to ship.


Add Saudi Arabia to country map

I am looking for any commitor who can commit it country map
saudi arabia.zip

I can send a PR, but first what is your source for the geojson? so I can mention the source in the PR as well.

BTW, the data is not so accurate, as shown below.

I found the version on Elastic.co here https://maps.elastic.co/#file/saudi_arabia_provinces is not accurate as well. still I can depend on thier list as the source for PR

The codebase on this repo has been moved to the main Apache Superset repo, and consequently the repo is in the process of being archived. See the Superset Improvement Proposal for details: https://github.com/apache/superset/issues/13013 . While all currently open issues and PRs will be closed, we encourage you to reopen this issue on the main repo if it is still relevant.


ARAX error on Workflow B query

https://arax.ncats.io/?source=ARS&id=0445a10f-05b6-4bf3-82a5-586a55655e1c

This is fixed now: https://arax.ncats.io/test/?r=16138 but note the query is returning now results as no KP or ARA ARAX is connected to is returning results. I assume COHD should return results, so it might be an issue of different identifiers, or stale data. Would need to confirm with the COHD/Clinical team why this is the case


[Pull Request] Multiple Aircon Systems and Ability to Flip Open/Close

name: Pull Request
about: add an improvement to homebridge-cmd4-AdvantageAir.
title: "Added support for multiple aircon systems and ability to flip open/close"
labels: pull-request
assignees: mitch7391

Added support for multiple aircon systems and added the ability to flip the garage's or gate's open/close
Is your pull request related to a problem or a new feature? Please describe:
New features:

[x] Added support for up to 5 aircon systems (ac1, ac2, ac3, ac4 and ac5)
[x] Added the capability to flip the open/close for garage or gate
[x] Generally refining and streamlining of the script - incorporated JohnT's queryAirConWithIterations() + quite a bit of other refinements.
[x] Minor edits on SetOn.bats and SetTargetHeatingCoolingTemperature.bats of JohnT's latest unit tests.  JohnT updated the unit tests to reflect the use of the new function queryAirConWithIterations().

Describe the solution you'd have implemented:

Created a variable $ac for various aircon systems (ac1, ac2, ac3, ac4, ac5) which can be specified with a constant in state_cmd_suffix
Created a constant flip which can be specified in state-cmd-suffix of garage/gate accessory to enable the flipping of open/close display on Homekit

Do your changes pass local testing:

[x] Yes - passed shellcheck and unit tests (JohnT's latest version) and passed local testing on my E-zone system but have to rely on other users to test the flipping of garage open/close and aircon system other than ac1.

Additional context:

Sample config for multiple aircon system
If you have more than one aircon systems, all the accessories pertaining to the aircon system other than the first one (ac1) has to have the aircon system (ac2 or ac3 or ac4 or ac5) specified as a constant in state_cmd_suffix.

Below is a sample config of accessory Thermostat for aircon system ac2 :
        {
            "type": "Thermostat",
            "displayName": "Aircon",
            "currentHeatingCoolingState": "OFF",
            "targetHeatingCoolingState": "OFF",
            "currentTemperature": 24,
            "targetTemperature": 24,
            "temperatureDisplayUnits": "CELSIUS",
            "name": "Aircon",
            "manufacturer": "Advantage Air Australia",
            "model": "e-zone",
            "serialNumber": "Daikin e-zone",
            "queue": "A",
            "polling": [
                {
                    "characteristic": "currentHeatingCoolingState"
                },
                {
                    "characteristic": "targetHeatingCoolingState"
                },
                {
                    "characteristic": "currentTemperature"
                },
                {
                    "characteristic": "targetTemperature"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "ac2 ${IP}",
            "linkedTypes": [
                {
                    "type": "Fan",
                    "displayName": "Fan Speed",
                    "on": "TRUE",
                    "rotationSpeed": 100,
                    "name": "Fan Speed",
                    "manufacturer": "Advantage Air Australia",
                    "model": "e-zone",
                    "serialNumber": "Daikin e-zone",
                    "queue": "A",
                    "polling": [
                        {
                            "characteristic": "on"
                        },
                        {
                            "characteristic": "rotationSpeed"
                        }
                    ],
                    "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
                    "state_cmd_suffix": "ac2 ${IP} fanSpeed"
                }
            ]
        }

sample config to flip the garage or gate open/close
If you need to flip your garage's or gate's open/close, all you need to do is to have the constant flip in your garage or gate accessory's state_cmd_sufix:

        {
            "type": "GarageDoorOpener",
            "displayName": "Garage Door",
            "obstructionDetected": "FALSE",
            "currentDoorState": 1,
            "targetDoorState": 1,
            "name": "Garage Door",
            "manufacturer": "Advantage Air Australia",
            "model": "e-zone",
            "serialNumber": "Daikin e-zone",
            "queue": "A",
            "polling": [
                {
                    "characteristic": "currentDoorState"
                },
                {
                    "characteristic": "targetDoorState"
                }
            ],
            "state_cmd": "'/usr/local/lib/node_modules/homebridge-cmd4-advantageair/AdvAir.sh'",
            "state_cmd_suffix": "flip 'thing:Garage' ${IP}"
        }

Hey Ung Sing, I can see you had added 'ac1' in the script as the default; which was going to be my first question off the bat. Nice job on this as it will not affect current users with only one aircon and not require any changes from them :p everything looks great!

I can see you had added 'ac1' in the script as the default;

yes, no change whatsoever required for existing users with single aircon system.

Hey Ung Sing; first day off out of night shifts and finally testing this locally. I notice just about all of my unit tests fail now:
31 tests, 25 failures, 2 skipped
Is this the same for you?
Also another question, the flip constant can go after 'thing:Garage' and not affect anything yeah? Just looks neater and thought I would check before I update the Wiki.

Hi Mitch, you need to update your unit tests to JohnT's latest version.  I have included it in my PR under the /test subdirectory.
and yes the flip can be anywhere.

As in this PR just approved or a coming one? As that is what I have tested haha...

It should be in the one just approved.  Let me double check whether that is the correct one.

Yes, that is the one.
The red highlighted one is an extra one of my own testing. Tt will fail on that one and you can ignore that.

Hmmm well I have 25 failures, not one or a couple lol
pi@homebridge:/tmp/homebridge-cmd4-AdvantageAir $ npm run test

><EMAIL_ADDRESS>pretest
> if [ ! -d 'node_modules' ];then printf ' test is only done in a development environment
> ';exit 1; fi

><EMAIL_ADDRESS>test
> npm run allBats && npm run testjs && npm run check && npm run lint

><EMAIL_ADDRESS>allBats
> bats test/*.bats

 ✗ AdvAir ( ezone inline ) Test PassOn1 Get Brightness z01
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetBrightness.bats, line 55)
     `assert_equal "$status" 0' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone inline ) Test PassOn1 Get Brightness z03
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetBrightness.bats, line 63)
     `assert_equal "$status" 0' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone inline ) Test PassOn5 Get CurrentHeatingCoolingState
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetCurrentHeatingCoolingState.bats, line 31)
     `assert_equal "$status" "$e_status" ]' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone        ) Test PassOn1 Get CurrentHeatingCoolingState
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    from function `_common_compareAgainstEzone' in file ./test/setup, line 77,
    in test file test/GetCurrentHeatingCoolingState.bats, line 39)
     `_common_compareAgainstEzone Get Blah CurrentHeatingCoolingState TEST_ON' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone inline ) Test PassOn5 Get CurrentTemperature
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetCurrentTemperature.bats, line 38)
     `assert_equal "$status" "$e_status"' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone inline ) Test PassOn1 Get CurrentTemperature z01
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetCurrentTemperature.bats, line 54)
     `assert_equal "$status" "$e_status"' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( zones inline ) Test PassOn1 Get CurrentTemperature z01
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetCurrentTemperature.bats, line 69)
     `assert_equal "$status" "$e_status"' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( zones inline ) Test PassOn1 Get CurrentTemperature z03
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetCurrentTemperature.bats, line 83)
     `assert_equal "$status" "$e_status"' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone inline ) Test PassOn1 Get CurrentTemperature with NoSensor Data (creating new myAirConstants
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetCurrentTemperature.bats, line 103)
     `assert_equal "$status" "$e_status"' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone inline ) Test PassOn1 Get CurrentTemperature with NoSensor Data (with cached myAirConstants
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetCurrentTemperature.bats, line 116)
     `assert_equal "$status" 0' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone inline ) Test PassOn1 Get CurrentTemperature with NoSensor Data
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetNoSensors.bats, line 29)
     `assert_equal "${lines[1]}" "25.4"' failed

   -- values do not equal --
   expected : 25.4
   actual   : 0
   --

 ✗ AdvAir ( ezone inline ) Test PassOn5 Get On
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetOn.bats, line 31)
     `assert_equal "$status" "$e_status" ]' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone        ) Test PassOn1 Get On
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    from function `_common_compareAgainstEzone' in file ./test/setup, line 77,
    in test file test/GetOn.bats, line 42)
     `_common_compareAgainstEzone Get Fan On TEST_ON' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( zones        ) Test PassOn1 Get On z01
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    from function `_common_compareAgainstZones' in file ./test/setup, line 55,
    in test file test/GetOn.bats, line 50)
     `_common_compareAgainstZones Get Fan On z01 TEST_ON' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( zones inline ) Test PassOn5 Get StatusLowBattery z01
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetStatusLowBattery.bats, line 32)
     `assert_equal "$status" "$z_status" ]' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( zones        ) Test PassOn1 Get StatusLowBattery z01
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    from function `_common_compareAgainstZones' in file ./test/setup, line 55,
    in test file test/GetStatusLowBattery.bats, line 41)
     `_common_compareAgainstZones Get Blah StatusLowBattery z01 TEST_ON' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone inline ) Test PassOn5 Get TargetHeatingCoolingState
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetTargetHeatingCoolingState.bats, line 31)
     `assert_equal "$status" "$e_status" ]' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone        ) Test PassOn1 Get TargetHeatingCoolingState
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    from function `_common_compareAgainstEzone' in file ./test/setup, line 77,
    in test file test/GetTargetHeatingCoolingState.bats, line 40)
     `_common_compareAgainstEzone Get Blah TargetHeatingCoolingState TEST_ON' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone inline ) Test PassOn5 Get TargetTemperature
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetTargetTemperature.bats, line 32)
     `assert_equal "$status" "$e_status" ]' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✗ AdvAir ( ezone        ) Test PassOn1 Get TargetTemperature
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    from function `_common_compareAgainstEzone' in file ./test/setup, line 77,
    in test file test/GetTargetTemperature.bats, line 42)
     `_common_compareAgainstEzone Get Blah TargetTemperature TEST_ON' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 ✓ AdvAir ( ezone inline ) Get PassOn1 TemperatureDisplayUnits ( inline )
 ✓ AdvAir ( ezone       ) Get PassOn1 TemperatureDisplayUnits ( inline )
 ✗ AdvAir ( ezone inline ) Test Invalid Option 'BLAH'
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/InvalidOption.bats, line 21)
     `assert_equal "$status" "1"' failed

   -- values do not equal --
   expected : 1
   actual   : 127
   --

 ✗ AdvAir ( ezone inline ) Test IP PassOn1
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/InvalidOption.bats, line 34)
     `assert_equal "$status" "0"' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 - AdvAir ( ezone / zone ) Test ../homebridge.log.txt (skipped: Skipping test. No ../homebridge.log.txt from /tmp/homebridge-cmd4-AdvantageAir/test)
 ✗ AdvAir ( ezone inline ) Test PassOn5 Set On 1
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/SetOn.bats, line 25)
     `assert_equal "${lines[0]}" "Setting url: http://<IP_ADDRESS>:2025/setAircon?json={ac1:{info:{state:on,mode:vent}}}"' failed

   -- values do not equal --
   expected : Setting url: http://<IP_ADDRESS>:2025/setAircon?json={ac1:{info:{state:on,mode:vent}}}
   actual   : /tmp/homebridge-cmd4-AdvantageAir/node_modules/bats/lib/bats-core/test_functions.bash: line 37: ./compare/AdvAir.sh: No such file or directory
   --

 ✗ AdvAir ( zones inline ) Test PassOn1 Set On 1 z01
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/SetOn.bats, line 39)
     `assert_equal "${lines[0]}" "${e_lines[0]}"' failed

   -- values do not equal --
   expected : Setting url: http://<IP_ADDRESS>:2025/setAircon?json={ac1:{zones:{z01:{state:open}}}}
   actual   : /tmp/homebridge-cmd4-AdvantageAir/node_modules/bats/lib/bats-core/test_functions.bash: line 37: ./compare/AdvAir.sh: No such file or directory
   --

 ✗ AdvAir ( ezone inline ) Test PassOn1 Set TargetHeatingCoolingState 1
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/SetTargetHeatingCoolingState.bats, line 23)
     `assert_equal "$status" "$e_status" ]' failed

   -- values do not equal --
   expected : 0
   actual   : 127
   --

 - Sample Test (How to Skip) (skipped: This test is skipped just to show that skippping can be done.)
 ✓ Sample Test Check Status of run command
 ✓ Sample Test Check stdout of command

31 tests, 25 failures, 2 skipped

that's a bit strange.  Mine all passed.
Please check GetBrightness.bats to see if it looks like this or not.

Looks the same to me:
# Understanding these test cases
#
# What we are trying to do is compare the execution of AdvAir.sh with either
# the previous ezone/zones scripts or some expected output. In that way
# you can rerun these tests after any change to AdvAir.sh and gaurantee the
# result in production without having to try every possible scenario.

# Unit tests have a setup function before and a teardown function after each
# test. These can be ignored if you are just trying to figure out what
# went wrong. Remember that what we are testing is BASH shell commands you can
# execute them also from the command line.

# For example:
#    cd test
#    ln -s ./testData/dataPassOn5 ./data
#    ./compare/AdvAir.sh Get Blah Brightness z01 <IP_ADDRESS> TEST_ON
#
# Results to stdout:
#     Try 0
#     Try 1
#     Try 2
#     Try 3
#     Try 4
#     100
#
#
# Note: TEST_ON is so that we do not actually talk to the real device,
#       instead jq parses the given testData.
#
# Then afterwards:
#    $status      - is the result of the ./compare/AdvAir.sh command
#    ${lines[0]}  - is an array of text from the ./compare/AdvAir.sh command
#    assert_equal "${lines[0]}" "Try 0"  - compares the output in line 0.

setup()
{
   load './test/setup'
   _common_setup
}

teardown()
{
   _common_teardown
}

@test "AdvAir ( ezone inline ) Test PassOn1 Get Brightness z01" {
   # We symbolically link the directory of the test we want to use.
   ln -s ./testData/dataPassOn1 ./data
   # The original scripts do not have this function, so you can only
   # test against known data
   run ./compare/AdvAir.sh Get Blah Brightness z01 <IP_ADDRESS> TEST_ON
   assert_equal "$status" 0
   assert_equal "${lines[0]}" "Try 0"
   assert_equal "${lines[1]}" "100"
}

@test "AdvAir ( ezone inline ) Test PassOn1 Get Brightness z03" {
   ln -s ./testData/dataPassOn1 ./data
   run ./compare/AdvAir.sh Get Blah Brightness z03 <IP_ADDRESS> TEST_ON
   assert_equal "$status" 0
   assert_equal "${lines[0]}" "Try 0"
   assert_equal "${lines[1]}" "85"
}

Oh, I wonder... You have changed all the IP addresses to your own? I think they all used to be based on mine haha...

I did not change any IP address, that was JohnT's version.  I only done a very minor eidts on the SetOn.bats and SetTargetHeatingCoolingTemperature.bats to reflect that I do not a Get before a Set on those.

All good, I will take a look if the IP address change fixes them for me; otherwise I am not terribly concerned at this point as it will not affect users.


Not able to add dependency

facing the below issue while adding the dependency rn-contact-tracing:
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>postinstall: rm -rf ../node_modules
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
tried both ways for adding dependency:
yarn add rn-contact-tracing and npm install rn-contact-tracing --save

Hi @KaranSachrani
Which version of RN are you running? I am installing the latest and it is running fine for me for me on Android.

I am running the below version
react-native-cli: 2.0.1
react-native: 0.62.2

The is the issue while running also tried the above command
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>android: react-native run-android --root "./example"
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>android script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Hello, thanks a lot for this plugin.
Is it possible to have latest changes in a newer npm version? :)
Thanks in advance


chore(crd): adding valueFrom field inside env

Signed-off-by: shubham chaudhary<EMAIL_ADDRESS>
Proposed changes
Adding valueForm field for the ENVs inside chaosexperiment CRD
Types of changes
What types of changes does your code introduce to Litmus? Put an x in the boxes that apply

[ ] New feature (non-breaking change which adds functionality)
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices applies)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[ ] I have read the CONTRIBUTING doc
[ ] I have signed the commit for DCO to be passed.
[ ] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works (if appropriate)
[ ] I have added necessary documentation (if appropriate)

Dependency

Please add the links to the dependent PR need to be merged before this (if any).

Special notes for your reviewer:

@ispeakc0de can we add the changes to CRDs file in litmus-portal folder ? And also the agent manifests for cluster scope ?

@Jonsy13 @rajdas98 request addition into the relevant instances in the portal via a dedicated PR.


add swaptr

Fixes #86

I see a build failure with error team[aifaq-maintainers]: swaptr must be an organization member to be a maintainer. @ryjones Does swaptr needs to be added to hyperledger-labs org ?

If you make a member instead of a maintainer of the team, then they will get an invite and be able to join. I made changes to fix.

Hello @nidhi-singh02 @tkuhrt thanks so much for sorting this out. Really appreciate your help.

I see a build failure with error team[aifaq-maintainers]: swaptr must be an organization member to be a maintainer. @ryjones Does swaptr needs to be added to hyperledger-labs org ?

If you make a member instead of a maintainer of the team, then they will get an invite and be able to join. I made changes to fix.

Thanks Tracy for the information.


[BUG] Custom OFFSET LIMIT query with Pageable throws IndexOutOfBoundsException

Describe the bug
I have a project using azure spring data cosmos. I have a custom query method using OFFSET LIMIT together with Pageable.
@Query( "SELECT * FROM c WHERE c.partitionKey = @partitionKey ORDER BY c.key OFFSET @offset LIMIT @limit") Page<SomeEntity> find( @Param("partitionKey") String partitionKey, @Param("offset") int offset, @Param("limit") int limit, Pageable pageable);
I found the query doesn't work correctly. My test case contains two documents that matching the partition key.
Test 1:
offset = 0, limit = 1, pageable has page = 0 and size = 1
Page<SomeEntity> page = repository.find(partitionKey, 0, 1, new CosmosPageRequest(0, 1, null));
while (page.hasNext()) { page = repository.find(partitionKey, 0, 1, page.nextPageable());
For this test , the first find call returns a page with one document. This is correct. Then find is called one more time since page.hasNext() returns true and the second page returns contain the same document from the first page. This is not as expected since there should be only 1 page with limit set to 1.
Test 2:
offset = 1, limit = 1, pageable has page = 0 and size = 1
Page<SomeEntity> page = repository.find(partitionKey, 1, 1, new CosmosPageRequest(0, 1, null));
while (page.hasNext()) { page = repository.find(partitionKey, 1, 1, page.nextPageable());
For this test , the first find call throws the following exception. I would expect this should return one page with one document.

Caused by: java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[na:na]
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) ~[na:na]
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) ~[na:na]
at java.base/java.util.Objects.checkIndex(Objects.java:372) ~[na:na]
at java.base/java.util.ArrayList.get(ArrayList.java:458) ~[na:na]
at com.azure.spring.data.cosmos.core.CosmosTemplate.lambda$getCountValue$26(CosmosTemplate.java:826) ~[azure-spring-data-cosmos-3.8.0.jar:na]
at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:106) ~[reactor-core-3.4.8.jar:3.4.8]
at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[reactor-core-3.4.8.jar:3.4.8]
at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) ~[reactor-core-3.4.8.jar:3.4.8]
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.4.8.jar:3.4.8]
at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:440) ~[reactor-core-3.4.8.jar:3.4.8]
at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:527) ~[reactor-core-3.4.8.jar:3.4.8]
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) ~[reactor-core-3.4.8.jar:3.4.8]
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) ~[reactor-core-3.4.8.jar:3.4.8]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
... 1 common frames omitted
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99) ~[reactor-core-3.4.8.jar:3.4.8]
at reactor.core.publisher.Mono.block(Mono.java:1704) ~[reactor-core-3.4.8.jar:3.4.8]
at com.azure.spring.data.cosmos.core.CosmosTemplate.getCountValue(CosmosTemplate.java:827) ~[azure-spring-data-cosmos-3.8.0.jar:na]
at com.azure.spring.data.cosmos.core.CosmosTemplate.paginationQuery(CosmosTemplate.java:677) ~[azure-spring-data-cosmos-3.8.0.jar:na]
at com.azure.spring.data.cosmos.core.CosmosTemplate.runPaginationQuery(CosmosTemplate.java:657) ~[azure-spring-data-cosmos-3.8.0.jar:na]
at com.azure.spring.data.cosmos.repository.support.StringBasedCosmosQuery.execute(StringBasedCosmosQuery.java:60) ~[azure-spring-data-cosmos-3.8.0.jar:na]
at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.5.3.jar:2.5.3]
at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.5.3.jar:2.5.3]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:159) ~[spring-data-commons-2.5.3.jar:2.5.3]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:138) ~[spring-data-commons-2.5.3.jar:2.5.3]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.9.jar:5.3.9]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.9.jar:5.3.9]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.9.jar:5.3.9]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.9.jar:5.3.9]

Exception or Stack Trace
To Reproduce
Steps to reproduce the behavior:
Code Snippet
Add the code snippet that causes the issue.
Expected behavior
I expected the paging query should not throw exception and should return correct number of documents as specified in limit.
Screenshots
If applicable, add screenshots to help explain your problem.
Setup (please complete the following information):

OS: Windows 10
IDE: Eclipse
Library/Libraries: com.azure.spring:azure-spring-boot-starter-cosmos:3.6.0
Java version: java 11
App Server/Environment: Tomcat
Frameworks: Spring Boot

If you suspect a dependency version mismatch (e.g. you see NoClassDefFoundError, NoSuchMethodError or similar), please provide

dependency tree (mvn dependency:tree)

Additional context
Add any other context about the problem here.
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[ x] Bug Description Added
[ x] Repro Steps Added
[ x] Setup information Added

@mbhaskar - can you please help on this issue ?

Regarding the first test case, this is working as expected.  The first thing to understand is that cosmos is not sql - it has a sql api but that is only a familiar facade - it is not sql under the covers.  It CAN do things like offset and limit but it does them very poorly (as in, if you set an offset of 10000, the server will iterate over 10000 records and then return your result).
What it is really optimized for is something like infinite scroll.  When you execute a query against cosmos, it will actually return a continuation token which can be used to very efficient fetch the next set of results.  Under the covers, that is how the library functions - the method that accepts page.nextPageable() is only looking for the continuation token as a hint of where to pick up the query.  Now, in this particular case, there is no continuation token - because you've specified this in the query (you can observe this in debugger, if you inspect the returned page object, the "requestContinuation" variable of the next pageable will be null).  That is, when you specify a query with offset of 0 and limit of 1, you've told cosmos that you only want a single result.  So the continuation token will be null - you will never get more than one result from that query because the query itself is limited to a single result.  When you issue the query again, you are specifying an offset of 0, a limit of 1, and a null continuation token.  So you get the same result.
Regarding the second test case, this is interesting and someone from MS will probably need to chime in.  It looks like count and offset have an interesting interaction.  If you go into the azure portal and execute the ad-hoc query
select value count(1)  from c
You'll get the expected response - the number of items in the collection.  However, if you execute this ad-hoc query
select value count(1)  from c offset 1
You'll get a response of 0 - 0
I have no idea why - i would have expected you'd get the number of items in the collection - 1.  The library should probably handle this better than an index out of bounds exception but cosmos itself is not returning results for this query for whatever reason (hopefully someone from MS can chime in and explain).
All that said, you can do what you want, you'll just have to do it manually and ignore the pageable and keep track of the offset + page size yourself...
repository.find(partitionKey, 0, 1);
repository.find(partitionKey, 1, 2);
repository.find(partitionKey, 2, 3);
I should point out though that the larger the offset, the longer the query will take and the more expensive it will be.

@Blackbaud-MikeLueders Thanks for the reply. Regarding test case 1, based on what your explained, wouldn't the code will cause an infinite loop if page.nextPageable always return a new page with offset 0, limit 1, and null continuation token because it is exactly like the initial find call. What makes the first returned page that page.hasNext return true and the next page returned get page.hasNext returns false?

It's because of two things.
First, the count operation seems to behave differently than a straight query, in that it seems to ignore limit.  You can see this for yourself by going to the cosmos data explorer and populating a collection with 3 or more elements, then executing the following query...
SELECT * FROM c offset 0 limit 2
This should return 2 elements.  Though you can't see it in the console, if you were to execute this query via code, you could inspect the return headers (or the returned Page) and see there is no continuation token.
Now execute the this query...
SELECT count(1) FROM c offset 0 limit 2
And you'll get a value equal to the total elements in the collection, not 2 as you would expect if the query were truly limited.  So, in my mind there's a disconnect between a straight query and a count query where limit is concerned.  I would expect that either limit should affect count, or that the query should return a continuation token when limit is employed and there are additional results.
Second, https://github.com/Azure/azure-sdk-for-java/blob/3f31d68eed6fbe11516ca3afe3955c8840a6e974/sdk/cosmos/azure-spring-data-cosmos/src/main/java/com/azure/spring/data/cosmos/core/query/CosmosPageImpl.java#L49
The implementation of the returned page does not look at the continuation token, only the offset/current result size/total count comparison.
On further investigation, I discovered something interesting...
SELECT * FROM c offset 0 limit 2 returns no continuation token
SELECT * FROM c offset 2 limit 4 DOES return a continuation token.
I can't explain why.  So it's possible my assumptions about limit and query are wrong - I am basing them off of observations rather than the documentation because I can't find any documentation detailing this.  Perhaps this is a bug in cosmos?  Or maybe in the client?

@zhoujia1974 the root of your problem is a misunderstanding of how the pageable is used. Pageable will be used to apply the offset and limit, where limit will be equal to the page size. By adding offset and limit to your annotated query and passing in the pageable object I wouldn't expect things to work correctly, more than likely offset and limit are being applied twice. I would recommend removing offset and limit from your query definition and just passing in the pageable with offset and page size passed in as needed, or if you want to keep offset and limit in your definition you should remove the pageable parameter.


Program clarification

According to https://devblogs.microsoft.com/dotnet/joining-the-net-foundation-maturity-model-pilot/ there is a "new pilot program" but I can't seem to find what that means? later in that same post "The .Net Foundation is proposing".
What actually is happening? Is this "proposal" put into place? part of it?
I can't seem to find anything new on https://opensource.microsoft.com/
But part of what's proposed here is already implemented there (for example "Run an ecosystem-wide "up-for-grabs" or "help-wanted" board for projects.", though just in part).

Excellent questions ...
The pilot program is mostly focused on the maturity ladder. That's the part we're starting now. We are starting with a half-dozen projects and are looking for others to express interest. There are no projects officially placed on the ladder at this point. This is the next step.
The other things, like the project board is still coming. That's currently just an idea and not a concrete plan.
The entire proposal is a .NET Foundation not Microsoft initiative. So, the only thing that might show up on a Microsoft site is saying "hey, we're participating" but not defining anyway. This blog post from the .NET Team (from me, actually) is a good example: https://devblogs.microsoft.com/dotnet/joining-the-net-foundation-maturity-model-pilot/
Does that help?

Can open source projects that are currently in a Microsoft-affiliated organization join the maturity model and/or foundation, or is this only for "community" projects?

All individuals and organizations are welcome to participate provided their projects satisfy the characteristics in the maturity model. So, yes, Microsoft is invited to participate.

I see, is there a list of Participating Projects yet (Level 4 / 3 / 2 / 1?) And is there a reason all dotnet/ projects aren't automatically level 3 (4?) I believe all of them meet the requirements, and it would quickstart things, since further levels also require dependencies to be of the same (or higher) level. Ie all Rx dependent projects need Rx to be approved at some point (if they want to be approved themselves)

Right now, there isn't a centralized list of projects at each level, but that's a great idea. We'll need an underlying list to power the badge server and it should be exposed on a site as well.
Existing .NET Foundation projects will be encouraged to join at level three, but we can't force them to. Most of them already meet the criteria given that there's been a reasonably high bar for projects to join the Foundation already.

Right. This is all new, so we're starting off with a clean slate. We'll start registering projects shortly, and get the badge server running.

@HurricanKai It looks like everything's been answered here, okay if we close this issue?


.ply File compression

Hello Team,
Please may I know is it possible to compress .ply(point cloud data) file by using LEPCC compression method. If yes please may I know the process.
Looking forward to hearing from you.
Thank You
Reagards,
Apoorva

@imapoorvaholla  It depends. Lepcc compresses 3D points (xyz coo, RGB color, intensity if there) but not meshes, surface normals etc. If you want to store the mesh, the answer is no. If you are fine with the 3D points + RGB colors of the points, then you can. But it's not a button press. Lepcc assumes a large point cloud with billions of points gets tiled or boxed up into many 3D boxes (by some higher level code). Then each such box gets encoded into one compressed Lepcc blob. If your dataset is not too big, you can try to compress into one single Lepcc blob.
The main purpose of this repository is to allow interested parties to write their own decoders for 3D point clouds encoded in Esri's slpk format. However, the Lepcc API also allows to encode. But you would need to convert the 3D points from your .ply file into simple arrays first. Then you can Lepcc encode it. There is sample code for this here:
https://github.com/Esri/lepcc/blob/master/src/Test_C_Api.cpp#L277
In a nutshell, you can provide the data as a sequence of pairs of arrays, always 1st array with the xyz coo as double, 2nd array with the RGB colors as byte. Then you call the API encode functions with these arrays as input. Check the output size, test the compression ratio, write out the compressed binary blobs into an outgoing file. You can and should add your own header if you do that.


Do you think it would be possible to add compression?

Like a red pixel is 00 and a green pixel is 11

This is already present, except not with colors because of reasons explained here.
YouBit can encode videos with 1 bit of information per pixel (the default), 2 or 3. This feature is explained here.
You can try out a bpp of 2 by also enabling the 'zero_frame' option. A bpp of 3 will not work unless you find a way to make it work that I have not yet thought of.


Edit Release Notes

As discussed in https://github.com/quarkiverse/quarkus-cxf/discussions/1245#discussioncomment-11078276, this sets the Release Notes to the proper content

You are our hero @gastaldi!


User can see their past entries

Using a database and HTML to allow the user to pull up past entries.
Effort: 13

Finished users can see their entries made in the past.


HTTP: transformResponse doesn't disable chunks discarding

Hi!
Used Gatling 2.3.1 with decoding G-ZIPed XML file into XML string.
Code in 2.3.1:
Request:
http("Get Repository information (primary.xml.gz)")
            .get(s"${Omp.repo_server}/omp_store/v1/repositories/personal/"+"${accountId}/repodata/${checksums(0)}-primary.xml.gz")
            .signatureCalculator(new HawkAuth)
            .transformResponse{
              case response if response.isReceived =>
                ResponseTransfromers.parsePrimaryGz(response)
            }

Response transformer:
def parsePrimaryGz(response: Response): ResponseWrapper = new ResponseWrapper(response) {
    val bis: ByteArrayInputStream = new ByteArrayInputStream(response.body.bytes)
    val gis: GZIPInputStream = new GZIPInputStream(bis)
    val reader: InputStreamReader = new InputStreamReader(gis)
    val input: BufferedReader = new BufferedReader(reader)
    val str = Stream.continually(input.readLine()).takeWhile(_ != null).mkString("\n")
    override val body = new StringResponseBody(str, response.charset)
  }

Rewrote this code on 3.0.3 and I am unable to decode GZIP from response - seems that I got wrong array.
Code in 3.0.3
Request:
http("Get Repository information (primary.xml.gz)")
            .get(s"${Omp.repo_server}/omp_store/v1/repositories/personal/"+"${accountId}/repodata/${checksums(0)}-primary.xml.gz")
            .sign(HawkAuth)
            .transformResponse{
              (session, response) =>
                if (response.status.code() == 200) {
                  ResponseTransfromers.parsePrimaryGz(response)
                } else {
                  response
                }
            }

Response transformer:
def parsePrimaryGz(response: Response): Response = {
    val bis: ByteArrayInputStream = new ByteArrayInputStream(response.body.bytes)
    val gis = new GZIPInputStream(bis)
    val reader: InputStreamReader = new InputStreamReader(gis)
    val input: BufferedReader = new BufferedReader(reader)
    val str = Stream.continually(input.readLine()).takeWhile(_ != null).mkString("\n")
    response.copy(body = new StringResponseBody(str, response.charset))
  }

Exception:
Response transformer crashed: j.u.z.ZipException: Not in GZIP format

Thanks for reporting!

Current workaround I do is adding .check(bodyBytes) to my requests so it uses the good response body for the transformResponse at a chunked response


Server in loop - PermissionsEx problem

My server is in a loop, creating a bunch of this error:
11.02 21:10:01 [Server] INFO at org.bukkit.permissions.PermissibleBase.calculateChildPermissions(PermissibleBase.java:190) ~[spigot18.jar:git-Spigot-29dbaa7-262c777]
and then shutting down, and turning back on.
Here is my permissions.yml file: http://pastebin.com/hVS8xYMu
Can anyone help me?

Why'd you close the ticket?  Did you figure out what was causing the loop?  (It would be nice of you to post the solution in case others find this ticket because they also have that problem.)


Add stats methods

Expose basic datachannel statistics

Codecov Report

Merging #21 into master will decrease coverage by 1.56%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##           master      #21      +/-   ##
==========================================
- Coverage    62.2%   60.63%   -1.57%
==========================================
  Files           4        4
  Lines         209      221      +12
==========================================
+ Hits          130      134       +4
- Misses         58       66       +8
  Partials       21       21

Impacted Files
Coverage Δ

datachannel.go
59.61% <33.33%> (-2.2%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 90b17ee...71b4753. Read the comment docs.

This LGTM!
Would it be possible to pull this info pion/sctp, then we can just pass the query down to it? Or is this something that is DataChannel specific? Just in case someone else uses pion/sctp directly so they don't have to query it themselves.
sorry for the slow review, will be better this week :(

Would it be possible to pull this info pion/sctp, then we can just pass the query down to it? Or is this something that is DataChannel specific? Just in case someone else uses pion/sctp directly so they don't have to query it themselves.

We had a discussion about this in slack: https://gophers.slack.com/archives/CAK2124AG/p1561240785047100
I think these are very specific DataChannel stats, "high level" stats if you like, but we should also have a sctp transport stats (which I think the spec is missing)


Node deployment support

Not really a new issue, just broken out for clarity: see #97

K8s
PCF

I've got a test test node project and a test scenario ready to try this out when it's ready


Suppose one is a lisp newbie... (like me)

What CL implementation are you using?
Improved config and build instructions wouldn't hurt.

Hi ryanizer!
This is developed and used mainly with SBCL.
Here are the installation directions
If something is unclear or confusing or does not work please let me know

Awesome, will check it out!
Thanks


Points are getting out of view.

Change This function, It will solve the problem.
`
private func convertDataEntriesToPoints(entries: [PointEntry]) -> [CGPoint] {
        if let max = entries.max()?.value,
            let min = entries.min()?.value {

            var result: [CGPoint] = []
            let minMaxRange: CGFloat = CGFloat(max - min) * topHorizontalLine

            for i in 0..<entries.count {
                var point : CGPoint
                if minMaxRange == 0 {
                    let height = dataLayer.frame.height * (1 - CGFloat(entries[i].value))
                    point = CGPoint(x: CGFloat(i)*lineGap, y: height)
                }
                else {
                    let height = dataLayer.frame.height * (1 - CGFloat(entries[i].value) / minMaxRange)
                    point = CGPoint(x: CGFloat(i)*lineGap, y: height)
                }
                result.append(point)
            }
            for j in 0...result.count - 1{
                let yPoint = result[j].y
                if(yPoint < 0){
                    for i in 0...result.count - 1{
                        result[i].y = result[i].y - (yPoint - 5)
                    }
                }
            }/*
            for j in 0...result.count - 1{
                if(result[j].y > dataLayer.frame.height){
                    for i in 0...result.count - 1{
                        result[i].y = result[i].y * dataLayer.frame.height / result[j] .y
                    }
                }
            }*/

            return result
        }
        return []
    }

I'm facing the same issue. Graph is being rendered outside the view.

Hi, thanks for letting me know, I was quite busy in the last two weeks to reply to you guys.
I have submitted a fix to this issue.
However, please bear in mind that this is just a sample source code created as part of a tutorial on Medium. You should not import it directly into your project. What I recommend is that you can take the idea from the tutorial if you think that it is useful and implement the chart view yourself.
Thanks.


Base64 not found

error：
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/util/Base64;
Looks like java.util.Base64 is only available on Android starting with API level 26. On older Android versions we'd need to use android.util.Base64

We could also use base64 from Kotlin's stdlib.


bump version to 0.9.0

Coverage remained the same at 91.036% when pulling 4729dc1d24be81f2147eb72cd422435e16662478 on version-bump into 8eac1412778f041b394102ca1f274a410505a7e1 on main.


malformed boolean query for valid regex search that includes ()

Please check that this issue hasn't been reported before.

[X] I searched previous Bug Reports didn't find any similar reports.

Expected Behavior
That the following search should work:
( description regex matches /(buy|order|voucher|lakeland|purchase|\spresent)/i ) OR ( path includes Home/Shopping )

Similar issue
This is similar to https://github.com/obsidian-tasks-group/obsidian-tasks/discussions/1068, but the workaround there was to ignore tasks blocks in template files, whereas in this case the search is meant to be valid.
Current behaviour
It gives:
Tasks query: malformed boolean query -- Invalid token (check the documentation for guidelines)

Steps to reproduce
Paste the following
( description regex matches /(buy|order)/ ) OR ( path includes Shopping )

And preview the results. The error will be seen.
Note: This will work, which is why I believe that the problem is in the boolean-parsing code:
description regex matches /(buy|order)/

Which Operating Systems are you using?

[ ] Android
[ ] iPhone/iPad
[ ] Linux
[X] macOS
[ ] Windows

Obsidian Version
1.1.9
Tasks Plugin Version
1.22.0
Checks

[ ] I have tried it with all other plugins disabled and the error still occurs

Possible solution
It seems that the regex-parsing code is finding brackets inside search strings.
A workaround is to break down the regular expression to:
( description includes buy ) OR ( description includes buy )  OR ( path includes Shopping )

But with my example above, with more query strings, that gets a bit onerous.

I just noticed a similar quirk when trying to filter for a filename that included parens: The filter filename includes (something) gives that error, while the same filter with path instead of filename works. I would expect them to behave the same.

The relevant source files are:

src/Query/Filter/BooleanField.ts

The parsing code
I presume the issue is this regex search which looks for parentheses, and does not know about their context inside any other filter lines

https://github.com/obsidian-tasks-group/obsidian-tasks/blob/8f3612552c5f8605e36fc0e6971e9b54b430c44b/src/Query/Filter/BooleanField.ts#L28

tests/Query/Filter/BooleanField.test.ts
main/tests/Query.test.ts

Also has some tests that verify that boolean operators - AND etc - are not picked up inside string queries

Halo @esm7, I imagine any time you might have for tasks would go on CSS stuff right now, but if you had any insights on this in the future, they would be appreciated.

Interesting... This suggests that the regex is fine and not picking up the paren in the description search:
https://regex101.com/r/29YxYr/1

I'm on mobile currently so can't debug this. If anyone were to work on it, I would suggest adding more info to the error messages along the way.

Note to self:
Another candidate line to look at is:
https://github.com/obsidian-tasks-group/obsidian-tasks/blob/8f3612552c5f8605e36fc0e6971e9b54b430c44b/src/Query/Filter/BooleanField.ts#L115
Which adds quotes around the component expressions. And may be applied to the entire line???
I wonder whether the quotes should only be added around the individual filters that are obtained by the results from applying basicBooleanRegexp?
I also wonder what will happen if there are " inside any search strings?

Interesting issue. I can work on it if you prefer (probably next week), or just point out that what I'd do next to understand the issue is to add some debug prints to see how the line looks like after the preprocessing (e.g. the line.replace in line 115 of BooleanField you quoted above) and then print out the components of the postfix expression that is generated from the query.

Thank you for the reply @esm7 - all helpful.
If you can work on it, that would be great - but absolutely no pressure. 😄

I'm having an initial look at this.

I added this test:
        it('should work with filter containing parenthesis', () => {
            // This tests the fix for
            //  https://github.com/obsidian-tasks-group/obsidian-tasks/issues/1500
            //  malformed boolean query for valid regex search that includes ()
            const filter = createValidFilter(
                '( description regex matches /(buy|order)/i ) OR ( path includes Home/Shopping )',
            );

            testWithDescription(filter, 'buy stuff', true);
        });

It failed because filter was undefined, as expected from this bug.
I added this debug output:
Index: src/Query/Filter/BooleanField.ts
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/Query/Filter/BooleanField.ts b/src/Query/Filter/BooleanField.ts
--- a/src/Query/Filter/BooleanField.ts	(revision 8f3612552c5f8605e36fc0e6971e9b54b430c44b)
+++ b/src/Query/Filter/BooleanField.ts	(date<PHONE_NUMBER>202)
@@ -112,7 +112,11 @@
         // Prepare the query to be processed by boon-js.
         // Boon doesn't process expression with spaces unless they are surrounded by quotes, so replace
         // (due today) by ("due today").
-        return line.replace(/\(([^()]+)\)/g, '("$1")');
+
+        const result_old = line.replace(/\(([^()]+)\)/g, '("$1")');
+        console.log(`preprocessExpression: in  ${line}
+                    : ->  ${result_old}`);
+        return result_old;
     }

     /*

It produced this output for the query in the new test:
  console.log
    preprocessExpression: in  ( description regex matches /(buy|order)/i ) OR ( path includes Home/Shopping )
                        : ->  ( description regex matches /("buy|order")/i ) OR (" path includes Home/Shopping ")

      at BooleanField.preprocessExpression (src/Query/Filter/BooleanField.ts:117:17)

So the double-quotes have been put inside the regular expression, instead of around the whole description...
Other examples of the output look like this, where you can see that the " are placed nicely inside the `().:
  console.log
    preprocessExpression: in   (description includes #context/location1) OR (description includes #context/location2 ) OR (  description includes #context/location3 ) OR   (  description includes #context/location4 )
                        : ->   ("description includes #context/location1") OR ("description includes #context/location2 ") OR ("  description includes #context/location3 ") OR   ("  description includes #context/location4 ")

      at BooleanField.preprocessExpression (src/Query/Filter/BooleanField.ts:117:17)

I had thought that this would be fixable by applying the basicBooleanRegexp regex and adding " around the expressions it extracted - but it turns out that it only finds the last of any AND/OR etc on the line... rather than all of them.
That's all I've got for now. I can't see a general fix for this, given that " and ( and ) can appear in any text query, any number of times - as can AND etc.

Indeed the preprocessing code is too simplistic to handle these internal regular expressions.
I believe that a direction for a fix would be to match pairs of (...) only if followed by the end of the line or a valid operator, e.g. (...)$, (...) AND, (...) OR, (...) XOR (with extra whitespaces allowed).

Yes I do agree with that. I couldn’t get my head around how to implement it when there are nested filters - the matching brackets could be a long way apart.

I just noticed a similar quirk when trying to filter for a filename that included parens: The filter filename includes (something) gives that error, while the same filter with path instead of filename works. I would expect them to behave the same.

I am seeing the same issue with filenames containing parentheses:
On a separate line, filename does not include 2023-01-06 (Friday).md throws an error, but path does not include 2023-01-06 (Friday).md does not.
But using path does not include 2023-01-06 (Friday).md inside a filter, such as (path does not include 2023-01-06 (Friday).md) AND (path does not include test.md) will also throw an error.
I was really confused as to why a working Tasks query from months ago (granted, I didn't test it since February) suddenly didn't work anymore...

I am seeing the same issue with filenames containing parentheses: On a separate line, filename does not include 2023-01-06 (Friday).md throws an error, but path does not include 2023-01-06 (Friday).md does not.

Moved to https://github.com/obsidian-tasks-group/obsidian-tasks/issues/1852

Indeed the preprocessing code is too simplistic to handle these internal regular expressions.
I believe that a direction for a fix would be to match pairs of (...) only if followed by the end of the line or a valid operator, e.g. (...)$, (...) AND, (...) OR, (...) XOR (with extra whitespaces allowed).

Just leaving this here, in case it is useful to my future self....
I recently learned about Lazy quantifiers, from:
https://www.youtube.com/watch?v=B9H0TyApBtU
More succinct reference:
https://stackoverflow.com/a/1919995
More detailed reference:
https://learn.microsoft.com/en-us/dotnet/standard/base-types/quantifiers-in-regular-expressions?redirectedfrom=MSDN
JavaScript article:
https://javascript.info/regexp-greedy-and-lazy
I am wildly speculating that esm7's suggestion (quoted above) in combination with lazy quantifiers to match the fewest number of times, may help with this.
Caveat: I have not checked the code to see if it is already using lazy quantifiers...

Another option is to adopt a proper parsing library:

#2079

I've been thinking about this a lot, and have an alternative idea that I think will be easier to reason about and to explain to users - and easier on developers too.
(Also, I remain of the feeling that complex regular expressions usually mask bugs...  such as this recently discovered example: https://github.com/obsidian-tasks-group/obsidian-tasks/pull/2136/commits/1be22e3c122d5ae7d18e57299f1ed41b3bfaf491 - so would prefer not to create any more 🤣  )
New proposal
Change the pre-processing step so that instead of adding quotes it does the following:
1 Split the line at the Boolean boundaries
Split it the operators and include all adjacent parens.
So for example, divide this:
NOT ( (tags include #context/loc1) OR (tags include #context/loc2) OR (tags include #context/loc3) )

Into this:
NOT ( (
tags include #context/loc1
) OR (
tags include #context/loc2
) OR (
tags include #context/loc3
) )

2 Give some kind of name or symbol to each of the non-operator lines
So the example becomes something like:
NOT ( (
f1
) OR (
f2
) OR (
f3
) )

and save a lookup table to map f1, f2 and f3 to the corresponding filter
3 Reassemble the line and give it to boon-js
NOT ( ( f1 ) OR ( f2 ) OR ( f3 ) )

And this is what gets parsed to boon-js - so there are not quotes and no () to deal with.
4 Adjust the search code
This kind of adds another level of indirection, so the Boolean search code will need to lookup which filter to apply.
5 Help users with lines that still fail to parse
There will still be cases that go wrong, for example:
(
description includes ) AND (
) OR (
description includes ) NOT (
)

will be split as something like
(
description includes
) AND (
) OR (
description includes
) NOT (
)

6 If there are still parsing errors after this fix...
Add a help message telling the user:

You may have mismatched brackets
Or you may have a text filter in this Boolean line with text such as  ) AND ( that looks like part of the boolean logic.

To fix this, reword the query.
If it's using includes or does not include, write AND, OR, NOT and XOR in lower case
If it's a regular expression, write it differently, for example [A]ND

Or you may have a search string that ends in ) and that is confusing Tasks

So surround your search text with ' ...' or " ...."
Implementation notes to remember......

This won't affect regex searches because of their trailing slash or flag
First allow users to surround includes and does not include searches with ' or " (and ignore them)

Some users do this anyway, and don't understand why their searches don't find anything

Or you may have a custom filter or grouping line that ends in )

Erm, I don't have an answer for that yet

If I understand correctly, your suggestion is equivalent to mine here, in its basic notion of gluing the parenthesis to their adjacent operators.
I think it steps up the way I phrased it, in the sense that it gives a more structured form to the same basic idea.
However, it also suffers from the same weakness, which is in step 1: since we do these splits and searches using very simplistic forms, and not actual syntax trees, it is difficult to differentiate between parenthesis and operator-like text that appears inside expressions.
It can be done, and I think you took it to a more practical level. However, I think that any idea that is based on simple textual preprocessing and not actual syntax trees/grammers, will inevitably be a compromise, and as such, may not be a worthwhile investment.
In other words, if we say the current parsing code is at 95%, and there's a complicated path to bring it to 97% and a completely different complicated path to bring it to 100%, we rather aim for the 100% and not take the code deeper into cryptic-regex-land :)

Yes, my proposal goes:

from every Boolean with any filter containing ( or ) is broken

and there is no workaround

To every Boolean with any filter containing ) AND (, ) OR ( etc is broken

and the workaround is to rephrase your filter prevent matching those phrase, such as lower-casing them or splitting them up in some way
I don’t think the regex would be too complicated

If it’s not hard to implement, I  think it more goes from 80% or 90% to > 99%… As in, I doubt many real world search strings will contain those Boolean operators.
There is another option I am considering. I really want to provide syntax highlighting in Tasks code blocks, and so I have been looking at how that works. This has involved looking at code that others have written to parse programming languages for syntax highlighting.
There is a small chance I may eventually understand enough about the CodeMirror parsing mechanisms to come up with a better parsing solution for this issue too.

PS You’re correct, I hadn’t spotted that I was restating your earlier suggestion. Thanks.

Hi @aubreyz,
Moving https://github.com/obsidian-tasks-group/obsidian-tasks/issues/1852#issuecomment-1783329958 to here...

Hi @aubreyz,
Re the following causing error messages because of this issue, when the file name contains ( or )...
```tasks
(description includes [[{{query.file.filenameWithoutExtension}}]]) OR (description includes [[{{query.file.filenameWithoutExtension}}|)
```

Is there any way to recode this to avoid this problem (or is this a different problem given the report that it is fixed)?

Sure.
```tasks
filter by function \
    task.description.includes('[[{{query.file.filenameWithoutExtension}}]]') || \
    task.description.includes('[[{{query.file.filenameWithoutExtension}}|')
```

Hi @aubreyz,
Sure.
```tasks
filter by function \
    task.description.includes('[[{{query.file.filenameWithoutExtension}}]]') || \
    task.description.includes('[[{{query.file.filenameWithoutExtension}}|')

Wow, thank you so much Clare (didn't work with the 's though - only if all on one line, at least with the current non-beta plugin version).

Hi @aubreyz,

Wow, thank you so much Clare (didn't work with the slashes though - but great if all on one line, at least with the current non-beta plugin version). \ not either

(There aren't supposed to be any beta versions... if you can see one, could you please send a link?)
That's weird. I just:

copied it multiple ways  ('select + copy and paste' - click on the 'Copy' icon on the code block in my comment above....
pasted it both ways (Cmd+V and Shift+Cmd+V)

and it worked fine each time.
If you're inclined to investigate:

please you're definitely on Tasks 5.0.0
and that there are no space characters after the \ - the \ needs to be precisely that last character on the lines..

If it still doesn't work, and you have time, a new bug report, including the error message, would be much appreciated.

Hi @aubreyz,

please check you're definitely on Tasks 5.0.0

Oops my bad. I just realised that particular vault had not updated to 5.0.0...
No beta I know of :) - just covering all bases in case there is a secret one...
Sorry about the noise

Just released in https://github.com/obsidian-tasks-group/obsidian-tasks/releases/tag/7.0.0


Mailman incorrectly forces users to have a subject and body

When filling out the subject and body, users should be able to leave them blank. Currently, I'm validating MergeTemplates too aggressively.

It looks like Mailman actually does allow empty subject and body. The real issue is that the user had old test data. To resolve this issue for the future, invalid MergeTemplates will be deleted.


Bug: cannot read property 'spans' of undefined on link tap

Make sure to check the demo app(s) for sample usage
Make sure to check the existing issues in this repository
If the demo apps cannot help and there is no issue for your problem, tell us about it
Please, ensure your title is less than 63 characters long and starts with a capital
letter.
Which platform(s) does your issue occur on?

iOS
iOS/Android versions  - 16.1 (only tested so far)
emulator or device. What type of device? emulator and device

Please, provide the following version numbers that your issue occurs with:

CLI: (run tns --version to fetch it)
Cross-platform modules: (check the 'version' attribute in the
<EMAIL_ADDRESS>file in your project)
Runtime(s): (look for the "tns-android" and "tns-ios" properties in the package.json file of your project)
Plugin(s): (look for the version numbers in the package.json file of your
project and paste your dependencies and devDependencies here)

MacBook-Pro:nativescript-byram bradmartin$ ns info
✔ Getting NativeScript components versions information...
✔ Component nativescript has 8.4.0 version and is up to date.
✔ Component @nativescript/core has 8.4.4 version and is up to date.
✔ Component @nativescript/ios has 8.4.0 version and is up to date.
✔ Component @nativescript/android has 8.4.0 version and is up to date.

    "@nativescript-community/ui-label": "~1.2.16",
     "@nativescript/ios": "~8.4.0",
    "@nativescript/types": "~8.4.0",
    "@nativescript/webpack": "~5.0.12",

Please, tell us how to recreate the issue in as much detail as possible.
Describe the steps to reproduce it.
Is there any code involved?
 <HTMLLabel
      class="p-y-10 m-b-5"
      fontSize="14"
      fontWeight="normal"
      linkColor="#336699"
      linkUnderline="true"
      [html]="orderConfirmationMessage"
      (linkTap)="onConfirmationLinkTap($event)"
      textWrap="true"
    ></HTMLLabel>

"
Your order has been received. You will receive an order confirmation number when your order is in process. Please allow 1 – 2 business days for verifying your insurance coverage & authorizations. If more information is needed, we will contact you.

Once your order ships, you will receive a shipping confirmation with tracking details. To check your order status at any time, view your Order History.
"

Can't seem to figure out "when" this started. In this project things were fine a couple months ago with releases. I think the implementation is fine. Just unsure why this happens on the iOS "tap" of the link. I've tried a few different html tags for input but no luck yet.

@bradmartin sorry will fix this right away

No rush, I poked around at the source but nothing jumped out to me as to why this was throwing where it did. Thanks though 👍🏻

Confirmed. Thanks

i pulled the source here and packed it, already in production. Wasn't sure you were waiting to do the npm release or what  😁

@bradmartin oh ok sorry about that !


Make sure make_dafsa.py uses Python2

make_dafsa.py is a definitely a Python 2 script. On systems where python is symlinked to python3, this script fails causing the build process to fail.

Good To know. Do you see any chance to get the script working with python 2 + 3 ?

I fixed the python3 incompatibilities in branch 'develop'. Thanks for pointing it out.


Reference to Cake.Core 0.26.0 or later

The actual version of this addin needs to be updated because of this error:

Error: The assembly 'Cake.Curl, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'
is referencing an older version of Cake.Core (0.22.0).
This assembly must reference at least Cake.Core version 0.26.0.

Could you please update it?

Thank you for reporting this. I plan to get on it later this week.
In the meantime, you can still use Cake.Curl with the latest version of Cake by temporarily disabling the version check when you invoke your script.
Powershell:
.\build.ps1 --settings_skipverification=true

Bash:
./build.sh --settings_skipverification=true

I verified this to work with both Cake and Cake.CoreCLR.


Cohost support

This should support Cohost.
Unofficial Python bindings: https://pypi.org/project/cohost/

Cohost is dead, so I guess not!


Setup onboarding repository

We need a nice onboarding plan for new members of the lab.

[ ] Create repository
[ ] Write README
[ ] Create reading list
[ ] Create action list
[ ] Blog exercises

What else?

Great resource: http://labcarpentry.org/

Could attend CNDay2017 : http://www.cnn.group.cam.ac.uk/cambridge-networks-day

Check out Aurelia's documentation here: https://github.com/mozillascience/studyGroup-GSOC

[x] Added working hours note to Code of Conduct
[x] Added blog about code description


Split state transition naive / fast packages

Naive state transition -> @chainsafe/lodestar-beacon-state-transition
Fast state transition -> @chainsafe/lodestar-beacon-state-transition-fast

Some tests are falling in the lodestar package due to very weird stubs of the beacon-state-transition-fast utilities. Are they really necessary? Can the same tests by done tweaking data instead of stubbing imports?

Some tests are falling in the lodestar package due to very weird stubs of the beacon-state-transition-fast utilities. Are they really necessary? Can the same tests by done tweaking data instead of stubbing imports?

That would defeat point of unit testing since change in state transition package would invalidate unit tests in lodestar.
There are some build errors as well.


API down

The nightlights data has not been loading for several months and the API appears to be empty or inaccessible. The website visualizer (nightlights.io) does not load the points (with errors like "Oops! There was an error!"), and one cannot download any data directly from the API either (whether loading via browser or using curl). E.g., the following give 404 not found errors: http://api.nightlights.io/regions, http://api.nightlights.io/months/. Meanwhile this example from the API docs gives a 500 Internal Server Error: curl -i http://api.nightlights.io/months/1993.3-1993.4/districts/gujarat-anand. The Build Status page listed at the beginning of the repository readme does not appear to work either.

I swapped the build status badge. I think the underlying issue is that the API was built and deployed on Node 10 which is no longer supported by Heroku. Upgrading to Node 16 requires updating some packages and associated code usage which need to be worked out to get the API running again


rafthttp: use new msgapp stream endpoint

from #2357

We use /raft/stream for v1 msgapp stream, and /raft/stream/msgapp for v2 msgapp stream. v2.0 uses /raft/stream as default and v2.1 uses /raft/stream/msgapp as default.