feat: Allow setting the working directory for plugin invocation

Hello folks!
I really wanted to set up Dagster with a test command that runs pytest on the project:
utilities:
  - name: dagster
    namespace: dagster
    pip_url: -e orchestrate
    executable: dagster
    settings:
    - name: home
      env: DAGSTER_HOME
    config:
      home: $MELTANO_PROJECT_ROOT/orchestrate
    commands:
      scheduler:
        args: run -w $DAGSTER_HOME/workspace.yaml
        executable: dagster-daemon
      ui:
        args: -w $DAGSTER_HOME/workspace.yaml -h <IP_ADDRESS>
        executable: dagit
      test:
        args: --rootdir=$DAGSTER_HOME
        executable: pytest

However, despite setting --rootdir in the pytest args, pytest insisted on picking up tests and conftest.py files from elsewhere in our project, like transforms/dbt_modules.
I figured it made sense to allow plugins and commands to define a working directory to be invoked in, instead of the current working directory:
utilities:
  - name: dagster
    namespace: dagster
    pip_url: -e orchestrate
    executable: dagster
    cwd: orchestrate # also supports variable expansion, e.g. $MELTANO_PROJECT_ROOT/orchestrate although that's redundant
    commands:
      test:
        executable: pytest
        cwd: orchestrate/tests # commands can override the plugin config

This simplified DbtPlugin, as it no longer needs a custom PluginInvoker, it just needs to set the cwd to the project directory. This could be further simplified if we defined it in the discovery configuration, but to avoid backward compatibility issues I explicitly implemented the method.
This could use some docs, but wanted to get y'alls thoughts first.

