Enable backdrop click to hide sidebar

When I hide the sidebar when the page width is larger than 1199px, and then decrease the page width, I can't hide the sidebar by clicking on the backdrop. I think this might be caused by the body-locked class not being added when I hide the sidebar on the wide view.

for some reasons I can't see the css. Is the rake task broken?

@deekoder That wasn't the case for me, I ran the rake command before running the other 3 commands that are listed on the readme and was able to see the CSS changes.

@kaankabalak  do you approve?


Support for helm chart

I think the mpi-operator has one - https://github.com/kubeflow/mpi-operator/tree/c21942d1e27d196d06078f67f39a6f7a0e990dee/hack/helm and this would be really useful to have here too, e.g., for cases when we want to further customize our own defaults.

This is another hack (way to do it) https://github.com/Nordix/Meridio-Operator/tree/master/hack


Add basic examples notebook

@koldunovn I remember you asked for some examples. These ones are taken from the gist I've shown at our last meeting (sorry, it's been a while!)

The binder setup is a workaround that I've found in https://github.com/jupyterhub/repo2docker/issues/835#issue-556130444, as poetry is not yet supported (I have other problems with poetry, e.g.,  editable - dev - install seems not well supported / not very flexible and my IDE has troubles with poetry... but that's other issues).

@benbovy Great to see progress here! I was pretty absorbed in other projects and my guilt-level was approaching values where it actively blocks picking this up again... :)

my guilt-level was approaching values where it actively blocks picking this up again...

Hehe, I know that kind of feeling too well :). No worries at all!

Re poetry: Wouldn't a
python -m pip install .

work as well? At least this is true on my box:
$ conda activate base
$ conda create -n poetxoak python=3 pip -y
[...]
$ conda activate poetxoak
$ pip install git+https://github.com/ESM-VFC/xoak.git@master
[...]
$ python -c "import xoak" && echo "successfully installed xoak with pip"
successfully installed xoak with pip

Yes, but this doesn't work:
$ python -m pip install -e .
ERROR: File "setup.py" not found. Directory cannot be installed in editable mode ...
(A "pyproject.toml" file was found, but editable mode currently requires a setup.py based build.)

However I've just found that poetry install installs the library in developement mode.

Ah, yes a dev-mode install is not easily possible here. I agree this is desirable at the current stage of the development.

I'm going to merge this to have the notebook example available in the main branch (check fails are not related to the additions here). Let's see if binder works and maybe fix that in follow-up PRs.


2.3.11 Symbol not found

