Importing config for use in JS

I'm using Storybook to build a design system and having trouble importing my config file into JS to use as design tokens.
This is what my color.stories.js looks like:
import { storiesOf } from '@storybook/html'

// Utilities
import { tw } from '@utilities'

// Init stories
const stories = storiesOf('Tokens', module)

// Color
stories.add('Color', () => {
	let output = '';

	// Do something with Tailwind colors here

	return output;
})

My utilities JS file is as follows:
import resolveConfig from 'tailwindcss/resolveConfig'
import tailwindConfig from '../tailwind/tailwind.config.js'

export let tw = resolveConfig(tailwindConfig).theme

Sometimes everything compiles fine, but I'm getting the default TW config. Other times I get the following error in my terminal.
WARNING in ./utilities/index.js 18:30-44
"export 'default' (imported as 'tailwindConfig') was not found in '../tailwind/tailwind.config.js'
 @ ./stories/01-tokens/color.stories.js
 @ ./stories sync .stories.js$
 @ ./.storybook/config.js
 @ multi<EMAIL_ADDRESS><EMAIL_ADDRESS>./.storybook/config.js (webpack)-hot-middleware/client.js?reload=true

Any help would be greatly appreciated!

Any insight on this issue? Just ran into this myself.

I also am having a similar problem. It never happens in a laravel project, but in another (still uses laravel mix) it persists. I've tried -alot- of things to no avail.
https://discourse.roots.io/t/sage-10-vue-babel-problems/17317