👍 I like the idea, a cwd option for plugins makes a lot of sense. Especially in the context of enabling a robust external plugin architecture (e.g. https://github.com/meltano/meltano/issues/6130 which leads to https://github.com/meltano/meltano/issues/6434 , https://github.com/meltano/meltano/issues/6398). Feels like this could end up being pretty useful.
@aaronsteers curious how you feel about this ?

👍 I like the idea, a cwd option for plugins makes a lot of sense. Especially in the context of enabling a robust external plugin architecture (e.g. #6130 which leads to #6434 , #6398). Feels like this could end up being pretty useful.
@aaronsteers curious how you feel about this ?

@rabidaudio - Love this direction and I agree the feature can be very helpful. I may want to hold while we settle the spec here but hopefully not leaving you in a holding pattern for long.
A few thoughts come to mind:

cwd is not an obvious acronym for non-*nix folks out there. I wonder if something like workdir: __ would be more readable for a broader audience. Inspired by Docker's naming of a similar concept: https://www.educative.io/answers/what-is-the-workdir-command-in-docker
dbt plugins are doing something similar today with the project_dir config option, which I think at least in theory could be replaced by this new feature. Thoughts? Example here: https://github.com/meltano/hub/blob/main/_data/meltano/transformers/dbt-snowflake/dbt-labs.yml#L17-L19
We should plan ahead for users to override this and make sure we implement in a way that's as easy as possible to debug and not feel too magical. Like pip_url, we may want to this to be one of the settings that auto-registers itself into meltano.yml during the add process, and is therefor easy and intuitive for users to override if/when they start moving things around.

@pandemicsyn, @rabidaudio, @tayloramurphy, @pandemicsyn - Penny for your thoughts. Thanks! 😄

cwd is not an obvious acronym for non-*nix folks out there. I wonder if something like workdir: __ would be more readable for a broader audience.

I agree, I think I like workdir better 👍

@aaronsteers @rabidaudio I like this proposal and excited about the PR. Responding to AJ's points:

Agreed, workdir is better than cwd.
this makes me think about #6130 as well - seems like the plugin specific behavior should be there and not in Meltano
Agreed also that users should be able to override.

I don't agree that it should auto-register itself in meltano.yml during the add process. Likely the default behavior should stay the same but we should document in multiple places about the availability of this plugin-level property.

Side note, our documentation on plugin properties versus config versus settings versus extras is a bit confusing. The addition of a workdir property can actually be thought of as a plugin extra that happens to apply to all plugins (aka a property!). While testing this, I also realized it's not possible to know what environment variables Meltano will be injecting from the plugin-level based on the property names https://docs.meltano.com/guide/configuration#available-environment-variables I'll make an issue around this.

All that said, I agree with the spec that users should be able to set workdir at the plugin level and override it at the command level. This value should also be available to users at MELTANO_<PLUGIN_TYPE>_WORKDIR based on the documentation in https://docs.meltano.com/guide/configuration#available-environment-variables.
Question: Would env var expansion in the commands work as well such that:
utilities:
  - name: dagster
    namespace: dagster
    pip_url: -e orchestrate
    executable: dagster
    workdir: orchestrate # also supports variable expansion, e.g. $MELTANO_PROJECT_ROOT/orchestrate although that's redundant
    commands:
      test:
        executable: pytest
        workdir: $MELTANO_UTILITY_WORKDIR/tests

would evaluate to $MELTANO_PROJECT_ROOT/orchestrate/tests for the test command?
Perhaps that's a separate, larger issue on if and how commands are dealing with environment variables.

@tayloramurphy - Thanks! Yeah, sounds like we are agreed on most points. A couple thoughts on the points you raised:

this makes me think about https://github.com/meltano/meltano/issues/6130 as well - seems like the plugin specific behavior should be there and not in Meltano

Agreed. 👍 From the diff here, I think we are moving in the right direction, which will helps us towards #6130 because it removes/de-emphasizes the custom dbt behavior in favor of this more generic approach.

I don't agree that it should auto-register itself in meltano.yml during the add process.

To confirm, all I meant here is that if the remote plugin definition (on the hub, for instance) is defining a custom workdir, we should try to make that custom workdir as transparent and easy to override as possible for an end user, so they are not confused when the move a directory around and everything breaks. If that is the case (that the plugin defaults to a specific subdirectory) then I think it is a good idea to bring that into the meltano.yml file so they can see+modify what was provided to them by the plugin developer.
For plugins which do not require a custom workdir by default, there's no reason to bring that into the meltano.yml file by default. Also, in a first iteration, I'd be fine with either behavior. I do think bringing it into meltano.yml is probably the better long-term path because it is makes everything obvious and easy-to-debug.

This value should also be available to users at MELTANO_<PLUGIN_TYPE>_WORKDIR based on the documentation in docs.meltano.com/guide/configuration#available-environment-variables.

In that case (and if resolution order permits it), dbt's project_dir setting definition might actually just be declared with a default value: $MELTANO_UTILITY_WORKDIR. I had not considered this previously, and you bring up a very good point here and in your comment re env var expansion.
Optional:
For extra stability to the plugin developer, we might consider also populating workdir (and it's env var) with the value of MELTANO_PROJECT_ROOT if no explicit workdir is provided. This would allow the plugin to 'not care' how it is getting its workdir context, but trust it is there for referencing regardless regardless of how/if it was overridden.
@rabidaudio - No need to tackle everything in the above in a first iteration but I'm curious your thoughts on these points. For my part, the only things I see as strictly required are (1) agreement on the field name (workdir vs cwd or alternatives) and (2) enough exploration on behaviors like env var expansion that we can provide docs that tell users what to expect.
Have you seen the new process regarding integration tests? Adding this functionality to an existing integration test, or writing a new one would be super helpful. Let us know if you feel comfortable adding yourself or if you'd like assist from a team member on that.

To confirm, all I meant here is that if the remote plugin definition (on the hub, for instance) is defining a custom workdir, we should try to make that custom workdir as transparent and easy to override as possible for an end user, so they are not confused when move a directory breaks the functionality.

Ah ok, makes sense 👍

For extra stability to the plugin developer, we might consider also populating workdir (and it's env var) with the value of MELTANO_PROJECT_ROOT if no explicit workdir is provided.

I quite like that! Basically just have it as a default property of every plugin than can be overridden.  Nice idea @aaronsteers 😄

This value should also be available to users at MELTANO_<PLUGIN_TYPE>_WORKDIR based on the documentation in https://docs.meltano.com/guide/configuration#available-environment-variables.

In that case (and if resolution order permits it), dbt's project_dir setting definition might actually just be declared with a default value: $MELTANO_UTILITY_WORKDIR.

@tayloramurphy @aaronsteers
MELTANO_<PLUGIN_TYPE>__WORKDIR (note the double underscores) works out of the box, although currently it's not expanded to an absolute path. Expanding it and changing the name should be easy to include. After that the pytest example should work as written!
My thought was doing things like workdir: $MELTANO_TRANSFORM_PROJECT_DIR but I like the other way better, where the setting is derived from the workdir setting rather than the other way around.

For extra stability to the plugin developer, we might consider also populating workdir (and it's env var) with the value of MELTANO_PROJECT_ROOT if no explicit workdir is provided.

I quite like that! Basically just have it as a default property of every plugin than can be overridden.

I like this two. Two concerns:

It's probably a breaking change, as currently all plugins execute in the shell working directory by default, not the project root directory
It complicates the override for DbtInvoker, as it's hard to tell if the value has been overridden

For extra stability to the plugin developer, we might consider also populating workdir (and it's env var) with the value of MELTANO_PROJECT_ROOT if no explicit workdir is provided.

I quite like that! Basically just have it as a default property of every plugin than can be overridden.

I like this too. Two concerns:

It's probably a breaking change, as currently all plugins execute in the shell working directory by default, not the project root directory
It complicates the override for DbtInvoker, as it's hard to tell if the value has been overridden

Thanks for calling this out! It's a really good point and based on your points above, I withdraw my suggestion :) - specifically on the basis that the working directory will often need to match the shell directory. For example, if invoking sqlfluff on a specific file in the shell's directory (e.g. cd transforms/marketing && meltano invoke sqlfluff:fix ./my_table.sql) we would not want the shell's own working directory to get lost in that case.
I'll think on this a bit more, but per the above, it makes sense to only have an explicit workdir if the plugin explicitly defines it.

@aaronsteers @rabidaudio what's the status on this? Keen to get it in 😄

@aaronsteers @rabidaudio what's the status on this? Keen to get it in 😄

@tayloramurphy  AFAIK this ready to go. We may want to add some documentation, not sure where is best for that as it's more for plugin creators than end users.

@rabidaudio it might be good to update the JSON schema in schema/meltano.schema.json to know about this field.

@rabidaudio, @tayloramurphy - It looks like we still need a docs entry and some CI tests are passing.

[ ] Docs entry for new workdir config. (Perhaps in the plugin reference page?)
[ ] CI tests passing or signoff. (I see dependency review, which we can ignore, but pre-commit tests should pass and we should make a call on if the coverage alarm can be ignored or if we should add additional tests.)
[ ] Merge conflicts to resolve. (Optionally we can wait for the above to resolve so as not to have to go through multiple merge conflict passes.)

@cjohnhanson - If any of the above need assist, would you be able to jump in?

@cjohnhanson - As discussed, feel free to jump in on the above to get this over the line - as time permits.


minor updates/fixes for consistency with scikit-image 0.22

This MR does not add any new features. It just has minor fixes ported from scikit-image 0.22. Most changed lines are from moving additional modules to use __init__.pyi files as for upstream scikit-image.
Regarding introduction of py.typed, see discussion on the scikit-image repo. The TLDR version is that it enables VS CODE (and potentially other IDEs) to use the .pyi files for intellisense capabilities. Those using mypy with strict type checking, may have to add an exclusion like the following to disable warnings about most of the cuCIM API which does not currently use type hints:
[tool.mypy]
strict = true
untyped_calls_exclude = [
    "cucim"
]

It looks like the style checks are failing on CI. The single quotes need to be replaced with double quotes. There are also some long lines that need to be wrapped
Could you please run black @grlee77 ?

It looks like we are seeing some test failures on CI:
FAILED src/cucim/skimage/measure/tests/test_regionprops.py::test_extra_properties_table - IndexError: list index out of range
FAILED src/cucim/skimage/filters/tests/test_thresholding.py::test_triangle_uniform_images[uint8] - ValueError: zero-size array to reduction operation CUPY_CUB_ARGMAX which has no identity
FAILED src/cucim/skimage/filters/tests/test_thresholding.py::test_triangle_uniform_images[int16] - ValueError: zero-size array to reduction operation CUPY_CUB_ARGMAX which has no identity
FAILED src/cucim/skimage/filters/tests/test_thresholding.py::test_triangle_uniform_images[float16] - ValueError: zero-size array to reduction operation CUPY_CUB_ARGMAX which has no identity
FAILED src/cucim/skimage/filters/tests/test_thresholding.py::test_triangle_uniform_images[float32] - ValueError: zero-size array to reduction operation CUPY_CUB_ARGMAX which has no identity

Maybe this is related to CuPy 13 (or perhaps a NumPy change)

The regionprops test failure was a due to a couple missing entries in PROPS and should be fixed now.
I didn't see that jitify error related to std::is_signed when trying locally with pip packages, but conda seems to have a problem again with that now.

As pointed out by Greg offline, we need to update this line and run rapids-dependency-file-generator
https://github.com/rapidsai/cucim/blob/bf5a6f765de64b522ac060f92e24c52f69834c56/dependencies.yaml#L226

Do we need PyWavelets as a (test) dependency?
Seeing these errors on CI:
FAILED python/cucim/src/cucim/skimage/restoration/tests/test_j_invariant.py::test_denoise_invariant_color[float16] - ImportError: PyWavelets is not installed. Please ensure it is installed in order to use this function.
FAILED python/cucim/src/cucim/skimage/restoration/tests/test_j_invariant.py::test_denoise_invariant_color[float32] - ImportError: PyWavelets is not installed. Please ensure it is installed in order to use this function.
FAILED python/cucim/src/cucim/skimage/restoration/tests/test_j_invariant.py::test_denoise_invariant_color[float64] - ImportError: PyWavelets is not installed. Please ensure it is installed in order to use this function.
FAILED python/cucim/src/cucim/skimage/restoration/tests/test_j_invariant.py::test_denoise_invariant_3d - ImportError: PyWavelets is not installed. Please ensure it is installed in order to use this function.
FAILED python/cucim/src/cucim/skimage/restoration/tests/test_j_invariant.py::test_calibrate_denoiser_extra_output - ImportError: PyWavelets is not installed. Please ensure it is installed in order to use this function.
FAILED python/cucim/src/cucim/skimage/restoration/tests/test_j_invariant.py::test_calibrate_denoiser - ImportError: PyWavelets is not installed. Please ensure it is installed in order to use this function.
FAILED python/cucim/src/cucim/skimage/restoration/tests/test_j_invariant.py::test_input_image_not_modified - ImportError: PyWavelets is not installed. Please ensure it is installed in order to use this function.

Looks like this is used as part of denoise_wavelet, which we are using in these tests
As pointed out by Greg offline, upstream appears to have relaxed the PyWavelets dependency in 0.22.0 with PR ( https://github.com/scikit-image/scikit-image/pull/7156 ), which is why the dependency is now missing

/merge

Thanks Greg! 🙏


Different performance between RNN and CNN

When I run the classical  model Seq2seq in my machine with this program, I found that the program consits of RNN structures with the same parameters is far slower than NVIDIA platform even the Float32 performance of the Radeon 7 is greater than 1080ti. But the perfromance is proved in CNN operations that the Radeon 7 is faster than 1080ti in official pytorch examples mnist. Here is the comparation table:

Radeon 7
1080ti

Epoch
6
6

Concurrency platform
ROCm 2.9
CUDA 10.0

Deep learning software
MIOpen 2.1
cuDNN 7.5

Pytorch
1.3.1
1.3.1

Seq2seq time
19min
10min

Mnist time
2min39s
3min59s

I also try myself experiments that consist more complex RNN structure and large datasets. The program costs 2 hours per epoch in 1080ti and 9 hours per epoch in Radeon 7 with the same parameters. Of course, I am happy to see that others can give more test in more complex RNN and CNN models.
In nvidia cuDNN official website, we can see the performance in sequence model achieve a large increment between the different version of cuDNN. Should our MIOpen library need more optimization in RNN operation?
More discussion can be found in this issue. link

@IceFlowerLi This is a duplicate of another issue you filed. I am closing this one; lets continue our discussion on the PyTorch repo.


DeleteThemeFilesMessage messanges are not processed

Description:
When theme:compile is executed, DeleteThemeFilesMessage messages are written to the messenger_messages table, but are never processed there.
Environment:

SW <IP_ADDRESS> demodata

Steps to reproduce:

Run bin/console theme:compile
Start a worker

Expected result:

DeleteThemeFilesMessage are processed in messenger_messages

Actual result:

Messages seem to stay stuck

[public] Automated response: This issue is linked to the internal issue https://shopware.atlassian.net/browse/NEXT-36857.
[created from NEXT-36857, comment 486662]


Question: Possible onMouseOver event handler for Legend Items?

Hi,
It will be really useful if the onMouseOver event handler for Legend Items is provided, in addition to the existing onClick event. If not, I may need to play around with assigning 'ref's on the legend component, not sure if that's going to play out well or not. Any suggestion on workaround?
Thanks!

sorry, didn't see #539!


feat: networked prefab attribute

This pr adds a new attribute called NetworkedPrefab that prompts the user to fix their prefab if it doesn't have a network identity and/or is not registered on a client object manager.

The property drawer has both an IMGUI and UI Toolkit equivariant to support Unity 2022.2 and newer.
When the fix button is pressed, it first adds a network identity to the target object, finds all the client object managers in the scene, and adds the object to the spawn list. If it doesn't find any objects in the scene, it searches the project for prefabs and adds them there directly instead.
There is no prompt asking the user what they want as it can result in way too many options, for now, I just assume the situation and does what I believe is best, which I described above.

included here https://github.com/MirageNet/Mirage/pull/1133


Preparation steps for integrating Python util code in our CI

@beckerhe Please have another look, thank you!

Ok, cool. Looks good. I think the next step is to actually enable it for the CI. For this you have to set the run_python_test option in one of the profiles that run on the CI. I suggest we use clang7_relwithdebinfo (third_party/conan/configs/linux/profiles/clang7_relwithdebinfo):
[options]
OrbitProfiler:run_python_tests=True

The options-section should aready be there but empty. So you just have to add the line below.

Ok, cool. Looks good. I think the next step is to actually enable it for the CI. For this you have to set the run_python_test option in one of the profiles that run on the CI. I suggest we use clang7_relwithdebinfo (third_party/conan/configs/linux/profiles/clang7_relwithdebinfo):
[options]
OrbitProfiler:run_python_tests=True

The options-section should aready be there but empty. So you just have to add the line below.

My intention was to add this in a follow-up PR. Then it's easier to revert enabling the CI without losing the changes in the current PR. WDYT?

Ok, cool. Looks good. I think the next step is to actually enable it for the CI. For this you have to set the run_python_test option in one of the profiles that run on the CI. I suggest we use clang7_relwithdebinfo (third_party/conan/configs/linux/profiles/clang7_relwithdebinfo):
[options]
OrbitProfiler:run_python_tests=True

The options-section should aready be there but empty. So you just have to add the line below.

My intention was to add this in a follow-up PR. Then it's easier to revert enabling the CI without losing the changes in the current PR. WDYT?

Sure. That's also fine with me.


[PROC-5] - Get supplier details from outside source

Unfortunately SEAP does not offer much in the way of details for suppliers. The most we can get is something like this. This doesn't show the number of employees for example - which is very important when it comes to detecting fraudulent contracts.
There are many websites which offer much more details like "founding year"

site 1
site 2
site 3

All 3 have a good search by fiscal number

Crawl all suppliers and fetch additional details from one of these websites and fill a "supplierDetails" collection with all details from "supplier" plus any additional relevant information.
Document the additional information you are fetching here.
Actually, this might be an easier to use API: https://www.lista-firme-romania.ro/ro/

Something like this would be most useful but unfortunately, it's hard to scrape

This is where most companies take the data

Optained from Open-API!


add padding to the hero section

Description
we can use some padding or margin for the hero section content  https://meshery.io/brand

Expected Behavior
give margin and padding to the hero section content and manage the image height in smaller devices
Enviroment:

OS: Mac Linux Windows
Browser: Chrome Safari Firefox
Device: Desktop Mobile

Contributor Guides and Handbook
The meshery.io website uses Jekyll and GitHub Pages. Site content is found under the master branch.

📚 See the Contributing to Meshery.io Website section of the readme.md and other contributing instructions, too.
🎨 Wireframes and designs for Meshery UI in Figma (open invite)
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack

Can i work on this issue ?

Hey @preyanshu
I would like to work on this issue

@jaysomani, this issue is all yours now! 🎉 Thanks for stepping up!
@mannika763 Thanks for asking... we assign tasks chronologically to ensure fairness. Don't worry, more opportunities are on the way! 👍😊


Remove old analytics JavaScript

This analytics was added for the performance platform to create an
engagement score of pages. They have since stopped using these events
and they are no longer needed. Remove them so they stop sending lots of
events to Google Analytics.
Tidy up the function in tracking.js which is still needed so that it
is clearer as to what is going on.

This should enable us to remove GDS_successEvents and GDS_analyticsTokens from the cookie page as there will no longer be any code setting or getting those cookies.

So much :red_circle:

This is brilliant, thanks @edds. We'll provide :cake: at some point.

This should enable us to remove GDS_successEvents and GDS_analyticsTokens from the cookie page

I've opened a ticket to do that because the expiration date for those cookies has passed.

:heart: :+1:


Multiarch image using manifest-tool

Description
Not a bug, but a first idea after trying this on Win2016.
It would be great to have this as one of the first multiarch Docker imags on Docker Hub. Using the manifest-tool https://github.com/estesp/manifest-tool it should be possible to make it easier for people to run the portainer container on Linux or Windows without using a special tag on Windows.
See also https://github.com/docker-library/hello-world/pull/22 for some details and discussion putting a Go binary into a Docker image for different platforms.
Technical details:

Portainer version: 1.9.3
Target Docker version (the host/cluster you manage): Windows 2016
Target Swarm version (if applicable):
Platform (windows/linux): Windows
Browser:

I do love the idea of a multiarch Docker image ! I never played with manifest nor manifests list objects.
I'll play with manifest at some point. PR's are accepted too :)

Experimental multiarch support (linux amd64, linux arm, linux arm64 and windows amd64) available via the Docker image portainer/portainer:multiarch. @StefanScherer @glennsarti @paulkling @adomenech73 keen to try this out?
You should just be able to run it by using the image portainer/portainer:multiarch and it should automatically detect your platform and use the associated image.

Glad to confirm that this works fine as expected on arm64.
Nice work!!

@deviantony That is really great. The manifest file really looks simple. Can it be pushed before the platform specific images exist? I haven't used the manifest tool, yet, but I'll have a close look at it.
So for each released version there should be such a manifest.
I can confirm that it works on my Raspberry Pi.
On Windows I get this error message:
PS C:\Windows\system32> docker logs portainer
panic: runtime error: slice bounds out of range

goroutine 1 [running]:
panic(0x7c69e0, 0xc042012020)
        /usr/local/go/src/runtime/panic.go:500 +0x1af
syscall.Readlink(0x8374d1, 0x7, 0xc04213ce80, 0x80, 0x80, 0x0, 0x0, 0x0)
        /usr/local/go/src/syscall/syscall_windows.go:1031 +0x3a9
os.Readlink(0x8374d1, 0x7, 0xa17a40, 0xc04202daa0, 0x0, 0x0)
        /usr/local/go/src/os/file_posix.go:21 +0x94
os.Stat(0x8374d1, 0x7, 0xc04218bd38, 0x41048f, 0x20, 0x7e0b60)
        /usr/local/go/src/os/stat_windows.go:72 +0x9e
github.com/portainer/portainer/file.createDirectoryIfNotExist(0x8374d1, 0x7, 0x1ed, 0xc042209068, 0x7)
        /go/src/github.com/portainer/portainer/file/file.go:115 +0x40
github.com/portainer/portainer/file.NewService(0x8374d1, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0)
        /go/src/github.com/portainer/portainer/file/file.go:37 +0x121
main.main()
        /src/cmd/portainer/main.go:32 +0x177

This seems related to 1.11.1, it worked with 1.11.0. I'm using run-portainer.ps1 and just replaced the tag windows-1.11.0 with multiarch. The Windows image will be downloaded, and C:\certs and C:\data are mounted in the container. But it crashes.
I think it is related to Golang and mounted volumes https://github.com/docker/docker/issues/27537#issuecomment-270470997 and it seems to be the C:\data directory as this is the last file access I can monitor with procmon.exe.

Seems #452 checks the dataStorePath which is the volume mount point/reparse point: https://github.com/portainer/portainer/pull/452/files#diff-647805a39ad920d1ac55c84e0ef7112cR37

Now I remember. The Docker registry.exe has the same problem. For Windows you have to build with Go 1.8 beta as it contains a fix for https://github.com/golang/go/issues/15978
There is golang:1.8-nanoserver for example.

Can it be pushed before the platform specific images exist? I haven't used the manifest tool, yet, but I'll have a close look at it.

Unfortunately not, the images need to exist on the registry first.
About the panic issue, this is a bug in 1.11.1 on Windows, it has been raised while testing #459. Thanks for pointing out the issue, I'll try to build another version using golang 1.8 soon !

Hope it helps with Go 1.8, as building Go sources on a volume mount still does not work. Volume mount points / reparse points are challenging in Windows ;-)

@StefanScherer see my update in #474 as I'm trying to solve this issue, it only happens when using C:\data as the value for the data directory.

This will be available starting from 1.11.2. I'll close the issue after the release & build is pushed on Dockerhub.

portainer/portainer:latest and portainer/portainer:1.11.2 are the two first multiarch images for Portainer with the following arch support:

linux amd64
linux arm
linux arm64
windows amd64

And they're now live on the Dockerhub :)

Great. Updated my demo scenarios in https://github.com/StefanScherer/docker-windows-box/commit/bb9cd52a9aa410f9ba7094e4380e69d0c20c8869

@StefanScherer would you be able to test the portainer/portainer image on Docker on Windows ? Had some troubles running it on one instance and I'd like to confirm that it's related to my instance.

@deviantony I also have trouble with the mounted volumes.

The problem seems to be the folder C:\ProgramData\portainer\certs, running the container only with -v $env:USERPROFILE\.docker:C:\ProgramData\portainer\certs already shows the error.
PS C:\Users\stefan\code\docker-windows-box\scripts>  docker run -d -p 8000:9000 -v $env:USERPROFILE\.docker:C:\ProgramData\portainer\certs --entrypoint powershell portainer/portainer
b1c3ac00ca939f433bfe03920a51254470038eefbde60117253e478f6c2f3e6e
C:\Program Files\docker\docker.exe: Error response from daemon: container b1c3ac00ca939f433bfe03920a51254470038eefbde60117253e478f6c2f3e6e encountered an error during CreateContainer: failure in a Window
s system call: This application does not support the current operation on symbolic links. (0x5b8) extra info: {"SystemType":"Container","Name":"b1c3ac00ca939f433bfe03920a51254470038eefbde60117253e478f6c2
f3e6e","Owner":"docker","IsDummy":false,"VolumePath":"\\\\?\\Volume{05f63cee-ddbc-11e6-b2fe-000c291c76e6}","IgnoreFlushesDuringBoot":true,"LayerFolderPath":"C:\\ProgramData\\docker\\windowsfilter\\b1c3ac
00ca939f433bfe03920a51254470038eefbde60117253e478f6c2f3e6e","Layers":[{"ID":"8978067a-08a7-54cf-bca4-7fdcdc7cbb9e","Path":"C:\\ProgramData\\docker\\windowsfilter\\8dcbe9ea4671db4fb6c3e6af5651d9f1f9d0c90b
37e84785a8873cd1c6a5ee9f"},{"ID":"74af399b-a361-5b5b-a2da-c3db4c1bd2cb","Path":"C:\\ProgramData\\docker\\windowsfilter\\af96c342ff8aa4fba8b947b5053f3e04420b1838b0e0cea4452f6d5ac28f729a"},{"ID":"73d9f35b-
b973-50ab-b032-fd39cbd8b4a1","Path":"C:\\ProgramData\\docker\\windowsfilter\\2d3fe5aa81b9851c0dfbadcecbff6d071150d3f0990d727e313f47fc78592daa"},{"ID":"b5d71488-b8ef-5062-b2a1-e9c789cd819d","Path":"C:\\Pr
ogramData\\docker\\windowsfilter\\5d494a45653d21d09de015dc026ae4112f17e7307db13fbdd0317e75e91271b8"},{"ID":"7324f0f9-855f-5ef0-9555-f619220d94ae","Path":"C:\\ProgramData\\docker\\windowsfilter\\6be055adb
53b2e238375d587c315f7c219af9f1a296b5d89eb0d84f7328d2816"},{"ID":"fae25b5a-1d96-55e1-9064-da6efb2bf1ce","Path":"C:\\ProgramData\\docker\\windowsfilter\\7449e4f547e4324908c784517a6330b7c9a265452b1badad0f96
7b5c3609210e"},{"ID":"78e26e5e-be2a-551e-8e0c-bf12fd09d780","Path":"C:\\ProgramData\\docker\\windowsfilter\\5bb79e966720cff68f6b98671029d9240422496b1aab02f4f7dde204605f7fd8"}],"HostName":"b1c3ac00ca93","
MappedDirectories":[{"HostPath":"C:\\ProgramData\\docker\\volumes\\8ec0e62fbc9a0809aae4f1d2a7c52005d4ce94176380c444eba3264897feb321\\_data","ContainerPath":"c:\\programdata\\portainer","ReadOnly":false,"
BandwidthMaximum":0,"IOPSMaximum":0},{"HostPath":"c:\\users\\vagrant\\.docker","ContainerPath":"c:\\programdata\\portainer\\certs","ReadOnly":false,"BandwidthMaximum":0,"IOPSMaximum":0}],"HvPartition":fa
lse,"EndpointList":["f0e0d20e-4189-4a44-83ff-c4bcdb4af8cc"],"Servicing":false,"AllowUnqualifiedDNSQuery":true}.
PS C:\Users\stefan\code\docker-windows-box\scripts>  docker run -d -p 8000:9000 -v  C:\portainerdata:C:\data --entrypoint powershell portainer/portainer
d1497fcd8f6f6e3dc44b10f6998ecc7a3f5f5681c8cbfe249733df4479cb4308
PS C:\Users\stefan\code\docker-windows-box\scripts> dir $env:USERPROFILE\.docker

    Directory: C:\Users\vagrant\.docker

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        1/25/2017  11:55 PM           1822 ca.pem
-a----        1/25/2017  11:56 PM           1781 cert.pem
-a----        1/25/2017  11:56 PM           3247 key.pem

Otherwise mapping the certs to eg. C:\certs works fine:
PS C:\Users\stefan\code\docker-windows-box\scripts>  docker run -d -p 8000:9000 -v $env:USERPROFILE\.docker:C:\certs --entrypoint powershell portainer/portainer
4107f15b4bcb316606a6a37840e4fa43e0ca6c91478b3a1e9fcc2a4abb41f305

So, although ProgramData is the place to put files on Windows, I suggest to go back to the toplevel mount point to keep in sync with Linux. Portainer.exe's purpose is to run in a Container, so you can decide the "interface" how to configure it from the outside.

Interesting enough the "portainer/portainer:windows" image (pushed 17 days ago) works with the ProgramData mapped volume. 🤔

The old image does not have C:\ProgramData\portainer directory and then it works.

 Volume Serial Number is 6CFE-2CFB

 Directory of c:\programdata

01/26/2017  12:34 AM    <DIR>          Microsoft
01/26/2017  12:34 AM    <SYMLINKD>     portainer [\\?\ContainerMappedDirectories\7A9DCAC1-093D-4098-B234-462AD8AC9AF0]
07/16/2016  04:20 AM    <DIR>          regid.1991-06.com.microsoft
07/16/2016  04:20 AM    <DIR>          SoftwareDistribution
               0 File(s)              0 bytes
               4 Dir(s)  21,268,611,072 bytes free

@StefanScherer thanks for the diagnostic, I've opened #543 and will copy the info in here. I'm working on it.

The symlink is fine as it is created by the VOLUME ... line in the Windows Dockerfile.
Oh I have to mount my portainer data directory like this -v c:\portdainerdata:c:\programdata\portainer, but I still have problems mounting the certs dir into the sub directory. I think this just doesn't work to use nested mount points inside the container. So the certs should be searched in some other directory.
Or the persistent data should be in C:\ProgramData\portainer\data so we can bind mount like this: -v C:\portainerdata:C:\ProgramData\portainer\data and -v $env:USERPROFILE\.docker:C:\ProgramData\portainer\certs


Region conflict issue when using helm-s3 and EKS in different regions

This is just a repost of #1206 , but since I am facing the exact same problem, and the issue was closed without a solution, I am recreating it here.
Initial problem:

As per the following issue, helm-s3 requires you to specify the correct region of the S3 bucket.
However, in my case, we're using EKS in a different region so I'd need a way to specify a different region for the repo commands vs the cluster apply/sync/diff commands.
Perhaps we can add env variables that are only scoped to repo commands?
hypnoglow/helm-s3#83

@rgreinho Hey! What would be the solution for this, you think? A quick workaround would be to have a separate helmfile per region but probably it isn't what you want, right? Do we need to add some field in helmfile.yaml to configure AWS_REGION passed to helm-s3, helm-repo, and helm-fetch commands?

I am not entirely sure what a solution could be regarding Helmfile, or even helm-s3.
As a workaround, we implemented a process to sync our Helm Chart S3 Bucket in each region where we have EKS clusters. It is not necessarily the most elegant solution but the charts are small and the syncing is almost instant, so that worked well for us.

@rgreinho Nice! Thanks for sharing your workaround- that would help everyone affected by this.
I'll keep thinking about what I could do in terms of Helmfile and let you know if there's any news


[BUG] WILLOW: hass_post: failed to contact Home Assistant: HTTP 400

I just did a fresh install  and all seems to work, but I get an error 400 when talking to the ESPbox (non lite)
I (05:13:11.975) WILLOW: Using WIS URL 'https://infer.tovera.io/api/willow'
I (05:13:11.983) WILLOW: WIS HTTP client starting stream, waiting for end of speech
I (05:13:13.016) WILLOW: AUDIO_REC_VAD_END
I (05:13:13.017) WILLOW: AUDIO_REC_WAKEUP_END
I (05:13:13.052) WILLOW: WIS HTTP client HTTP_STREAM_POST_REQUEST, write end chunked marker
I (05:13:13.284) WILLOW: WIS HTTP client HTTP_STREAM_FINISH_REQUEST
I (05:13:13.284) WILLOW: WIS HTTP Response = {"text":"What is your name?","language":"en"}
I (05:13:13.290) WILLOW: HASS URL: http://<IP_ADDRESS>:8123/api/conversation/process
I (05:13:13.297) WILLOW: sending '{"text":"What is your name?","language":"en"}' to Home Assistant API on 'http://<IP_ADDRESS>:8123/api/conversation/process'
I (05:13:13.457) WILLOW: HTTP status='400' content_length='25'
E (05:13:13.460) WILLOW: hass_post: failed to contact Home Assistant: HTTP 400

Any help would be appreciated!

Did you create a new hass token and add it to the configuration? Also what version of HA are you on?


Ramp up on JSONPath

Related to 304.
Task is to read through docs and play with examples.  Evaluate if appropriate to use.

I wrote sample app with JSONPath (https://github.com/hideki/couchbase-lite/tree/master/test/JSONPathTest). It seems JSONPath fits well for CBL Android to archive Query sorting, and also post filter enhancement.


[CSL-1812] Error reporting in auxx lang

Type erros and argument errors are now pretty printed like this:
auxx> propose-update x:0 false
Invalid arguments for 'propose-update':
  Missing keys: block-version,bvm,software-version,vote-all
  Irrelevant keys: x
  Following type errors occured:
    Couldn't match expected type Int with actual value ValueBool False!

Parse errors are now also pretty printed and they look like this
auxx> this is going to be a @#$%^&* parse error
Parse error at 1:23-1:30
Unexpected TokenUnknown (UnknownChar '@'), expected procedure call w/o arguments, or literal, or parenthesized expression, or atom, or argument
this is going to be a @#$%^&* parse error
                      ^^^^^^^

Possible improvements: pretty print tokens in parse errors, and pretty print values in type errors.

@int-index please approve if all your comments have been addressed.


Extend the Python API

Extend the Python API by

Trigonometric Built-In Functions such as sin, cos, tan etc
Other Build-In Functions: reverse, transpose, order
Linear Algebra Built-In Functions: Cholesky

Hi Juliale!
Great job, ⭐ i like the addition, and nice to see that you also consider the invalid input cases!
I have a few comments to be addressed but nothing major.
Question. How did you like the new test setup?

Great! I like it it is more readable now :)

Hi @juliale-15,
Thank you for your PR :+1: , while merging I only updated the documentation.
I hope you feel motivated to commit more to Open Source and SystemDS in the future!


Filter duplicate: searchs subfolder in excluded folders

rules:
# verschiebe doppelte Dateien in den Ordner Duplicate
  - locations:
      - path: '/srv/mergerfs/Pool/'
        exclude_dirs: ['/srv/mergerfs/Pool/Backup/','/srv/mergerfs/Pool/Windows Backup/','/srv/mergerfs/Pool/Vault/','/srv/mergerfs/Pool/Steuer/','/srv/mergerfs/Pool/starmoney/','/srv/mergerfs/Pool/Treiber/','/srv/mergerfs/Pool/Duplicate/','/srv/mergerfs/Pool/Work/','/srv/mergerfs/Pool/ssd/','/srv/mergerfs/Pool/*/$RECYCLE.BIN','/srv/mergerfs/Pool/$RECYCLE.BIN']
    filters:
      - duplicate
      - extension
    actions:
      - move: '/srv/mergerfs/Pool/Duplicate/{extension.upper()}/'
    subfolders: true

Hello,
With the above config, I have the problem that it still searches the subfolders of the excluded folders for duplicates. This should not happen.
How do I prevent it from searching the subfolders of the excluded folders?
Many greetings
wintux

Hi, exclude_dirs expects folder names - so please try ['*Backup', 'Vault', 'Steuer'] etc

Seems to work. Only it takes a long time, but that seems to have something to do with the number of files.

Yes, finding duplicates is time intensive. It works by first comparing the filesize, then for matches comparing the hash of the first KB, then for matches comparing the full file hash. Best you can do to speed it up is reducing the number of files to scan by applying some filters where possible.


JIT debugging not activated windows, using unmodified fib_debug example

What are the steps to reproduce the issue?

Build fib_debug, windows or use version here : http://advance-software.com/misc/fib_debug.zip

Open using lldb from llvm 10.0 release, windows.

Step into the app until just prior to the fib run invocation.

Note no JIT info when "image list" command is run from lldb

https://pastebin.com/mTxufwp9
wasmtime from here : https://github.com/bytecodealliance/wasmtime/releases/tag/dev
on 9th June 2020. specific version unknown.
environment: windows 10, x64, visual studio 2019.

I could not compile latest lldb by myself. I tried VSCode + CodeLLDB for Windows and it worked as expected.

Please ensure you are using proper version of LLDB that can function on Windows and supports GDB JIT interface.

Please ensure you are using proper version of LLDB that can function on Windows and supports GDB JIT interface.

Thanks, Yuri.
Please could you more formally specify the most recent version of LLDB that functions on Windows & supports GDB JIT interface.  I.e. Please provide a link to exactly what you installed. Could be GDB JIT is a compile time option I didn't have enabled. Dunno. Time to revisit.

Please provide a link to exactly what you installed.

https://code.visualstudio.com/
https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb

Could be GDB JIT is a compile time option I didn't have enabled.

I don't know what was done on your end. The only VSCode settings I switched on is Allow setting breakpoints in any file, but it can be done via breakpoints panel.

Having another look at this. Upgraded to wasmtime 0.29 - still no joy :)
Think figuring out cause without GUI in the way as first step might be helpful.
Here's what I get - seems JIT stuff not getting triggered so I'm missing something.
https://pastebin.com/KF5Y1uUG

Tried reproducing fizzbuzz example here : https://www.youtube.com/watch?v=PevI_Mn-UUE
On my system the breakpoint isn't hit so something's missing.
My fizzbuzz project files : http://advance-software.com/misc/fizzbuzz.zip
Had to rebuild project as youtube video doesn't link to its project files. I might have a config error.
& using wasmtime 0.29  & 12.01 - demo will have been using older versions.


Monorepo support?

root/
  packages/
      a/
          CHANGELOG.md
      b/
          CHANGELOG.md

Released https://github.com/imcuttle/gh-release-changelog for resolving it

Running the command from the package folder was enough.

Running the command from the package folder was enough.

Sometimes, monorepo would release multi-packages together.
packages/
    a/
        CHANGELOG.md
    b/
        CHANGELOG.md


I found this on the internet.

I'm just going to leave this here
yeelight blue messages api

nice 👍


Added support for Localized strings.

Added a property to support Localizaed strings.
Thanks for your work 👍

Is there any downside to just changing stringWithFormat: to localizedStringWithFormat: altogether?


Fixed clang analyzer warning suppression that prevented building under some project configurations

Fix for #3138

Merged in 3.0.0 with 3cfa212


Can I use it without jest?

...\node_modules\jest-mock-extended\lib\CalledWithFn.js:22
    const fn = jest.fn();
               ^
ReferenceError: jest is not defined

Hi fax1ty, at the moment we only support jest, because the of use jest-mock-extended to mock the functions.

Would it be technically possible to make it work with vitest-mock-extended?

As third parameter you can give the mocked client, in theory, if the interface of vitest-mock-extended is the same as jest-mock-extended, you can send an instance of vitest-mock-extended. Just replace it like this (not testen):

import createPrismaMock from "prisma-mock"
import { mockDeep } from "vitest-mock-extended"

beforeEach(() => {
  const client = mockDeep()
  createPrismaMock({}, Prisma.dmmf.datamodel, client)
})
``

Am I correct the library is essentially creating a memory storage for prisma? Then itself would already be awesome to have. Initially, I though the library was just that, until I stumbled across the jest related requirements.
It would be awesome if the library itself doesn't need to be in a test environment at all. prisma-mock being a just the memory store, and have packages like prisma-jest-mock and prisma-vitest-mock to implement the connection with a testing solution.

You are probably right, I think it will be possible to refactor to a version without the mock dependancy.


[WIP] introduce categories to exporterlist

As @juliusv mentioned once in #prometheus, the list of external exporters has grown quite a bit. This attempts to increase overview by introducing categories for the third party exporters.
The chosen categories are a first proposal and might still be subject to change, depending on the feedback, any of which is greatly appreciated!

If we do this, it seems odd to only categorize third-party exporters, but leave the official ones uncategorized. Repeating all the categories in both sections also does not seem great. Should we just join the official+third-party ones into one big section, but mark the official ones somehow?

Indeed. Actually the official ones are comparatively few ones so introducing categories there seems a little over the top anyways.
But when we go for categories, it might indeed make sense to merge so that the page is more categorie-oriented that officiall/thirdparty-oriented.

Yep. Maybe just put **(official)** behind the name of the exporter? But keep+adjust the existing explanations around officially supported vs. third-party exporters at the top.

@brian-brazil
your sorting proposals should all be implemented now. feel free to go over it to check.
I was wondering for things like the jenkins-exporter and the minecraft-exporter if we want something like a Applications-category. Except that Applications would then include half of the exporters there. But something for like high-level-non-infrastructure-software or so?

@juliusv
We could do something like that, but I'd leave out the stars. (or did you mean the markdown-syntax there?)

ok, I think we converged onto this one.
Questions remaining:

any reordering of the categories on the site?
doing the merge of official exporters we discussed directly in here or in a separate PR?

@cherti Feeling ok either way on doing the official/third-party merge either now or later. Fine to keep it for a later PR.

Then I'd say merge this one once we converged on what's left for the third-party-exporters. Then we can do the merge of all exporters with a fresh diff, which should be better readable for review.

@brian-brazil @juliusv
I'm not so convinced about the Network services-section. If mail is a network service, HTTP is also a network service. I'd propose we either get rid of that section entirely and put those services under misc, or we find a better categorization scheme, ideally including some more things from the misc-section. But I'd be fine with simply dropping the network services to misc.

@brian-brazil @juliusv
I have now dropped the section Network services as it overlapped too much with other categories and sorted the things left in there into miscellaneous.
If there are no further issues this should be ready for merge.

@brian-brazil will have stronger opinions than me, but I'll merge this for now and anyone who wants to change things can still do so in another PR :)
Thanks!


Disabled state

Add a class (to .select-target?) and disable the control if the underlying select element is disabled.
Currently using the following workaround:
$('select').each(function() {

	var $this = $(this),
		select = new Select({el: this});

	select.disable = function() {
		$this.prop('disabled', true);
		$this.siblings('.select-target').addClass('select-target-disabled');
	};

	select.enable = function() {
		$this.prop('disabled', false);
		$this.siblings('.select-target').removeClass('select-target-disabled');
	};

	select.on('open', function() {
		if($this.prop('disabled')) {
			select.close();
		}
	});

	if($this.prop('disabled')) {
		select.disable();
	}

});

I am using a workaround for a similar issue. It is very common to use the Disabled state as the initial title for the Select element but I can't let it be selectable once the select menu is opened.


HDH-238-ability-to-have-module-ilt-pages-have-multiple-cross-module-…

…offerings
Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the CODEOWNERS.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screenshot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://660043d7622a35f13f3fc798--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66004754fe5188f38e75a158--harness-developer.netlify.app

Thanks @rohanmaharjan100 great progress. Does meet the requirements but a little rigid/fragile, we can refine in this or a future iteration.
For the merge, we can remove the placeholder Pre-Req tile and switch the Platform Pre-Req tile as the one that needs to display across all of the modules for now. We can chat tomorrow.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://6601609fe37e7a053bff4210--harness-developer.netlify.app

LGTM


python test extra path

Hi,
I'm trying to discover and run my test in my python project, but it failed due to the following reason:
The code itself placed in {workingDirectory}/src. The test code placed in {workingDirectory}/test. So the test code unable to import the source code. The solution is to add {workingDirectory}/src to the path, like the extraPath setting for auto complete.
So the feature request is either add extraPath setting to testing, or use the extraPath from auto complete when discover and run tests.

\extPython


Support for khttp library

Quite obscure library, but one of our clients uses it, is it is nice to have this support.

@devinsba all done


router: Report conflict on duplicate route

If the router receives a request to add a duplicate route it will now respond with a 409 Conflict.
The resultant error on the command line now looks like this:
$ flynn route add http example.com
conflict: Duplicate route
$ echo $?
1

Closes #708

LGTM.


HDDS-5321. Merge master branch at 12e2918 into upgrade branch.

What changes were proposed in this pull request?
Update the upgrade branch with changes from master, and apply fixes as needed. PR and Jira is just for visibility and the merge commit will probably be applied directly to the upgrade branch.
What is the link to the Apache JIRA
HDDS-5321
How was this patch tested?
Existing tests, with repeated runs of failed tests that came up initially after the merge.

Thanks @avijayanhwx. Merge commit was applied directly to upgrade branch. Fixes shown here were squashed and applied as one commit on top of the merge.


Installation on Mint is misleading

File: engine/install/index.md
It mentions Users of Debian derivatives such as “BunsenLabs Linux”, “Kali Linux” or “Linux Mint” should follow the installation instructions for Debian .
This is only correct if one would describe "LMDE" (Debian-based Mint) as "Mint". LMDE is by far the least used version of Mint. The most used versions of Mint are all based on Ubuntu, but Mint isn't mentioned among the Ubuntu derivatives.
I would suggest using the wording:

Users of Debian derivatives such as “BunsenLabs Linux”, “Kali Linux” or “LMDE” should follow the installation instructions for Debian
Likewise, users of Ubuntu derivatives such as “Kubuntu”, “Lubuntu”, “Xubuntu” or "Linux Mint" should follow the installation instructions for Ubuntu

Thanks for reporting; I'm not too familiar with all derivatives. The intent was to at least mention some distro's that people could be running, but which we don't officially support (at least, don't test/verify on). We frequently received pull requests to add those to our installation instructions, but because (as mentioned) we don't support/test those we try to avoid that, so instead give some "pointers" what could work for those.
I'll update the page to change it to "LMDE" (Debian-based Mint)

opened https://github.com/docker/docker.github.io/pull/10696


Create RBAC contract

Create simple RBAC (Role Based Access Control) clarity contract that will allow us manage who can call which function in our contract/contracts based on role assign to him/her.
Contract should let us:

grant permission to role
revoke permission from role
check if role have a specific permission
grant role to user
revoke role from user
check if user have a specific role
check if user have a permission based on roles assigned to him/her

To secure contract functions we should be able to write code like below:
(define-public (very-important-function)
  (begin
    (asserts! (can-execute "very-important-function") (err "Unauthorized to call this function"))
    ;;
    ;; here rest of the logic
  )
)

and only users with assigned roles that have been granted the very-important-function permission will be able to execute this function.

Great initiative! I know we've changed our minds on users/roles a few times. Could we summarize/document here what our final understanding is of what these users and roles are? @labs3/daoos Thanks!

I'm not very good at describing technical concepts in a friendly, non-geeky way, but I'll try. Later we can think about more formal documentation.
Roles will be identified as unsigned integers 0-127. So in total we can have up to 128 different roles.
In clarity unsigned integers are 128 bit numbers, hence the range 0-127.
Users can have more than one role assigned we'll handle that using bit-masking: One bit in number represents one role. If bit is equal 1 - role is assigned, if it is equal 0 - role is not assigned.

Roles assigned to user
Binary representation
Decimal representation (this is what we store in contract)
Comment

0
000001
1
2^0 = 1

1
000010
2
2^1 = 2

2
000100
4
2^2 = 4

3
001000
8
2^3 = 8

0 and 2
000101
5
2^0 + 2^2 = 5

0 and 2 and 3
001101
13
2^0 + 2^2 + 2^3 = 13

...
...
...
...

all 128 roles
111...111 (128 ones)
340282366920938463463374607431768211455
2^0 + 2^1 + ... + 2^127 =<PHONE_NUMBER>20938463463374607431768211455

Permissions are just unique strings or buffers to which we assign roles in exactly the same way as described above.
I think permission names should be exactly the same as functions they are guarding - for the sake of simplicity.
One user can have multiple roles.
One permission can be granted to multiple roles.
What are the benefits?
Let's say we have a role 10 that for simplicity we call VOTING_MEMBER.
And we also have a role 11 that we call STANDARD_MEMBER.
We create permissions: vote, create-proposal and assign them to roles as follows:

ROLE
PERMISSIONS

VOTING_MEMBER
vote

STANDARD_MEMBER
create-proposal

And we have 2 functions:
(define-public (vote)
  (begin
    (asserts! (can-execute "vote") (err "Unauthorized to call this function"))
    ;;
    ;; here rest of the logic
  )
)

(define-public (create-proposal)
  (begin
    (asserts! (can-execute "create-proposal") (err "Unauthorized to call this function"))
    ;;
    ;; here rest of the logic
  )
)

If you are VOTING_MEMBER you can call vote without any problems, but you won't be allowed to call create-proposal, as only users who have STANDARD_MEMBER role can do that.
Now imagine that we have 100 users just like you, and we want to allow them to call create-proposal.
We can grant them STANDARD_MEMBER role, but it would be quite expensive as we would have to modify 100 entries (one entry per user). So instead of doing that, we grant create-proposal permission to VOTING_MEMBER role (1 operation).

ROLE
PERMISSIONS

VOTING_MEMBER
vote create-proposal

STANDARD_MEMBER
create-proposal

And with just one modification (one contract call), we granted permission to call create-proposal to all existing and future VOTING_MEMBERS.

@LNow Makes perfect sense to me! Love it! From my perspective, we don't even need to know what the roles and permissions are to make this contract. Those details can be added at runtime. You've documented it perfectly. Have you started implementation on this yet? If not, let me know if you want help or a code review :)

@JMKJR you can find ongoing work in this branch: https://github.com/LNow/daoOS/commits/RBAC-contract


Add support for registry in case of microshift

This PR:

Add's support for using the local registry in case of microshift since the Kepler repo uses the local registry to push the Kepler image.
Fixes some formatting changes which can be further used in refine PR

CC: @SamYuan1990 @rootfs

LGTM


when open @LoadBalance on RestTemplate that get ExtraFieldPropagation.get was null

I need IRule under the Ribbon to listen to the selected server, and then pass the module information to the remote caller before and after the selection. But I found it possible under Feign, but it can't be passed under the RestTemplate. Through the log, you can see that the span information when sending parameters under the RestTemplate is inconsistent with the information of the main thread, but there is no problem under Feign.
I see the code feels that the order of Intercept execution under RestTemplate is higher than the priority of IRule. Is this caused by this reason?

ok  thinks 😁


Simplify the initialization of the static variables holding class names

Before these changes the logic for lazy initialization of StringNames for the names of classes contained a manual check against double initialization as well as invoking a helper from StringName that locked the initialization with StringName's mutex. (The helper was inside StringName, using its mutex, because the thing that makes initializing the names slow enough that it makes sense to cache them is the string interning done by StringName.)
Since C++11 the language standard itself guarantees (Section 6.7.4) that block-scope static variables are initialized thread-safely. So we can remove the extra complexity here.

One note: The original code using the manual initialization checking was only 14 months old. I presume there was a desire for it to be back-portable to godot 3, which apparently used a non-c++11 standard. But the relative freshess of the code makes it conceivable there was another reason for the complexity. But it certainly looked like a thread safety thing.
The existing code is also more efficient than it looks, because interning the StringName will need to acquire the StringName mutex in any case. So you don't really have an extra lock acquisition. The only benefit of my change is the simplification. Well, I suppose there is always an implicit check if the variable is initialized or not, so having a manual check in addition to the implicit one is an extra condition. But I would expect optimization to clear that out.


Added npm support. Fixes #243.

#243

@feross: You seem to be pushing the current version on npm from feross/jquery-placeholder: does this all look okay to you?

Sadly, I think this is unlikely to get merged. See: https://github.com/mathiasbynens/jquery-placeholder/issues/156 and https://github.com/mathiasbynens/jquery-placeholder/pull/158 where I tried in the past.

Oh no, not one of them. I really hope the developers of this library don't think that anymore, because it's just completely wrong!
http://blog.npmjs.org/post/101775448305/npm-and-front-end-packaging
And from the front page of npmjs.org:

By not publishing this library to npm, they're making it difficult or downright impossible (in the case of this library, which breaks when you try to install it from npm) to use browserify.
jQuery itself is on npm. Saying that "npm is for node modules" is completely wrong. Instead I would suggest "I don't want to support browserify".

The good news is that this library isn't really needed today. Can I Use says 88.75% of browsers support "placeholder" natively. Unless you need your site to work perfectly in IE8/9.

I need placeholders all the way down to IE8 on lostmy.name :disappointed:

Guys, I've done all the work for you. You literally just have to merge this pull request and then this library will support browserify.
I see no disadvantage to this. It will make it easier for people to use the library, and it won't make it harder for anyone else!

:clap: :clap: :clap: :smile:


Add extra run to calculate all character stats.

Should be just a simulation run but probably separate code from simulation package's New
Should rewrite some of the helper functions in simulation so they can be used by both New and whatever else

This is already in CharacterDetails as Stats/SnapshotStats


Only 365 groups are written back, nowhere mentioned here.

This page is very unclear about what groups are written back. It gives the impression that all groups are written back to AD. Turns out only 365 groups are written back, which are always distribution groups in AD. Security groups, mail enabled security groups or a distribution group created in 365 Admin portal will not be written back.
Please clear this up from the outset. Much time wasted on getting a mail enabled security group to show up in the AD.

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

ID: cba137cc-67ca-2766-b436-54e3634f0c2f
Version Independent ID: 2f185fba-dcf2-04f5-17a1-b641dc104edd
Content: Azure AD Connect: Group writeback
Content Source: articles/active-directory/hybrid/how-to-connect-group-writeback.md
Service: active-directory
Sub-service: hybrid
GitHub Login: @billmath
Microsoft Alias: billmath

@JeroenTuinstra
Thanks for your feedback! We will investigate and update as appropriate.

Thanks! I made a pull request to add a note about this at the beginning. https://github.com/MicrosoftDocs/azure-docs-pr/pull/141616


Add ARIA-labels and general SEO optimizations

the form should include built-in ARIA-labels for better SEO optimizations

@davy-g


Run data-validator as a lambda

Look into what would be needed to run the data-validator library as a lambda in AWS

For the Lambda, did the following:

Created an ECR repo at cfpb/regtech/s3-lambda-test
Pointed lambda to image there (note that each update to the image requires pointing the lambda to the new image because it's based on the SHA)
Created an IAM role called cfpb-dev-regtech-jadam-devhub-lambdaReadS3 with AmazonS3ReadOnlyAccess, LambdaBasicExecutionRole, and LambdaVPCExecutionAccessRole to be able to run in the same VPC as the RDS instance for database access


Resque Jobs are displaying the status as Private

My resque jobs are showing the status as "Private" and not getting executed but they are displayed while giving the command "redis-cli keys :job:". Please let me know what could be the reason behind this issue?
Here is the response
[54eb1d3cd43cd] => Resque_Job_Status Object
(
[id:Resque_Job_Status:private] => 4992e2eddd487e859ef3b35f337eea07
[isTracking:Resque_Job_Status:private] =>
)
Also found that the logs are not created while starting the resque service.
Please give me a suggestion to resolve this issue.

Would you try this
$token = Resque::enqueue('cms39', 'MyRedisClass', $args); to
$token = Resque::enqueue('cms39', 'MyRedisClass', $args, true);


rongda-zhihuiyun update to 3.7.1

in bucket is 3.0.5
but now it is 3.7.1
https://download.rongdasoft.com/update/prod/370/Rd_IBSaas_V3.7.1.exe
please help

Done, will need to add regex autoupdate function eventually


fix(ASSETS-6863): Files: Asset information - IPTC tab - Certain ARIA roles must contain particular children

When the "Keywords" region does not contain any input fields, consider removing the role="list" attribute from the element.
As the "Add" button is pressed and the input fields (which contain the expected role="listitem") appear, consider using JavaScript to add role="list" back to the element.
@review @Pareesh @RitwikSrivastava
Description

Handle role list attribute according to the number of items.
When coral-multifield list of items is empty, the role should change.
Related Issue

https://jira.corp.adobe.com/browse/ASSETS-6863
Motivation and Context

Only when the list of items is not empty should have the role list attribute added.
How Has This Been Tested?

By adding and removing items.
Screenshots (if appropriate):
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.

Hi @BogdanMare ,
create a function for adding and removing role based on number of items.


When callback exceptions are supressed, if an Input or State references an ID that doesn't exist at callback trigger, then an front-end exception is thrown

More details:
when app.config['suppress_callback_exceptions'] = False, dash validates all callbacks when the application is launched and throws a NonExistantIdException here if the initial state of the layout does not include an id used in either the Input, Output, or  State of a callback.
E.g.,
import dash
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input, Output, State

app = dash.Dash()
app.layout = html.Div([
    html.Button(id='button', children='click'),
    html.P(id='output')
])

@app.callback(Output('output', 'children'),
              [Input('button', 'n_clicks')],
              [State('buttoN', 'n_clicks')])
def put_n_clicks(n_clicks, n_clicks_state):
    if n_clicks:
        return n_clicks
    return 0

app.run_server(debug=True)

-->
dash.exceptions.NonExistantIdException:
Attempting to assign a callback to the
component with the id "buttoN" but no
components with id "buttoN" exist in the
app's layout.

Here is a list of IDs in layout:
['button', 'output']

This exception would be raised if a user includes a callback using an id of a component that does not exist in the initial state, but is dynamically generated by other callbacks.
For example, an exception is raised in this example:
import dash
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input, Output, State

app = dash.Dash()
app.layout = html.Div([
    html.Button(id='button', children='click'),
    html.Div(id='output-div-holder'),
    html.Div(id='output-paragraph')
])

@app.callback(Output('output-div-holder', 'children'),
              [Input('button', 'n_clicks')])
def put_n_clicks(n_clicks):
    return html.Div(children=n_clicks, id='output-div') if n_clicks else 'None'

@app.callback(Output('output-paragraph', 'children'),
              [Input('output-div', 'children')])
def put_child(child):
    return child

because the second callback has an Input for the id 'output-div', but that component does not exist in the initial state (it is generated once the user clicks the button).
To fix this, a user may specify app.config['suppress_callback_exceptions'] = True to let their application run without breaking. Adding that line to the above program makes everything work:
 -->

Doing this, however, puts you in debugging hell for large applications since any time you include a callback which has 1. an id which will never exist in the application (you mis-spelled it for example) or 2. an id for a component which does exist in the layout at the time that another Input triggers the callback, you will get nothing but an unhelpful front-end exception:

It does not look like app.layout updates in sync with the application front-end, which means it is unlikely we can dynamically check this before each callback and throw a back-end exception.
It appears that the exception is thrown from here. I think the quickest patch right now is just to throw a 'nice' exception there telling the user the bad id and the set of currently available ids.

It does not look like app.layout updates in sync with the application front-end, which means it is unlikely we can dynamically check this before each callback and throw a back-end exception.
It appears that the exception is thrown from here. I think the quickest patch right now is just to throw a 'nice' exception there telling the user the bad id and the set of currently available ids.

Yeah, a good exception would go a long way for me. Ultimately, I think that our solution will have to be propogating these error messages from the JS context up to the browser context (in dev-mode) with some type of persistent notifications. That's a much larger project that we should probably discuss in a separate issue

Sounds good, I'll make a quick fix with a better exception for now

Hello, I am currently working on a Dash project and came across the same issue, and completely understand why suppressing the warning is bad practise. I followed the thread attached at the end of page (A proposed alternative ...) but didn't really understand it. What is the proposed solution?
Thanks in advance!!


Root should check and validate the query against the last schema

Right now the schema is a notion that is local to a split.
This is a good thing, because it will allow us to change the schema in the future (provided we are careful with the merging logic).
However, because of that, a lot of invalid queries are only spotted at the leaf level, resulting in strange errors with bad error code.
We want to validate the query against the current schema before dispatching the query to the leaves.
Should address #1014, #1016 #1082

Assigned it to me but to reserve this ticket, but that's actually for Linh.

IMHO, I think we could close this issue now. HDYT

Thank you @linxGnu !


Add database management feature

Hi @nWidart
It's a newer version of #1151. Can you take the time to review my code?
Many thanks.

[x]  Add database management feature
[x]  Add command for migrating modules from .json to db
[x]  Add publish migration
[x]  Add Unit Tests
[x] Add version, keep module.json file

A better version of #1151, correct? If so I'll close my PR.

A better version of #1151, correct? If so I'll close my PR.

Closes #1084

Closes #1084

A better version of #1151, correct? If so I'll close my PR.

Hi @FoksVHox,
Yes, it's a newer version of #1151.
Currently I'm using my forked repository for my project and I think it will be better if this feature is implemented into laravel-modules and I will just need to pull laravel-modules instead of the forked one.
Could you take your time to check my work? I'm not familiar with laravel-modules.
Many thanks.

A better version of #1151, correct? If so I'll close my PR.

Hi @FoksVHox,
Yes, it's a newer version of #1151.
Currently I'm using my forked repository for my project and I think it will be better if this feature is implemented into laravel-modules and I will just need to pull laravel-modules instead of the forked one.
Could you take your time to check my work? I'm not familiar with laravel-modules.
Many thanks.

@nWidart Any news on merging this?

@lamtranb Could you fix the failing test?

@lamtranb Could you fix the failing test?

Hi. I will fix it in weekend

I'm sorry I was busy with my own business and I did not have time for this feature. I wonder if we have any update on this ?

@lamtranb I don't think so. I haven't looked at it, at least. I wonder if you could fix the failing test, and try to resubmit the pr?

@FoksVHox I will try to start again where it was

@FoksVHox Good work and is there any updates on it?


Fix fold region regression with document instances

Context
The document instance commit caused a regression in code folding behavior.
The regression prevents code folding from occurring.
Why?
Previously with a single instance, we'd attempt to code fold on every change event that is triggered on setValue. swapDoc doesn't trigger this code path and the folding logic never triggered.
How was this fixed
This was fixed specifically for the document instance case. On document instance creation run the folding logic once to ensure folding occurs.
Tested with unit tests.
Also opened https://github.com/google/playground-elements/issues/267 to track an existing issue that continues to exist (although less severely) when running fold logic.

FYI @Matsuuu , blocking updating pre-release on this change since I also broke code folding 😢
Thank you!

Thanks Al! Tests are failing because different browsers are giving me different zero width spaces.
Will resolve tests.


AUI-2097 Close toolbar before add it to another field

Just started reviewing :) :octocat: Sent from GH.

Just started reviewing :) :octocat: Sent from GH.

Just started reviewing :) :octocat: Sent from GH.