After updating pod to 2.3.11 I got an error
dyld: Symbol not found: _$S8DropDown0aB4CellC15normalTextColorSo7UIColorCSgvg   Referenced from: /var/containers/Bundle/Application/DDDD96FA-0A7A-49EA-B51A-EB7791855620/*******.app/*******   Expected in: /private/var/containers/Bundle/Application/DDDD96FA-0A7A-49EA-B51A-EB7791855620/*******.app/Frameworks/DropDown.framework/DropDown  in /var/containers/Bundle/Application/DDDD96FA-0A7A-49EA-B51A-EB7791855620/*******.app/*******

Hello @Said13 👋
What version of Swift are you using? And which version of Xcode?
If you are using Swift 4 or 4.1, you must use maximum version 2.3.2
Otherwise, did you try deleting "Pods" folder completely and do pod install again.
If still not working, try "Clean Build Folder" from Xcode menu 😉


Use AWS session token when available

Hi 👋
In some cases users of this action may which to assume a dedicated role and then update the keys of a user from there.
When you configure AWS credentials you can assume a role. This will put the session token in your env variables.
To allow for this, this action has to provide the session token to the boto client, so this PR does that if the env var exists.
I've also updated the readme.

@kneemaa Could you take a look if you get a chance?


Add a few trivial tests to increase code coverage

Code coverage numbers are still pretty bad. They are also extremely wrong, reporting entire functions as uncovered, that absolutely have test coverage (including tests dedicated solely to them!). Some conversions, however, are not covered explicitly (though they may be exercised implicitly). But just to be certain, add tests.

Trivial change; will merge once CI passes.


ValueError: Cannot infer num from shape(?,?) when using as_rotation_matrix with a dynamic type

I am trying to write a metrics using quaternions, the code looks like the follwoing:
def vectorMAEquat(y_true,y_pred):

    p1 = tf.constant([[1,0,0],[0,1,0],[0,0,1]],dtype=tf.float32)
    p2 = tf.constant([[1,0,0],[0,1,0],[0,0,1]],dtype=tf.float32)

    q1 = tfq.Quaternion(y_true)
    q2 = tfq.Quaternion(y_pred)

    rot1 = tf.matmul(q1.as_rotation_matrix(),p1)
    rot2 = tf.matmul(q2.as_rotation_matrix(),p2)

    return K.mean(K.abs(rot1 - rot2))

However, this gives me the error: ValueError: Cannot infer num from shape(?,?) which comes form the function
w,x,y,z = tf.unstack(self.normalized().value(),axis=-1) from the file tfquaternion.py , in line 364 in the function as_rotation_matrix.
A little bit of googling brought me here: https://stackoverflow.com/questions/45404056/tf-unstack-with-dynamic-shape
So, maybe this would be a nice feature, if as_rotation_matrix could work with dynamic_partition, but I am not fluent enough in tensorflow to achieve this, so any pointers would be really appreciated.
Thank you

Hi,
I've pushed a commit that adds num=4 to unstack, this should hopefully resolve this issue. Can you check if this fixes the error? Then I'd update the pip package.
Thanks :)

Thanks for the quick fix, is it already on PyPi or do I need to install it from the github page?

I just pushed it to PyPi :)

I tried it, however the error still occurs. I am using it as a metrics for model.fit_generator(...) , the "num=4" can be seen in the error message.

What is your dynamic shape? Is it  4 in the correct dimension? Also, is the error message the same, i.e., ValueError: Cannot infer num from shape(?,?) ?

Yes I think so, cause I am using the following loss function:
def quatloss(y_true,y_pred):
   q1 = tfq.Quaternion(y_true)
   q2 = tfq.Quaternion(y_pred)
   return K.mean(K.abs(q1-q2))

Which works, so my Dimension is: (batch_size,4), my used batch_size is 8

Which tensorflow version are you using?
I'm using
tf.__version__
'1.13.0-dev20190104

For me the following code works well:
import tensorflow as tf
import tfquaternion as tfq
pl = tf.placeholder(tf.float32, (None, None))
q1 = tfq.Quaternion(pl)
matrix = q1.as_rotation_matrix()
with tf.Session() as sess:
  sess.run(matrix, feed_dict={pl: [[1,2,3,4]]})

I am on tf.version 1.10.1, I wll test the sniuppet as soon as my GPU is free again ;)

Thank you the acutal problem is gone now.
Sadly a new error occurs, which has nothing to do with this project, but is mir likely to be a tensorflow issue:
ValueError: Shape must be rank 2 but is rank 3 for 'metrics_4/vectorMAEquat/MatMul' (op:
MatMul') with input shapes: [?,3,3], [3.3]

I think it has something to do with the p1 and p2 constant

Yep, p1 and p2 should probably have shape [1,3,3].

had to use the batch size in the constant:
 p1 = tf.constant(batch_size*[[[1,00],[0,1,0],[0,0,1]]])
fixed it. Thank you really much.


This giving the following errors below

C:\Users\Vinicius111\Downloads\xumx-master\xumx-master\xumx>python test.py --input inputs/"C:\Users\Vinicius111\Music\Test.mp3"python test.py ----model model/C:\Users\Vinicius111\Downloads\x-umx.h5 --outdir outputs/
2021-01-30 12:04:32,295 [nnabla][INFO]: Initializing CPU extension...
Traceback (most recent call last):
File "test.py", line 28, in
from .args import get_inference_args
ModuleNotFoundError: No module named 'main.args'; 'main' is not a package

Thank you for reporting.
In my environment, I cannot reproduce your issue, so maybe I'm wrong,
Are there unnecessary dots? my code is:
from args import get_inference_args
but your error message reports:
from .args import get_inference_args

I hope this helps you.
I close this github issue. If you have additional question, please submit new one.


fix(versions): update Activiti/activiti-cloud-full-chart-security versions

UpdateBot pushed helm dependency: activiti-cloud-full-example to: 7.1.417

UpdateBot commands:
updatebot push-version --kind helm activiti-cloud-full-example 7.1.417


add more supported voices in models.py

from realtime api doc: https://platform.openai.com/docs/api-reference/realtime-client-events

The voice the model uses to respond. Supported voices are ash, ballad, coral, sage, and verse (also supported but not recommended are alloy, echo, and shimmer; these voices are less expressive). Cannot be changed once the model has responded with audio at least once.

Purpose
add add more supported voices in Voice model in models.py
Does this introduce a breaking change?

[ ] Yes
[x] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Get the code

git clone [repo-address]
cd [repo-name]
git checkout [branch-name]
npm install

Test the code
Use the python client and use one of the newly added supported voice: [ash, ballad, coral, sage, and verse]

What to Check
Verify that the following are valid
new voices work
Other Information

@glecaros @trrwilson Can you please review? Thanks!

With this patch, after adding one the new voices (ash) in client_sample.py:
async def run(client: RTClient, audio_file_path: str, out_dir: str):
    print("Configuring Session...", end="", flush=True)
    await client.configure(
        turn_detection=ServerVAD(threshold=0.5, prefix_padding_ms=300, silence_duration_ms=200),
        input_audio_transcription=InputAudioTranscription(model="whisper-1"),
        voice="ash",

I get this error:
$ python client_sample.py input/arc-easy-q237-tts.wav output/ azure
Configuring Session...Traceback (most recent call last):
  File "/home/renault/Openai/aoai-realtime-audio-sdk/python/samples/client_sample.py", line 206, in <module>
    asyncio.run(with_azure_openai(file_path, out_dir))
  File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/home/renault/Openai/aoai-realtime-audio-sdk/python/samples/client_sample.py", line 172, in with_azure_openai
    await run(client, audio_file_path, out_dir)
  File "/home/renault/Openai/aoai-realtime-audio-sdk/python/samples/client_sample.py", line 149, in run
    await client.configure(
  File "/home/renault/Openai/aoai-realtime-audio-sdk/python/samples/venv/lib/python3.10/site-packages/rtclient/__init__.py", line 686, in configure
    raise RealtimeException(message.error)
rtclient.RealtimeException: Invalid value: 'ash'. Supported values are: 'amuch', 'dan', 'elan', 'marilyn', 'meadow', 'breeze', 'cove', 'ember', 'jupiter', 'alloy', 'echo', and 'shimmer'.

with "gpt-4o-realtime-preview" deployment.

@manu3b1 I didn't test with Azure OpenAI. @glecaros @trrwilson do you know if OpenAI and Azure's OpenAI  support different voices for Realtime API?

@xwang-otterai the realtime model in Azure OpenAI does not currently support ash, ballad, coral, sage, and verse. Stay tuned as we continue to update the model and add new features, including additional voices!


Status bar should be hidden for iPhone 6+ In landscape view

Attached screenshot shows how in iOS 8 on the iPhone 6+, the status bar is made completely hidden. I could not find documentation to force it, either. It appears quite common, as even native apps hide the status bar. I'm attaching the weather app below as an example:

As it not always required, you may use this simple workaround:
if (iPhone6Plus) {
  $(window).on('orientationchange', function (){
    if (window.orientation === 90 || window.orientation === -90) {
      $('html').removeClass('with-statusbar-overlay');
    }
    else {
      $('html').addClass('with-statusbar-overlay');
    }
  })
}

You may use cordova device plugin or check the screen size to make sure that it is iPhone 6 Plus

Thanks @nolimits4web. Ended up doing something like:

function my_app_statusbar_toggle() {
	if ( My_App.device.statusBar ) {
		if ( window.orientation === 90 || window.orientation === -90 ) {
			$$( 'html' ).removeClass( 'with-statusbar-overlay' );
		} else {
			$$( 'html' ).addClass( 'with-statusbar-overlay' );
		}
	}
}

window.addEventListener( 'orientationchange', function() {
	my_app_statusbar_toggle();
} );

window.addEventListener( 'load', function() {
	my_app_statusbar_toggle();
} );


automate default permission 'basic' insertion

Fixes #12 -- added an INSERT IF NOT EXISTS sort of structure following the table creation pattern.

I like it :+1:


[BEAM-9615] Recover from registration panics.

While developing logical schema providers or similar it's possible they will panic and not handle it. This provides a better user experience by providing the type that's being panicked on, as well as the original panic, especially because reconciliation is deferred from the original call to register a type.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @youngoli @jrmccluskey


Revert "Don't include templateRef in TinkerbellMachineConfig on gener…

…ate (#2398)"
This reverts commit 85f004fda894b87ac41bee9f264f0286bf621e32.
Issue #, if available:
Description of changes:
Testing (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/approve

/approve

/lgtm


Can't train this model (ValueError: 'UNK' is not in list)

I'm trying to follow ConvCap: Convolutional Image Captioning(README.md)
But it doesn't work
after I write the code
python main.py model_dir
It sends a error message like thie

[DEBUG] #words in wordlist: 9222
[DEBUG] Loading train data ... 3.029390 secs
C:\Users\410\anaconda3\envs\Image_Captioning\lib\site-packages\torch\optim\lr_scheduler.py:82: UserWarning: Detected call of lr_scheduler.step() before optimizer.step(). In PyTorch 1.1.0 and later, you should call them in the opposite order: optimizer.step() before lr_scheduler.step().  Failure to do this will result in PyTorch skipping the first value of the learning rate schedule.See more details at https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate
"https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate", UserWarning)
0%|                                                                                | 0/5664 [00:00<?, ?it/s]
Traceback (most recent call last):
File "main.py", line 89, in
main()
File "main.py", line 72, in main
train(args)
File "D:\2021\컴퓨터 비전\eval\이미지 캡셔닝\train.py", line 90, in train
tqdm(enumerate(train_data_loader), total=nbatches):
File "C:\Users\410\anaconda3\envs\Image_Captioning\lib\site-packages\tqdm\std.py", line 1180, in iter
for obj in iterable:
File "C:\Users\410\anaconda3\envs\Image_Captioning\lib\site-packages\torch\utils\data\dataloader.py", line 819, in next
return self._process_data(data)
File "C:\Users\410\anaconda3\envs\Image_Captioning\lib\site-packages\torch\utils\data\dataloader.py", line 846, in _process_data
data.reraise()
File "C:\Users\410\anaconda3\envs\Image_Captioning\lib\site-packages\torch_utils.py", line 369, in reraise
raise self.exc_type(msg)
ValueError: Caught ValueError in DataLoader worker process 0.
Original Traceback (most recent call last):
File "C:\Users\410\anaconda3\envs\Image_Captioning\lib\site-packages\torch\utils\data_utils\worker.py", line 178, in _worker_loop
data = fetcher.fetch(index)
File "C:\Users\410\anaconda3\envs\Image_Captioning\lib\site-packages\torch\utils\data_utils\fetch.py", line 44, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "C:\Users\410\anaconda3\envs\Image_Captioning\lib\site-packages\torch\utils\data_utils\fetch.py", line 44, in
data = [self.dataset[idx] for idx in possibly_batched_index]
File "D:\2021\컴퓨터 비전\eval\이미지 캡셔닝\coco_loader.py", line 102, in getitem
wordclass[i, word_i] = self.wordlist.index(word)
ValueError: 'UNK' is not in list

How can I solve this?

I am having the exact same error. Any help for this ?


Can't connect to Hyper-V VM, testing for TCP connection forever

As Virtualbox is hosed on Windows 10 right now https://www.virtualbox.org/ticket/14040 I thought I'd try Hyper-V. Unfortunately I can't get it working.
I ran docker-machine -D create -d hyper-v test2 and it indefinitely repeats "Testing TCP connection to: fe80::215:5dff:fef2:9f86:22". I'm not sure why it's using an IPv6 address.
Here's the full output.
[executing ==>] : c:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe @(Get-Command Get-VM).ModuleName
[stdout =====>] : Hyper-V
[stderr =====>] :
Creating SSH key...

Any help would be appreciated so that I can get back to work. Thanks!

What's the VM switch you're using?
I was getting this same issue until I changed the virtual switch I had created to "External" connected to the Ethernet instead of "Internal".

Hi @nathanleclaire, thanks for the response.
I went to Action->Virtual Switch Manager. I had a Windows Phone Emulator one, so I created a new virtual network switch.
I selected External and clicked Create Virtual Switch.
I named it External. Selected External network and selected my network controller.
I then typed this command:
docker-machine -D create -d hyper-v test --hyper-v-virtual-switch External
I still have the same output though, where "Testing TCP connection" repeats forever. Did I miss a step? Are you on Windows 10 as well? Any help would be appreciated. Thanks!

@aaronsturm looks like docker-machine chose the Windows Phone Virtual Adapter as the the one to use, as it was most likely first. Additionally looks like that adapter has IPv6 as the first ip-address.
Would you be able to verify Network Adapter names by running PS: C:\> Get-VMSwitch

Thanks @agup006! I couldn't figure out how to keep the formatting in this comment, so I'm attaching an image.

@aaronsturm Running on Windows 10 with the same NetAdapterInterfaceDescription (Surface Pro 3? :) ) -- Don't have the Windows Phone Emulator Internal Switch though, and can't reproduce this.

I'm hunting in same woods:

fe80: are equivalents to 169. reserved adresses.
it seems there is no dhcp running on your vSwitch which would assign a correct IP
http://www.dhcpserver.de/cms/ is easy to use for enabling dhcp on your switch
"External" seems not to work on some routers, such as mine, or am I missing something here?

Any resolution to this?  I am having the exact same issue.  I've tried every combination of External, Internal, and Private types of virtual switches, along with every network connection on my machine.  My VMs never get assigned an IP when they are booting, so I get hung in the infinite loop:
(myvm6) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Get-VM myvm6 ).networkadapters[0]).ipaddresses[0]
(myvm6) DBG | [stdout =====>] :
(myvm6) DBG | [stderr =====>] :
(myvm6) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Get-VM myvm6 ).state
(myvm6) DBG | [stdout =====>] : Running
(myvm6) DBG |
(myvm6) DBG | [stderr =====>] :
(myvm6) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Get-VM myvm6 ).networkadapters[0]).ipaddresses[0]
(myvm6) DBG | [stdout =====>] :
(myvm6) DBG | [stderr =====>] :
(myvm6) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Get-VM myvm6 ).state
(myvm6) DBG | [stdout =====>] : Running
(myvm6) DBG |
(myvm6) DBG | [stderr =====>] :
(myvm6) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Get-VM myvm6 ).networkadapters[0]).ipaddresses[0]
(myvm6) DBG | [stdout =====>] :
(myvm6) DBG | [stderr =====>] :
(myvm6) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive ( Get-VM myvm6 ).state
(myvm6) DBG | [stdout =====>] : Running
(myvm6) DBG |
(myvm6) DBG | [stderr =====>] :
(myvm6) DBG | [executing ==>] : C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive (( Get-VM myvm6 ).networkadapters[0]).ipaddresses[0]


Linux Flame2025

Hi,
I am trying to install FlameTimewarpML in Flame 2025 with Rocky 8.7 but I don't have success. Any advice to doing it?
Thank you,
I

Hi Inakisa,
Version v0.4.4 and before are not directly compatible with Flame 2025 due
to a switch from PySide2 to PySide6. There are patches on Logik group forum
in TWML thread that would allow installing it.
I'm currently focused on getting v0.4.5 out and it should work fine with
Flame 2025. You can check the progress with readme on Github. I'm currently
focused on (hopefully) last changes to a new model in terms of its quality
and then memory consumption optimization.
If you would like to join and help or know someone who would like please
let me know.
Thank you,
Andriy.
On Wed, May 8, 2024 at 5:34 PM inakisa @.***> wrote:

Hi,
I am trying to install FlameTimewarpML in Flame 2025 with Rocky 8.7 but I
don't have success. Any advice to doing it?
Thank you,
I
—
Reply to this email directly, view it on GitHub
https://github.com/talosh/flameTimewarpML/issues/92, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMBGYKAMM3DV3DB4RURZHZDZBJHZNAVCNFSM6AAAAABHNJUMZ2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGI4DKOJZGY4TKNQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


ReactEventListener.js event are not bound to Link component on Safari

Hi! I just saw that my application's router doesn't work on Safari (v8.0.8).
When i use the Link component, all is ok in Chrome but in Safari, it doesn't trigger any history changes or other react-router related event.
See: http://imgur.com/a/GA7bI
Sorry, it's in french for the Safari screenshot, but you can see the event from ReactEventListener.js is missing. I just created a SO question (http://stackoverflow.com/questions/39214033/react-routers-links-doesnt-work-on-safari-v8-0-8), but it's probably a bug.
Sorry if it's not and thank you for your help!

We cover Safari 8: https://github.com/reactjs/react-router/blob/ab4552d2ea0ec5c0cf3c534bca654a1af3ea0dec/karma.conf.js#L31-L37
In general we're not doing anything novel with event handling. If something's weird, it's probably a bug upstream.


Request support for Connect 5W Smart RGB Downlight GU5.3

Log Message
I've tried with IP of auto or putting the actual IP address in. I either get no log, or the below log. When I add it, it selects RGBCW Lightbulb. Using RGBCW Lightbulb preset it does turn on/off and change colours. Although sometime I have to press the colour twice for it to register. The scenes and timer doesn't work and there's no energy metering.
Logger: homeassistant.util.async_
Source: util/async_.py:166
First occurred: 9:13:57 AM (2 occurrences)
Last logged: 9:19:53 AM

Detected blocking call to sleep inside the event loop. This is causing stability issues. Please report issue to the custom integration author for tuya_local doing blocking calls at custom_components/tuya_local/device.py, line 78: self._api = tinytuya.Device(dev_id, address, local_key)

Information about DPS mappings

{
  "result": {
    "properties": [
      {
        "code": "switch_led",
        "custom_name": "",
        "dp_id": 20,
        "time":<PHONE_NUMBER>663,
        "value": false
      },
      {
        "code": "work_mode",
        "custom_name": "",
        "dp_id": 21,
        "time":<PHONE_NUMBER>663,
        "value": "colour"
      },
      {
        "code": "bright_value",
        "custom_name": "",
        "dp_id": 22,
        "time":<PHONE_NUMBER>663,
        "value": 1000
      },
      {
        "code": "temp_value",
        "custom_name": "",
        "dp_id": 23,
        "time":<PHONE_NUMBER>663,
        "value": 225
      },
      {
        "code": "colour_data",
        "custom_name": "",
        "dp_id": 24,
        "time":<PHONE_NUMBER>663,
        "value": "007b03b603e8"
      },
      {
        "code": "scene_data",
        "custom_name": "",
        "dp_id": 25,
        "time":<PHONE_NUMBER>663,
        "value": "07464602000003e803e800000000464602007803e803e80000000046460200f003e803e800000000464602003d03e803e80000000046460200ae03e803e800000000464602011303e803e800000000"
      },
      {
        "code": "countdown",
        "custom_name": "",
        "dp_id": 26,
        "time":<PHONE_NUMBER>663,
        "value": 0
      },
      {
        "code": "music_data",
        "custom_name": "",
        "dp_id": 27,
        "time":<PHONE_NUMBER>486,
        "value": ""
      },
      {
        "code": "control_data",
        "custom_name": "",
        "dp_id": 28,
        "time":<PHONE_NUMBER>486,
        "value": ""
      },
      {
        "code": "rhythm_mode",
        "custom_name": "",
        "dp_id": 30,
        "time":<PHONE_NUMBER>499,
        "value": "AAAAfwQBBh4AAAAAFBkBCh4AAAAAZGQBFAAAAAAAUDIBFwAAAAAABQA="
      },
      {
        "code": "sleep_mode",
        "custom_name": "",
        "dp_id": 31,
        "time":<PHONE_NUMBER>851,
        "value": "AAA="
      },
      {
        "code": "wakeup_mode",
        "custom_name": "",
        "dp_id": 32,
        "time":<PHONE_NUMBER>207,
        "value": "AAA="
      }
    ]
  },
  "success": true,
  "t":<PHONE_NUMBER>479,
  "tid": "ee0c06dd160a11ee97740a4306e7517e"
}

Product ID
3cmiojdcymzcuod0

Information about how the device functions
Fairly standard Tuya smart RGB light.
https://connectsmarthome.com.au/product/connect-5w-smart-rgb-downlight-gu5-3
https://www.arrowcomputers.com.au/shop/product/csh-gu53rgb5w-connect-5w-smart-rgb-downlight-gu5-3-12744
Model CSH-GU53RGB5W
Brand: Connect Smarthome by Laser Co
Manual: https://www.connectsmarthome.com.au/manual/lighting/Manual - CSH RGB Smart Light.pdf
Tuya API Explorer calls it GU5.3 RGB Light

If you managed to add it, there should've been a log message with the dps listed unless it was a perfect match for RGBCW lightbulb, which it seems not. Or, now that it is added, you can download the device diagnostics from Settings /Devices to get the dps listing.

Oh gotcha. Below is the diagnostics.
 "integration_manifest": {
    "domain": "tuya_local",
    "name": "Tuya Local",
    "codeowners": [
      "@make-all"
    ],
    "config_flow": true,
    "dependencies": [],
    "documentation": "https://github.com/make-all/tuya-local",
    "integration_type": "device",
    "iot_class": "local_push",
    "issue_tracker": "https://github.com/make-all/tuya-local/issues",
    "requirements": [
      "pycryptodome~=3.18",
      "tinytuya==1.12.8"
    ],
    "version": "2023.6.1",
    "is_built_in": false
  },
  "data": {
    "name": "RGBCW Lightbulb",
    "type": "rgbcw_lightbulb",
    "device_id": "**REDACTED**",
    "device_cid": "",
    "local_key": "**REDACTED**",
    "host": "**REDACTED**",
    "protocol_version": 3.3,
    "tinytuya_version": "1.12.8",
    "api_version_set": 3.3,
    "api_version_used": 3.3,
    "api_working": true,
    "status": {},
    "cached_state": {
      "updated_at":<PHONE_NUMBER>.8565361,
      "20": false,
      "21": "colour",
      "22": 1000,
      "23": 225,
      "24": "007b03b603e8",
      "25": "07464602000003e803e800000000464602007803e803e80000000046460200f003e803e800000000464602003d03e803e80000000046460200ae03e803e800000000464602011303e803e800000000",
      "26": 0
    },
    "pending_state": {},
    "connected": true,
    "force_dps": [],
    "home_assistant": {
      "name": "RGBCW Lightbulb",
      "name_by_user": null,
      "disabled": false,
      "disabled_by": null,
      "entities": [
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "select.rgbcw_lightbulb_scene",
            "state": "Gorgeous",
            "attributes": {
              "options": [
                "Night",
                "Read",
                "Working",
                "Leisure",
                "Soft",
                "Colorful",
                "Dazzling",
                "Gorgeous"
              ],
              "icon": "mdi:palette",
              "friendly_name": "RGBCW Lightbulb Scene"
            },
            "last_changed": "2023-06-29T01:58:20.039587+00:00",
            "last_updated": "2023-06-29T01:58:20.039587+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": null,
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "light.rgbcw_lightbulb",
            "state": "off",
            "attributes": {
              "min_color_temp_kelvin": 2000,
              "max_color_temp_kelvin": 6535,
              "min_mireds": 153,
              "max_mireds": 500,
              "effect_list": [
                "Scene",
                "Music"
              ],
              "supported_color_modes": [
                "color_temp",
                "hs"
              ],
              "scene_data": "07464602000003e803e800000000464602007803e803e80000000046460200f003e803e800000000464602003d03e803e80000000046460200ae03e803e800000000464602011303e803e800000000",
              "friendly_name": "RGBCW Lightbulb",
              "supported_features": 4
            },
            "last_changed": "2023-06-29T01:58:20.039918+00:00",
            "last_updated": "2023-06-29T01:58:20.039918+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": "min",
          "state": {
            "entity_id": "number.rgbcw_lightbulb_timer",
            "state": "0.0",
            "attributes": {
              "min": 0.0,
              "max": 1440.0,
              "step": 1.0,
              "mode": "auto",
              "unit_of_measurement": "min",
              "icon": "mdi:timer",
              "friendly_name": "RGBCW Lightbulb Timer"
            },
            "last_changed": "2023-06-29T01:58:20.039367+00:00",
            "last_updated": "2023-06-29T01:58:20.039367+00:00"
          }
        }
      ]
    }
  }
}

It does look to be exactly the same as RGBCW lightbulb, except perhaps the scene format may be different.  Or you may need to change the lightbulb effect to scene as well as setting your scene with the separate scene select entity to get them to work.  Since it is a fixed list of scenes, based on one specific lightbulbs predefined scenes, the support for scenes will be limited anyway.

Thanks for the insights. You're completely right. If I set both the scene select entity and scene effect then the scenes work. I woudn't have thought of that, thanks.
I did some more tests with the timer and turns out it does work perfectly. I think I must have tested it with local tuya and forgot and didn't bother to test it again with tuya local. Thanks for your help, and sorry for the hassle. Since nothing further is needed I'll close this issue.


(maint) Teardown remaining lastrunfile after using tmp env

Recent work allowed the agent to skip node requests by inspecting a
lastrunfile if it exists and start the agent check-in process with the
environment listed there. However, the acceptance tests often create
dummy enviroments and do not clean up the lastrunfile.
A first pass updated many tests to remove the lastrunfile on all agents
if they used a temporary environment. However, several were missed as
the agent testing will only test a subset of the server tests. In an
attempt to quickly rectify the situation this patch audits all
acceptance tests that use, or mention that they should use,
mk_tmp_environment_with_teardown and extends their teardowns to use
the existing pattern for removing the lastrunfile.

WIP, this is a quick local audit. Still need to verify against what we saw in CI and run the tests themselves.

jenkins please test this with servertests

      Test Suite: tests @ 2021-07-28 21:14:18 -0700

      - Host Configuration Summary -

              - Test Case Summary for suite 'tests' -
       Total Suite Time: 6314.70 seconds
      Average Test Time: 26.42 seconds
              Attempted: 239
                 Passed: 187
                 Failed: 0
                Errored: 1
                Skipped: 50
                Pending: 1
                  Total: 239

      - Specific Test Case Status -

Failed Tests Cases:
Errored Tests Cases:
  Test Case ruby/puppet/acceptance/tests/i18n/enable_option_disable_i18n.rb reported: #<RuntimeError: PuppetAcceptance::DSL::Helpers.with_puppet_running_on failed (check backtrace for locatio
n) because: Host 'tricky-dolphin.delivery.puppetlabs.net' exited with 1 running:
 locale-gen --lang ja_JP.utf8
Last 10 lines of output were:
        Error: 'ja_JP.utf8' is not a supported language or locale
/home/justin/backups/Backup/code/work/server/puppetserver/vendor/bundle/ruby/2.7.0/gems/beaker-4.28.0/lib/beaker/host.rb:401:in `exec'
/home/justin/backups/Backup/code/work/server/puppetserver/vendor/bundle/ruby/2.7.0/gems/beaker-4.28.0/lib/beaker/dsl/helpers/host_helpers.rb:83:in `block in on'
/home/justin/backups/Backup/code/work/server/puppetserver/vendor/bundle/ruby/2.7.0/gems/beaker-4.28.0/lib/beaker/shared/host_manager.rb:130:in `run_block_on'
/home/justin/backups/Backup/code/work/server/puppetserver/vendor/bundle/ruby/2.7.0/gems/beaker-4.28.0/lib/beaker/dsl/patterns.rb:37:in `block_on'
/home/justin/backups/Backup/code/work/server/puppetserver/vendor/bundle/ruby/2.7.0/gems/beaker-4.28.0/lib/beaker/dsl/helpers/host_helpers.rb:63:in `on'
/home/justin/backups/Backup/code/work/server/puppetserver/ruby/puppet/acceptance/lib/puppet/acceptance/i18n_utils.rb:14:in `block in enable_locale_language'
/home/justin/backups/Backup/code/work/server/puppetserver/vendor/bundle/ruby/2.7.0/gems/beaker-4.28.0/lib/beaker/dsl/helpers/host_helpers.rb:93:in `block in on'
/home/justin/backups/Backup/code/work/server/puppetserver/vendor/bundle/ruby/2.7.0/gems/beaker-4.28.0/lib/beaker/shared/host_manager.rb:130:in `run_block_on'
/home/justin/backups/Backup/code/work/server/puppetserver/vendor/bundle/ruby/2.7.0/gems/beaker-4.28.0/lib/beaker/dsl/patterns.rb:37:in `block_on'
/home/justin/backups/Backup/code/work/server/puppetserver/vendor/bundle/ruby/2.7.0/gems/beaker-4.28.0/lib/beaker/dsl/helpers/host_helpers.rb:63:in `on'
/home/justin/backups/Backup/code/work/server/puppetserver/ruby/puppet/acceptance/lib/puppet/acceptance/i18n_utils.rb:12:in `enable_locale_language'
ruby/puppet/acceptance/tests/i18n/enable_option_disable_i18n.rb:19:in `block (5 levels) in run_test'

....

 Since you posted an almost successful run (we assume the i18n might be caused by code we reverted or it is a transient), I think it's safe and helpful to merge and run agent pipeline with this corrections.
If we cause any trouble, we could complete it/revert it later on


CSS refactoring: start page link

Right now the links under search box aren't displayed as wished while hovering.
The whole box should be colored in dark-grey, not only the text.

Done.


reading value back doesn't work anymore

Reading values back in the User Scope (using a dynamodb) doesn't; work anymore in 1.0.0
But works fine in 0.2.2

This test for instance works in 0.2.2 but fails in 1.0.0
public class UserStateTest {
static String id = null;

@Before
public void initialize() {
    SkillUserDB.enable();
    id = String.valueOf(new Random().nextInt(99999));
}

@After
public void cleanup() {
    SkillUserDB.removeUser(SkillUserDB.fakeSession(id));
}

@Test
public void userTest() throws Exception {
    Session session = SkillUserDB.fakeSession(id);
    assertFalse(SkillUserDB.exists(id));

    SkillUser user = SkillUserDB.create(session);
    assertTrue(id.equals(user.getKey()));
    user.setFirstName("John");
    user.setLastName("Doe");
    user.setLastResponse("How are you today?");
    user.saveState();
    assertTrue(SkillUserDB.exists(id)); // fails with 1.0.0 bu work with 0.2.2

    user = SkillUserDB.get(session); // same session.
    assertEquals("John", user.getFirstName());
    assertNotNull(user.getLastResponse());

    // create new session, but use the same user id
    session = SkillUserDB.fakeSession(id);
    user = SkillUserDB.get(session);

    assertEquals("John", user.getFirstName());
    assertEquals(null, user.getLastResponse());

    SkillUserDB.removeUser(session); // same session.
    assertFalse(SkillUserDB.exists(id));
}

}

Hi Wolf,
thanks for giving feedback. I'd like to investigate the issue you have but I need a bit more information as it seems you are hiding most of the SDK usage inside the SkillUserDB class.
So, my question is what happens inside SkillUserDB.exists(id)? Is it using the new exists() methods of States SDK 1.0.0 handlers?

Hi Kay,
Thanks so much for looking into this … maybe, I’m just using it in an unintended way.
I have a SkillUser class, which I mainly want to keep in the (Scope = AlexaScope.USER)
SkillUserDB just provides some basic static methods to hide all the DynamoDB stuff.
I have both classes attached.
Moreover, I have the need to create the SkillUser outside of the main Alexa lifecycle, I want to create the user, when he performs account linking. For that I create a fakeSession (again, look at the SkillUserDB class for details.
Happy holidays
Cheers
Wolf

On Dec 21, 2016, at 6:55 AM, Kay Lerch<EMAIL_ADDRESS>wrote:
Hi Wolf,
thanks for giving feedback. I'd like to investigate the issue you have but I need a bit more information as it seems you are hiding most of the SDK usage inside the SkillUserDB class.
So, my question is what happens inside SkillUserDB.exists(id)? Is it using the new exists() methods of States SDK 1.0.0 handlers?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/KayLerch/alexa-skills-kit-states-java/issues/3#issuecomment-268542051, or mute the thread https://github.com/notifications/unsubscribe-auth/AATphdPjK1tkhSpjPNK465nr3tyzYHL-ks5rKT3PgaJpZM4LPkO-.

Hi Wolf,
did you forget to attach the class files or am I missing something?
Your use case sounds legit. Also, having above code work for you in 0.2.2. makes me concerned about 1.0.0 as this one should be backward compatible.

I though I had the classes attached,
Let me try again .. if if doesn’t work this took eI will use dropbox.
Let me know

On Dec 21, 2016, at 11:22 AM, Kay Lerch<EMAIL_ADDRESS>wrote:
Hi Wolf,
did you forget to attach the class files or am I missing something?
Your use case sounds legit. Also, having above code work for you in 0.2.2. makes me concerned about 1.0.0 as this one should be backward compatible.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Sorry, I cannot see any attachments. Try use Gist and post the link to your published script file. Or try do whatever gives me the chance to look at your code ;)

OK try this
https://www.dropbox.com/s/lm06lxjpx3oue39/state.zip?dl=0 https://www.dropbox.com/s/lm06lxjpx3oue39/state.zip?dl=0

On Dec 21, 2016, at 12:29 PM, Kay Lerch<EMAIL_ADDRESS>wrote:
Sorry, I cannot see any attachments. Try use Gist and post the link to your published script file. Or try do whatever gives me the chance to look at your code ;)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/KayLerch/alexa-skills-kit-states-java/issues/3#issuecomment-268630947, or mute the thread https://github.com/notifications/unsubscribe-auth/AATphT7IvNdBfIC7zwY8vUtSx_A13YMRks5rKYw_gaJpZM4LPkO-.

I reviewed your code and I figured out that you work with different userIds in your "fakeSessions". Handlers that save state in USER scope use the sessions userId to create a unique record per user (e.g. an item in dynamo, a file in S3). So writing state with a session having userId 123 results your get-method to return nothing when using another session having userId 234. I saw both in your code, one session with userId = uid and another with userId = token.
As you are using the accessToken as state object ids anyway, you could also save state in APPLICATION scope because your objects are indexed with an id unique per user. This is how it won't matter which userId is set in your session.
To better understand the consequences of id assignments it's always worth having a look into DynamoDB. You will see what makes up a USER scoped state item vs. an APPLICATION scoped item.
I am still confused why it was working for you in version 0.2.2.

Thanks for you help, but I think I figured that out. The problem is that when I create the user record, I don’t have a real session and therefore also don’t have a user id
Instead I use the token for both token and user id and later when I see the user for the 1st time I rewrite the record, setting the correct user id:
public static Session fakeSession(final String sid, final String uid, final String token) {
return Session.builder()
.withSessionId(String.valueOf(sid != null ? sid : "amzn1.echo-api.session." + new Random().nextInt(99999)))
.withApplication(new Application(PROP.getAppProperty("app_id")))
.withUser(User.builder()
.withUserId(uid != null ? uid : "amzn1.ask.account." + String.valueOf(new Random().nextInt(99999)))
.withAccessToken(token != null ? token : String.valueOf(new Random().nextInt(99999)))
.build())
.build();
}
This works with 0.2.2. re-writes the record and also copies it into the session.
public static SkillUser get(final Session session) {
// try to find the user in the current session
final String token = session.getUser().getAccessToken();
try {
Optional op = new AlexaSessionStateHandler(session).readModel(SkillUser.class, token);
if (op != null && op.isPresent()) {
return op.get();
}
if (ENABLED) { // read from DB
final AmazonDynamoDBClient client = new AmazonDynamoDBClient(CREDENTIALS);
if (DEV_MODE) {
client.withEndpoint("http://localhost:8000");
}
// try to find the user in the dynamo db
final AlexaStateHandler handler = new AWSDynamoStateHandler(session, client);
op = handler.readModel(SkillUser.class, token);
if (op != null && op.isPresent()) { // copy the user into the session
final SkillUser su = op.get();
new AlexaSessionStateHandler(session).writeModel(op.get());
return SkillUserDB.get(session);
} else {
// could be the 1st access and we need to update to the correct uid
if (!token.equals(session.getUser().getUserId())) {
final SkillUser su = SkillUserDB.removeUser(fakeSession(null, token, token));
if (su != null) { // at creation time, we assigned uid=token
Log.info("New record created for " + token);
handler.writeModel(su);
Log.info("New record created for " + session.getUser().getAccessToken());
return SkillUserDB.get(session);
}
}
}
}
} catch (Exception e) {
Log.error(e.toString());
}
return null;
}
With 1.0.0 a lot of my unit tests fail I started to use the new exists method in 1.0.0 but that also make me wonder why this does not work:
final AmazonDynamoDBClient client = new AmazonDynamoDBClient(CREDENTIALS);
if (DEV_MODE) {
client.withEndpoint("http://localhost:8000");
}
final AlexaStateHandler handler = new AWSDynamoStateHandler(session, client);
boolean b = handler.exists(SkillUser.class, token, AlexaScope.USER);
System.out.println(b);
Optional op  = handler.readModel(SkillUser.class,token);
System.out.println(op.isPresent());
}
true
Could not find state for 'com.techcasita.ask.SkillUser:626981' in session attributes.
false

On Dec 21, 2016, at 2:37 PM, Kay Lerch<EMAIL_ADDRESS>wrote:
I reviewed your code and I figured out that you work with different userIds in your "fakeSessions". Handlers that save state in USER scope use the sessions userId to create a unique record per user (e.g. an item in dynamo, a file in S3). So writing state with a session having userId 123 results your get-method to return nothing when using another session having userId 234. I saw both in your code, one session with userId = uid and another with userId = token.
As you are using the accessToken as state object ids anyway, you could also save state in APPLICATION scope because your objects are indexed with an id unique per user. This is how it won't matter which userId is set in your session.
To better understand the consequences of id assignments it's always worth having a look into DynamoDB. You will see what makes up a USER scoped state item vs. an APPLICATION scoped item.
I am still confused why it was working for you in version 0.2.2.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/KayLerch/alexa-skills-kit-states-java/issues/3#issuecomment-268662100, or mute the thread https://github.com/notifications/unsubscribe-auth/AATphQD4te7TMlV3l3z7L-ZeawsUh5gVks5rKao2gaJpZM4LPkO-.

There was a bug in my code that should now be fixed. Please upgrade to v1.0.1


Validating filetypes

Adding validation to prevent non-csv file types from being able to be screened.
This is over and above the 'suggestion' made to browsers by fileInput(..., accept = ".csv") in the ui.R script which only tells a browser to expect a certain filetype, and doesn't prevent this from being overridden. As such, users can manually select all files in their file browser window and then upload and attempt to screen invalid file types, causing the app to crash without any feedback to the user as to why. These changes should stop this from happening.
This seems to wipe out our css formatting of the colour for upload bars, though that's not a breaking issue.

Have managed to fix the wiping out of the css on the upload bars. UI tests using shinytests weren't really doing much and were causing pain in the GHA workflow so I've dropped them entirely. Will consider RSelenium instead

The css change was impossible to spot unless you rendered the entire file. So I've ran it through a beautifier (https://www.cleancss.com/css-beautify/) so that when lines are edited we can track them better. For reference my change was to add !important into the argument I wanted to make override other ones .progress-bar(background-color)


GoogleGeocode - Exclude partial matches

The google api can try and be clever and return partial "fuzzy" matches.
In a project I am currently working on we didn't require these.  I was able to filter them out by checking the results.raw.results object.
I thought it may be useful to add 'excludePartialMatches' option to allow these to be filtered out.

Thanks for the pull request Version 3.1.0


dynamic import should be an unary operator

(this is the terse form of this issue, since somehow the nice extented form got lost)
dynamic import should not be syntactically defined as a special kind of CallExpression. This deviates from the pattern used for all other keyword based expression forms including yield, await, typeof, void, delete.
However, it can't be a UnaryExpression because that precedece would be error prone:
let fooP=import base+"/foo"; //as a UnaryExpression this would parse as: (import basePath)+"/foo"

Instead it should be defined as an alternative of AssignmentExpression, just like yield:
let fooP=import base+"/foo"; //as AssignmentExpression this would parse as: import (basePath+"/foo")

Hmm. This would be a pretty big change. The idea is that it behaves the same as super() (a call expression), and that in the future we might have a use for the second-onward argument. It's not an operator that is applied to a string and gives back a promise.

Another reason is to avoid confusion with the import statement. In the past discussions with @dherman @wycats and @benjamn have discussed the idea of creating an "expression form of the import statement" that would look similar to your proposed unary operator syntax, but would have the same semantics as import statements in that it contributes to the initial module graph, instead of causing a dynamic import. So e.g. you'd be able to refactor code from
import foo from "./foo.js";
import bar from "./bar.js";
let stuff = { a: foo, b: bar };

to
let stuff = {
  a: import "./foo.js",
  b: import "./bar.js";
};

This is all speculative and I might not be recalling the details, but the overall idea is that the function-call-ness is an import distinguisher to imply "dynamic", versus the paren-less "static" look that, even in expression form, should contribute to the import graph.

Actually, I think it is a small change that very few would notice at the user level. My concern is mostly about internal consistency of the language's expression grammar but  I'm also concerned about establishing the precedent that it is ok to define new built-in context sensitive operators that look like function calls.
You may argue that super() is context sensitive, but at least it is still fundamentally an invocation of an ECMAScript function.  import is different because it really isn't a form of function call.  It is something completely different.  How is import not anything but a context sensitive "operator that is applied to a string and gives back a promise"? It sure look like one to me and its evaluation semantics appears to do exactly that.
I think your strongest argument for the parenthesized form is the future proofing one.  But I think it is a weak argument. It's not at all clear what the use cases that supports a second argument might be or why, if they were strong, whyimport statement wouldn't also have to accommodate them. Regardless, they are likely to be corner cases that could be accommodate with an reflection-like API call or some future import.foo() variant.
Having both a parenthesized and unparenthesized form of import seems like a very bad idea. In JS (and most languages) redundant params can be free used in expressions and programmer do this every day. Even if both forms could be made grammatically unambiguous it would come at the cost of imposing seeming arbitrary rules on the use of parentheses. Such rules create internal uncertainty for some programmers and generally make the language less pleasant to use.
Also, an expression form of static import would create conceptual confusion similar to what we had when implementations provided non-standard function declarations in blocks that hoisted to function level:
 if (flag) {
   import "foo.js";  //this in an ExpressionStatement, not a ImportDeclaration
                     //and since it is static, it really isn't guarded by flag
}

If defining dynamic import as a prefix operator precludes such future foolishness, that would be a good thing.

I think your strongest argument for the parenthesized form is the future proofing one. But I think it is a weak argument. It's not at all clear what the use cases that supports a second argument might be or why, if they were strong, whyimport statement wouldn't also have to accommodate them.

They're actually pretty important, and we're indeed mulling over how to get the import statement to support them too. In brief: fetches in host environments can take lots of parameters, e.g. nonces or checksums or credentials modes, and we'd like a way to pass them along:
// very speculative
import foo from "./foo.js" with { credentials: "include", nonce: "deadbeef" };

// more straightforward
import("./foo.js", { credentials: "include", nonce: "deadbeef" });

Sorry if I'm missing something obvious here, but without a parenthesized form, how can you distinguish between static vs. dynamic imports?
If I'm understanding your suggestion @allenwb:
let fooP=import base+"/foo";

Means that this is also possible:
import "/foo";

But this is the same form used for static imports. So how do you know what the user intends?  Unless you are saying that it must be assigned to something, in which case it wouldn't be like yield in that respect.

If they are static, you could just define syntax for including them in  the ModuleSpecifier. Totally strawman example:
import foo from "{credentials: include, nonce: deadbeef } ./foo.js";

But, that's really not very friendly for writing modules that will work across different hosting platforms.  This is probably a perfect example of the old adage that you really don't want to merge logical module identification and configuration management.  One possibly better way is provide a "config map" that an be defined at the HTML level.  For example:
<script type=modulemap src="./foo.js">
logicalname: 'foo',
credentials: "include",
nonce: "deadbeef"
</script>
<script type=module>
  import "foo";  //logical name, gets mapped by host platform module map
  // ...
</script>

That approach could also probably better deal with dynamic valued parameters.
Getting back to dynamic imports, the extended ModuleSpecifier string would also work fine with the prefix operator interpretation of import.  But there is another completely open ended way to extend a prefix opertor:
let FooP = import HTMLModuleSpecifier("./foo.js", { credentials: "include", nonce: "deadbeef" });

Here HTMLModuleSpecifier is a built-in function that creates a uniquely branded kind of built-in object.  Since import is being used as an operator, it's specification can be extended (at the ES, host, or implementation level) to recognize and process such objects.

Yes, I didn't really want to get into the design of that feature here.
Did you have an answer to @matthewp's point?

@matthewp
Excellent point. It's the same ambiguity that JS currently has with function, async, class at the beginnng of ExpressionStatement.
Same solution could be applied. Look-ahead restriction prevents Expression statement from starting with import.  My sense is that might not be such a big deal.  Don't you usually need to capture the resulting promise?

Yes, I didn't really want to get into the design of that feature here.

Of course, the real question is whether a prefix operator is sufficiently future proof and these are simply strawmen exploring that issue.

You don't need to capture the resulting promise if you're importing something dynamically, for its side effects - like a shim/polyfill.

Even if you're not importing for side effects, it's still normal not to capture the resulting promise if you don't need to pass it around (like any other promise usage). Look at the main example in the readme: https://github.com/tc39/proposal-dynamic-import#example
If this proposal were AssignmentExpression-like you'd have to do either:
let importPromise = import `./section-modules/${link.dataset.entryModule}.js`
importPromise.then(module => { ... })

Or
let importPromise = (import `./section-modules/${link.dataset.entryModule}.js`).then(module => { ... })

Neither of which feel as ergonomic, to me at least.
I can definitely see bugs happening because a developer forgot an assignment (because they didn't need to use the resulting promise) and getting a static import they did not intend.

I can definitely see bugs happening because a developer forgot an assignment (because they didn't need to use the resulting promise) and getting a static import they did not intend.

Well, the only situation where this could occur without a syntax error would be at the top level of a module (not including nested blocks) and the expression to the right of import was a top-level leaf single or double quoted string.  In that case a static import should be equivalent and probably what should be used. I don't see silent bugs emerging from that.
Note because ImportDeclaration is only allowed in a ModuleItemList there really is no ambiguity with situations like:
//a module body
if (flag) {
   import "./foo.js"  //this could unambiguously be an import expression
}

or even
//a script body
import "./foo.js" ; //this could unambiguously be an import expression

If would take some relatively minor engineering of the grammar to make those legal, leaving only a Module's ModuleItemList as the place where ExpressionStatements couldn't start with the import keyword.
It isn't clear to me how you can ignore the Promise if you actually are doing a dynamic import of a shim/polyfill. You want want to just blindly race forward assuming it will get loaded before you or somebody you call does something that depends upon side-effects of the dynamic load.

We certainly should consider is the readability and reliability of:
(import `./section-modules/${link.dataset.entryModule}.js`).then(module => { ... })

vs
import(`./section-modules/${link.dataset.entryModule}.js`).then(module => { ... })

or
import(computeModuleName(...args)).then(module => { ... })

vs
(import computeModuleName(...args)).then(module => { ... })

I'm not sure if I see very much difference from a readability perspective.

having to wrap the unary operator form in parens seems significantly less readable to me.

@allenwb, as @ljharb mentioned, the promise might not be needed. e.g.: a very common use-case is to defer some initialization routines for non-critical parts of your app. e.g.: deferring section-two of the app:
import "section-one";
import("section-two");

In the example above, there is a subtle distinction that might be sufficient for devs to understand what's going on, but if we drop the parents, then this feature can't really be implemented since it will clearly conflict with the existing import statement, e.g.:
import "section-one";
import "section-two";

In the example above, there is a subtle distinction that might be sufficient for devs to understand what's going on, but if we drop the parents, then this feature can't really be implemented since it will clearly conflict with the existing import statement, e.g.:

import "section-one";
import "section-two";

```js
import "section-one";
(import "section-two");

Just like an IFFE.

as @ljharb mentioned, the promise might not be needed. e.g.: a very common use-case is to defer some initialization routines for non-critical parts of your app. e.g.: deferring section-two of the app:

Still not clear to me why it's ok to assume that section-two will have finished loading by the time you need it.

@allenwb you might not ever need to know for sure that it's loaded - it might be code that, say, progressively enhances, whenever it maybe ends up loading, all PNG images into SVGs; or detects the user's bandwidth and silently upgrades all videos on the page (or sets some global variable that video code respects) from low quality to a higher quality format.
Not saying this would be the best way to achieve these goals, or that it's particularly good coding, but these sorts of contrived and valid use cases where you don't actually care if or when your code loads are legion.

@ljhard yup, and there are valid use cases for goto
But we should not be using rare and error prone use cases (ignoring races almost always bites you)  as a driver for selecting syntactic design details.

So my conclusion on this issue is that there are valid arguments on both sides, and we should present it to the committee for their opinions. I intend to keep the current spec draft for now.
Let me try to summarize the arguments for function-like and Allen can write a separate post summarizing his for a unary operator, for easier later presentation to the committee.
Arguments for function-like import():

Allows future extensibility by using further parameters
Increases syntactic distinction from the import statement

Unary operator would require lookahead restrictions like function, async, and class to distinguish expression statement from import statement
function-like version is safe to "fire and forget" by default; unary operator requires paren-wrapping
Making import "x" at top level in scripts mean something very different from import "x" at top level in modules is strange.

Parens are almost always required anyway

Needed to distinguish from the import statement at top level
Needed if you're going to .then or .catch the promise
(Not needed by await, however)

The unary operator version squats on future possibilities

It gives meaning to await import "x" which may conflict with future binding form proposals (where await import "x" also comes packaged with await import x, { y } from "x")
It gives meaning to import "x" when there has been talk of using that as a statically-analyzable hoisted import for convenience (see https://github.com/tc39/proposal-dynamic-import/issues/23#issuecomment-260444478)

Isn't the keyword proposal somewhat hostile to polyfilling the import(...) API?
One of the things that most excites me about the dynamic import(...) proposal is that it improves upon and fully replaces System.import. The keyword proposal would introduce a significant disadvantage w.r.t. System.import: having to transpile the import keyword to something that can be implemented by an ~ES5 runtime library.

I don't see how this discussion has any impact for polyfills or transpilers. Both proposals use syntax that is invalid in the current language, so a transpiler is necessary.

Thanks for pointing that out. I hereby cede the transpiler complexity argument.
Instead, I'd like to make an argument in favor of a possible expansion of the keyword proposal.
In the July TC39 meeting, there was some talk of broadening the dynamic import(...) proposal to support import specifiers, so that we could retain the benefits of static analyzability.
Here's what it might look like to allow specifiers as well:
(import { a, b as c } from "./module").then(m => {
  // Only m.a and m.c are exposed, because that's all we asked for.
});

// Alternatively (note: I'm not sure if these parentheses would be necessary):
const m = await (import { a, b as c } from "./module");

In both cases, our static analysis doesn't have to worry that some other hard-to-analyze code might expect m.foo, because we know statically that we didn't ask for anything but { a, b as c }. This enables optimizations like tree-shaking, or pruning the parts of ./module that are statically known to be unnecessary to other modules.
Note that this form also supports live binding, assuming m.a and m.c get updated whenever the a and b exports of ./module change.

@benjamn does your proposal allow arbitrary strings, not just string literals?
I don't intend to champion such a complex proposal myself, with the live bindings and tree shaking and so on.

Optimizations like tree shaking don't need to be a part of the proposal; it's just good if they are enabled by the proposal. Live bindings are already enabled by your proposal, as long as properties of the namespace object stay up to date.
Regarding arbitrary source identifiers, I don't believe the addition of specifier syntax introduces any new considerations. With or without specifiers, we still have to answer the question of how the parser distinguishes between import expressions and import declarations.
We could say that import expressions are distinguished from import declarations because they appear in a syntactic position where an expression is required.
So
(import { a, b as c } from dynamicId).then(...)

is legal, because the parentheses require an expression, and dynamic source identifiers are legal for import expressions.
But is this legal?
import { a, b as c } from dynamicId;

By one interpretation, this is just an expression statement with a Promise-producing import expression, so it should be legal. But this expression statement looks a lot like an import declaration with a dynamic source identifier, which could be extremely confusing because it's suddenly asynchronous and probably wouldn't be hoisted like import declarations.

Maybe such discussions would be better had on your proposal's repo. I think they are off-topic for this thread, which is considering just a small tweak to the existing proposal.

This is not part of any proposal that I'm currently championing. I'm only trying to assess whether @allenwb's keyword proposal could generalize to more use cases, because that becomes an argument in favor of his proposal that is absolutely relevant to this thread.

I don't really agree. It's an argument in favor of abandoning this proposal in favor of a new one; as I said I don't have any intention to expand this proposal in those ways. But as I said, I think building up an alternate proposal is better done in a separate repo.

@domenic I agree that this is something TC39 should more broadly consider. I'll write up a summary for the operator formulation.

Adding binding forms to dynamic import seems problematic for several reasons.

The script/module containing the dynamic import  couldn't reference them outside of nested functions. That's because the actual load/import processing doesn't take place until after the importer has run to completion. Whether the invocation of a nested function can successfully use such a nested binding depends on whether it is called before or after the dynamic load completes.

It doesn't work with the current semantics of importing bindings.  Imports aren't copies of imported values (if they were we could say they were in a TDZ until the load completes).  Instead imported bindings are transparent aliases for accessing a binding in the original exporting bindings. The design intent for this is that an implementation can compile a reference to an imported name as a direct access to the the originally exported binding (ie,  turns into a direct reference to the same variable slot that is referenced within the exporting module).  With static imports the bindings can all be "linked" prior to evaluating module bodies. But with dynamic import we can't do that linking because we don't, prior to completing the dynamic import, have a defining exported binding for the import to alias.

Making this work is going to require new specification and implementation mechanisms.   We currently have a nice clean why to export/import bindings via static imports. We also have a nice clean proposal for how to do value (ie, property access based) imports via dynamic imports. I think trying to embellish dynamic imports with binding semantics is just a significant and unnecessary complication.

Glad to hear that TC39 will be discussing this and I agree that there are good arguments on both sides here. Since I'm not on TC39 I'd like to give my final opinion here just in case it's at all valuable.
import "./foo.js";
(import "./foo.js");

This was compared to an IIFE earlier in the comments, but in the case of an IIFE it is a SyntaxError without the parens that makes it an expression.  In this case without the parens it is a static import statement. That it would do something completely different without the parens is what I'm struggling with.
Are there any other examples in the language where code inside of an expression is treated as differently as this is?
My biggest issue with the unary proposal is that it breaks my (perhaps naive) understanding of what an expression is in JavaScript. I would never expect to get different behavior by adding parens when not inside another expression. Parens are for grouping (sub)expressions and aren't strictly required when not needed for grouping purposes. Or so I thought, maybe I've been wrong all along.
Will be quite interested to hear how this turns out!

@matthewp

I would never expect to get different behavior by adding parens when not inside another expression.

function foo() {}
(function foo() {})

There's also ({ a: 1 }) vs { a: 1 } - but that doesn't mean it's not surprising and weird, it just means it's not a new behavior :-)

Summary of arguments in factor of treating dynamic import keyword as an operator:

Using a call-like syntax for dynamic import deviates from the  pattern used for other keyword based expression forms including yield, await, typeof, void, delete.

We should not establish the precedent of context sensitive expression operations masquerading as function calls.
Conceptually JS devs should not think about import as a "function call" with hidden contextual arguments. It really is just an operator applied to a string producing a promise to a significant effect.
The super constructor call super() isn't a good precedent for this deviation, as that form actually performs a function call while dynamic import does not.

Operator form just as future-proof as call from.

Generally, implementation specific modifiers of import specifiers should be encoded in the specifier string.
Operator form can be future extended (or even initially specified) to accept an object value as its operand. Properties of the object could provide host/implementation specific extensions:

 (import {specifier: foo, credentials: "include", nonce: "deadbeef" }).then(...);
//instead of
import(foo,  "include",  "deadbeef").then(...);
//or
import(foo,  {credentials: "include", nonce: "deadbeef" }).then(...);

The call formulation would be more problematic from an interoperability perspective as the dynamic import proposal explicitly limits an ImportCall to having only one argument expression.  Host extensions that added additional argument positions would produce syntax errors when parsed by different hosts.

We should not contemplate a future where we have both import "foo" and import("foo") as distinct subexpression forms with different semantics. That would be too error prone and confusing.
Parenthesizing to avoid  initial import keyword restriction on ExpressionStatement should not be a significant burden because then-ing the import promise requires parenthesizing.

Conceptually JS devs should not think about import as a "function call" with hidden contextual arguments. It really is just an operator applied to a string producing a promise to a significant effect.

why? what's harmful about thinking of it as an async function that takes a string and returns a promise?

@ljharb
Because it takes other information (metadata about the referring module/script) that cannot be accessed or passed to a regular function.
It's not first class. It's a special form that doesn't  manifest itself as a function object.
There is no way to self-host such a function that takes such  hidden arguments.
The ImportCall from is most similar to direct eval (in a backwards sort of way). eval() appears to be a function, eval even has a function object value.  But direct eval is actually a special form that does things contextually that the eval function object (or any other ES function) can't do.
We should avoid new warts like that. It's a teachability/learnability issue here.

Doesn't super() take that same metadata (ie, a reference to the [[HomeObject]]) and use it to obtain the function that it then calls?

It's a special form that uses metadata to find the function, but it still ultimately calls a user written function after performing the [[Construct]] semantics.  SuperCall is like a normal function call in that it use Arguments  syntax and semantics.  Note in particular, that means the spread operator works in the arguments list of a SuperCall but does not work with ImportCall as defined in the proposal.
So let's flip this question around: why isn't yield a good exemplar for the the dynamic import operator?  It is applied to a single subexpression, just like import.  It uses contextual metadata, just list import. It performs a unique operation that can be expressed as an ES function, just like import.  In fact, I believe TC39 had a very similar discussion regarding parens when yield was being introduced into ES6.

TC39 conclusion: keep it as a function-like form. One argument that people found particularly compelling was that, in the unary operator version, the following code acts strangely:
import("foo").then(...);

String.prototype.then = function () {
  // this gets called!!
};

People were also amused by the behavior of the following in the unary operator case:
import { toString };

function toString() {
  return "foo";
}

We also discussed whether to revisit #15 and use ArgumentList instead of a syntactic restriction to a single argument. The conclusion was to keep it restricted to a single argument for now, and revisit in the future if people get confused by not being able to do import(...['foo']) and similar.

Sorry for posting on a closed issue, but as relatively novice user, I find the function-like-form to be extremely off putting. This is JavaScript, we are talking about and functions are ubiquitous. Making import('foo') a special syntactic token (perhaps I am misunderstanding something here), that returns a Promise is completely counter-intuitive because I, and I suspect many others, will instinctively want to abstract over it and then be frustrated that it doesn't work.
E.g, say I have this kind of fairly common-in-the-wild code
// dynamically kick off imports (mentioned as a motivating scenario in this discussion)
Promise.all([
    import('α'),
    import('β'),
    import('γ'),
    import('δ'),
    import('ε'),
    import('ζ'),
    import('η'),
    import('θ')
  ])
  .then(console.info.bind(console)
  .catch(console.error.bind(console);

At some point later I revisit this code, perhaps to add another import(
I think to myself this is verbose and redundant, (or maybe I want to get the list of modules from an XHR response).
So I refactor this to
Promise.all(['α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ'].map(import))
  .then(console.info.bind(console)
  .catch(console.error.bind(console);

I get errors, learn about it what I am doing wrong and fix it, but it feels completely arbitrary, especially when the following works
const {import} = System;
Promise.all(
    ['α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ'].map(import)
  )
  .then(console.info.bind(console)
  .catch(console.error.bind(console);

You'll get syntax errors if you try to use dynamic import as a map function. I agree that this isn't ideal but a unary form wouldn't be any better in that regard. And it's not unprecedented; you can't pass super in a class constructor as a function.
System.import isn't in any current proposals and doesn't fulfill the goals of this proposal as it is not contextual.

@aluanhaddad actually the same example applies to unary operator form
import 'a' can be used as import('a') (similarly with typeof 'a' and typeof('a'))
Promise.all([
    import('α'),
    import('β'), ...
  ])

will work with unary operator and will be a syntax error if you try to use import as a call parameter

@forceuser Indeed but I don't think it is quite the same as the redundant parenthesization of operators in expressions. We can add superfluous parentheses to most expressions but in practice it is rare. I find the call syntax counter-intuitive because import('x') looks like a function invocation.
@matthewp That is definitely a strong argument from precedence.
With respect to System.import it was just what came to mind when I saw the syntax.
A lot of other languages have these sorts of function-invocation-like tokens, (C++, PHP, etc.) and they work just fine.

@aluanhaddad What is even weirder, the following works again:
Promise.all(['α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ'].map(name => import(name)))
  .then(console.info, console.error);


Fetching paths from cache.nixos.org gets stuck in certain Docker environments

Describe the bug
When fetching paths from cache.nixos.org, the operation gets stuck depending on the environment. This is a follow-up to my comment in #160289. Given enough time, the operation seems to make progress. For a simple operation of installing a single package from nixpkgs, this takes ~3 minutes. For something slightly more complex (our production app), the operation hasn't yet completed and has been running for 2 hours. For comparison, it used to take ~10 minutes on nixos/nix:2.22.3.
This behaviour was introduced in nixos/nix:2.23.0-arm64. It was last working in nixos/nix:2.22.3-arm64. I've tested every new tag published since (until 2.24.1-arm64) and observed the same behaviour.
What's been difficult about narrowing this bug down has been that it is consistent in its reproduction, but behaves very differently depending on invocation. Using the same Dockerfile on my darwin vs. linux produces different results. On darwin, I don't face this issue. I assume this is because the of docker-desktop virtualization/differences. Secondly, invoking the offending command via docker run works fine!
I will describe below.
Steps To Reproduce
On linux, create Dockerfile and fill contents:
FROM nixos/nix:2.23.0-arm64
RUN nix-env --file https://github.com/NixOS/nixpkgs/archive/47b604b07d1e8146d5398b42d3306fdebd343986.tar.gz --install --attr sops

docker build .
Observe getting stuck at: copying path '/nix/store/y359d58sp2j91i86aclsg16p8h414n16-sops-3.8.1' from 'https://cache.nixos.org'...
Wait for a few minutes, and eventually the process will continue. On an arm64 c7g.2xlarge, this operation takes 227 seconds.
Expected behavior
Change base image in your Dockerfile to nixos/nix:2.22.3-arm64
docker build .
You will not get stuck copying path [...]... step.
Process will complete in a much more reasonable 33 seconds on the same arm64 c7g.2xlarge machine.
Additional context
It seems this only happens in the docker builder. When running these same two commands, you will not see any difference in behaviour. Both operations complete in a reasonable 30s.
time docker run --rm nixos/nix:2.22.3 nix-env --file https://github.com/NixOS/nixpkgs/archive/47b604b07d1e8146d5398b42d3306fdebd343986.tar.gz --install --attr sops
time docker run --rm nixos/nix:2.23.0 nix-env --file https://github.com/NixOS/nixpkgs/archive/47b604b07d1e8146d5398b42d3306fdebd343986.tar.gz --install --attr sops

These commands respectively return:
# nixos/nix:2.22.3
real	0m37.988s

# nixos/nix:2.23.0
real	0m41.800s

Notify maintainers

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ docker run --rm nixos/nix:2.22.3 nix-shell -p nix-info --run "nix-info -m"
 - system: `"aarch64-linux"`
 - host os: `Linux 6.1.90-99.173.amzn2023.aarch64`
 - multi-user?: `yes`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.22.3`
 - channels(root): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixpkgs`

[user@system:~]$ docker run --rm nixos/nix:2.23.0 nix-shell -p nix-info --run "nix-info -m"
 - system: `"aarch64-linux"`
 - host os: `Linux 6.1.90-99.173.amzn2023.aarch64`
 - multi-user?: `yes`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.23.0`
 - channels(root): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixpkgs`

[user@system:~]$ docker -v
Docker version 25.0.3, build 4debf41

Add a :+1: reaction to issues you find important.

The nix repo is in github.com/nixos/nix, and
nix-env is atrociously slow and generally discouraged, you might consider using the alternatives mentioned at https://stop-using-nix-env.privatevoid.net/

Thanks for the redirect help @eclairevoyant – I've filed the bug over there instead. Will close this one.


[Bug] Last character leaves a trail when scrolling the list with .Xresource based terminal

Checklist

[X] I have read through the manual page (man fzf)
[X] I have searched through the existing issues
[X] For bug reports, I have checked if the bug is reproducible in the latest version of fzf

Output of fzf --version
0.57.0
OS

[X] Linux
[ ] macOS
[ ] Windows
[ ] Etc.

Shell

[X] bash
[X] zsh
[X] fish

Problem / Steps to reproduce
This bug is reproducible with st, xterm, rxvt-unicode,
But not with kitty, alacritty.
Did test with default .Xresource setting.
Tested on Void Linux 6.12.6_3.

I did further research and realized the encoding of that dummy.txt on gif demo was UTF-8,
And bug couldn't reproduce with ASCII.

hny.txt
Seems the trail leaving the mark all over previous lines passed.

Issue solved by https://github.com/junegunn/fzf/issues/1526#issuecomment-835506019
Thanks for the info @y0ast


[BUG] monitoring not loading - invalid checksum; corrupted block

Describe the bug
Monitoring is failing to load
cattle-monitoring-system    pod/prometheus-rancher-monitoring-prometheus-0                    2/3     CrashLoopBackOff   23         164m

level=info ts=2021-10-14T17:54:36.523Z caller=main.go:885 msg="Notifier manager stopped"
level=error ts=2021-10-14T17:54:36.523Z caller=main.go:894 err="opening storage failed: reloadBlocks: 11 errors: corrupted block 01FHT8MEQD7EXZJJ7EPAB8QHNR: read TOC: read TOC: invalid checksum; corrupted block 01FHJBBN8XCNBTMTNZ27BRMAN6: read TOC: read TOC: invalid checksum; corrupted block 01FHM951Q5YT5N5Z1JH6B773FD: read TOC: read TOC: invalid checksum; corrupted block 01FHNJBBF89HFHWNDQ87X8D0BG: read TOC: read TOC: invalid checksum; corrupted block 01FHP6YNC0DPMXFX6W724MJXAG: read TOC: read TOC: invalid checksum; corrupted block 01FHR4R3AQCYCAP3KBB0GERME6: read TOC: read TOC: invalid checksum; corrupted block 01FHFRYVFPZBRTJ7TFKEYTBDP4: invalid magic number 0; corrupted block 01FHGDHZ0HJ7E17AP599G9AQS2: read TOC: read TOC: invalid checksum; corrupted block 01FHHPR9X5XMG62J7GQH0DS7YV: read TOC: read TOC: invalid checksum; corrupted block 01FHKMHYYYZMCA0WP5R9JP50KJ: read TOC: read TOC: invalid checksum; corrupted block 01FHQG51CZBT5HEYJYQGKCGPRN: read TOC: read TOC: invalid checksum"

Expected behavior
UI Metrics would be visible
Support bundle
https://drive.google.com/file/d/1-Fve-S_djva16UuiFKFpOgBLVQf015dH/view?usp=sharing
Environment:

Harvester ISO version:  0.3
Underlying Infrastructure : Dell R620

Additional context
Add any other context about the problem here.

The data is corrupted somehow. Any possibly related operation before it is broken?
You would need to remove /prometheus/01FHT8MEQD7EXZJJ7EPAB8QHNR in the prometheus pod.

This was resolved indeed by corruption and fixed when the metrics data was cleared. A few comments:

We need to explain/document a node shutdown procedure, including full-cluster procedure. I think it's setting the node in maintenance and then cordon?
This would have been easy to fix if we had an embedded rancher URL, perhaps in the support section to easily ssh into the prometheus container and delete the data. Otherwise, via the CLI, it was hell.


[#187831096] Improve the authentication debugging

Ticket: #187831096
Included:

The new environment variable DNASTACK_AUTH_LOG_LEVEL to set the log level for authenticators or security-related log messages

See the draft documentation for more information.

Added more detailed debugging message around the authentication process.

NOTE: Overwrite the branch protection as this PR has gone through peer review with @jfuerth.


[Build] Unable to install the package from Github

Description:
I'm getting the following after trying to install the package from GH:

Click here to see debug info

Collecting git+https://github.com/arvados/bh20-seq-resource.git
  Cloning https://github.com/arvados/bh20-seq-resource.git to /tmp/pip-req-build-sx_tz19n
  Running command git clone -q https://github.com/arvados/bh20-seq-resource.git /tmp/pip-req-build-sx_tz19n
Collecting arvados-python-client
  Using cached arvados-python-client-2.0.2.tar.gz (182 kB)
Collecting schema-salad
  Using cached schema_salad-5.0.20200416112825-py3-none-any.whl (457 kB)
Collecting python-magic
  Using cached python_magic-0.4.15-py2.py3-none-any.whl (5.5 kB)
Collecting pyshex
  Using cached PyShEx-0.7.14-py3-none-any.whl (50 kB)
Collecting ciso8601>=2.0.0
  Using cached ciso8601-2.1.3.tar.gz (15 kB)
Collecting future
  Using cached future-0.18.2.tar.gz (829 kB)
Collecting google-api-python-client<1.7,>=1.6.2
  Using cached google_api_python_client-1.6.7-py2.py3-none-any.whl (56 kB)
Collecting httplib2>=0.9.2
  Using cached httplib2-0.17.3-py3-none-any.whl (95 kB)
Processing /home/bonface/.cache/pip/wheels/40/ae/bd/3e7d7af6588020c7e993f6f114fb708d966276dbc2f224d3f9/pycurl-<IP_ADDRESS>-cp38-cp38-linux_x86_64.whl
Collecting ruamel.yaml<=0.15.77,>=0.15.54
  Using cached ruamel.yaml-0.15.77.tar.gz (312 kB)
    ERROR: Command errored out with exit status 1:
     command: /home/bonface/projects/bh20-seq-resource/venv/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-h7g8lchz/ruamel.yaml/setup.py'"'"'; __file__='"'"'/tmp/pip-install-h7g8lchz/ruamel.yaml/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-h7g8lchz/ruamel.yaml/pip-egg-info
         cwd: /tmp/pip-install-h7g8lchz/ruamel.yaml/
    Complete output (11 lines):
    Traceback (most recent call last):
      File "", line 1, in
      File "/tmp/pip-install-h7g8lchz/ruamel.yaml/setup.py", line 211, in
        pkg_data = _package_data(__file__.replace('setup.py', '__init__.py'))
      File "/tmp/pip-install-h7g8lchz/ruamel.yaml/setup.py", line 184, in _package_data
        data = literal_eval("".join(lines))
      File "/tmp/pip-install-h7g8lchz/ruamel.yaml/setup.py", line 156, in literal_eval
        return _convert(node_or_string)
      File "/tmp/pip-install-h7g8lchz/ruamel.yaml/setup.py", line 95, in _convert
        if isinstance(node, Str):
    NameError: name 'Str' is not defined
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

To Reproduce:
Steps to reproduce:
virtualenv --python python3 venv
. venv/bin/activate
pip install git+https://github.com/arvados/bh20-seq-resource.git

Expected Behaviour:
Should be able to install the package without any problems
Environment setup:

OS: Arch Linux
Python Version: python3.8.2

I've found the problem. The dependency Python-ruamel fails to build with Python 3.8 as discussed here. I'm logging this because people who are running rolling releases distros will definitely run into this. The fix is to simply use Python 3.7 or lower in your virtual environment. I bet there's a way to specify the version of python to use in setup.py.

I use the GNU Guix deployment described in doc/INSTALL.md


[QUESTION] What is the point of having chunkSize for ToCollection?

Prerequisites

[X] Have read and understood: https://github.com/Maatwebsite/Laravel-Excel/blob/3.1/.github/SUPPORT.md
[X] Checked if your Laravel Excel version is still supported: https://docs.laravel-excel.com/3.1/getting-started/support.html#supported-versions
[X] Checked that your question isn't already asked before.
[X] Filled in the entire issue template

Versions

PHP version: 7.2
Laravel version: 6 (LTS)
Package version: 3.1

Description
Hello guys,
I'm currently having a hard time understanding why is useful to use chunkSize when making a import to a collection. The point of the chunk, as I understand, is to not have to deal with the whole file at once on main memory, but if you're chunking to a collection in the end you're going to have the whole file on primary memory anyway, even if you do it by parts.
For example, if you have a .xlsx file that you want to open, make some kind of processing with collections and save it again as a .csv, making it by chunks wouldn't really make any difference because in the end you would need to save the file as whole anyway. In that case, what would be the best way (performance wise) to achieve the task?
I don't know if I'm understanding something fundamentally wrong, so any clarification would be well appreciated :))
Cheers!

Hey @cegafe3, if you use chunkSize with collection it won't load the entire file into memory. It will call the collection() method multiple times each time with another batch of rows.
You could perhaps store it in chunks in a temporary database (myql, redis, ...) and then insert it back into a file in chunks.


Add ability for checks to run in an ephemeral process at every run

What does this PR do?
Support https://github.com/DataDog/integrations-core/pull/12975 for all checks
Motivation
Always have a workaround for memory leaks that are out of our control
Additional Notes
Config spec update will be a separate PR

If this gets allowed to be in the next RC, yes

Unfrozen


add commands in serviceprovider see comment

Hi, didn't wanna create a pull request otherwise I have to fork your repository and dont want that.
You can register your commands by doing like is done in my package. Use it as an example:
https://github.com/filipveschool/packagegenerator/blob/master/src/PackagerServiceProvider.php
I hope this is clear and can help you. It is not a very good package if people have to register the commands by themself is it :) ;).

Thanks for your advice. I will follow


Assignment 1 delivery!

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
A: Answered assignment questions!
What did you learn from the changes you have made?
A: A lot of using specific libraries for fitting models with simple and multiple linear regressions.
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
A: No.
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
A: a lot of challenges.
How were these changes tested?
A: Code execution and results on screen.
A reference to a related issue in your repository (if applicable)
A: n/a
Checklist

[X] I can confirm that my changes are working as intended

Hi Amanda
I am not sure if I understand your revision.
This is what I have there:
[image: image.png]
On Tue, Jun 4, 2024 at 9:03 PM amanda-ng518 @.***>
wrote:

@.**** requested changes on this pull request.
A1: Q2 missing hypotheses statements
—
Reply to this email directly, view it on GitHub
https://github.com/efantinatti/applying_statistical_concepts/pull/1#pullrequestreview-2097605243,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABLMDBVRXWMML6IHN45FKRLZFZIVZAVCNFSM6AAAAABITPCZY6VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDAOJXGYYDKMRUGM
.
You are receiving this because you authored the thread.Message ID:
@.***
.com>


Update .openpublishing.publish.config.json

Docs Build status updates of commit 6f24eb4:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.publish.config.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


WIP check main state

Signed-off-by: Or Shoval<EMAIL_ADDRESS>

@AlonaKaplan
all git actions here and the prow e2e work
only thing that doesnt work yet is the pull of the image (the image is created but pull doesnt have permissions yet)


Adjust cancel-workflow-on-failure defaults (OSOE-571)

Adjust the default value of the cancel-workflow-on-failure workflow parameter based on the usual usage.
We can set it to false for publish-nuget, for example, which is a reusable workflow that will usually be used alone, not as one job among many in a larger workflow (where the workflow cancellation matters). For such workflows, it could even be the default, as well as for create-jira-issues-for-community-activities and validate-submodule-pull-request and validate-pull-request. Check all the existing workflows though.
https://github.com/Lombiq/Open-source-template should also be updated.
Jira issue

It does cancel other workflows' jobs too, isn't it? In that case it's just a matter of updating the name and maybe adding a description.

What name would make it clearer for you?

Tbh, looking at this again, I see now that the actions I've referred to will most often be used as part of a larger workflow. Somehow, I missed that.
So I guess, the improvement we could make is setting cancel-workflow-on-failure to false in workflows that contain only a single action. That would help with the status badge on the actions overview page.

I don't quite understand.

We can set it to false for publish-nuget, for example, yes, which is a reusable workflow that will usually be used alone, not as one job among many in a larger workflow (where the workflow cancellation matters). For such workflows, it could even be the default, as well as for create-jira-issues-for-community-activities and validate-submodule-pull-request and validate-pull-request.

Do you still deem this important enough to tackle? If yes, we should adjust the title here and in JIRA.

Once done, the "Saving on computing resources" docs section will need to be adjusted too.


rustls-tls-native-roots does not work well on 0.12

Thanks for your great work first.
We lately upgraded from 0.11 to 0.12 and got this issue, it only happened on one user's machine (amd64 Ubuntu 22.04) which I can not access.
It failed with Error: reqwest::Error { kind: Builder, source: Os { code: 13, kind: PermissionDenied, message: "Permission denied" } } . It was ok to run with sudo. 0.11 does not have this issue. native-tls of 0.12 does not have this issue either.
❯ ./test_lic
[2024-08-18T13:35:37Z INFO hbbs::lic] Checking license ...
Error: reqwest::Error { kind: Builder, source: Os { code: 13, kind: PermissionDenied, message: "Permission denied" } }

❯ sudo ./test_lic
[2024-08-18T13:34:46Z INFO hbbs::lic] Checking license ...
Error: server error: 400 Bad Request: Ok("{"error":"Invalid payload, license, machine or nonce is empty."}")

https://github.com/rustdesk/rustdesk-server-pro/issues/360#issuecomment-2295266214
Our settings is.
 reqwest = { version = "0.12", features = ["blocking", "json", "rustls-tls", "rustls-tls-native-roots", "socks"], default-features=false }

I think this new commit may help.
https://github.com/rustls/rustls-native-certs/commit/1a6052beb10ecf583e385cc28d6f9db6efa19646

https://github.com/rustls/rustls-native-certs/issues/124

Fixed in https://github.com/rustls/rustls-native-certs/releases/tag/v%2F0.7.3


[TensorFlow] update to 2.3

I think you can close this as I upgraded tensorflow to 2.3 in #13028.

ok thx


UserTokenCredentials does not do a proper lifetime management of executors.

Look at method acquireAccessToken, on line 136 it creates a newSingleThreadExecutor and never shuts it down.
Over time, this can lead to resource leak.
https://github.com/Azure/azure-sdk-for-java/blob/603802dd9aad440a101437fb98eb82bb625e1b84/runtimes/azure-client-authentication/src/main/java/com/microsoft/azure/credentials/UserTokenCredentials.java

Good catch! We've fixed in beta3: https://github.com/Azure/autorest-clientruntime-for-java/blob/v1.0.0-beta3/azure-client-authentication/src/main/java/com/microsoft/azure/credentials/UserTokenCredentials.java.
Thanks.