[Backport 2.x] Add threadpool wait time metric (#9681)

Description
Backport PR for https://github.com/opensearch-project/OpenSearch/pull/9681
To be merged at the same time as https://github.com/opensearch-project/OpenSearch/pull/10004
Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Will take a look at the flakey concurrent search stats test


Fixed deprecation handling.

The deprecation directive was not implemented as specified in the spec. With this PR we have now aligned how deprecation works with HC.
https://graphql.github.io/graphql-spec/draft/#sec--deprecated
DeprecationReason is now obsolete. In order to be more explicit I have introduced Deprecated for the code-first variant.
descriptor.Deprecated("reason") or descriptor.Deprecated() can be used to deprecate a field or enum value.
With code first we now are able to use @deprecated without any arguments.

The schema serialization is now also tweaked and will not handle is deprecated as a special case anymore. Moreover, directives now do not serialize null arguments anymore. This makes the serialized schema much cleaner.

OK, there were a lot of tests to update due to the schema serializer changes. But I think the printed schemas are now much nicer.


metrics endpoint responds 404 for root url

when hitting the url w/o the /metrics path, it responds with http 404, would be nice to have some hello world msg there (swagger ui is overkill, b/c no rest api, but indication that the metrics are on a different endpoint would be nice)

fixed in 9ed0f8e80a6c62dde12adaf42e7056f824c9abc2


Volume creation error with logical pool based on LVM Volume Group

System Information
Linux distribution
Ubuntu 18.04
Terraform version
Terraform v0.11.13
+ provider.libvirt (unversioned)
+ provider.template v2.1.0

Provider and libvirt versions
terraform-provider-libvirt 0.5.1
Compiled against library: libvirt 4.0.0
Using library: libvirt 4.0.0
Running hypervisor: QEMU 2.11.1
Running against daemon: 4.0.0

Checklist

[x] Is it a bug or something that does not work as expected? Please make sure you fill the version information below:

Description of Issue/Question
Setup
resource "libvirt_volume" "base_volume" {
  name   = "base_ubuntu"
  source = "/home/admin/virt/images/ubuntu-base3.raw"
}

resource "libvirt_volume" "vm_volume" {
  name           	= "i-test-lvm-01"
  pool           	= "default"
  format 		= "raw"
  base_volume_id 	= "${libvirt_volume.base_volume.id}"
  size 			= "10485760000"
}

The default pool is Volume Group.
Pool xml :
<pool type='logical'>
  <name>default</name>
  <uuid>44404263-74c1-47ec-b30b-99d3a286f1c6</uuid>
  <capacity unit='bytes'>3598909964288</capacity>
  <allocation unit='bytes'>10745806848</allocation>
  <available unit='bytes'>3588164157440</available>
  <source>
    <device path='/dev/sdb1'/>
    <name>default</name>
    <format type='lvm2'/>
  </source>
  <target>
    <path>/dev/default</path>
  </target>
</pool>

Error
libvirt_volume.base_volume: Creating...
  format: "" => "<computed>"
  name:   "" => "base_ubuntu"
  pool:   "" => "default"
  size:   "" => "<computed>"
  source: "" => "/home/admin/virt/images/ubuntu-base3.raw"
2019-04-11T13:50:02.726+0700 [DEBUG] plugin.terraform-provider-libvirt: 2019/04/11 13:50:02 Image /home/svr-admin/virt/images/ubuntu-base3.raw image is:<PHONE_NUMBER>0 bytes
2019-04-11T13:50:02.726+0700 [DEBUG] plugin.terraform-provider-libvirt: 2019/04/11 13:50:02 [DEBUG] Generated XML for libvirt volume:
2019-04-11T13:50:02.726+0700 [DEBUG] plugin.terraform-provider-libvirt:   <volume>
2019-04-11T13:50:02.726+0700 [DEBUG] plugin.terraform-provider-libvirt:       <name>base_ubuntu</name>
2019-04-11T13:50:02.726+0700 [DEBUG] plugin.terraform-provider-libvirt:       <capacity unit="B">0</capacity>
2019-04-11T13:50:02.726+0700 [DEBUG] plugin.terraform-provider-libvirt:       <target>
2019-04-11T13:50:02.726+0700 [DEBUG] plugin.terraform-provider-libvirt:           <format type="qcow2"></format>
2019-04-11T13:50:02.726+0700 [DEBUG] plugin.terraform-provider-libvirt:           <permissions>
2019-04-11T13:50:02.726+0700 [DEBUG] plugin.terraform-provider-libvirt:               <mode>644</mode>
2019-04-11T13:50:02.726+0700 [DEBUG] plugin.terraform-provider-libvirt:           </permissions>
2019-04-11T13:50:02.726+0700 [DEBUG] plugin.terraform-provider-libvirt:       </target>
2019-04-11T13:50:02.726+0700 [DEBUG] plugin.terraform-provider-libvirt:   </volume>
2019/04/11 13:50:02 [TRACE] root: eval: *terraform.EvalWriteState
2019/04/11 13:50:02 [TRACE] root: eval: *terraform.EvalApplyProvisioners
2019/04/11 13:50:02 [TRACE] root: eval: *terraform.EvalIf
2019/04/11 13:50:02 [TRACE] root: eval: *terraform.EvalWriteState
2019/04/11 13:50:02 [TRACE] root: eval: *terraform.EvalWriteDiff
2019/04/11 13:50:02 [TRACE] root: eval: *terraform.EvalApplyPost
2019/04/11 13:50:02 [ERROR] root: eval: *terraform.EvalApplyPost, err: 1 error(s) occurred:

* libvirt_volume.base_volume: Error creating libvirt volume: virError(Code=3, Domain=18, Message='this function is not supported by the connection driver: volume capacity required for this storage pool')
2019/04/11 13:50:02 [ERROR] root: eval: *terraform.EvalSequence, err: 1 error(s) occurred:

* libvirt_volume.base_volume: Error creating libvirt volume: virError(Code=3, Domain=18, Message='this function is not supported by the connection driver: volume capacity required for this storage pool')
2019/04/11 13:50:02 [TRACE] [walkApply] Exiting eval tree: libvirt_volume.base_volume
2019/04/11 13:50:02 [TRACE] dag/walk: upstream errored, not walking "libvirt_volume.vm_volume"
2019/04/11 13:50:02 [TRACE] dag/walk: upstream errored, not walking "meta.count-boundary (count boundary fixup)"
2019/04/11 13:50:02 [TRACE] dag/walk: upstream errored, not walking "provider.libvirt (close)"
2019/04/11 13:50:02 [TRACE] dag/walk: upstream errored, not walking "root"
2019/04/11 13:50:02 [TRACE] Preserving existing state lineage "deedaedc-7a7b-6d54-3ed2-26f23323e576"
2019/04/11 13:50:02 [TRACE] Preserving existing state lineage "deedaedc-7a7b-6d54-3ed2-26f23323e576"
2019/04/11 13:50:02 [TRACE] Preserving existing state lineage "deedaedc-7a7b-6d54-3ed2-26f23323e576"
2019/04/11 13:50:02 [TRACE] Preserving existing state lineage "deedaedc-7a7b-6d54-3ed2-26f23323e576"
2019/04/11 13:50:02 [DEBUG] plugin: waiting for all plugin processes to complete...

Error: Error applying plan:

1 error(s) occurred:

* libvirt_volume.base_volume: 1 error(s) occurred:

2019-04-11T13:50:02.739+0700 [DEBUG] plugin.terraform-provider-libvirt: 2019/04/11 13:50:02 [ERR] plugin: plugin server: accept unix /tmp/plugin524676884: use of closed network connection
2019-04-11T13:50:02.739+0700 [DEBUG] plugin.terraform-provider-libvirt: 2019/04/11 13:50:02 [DEBUG] cleaning up connection for URI: qemu:///system
2019-04-11T13:50:02.739+0700 [DEBUG] plugin.terraform-provider-template_v2.1.0_x4: 2019/04/11 13:50:02 [ERR] plugin: plugin server: accept unix /tmp/plugin499886032: use of closed network connection
* libvirt_volume.base_volume: Error creating libvirt volume: virError(Code=3, Domain=18, Message='this function is not supported by the connection driver: volume capacity required for this storage pool')

Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure.

Steps to Reproduce Issue

Create pool using above xml.
Convert qcow2 image to raw image using : qemu-img convert -f qcow2 -O raw /home/admin/virt/images/ubuntu-base3.qcow2 /home/admin/virt/images/ubuntu-base3.raw
terraform apply with above terraform config

Using qcow2 base image also doesn't work.
Relevent docs: https://libvirt.org/storage.html#StorageBackendLogical

Additional information:
libvirtd.conf
# Disable TLS
listen_tls = 0
# Enable TCP port
listen_tcp = 1
# Add TCP port
tcp_port = "16509"
# Setup libvirt socket group
unix_sock_group = "libvirt"
# Setup libvirt socket permissions
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
# Setup libvirt auth
auth_unix_ro = "none"
auth_unix_rw = "none"
# Disable TCP auth
auth_tcp = "none"
# Enable auth log
audit_logging = 1

I meet same question, and find the root cause is it didn't resolve image file correctly, and generated wrong vol create xml string.
Let me put my configuration files, (actually, almost same with @vjdhama

tf configuration file:

resource "libvirt_volume" "centos7-image" {
  name = "rong_test"
  pool = "pri"
  source = "http://<IP_ADDRESS>/images/CentOS-7-x86_64-GenericCloud.raw"
}

the vol create xml string:

[DEBUG] plugin.terraform-provider-libvirt: 2019/05/16 01:46:37 [DEBUG] Generated XML for libvirt volume:
[DEBUG] plugin.terraform-provider-libvirt:   <volume>
[DEBUG] plugin.terraform-provider-libvirt:       <name>rong_test</name>
[DEBUG] plugin.terraform-provider-libvirt:       <capacity unit="B">0</capacity>
[DEBUG] plugin.terraform-provider-libvirt:       <target>
[DEBUG] plugin.terraform-provider-libvirt:           <format type="qcow2"></format>
[DEBUG] plugin.terraform-provider-libvirt:           <permissions>
[DEBUG] plugin.terraform-provider-libvirt:               <mode>644</mode>
[DEBUG] plugin.terraform-provider-libvirt:           </permissions>
[DEBUG] plugin.terraform-provider-libvirt:       </target>
[DEBUG] plugin.terraform-provider-libvirt:   </volume>

We can see the problems here
3.1 capacity = 0B
3.2 the type = qcow2 although I passed a raw image

image information

/var/www/html/images$ qemu-img info CentOS-7-x86_64-GenericCloud.raw
image: CentOS-7-x86_64-GenericCloud.raw
file format: raw
virtual size: 8.0G<PHONE_NUMBER> bytes)
disk size: 881M

So, the things became easy, we need to parse correct image information and pass to volume create function.

Hm... looks like @vjdhama  has pasted the debug log and it has shown the root cause.. will check how to fix for my own environment.. please ignore my last post if it create noise...

I met same issue, git clone the latest code, compile, it works.

Based on latest commit, let's close this one too. @MalloZup


[5.4] Convert zRangeByScore syntax for PhpRedis

This converts Predis':
['WITHSCORES' => true, 'LIMIT' => [$offset, $count]

To PhpRedis:
['withscores' => true, 'limit' => [$offset, $count]

Just a related note: Predis doesn't really care about which casing style is used for command modifiers keywords as it converts them to uppercase internally, so you can pass them as WITHSCORES or withscores or even WiThScORES and it won't make any difference. The use of uppercase-by-default in Predis, in docs or code, is just for consistency with the Redis documentation.

@nrk: Yeah, we use Predis as the standard and just make sure the syntax is converted when PhpRedis is used. What would really help us is a full documentation of all Predis methods and their supported signatures. I noticed that some methods can be called in 2-3 different ways.

Do we actually need this if the case doesn't matter?

Yes, Predis doesn't care, PhpRedis does 😐

@tillkruss having proper documentation for Predis would be awesome but unfortunately I don't have enough free time for it and nobody seems motivated enough to submit contributions in this area. I know the test suite shouldn't really be used as a reference, but test units for each command cover all of their supported signatures.

@nrk: Okay, thanks, I'll have a look!


registry: reorganize package layout

For the most part this change does exactly what is described by #158, although we haven't move the registry definitions into the registry package as of yet. The last step requires more surgery and depends on some other ongoing work (#157, #159).
While this PR seems massive, it most consists of moves and updates to import statements. The only main caveat is that registry/storage/driver is imported as storagedriver to avoid a major kludge of a PR.
Connects to #158

cc @docker/distribution-maintainers

LGTM

LGTM


Migration steps for theme installation (v2.0.0)

In MDS Portal 2.1.0 some changes have been made to theme files but no migration step includes this. Should the changes be reverted on should the new theme be installed and this migration step included in the documentation?
@jridderbusch: Add this to the DMN section for version 2.0.0
diff -r Components/Authority Portal/2024.02.27 2.0.0/authority-portal-release-2.0.0-deployment-docs/authority-portal-keycloak/mds-theme/email/messages/messages_en.properties Components/Authority Portal/2024.03.04 2.1.0/authority-portal-release-2.1.0-deployment-docs/authority-portal-keycloak/mds-theme/email/messages/messages_en.properties

6,7c6,7

< emailVerificationBody=Hi {4} {5},\nAn MDS Authority Portal account has been created with this email address.\nIf this was you, click the link below to verify your email address.\n\n{0}\n\nThis link will expire within {3}.\n\nIf you did not create this account and are not aware of having been invited, feel free to ignore this message.

< emailVerificationBodyHtml=Hi {4} {5},

An MDS Authority Portal account has been created with this email address.
If this was you, click the link below to verify your email address.

{0}

This link will expire within {3}.

If you did not create this account and are not aware of having been invited, feel free to ignore this message.

---

> emailVerificationBody=Hi {4} {5},\nAn MDS Portal account has been created with this email address.\nIf this was you, click the link below to verify your email address.\n\n{0}\n\nThis link will expire within {3}.\n\nIf you did not create this account and are not aware of having been invited, feel free to ignore this message.

> emailVerificationBodyHtml=Hi {4} {5},

An MDS Portal account has been created with this email address.
If this was you, click the link below to verify your email address.

{0}

This link will expire within {3}.

If you did not create this account and are not aware of having been invited, feel free to ignore this message.

14c14

< requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Generate Recovery Codes

\ No newline at end of file

---

> requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=Generate Recovery Codes

@jridderbusch Is this up-to-date?

@jridderbusch Is this up-to-date?

Yes, this is up-to-date. For consistency we should add a hint for this in the DMN for version 2.0.0.

Added to 2.0.0 DMN with the 2.1.2 release


./install.sh virtualbox Using Kali box has issues w/ setting hostname

$ sudo ./install.sh virtualbox
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'sfoger/kali' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'sfoger/kali'
default: URL: https://atlas.hashicorp.com/sfoger/kali
==> default: Adding box 'sfoger/kali' (v1.0) for provider: virtualbox
default: Downloading: https://atlas.hashicorp.com/sfoger/boxes/kali/versions/1.0/providers/virtualbox.box
==> default: Successfully added box 'sfoger/kali' (v1.0) for 'virtualbox'!
==> default: Importing base box 'sfoger/kali'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'sfoger/kali' is up to date...
==> default: Setting the name of the VM: csi_default_1498167210199_53708
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: <IP_ADDRESS>:2222
default: SSH username: vagrant
default: SSH auth method: private key
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
Vagrant attempted to execute the capability 'change_host_name'
on the detect guest OS 'linux', but the guest doesn't
support that capability. This capability is required for your
configuration of Vagrant. Please either reconfigure Vagrant to
avoid this capability or fix the issue by creating the capability.

Issue has been addressed by assigning the vm.guest property the value of :debian

https://github.com/ninp0/csi/blob/master/Vagrantfile#L45


[#4722] Ensure the whole certificate chain is used when creating SslC…

…ontext for client mode and SslProvider.OPENSSL is used
Motivation:
We incorrectly added the trustCertChain as certificate chain when OpenSslClientContext was created. We need to correctly add the keyCertChain.
Modifications:
Correctly add whole keyCertChain.
Result:
SSL client auth is working when usin OpenSslClientContext and more then one cert is contained in the certificate chain.

@nmittler PTAL

LGTM

Cherry-picked into 4.0 (3c254a72107f8db852534c150c4ba6326c398c65) and 4.1 (ee2558b)


Update readme how --requires and --name should be used

Hi, I have quite problem to simply figure out hou --requires and --name should be used on the CLI.
I want to add additional require to the target specified in  DockerMake.yml. When --name is not specified it fails, if it's specified as any other target in DockerMake it fails and if it's not defined it fails as well.
docker-make -f DockerMake.yml --requires salt -t ubuntu-xenial-salt-stable debian-stretch
Working directory: /home/pmichalec/hg2g/workspace-salt/docker-salt-formulas.develop
Copy cache directory: /tmp
READING DockerMake.yml
Traceback (most recent call last):
  File "/usr/local/bin/docker-make", line 11, in <module>
    load_entry_point('DockerMake==0.6.0', 'console_scripts', 'docker-make')()
  File "/usr/local/lib/python3.6/dist-packages/dockermake/__main__.py", line 38, in main
    run(args)
  File "/usr/local/lib/python3.6/dist-packages/dockermake/__main__.py", line 81, in run
    targets = utils.get_build_targets(args, defs)
  File "/usr/local/lib/python3.6/dist-packages/dockermake/utils.py", line 75, in get_build_targets
    assert args.requires and args.name
AssertionError
➜  docker-salt-formulas.develop git:(develop) ✗ docker-make -f DockerMake.yml --requires salt --name zzz -t ubuntu-xenial-salt-stable debian-stretch
Working directory: /home/pmichalec/hg2g/workspace-salt/docker-salt-formulas.develop
Copy cache directory: /tmp
READING DockerMake.yml
FATAL ERROR: No base image found in zzz's dependencies
➜  docker-salt-formulas.develop git:(develop) ✗ docker-make -f DockerMake.yml --requires salt --name debian-stretch -t ubuntu-xenial-salt-stable debian-stretch
Working directory: /home/pmichalec/hg2g/workspace-salt/docker-salt-formulas.develop
Copy cache directory: /tmp
READING DockerMake.yml
Traceback (most recent call last):
  File "/usr/local/bin/docker-make", line 11, in <module>
    load_entry_point('DockerMake==0.6.0', 'console_scripts', 'docker-make')()
  File "/usr/local/lib/python3.6/dist-packages/dockermake/__main__.py", line 38, in main
    run(args)
  File "/usr/local/lib/python3.6/dist-packages/dockermake/__main__.py", line 81, in run
    targets = utils.get_build_targets(args, defs)
  File "/usr/local/lib/python3.6/dist-packages/dockermake/utils.py", line 76, in get_build_targets
    assert args.name not in defs.ymldefs
AssertionError
➜  docker-salt-formulas.develop git:(develop) ✗ docker-make -f DockerMake.yml --requires salt --name debian -t ubuntu-xenial-salt-stable debian-stretch
Working directory: /home/pmichalec/hg2g/workspace-salt/docker-salt-formulas.develop
Copy cache directory: /tmp
READING DockerMake.yml
FATAL ERROR: No base image found in debian's dependencies
➜  docker-salt-formulas.develop git:(develop) ✗ docker-make -f DockerMake.yml --requires salt --name wheelhouse -t ubuntu-xenial-salt-stable debian-stretch
Working directory: /home/pmichalec/hg2g/workspace-salt/docker-salt-formulas.develop
Copy cache directory: /tmp
READING DockerMake.yml
Traceback (most recent call last):
  File "/usr/local/bin/docker-make", line 11, in <module>
    load_entry_point('DockerMake==0.6.0', 'console_scripts', 'docker-make')()
  File "/usr/local/lib/python3.6/dist-packages/dockermake/__main__.py", line 38, in main
    run(args)
  File "/usr/local/lib/python3.6/dist-packages/dockermake/__main__.py", line 81, in run
    targets = utils.get_build_targets(args, defs)
  File "/usr/local/lib/python3.6/dist-packages/dockermake/utils.py", line 76, in get_build_targets
    assert args.name not in defs.ymldefs
AssertionError

docker-make -f DockerMake.yml --requires ubuntu-bionic salt -t ubuntu-xenial-salt-stable --name xxx
my fault, this way it works.


[3rd party integration] plugins!

Define plugins for 3rd party integration:

[x] URL integration
[x] settings integration
[x] add navigation tabs
- [ ] add tab to part view -> #2063
- [ ] signals -> #2064
[x] plugin signing
[x] plugin updating ->git submodules?
- [ ] plugin repo -> #2065

Part of #1421

@SchrodingersGat could you add this to the plugin project too?

PoC functions are developed - now unittests, refactoring, QoL improvements and docs!

Unittests are done now. Coverage is around 95%.
Docs incoming.

@matmair Excellent reply! Is there anywhere I need to get the plugin-system code from to get it all working or is the ShopifyIntegrationPlugin repo the only thing that I need to add to InvenTree repo to let it run?


Confusing documentation flow

The organizational structure of this entire document set is highly confusing. The navigation in the left panel does not follow the flow of the content in the right panel. When reading the documentation, should I navigate from topic to topic using the left navigation menu or follow the contextual "See Also" links? No "Next" navigation hint leads me to the next natural content section.
The topic is complex enough without struggling to understand the documentation flow. Do better, Microsoft.

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

ID: f84ec2a3-cf72-9d3e-c1b1-ff685678dcf3
Version Independent ID: febc9930-68c7-f668-49a7-bf34962418cb
Content: Client-side JavaScript using Web API in model-driven apps - Power Apps
Content Source: powerapps-docs/developer/data-platform/webapi/get-started-web-api-client-side-javascript.md
Service: powerapps
Sub-service: dataverse-developer
GitHub Login: @divkamath
Microsoft Alias: dikamath

Thanks for your comment, @ken-afh. This issue has been assigned to the doc author for review.

@ken-afh
Thanks for your feedback.
Just want to make sure that I'm understanding the feedback correctly.
Looking at the page:

The left side is the table of contents.
What you are seeing on the right side is something new.
This is a dynamically generated list of Additional Resources.
Until last week, this appeared at the bottom of the topic, so it is much more visible now.
Sounds like you are overwhelmed by the number of options available.
This area of content is primarily about how to use the Dataverse Web API, without regard for a specific client. If you want to learn about the Dataverse Web API, you should start at the top (Use the Microsoft Dataverse Web API) and work down. It starts general and becomes more specific. Near the bottom, there are several items that don't necessarily follow any linear path, they are kind of "BTW, you should also know" details.
The purpose of this Client-side JavaScript using Web API in model-driven apps article is to call out that model-driven apps have their own helper Xrm.WebApi that provides methods to interact with data using Web API.
The dynamically generated content in this case is mostly taking you to some client-side JavaScript samples that don't use  Xrm.WebApi, so that probably isn't what you want.
It would be helpful to know what you are trying to do.

Are you trying to learn all about Dataverse Web API?
Are you only interested in how to use Web API from Model-driven apps?
Something else?

Hey, Jim,
Thanks for investigating! First, to clarify, I have no issue with the content of the article. My issue is with the way the documentation site is structured. Wherever I start, I wind up with the same dilemma – where should I go next? This is particularly frustrating when reading on mobile, where the left-hand table of contents column simply doesn’t exist. I get to the bottom of an article & there’s “See Also,” “Feedback,” and “Additional resources” – no way to get to the next article in the series. A simple “Next” link at the bottom of the article would go a long way toward clarifying a preferred path for consuming the documentation.
To answer your questions:
Sounds like you are overwhelmed by the number of options available.
[KLC] Yes. There are too many options and not a clear preferred path!
This area of content is primarily about how to use the Dataverse Web API without regard for a specific client. If you want to learn about the Dataverse Web API, you should start at the top (Use the Microsoft Dataverse Web APIhttps://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/overview) and work down.
[KLC] Yes – but I’m missing a simple “Next” button at the bottom to move to the next section. Instead, I get “See Also” or “Additional resources”
It starts general and becomes more specific.
Near the bottom, there are several items that don't necessarily follow any linear path, they are kind of "BTW, you should also know" details.
[KLC] I think this is where I find myself the most confused. Sometimes, there’s “See Also” and sometimes “Additional resources” (I’m not sure what the breakpoint is to render Additional resources in a third column, it’s wider than I have my browser window.) Again, I’m missing a simple “Next” link that would allow me to easily continue with a linear reading path.
The purpose of this Client-side JavaScript using Web API in model-driven appshttps://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/get-started-web-api-client-side-javascript article is to call out that model-driven apps have their own helper Xrm.WebApihttps://learn.microsoft.com/en-us/power-apps/developer/model-driven-apps/clientapi/reference/xrm-webapi that provides methods to interact with data using Web API.
[KLC] My feedback is not for just this one article. It’s for the entire documentation compendium. Wherever I start, I wind up with the same dilemma – where should I go next? This is particularly frustrating when reading on mobile where the left-hand navigation column simply doesn’t exist. I get to the bottom of an article & there’s “See Also”, “Feedback”, and “Additional resources” – no way to get to the next article in the series.
The dynamically generated content in this case is mostly taking you to some client-side JavaScript samples that don't use Xrm.WebApihttps://learn.microsoft.com/en-us/power-apps/developer/model-driven-apps/clientapi/reference/xrm-webapi, so that probably isn't what you want.
It would be helpful to know what you are trying to do.

Are you trying to learn all about Dataverse Web API?
Are you only interested in how to use Web API from Model-driven apps?
Something else?
[KLC] My eventual goal is to understand the core Dataverse structure and usage, eventually getting to the point of creating model-driven apps. Before I can start creating apps of any kind, I need to understand (at a basic level) what the Dataverse is and how to use it. Knowing how to talk to it does me no good if I don’t know what to say.

Thanks,
KLC
From: Jim Daly @.>
Sent: Saturday, June 3, 2023 1:38 PM
To: MicrosoftDocs/powerapps-docs @.>
Cc: Ken Cline @.>; Mention @.>
Subject: Re: [MicrosoftDocs/powerapps-docs] Confusing documentation flow (Issue #4425)
@ken-afhhttps://github.com/ken-afh
Thanks for your feedback.
Just want to make sure that I'm understanding the feedback correctly.
Looking at the page:
[image]https://user-images.githubusercontent.com/6353736/243117113-18e0205f-9449-4241-a85f-9e8a38f3ca44.png
The left side is the table of contents.
What you are seeing on the right side is something new.
This is a dynamically generated list of Additional Resources.
Until last week, this appeared at the bottom of the topic, so it is much more visible now.
Sounds like you are overwhelmed by the number of options available.
This area of content is primarily about how to use the Dataverse Web API, without regard for a specific client. If you want to learn about the Dataverse Web API, you should start at the top (Use the Microsoft Dataverse Web APIhttps://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/overview) and work down. It starts general and becomes more specific. Near the bottom, there are several items that don't necessarily follow any linear path, they are kind of "BTW, you should also know" details.
The purpose of this Client-side JavaScript using Web API in model-driven appshttps://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/get-started-web-api-client-side-javascript article is to call out that model-driven apps have their own helper Xrm.WebApihttps://learn.microsoft.com/en-us/power-apps/developer/model-driven-apps/clientapi/reference/xrm-webapi that provides methods to interact with data using Web API.
The dynamically generated content in this case is mostly taking you to some client-side JavaScript samples that don't use Xrm.WebApihttps://learn.microsoft.com/en-us/power-apps/developer/model-driven-apps/clientapi/reference/xrm-webapi, so that probably isn't what you want.
It would be helpful to know what you are trying to do.

Are you trying to learn all about Dataverse Web API?
Are you only interested in how to use Web API from Model-driven apps?
Something else?

—
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/powerapps-docs/issues/4425#issuecomment-1575091338, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKQTHPS3ZRXBJKPSA3W4SULXJNY7PANCNFSM6AAAAAAYZK5GVE.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Thanks again Ken.
Feedback like this is very valuable.
I hear what you are saying about wanting more guidance about what to do next. Unfortunately, this is product documentation rather than a course. It is going to be pretty feature focused rather than task focused, and Dataverse has a lot of features.
The learning courseware is more focused on guiding people through a set of paths with more structure on commonly performed tasks. I would recommend looking here if you haven't already Learning catalog for Power Apps, especially if you are just getting started.
Product documentation is a bit more like Wikipedia. We organize the content more around features and go much deeper. Content is optimized for search engines since most people come to our content from searches. We don't necessarily expect people to read the whole thing, but let them 'write their own adventure' so to speak. So, the design provides lots of links for people to choose from. Perhaps too many.
I am glad to accept your feedback and agree we can do better to establish clearer paths in the product documentation like the courseware does.
One example of this is the content about Web API types and operations. There is a series of 8 articles that walk you through some pretty dry content related to reading XML service documents. But it is important, so we try to make it easier to consume by keeping the articles short(er) and establishing that there is more to learn at the end of each one.
My take-away is that you want more content like that. Please let me know if that isn't a good example.

Hi, Jim,
Thank you for taking the time to have this dialog. I greatly appreciate it!
Yes, the example you provided (Web API types and operations) provides a much better (to me) user experience. I do understand what you’re saying about the product documentation being focused on reference rather than serial consumption. Perhaps, rather than providing breadcrumbs to lead the way through the documentation set, have the product documentation include a pathway to the educational material? I did find the content via a search. Maybe giving me a gentle nudge saying “Hey, you! If you’re looking for educational material on this topic, look over here.”
Thanks again for your time! You’ve given me confidence that my feedback will receive due consideration & may lead to improvements!
KLC
From: Jim Daly @.>
Sent: Saturday, June 3, 2023 9:10 PM
To: MicrosoftDocs/powerapps-docs @.>
Cc: Ken Cline @.>; Mention @.>
Subject: Re: [MicrosoftDocs/powerapps-docs] Confusing documentation flow (Issue #4425)
Thanks again Ken.
Feedback like this is very valuable.
I hear what you are saying about wanting more guidance about what to do next. Unfortunately, this is product documentation rather than a course. It is going to be pretty feature focused rather than task focused, and Dataverse has a lot of features.
The learning courseware is more focused on guiding people through a set of paths with more structure on commonly performed tasks. I would recommend looking here if you haven't already Learning catalog for Power Appshttps://learn.microsoft.com/en-us/power-apps/learning-catalog/learning-catalog, especially if you are just getting started.
Product documentation is a bit more like Wikipedia. We organize the content more around features and go much deeper. Content is optimized for search engines since most people come to our content from searches. We don't necessarily expect people to read the whole thing, but let them 'write their own adventure' so to speak. So, the design provides lots of links for people to choose from. Perhaps too many.
I am glad to accept your feedback and agree we can do better to establish clearer paths in the product documentation like the courseware does.
One example of this is the content about Web API types and operationshttps://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/web-api-types-operations. There is a series of 8 articles that walk you through some pretty dry content related to reading XML service documents. But it is important, so we try to make it easier to consume by keeping the articles short(er) and establishing that there is more to learn at the end of each one.
My take-away is that you want more content like that. Please let me know if that isn't a good example.
—
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/powerapps-docs/issues/4425#issuecomment-1575304647, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKQTHPUVSANY6P3FJI63DF3XJPN5DANCNFSM6AAAAAAYZK5GVE.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

@ken-afh
Thank you Ken.
Appreciate your feedback.
Closing this.


Assigng check fixes

Coverage remained the same at 74.85% when pulling f17ad1a572beb6c7a9a70267ad86f2559ae4c050 on guidow:assigng_check_fixes into b32c08652b5da9079df4e3cf782f213ea02a8133 on pyfarm:master.

Coverage remained the same at 74.85% when pulling 8e2efd42e030089ef0afa266c89e34ed3d2b7a87 on guidow:assigng_check_fixes into b32c08652b5da9079df4e3cf782f213ea02a8133 on pyfarm:master.

LGTM, merging.


Add alternate class based API

Hi,
Thanks for maintaining the python version of Combat. I just finished writing an alternate API for the code based on a scikit-learn style API. If you all are open to it, I thought it could be a nice addition to the code already maintained here as a complementary option.
This pull request contains a few different things:

The biggest is the addition of the new Combat class, e.g., from neuroCombat import Combat, which makes a few different choices with respect to formatting input arguments, but most of the actual logic and implementation of combat is the same as the code you have (but re-written in the scikit-learn fit, transform, fit_transform) style.

With respect to the Combat class, the only area where results really differ is with respect to the neuroCombatFromTraining, or in applying combat to unseen data. Basically, I noticed that for now the current method doesn't accept covariates and instead just uses the mean calculated mod_mean from the training set. So what I did, was for the new default set it to instead compute the actual values based on the new samples co-variate values. Then, there is an optional flag for including y, or the target variable in the sci-kit learn setup, which if you want to try and preserve the value of y while running combat, will essentially add it as another co-variate, but when predicting new samples will do something similar to the already implemented method and just revert to using the mean value. I can discuss these changes more if needed, to make sure I'm thinking about it the right way.

I wrote a number of tests, mostly confirming base behavior and ensuring that expected output matches between my version and the existing version of the code. Further, I saw you had a travis CI yml file, but no test code that I could find, so I setup a new CI pipeline through github actions to run the tests. There are definitely more tests that can and should be added.

I made some small changes to the setup.py and README, ect... mostly to reflect the new changes and provide some new examples

Thanks,
Sage

Hi fabioboh, sorry, but unfortunately not for me. I've moved on from academia and don't have any free time right now :(

@sahahn I see. Thank you again for providing this nice extension and for your fast reply :-)

dear @sahahn
I know you are out of academia, but I have a question which you perhaps you still can answer quickly. When the Combat class is initialized, you need to pass the full dataframe containing the covariates and batch information to it. Why is it so, as opposed to pass the column names for the covariates and the site? I believe everything is correct and Combat is only fit on the training set (I believe through passing the right fit_index, but your confirmation is welcome), but this makes it complicated to use combat within a sklearn pipeline if the covariates are generated in a step of the pipeline previous to combat.

there is actually no need for the same extension on the neuroHarmonize package, it is enough to write some kind of class CombatGAMTransform(BaseEstimator, TransformerMixin): with fit and transform methods :-)


Minicircuits/USBHIDMixin driver does not work on windows 7

Initiating a RUDAT_13G_90 driver instance failed on the part where IDN is requested, and the instrument collects values for the parts of the IDN. The exception was: ('Error 1784 when trying to write to HID device: The supplied user buffer is not valid for the requested operation.', "asking ':ATT?' to <RUDAT_13G_90_USB: VA>", 'getting VA_attenuation').
The following code changes in the driver resolved the problem:

change packet_size in __init__ method of MiniCircuitsHIDMixin class from 64 to 63 here
remove subtracting 1 from packet_size in _unpack_string method of MiniCircuitsHIDMixin class here

This means that basically the message size was incorrect.
It is important to mention that the PC where this behavior was observed has Windows 7. The original driver code works OK on a PC with Windows 10 (e.g. without making the 2 adjustments mentioned above). The version of pywinusb was the same, 0.4.2.
Another test is going to be performed soon to find out what this bug really depends on: operating system, or smth else.
Originally discovered and fixed by @damazter.

Further reading of the programming manual for the device and some Linux/USB examples in the programming troubleshooting guide, revealed that there is a bug in the driver.
Packet size is 64. The first byte is always the "usb interrupt code" of a command that is performed. For the SCPI commands, this code is 1. But one should know that this byte takes space inside the packet, hence there are only 63 bytes left for the content. The same goes for the received data - the first byte is still that "usb interrupt code" and the rest of 63 bytes are the response.
The driver handles correctly the receiving part, and has a correct number for the packet size. But it forgets to subtract the 1 bytes when it calculates the size of the padding (unused last bytes within the packet). This results in a data that is 1 bytes too long.
Now, I don't know why, but on Windows 10 this is not a problem for the USB connection, while it is a problem on Windows 7. In other words, Windows 10 is more forgiving then Windows 7.


Ranking of Volatility

Description
On third paragraph under '5. Signature Plot', article ranked volatility as follows:FGBX, FGBM, FGBL and FGBS.In the writing that follows it suggested FGBL is more volatile than FGBM. The correct ranking it seems should instead be FGBX *FGBL *FGBM FGBS...or is it?
(Optional:) Please add any files, screenshots, or other information here.
No response
(Required) What is this issue most closely related to? Select one.
Choose One
Internal issue ID
b5404f4d-3fc8-4cd9-b8b9-f304beb08b64
Paper URL
https://arxiv.org/html/2401.10722v1
Browser
Chrome/<IP_ADDRESS>
Device Type
Android

Please contact the authors directly for questions on document content.
This repository only tracks the quality of the experimental HTML format. Thank you!


Update temporal container versions.

Currently, when new app is being generated, and if temporal support is checked at the beginning, application will be created with outdated temporalio containers.
Currently it is created with "temporalio/web:1.13.0" which is 2 years old, and looks like temporal migrated from web to ui container name.
Docker compose examples from temporal:
https://github.com/temporalio/docker-compose/blob/main/docker-compose-postgres.yml

Temporal auto-setup also can be updated from 1.14.2 to 1.24
https://hub.docker.com/r/temporalio/auto-setup/tags


New action for Transform window

As we have no ability to apply more than one transform on the column in a row, add new "action button" - Apply and stay here in Transform window, to not close this window (like in Cluster and edit window: "Merge / Merge and close / Close"). Now you spend time to open Transform window again manually.

It's not clear to me why this would be useful, since you can easily chain functions in your expression language.
For instance value.trim().toLowercase() instead of doing first value.trim() and then value.toLowercase().
In some rare cases you might want to use different expression languages - but I don't feel like it warrants an additional button. Plus we might get support for using different expression languages in the same expression if we go down the Graal route (#2250).
Closing, feel free to reopen if I misunderstood.


Add design doc for improved interval collection query APIs

Description
This adds a design document for improving certain aspects of the interval collection query APIs, and outlines steps we can take to get there.
Reviewer Guidance
I'd especially like feedback on the balance between ease of developer use and performance I've tried to strike here.
e.g. making aspects of one's public API surface pay-to-play at a bundling level frequently reduces discoverability.
The typesafe prototype I presented also adds a lot of complexity to the type system but could yield much better developer experience in some aspects (e.g. intellisense for the developer using the interval collection APIs once indexes are properly set up).
There are also a couple alternative ways to structure things I considered but ultimately decided against, such as using the term "indexes" to refer only to the direct spatial data (e.g. RedBlack tree of intervals, minmax interval tree, etc.) and allowing "queries" to be single-functions which might use that data (findOverlappingIntervals would be one). The small code bundling gains here didn't seem worth the added API surface we'd need to expose, though.

small update here--we're proceeding with the attachIndex/detachIndex design. #15683 introduces that API, and followups will continue to push things along in the direction outlined here. This document isn't particularly useful to leave checked in to the fluid repo, so I'll close the PR now.


Update argonaut to 6.3.1

Updates io.argonaut:argonaut from 6.3.0 to 6.3.1.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.argonaut", artifactId = "argonaut" } ]

labels: library-update, semver-patch

Codecov Report

Merging #151 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #151   +/-   ##
=======================================
  Coverage   99.06%   99.06%
=======================================
  Files           7        7
  Lines         107      107
=======================================
  Hits          106      106
  Misses          1        1

Continue to review full report at Codecov.

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


Split proxy endpoint filtering out into separate object

With more origin code this should give us the ability to run the proxy in a separate process.
I chose to keep the registry since the proxy also needs the origin client to get the ClusterNetwork, but I could split that out and simplify things a but further if anyone wants?

origin side is https://github.com/openshift/origin/pull/8627

Will need to be rebased on top of #289 (particularly the commit "Simplify Watch resource in SDN")

@pravisankar changed the name

You merged your fixes into the wrong commit. Also, I think you missed Ravi's request to have NewMasterPlugin() and NewNodePlugin() both call a private method rather than having NewMasterPlugin() calling NewNodePlugin() (which, admittedly, was a lame suggestion on my part :)

@danwinship right on all counts; fixed now.

LGTM

@pravisankar @rajatchopra

minor nit, LGTM

@pravisankar nit fixed


Bug with confirmable

When a user is currently logged in on a system, maybe in an internet cafe or something and someone else tries to confirm their email through the confirmation link, without knowing that someone else has their account open, the confirmation token becomes used, and he won't be able to confirm his account even after logging out of the previous account.

Can you provide an application that reproduces the error? The account confirmed is always the one in the link. If you are signed in on another account, then you will continue signed in on the other account, but the proper account will be confirmed and you should be able to sign in by signing out.


binary not found issue.

After dockerizing, I wanted to run kubescape in my application on a pod.
The image I used is alpine:3.13. However, when I run kubescape in the application, the output is as follows.
ash: kubescape: not found
I searched and found that it was due to a missing interpreter when building the binary([Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]). Considering this, can't we build a binary at the time of release?

[root@k8-build ~]# curl -s https://raw.githubusercontent.com/armosec/kubescape/master/install.sh | /bin/bash
Installing Kubescape...
######################################################################## 100.0%
Finished Installation.
/bin/bash: line 53: kubescape: command not found
pls suggest to resolved this.


Fix RIDER-27263: CE debugger

This finally adds proper support for CE debugging (like async). It turns out that F# compiler sometimes maps multiple generated methods to the same point in the code (like in the test example). To properly debug these, Visual Studio just sets breakpoints to every such method.
Rider was trying to play smart and somehow choose the "best" one of multiple available breakpoints, but was failing at that.
Something called "multi-method breakpoints" was already introduced earlier (mainly for C++/CLI template methods), so, after some internal changes in the debugger engine, I was able to reuse this logic for F#, too.

@ForNeVeR Thanks!


Processing multiple GET parameters

Hello Joel,
I'm trying to parse multiple GET requests for an API, eg GET /api/params.cgi?req1=Brand&req2=Label&req3=Name&req4=Description
I've reviewed the other issues and you suggested req.ToString() to parse, but I wonder if that may have changed in some of the recent updates.
Is this still what you recommended or is there a better way that I can process multiple get values in a single request?
Thank you for you help

Hi @dbuzz111 thanks for reaching out.  Have you tried interacting with HttpContext.Request.QuerystringEntries?  It's a Dictionary<string, string> and should give you what you need, if you're after req1, req2, etc (and their associated values).
Let me know!

Thank you, I didn't not see that method exposed! I think that is going to work perfect, and it seems it even works with this strange API where they do ?req=Value1&req=Value2&req=Value3.

Awesome :)  Let me know how it works out for you.
So you're aware, if someone overloads querystring keys, i.e. req1=val1&req1=val2&req1=val3, you'll see a KeyValuePair<string,string> with key req1 and value of val1,val2,val3.  Since dictionaries don't allow duplicate key names, and some apps overload keys in the querystring, I opted to append values in a CSV format.
Please re-open if any further issues!  Cheers, Joel


JS: Popovers (Popups)

Quite similar to tooltips but still different!!!
Example: http://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_popup

It is called Dropdown in Foundation: http://foundation.zurb.com/sites/docs/dropdown.html ;)

Well. I think we should reopen this issue. I also stumbled over this "missing feature". I guess it should be made cleared that this commonly know Pattern of Popovers is called Dropdown in Foundation and how to add noses/triangles to dropdowns to achieve the look of popovers.

Exactly @DaSchTour
My thoughts are also the same
Poke @kball @ncoden @brettsmason

Seems reasonable to me. I think this is primarily a docs update, but it might well be worth adding an option to include the nose/triangle automatically.

I think this is by mistake @ncoden ? :point_up_2:

This issue will close once commit 3764b66 is merged into develop branch

@IamManchanda  Yes it is a mistake.

I Have one thing to say @kball ..... if we include (nose/triangle) this within dropdown, then this will be a bit duplicate to tooltips
my suggestion would be to seprate this and take it as new component
as there is quite a lot of difference b/w button dropdowns and popovers and tooltips.

Another possible direction to check - Is the implementation distinction between tooltips, dropdowns, and popovers that necessary?
Can these all be some sort of more base/foundational component with different graphical flavors?

In my view it should be different

Agree with you @kball. There is probably plenty of things we can do to factorize these components.
The best solution would be to find a "base" component (merge of behaviors and options) which still fit the three use cases and is still simple to use.
If it is too complicated to use (have to provide a set of options at each time), we could provide:

Aliases: the base component with a different name and default options.
New components inherited from the base component.

For one or the other solution, we have to make the aliasing/inheritance explicit and clear in the documentation, to avoid to duplicate explanations.

Agree with you nico

For me dropdown can be the base component

@kball @ncoden @DaSchTour @Deckluhm
I might be off topic but i think we should seriously consider Tether
I mean just look at this PR https://github.com/twbs/bootstrap/pull/22264 and changes
Demo => http://jsbin.com/lijalowata/edit?html,output

@ncoden @IamManchanda I think this might fall outside of the scope of F6 due to our feature freeze. Should we close it and Revisit for F7?


Make CL/cl_icd.h self-contained

Update included DirectX 10 header and include the DirectX sharing headers from CL/cl_icd.h.
This addresses #80 and is necessary to build clvk on Windows.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I did some research on this and looking at the documentation of the interfaces in d3d10_1.h. The notes that all those interfaces are available since Windows Vista SP1 makes me suggest to test which Windows SDK is targeted, like this:
#include <sdkddkver.h>
#if WDK_NTDDI_VERSION >= 0x06000100 // NTDDI_VISTASP1
#include <d3d10_1.h>
#else
#include <d3d10.h>
#endif

That looks reasonable to me. Maybe there's a case for splitting this into two PRs. The cl_icd.h changes can go in right now. The others will need feedback from folks who work with Windows more regularly than I do (@bashbaug @nikhiljnv may have an opinion).

Ok I investigated the include problem a bit more and I realized that it was a mere issue of the ordering of the CL/cl_d3d11.h and CL/cl_d3d10.h headers.
If both d3d10.h and d3d10_1.h are included, d3d10_1.h has to be included first.
And as CL/cl_d3d11.h  includes the d3d10_1.h transitively, it must be included before d3d10.h is included in cl_d3d10.h.
Therefore the current version in this PR should be enough to make CL/cl_icd.h self-contained and  enable the building on windows correctly.


Implement pagination support for GetLogEvents

Add nextForwardToken and nextBackwardToken to every GetLogEvents response
Handle end of stream by returning the same token as passed in

Resolves: #2259

Coverage increased (+0.06%) to 93.155% when pulling 5063ffc837aa755491d15671db16d5ba68fce902 on bkovacki:get_log_events_pagination_support into 40271d2c4ee17fb9dab16a389c30b1ea653e5a0c on spulec:master.

LGTM


General issue for 2021 GB Election

If you encounter any problems with Elekto while voting in the 2021 General Board election, please report them by leaving a comment on this issue.

A couple of nits:

After clicking on a candidate's profile and then going back to the election home page, sometimes the candidate list is shuffled. This isn't a huge issue with 3 candidates but it could get confusing if we have more candidates.

The passphrase text and box renders a little awkwardly on Firefox. The passphrase box wasn't completely visible to me so I could be wrong about this...it seemed to only allow passphrases upto 6 characters.

A couple of nits:

After clicking on a candidate's profile and then going back to the election home page, sometimes the candidate list is shuffled. This isn't a huge issue with 3 candidates but it could get confusing if we have more candidates.

The passphrase text and box renders a little awkwardly on Firefox. The passphrase box wasn't completely visible to me so I could be wrong about this...it seemed to only allow passphrases upto 6 characters.

nit: found a typo in the help text: "Only the 1 favorite chocie will win the election."

nit: found a typo in the help text: "Only the 1 favorite chocie will win the election."

Theres a bit of weirdness with how its ordering candidates if you do it with a mouse instead of assigning a numerical value. It will assign someone the same score then alpha sort when the intention was to assign them a higher ranking than the other.
I would opt to turn off the alpha sort 9 so that they can be ordered how you'd want them to be.
https://user-images.githubusercontent.com/6500863/104216127-a84c2980-5407-11eb-8144-c0008753693d.mov
Additionally, it may be best to remove alpha sort all-together - civs will randomly order candidates when voting to deter just going with the default.
Here is a quick poll I created with options "one" through "five"

Theres a bit of weirdness with how its ordering candidates if you do it with a mouse instead of assigning a numerical value. It will assign someone the same score then alpha sort when the intention was to assign them a higher ranking than the other.
I would opt to turn off the alpha sort 9 so that they can be ordered how you'd want them to be.
https://user-images.githubusercontent.com/6500863/104216127-a84c2980-5407-11eb-8144-c0008753693d.mov
Additionally, it may be best to remove alpha sort all-together - civs will randomly order candidates when voting to deter just going with the default.
Here is a quick poll I created with options "one" through "five"

After setting an initial passcode, I was able to recast my vote without having to supply the passcode a second time.

After setting an initial passcode, I was able to recast my vote without having to supply the passcode a second time.

After setting an initial passcode, I was able to recast my vote without having to supply the passcode a second time.

Was the initial passcode empty? As I'm trying to recreate this I'm unable to vote if a nonempty passcode is set.
https://user-images.githubusercontent.com/73003119/104244608-c7d76680-5488-11eb-90ba-a377af9ea1e2.mov

After setting an initial passcode, I was able to recast my vote without having to supply the passcode a second time.

Was the initial passcode empty? As I'm trying to recreate this I'm unable to vote if a nonempty passcode is set.
https://user-images.githubusercontent.com/73003119/104244608-c7d76680-5488-11eb-90ba-a377af9ea1e2.mov

The initial passcode was not, I edited the reaponses then saved and could then edit them without a passcode

The initial passcode was not, I edited the reaponses then saved and could then edit them without a passcode

@nikhita how baffling is the reshuffling?
What's going on behind the scenes is that page randomly orders the candidates every time you visit it.  We don't want the candidates in a predetermined order, because that can influence how people vote.  Having that random order persist for each voter would require quite a bit of additional code ... so how bad is it?

@nikhita how baffling is the reshuffling?
What's going on behind the scenes is that page randomly orders the candidates every time you visit it.  We don't want the candidates in a predetermined order, because that can influence how people vote.  Having that random order persist for each voter would require quite a bit of additional code ... so how bad is it?

@nikhita how baffling is the reshuffling?

I noticed the shuffling too, and it was annoying.

Having that random order persist for each voter would require quite a bit of additional code ... so how bad is it?

You could make it stateless by passing the voter's username to candidates() and turning it into a value between 0 and 1 via a well-distributed hash

@nikhita how baffling is the reshuffling?

I noticed the shuffling too, and it was annoying.

Having that random order persist for each voter would require quite a bit of additional code ... so how bad is it?

You could make it stateless by passing the voter's username to candidates() and turning it into a value between 0 and 1 via a well-distributed hash

@jberkus @nikhita how about if we open candidates in a new tab? that why we don't reload the election and page, try it (I have updated the code) here

@jberkus @nikhita how about if we open candidates in a new tab? that why we don't reload the election and page, try it (I have updated the code) here


Add test for partial batch error

I'm trying to add an example for partial batch error but seem unable to get a classnotfound error. This PR demonstrates that by adding an integration test. Related to #150

Note this is the output I see:
ObjectGetResponse(id=abefd256-8574-442b-9293-9205193737ef, className=NotAPizza, creationTimeUnix=1669663909832, lastUpdateTimeUnix=1669663909832, properties={description=This pizza should throw a classNotFoundError, name=ClassError}, additional={interpretation={source=[{concept=not, occurrence=6.60155238E8, weight=0.13343915343284607}, {concept=pizza, occurrence=7256604.0, weight=0.5702277421951294}, {concept=this, occurrence=9.32425699E8, weight=0.10000000149011612}, {concept=pizza, occurrence=7256604.0, weight=0.5702277421951294}, {concept=should, occurrence=1.22833951E8, weight=0.2962839901447296}, {concept=throw, occurrence=6592399.0, weight=0.5795235633850098}]}}, vector=[.., vectorWeights=null, deprecations=null, result=ObjectsGetResponseAO2Result(errors=null, status=null))

Which shows it's creating succesfully and no error is thrown.

I think the CI is broken and failing irrelevant of my PR: https://app.travis-ci.com/github/semi-technologies/weaviate-java-client/jobs/589667727

Hi, I migrated the CI to github actions and the tests seem to run there without problems. Could you rebase on the lates master and retry?

rebased however looks like workflow needs approval from someone


Product details, description, and CSS

Added CSS that wraps the whole page
Created product description and details components

cool! great job!! really excited to see it on my end :)


Added missing blog posts

Added blog category to the blog posts that weren't showing on the blog page. We aren't really linking to them weirdly, they just get filtered out if they don't have the blog category.
One of them did have the blog category but it wasn't formatted correctly so it also wasn't showing on the site.
I learned that YAML arrays or collections can either be comma separated values between square brackets or on new lines using the dash space notation.
Collection notation:
categories:
  - blog
  - another-category
  - one-more-category

Optional collection notation:
categories: [blog, another-category, one-more-category]

Added quotations around one of the titles. Double quotes escape certain characters inside a string in YAML. In this case it escaped the colon in the title.

Added a space after one of the excerpt separators in a past post as it was rendering as no space between the previous and next sentence.

Updated the post date on a couple posts to match the file date/post url.

Fixes #154

@davidbhayes This one is good to go. Found the issue with the blog posts.

@schillingjerrid This is really helpful stuff to highlight. I had no idea that my YAML "headmatter" or whatever the silly name is was incorrectly formatted.

I think there's a separate task/idea I'd like to work on, which I'll make a new issue for: I'd like that our blog live at DOMAIN/blog not DOMAIN/category/blog 🤔


[Word Search] Can you please add Autofill Input functionality?

Extension
https://www.raycast.com/rishabswift/word-search
Description
Hi,
Thank you for creating the extension, I use it everyday.
I wonder if you could add a simple feature to automatically paste the currently selected word into the extension whenever you open word search (synonyms, antonyms etc). Without the need to select the word, copy the word, and then paste it to the extension.
Thank you
Who will benefit from this feature?
No response
Anything else?
No response

This may not be best for all users. It wouldn't exactly follow user expectations.
Checking when the text was copied would solve that problem, but that's not possible with the Raycast API at the moment.

Added in last update
@raycastbot close this issue


[bug] Updater for Windows rebooting without prompt (rare)

Describe the bug
If the install wizard thinks we're using some shared resource, and tauri is installing the update (passive mode), a reboot gets triggered automatically. This doesn't repro for me anymore, but still if there are other cases it may be worth fixing due to the invasiveness of rebooting. Perhaps check msiexec /norestart option or similar to figure out whether we can suppress this.
I ran into this due with msvcp140.dll which was in use by Firefox and several other apps. In my case it was a leftover from a previous tauri version. If you run into this issue, please clear your target dir first and make a fresh build.
Reproduction
No repro atm.
Expected behavior
Do not reboot.
Platform and versions
Windows

Stack trace
No response
Additional context
No response

I had a user who was pretty sure that the updater forced an automatic reboot (!) too, which sounds like what you're seeing.
I've also seen dialogs after install that say a reboot is required, but I've only seen it once or twice. I'm not sure what triggers them, and the times I've seen it, my app is able to launch fine without a reboot.

Description
I am experiencing this issue on a simple Vue/Tauri app I have built. I am using the standard updater configuration with the built-in dialogue and a static update file JSON format (docs).
On release of a new version of my app updater runs successfully and then reboots the Windows 10 machine without warning.
I have tried to include any relevant info I could think of, including the Windows 10 reboot Event details. Please let me know what else would help here...
Platform and versions
Windows 10
"vue-cli-plugin-tauri": "^1.0.0-rc.3"
"@tauri-apps/api": "^1.0.1"
"@tauri-apps/cli": "^1.0.2"
"@tauri-apps/tauri-forage": "^1.0.0-beta.2"

Additional context
Tauri.conf updater & access
"updater": {
      "active": true,
      "endpoints": [
        "https://gist.githubusercontent.com/wcrd/129adc10c53a1d5b03e686d215598554/raw"
      ],
      "dialog": true,
      "pubkey": "<KEY>"
    },
"allowlist": {
      "all": false,
      "fs": {
        "readFile": true
      },
      "dialog": {
        "open": true
      },
      "http": {
        "all": true,
        "scope": [
          "<STORE_URL>"
        ]
      }
    }

Windows 10 Event Log
Note I have replaced some user ids with "removed"
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
  <Provider Name="User32" Guid="{b0aa8734-56f7-41cc-b2f4-de228e98b946}" EventSourceName="User32" />
  <EventID Qualifiers="32768">1074</EventID>
  <Version>0</Version>
  <Level>4</Level>
  <Task>0</Task>
  <Opcode>0</Opcode>
  <Keywords>0x8080000000000000</Keywords>
  <TimeCreated SystemTime="2022-08-13T13:46:20.3528952Z" />
  <EventRecordID>141707</EventRecordID>
  <Correlation />
  <Execution ProcessID="952" ThreadID="5140" />
  <Channel>System</Channel>
  <Computer>_removed_</Computer>
  <Security UserID="_removed_" />
  </System>
<EventData>
  <Data Name="param1">msiexec.exe</Data>
  <Data Name="param2">_removed_</Data>
  <Data Name="param3">No title for this reason could be found</Data>
  <Data Name="param4">0x80030002</Data>
  <Data Name="param5">restart</Data>
  <Data Name="param6">The Windows Installer initiated a system restart to complete or continue the configuration of 'build-point-validator'.</Data>
  <Data Name="param7">NT AUTHORITY\SYSTEM</Data>
  </EventData>
  </Event>

@wcrd you're using the RC version of vue-cli-plugin-tauri, try updating to 1.0.0.

Also clear the src-tauri/target folder before recompiling.

Thanks @lucasfernog. Since updating and clearing the src/target folder the updater is no longer rebooting the machine in my testing. Added bonus of my installer file size being ~20% smaller. Will update this thread if I catch the issue again.
Thanks for your help!

Thanks for the feedback. I believe you had the same issue as @betamos so i'll close this one since there shouldn't be another case of this.


feat: add support for new Billing on Arbitrum

This will remove references to the Billing contract(s) on Polygon, and replace them with the new ones on Arbitrum Goerli and Arbitrum One.
For now it's targeting the scratch testnet deployment from https://github.com/edgeandnode/billing-contracts/pull/27 - I will replace that with the proper testnet deployment when it's done, and also add the Arbitrum One deployment when we have one.

I think, aside from that minor comment, everything looks good.
I would also consider waiting until L2 is merged and deployed for this code to be merged to main (basically, when the old code for billing is no longer relevant), since we can still deploy subgraphs for arbitrum without having to merge this to main, and keep the fact that it gets merged to main to signal that it's the code that it's gonna be used in production from that point onwards.


sync-pr-commit-title conflicts with clear-pr-merge-commit-message

Description
Self-explanatory:

How to replicate the issue + URL

Open a new PR like https://github.com/refined-github/refined-github/pull/6104
Click "Merge"
Change the PR title multiple times

Extension version
main, 22.10.26-main
Browser(s) used
Chrome

Kind of a big issue because sync-pr-commit-title is not disableable


ARTEMIS-2888 - ensure the pageStore uses the publish address rather t…

…han the subscriptions value which may have a wildcard
There is still something odd, the test works however I see an unexpected WARN:
[Thread-2 (activemq-netty-threads)] 17:54:02,694 WARN  [org.apache.activemq.artemis.core.server] AMQ222038: Starting paging on address 'A.*'; size is currently: 1,025 bytes; max-size-bytes: 50; global-size-bytes: 1,025
note the address is A.*!
I think that is wrong. more investigation needed. maybe folks more familiar will see what is going on.

lets talk about this when you can?

sure, there is also a test failure that I will investigate: org.apache.activemq.artemis.core.protocol.mqtt.MQTTRetainMessageManagerTest

I'm pretty sure this is related to both ARTEMIS-2859 and ARTEMIS-2768 as the size of the page-store underneath the address is being manipulated incorrectly when messages are sent & consumed.

@jbertram  can you have a quick peek over this to see if i missed anything on the xml attribute addition and doc

this LGTM...
@jbertram since you're reviewing this per Gary's request if you could merge it when done please?

@gtully, can you grab the tests from #3238 and add them here? Other than that it looks good.

@jbertram  thanks, that is a nice test. pulled it in and proves the point that this new page-store-name setting is needed even if paging does not kick in because the dispatch is always through cursors. updated the doc to reflect that.


Latvia country wide dataset

Ingestion of cc-by 4.0 latvia dataset.
Meta data is here with the license.
https://geometadati.viss.gov.lv/geoportal/rest/document?id={E7CD2078-0767-4686-B169-EDE511C23998}
The url updates every Monday with a new link using the current date so this will need to be periodically updated in the json to ingest fresh data. E.g. this week's url is https://grafws.kadastrs.lv/atom/ad/20241028/Address.gml.zip and next week will be https://grafws.kadastrs.lv/atom/ad/20241104/Address.gml.zip
Latest URL can be found here.
https://grafws.kadastrs.lv/atom/ad/atom_Address.xml

It doesn't seem like the street name is coming through. I wonder if it's just the sample?

@iandees Thats just the sample not containing any. Rural addresses, which make up most of the dataset, have a name rather than a street or house number. Street addresses are present in places like Riga though and I confirmed that they are in the dataset above.

Gotcha!


build warnings in `__Pyx_Import

Describe your issue
Building cython extensions with gcc 12 generates a wall of warnings
[7/8] Compiling C object scipy/linalg/_matfuncs_expm.cpython-310-x86_64-linux-gnu.so.p/meson-generated__matfuncs_expm.c.o
scipy/linalg/_matfuncs_expm.cpython-310-x86_64-linux-gnu.so.p/_matfuncs_expm.c: In function '__Pyx_Import':
scipy/linalg/_matfuncs_expm.cpython-310-x86_64-linux-gnu.so.p/_matfuncs_expm.c:48372:21: warning: the comparison will always evaluate as 'true' for the pointer operand in '(char *)"scipy.linalg._matfuncs_expm" + 5' must not be NULL [-Waddress]
48372 |             if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
      |                     ^~
[8/8] Linking target scipy/linalg/_matfuncs_expm.cpython-310-x86_64-linux-gnu.so
Build OK

This is with cython 3.0.2 and
$ gcc --version
gcc (conda-forge gcc 12.2.0-19) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Bringing this over from https://github.com/scipy/scipy/issues/19151 per @da-woods suggestion.

Compiling with clang 12.0 no warning was reported.

I can reproduce this with GCC 12.2.0 on Linux, and it's indeed very noise. I opened a PR with a fix.


migate from setup.py to pyproject.toml & bump tox

Looks good for me. Good job! Previous time a could not fix tox version issue but you did it!

I have seen this and requested your review because of this.


Feature: Statistics

A feature request.
Would love to see some form of statistics from this tracker.
I assume some HTTP endpoint (unrelated to if --http is true or false) return JSON would be best.
Stats that I would personally love to see:

Total Peers count (separated on IPv4 and IPv6 peers)
Total Seeds count (separated on IPv4 and IPv6 seeds)
Total Torrent count
Connections per min (separated on IPv4 and IPv6 connections)
Scrapes per min (separated on IPv4 and IPv6 Scrapes)

Just a thought, would be pretty awesome if the tracker operator can display these sort of stats graphed over time.

Agreed. I've been meaning to add a /stats endpoint with this type of info.

I've been working on this for BTorrent's tracker: https://tracker.btorrent.xyz/stats
What do you guys think?

Looks good to me. Want to send a PR? There should be a stats option to disable this, though.

I have cleaned up things a little bit more: https://tracker.btorrent.xyz/stats
Anything else before starting the PR?
@dtrackd @feross

@DiegoRBaquero Looks great to me. Send a PR!


Make rattr configurable in pyproject toml

Probably a good one for @BPHarris to review :)

Probably a good one for @BPHarris to review :)

Sure, we were discussing it already.

Okay, so I feel like before I start to make any tests (and waste a lot of time on writing tests for something that won't even be approved potentially), it would be useful if @BPHarris or somebody could have a look at this and check if this is a good general direction.
A few notes on the solution:
Since we're already using the 'argparse' library for cli args, I thought it would be useful if somehow we could reuse our ArgumentParser registries for parsing & validating our .toml cfg args.
Otherwise, we'd need to create some custom toml arg validation module or find some other kind of toml validator library. I thought those 2 options were suboptimal since making our own toml validator would need a lot of code and testing while some toml validator library would imply that we then have to maintain 2 separate ways of arg validation (for cli and .toml args) at the same time.
This is why I am kind of translating the .toml file into 'sys_argv' style list which can then be parsed and validated using our already defined and tested ArgumentParser (that is set up with the registries).
There was minor issue with the argparse library which is that the 'exit_on_error' param of ArgumentParser doesn't exist for Python versions 3.7 and 3.8. I created a custom/overwritten version of the class which takes this argument and throws an error instead of exiting when 'exit_on_error' is False. It is really important that 'ArgumentParser' is throwing an error, since we want to construct a different error message when error is coming .toml config parsing (otherwise we exit and ArgumentParser has full control over the error message).
.toml and cli arg merging rule:
So the way we merge toml and cli args is we take toml args first, we set every arg that has been set explicitly, everything else stays at default, then we overwrite everything with cli args except in case of lists (args with 'append' action) when we extend .toml args with cli args (so in case of --exclude-import if .toml config has  [a, b, c] and cli args are -F d -F e then the merged --exlude-imports are [a, b, c] + [d, e] = [a, b, c, d, e]. Let me know if you want a full overwrite here too.

@BPHarris  btw, how are you adding "filter_string" in terminal/cli call?

actually found a minor bug, let me look into it tomorrow or over the weekend.

@BPHarris btw, how are you adding "filter_string" in terminal/cli call?

We don't use it locally in the pipeline, but I did us it in testing like so: rattr ... my_target_file.py becomes rattr ... 'get_*' my_target_file.py. Is this what you mean?

@BPHarris btw, how are you adding "filter_string" in terminal/cli call?

We don't use it locally in the pipeline, but I did us it in testing like so: rattr ... my_target_file.py becomes rattr ... 'get_*' my_target_file.py. Is this what you mean?

thanks. I think we can go ahead then. ready for review.


Mocha not found by Visual Studio Debugger

Hello everybody, I'm trying to debug a set of Test for my javascript application using VSCode Debbugger, here is my configuration:
    {       "args": [         "-u",         "tdd",         "--timeout",         "999999",         "--colors",         "${workspaceFolder}/test"       ],       "internalConsoleOptions": "openOnSessionStart",       "name": "Mocha Tests",       "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",       "request": "launch",       "skipFiles": [         "<node_internals>/**"       ],       "type": "node"     }
Which is the default one provided by Visual Studio for mocha tests, unfortunately when I run the configuration I get:
Uncaught Error Error: Cannot find module 'PROJECT_PATH/node_modules/mocha/bin/_mocha'     at Module._resolveFilename (node:internal/modules/cjs/loader:933:15)     at Module._load (node:internal/modules/cjs/loader:778:27)     at executeUserEntryPoint (node:internal/modules/run_main:77:12)     at <anonymous> (node:internal/main/run_main_module:17:47)
I double checked and the folder indeed do exists and mocha is installed both globally and inside the project, as I type:
mocha --version
I correctly get : 10.0, Any hints?
System config:
macOS Big Sur
Intel i7
VsCode  1.68.0
Node v16.14.0
Mocha v10.0

Most probably the path you are using must be incorrect, I don't know. I'm closing this issue.


cannot change country after set state method and initial country selection

I am loving the package, but i ran into in issue while implementing the set state method. I was trying to keep the validation button disabled until user entered a correct phone number. so, i used set state method to know when the number was validated. but combining it with the initial value i set for a specific country, i cannot pick any other country.
package version
intl_phone_number_input: ^0.6.0
code snippet
I declared a boolean variable
bool numberIsValid = false;
and then i set and initial country and a set state method in the international phone number input widget
InternationalPhoneNumberInput(
initialValue: PhoneNumber(isoCode: "BD"),
onInputChanged: onInputChange,
autoFocus: true,
onInputValidated: (bool value) {
setState(() {
numberIsValid = value;
});
},
and on my validate button i did this
onPressed: numberIsValid
? () {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) =>
OtpPage(_fullPhoneNumber)));
}
: null),
if i delete either the inital value or the set state method, i can change countries again, but cannot change country when the code is like this

This PR should fix #170


Vendor mopidy-0.5.0.js into the source tree.

Addresses https://github.com/mopidy/mopidy/issues/1460

@dzony can you move this to the @mopidy please?

Fixed by #6.

Fixed by #6.


Trigger cleanup, once rendering has finished, in PDFThumbnailView.draw

This patch will help reduce memory usage, especially for longer documents, when the user scrolls around in the thumbnailView (in the sidebar).
Note how the PDFPageProxy.cleanup method will, assuming it's safe to do so, release main-thread resources associated with the page. These include things such as e.g. image data (which can be arbitrarily large), and also the operatorList (which can also be quite large).
Hence when pages are evicted from the PDFPageViewBuffer, on the BaseViewer-instance, the PDFPageView.destroy method is invoked which will (among other things) call PDFPageProxy.cleanup in the API.
However, looking at the PDFThumbnailViewer/PDFThumbnailView classes you'll notice that there's no attempt to ever call PDFPageProxy.cleanup, which implies that in certain circumstances we'll essentially keep all resources allocated permanently on the PDFPageProxy-instances in the API.
In particular, this happens when the users opens the sidebar and starts scrolling around in the thumbnails. Generally speaking you obviously need to keep all thumbnail images around, since otherwise the thumbnailView is useless, but there's still room for improvement here.
Please note that the case where a rendered page is used to create the thumbnail is (obviously) completely unaffected by the issues described above, and this rather only applies to thumbnails being explicitly rendered by the PDFThumbnailView.draw method.
For the latter case, we can fix these issues simply by calling PDFPageProxy.cleanup once rendering has finished. To prevent accidentally pulling the rug out from under PDFPageViewBuffer in the viewer, which expects data to be available, this required adding a couple of new methods[1] to enable checking that it's indeed safe to call PDFPageProxy.cleanup from the PDFThumbnailView.draw method.
It's really quite fascinating that no one has noticed this issue before, since it's been around since basically "forever".

[1] While it should be very rare for PDFThumbnailView.draw to be called for a pageView that's also in the PDFPageViewBuffer, given that pages are rendered before thumbnails and that the rendered page is used to create the thumbnail, it can still happen since rendering is asynchronous.
Furthermore, it's also possible for PDFThumbnailView.setImage to be disabled, in which case checking the PDFPageViewBuffer for active pageViews really matters.

/botio-linux preview

Interesting find; thanks!


More info in readme

After getting babili to do stuff, I found that I still had indentation whitespace and comments.  I kinda expected babili to be a one stop shop for minimizing, but it seems like this is not the case?  I noticed babel has options for compact, minified, and comments-- so I figured maybe that's how I am supposed to take care of these basic things.  I am still struggling with the whitespace removal (I expected compact to do it...)
Anyways, my point is, can we make it clear in the readme exactly what all needs to be done to get the kind of minimization that is shown in the REPL example?  This way people who expected a one stop shop for all that can at least see exactly what they are missing without having to go on an adventure.

I dug in deeper and found that I had a build step that was unexpectedly beautifying my code...  When I looked at the actual direct output from babel, it was nicely minified.  There does seem to be potential for confusion with babel options overlapping with features in babili, but that wasn't why I felt more info was necessary.


Custom function for sorting

I am trying to use a buffer line to show the current files I have marked using harpoon.
I want the buffers to be in the same order as in harpoon, is it possible to provide cokeline with a custom sorting function? In the code for buffers I only see functions for the default sort orders.

Currently you can only use the builtin functions. I should change that though, I'll add the ability to specify a function in the config as well.

That’s awesome! Thanks for such a quick fix!
You rock!
On Sun, 16 Jul 2023 at 18:18, Will Hopkins @.***> wrote:

Closed #144 https://github.com/willothy/nvim-cokeline/issues/144 as
completed via #145 https://github.com/willothy/nvim-cokeline/pull/145.
—
Reply to this email directly, view it on GitHub
https://github.com/willothy/nvim-cokeline/issues/144#event-9831400536,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATCHQBA2U6FRT2PV36KUEFLXQQH3RANCNFSM6AAAAAA2MAQIUA
.
You are receiving this because you authored the thread.Message ID:
@.***>

That’s awesome! Thanks for such a quick fix! You rock!

Thanks! Just happened at a convenient time and was pretty quick to implement. Btw I liked your idea so I implemented a Harpoon sorter:
local harpoon = require("harpoon.mark")
local function marknum(bufnr)
  local stat = harpoon.status(bufnr)
  -- harpoon.mark.status() returns "M%d" where %d is the index
  return tonumber(string.match(stat, "%d+"))
end

---@type a Buffer
---@type b Buffer
-- Use this in `buffers.new_buffers_position`
local function sorter(a, b)
  -- switch the a and b._valid_index to place non-harpoon buffers on the left
  -- side of the tabline - this puts them on the right.
  local ma = marknum(a)
  local mb = marknum(b)
  if ma == nil or mb == nil then
    ma = a._valid_index
    mb = b._valid_index
  end
  return ma < mb
end


Occasional SdkClientException when browsing the data from s3

When browsing the data from s3, sometimes a SdkClientException is triggered.
(So far this happened to me once, once to Yannick).
@igorpisarev @axtimwalde this might be related to n5-s3, has any of you seen this before or some idea about it?
java.util.concurrent.ExecutionException: com.amazonaws.SdkClientException: Data read has a different length than the expected: dataLength=200550; expectedLength=201861; includeSkipped=true; in.getClass()=class com.amazonaws.services.s3.AmazonS3Client$2; markedSupported=false; marked=0; resetSinceLastMarked=false; markCount=0; resetCount=0
	at net.imglib2.cache.ref.SoftRefLoaderCache.get(SoftRefLoaderCache.java:111)
	at net.imglib2.cache.util.LoaderCacheKeyAdapter.get(LoaderCacheKeyAdapter.java:20)
	at net.imglib2.cache.util.LoaderCacheAsCacheAdapter.get(LoaderCacheAsCacheAdapter.java:30)
	at net.imglib2.cache.ref.WeakRefVolatileCache.getBlocking(WeakRefVolatileCache.java:362)
	at net.imglib2.cache.ref.WeakRefVolatileCache.access$000(WeakRefVolatileCache.java:19)
	at net.imglib2.cache.ref.WeakRefVolatileCache$FetchEntry.call(WeakRefVolatileCache.java:409)
	at net.imglib2.cache.ref.WeakRefVolatileCache$FetchEntry.call(WeakRefVolatileCache.java:386)
	at net.imglib2.cache.queue.FetcherThreads$Fetcher.run(FetcherThreads.java:180)
Caused by: com.amazonaws.SdkClientException: Data read has a different length than the expected: dataLength=200550; expectedLength=201861; includeSkipped=true; in.getClass()=class com.amazonaws.services.s3.AmazonS3Client$2; markedSupported=false; marked=0; resetSinceLastMarked=false; markCount=0; resetCount=0
	at com.amazonaws.util.LengthCheckInputStream.checkLength(LengthCheckInputStream.java:151)
	at com.amazonaws.util.LengthCheckInputStream.read(LengthCheckInputStream.java:93)
	at com.amazonaws.internal.SdkFilterInputStream.read(SdkFilterInputStream.java:84)
	at com.amazonaws.services.s3.internal.S3AbortableInputStream.read(S3AbortableInputStream.java:99)
	at com.amazonaws.internal.SdkFilterInputStream.read(SdkFilterInputStream.java:84)
	at org.janelia.saalfeldlab.n5.s3.N5AmazonS3Reader$S3ObjectInputStreamDrain.read(N5AmazonS3Reader.java:88)
	at java.io.InputStream.read(InputStream.java:170)
	at org.apache.commons.compress.utils.CountingInputStream.read(CountingInputStream.java:51)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
	at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
	at java.io.FilterInputStream.read(FilterInputStream.java:107)
	at org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream.read(GzipCompressorInputStream.java:301)
	at java.io.DataInputStream.readFully(DataInputStream.java:195)
	at java.io.DataInputStream.readFully(DataInputStream.java:169)
	at org.janelia.saalfeldlab.n5.DefaultBlockReader.read(DefaultBlockReader.java:51)
	at org.janelia.saalfeldlab.n5.DefaultBlockReader.readBlock(DefaultBlockReader.java:87)
	at org.janelia.saalfeldlab.n5.s3.N5AmazonS3Reader.readBlock(N5AmazonS3Reader.java:235)
	at bdv.img.n5.N5GenericImageLoader$N5CacheArrayLoader.loadArray(N5GenericImageLoader.java:318)
	at bdv.img.cache.VolatileGlobalCellCache.lambda$createImg$1(VolatileGlobalCellCache.java:247)
	at net.imglib2.cache.util.LoaderCacheKeyAdapter.lambda$get$0(LoaderCacheKeyAdapter.java:22)
	at net.imglib2.cache.ref.SoftRefLoaderCache.get(SoftRefLoaderCache.java:101)
	... 7 more
	Suppressed: com.amazonaws.SdkClientException: Data read has a different length than the expected: dataLength=200550; expectedLength=201861; includeSkipped=true; in.getClass()=class com.amazonaws.services.s3.AmazonS3Client$2; markedSupported=false; marked=0; resetSinceLastMarked=false; markCount=0; resetCount=0
		at com.amazonaws.util.LengthCheckInputStream.checkLength(LengthCheckInputStream.java:151)
		at com.amazonaws.util.LengthCheckInputStream.read(LengthCheckInputStream.java:93)
		at com.amazonaws.internal.SdkFilterInputStream.read(SdkFilterInputStream.java:84)
		at com.amazonaws.services.s3.internal.S3AbortableInputStream.read(S3AbortableInputStream.java:99)
		at com.amazonaws.internal.SdkFilterInputStream.read(SdkFilterInputStream.java:84)
		at org.janelia.saalfeldlab.n5.s3.N5AmazonS3Reader$S3ObjectInputStreamDrain.read(N5AmazonS3Reader.java:88)
		at org.janelia.saalfeldlab.n5.s3.N5AmazonS3Reader$S3ObjectInputStreamDrain.close(N5AmazonS3Reader.java:95)
		at java.io.FilterInputStream.close(FilterInputStream.java:181)
		at java.io.BufferedInputStream.close(BufferedInputStream.java:483)
		at org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream.close(GzipCompressorInputStream.java:394)
		at org.janelia.saalfeldlab.n5.DefaultBlockReader.read(DefaultBlockReader.java:52)
		... 13 more
	Suppressed: com.amazonaws.SdkClientException: Data read has a different length than the expected: dataLength=200550; expectedLength=201861; includeSkipped=true; in.getClass()=class com.amazonaws.services.s3.AmazonS3Client$2; markedSupported=false; marked=0; resetSinceLastMarked=false; markCount=0; resetCount=0
		at com.amazonaws.util.LengthCheckInputStream.checkLength(LengthCheckInputStream.java:151)
		at com.amazonaws.util.LengthCheckInputStream.read(LengthCheckInputStream.java:93)
		at com.amazonaws.internal.SdkFilterInputStream.read(SdkFilterInputStream.java:84)
		at com.amazonaws.services.s3.internal.S3AbortableInputStream.read(S3AbortableInputStream.java:99)
		at com.amazonaws.internal.SdkFilterInputStream.read(SdkFilterInputStream.java:84)
		at org.janelia.saalfeldlab.n5.s3.N5AmazonS3Reader$S3ObjectInputStreamDrain.read(N5AmazonS3Reader.java:88)
		at org.janelia.saalfeldlab.n5.s3.N5AmazonS3Reader$S3ObjectInputStreamDrain.close(N5AmazonS3Reader.java:95)
		at org.janelia.saalfeldlab.n5.s3.N5AmazonS3Reader.readBlock(N5AmazonS3Reader.java:236)
		... 11 more

I haven't seen this exception yet, but it definitely looks related to n5-aws-s3. Do you only browse the data, or is it also being written to S3 at the same time? Also, does it consistently occur for the same block or is it rather random?

Do you only browse the data, or is it also being written to S3 at the same time?

Only browsing, there is no write to the s3 Dataset at the same time. (There might be writes to the same bucket though, but the datasets loaded are definitely static).

Also, does it consistently occur for the same block or is it rather random?

It seems rather random. We will do some more thorough testing in the next few days, maybe we'll be able to see some more systematic in this error then.

It may be also helpful for diagnosing to wrap N5AmazonS3Reader.readBlock() in try-catch and output the block grid index or S3 key when the exception occurs.

I think we will have to consider this, remote sources aren't as reliable as local sources.  Ideas how to deal with it?
[] Try again until successful (for a parameterizable number of times)
[] Load the broken data.
[] Return null .

I ran into this issue again, and it seems like this happened when I ran out of RAM on my notebook.
Might be just a coincidence though.

I haven't seen any "bad consequences" of this exception; i.e. the viewer state does not seem to be affected (much). Of course we should fix the general issue here, but I think in the meantime we can hide this exception from the users.
@tischi Do we have different log levels? Then this could be pushed to DEBUG.

Maybe I can add a try{} catch{} here:
at bdv.img.n5.N5GenericImageLoader$N5CacheArrayLoader.loadArray(N5GenericImageLoader.java:318)``

@constantinpape
Is this still an issue?

No, I haven't seen this in a while, gonna close.


SteamVR_Action_Vibration: secondsFromNow seems to have no effect, haptics always start immediately

Hi all,
I am trying to generate controller haptics at predefined time offsets using the secondsFromNow argument of SteamVR_Action_Vibration.Execute(). However, haptics are always triggered immediately regardless of the value passed for this argument (and all code examples I could find online use 0f for this value anyway). The remaining arguments work as expected.
Am I doing something wrong, is this not the intended use of this parameter? I'd appreciate any pointers. Thanks!
Minimal example:
// AudioSource
beep.PlayOneShot(start_beep, 1f);

// SteamVR_Action_Vibration controllerHaptics is assigned to \actions\default\out\haptics in Inspector
controllerHaptics.Execute(latency, duration, frequency, intensity, SteamVR_Input_Sources.RightHand);

Expected result:
Haptics triggers ~latency seconds after the sound plays.
Actual result:
Haptics and sound always occur together regardless of latency, tested values in range 0.01f - 10f.
Tested versions:

SteamVR Unity plugin v2.7.3 (sdk 1.14.15)
SteamVR 1.18.7 with Unity 2019.4.24f1
SteamVR 1.19.5 with Unity 2019.4.16f1 and 2021.1.7f1,
Tried both legacy VR and XR plugin mode for 2019.4.16f1
Tested with Vive (classic and Pro) and Index controllers

Same issue. Seems like this argument doesnt do anything. Had to make a workaround with async/await

Looks like this is related to https://github.com/ValveSoftware/openvr/issues/1101.

Considering, issue still opened after 2 years, it will never be fixed. So we must make workaround with async/await or coroutines
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Valve.VR;

[System.Serializable]
public class Vibrator
{
    public SteamVR_Action_Vibration action;
    public SteamVR_Input_Sources handType;
    [Space]
    public float secondFromNowOn = 0f;
    public float durationSeconds = 0f;
    [Range(0, 320)]
    public float frequency = 0f;
    [Range(0, 1)]
    public float amplitude = 0f;

    public async void Execute()
    {
        if (amplitude > 0 && frequency > 0 && durationSeconds > 0)
        {
            if (secondFromNowOn > 0)
                await System.Threading.Tasks.Task.Delay((int)(secondFromNowOn * 1000));
            action.Execute(
                secondFromNowOn,
                durationSeconds,
                frequency,
                amplitude * SettingsManager.Instance.data.vibrationPower,
                handType
            );
        }
    }
}


Fix compile errors with MSVC 2022

The latest windows compiler ships with stdatomic.h, but does not yet allow
to build C code with it which results in an error. Workaround this for
now by tweaking the detection logic.

Nevermind, I see this has already been addressed in main.


add docs for app_configurations

Purpose
Document App Configurations
Changes
Add app configurations docs.
Caveats
the urls have localhost:3000, so I'll need to update that once everything else is settled.
Additional helpful information

@thebenrob mind approving again?
I updated the links to be reactor.adobe.io instead of blacksmith:3000, and added the changes we discussed in the overview.
... or maybe the one review was enough.


Bug 1901535: Remove the ManagingOAuthAPIServer field from authentication.operator API

/assign @p0lyn0mial

/lgtm
https://github.com/openshift/enhancements/blob/master/enhancements/etcd/etcd-encryption-for-separate-oauth-apis.md has been fully implemented. We can start clearing up.