move proxy code into src/cpp

This change moves the proxy code and its tests into the cpp lib, renames its main function to proxy_main, and reduces src/proxy to a small C program that simply calls proxy_main from the lib.
After this lands, the plan is to make similar changes for all of our other C++ programs such that all of our C++ code ends up consolidated in src/cpp wrapped by small C mains. Then after that we can replace the C mains with Rust mains, such that all of our programs become Rust programs at the top level.

Yep, all tests pass and also manually tested.


AttributeStatement section should mention NameFormat

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-single-sign-on-protocol-reference#attributestatement is missing information about NameFormat. Many applications require this in the SAMLAssertion. Please add information about how Azure AD manages this.
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 62bb99a4-4092-0202-48bf-4e61ee424faf
Version Independent ID: a066de9a-42fb-2fcc-683d-2ffdc45fdf3d
Content: Azure Single Sign On SAML Protocol
Content Source: articles/active-directory/develop/active-directory-single-sign-on-protocol-reference.md
Service: active-directory
GitHub Login: @CelesteDG
Microsoft Alias: celested

@girgen Thanks for the feedback !  I have assigned this issue to content author to investigate and update the document as appropriate.

@SaurabhSharma-MSFT it might be that it is not implemented, at least not using a simple point-and-click configuration, but perhaps it can be done using some other means?

We have an Azure DevOps backlog work item, #644841, to track this request as it's part of some other dependencies. We are working to update all the docs and this is on our list of updates. Thank you.
For now, #please-close

@girgen We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Simulated call

Attempts to run a simulated call whereby no actions affect the chain (my source for this is how they were done previously, but I am more than open to an alternative suggestion)

will track in #264


Error decoding a valid APK

I'm trying to decode an APK (link: https://we.tl/t-vG5ww1Nrf2) using androguard, but see the following exception:
File "/home/xd/try.py" in parse_apk
  182.         return APK(apk_file, False)
File "/home/xd/.env/local/lib/python2.7/site-packages/androguard/core/bytecodes/apk.py" in __init__
  108.         self.zip = zipfile.ZipFile(io.BytesIO(self.__raw), mode="r")
File "/usr/lib/python2.7/zipfile.py" in __init__
  770.                 self._RealGetContents()
File "/usr/lib/python2.7/zipfile.py" in _RealGetContents
  857.             x._decodeExtra()
File "/usr/lib/python2.7/zipfile.py" in _decodeExtra
  388.             tp, ln = unpack('<HH', extra[:4])

Exception Type: error at /home/xd/try.py
Exception Value: unpack requires a string argument of length 4

This apk has been signed using signapk.jar as described here: http://www.londatiga.net/it/how-to-sign-apk-zip-files/
System Information

Androguard Version: 3.2.1
Python Version: 2.7
Operating System: macOS 10.13

Might be a reoccurence of the old zipfile bug? I know there was a bug in old python versions like 2.5...
Can you try the same thing with python 3?

Thank you for the mention of the bug. I believe you are referring to is here: https://bugs.python.org/issue14315
I see this has since been fixed. Can confirm this indeed works on python 3.6 and the latest release on the 2.7 branch (as of this writing, i.e. 2.7.14)
Thank you for your prompt response, appreciate it!


Virtual IP assigned before bridge interface is live

I am currently setting up high availability Opnsense firewalls, with a similar pair of high availability ethernet providers. This setup requires me to bridge together 2 WAN ports so I can connect to both ethernet providers at the same time.
Following the CARP documentation, I have set up a virtual IP on the bridged WAN interface, which works until reboot. When the firewalls come online, there is an error message stating that it could not "find a required assigned IP address on the interface".
By going into the virtual IP settings, changing nothing, clicking save and applying the changes, the virtual IP gets assigned as expected.
My assumption is that the virtual IP is trying to be assigned before the bridged interface is up.
I am currently using Opnsense 17.1, and have not yet tested 18, however I couldn't find any mention of the issue anywhere, so I don't think it has been raised / resolved.

No report since 19.1: fixed or timeout.

Hi fichtner,
I thought I had responded to this ticket.
The issue continued in 19.1, however we removed the bridged interface in our environment so we were no longer affected.
Thanks,
B

@BCurrell thanks for the update. I'm working in a related code area by coincidence now and I will take a closer look therefore. :)


File corrupt error when saving custom tags in .dat file

From Julie:
"I am hoping to use the custom tag feature to address one of our sub aims which entails correlating serotonin levels (urine samples) with the delay in resolution of respiration after the beginning of a desat. I am finding that it isn't possible to measure in the majority of IH events due to motion, no respiratory pause present, time delays etc. Right now I'm just screening the events for those that can actually be measured which will be a long and laborious process and I'm sure will take me into January since I'm chipping away at it between other obligations. If you can get to it then that would be great since it would be nice to have those events available to pull up in the viewer. However, plan B is to use the cursor tool to calculate the time delay and manually record it in a spreadsheet. We are looking at two 24 periods per infant so it is time consuming (even with the custom tag!) but not the end of the world.
My two issues now are deleting an event as discussed previously and saving them after they are created. When I've tried to use the save custom tags events feature in a few different infants I get the following error:
Unable to write to MAT-file I:\PREVENT DATA\1026\1026_09202018_120001.dat.
The file may be corrupt.

Error in HDF5Viewer_v1_0_1>SaveAllCustomTagsButton_Callback (line 938)

Error in gui_mainfcn (line 95)'ve

Error in HDF5Viewer_v1_0_1 (line 61)

Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)HDF5Viewer_v1_0_1('SaveAllCustomTagsButton_Callback',hObject,eventdata,guidata(hObject))

Error using waitforallfiguresclosed (line 14)
Error while evaluating UIControl Callback.

I am using the .dat files and from the error I think maybe I need to convert these to HDF5 files first?"

This has been fixed here: https://github.com/amedwards/NICUHDF5Viewer/commit/a7bc2c0b2180bcb376386f5c7766fdb4bc432503
Dat file saving works in 4.X releases


perf: SendersRecovery idle time while writing to the DB

Describe the feature
The SendersRecovery stage currently queries a bunch of transactions from the database, runs secp recovery, and then proceeds to write them to the DB. We currently stop running the recovery while writing, when instead we should be doing recovery even while the transaction is being committed.
In practice, this means we'll probably need to have a similar pattern with the downloaders, where a task is spawned and is responsible for recovering all transactions in a range, even while the transaction is committing.
Additional context
https://github.com/paradigmxyz/reth/blob/533e7c9cc546c26f34472af2433bc092429f8913/crates/stages/src/stages/sender_recovery.rs#L93-L110
CPU vs I/O

I think we can close this now
we made improvements to this since, like better parallelization


How to know Scroller is at the bottom

@souhe
How to know Scroller is at the bottom ?

Well actually you can pass onScroll function to handle scrolling, it returns an object
{
    "topPosition": 0,
    "leftPosition": 0,
    "realHeight": 0,
    "containerHeight": 0,
    "realWidth": 0,
    "containerWidth": 0
};

Then you should calculate realHeight - containerHeight and compare the result with topPosition. If it equals - you are at the bottom.


Neovim Support

Hey there.  I recently updated vim-agriculture and started getting these errors.
Error detected while processing function agriculture#fzf_rg_raw:
line    5:
E117: Unknown function: trim
E15: Invalid expression: 'rg --column --line-number --no-heading --color=always ' . trim(userOptions . ' ' . a:command_suffix)
line    6:
E121: Undefined variable: command
E116: Invalid arguments for function extend
E116: Invalid arguments for function call
E15: Invalid expression: call('fzf#vim#grep', extend([command, 1], a:000))

I believe it's because Neovim doesn't implement the trim() function.  It looks like this was added to Vim in version 8.0.1630.  Is there any plan to support Neovim due to this API difference?  If not, I understand, and will happily downgrade vim-agriculture back to a commit before this change was introduced (or, if I'm feeling really inspired perhaps make a PR with your input on how to workaround this 😄).
Thanks again for this plugin!  It's one I find immensely useful.  Have a great day ☀

Thank you for kind words!  Oh interesting, I will look into it when I can for sure!  You're welcome to PR if you feel comfortable.
My initial thoughts are, if trim() isn't available in neovim, there's got to be similar functionality in neovim.  If necessary, could probably wrap it with our own trim function, and do a vim/neovim check within.

Fixed by #5 🎉


[SDK] memoize extensions

Problem solved
important performance improvement to reduce the cost of detecting extensions
Changes made

[ ] Public API changes: list the public API changes made if any
[ ] Internal API changes: explain the internal logic changes

How to test

[ ] Automated tests: link to unit test file
[ ] Manual tests: step by step instructions on how to test

Contributor NFT
Paste in your wallet address below and we will airdrop you a special NFT when your pull request is merged.
Address:

/release-pr


Relay: upgrade graphql

Is that the only breaking change? Wow.

It's not even breaking change, it is just deprecated 😄


Cannot Scroll Scintilla Programmatically

Odd problem:
In a spell checker, I'm using ScintillaNet to display the line containing a spelling error and highlighting the error with an indicator. All works well except that the Scintilla control won't scroll to the error. I've tried GotoPosition followed by ScrollCaret and ScrollRange (the range highlighted by the indicator). Neither works. With ScrollCaret, the caret is exactly where it should be, but Scintilla won't scroll to it. Here's the code I'm using at present. "main.sci" is the control in the editor that's being checked, and "sciErr" is the control in the spell checker. And "m" is the Regex match containing the word being checked.
            Dim lNum As Integer = main.sci.LineFromPosition(m.Index)
            sciErr.Text = main.sci.Lines(lNum).Text
            sciErr.IndicatorFillRange(m.Index - main.sci.Lines(lNum).Position, m.Length)
            sciErr.ScrollRange(m.Length, m.Index - main.sci.Lines(lNum).Position)

I'm hoping I'm missing something obvious so I can finish this thing.

ScrollCaret should scroll the caret into view and display your highlighted word... assuming that is where the caret is. See issues #128, #160, and #162 and see if that helps.


Upgraded fixes for vulnerability

@vijayma can you please review these changes.
This is with regards to weekly Governance vulnerability alerts fixes.


refactor: remove method that's same as base method

If you take a look at BaseInvocationScope.call, you'll see that it's essentially the same implementation as this removed method that was overriding it.

Moved base from master to rc/salamander and reopened for reviews.


[wip] enable PaketReference in project file

This is basically just me telling you "I will at some point in the future work on this", don't expect anything in the next few days / weeks.

Ping

yeah ...
I often start many things highly motivated, then don't finish any of them.
Having <PaketReference in your project file is still something I would really like to have as a user, but realistically, I won't work on this until earliest Jan/Feb.
Also this turned out to be a lot harder than I initially thought (like most things in life, I guess ;-) ).
As soon as I get my motivation back (and some actual time), I will reopen this, but don't expect too much.

Don't worry. Absolutely understandable
Am 06.12.2017 17:53 schrieb "Lukas Rieger"<EMAIL_ADDRESS>
Closed #2677 https://github.com/fsprojects/Paket/pull/2677.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/fsprojects/Paket/pull/2677#event-1375201931, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AADgNJwSk7zkes1-6S0W1L6yEdnazqwbks5s9saOgaJpZM4PD8XZ
.


HStack

Feature
Module name: HStack
Module parent: --
Description
HStack aims to provide visual rendering with horizontal scrolling with the mouse or touch.
It allows you to display a list with immediate rendering.


The bottom of UITableViewController appear a bit problem on iPhoneX device! Help please

Anyone here?

Maybe  u can add a FooterView that height is 34.0 on iPhone X


Unable to build SpectatorViewPlugin - cannot find opencv2\aruco.hpp

The instructions in the readme.md file may be missing a step

One part pilot error, one part instruction confusion


RC test: Molarity 1.3.0-rc.1

RC version:
http://www.colorado.edu/physics/phet/dev/html/molarity/1.3.0-rc.1/molarity_en.html
iFrame test:
http://www.colorado.edu/physics/phet/dev/html/molarity/1.3.0-rc.1/molarity_en-iframe.html
Text matrix:
https://docs.google.com/spreadsheets/d/1tb4vFUYbqCPPIDPOiV6BkamOZiZyWujxaF4al_2q4k4/edit#gid=288440115
In addition to the test matrix, please perform these specific tests on 1 or 2 platforms:

[ ] stringTest=double (double all strings)
[ ] stringTest=long (excessively long strings)
[ ] stringTest=X (short strings)
[ ] stringTest=rtl (right-to-left text direction)
[ ] stringTest=xss (test for security issues, passes if it does NOT redirect to another page)
[ ] full screen test
[ ] screenshot test

The previous test was 1.3.0-phetiodev.3, see phetsims/tasks#865. There are no issues to verify from that test, and this RC version uses the same shas.
Please mention this issue in any GitHub issues that you create.

It looks like this RC is using SHAs that don't include all of the necessary patches for https://github.com/phetsims/scenery-phet/issues/312, specifically it references https://github.com/phetsims/scenery-phet/commit/db4bf9615e8a267169626cbc323827853b2b29de in the dependencies.json, which is missing the fix https://github.com/phetsims/scenery-phet/commit/727d5bd7ac8d93a1c6e8b78b27c9fb6a8a4e783d.
@pixelzoom, can this be cherry-picked to a "molarity-1.3" branch in scenery-phet, and then have an RC with that fix included?
@phet-steele can you screen other RCs to make sure that they include that commit?
Also, can someone check to see if the following email was received (I sent it out, but saw no replies):

@ariel-phet, can we come up with a better process than phet-dev emails (if my email sent correctly?)

@phet-steele please stop all testing, we're starting over.
@ariel-phet fyi.

@jonathanolson handled cherry-picking the fix to a new molarity-1.3 branch of scenery-phet, while I observed.  So I should now be able to proceed with creating 1.3.0-rc.1.

Testing continues with 1.3.0-rc.2 in https://github.com/phetsims/QA/issues/13.
Closing.


Create deployment task

Output should include a full-functional standalone static site. Also consider how to archive prior versions.

Run gulp docs-build --production to output a complete standalone web site into www.


Blur Effects Causing White Background

apply_mica and apply_blur is causing white background in window.
Here is screenshot with apply_mica effect

Here is screenshot without apply_mica effect

In transparency is set to true in both conditions
Window decorations is set to false

I belive you're using a newer version of Windows 11 and apply_blur works only on version 22H1

Yes, working on 22H2. Why is it not supported any specific reason?

The OS itself doesn't support it anymore.


Change AWS messaging propagation & DSM tests to use actual AWS

Motivation
This PR initially began to simply enable a few more Java AWS SNS propagation tests, now that dd-trace-java has the functionality to propagate APM and DSM context through SNS topics. In enabling these tests, it was discovered that Localstack, the 3rd party Docker image used to mock AWS services, does not provide the functionality needed to properly test these new features.
It was decided to move all tests to AWS, which should boost our confidence in these propagation tests.
Changes
General Changes

Remove Localstack container image
Change AWS clients to reference our Datadog Sandbox Eng account
Add AWS auth tokens via environment variables provided through Github secrets
A distinct hash UNIQUE_ID created that will be appended to all AWS resource names (queue names, topic names, etc) to avoid conflicting resources between different system-tests CI runs.

Test Specific Changes
Cross Propagation Messaging Integration Tests:

Add distinct id as AWS SQS Queue, SNS Topic, and Kinesis stream names. Prevents test resources conflicting.
Add functions to cleanup test resources used in AWS after setup functions have run
Add distinct id to the message being sent, and have consumer services stop consuming once exact message is found

DSM Test Updates:

Add distinct id to AWS queue / topic names.
Add distinct id to message sent through queues
Since queue names are now dynamic, we need to calculate the DSM hash for each test case. The DSM hashing function from dd-trace-py has been added to test utils.

Workflow

⚠ Create your PR as draft ⚠
Work on you PR until the CI passes (if something not related to your task is failing, you can ignore it)
Mark it as ready for review

Test logic is modified? -> Get a review from RFC owner. We're working on refining the codeowners file quickly.
Framework is modified, or non obvious usage of it -> get a review from R&P team

:rocket: Once your PR is reviewed, you can merge it!
🛟 #apm-shared-testing 🛟
Reviewer checklist

[ ] If PR title starts with [<language>], double-check that only <language> is impacted by the change
[ ] No system-tests internal is modified. Otherwise, I have the approval from R&P team
[ ] CI is green, or failing jobs are not related to this change (and you are 100% sure about this statement)
[ ] A docker base image is modified?

[ ] the relevant build-XXX-image label is present

[ ] A scenario is added (or removed)?

[ ] Get a review from R&P team

I set it as draft, you can set it back to normal when you need a review

Thanks William. Awesome PR!
One question - is it at all possible to spilt the testing into one part working with "localstack" and the second "extended" part to work with AWS ?
I'm asking mostly from 3 perspectives:

avoiding engineers locally to setup aws credentials to run at least some basic tests
avoiding flakiness of actuall AWS
and most importantly - we might actually have to put some of those tests in GitLab to avoid exposing secrets to our AWS accounts on public CIs

Ok, so far LGTM.
BUT :)
Every time we rely on an external service in testing, we are prone to this service healthiness. I think we can give it a try, but at the first sign of flakiness, I think it's better to move those tests in a dedicated scenario, to not change the signal quality of CROSSED_INTEGRATION and INTEGRATION.
Does it make sense for you ?

Sounds good to me!


question: what API would I use to create a display with window borders and use swap_buffers?

glium::Display struct has no swap_buffers() method. How would the triangle example be extended to:

Use vsync and swap_buffers() instead of sleeping
have a title bar and window borders like normal windows

1 - swap_buffers() is automatically called when you call target.finish(). However vsync doesn't really work correctly and I don't know why, but that's a problem with glutin.
2 - The window should have a title bar and borders. Which platform are you on? If this is not the case, also a problem with glutin :-/

I just ran the triangle example directly from glium's repository and it does in fact have window borders. So I must have made a mistake in my code.
So the sleep is a workaround for a bug in vsync, is that right?

When I use this example, it looks like vsync works: https://github.com/gfx-rs/gfx-rs/blob/master/examples/glutin/main.rs
btw my platform is Ubuntu 14.10.

So the sleep is a workaround for a bug in vsync, is that right?

Yes

When I use this example, it looks like vsync works: https://github.com/gfx-rs/gfx-rs/blob/master/examples/glutin/main.rs

Vsync isn't even implemented in glutin on Linux. Your system may automatically enable vsync, but on my system when I remove the sleep the application starts consuming a lot of CPU.

It looks like using vsync in windowed mode is buggy. I tried it with GLFW. So I think my application will have vsync off and use sleep() to go easy on the CPU.


Add fullscreen mode

Add a fullscreen button (shows by default) that toggles the card into fullscreen mode.
Fullscreen mode will render all media & the gallery fullscreen, along with their controls (e.g. full screen browsing, next/previous).
Special attention to get portrait (height > width) media to render correctly.
Closes #70.

any chance to somehow go in full screen by an automation?

@thundergreen Sadly, browsers will not allow this. See: https://github.com/dermotduffy/frigate-hass-card/issues/237#issuecomment-989548964


The download speed is not displayed

When I add the torrent task through the webUI, the task is displayed on the webUI and shows no download speed. But in the terminal can see the task is in downloading

@chenxk-j I have the same problem, how do you solve it?