Can't get object information when the object doesn't have owner/acl

Hi,
When the object is folder or file but the object has no owner/acl the Storage.get(BlobId) doesn't fetch the object information.
Moreover when I perform stoage.ls on this object I don't get the object itself only other childs that has owner.
I would like to know how can I get the object information such as size and etc and not list the parent directory.
Thanks,
Itay

I will elaborate  more details.
When you create file with path "Folder1/file1" but Folder1 doesn't exist he creates the file but the Folder1 is virtual.
When you try perform storage.get("Foolder1/") you get null.
How can I check that I have this folder.in the UI I see it as folder.

If  storage.get("obj") returns null it means that there is no such object.
As you correctly noticed, "Folder1" in your example is virtual, it does not exist on the Storage. Some applications might interpret object name as path and emulate a file system. In a UI you can see folders and files. From the Storage point of view there are only buckets and objects, and there are no "folders" and "files".
The Stoage API allows one to list objects in the bucket, it does not allow to list "a folder". Commands like "ls folder/" are implemented in emulator, not in the Storage.

@ihudedi ,Thanks for filling the issue.Could you try to add the following dependencies to your pom.xml file and let us know if it helps you
<dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-storage</artifactId>
    <version>1.113.2</version>
</dependency>
<dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-nio</artifactId>
    <version>0.121.2</version>
</dependency>

Code::
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.BlobInfo;
import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.BucketInfo;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageClass;
import com.google.cloud.storage.StorageException;
import com.google.cloud.storage.StorageOptions;
import com.google.cloud.storage.contrib.nio.CloudStorageConfiguration;
import com.google.cloud.storage.contrib.nio.CloudStorageFileSystem;

import java.io.IOException;
import java.nio.file.FileSystem;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Date;
import java.util.Map;

public class DirectoryListTest {
    private static Storage storage =
            StorageOptions.newBuilder().setProjectId("your-project-id").build().getService();
    private static final String BUCKET_NAME="test-file-bucket";
    private static final String BLOB_NAME="new-folder/test-object";
  public static void main(String[] args) throws IOException {
     createBucket(BUCKET_NAME);
     uploadObject(BUCKET_NAME,BLOB_NAME);
     getDirectory(BUCKET_NAME);
     getBlobMetadata(BUCKET_NAME,BLOB_NAME);
  }
    public static void createBucket(String bucketName) {
        StorageClass storageClass = StorageClass.COLDLINE;
        // See this documentation for other valid locations:
        // http://g.co/cloud/storage/docs/bucket-locations#location-mr
        String location = "ASIA";
        BucketInfo bucketInfo =
                BucketInfo.newBuilder(bucketName)
                        .setStorageClass(storageClass)
                        .setLocation(location)
                        .build();
        Bucket bucket = storage.create(bucketInfo);
        System.out.println(
                "Created bucket "
                        + bucket.getName()
                        + " in "
                        + bucket.getLocation()
                        + " with storage class "
                        + bucket.getStorageClass());
    }
    public static void uploadObject(String bucketName, String objectName) throws IOException {
        String filePath = "your-file-path";
        BlobId blobId = BlobId.of(bucketName, objectName);
        BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build();
        storage.createFrom(blobInfo, Paths.get(filePath));
        System.out.println(
                "File " + filePath + " uploaded to bucket " + bucketName + " as " + objectName);
    }
    public static void getDirectory(String bucketName) throws IOException {
        FileSystem fs = getTestBucket(bucketName);
        Path path = fs.getPath("/new-folder");
        System.out.println("===Directory Information===");
        System.out.println("found path:"+path.toAbsolutePath());
        System.out.println("size:" +Files.size(path) );
        System.out.println("isDirecotry:"+Files.isDirectory(path));
    }

    public static void getBlobMetadata(String bucketName, String blobName) throws StorageException {

        // Select all fields
        // Fields can be selected individually e.g. Storage.BlobField.CACHE_CONTROL
        Blob blob =
                storage.get(bucketName, blobName, Storage.BlobGetOption.fields(Storage.BlobField.values()));

        // Print blob metadata
        System.out.println("===Blob Information===");
        System.out.println("Bucket: " + blob.getBucket());
        System.out.println("CacheControl: " + blob.getCacheControl());
        System.out.println("ComponentCount: " + blob.getComponentCount());
        System.out.println("ContentDisposition: " + blob.getContentDisposition());
        System.out.println("ContentEncoding: " + blob.getContentEncoding());
        System.out.println("ContentLanguage: " + blob.getContentLanguage());
        System.out.println("ContentType: " + blob.getContentType());
        System.out.println("CustomTime: " + blob.getCustomTime());
        System.out.println("Crc32c: " + blob.getCrc32c());
        System.out.println("Crc32cHexString: " + blob.getCrc32cToHexString());
        System.out.println("ETag: " + blob.getEtag());
        System.out.println("Generation: " + blob.getGeneration());
        System.out.println("Id: " + blob.getBlobId());
        System.out.println("KmsKeyName: " + blob.getKmsKeyName());
        System.out.println("Md5Hash: " + blob.getMd5());
        System.out.println("Md5HexString: " + blob.getMd5ToHexString());
        System.out.println("MediaLink: " + blob.getMediaLink());
        System.out.println("Metageneration: " + blob.getMetageneration());
        System.out.println("Name: " + blob.getName());
        System.out.println("Size: " + blob.getSize());
        System.out.println("StorageClass: " + blob.getStorageClass());
        System.out.println("TimeCreated: " + new Date(blob.getCreateTime()));
        System.out.println("Last Metadata Update: " + new Date(blob.getUpdateTime()));
        Boolean temporaryHoldIsEnabled = (blob.getTemporaryHold() != null && blob.getTemporaryHold());
        System.out.println("temporaryHold: " + (temporaryHoldIsEnabled ? "enabled" : "disabled"));
        Boolean eventBasedHoldIsEnabled =
                (blob.getEventBasedHold() != null && blob.getEventBasedHold());
        System.out.println("eventBasedHold: " + (eventBasedHoldIsEnabled ? "enabled" : "disabled"));
        if (blob.getRetentionExpirationTime() != null) {
            System.out.println("retentionExpirationTime: " + new Date(blob.getRetentionExpirationTime()));
        }
        if (blob.getMetadata() != null) {
            System.out.println("\n\n\nUser metadata:");
            for (Map.Entry<String, String> userMetadata : blob.getMetadata().entrySet()) {
                System.out.println(userMetadata.getKey() + "=" + userMetadata.getValue());
            }
        }
    }

    private static CloudStorageFileSystem getTestBucket(String bucketName) throws IOException {
        return CloudStorageFileSystem.forBucket(
                bucketName, CloudStorageConfiguration.DEFAULT, StorageOptions.newBuilder().build());
    }
}

Output::
Created bucket test-file-bucket in ASIA with storage class COLDLINE
File your-file-path uploaded to bucket test-file-bucket as new-folder/test-object
===Directory Information===
found path:/new-folder
size:1
isDirecotry:true
===Blob Information===
Bucket: test-file-bucket
CacheControl: null
ComponentCount: null
ContentDisposition: null
ContentEncoding: null
ContentLanguage: null
ContentType: application/octet-stream
CustomTime: null
Crc32c: xChmFQ==
Crc32cHexString: c4286615
ETag: CLDDm7ru6OwCEAE=
Generation:<PHONE_NUMBER>818096
Id: BlobId{bucket=test-file-bucket, name=new-folder/test-object, generation=1604491992818096}
KmsKeyName: null
Md5Hash: Ky0bu9zpFJE+6jVZllnpZQ==
Md5HexString: 2b2d1bbbdce914913eea35599659e965
MediaLink: https://storage.googleapis.com/download/storage/v1/b/test-file-bucket/o/new-folder%2Ftest-object?generation=16044919928096&alt=media
Metageneration: 1
Name: new-folder/test-object
Size: 9584
StorageClass: COLDLINE
TimeCreated: Wed Nov 04 17:43:12 IST 2020
Last Metadata Update: Wed Nov 04 17:43:12 IST 2020
temporaryHold: disabled
eventBasedHold: disabled

Hi
The code works perfect.thanks a lot for the time.
Thanks,
Itay

@ihudedi,Thanks for the write-up.Am closing this issue as it's work on user end.


Hidden Nodes?

What is Hidden Nodes? shouldn't there be two arguments instead of one? (hidden layers, hidden neurons).

The implementation only supports 1 hidden layer. "Hidden Nodes" is the number of nodes/neurons in the hidden layer.


Integrate Dapple testing

Dapple has a great testing framework where the tests are written in Solidity.
It would be great if Dapple tests could be run from within browser-solidity.

Which kind of integration are you thinking about?

Currently I can run dapple test on the command line. If I could press a button in browser-solidity to do the same thing it would be nice.


Need placeholder for Strengths and Opportunities fields

If you somehow remove the content of the strength or opportunity field, the field disappears and there is nowhere to click.   Can we use placeholders?  If not, we need to synthesize them so that there is something to click on.

what if we put: "No recommendations yet" if there is empty value? @geverit4

Done


Dragging Folders from File System into VS Code PWA

With the standard Electron version of VS Code, the user is able to drag folders into the workspace from the File System, and it will open that folder in the current window.
I tried using this feature while editing my projects with the PWA version of VS Code at https://vscode.dev, however the folder did not open in the Workspace, as it does with the Electron version. I was using the VS Code PWA on Chrome OS with Chrome 97 installed.
In browsers that support the File System Access API, element drop events have the ability to return FileSystemDirectoryHandle objects after using the getAsFileSystemHandle() method on any DataTransferItem entries present on the event, if the user is dragging a folder. This would allow the user to drop a folder into the Workspace, and using the DataTransferItem entry to open
that folder with the Workspace.
This would be a very helpful feature to also have with the PWA version, it provides another way that the user can open folders from the file system, alongside the currently available "Open Folder" button in the Explorer menu.
Great work on the progress of the PWA by the way, it is working awesome so far!
Here's a reference to the information I found about the DataTransferItem.getAsFileSystemHandle() feature I mentioned above:
https://web.dev/file-system-access/#drag-and-drop-integration

fyi @bpasero

I have done some of my own testing since this bug, and I stumbled on another issue since my original comment, not having to do with https://vscode.dev's implementation.
I found the issue on Chrome OS, and I think there may an additional implementation issue in terms of the browser itself.
I was going to try an implement a feature like VS Code's Explorer myself, so I can learn more about how it works, and I found out any time you have a directory as a selected item in your drag selection, it will prevent any FileSystemHandle objects from appearing inside of event.dataTransfer.items.
I will be testing my original issue comment above on other operating systems to see if the issue is still present, or if the whole problem was caused by Chrome OS's implementation issue.
I will do more testing for this new find, and if further results have the same outcome, I will submit a Chrome OS-specific issue report as well.

Alright, did some testing with my own code snippet from the last comment on Windows, and everything is behaving as expected in terms of browser implementation.
The original feature request for https://vscode.dev is still accurate as well, it looks like the dropping directories into the app isn't supported in the browser as of now, regardless of platform implementation issues, like the one on Chrome OS.
Summary:

Original feature proposal still stands for https://vscode.dev
I happened to find an implementation issue in Chrome OS that would affect this feature from working correctly, had it been part of the PWA at the time of my initial findings.

(Filed the Chrome OS bug as https://crbug.com/1295210.)

Pushed a couple of changes that adds FileSystemHandle support to our drop handlers where the browser supports it.
This already enables a few interesting scenarios:

dropping files to editor area for opening as real local file editors
dropping a folder to the editor area for opening as workspace
dropping a file or folder into a local workspace to copy the contents over

I need to test this a bit more around handling N folders being dropped and supporting to add a folder to the workspace when dropped over the explorer, not sure yet why I am not getting asked whether I want to add the folder to the workspace or copy it into. We probably have some isWeb checks I need to clean up.
Also interesting how we can support this when a remote (such as GH) is opened. We can still support to open local files, but probably not folders.

Did a complete test of all our drop sensitive locations and pushed some more changes.

editor area
editor tabs
empty explorer
open editors view

Is there a time frame of when it may be likely to see this available in the stable https://vscode.dev @bpasero?
Thanks for your work to have this implemented, it's a very helpful addition!


Add group of users to stream via commandline

When using manage.py add_users_to_streams - the ability to add groups to streams would be a great addition.
Our departments are added to groups, via LDAP-sync - and adding these to streams, based on groups/departments would be nice.
A 'real' permission system where groups have access to certain groups would be preferable but the addition of a -G  to the Add_Users_to_Stream function would go a long way.

You should be able to do this using the Zulip API -- is there a reason you're looking to do it in a management command?
For the actual problem, along with https://github.com/zulip/zulip/issues/19525, we'll be introducing "stream groups" to support the sort of management you're looking for here more naturally.

Hi :)
The only reason is that I have a simple cron-job that keeps my streams memberships up to date.
the api would require a lot more work, but I’ll look into it.

yeah... after looking into it, the ability to use manage.py with groups would be nice for non-programmers. 😅

I made a PWSH-script as a temporary solution, it adds any a group to a stream if the have the same name.
admin api-key and a bot api-key is needed and domain needs to be changed to the correct string.
`
Setup
$url='https://zulip.domain/api/v1'
Admin/Api-key
$user='administrator@domain'
$pass='key'
Authentication header
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Headers = @{
Authorization = $basicAuthValue
}
Groupbot/Api-key
<EMAIL_ADDRESS>$pass='key'
Authentication header
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$HeadersBot = @{
Authorization = $basicAuthValue
}
Script
$groups=Invoke-RestMethod $url/user_groups -headers $Headers -Method GET
$streams=Invoke-RestMethod $url/streams -headers $Headers -Method GET
$streamsANDgroups=Compare-Object $groups.user_groups.name $streams.streams.name -IncludeEqual -ExcludeDifferent -PassThru
$existing=$groups.user_groups|Where-Object -Property name -in $streamsANDgroups
foreach ($stream in $existing) {
$s_temp=$stream.name
$p_temp=$stream.members
$body= @{
"subscriptions" = "[{"name": "$s_temp"}]"
"principals" = $p_temp|ConvertTo-Json
}
if ($p_temp.Count -gt 1) {
write-host adding $p_temp to $s_temp
$response = Invoke-RestMethod $url/users/me/subscriptions -Method POST -Headers $HeadersBot -Body $body
} else {
Write-Host Cannot handle groups with less than 2 users: $p_temp / $s_temp (convertto-json bug?)
} ## End IF/ELSE
} ## End Foreach`


ChatCompletionsOptions.Messages is ready-only?

is "Messages" get only property? How one can pass messages if it's not accepting to pass list of messages?

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

ID: c9396148-56dc-dd8a-2d51-7421ac29538a
Version Independent ID: 64442318-ea9e-0811-2b36-20073c2343ca
Content: ChatCompletionsOptions.Messages Property (Azure.AI.OpenAI) - Azure for .NET Developers
Content Source: xml/Azure.AI.OpenAI/ChatCompletionsOptions.xml
Service: azure
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

If the change is not planned, can you fix the documentation to match, very frustrating to see Microsoft documentation say one thing and this to say another.


Use past participle in the type checker methods

The methods of the type checker are generally named using the imperative form of a verb. We could perhaps improve clarity at call site using past participle (e.g., deducedType rather than deduceType).
Also see:

All calls whose primary role from the caller's POV is to return a value should be consistent.  By making the suggestion I'm bringing up the possibility that all such methods should change.

Originally posted by @dabrahams in https://github.com/val-lang/val/pull/292#discussion_r1093805202

Done with c7105ad3d012b709742c6c4d4d77a0c42ed7345c and 42aa2c7cde3b28c2a8452d0f3ddc842495eeface.


[Beta 16] Addenduns bug

Addenduns are getting added tosome thaumanomicon entries beforethe requiredresearch for the addendum is completed
just opening a entry, and not completing it, is leading to addedun pop-ups

Could you give specifics please.

Some Research Cards have blocks that they need in other to be completed
when it requires a block, like a piston on a enchantment table, there is a weird transparency glitch, as in, the block becomes a bit transparent
As soon as I log back to play the game I'll take a screenshot
BTW, I feel like this could be optifine now that I think about it... anyhow, I'll try it with and without optifine and I'll tell my results later


Stream not sending entire data

I am running the client.c and server.c (The C example of server and client) file on my testbed. When I am trying to send 25000 bytes of data using the conn_stream_send API, I am not receiving the data entirely at the client end. I just receiving 12655 and 845 bytes at the client side.

I see that this is because of stream capacity. Is there any way we can increase the stream capacity?

I wouldn't expect there to be any problem with these examples, are you running them unmodified?


docs(topic-message-handling): create page structure using .pages

Description

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The Reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@takam5f2
Thank you very much for your fix.
I appreciate and merge it.


First crack at deserialization with back-refs.

The movements of code into different files is not controversial. That could land as a separate PR (which might also make it easier to focus on the compression code in this PR).
Apart from the comments I've made here, I think the ones I made on your other PR are still pertinent: Chia-Network/chia_rs#55

Okay, let's do that.

I think everything looks good, but the last commit probably should have been a separate PR. It introduced a clippy warning

Okay, I've rolled this one back for now.


Change PubkeyListActivity's options menu.

Now, it has two icons to represent the two actions, as recommended by @bengolds. Fixes #168.

Looks like you forgot to git add some files

Added the files. Oops.


Make EBPF tracer config visible

Before we expose the tracer config in Alloy (https://github.com/grafana/beyla/issues/1217), we need to make this property visible in Beyla, at an API level.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 53.03%. Comparing base (fb3b304) to head (0649f5f).

:exclamation:  There is a different number of reports uploaded between BASE (fb3b304) and HEAD (0649f5f). Click for more details.
HEAD has 2 uploads less than BASE

Flag
BASE (fb3b304)
HEAD (0649f5f)

k8s-integration-test
1
0

integration-test
1
0

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1222       +/-   ##
===========================================
- Coverage   79.78%   53.03%   -26.76%
===========================================
  Files         137      137
  Lines       11483    11483
===========================================
- Hits         9162     6090     -3072
- Misses       1781     4997     +3216
+ Partials      540      396      -144

Flag
Coverage Δ

integration-test
?

k8s-integration-test
?

unittests
53.03% <ø> (ø)

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Controller to reject vsecm-managed SVIDs that don't conform a certain template

Closing this one.
There are issues to make SVIDs more flexible.
When SVIDs are flexible validating them would be harder.
No need to complicate things.


Save a snapshot and use it later

Is it possible?

No, it's not possible right now. STPyV8 is a fork of PyV8. And when we started porting it to the most recent versions of V8 and Python one of our design goals was STPyV8 has to be simple. This is the reason why some PyV8 features (especially the ones that did not make use of the official API) were dropped too. By the way please let us know about the scenarios this feature could be useful and we will consider a potential implementation. Thanks

I don't know how worthy performance-wise it would be, but I was thinking of using Redis Gears, which runs Python functions inside a Redis Database and I needed the ability to run custom javascript inside it, so I thought about STPyV8. I thought creating a snapshot and loading from it every time instead of requiring the JS libraries would be faster.

I think it's worth trying. FYI right now STPyV8 is built with the snapshot support disabled. But you can easily enable it by modifying gn_args through the file settings.py (the args you need are v8_use_external_startup_data and v8_use_snapshot. I never did that but I think you can probably generate the snapshot using mksnapshot and then let STPyV8 load it. And this is potentially interesting documentation in case you need additional details
https://github.com/danbev/learning-v8/blob/master/notes/snapshots.md


Is this a typo?

Describe the bug
Is there any possibility of memory leakage?
microsoft-ui-xaml/dev/ScrollPresenter/ScrollPresenter.cpp

Steps to reproduce the bug
No response
Expected behavior
No response
Screenshots
No response
NuGet package version
WinUI 3 - Windows App SDK 1.2.5: 1.2.230313.1
Windows version
No response
Additional context
No response

This has been fixed in WinUI3. It does not meet the bar for servicing in WinUI2.


Failure to load archive @six_archive when loading from abseil-py from a Bazel project.

I have added abseil-py to my project's bazel WORKSPACE like so:
http_archive(
    name = "io_abseil_py",
    strip_prefix = "abseil-py-master",
    url = "https://github.com/abseil/abseil-py/archive/master.zip",
)

I attempted to add absl:app in my build file as a dependency for a trivial python script like so:
py_binary(
    name = "abseil_test",
    srcs = ["abseil_test_script.py"],
    deps = ["@io_abseil_py//absl:app"],
)

The build fails with this message:
[mrdmnd@maximumkappa policygen]$ bazel clean
(05:27:48) INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.
[mrdmnd@maximumkappa policygen]$ bazel build learn:abseil_test
(05:27:52) INFO: Current date is 2018-02-27
(05:27:53) ERROR: /home/mrdmnd/.cache/bazel/_bazel_mrdmnd/c741fceeeed6ca1106cd8d8a1f1c8dbf/external/io_abseil_py/absl/flags/BUILD:5:1: no such package '@six_archive//': The repository could not be resolved and referenced by '@io_abseil_py//absl/flags:flags'
(05:27:53) ERROR: Analysis of target '//learn:abseil_test' failed; build aborted: no such package '@six_archive//': The repository could not be resolved
(05:27:53) INFO: Elapsed time: 0.993s
(05:27:53) FAILED: Build did NOT complete successfully (17 packages loaded)
[mrdmnd@maximumkappa policygen]$

I suspect that there is an issue with the provided @six_archive in your WORKSPACE file.
Alternatively, and possibly more likely, I may have made a trivial mistake somewhere.

Note that transitive dependencies in WORKSPACE files are not read by bazel, see more information here.
So you need to add the six_archive in your own WORKSPACE file:
new_http_archive(
    name = "six_archive",
    urls = [
        "http://mirror.bazel.build/pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz",
        "https://pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz",
    ],
    sha256 = "105f8d68616f8248e24bf0e9372ef04d3cc10104f1980f54d57b2ce73a5ad56a",
    strip_prefix = "six-1.10.0",
    build_file = "third_party/six.BUILD",
)

Let me know if this solves your issue.

Yep, this solves it. Thanks.

Should this work as-is?  build_file = "third_party/six.BUILD" doesn't exist in the six archive, only in abseil-py.  I had to manually copy the contents of six.BUILD as found in abseil-py into build_file_content, not build_file.
Was there something I'm missing?


New version 1.10.1

Codecov Report
Base: 92.34% // Head: 92.34% // No change to project coverage :thumbsup:

Coverage data is based on head (d88ec8b) compared to base (94ba8c4).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #234   +/-   ##
=======================================
  Coverage   92.34%   92.34%
=======================================
  Files           6        6
  Lines        2849     2849
=======================================
  Hits         2631     2631
  Misses        218      218

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

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


Add new tutorial for Webhook

Fixes https://github.com/wso2-enterprise/choreo/issues/10629

This PR needs updates after the introduction of the Statement Editor.


Fixed typos and missing context in en locale

Just fixed some typos here and there and rephrased some stuff for added clarity. This shouldn't break anything (?) but I haven't been able to get a local dev version of the launcher to run on my machine, so if anyone could test the strings and see if anything needs fixing, that'd be great.

Outside of the changes outline above, I think everything else should be good. @neon-nyan Feel free to chime in if anything seems out of place or will break the UI with the string changes for en locale.

Hi @Cryotechnic,
Thank you very much for your contribution! 😃
I really appreciate it. This helped me a lot with grammar fixes, since English is not my primary language.
Besides all the changes request that I made recently, the rest of them are looking good.
If you have any changes that need to be pushed or once it's all been finished, feel free to leave a comment on this PR.

Thanks @Cryotechnic,
I think only one request left for line No. 12 that need to be changed.
The rest of that are looking good. So I think after all of these changes have been completed, we can just merge this PR right away.

Looking good!
We can go to merge this PR now.
Once again, thank you for your contribution! 😄


Simple Browser url bar doesn't reflect navigation changes

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.85.2
OS Version: Mac 14.1.1

Steps to Reproduce:

Show Browser with any link
Navigate on the page to a new url

This causes the issue that when you click "Open in external browser" it will open to the url that you initially opened the extension with, not whatever you navigated to.

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


Add further editions of java

As an IDEasy user, I want to be able to install the latest Java (JDK) so that I can start using and evaluation the latest LTS.
Currently Java 21 LTS is released.
However, even weeks after the release adoptium/temurin does not yet offer 21 builds for download.
As a result, I can not install Java 21 with IDEasy (or devonfw-ide).
But e.g. Microsoft already provides Java 21 builds of OpenJDK for windows.
Here is an overview of OpenJDK distributions (editions):
https://bell-sw.com/blog/oracle-java-alternatives-comparison-of-openjdk-distributions/?utm_medium=cpc&utm_source=google&utm_campaign=20379923274&utm_content=160006782428&utm_term=kwd-823725544058&gclid=EAIaIQobChMI0rOL_8vogQMVy4poCR2Rsw83EAAYASAAEgLJWvD_BwE#mcetoc_1h197r93f2ij
So the idea would be to have a quick analysis if some alternative provider should be added as further edition in ide-urls.
If we find something suitable an additional UrlUpdater shall be implemented.

@hohwille I can install all java versions successfully. Could you please retest this bug?


Release v1.8.1 (#346)

Release v1.8.1 (#327)

workflow test changes for 1.8.1 (#322)

1.8.1 dashboards (#324)

added dashboards

added jhub

correction migrations

adding helm-operator values

infra-1.8.1 Monitoring dashboard (#331)

edited dashboards

1.8.1 daignostic dashboard fix (#340)

Bump infra-repo

fix lint unit test due to bitnami/charts#10539

TH2-4576 OOMKilled alert creation (#352)

add alerts of restarting pods

Co-authored-by: Saba Mushtashvili<EMAIL_ADDRESS>Co-authored-by: dilyaver.kaibulaev<EMAIL_ADDRESS>Co-authored-by: andrey.shulika<EMAIL_ADDRESS>Co-authored-by: denis.solovev<EMAIL_ADDRESS>

Closed. No changes.


Add a read grant type that automatically releases all bytes on drop

I simply copied the normal RGrant and adapted it. I hope that's an ok course of action.
I have not added any tests yet.
Maybe you could comment on whether this is what you had in mind or if this is way off track.
If this seems ok, I can add tests :)

I adjusted everything according to request :)

Sorry for the delay!

No worries :)


"et al." or "and others"

English it not my primary language so i did not know what "et al." meant as see on the start up screen of Vim.
#: version.c:1320
msgid "by Bram Moolenaar et al."

Also seen in:
#: regexp.c:370
msgid "E67: \\z1 et al. not allowed here"

I thought perhaps "Bram Moolenaar et al." was the full name or something.
Would it perhaps make more sense to write "and others" or something like that so perhaps more people can understand it?
#: version.c:1320
msgid "by Bram Moolenaar and others"

#: regexp.c:370
msgid "E67: \\z1 and others not allowed here"

"Et al." should be kept in "by Bram Moolenaar et al." because it's more specific than "and others" (it applies to people). However, using that expression in "\z1 et al. not allowed here" is a mistake as "\z1" doesn't refer to a person but a thing. "Etc." should be used instead.

How is it more specific?
If it says a persons name followed by "and others" i would assume that its "and other people".

You answered yourself the question. With "et al.", you don't need that assumption.

I don't think 'et al.' only applies to people.  E.g., the similar phrase 'inter alia' just means "among other things"  whereas 'inter alios' means “among other people."  I.e., 'al.' can stand for anything; alii, aliae, alia, &c.
Anyway these messages are all translated with the appropriate words for other languages, so why change the english version, when one could use vim in their native language if they choose?

I don't think 'et al.' only applies to people. E.g., the similar phrase 'inter alia' just means "among other things" whereas 'inter alios' means “among other people." I.e., 'al.' can stand for anything; alii, aliae, alia, &c.

That's the usage. The original meaning doesn't matter.

Do people that use english as primary language generally know what el al. means?
I guess that is the most important thing.

It seems that some of the translators keeps the "et al." part.
It could be that this is also valid translation in their language but perhaps the translators dont know what it means or think its part of the name and keeps it without translating it.
af.po:
deur Bram Moolenaar et al.

ca.po:
per Bram Moolenaar et al.

es.po:
por Bram Moolenaar et al.

fi.po:
tekijät Bram Moolenaar et al.

fr.po:
par Bram Moolenaar et al.

ga.po:
le Bram Moolenaar et al.

it.po:
di Bram Moolenaar et al.

ko.po:
by Bram Moolenaar et al.

ko.UTF-8.po:
by Bram Moolenaar et al.

pt_BR.po:
por Bram Moolenaar et al.

zh_TW.po:
維護者: Bram Moolenaar et al.

zh_TW.UTF-8.po:
維護者: Bram Moolenaar et al.

scootergrisen<EMAIL_ADDRESS>wrote:

It seems that some of the translators keeps the "et al." part.
It could be that this is also valid translation in their language
but perhaps the translators dont know what it means or
think its part of the name and keeps it without translating it.

"et al." is a Latin abbreviation, so it's not surprising
that other languages use it as well  (just like "etc"
is used in many languages).
Dominique

@scootergrisen :

Do people that use english as primary language generally know what el al. means?
I guess that is the most important thing.

Many Latin abbreviations or expressions are common in English. I've often seen "et al." to mean "and others", especially about people, in English texts, so often in fact that even though my mother language is not English (but French) I understand this particular abbreviation as a matter of course. I don't have an English unilingual dictionary at hand, but I see "et al" even as an entry in the English-Russian part of the Concise Oxford Russian Dictionary, as follows:
et al [et 'æl] (abbr. of et alii) и други́е.
where "и други́е" is Russian for "and others".
Best regards,
Tony.

We also have "et al." in danish it seems i just never come across it i think.
I think i like the "and others" better at least for danish translation so people like my self have a chance to understand it.

Well, if I am correct in assuming that you're the Danish translator, you're the one to choose between "et al." and "og andre" (if that's the native-Danish expression). As a former professional translator I would use the translation closest to the original text if it exists in the target language, but there is always some leeway coming from the fact that the expression might be less common, maybe much less common, in the target language than in the source language, and I don't know Danish well enough to have an opinion about that. What I do know is that "et al." is quite common in English.


Params on first page config option

Hello,
I am trying to set this option to true as described in the documentation. I used rails g kaminari:config which generated the following kaminari_config.rb :
Kaminari.configure do |config|
  # config.default_per_page = 25
  # config.max_per_page = nil
  # config.window = 4
  # config.outer_window = 0
  # config.left = 0
  # config.right = 0
  # config.page_method_name = :page
  # config.param_name = :page
end

The params_on_first_page option not being present, I tried to add it before the end, this way : config.params_on_first_page = true
However, this doesn't seem to work, and I can't launch my rails server anymore. It gives me the following error :

Exiting
/home/vincent/workspace/bam-rails/config/initializers/kaminari_config.rb:10:in block in <top (required)>': undefined method param_on_first_page=' for #Kaminari::Configuration:0x0055c09deaddb0 (NoMethodError)
Did you mean?  param_name=

I am using the version 0.17.0 of Kaminari. Am I missing something ?
Thank you in advance for your help, and keep up the good work.

That option is only available on the master branch on GitHub. Please switch over to it if you want to use it.
gem "kaminari", github: "amatsuda/kaminari"


Convert to ES6 classes

Consider dropping Orbit's custom class system in favor of ES6 classes.

Resolved via the rethink branch - merged via #299


Customized quiz

Describe the project you want to add with tech stack

The Project contains a customized quiz. You can First put questions and their answers and then the quiz will automatically  form. Can you assign this task to me?
User can enjoy the quiz and at last his/her score will be declared.
Expected behavior

Screenshots (optional)

Additional context (optional )

@MohitGupta121 Can you please assign this task to me?

Please assign me this issue I would love to work on it. I am a GSSOC'23 contributor.


Fix hash syntax in Table example

The invalid, JSON-style syntax can prevent proper Ruby syntax highlighting in some generated documentation.

Not technically invalid syntax. It works just fine in ruby 2.2. :trollface:

True, but with surprising results (at least for me). To be avoided!
irb(main):001:0> { "a": 1 }
=> {:a=>1}

Totally agree. Converting the string to a symbol is a bit surprising and worth avoiding. Thanks for fixing this.

It only got in because I copied/pasted some JSON from the official docs...

I've been bitten by that more times than I can count.


Arrangement and execution of the meeting for analysis of current state of the art and implementation of citations - 2024#1 (issue #995 related)

The goal is to arrange and execute the meeting for analysis of current state of the art and implementation of citations - 2024#1. The following things should be prepared:

[x] scope and schedule of meeting (in one week);

[x] conducting team (in two weeks);

[x] guide or instructions with examples (one week before meeting);

[x] announcement (in Slack and Teams channel) with basic information (conducting persons, date,scope,schedule) (one week before meeting);

[x] exemplary code in Jupyter (link) (one week before meeting).

Meeting has been executed.


osx_profile is not idempotent when dealing with  types

Description
When adding <data> type to osx_profiles, the chef resource will continually run. This is due to the use of StringIO, which is what the included plist gem uses. (https://github.com/bleything/plist/blob/master/lib/plist/generator.rb#L41-L43).
@natewalck and I have discussed this. Since StringIO is required, osx_profile may need a separate UUID function as a workaround.
Chef Version
chef-client 12.13.17
Platform Version
macOS 10.11.6
Replication Case
Create a cookbook that utilizes osx_profile and add a data type.
#
# Cookbook Name:: data_profile_test
# Recipe:: default
#

profile_hash = {
  'PayloadIdentifier' => 'com.company.screensaver',
  'PayloadRemovalDisallowed' => false,
  'PayloadScope' => 'System',
  'PayloadType' => 'Configuration',
  'PayloadUUID' => '1781fbec-3325-565f-9022-8aa28135c3cc',
  'PayloadOrganization' => 'Chef',
  'PayloadVersion' => 1,
  'PayloadDisplayName' => 'Screensaver Settings',
  'PayloadContent'=> [
    {
      'PayloadType' => 'com.apple.ManagedClient.preferences',
      'PayloadVersion' => 1,
      'PayloadIdentifier' => 'com.company.screensaver',
      'PayloadUUID' => '73fc30e0-1e57-0131-c32d-000c2944c108',
      'PayloadEnabled' => true,
      'PayloadDisplayName' => 'com.apple.screensaver',
      'PayloadContent' => {
        'com.apple.screensaver' => {
          'Forced' => [
            {
              'mcx_preference_settings' => {
                'idleTime' => 0,
                'Datatest' => StringIO.open('test'),
              }
            }
          ]
        }
      }
    }
  ]
}

osx_profile 'Install screensaver profile' do
  profile profile_hash
end

Client Output
Starting Chef Client, version 12.13.37
resolving cookbooks for run list: ["data_profile_test"]
Synchronizing Cookbooks:
  - data_profile_test (0.0.1)
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 1 resources
Recipe: data_profile_test::default
  * osx_profile[Install screensaver profile] action install
    - install profile com.company.screensaver

Running handlers:
Running handlers complete
Chef Client finished, 1/1 resources updated in 05 seconds

Starting Chef Client, version 12.13.37
resolving cookbooks for run list: ["data_profile_test"]
Synchronizing Cookbooks:
  - data_profile_test (0.0.1)
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 1 resources
Recipe: data_profile_test::default
  * osx_profile[Install screensaver profile] action install
    - install profile com.company.screensaver

Running handlers:
Running handlers complete
Chef Client finished, 1/1 resources updated in 04 seconds

Stacktrace
No stacktrace

This is still needed...
I really don't like chef's habit of closing old tickets when they are still needing work. I've seen this happen multiple times around macOS.

It’s needed until profile installs go away...
On Wed, Aug 7, 2019, at 5:20 PM, Erik Gomez wrote:

This is still needed...

I really don't like chef's habit of closing old tickets when they are still needing work. I've seen this happen multiple times around macOS.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/chef/chef/issues/5229?email_source=notifications&email_token=AAGT4HA2K7MOD27HDQGMC43QDM4CPA5CNFSM4CNISOZ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3ZXXXI#issuecomment-519273437, or mute the thread https://github.com/notifications/unsubscribe-auth/AAGT4HGPXOI2GZ4TU7G7GNTQDM4CPANCNFSM4CNISOZQ.


Belgrade, Serbia

@dejanilic I am sorry, I have to close this request without merging, because you requested to add a non-existent domain to this repository:
$ host edu.bgd
Host edu.bgd not found: 3(NXDOMAIN)

Please ensure you are familiar with this repository rules located at the bottom of this page and submit a new request with correct information. Thank you for the understanding!


enabel ocm apiservice TLS

Signed-off-by: Zhiwei Yin<EMAIL_ADDRESS>related issue: https://github.com/open-cluster-management/backlog/issues/13329

@zhiweiyin318  With the service serving certificates being added to the ocm-webhooks and apiservice, does the same need to be done about the ocm-klusterlet-self-signed-secrets?

@JakobGray ocm-klusterlet-self-signed-secrets is used to access the log server of managed clusters, I am working on it with another solution since it does not support rotation too.

/ok-to-test

/lgtm


Ctrl+Shit+Power still doesn't work

Version 0.90.67 fixed this issue on built-in keyboard.
However it is still not working with external original Apple Bluetooth Keyboard.

Same issue here but with original usb keyboard with numeric keypad.
OS X Sierra and karabiner-elements 0.90.67

{
    "profiles": [
        {
            "name": "Default profile",
            "selected": true,
            "simple_modifications": {
                "caps_lock": "left_control"
            },
            "standalone_keys": {
                "left_control": "escape"
            }
        }
    ]
}

With this config I have the same issue: can't use ctrl+shift+power or cmd+option+power

Oops. Ctrl–Shift–Power works well, but Ctrl–Shift–Eject or Option-Command-Eject doesn't. As I see in Karabiner-EventViewer, Eject isn't tracking by Karabiner. Am I right?

same.  i have a mac mini with an apple usb+numpad keyboard.  it has eject.  with K-E running, i can't Ctrl-Shift-Eject to lock screen.
Eject shows in event viewer as "SysKey(Up|Down)" "0xE" and has no Name.
is this as simple maybe as assigning a Name to the key?

Ctrl–Shift–Eject doesn't work on iMac 2015!

This problem has been well documented in #46 and #89 . Can we close this issue?

CTRL-💩 -POWER?


[BUG] Windows 10 - Failed to update user pull secret or cluster ID: Temporary Error: exit status 1

General information

OS: Windows
Hypervisor: Hyper-V
Did you run crc setup before starting it (Yes/No)? YES

CRC version
crc version: 1.3.0+918756b
OpenShift version: 4.2.10 (embedded in binary)

CRC status
PS C:\Users\sinsu2r\Downloads\crc-windows-amd64 (1)\crc-windows-1.3.0-amd64> .\crc.exe status
ERRO Unable to connect to the server: dial tcp: lookup api.crc.testing: no such host
 - exit status 1

CRC config
PS C:\Users\sinsu2r\Downloads\crc-windows-amd64 (1)\crc-windows-1.3.0-amd64> .\crc.exe config
Modifies crc configuration properties.
Configurable properties (enter after SUBCOMMAND):

 * bundle
 * cpus
 * disable-update-check
 * http-proxy
 * https-proxy
 * memory
 * nameserver
 * no-proxy
 * pull-secret-file
 * vm-driver
 * skip-check-administrator-user
 * warn-check-administrator-user
 * skip-check-bundle-cached
 * warn-check-bundle-cached
 * skip-check-hyperv-installed
 * warn-check-hyperv-installed
 * skip-check-hyperv-switch
 * warn-check-hyperv-switch
 * skip-check-user-in-hyperv-group
 * warn-check-user-in-hyperv-group
 * skip-check-windows-version
 * warn-check-windows-version

Usage:
  crc config SUBCOMMAND [flags]
  crc config [command]

Available Commands:
  get         Get a crc configuration property
  set         Set a crc configuration property
  unset       Unset a crc configuration property
  view        Display all assigned crc configuration properties

Flags:
  -h, --help   help for config

Global Flags:
  -f, --force              Forcefully perform an action
      --log-level string   log level (e.g. "debug | info | warn | error") (default "info")

Use "crc config [command] --help" for more information about a command.

Host Operating System
PS C:\Users\sinsu2r\Downloads\crc-windows-amd64 (1)\crc-windows-1.3.0-amd64> systeminfo

Host Name:                 TXSLHPL3092
OS Name:                   Microsoft Windows 10 Enterprise
OS Version:                10.0.16299 N/A Build 16299
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Member Workstation
OS Build Type:             Multiprocessor Free
Registered Owner:          Administrator
Registered Organization:   EDN
Product ID:                00329-00000-00003-AA779
Original Install Date:     6/21/2019, 12:45:02 PM
System Boot Time:          12/27/2019, 8:23:44 AM
System Manufacturer:       HP
System Model:              HP ZBook 17 G5
System Type:               x64-based PC
Processor(s):              1 Processor(s) Installed.
                           [01]: Intel64 Family 6 Model 158 Stepping 10 GenuineIntel ~2592 Mhz
BIOS Version:              HP Q70 Ver. 01.07.01, 6/3/2019
Windows Directory:         C:\WINDOWS
System Directory:          C:\WINDOWS\system32
Boot Device:               \Device\HarddiskVolume3
System Locale:             en-us;English (United States)
Input Locale:              en-us;English (United States)
Time Zone:                 (UTC-06:00) Central Time (US & Canada)
Total Physical Memory:     32,547 MB
Available Physical Memory: 18,038 MB
Virtual Memory: Max Size:  37,411 MB
Virtual Memory: Available: 10,004 MB
Virtual Memory: In Use:    27,407 MB
Page File Location(s):     C:\pagefile.sys
Domain:                    win.eng.vzwnet.com
Logon Server:              \\NJ51ADDCP2
Hotfix(s):                 90 Hotfix(s) Installed.
                           [01]: KB4532999
                           [02]: KB3186568
                           [03]: KB3186569
                           [04]: KB3186570
                           [05]: KB3186571
                           [06]: KB3186572
                           [07]: KB3186573
                           [08]: KB3186574
                           [09]: KB3186575
                           [10]: KB3186576
                           [11]: KB3186577
                           [12]: KB3186578
                           [13]: KB3186586
                           [14]: KB3186587
                           [15]: KB3186588
                           [16]: KB3186589
                           [17]: KB3186590
                           [18]: KB3186591
                           [19]: KB3186592
                           [20]: KB3186594
                           [21]: KB3186595
                           [22]: KB3186596
                           [23]: KB3186601
                           [24]: KB3186602
                           [25]: KB3186603
                           [26]: KB4033393
                           [27]: KB4033394
                           [28]: KB4033395
                           [29]: KB4033396
                           [30]: KB4033397
                           [31]: KB4033398
                           [32]: KB4033399
                           [33]: KB4033400
                           [34]: KB4033401
                           [35]: KB4033402
                           [36]: KB4033403
                           [37]: KB4033404
                           [38]: KB4033405
                           [39]: KB4033406
                           [40]: KB4033407
                           [41]: KB4033408
                           [42]: KB4033409
                           [43]: KB4033410
                           [44]: KB4033411
                           [45]: KB4033412
                           [46]: KB4033413
                           [47]: KB4033414
                           [48]: KB4033415
                           [49]: KB4033416
                           [50]: KB4054590
                           [51]: KB4054591
                           [52]: KB4054592
                           [53]: KB4054593
                           [54]: KB4054594
                           [55]: KB4054595
                           [56]: KB4054596
                           [57]: KB4054597
                           [58]: KB4054598
                           [59]: KB4054599
                           [60]: KB4054600
                           [61]: KB4054601
                           [62]: KB4054602
                           [63]: KB4054603
                           [64]: KB4054604
                           [65]: KB4054605
                           [66]: KB4054606
                           [67]: KB4054607
                           [68]: KB4054608
                           [69]: KB4054609
                           [70]: KB4054610
                           [71]: KB4054611
                           [72]: KB4054612
                           [73]: KB4054613
                           [74]: KB4054855
                           [75]: KB4338832
                           [76]: KB4339420
                           [77]: KB4343902
                           [78]: KB4346085
                           [79]: KB4462930
                           [80]: KB4477136
                           [81]: KB4480979
                           [82]: KB4485448
                           [83]: KB4486153
                           [84]: KB4500641
                           [85]: KB4509093
                           [86]: KB4512575
                           [87]: KB4516115
                           [88]: KB4521860
                           [89]: KB4523202
                           [90]: KB4530714
Network Card(s):           8 NIC(s) Installed.
                           [01]: Intel(R) Wireless-AC 9560 160MHz
                                 Connection Name: Wi-Fi
                                 DHCP Enabled:    Yes
                                 DHCP Server:     <IP_ADDRESS>
                                 IP address(es)
                                 [01]: <IP_ADDRESS>
                                 [02]: fe80::6ea:56ff:fedb:b866
                                 [03]: 2600:1700:550:e070:6ea:56ff:fedb:b866
                                 [04]: 2600:1700:550:e070::41
                           [02]: Intel(R) Ethernet Connection (7) I219-LM
                                 Connection Name: Ethernet
                                 Status:          Media disconnected
                           [03]: Generic Mobile Broadband Adapter
                                 Connection Name: Cellular
                                 Status:          Media disconnected
                           [04]: Bluetooth Device (Personal Area Network)
                                 Connection Name: Bluetooth Network Connection
                                 Status:          Media disconnected
                           [05]: Fortinet Virtual Ethernet Adapter (NDIS 6.30)
                                 Connection Name: Ethernet 2
                                 DHCP Enabled:    Yes
                                 DHCP Server:     <IP_ADDRESS>
                                 IP address(es)
                                 [01]: <IP_ADDRESS>
                                 [02]: fe80::209:fff:fefe:1
                                 [03]: 2001:4888:a603:1a00:c0:ffc:0:576
                           [06]: Fortinet SSL VPN Virtual Ethernet Adapter
                                 Connection Name: Ethernet 3
                                 Status:          Media disconnected
                           [07]: Hyper-V Virtual Ethernet Adapter
                                 Connection Name: vEthernet (Default Switch)
                                 DHCP Enabled:    Yes
                                 DHCP Server:     <IP_ADDRESS>
                                 IP address(es)
                                 [01]: <IP_ADDRESS>
                                 [02]: fe80::5815:aaff:febc:2323
                           [08]: VirtualBox Host-Only Ethernet Adapter
                                 Connection Name: VirtualBox Host-Only Network
                                 DHCP Enabled:    No
                                 IP address(es)
                                 [01]: <IP_ADDRESS>
                                 [02]: fe80::800:27ff:fe00:3
Hyper-V Requirements:      A hypervisor has been detected. Features required for Hyper-V will not be displayed.

Steps to reproduce

crc setup
Machine 'crc' does not exist. Use 'crc start' to create it.
PS C:\Users\sinsu2r\Downloads\crc-windows-amd64 (1)\crc-windows-1.3.0-amd64> .\crc.exe setup
INFO Checking if running as normal user
INFO Caching oc binary
INFO Unpacking bundle from the CRC binary
INFO Check Windows 10 release
INFO Hyper-V installed
INFO Is user a member of the Hyper-V Administrators group
INFO Does the Hyper-V virtual switch exist
INFO Found Virtual Switch to use: Default Switch
Setup is complete, you can now run 'crc start' to start the OpenShift cluster

crc start

PS C:\Users\sinsu2r\Downloads\crc-windows-amd64 (1)\crc-windows-1.3.0-amd64> .\crc.exe start
INFO Checking if running as normal user
INFO Checking if oc binary is cached
INFO Check Windows 10 release
INFO Hyper-V installed and operational
INFO Is user a member of the Hyper-V Administrators group
INFO Does the Hyper-V virtual switch exist
INFO Found Virtual Switch to use: Default Switch
? Image pull secret [? for help] **********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
INFO Loading bundle: crc_hyperv_4.2.10.crcbundle ...
INFO Creating CodeReady Containers VM for OpenShift 4.2.10...
INFO Verifying validity of the cluster certificates ...
INFO Will run as admin: add dns server address to interface vEthernet (Default Switch)
INFO Check internal and public DNS query ...
INFO Copying kubeconfig file to instance dir ...
INFO Adding user's pull secret ...
ERRO Error Setting cluster config: Failed to update user pull secret or cluster ID: Temporary Error: exit status 1
Temporary Error: exit status 1
Temporary Error: exit status 1
Temporary Error: exit status 1

Expected
Actual
Logs
You can start crc with crc start --log-level debug to collect logs.
https://gist.github.com/spsingh1982/ddc0972b35ab3a60cdeed04d0c2e03de

@spsingh1982 As per logs I can see following, which means the local dns is not working for you.
DEBU Unable to connect to the server: dial tcp: lookup api.crc.testing: no such host
DEBU error: Temporary Error: exit status 1 - sleeping 1s

can you check ping api.crc.testing from the host, from either Command Prompt or PowerShell

This code:
https://github.com/code-ready/crc/blob/cf9d2a6a5c76e3dd9a60e709cff6f0c18bc06ebb/pkg/crc/services/dns/dns_windows.go#L30-L35
checks specifically if the DNS values have been set for the device. It might very well be something else that acts up. As this is related to CSR it might also be something inside the actual VM? The actual request to sign gets resolved from within the VM, right? /cc: @praveenkumar

I reattempted the installation, this time it moved forward but failed start openshift cluster
SSH binary not found, using native Go implementation
&{{{ 0 [] [] []} core [0x7b6f70] 0x7b6f40   [] 0s} <IP_ADDRESS> 22  }
DEBU About to run SSH command:
sudo systemctl -f start kubelet
DEBU SSH cmd err, output: :
INFO Starting OpenShift cluster ... [waiting 3m]
ERRO Error approving the node csr Not able to get csr names (exit status 1 : Unable to connect to the server: dial tcp <IP_ADDRESS>:6443: connectex: No connection could be made because the target machine actively refused it.
)
Making call to close driver server
(crc) Calling .Close
Successfully made call to close driver server
Making call to close connection to plugin binary
Making call to close driver server
(crc) Calling .Close
(crc) DBG | Closing plugin on server side
(crc) DBG | Closing plugin on server side
Successfully made call to close driver server
Making call to close connection to plugin binary
PS C:\Users\sinsu2r\Downloads\crc>
Attaching GIST Link --> https://gist.github.com/spsingh1982/3e386309b143d2c995f64264221a73a9

PS C:\Users\sinsu2r\Downloads\crc> Get-DnsClientServerAddress
InterfaceAlias               Interface Address ServerAddresses
Index     Family

Ethernet 2                          17 IPv4    {<IP_ADDRESS>, <IP_ADDRESS>}
Ethernet 2                          17 IPv6    {2001:4888:a03:2158:c0:ff0:0:1000, 2001:4888:a03:2104:c0:ff0:0:1000}
Ethernet                            21 IPv4    {<IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>}
Ethernet                            21 IPv6    {}
Ethernet 3                           2 IPv4    {<IP_ADDRESS>, <IP_ADDRESS>}
Ethernet 3                           2 IPv6    {}
vEthernet (Default Switch)           9 IPv4    {<IP_ADDRESS>}
vEthernet (Default Switch)           9 IPv6    {}
VirtualBox Host-Only Network         3 IPv4    {<IP_ADDRESS>, <IP_ADDRESS>}
VirtualBox Host-Only Network         3 IPv6    {}
Local Area Connection* 1             6 IPv4    {<IP_ADDRESS>, <IP_ADDRESS>}
Local Area Connection* 1             6 IPv6    {}
Wi-Fi                               22 IPv4    {<IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>}
Wi-Fi                               22 IPv6    {2600:1700:550:e070::1}
Bluetooth Network Connection         8 IPv4    {<IP_ADDRESS>, <IP_ADDRESS>}
Bluetooth Network Connection         8 IPv6    {}
Loopback Pseudo-Interface 1          1 IPv4    {}
Loopback Pseudo-Interface 1          1 IPv6    {fec0:0:0:ffff::1, fec0:0:0:ffff::2, fec0:0:0:ffff::3}
Cellular                            14 IPv4    {<IP_ADDRESS>, <IP_ADDRESS>}
Cellular                            14 IPv6    {}

Issue resolved by adding alternatives nameservers in the default switch.


Go/No Go GC Brokering Service

Conduct ‘just enough’ research to determine if there is a legislative reason that would prevent the BC Government from joining the GC Brokerage and accepting the terms and conditions of the GCFA to conduct a Proof of Concept.
DOD: Sprint 8

Develop project plan
LSB to provide questions/concerns around alignment to BC's financial administration act.
Create issue tracker

DOD: Sprint 9

Written assessment from LSB regarding the risks of onboard to the GC Brokerage to conduct a PoC
Written authorization from DPD Exec to onboard to the GC Brokerage to conduct a PoC

@sid-gov can you and @ZachWoodward break down this ticket into multiple? Most of this is done but some is not. Pieces that are not are:

Create issue tracker. Sid I think we need a regular Sharepoint site to put this issue tracker, and the issue tracker itself needs to be created. Can you take this ticket?

Zach is working on a communication from our Exec (Hayden) to SSC indicating we want to onboard. This should be its own ticket.

Create issue tracker ticker remains which will be Sid's ticket


Calling RedisCache GetAsync fails on second call in ViewComponent that is rendered in PartialView

I just encountered a weird bug that was hard to isolate, but it seems that the redis implementation of IDistributedCache becomes trapped in a deadlock when GetAsync is called in a ViewComponent that is rendered from a PartialView, not on the first call but on the second. Instead of returning the expected byte[] the call will run forever, or at least until the timeout is reached and the connection is aborted.
Steps to reproduce:

app.UseRedisDistributedCache
Set any value into the cache
Try to access that value in a ViewComponent's InvokeAsync method
Render the ViewComponent in a PartialView and render that PartialView in a full razor page.
Navigate to the page that contains the PartialView and reload twice.

On the second reload the timeout should occur.
I created a demo project to demonstrate the bug (see https://github.com/rangp/RedisCachingBug) After starting the application and reloading once the timeout should happen. Please note that the application expects redis to run on localhost without authentication. However I recreated the bug on an azure environment using an azure redis server with authentication, thus it's not restricted to a local environment.
Also weird: The synchronous method Get runs without problems. This is really freaking me out, because I have no clue what the cause of this issue could be. I also tried to run several other asynchronous methods in the same manner, including HttpClient.GetAsync etc. but only the redis cache GetAsync produces a timeout.
(Edit: I'm running the application on a windows 10 machine and have ran it on an azure web app)

Looks like you are using Microsoft.Extensions.Caching.Redis.Core which is not a package we release. I took a look at the binaries and the major difference is that we have fixed an issue when connecting to the redis cache https://github.com/aspnet/Caching/pull/266. Can you try Microsoft.Extensions.Caching.Redis 1.1.1 and see if you still reproduce the issue?

Thanks for the clarification, this was not clear to me. I just contacted the owner of Microsoft.Extensions.Redis.Core and asked him to clarify that this is not an official microsoft release in his package description, since the name is quite confusing.
Changing the package indeed made a difference. Now the bug sometimes occurs on the first call to GetAsync not just the second one. It's less deterministic now, but I'm afraid it still appears to be faulty.

I am not 100% sure but I might have stumbled across a similar issue when using RedisCache / IDistributedCache from within a TagHelper which is executed during RenderPartial.
This issue only seems to appear inside Azure-Environment not when using a local Redis installation.
I was able to trace the problem by remote debugging to down to this function: Task<byte[]> GetAsync(string key)
After calling GetAsync() it seems that the entire application hangs until the process is stopped by the server:

english translation of the error message is like: The specified CGI application encountered an error and the server terminated the process.
From that point on the application is completely unresponsive.

Thanks for that, I tested Html.RenderPartialAsync on my demo project and it fixes the issue. I took a look at the source code and Html.RenderPartial has the same implementation as RenderPartialAsync except for calling result.GetAwaiter().GetResult();
So it seems that GetAwaiter().GetResult(); is causing the deadlock, which sort of makes sense. But what I don't get is how only Redis can be affected by that issue? From my understanding HttpClient.GetAsync is also establishing an async connection and should be prone to deadlocks as well, just it works fine in Html.RenderPartial.
Weird, but the issue is fixed for me.

@muratg it looks like this is still an issue using IDistributedCache in .NET Core 2.0.

I'm still seeing this issue in Microsoft.Extensions.Caching.Redis 2.0.1, please keep issue open

Hello,
I too am suffering from this issue.
Is there any update on this?

@Rudithus this issue is closed. Could you please

Open a new issue
Explain very clearly what you need help with
If you think you have found a bug, include detailed repro steps so that we can investigate the problem


DOC: langchain with Fireworks ai

Issue with current documentation:
https://python.langchain.com/docs/integrations/chat/fireworks
Hi, I'm new Langchain with Fireworks.
I run this code in document 'ChatFireworks' and got an issue.
Environment : python 3.11, Window10

chain = (
    RunnablePassthrough.assign(
        history=memory.load_memory_variables | (lambda x: x["history"])
    )
    | prompt
    | llm.bind(stop=["\n\n"])
)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[17], line 3
      1 chain = (
      2     RunnablePassthrough.assign(
----> 3         history=memory.load_memory_variables | (lambda x: x["history"])
      4     )
      5     | prompt
      6     | llm.bind(stop=["\n\n"])
      7 )

TypeError: unsupported operand type(s) for |: 'method' and 'function'```

### Idea or request for content:

TypeError: unsupported operand type(s) for |: 'method' and 'function

Hello @dosu-bot
Thank you for answer! I modified the code based on your answer, but a new issue arose.
my new code is
chain = (
    RunnablePassthrough.assign(
        history=memory.load_memory_variables() | (lambda x: x["history"])
    )
    | prompt
    | llm.bind(stop=["\n\n"])
)

new issue is:
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[25], line 3
      1 chain = (
      2     RunnablePassthrough.assign(
----> 3         history=memory.load_memory_variables() | (lambda x: x["history"])
      4     )
      5     | prompt
      6     | llm.bind(stop=["\n\n"])
      7 )

TypeError: ConversationBufferMemory.load_memory_variables() missing 1 required positional argument: 'inputs'

I would appreciate your reply.

What type of memory class are you using?


Cloth is not simulated when attached to parent TransformNode

A ground cloth is not simulated when it has a parent TransformNode node. See reproduction case in the playground. You can comment out line 41 to fix the issue.

Bug repro on playground: https://playground.babylonjs.com/#T74IXV#1
Expected result: Physics is simulated
Current result: The cloth is not simulated

In Babylon all physics is done in local space so adding a parent will cause unexpected behavior. Would you be able to position it using the cloth object instead or position the object with parents then unparenting before you add the physics impostor? I can add a warning in the console for this to make it more obvious.

Do you have any reference to documentation about it? Warning should enough
for now. I have to say that it is not obvious and unexpected :)
wt., 2 lip 2019, 19:05 użytkownik Trevor Baron<EMAIL_ADDRESS>napisał:

Closed #6552 https://github.com/BabylonJS/Babylon.js/issues/6552.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/BabylonJS/Babylon.js/issues/6552?email_source=notifications&email_token=ACX2GNNSRZFPHWQEGM72DSTP5ODF7A5CNFSM4H4MVSZKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOSJKU5WI#event-2455064281,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACX2GNOSW4UQBDPT5SXKBFDP5ODF7ANCNFSM4H4MVSZA
.


Jest creates testEnvironments for tests that should have been filtered out using tags

🐛 Bug Report
Jest creates custom test environments for test files that should have been filtered out from test execution using tags. It makes sense (to me at least) that Jest only creates a test environment for the test files that are actually going to have tests executed, thereby avoiding any unnecessary setup/teardown.
To Reproduce

Clone repo (link)
Run "npm install" in folder
Run "npm test" in folder

Two test files have been created in the ./tests folder. As I see it, of these two, only the test that is tagged with @run should be executed, and have a custom test environment created.
Expected behavior
One line of "TESTENVIRONMENT SETUP!" is logged.
Actual behavior
Two lines of "TESTENVIRONMENT SETUP!" are logged.
$ npm test

><EMAIL_ADDRESS>test C:\sandbox\bug1
> jest -t @run

TESTENVIRONMENT SETUP!
TESTENVIRONMENT SETUP!
 PASS  tests/run.test.js

Test Suites: 1 skipped, 1 passed, 1 of 2 total
Tests:       1 skipped, 1 passed, 2 total
Snapshots:   0 total
Time:        2.159s
Ran all test suites with tests matching "@run".

Run npx envinfo --preset jest
  System:
    OS: Windows 7
    CPU: (4) x64 Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
  Binaries:
    Node: 10.15.2 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.10.1 - ~\scoop\apps\yarn\current\Yarn\bin\yarn.CMD
    npm: 6.4.1 - C:\Program Files\nodejs\npm.CMD

Jest has to run your test file to collect the names of test cases to use the filter, and to execute your test file the environment needs to be instantiated, so this behavior is correct. It should not happen using a test file pattern instead of a test case pattern because in that case the test file does not need to be run.

So the takeaway here is; "do not put any 'heavy setup code' in the custom environment if you are using tags to run one test case (located in 1 out of 500 test files) because Jest will instantiate 499 custom environments trying to check if all the other tests have to be run."?
You are saying I would have to filter on files as well, in order to avoid this (to me) unnecessary custom environment instantiation?
Sounds counter intuitive to me.
Wouldn't it make more sense, and save a lot of time, if Jest scanned (not executed) the files first for matching test names to figure out what files to instantiate an environment for?

It's not possible without executing. You can alias test, you can call it it an imported file, etc., the only way to not miss some tests is to run it.

Ok, thanks for the feedback :+1:


WIP: Rewrite the renderResources function to make it usable

Signed-off-by: Matt Butcher<EMAIL_ADDRESS>
What this PR does / why we need it:
This refactors renderResource into a more sensible assembly of functions and structs
Special notes for your reviewer:
If applicable:

[ ] this PR contains documentation
[x] this PR contains unit tests
[x] this PR has been tested for backwards compatibility

This is not done yet, and does not completely work. I will update when it is complete. In the meantime, you can reference this PR when other PRs try to change renderResources.


feat: Add serializable props for ZoomCarousel component

This gives us a serializable version of the ZoomCarousel properties. This allows us to generate a schema of the properties that can be represented in JSON.

Closing as we went a different direction with components.


typst universe doesn't display recently updated packges

Description
https://typst.app/universe/package/quill still stays at 0.3.0. And tiaoma stays at 0.2.0

Interesting, the new versions are available via import anyway.

Could the reason lie here?

Apparently some workflows have been canceled

No, actuall all the new packages don't show up either so probably the universe just has not been updated yet

The bug is in a private repo. We'll fix it soon.


Components render repeatedly when window size is changed

Software version (please complete the following information):

Browser [e.g. chrome, safari]
Vue Version [^3.2.39]
vue-grid-layout Version: [^3.0.0-beta1]

Describe the bug
Components render repeatedly when window size is changed，api interfaces in components to be called multiple times
To Reproduce
1.F12
2.change the window size
Expected behavior
Components do not re render when changing the window size
Screenshots

Additional context
Add any other context about the problem here.

I'm not sure this is related to vue-grid-layout. It looks to me whenever the viewport is resized, the dynamic component executes loadComponent(). While I saw loadComponent() triggered multiple times as I dragged the window size around, I could not trigger any lifecycle hooks on the component.
Is it possible your issue is unrelated to vue-grid-component and instead due to <component :is> itself constantly calling your function?

I'm not sure this is related to vue-grid-layout. It looks to me whenever the viewport is resized, the dynamic component executes loadComponent(). While I saw loadComponent() triggered multiple times as I dragged the window size around, I could not trigger any lifecycle hooks on the component.
Is it possible your issue is unrelated to vue-grid-component and instead due to <component :is> itself constantly calling your function?

Thank you for reminding me. I did a test, but the problem still exists.....

Can you send me a codepen or something where this issue occurs?

Can you send me a codepen or something where this issue occurs?

https://codesandbox.io/embed/unruffled-architecture-onn9sr

OK. I can actually see it.  The components are definitely not re-rendering, but every time a resize event gets triggered. I'll see if I can figure something out.


standardization before PCA

https://stats.stackexchange.com/questions/69157/why-do-we-need-to-normalize-data-before-principal-component-analysis-pca

preproc:
data = symmetry function(cartesian coodinates)
# standardization part: mean->0, std->1
mean = data.mean(axis=0)
sstd = data.std(axis=0, ddof=1)
z score = (data - mean) / sstd
# PCA part: transform axis
transformed = np.dot(z score, components)

Whether accuracy will improve or not is currently under investigation

Implementation is done in #230
Users can decide which pre-processing to use in which order.


Audit Data Types course for grammar/language

We'd like to make sure that our Data Types course has proper English grammar, spelling, and language throughout the exercise. Content should be readable and understandable to everyone, especially for individuals for whom English may not be their strongest language.

I may be able to take this on. What's involved?


Use standard Jaeger envs

Signed-off-by: Viktoria Dlugopolskaya<EMAIL_ADDRESS>
Description

Motivation and Context
https://github.com/networkservicemesh/networkservicemesh/issues/1360

How Has This Been Tested?

[ ] Covered by existing integration testing
[ ] Added integration testing to cover
[ ] Tested locally
[x] Have not tested

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 not work as expected)

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

Don't we also need to fix the places (like the web admissions controller, various Pod specs etc) that are passing these variables through?  Does tracing still work given this change?

Don't we also need to fix the places (like the web admissions controller, various Pod specs etc) that are passing these variables through? Does tracing still work given this change?

@edwarnicke -- the diffs in this change should cover all that since the InitJaeger() function is slurping in the env var settings directly.  The admission webhook code for the propagating the settings to the NSC initContainer is updated properly with the change made to the env var consts.
I'm pulling the PR down to try it out.

fyi, there's a race between this and my PR ( #1368) for the helm chart changes to set the Jaeger vars.  The var names would need to be updated either in #1368 if this merges first or in this one if #1368 merges first.


add targetFrame to nativeEvent on onShouldStartLoadWithRequest

On my app I have a custom logic to open some external links in the mobile browser. But I have too an iframe with some links that can modify the url of these iframe. For this reason I need to differentiate if the change of url is in the main frame or in another to apply my custom logic.
PD: In android onNavigationStateChange is not fired with iframe links

We try to keep the events consistent between Android and iOS , is the same feature doable on Android ?

On Android (since Android >= 7.0, API level 24) this is also supported on Android. See:
https://developer.android.com/reference/android/webkit/WebViewClient#shouldOverrideUrlLoading(android.webkit.WebView, android.webkit.WebResourceRequest)

onShouldStartLoadWithRequest callback is only available on ios.

For this reason the event "is consistent". But, I think that another PR can implement this callback for android and send url, navigationType and targetFrame data.
What do you think?

Sorry there is already a PR which is why I'm mistaken. It's a bit stuck tho, so please come and discuss #106

@francisco-sanchez-molina Now that the feature also exist on android, I'd like to stay consistent and implement it on both places at once

Hi @Titozzz, I am going to review it as soon as possible, and I will tell you if I can do it ;)

Thank you so much for the instant reply ❤

since the android API just returns a boolean, it may make sense to return a boolean isMainFrame instead of the main frame name or other ?

I'm okay with this change, even if it's iOS-only. However, let's make sure that documentation is updated too. See PR https://github.com/react-native-community/react-native-webview/pull/493 for an example of how to do this.


Update the BentoML documentation

Update the BentoML documentation to reflect the integration with Kubeflow in release 1.7.

Plese sign CLA

Done. cla/google check is now passing. Please review again.

@Arhell CLA check has passed. Please take another look.

/lgtm

Thanks for the lgtm, @jbottum. Could you please merge this PR as well?

/approve

@adrian555, @animeshsingh, @cliveseldon, @ellistarn, @ryandawsonuk, @Tomcli, @yuzisun, could you please review and merge?

/approve

@DomFleischmann any suggestions to move forward? Thx a lot.


Components deployed

First PR for the development of the following components:

Local Resource Manager
Peering Candidates
Available Resources
Discovery Manager
Contract Manager

I rebased and squashed your work because It was impossible to review it


Typing shenanigans

A tentative to fix typing issues, but it's not working so far.

Successful PR Checklist:

[ ] Tests

[ ] (not applicable?)

[ ] Documentation

[ ] (not applicable?)

PR label(s):

[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A breaking 💥
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A feature ⭐
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A bugfix 🕵
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A miscellaneous 👾
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A dependencies 🤖
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A documentation 📚

Closing for now, after #1097 but let's see if it bites again.


Allow making actors disabled when feature is globally turned on

In the current UI there is no way to disable for site administrators to disable a certain feature for a given user/account.

See caveat 2 here: https://github.com/jnunemaker/flipper/blob/1c1b18763190dcfda6df41133ceb6aa63c53c35e/docs/Caveats.md
Flipper is for explicitly letting people through gates, not keeping them out. That said, can you further describe your use case? Maybe there is a currently supported way of doing what you need to do or maybe it makes sense to add.

We are guarding one of our product features with a feature flipper. After enabling it for a few actors, we enabled it globally, but one of our customers did not want to expose it for their accounts users. Our site admins did not find a way to disable it only for them on the UI, other than turning the feature off and listing every actor manually.

Ah, yeah so not a common case probably. One other way to solve it could be a group. You could make a group and enable it like this:
Flipper.register(:some_group) do |actor|
  !disabled_customer_ids.include?(actor.id)
end

Flipper[:some_feature].disable
Flipper[:some_feature].enable(:some_group)
Flipper[:some_feature].enabled?(disabled_customer) # false
Flipper[:some_feature].enabled?(other_customer) # true

I just came looking for something like this too:
In the course of rolling out a feature, there are a few specific cases where it doesn't seem to work yet 😖   So I found myself looking for a flow like this:

Enable a feature for everyone; THEN
Disable the feature for a few actors

I found a workaround, using two different features:

"Use Feature X": Enabled
"Blacklist Feature X": Enable for a few actors

then do the application logic like this:
def feature_x_enabled?
  if flag_enabled?("Blacklist Feature X")
    false
  else
    flag_enabled?("Use Feature X")
  end
end

It's a bit tough to have the gate logic split between two, but it provides the behavior I was looking for!

I still wonder if the complexity is worth it

I would guess not since there's about one request per year, judging by this thread 😆
I'm happy to "work around" it, and like you said, this is a very fair design goal/constraint:

Flipper is for explicitly letting people through gates, not keeping them out.

And making two features worked fine for me (I was only worried about the support agents who might have had to flip it themselves). But in the end, we had to flip the master "OFF" switch anyways 😩 !

@rmosolgo appreciate the feedback. I will keep an eye on this thread and if we do start to see an increase we can come back to it.

FWIW I would have liked this feature to exist.

I may be speaking into a void here, but I also have a use case for this. I am going to implement the workaround of having two gates, one for a blacklist, but it makes using Flipper considerably more awkward.
My use case: we're rolling out a new processing method for video assets. We're going to enabled it by percentage of actors to test the waters. The main fear is the new method will be too slow or fail entirely sometimes. We therefore need to be able to respond to failures or to approaching customer deadlines by forcing problematic files to the old path. It seems our choices are build in custom app logic (unacceptable -- ops team has no control), or use a second gate as a blacklist. Having disabled actor IDs would be a natural solution.

I may be speaking into a void here, but I also have a use case for this. I am going to implement the workaround of having two gates, one for a blacklist, but it makes using Flipper considerably more awkward.
My use case: we're rolling out a new processing method for video assets. We're going to enabled it by percentage of actors to test the waters. The main fear is the new method will be too slow or fail entirely sometimes. We therefore need to be able to respond to failures or to approaching customer deadlines by forcing problematic files to the old path. It seems our choices are build in custom app logic (unacceptable -- ops team has no control), or use a second gate as a blacklist. Having disabled actor IDs would be a natural solution.

I may be speaking into a void here, but I also have a use case for this.

Never. I'm always here listening. 😄 I love getting specific use cases like this.
There are two concerns:

Storage: easy. We can just add a new gate with set datatype (DisabledActor or whatever).
Interface: hard. I think the part I've always struggled with is you end up in a weird state when you want to un-disable an actor on the disabled list.

Let's say you enable a % of time. Then you disable_actor "User;1" the customer that is having problems with video processing. How to you remove them from the "not enabled" set?
I guess we could make enable_actor "User;1" remove them from the not enabled set instead of adding them to the enabled set.
Like check out this decision tree:

method
not in enabled set / not in disabled set
in enabled set
in disabled set

enable_actor
adds to enabled set
does nothing
removes from disabled set, does not add to enabled? or does it remove from enabled and add to enabled?

disable_actor
adds to disabled set
same problem as above, does it remove from enabled and add to disabled or just remove from enabled
does nothing

Another option would be to make set datatypes different than the other gates. So instead of enable_actor/disable_actor, you would do add_enabled_actor/remove_enabled_actor and add_disabled_actor/remove_disabled_actor.
This would be a breaking change. Probably minor and a quick search/replace for people. But it wouldn't be minor from how you think about Flipper, since thus far it is all about is anything enabled.

I may be speaking into a void here, but I also have a use case for this.

Never. I'm always here listening. 😄 I love getting specific use cases like this.
There are two concerns:

Storage: easy. We can just add a new gate with set datatype (DisabledActor or whatever).
Interface: hard. I think the part I've always struggled with is you end up in a weird state when you want to un-disable an actor on the disabled list.

Let's say you enable a % of time. Then you disable_actor "User;1" the customer that is having problems with video processing. How to you remove them from the "not enabled" set?
I guess we could make enable_actor "User;1" remove them from the not enabled set instead of adding them to the enabled set.
Like check out this decision tree:

method
not in enabled set / not in disabled set
in enabled set
in disabled set

enable_actor
adds to enabled set
does nothing
removes from disabled set, does not add to enabled? or does it remove from enabled and add to enabled?

disable_actor
adds to disabled set
same problem as above, does it remove from enabled and add to disabled or just remove from enabled
does nothing

Another option would be to make set datatypes different than the other gates. So instead of enable_actor/disable_actor, you would do add_enabled_actor/remove_enabled_actor and add_disabled_actor/remove_disabled_actor.
This would be a breaking change. Probably minor and a quick search/replace for people. But it wouldn't be minor from how you think about Flipper, since thus far it is all about is anything enabled.

I see the challenge. I think it boils down to:

Backward compatibility while having the new feature make intuitive sense
Confusion about removing enabled vs disabling. I.e.: is it worth it?

I would need to understand the gate classes better to have a more informed opinion here. Maybe I'll dive in when i have a bit more time. For now I'm taking what you said to imply that we'd heavily prefer to stick to the same interface with enable_actor and disable_actor methods, short of a more fundamental rethink of the set datatypes. I think the mapping of the "enable" and "disable" names to adding and removing to a set lock us in a bit. From scratch I could imagine using "enable", "remove", and "disable", where remove_actor does what disable_actor does now, and disable_actor adds them to a blacklist. But that's a screwy breaking change to introduce!
I believe naming is important, so I'm thinking hard of what else could take the place of that third option without adding confusion to the existing disable_actor. Maybe blacklist_actor successfully implies that you're blocking the actor from ever getting enabled? disable is still slightly confusing here, but could an option to help clarify things be to (1) add remove_actor as doing the same thing as disable_actor, and (2) deprecate disable_actor with a message about remove_actor so that it's obvious what it does and it sets up the ability to make the breaking change later in a major version bump?

I see the challenge. I think it boils down to:

Backward compatibility while having the new feature make intuitive sense
Confusion about removing enabled vs disabling. I.e.: is it worth it?

I would need to understand the gate classes better to have a more informed opinion here. Maybe I'll dive in when i have a bit more time. For now I'm taking what you said to imply that we'd heavily prefer to stick to the same interface with enable_actor and disable_actor methods, short of a more fundamental rethink of the set datatypes. I think the mapping of the "enable" and "disable" names to adding and removing to a set lock us in a bit. From scratch I could imagine using "enable", "remove", and "disable", where remove_actor does what disable_actor does now, and disable_actor adds them to a blacklist. But that's a screwy breaking change to introduce!
I believe naming is important, so I'm thinking hard of what else could take the place of that third option without adding confusion to the existing disable_actor. Maybe blacklist_actor successfully implies that you're blocking the actor from ever getting enabled? disable is still slightly confusing here, but could an option to help clarify things be to (1) add remove_actor as doing the same thing as disable_actor, and (2) deprecate disable_actor with a message about remove_actor so that it's obvious what it does and it sets up the ability to make the breaking change later in a major version bump?


Update to lastest version of material ui

Sorry @kdjohnson, this was already silently updated on the master branch o.O
I'll make sure to write down issues for these things in the future.


Fix parameter type of MapMixin.containsValue

Make this method compatible with Map.containsValue(Object value)

Thanks for the fix and finding the problem.
The problem is actually a little more widespread, so I have landed https://codereview.chromium.org/1360053003/ to fix it "everywhere".

Thanks @a14n !


Add Vec::move_all

 Issue by mahkoh
Friday Nov 21, 2014 at 21:38 GMT
For earlier discussion, see https://github.com/rust-lang/rust/issues/19196
This issue was labelled with: A-collections, A-libs, I-enhancement in the Rust repository

    /// Moves all elements in a vector to the `Vec`.
    ///
    /// Iterates over the vector `other`, removes each element, and then appends
    /// it to this `Vec`. The `other` vector is traversed in-order.
    ///
    /// # Example
    ///
    /// ```
    /// let mut vec1 = vec![1i];
    /// let mut vec2 = vec![2, 3, 4];
    /// vec.move_all(&mut vec2);
    /// assert_eq!(vec1, vec![1, 2, 3, 4]);
    /// assert_eq!(vec2, vec![]);
    /// ```
    pub fn move_all(&mut self, other: &mut Vec<T>);

I think this should be completely unnecessary with trusted iterators.

Isn't this already implemented as Vec::append()?

Oh, yes, you're right.


UndefinedTable flipper_features on heroku test CI

When running the test CI on Heroku it fails with this error :
-----> Clearing db:test:purge db:create db:structure:dump rake tasks
-----> Detecting rake tasks
-----> Preparing test database
       Running: rake db:schema:load_if_ruby
...
      rake aborted!
       ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "flipper_features" does not exist
       LINE 8:  WHERE a.attrelid = '"flipper_features"'::regclass
...

Full output: https://gist.github.com/IanVaughan/c7f5bf6cea3be8615c3056fb06aa2a4d
But in my branch, I have the schema.rb changes committed: https://gist.github.com/IanVaughan/a93badf262bf78f5b68adda9ae635bd8
My config/initializers/flipper.rb file looks like:
require 'flipper'
require 'flipper/adapters/active_record'

Flipper.configure do |config|
  config.default do
    adapter = Flipper::Adapters::ActiveRecord.new
    Flipper.new(adapter)
  end
end

Flipper.add(:some_flag) # <- If I remove this it works

Gem versions:
flipper (0.17.2)
flipper-active_record (0.17.2)
flipper-ui (0.17.2)

What I want to do is ensure the flags exist at runtime, without changing their settings in the DB if they already are present.

I also get this on deployments, so I guess its due to the load order wrt to initialisers and the migration?

Pretty sure this is just that you are trying to add a feature before the tables exist because the environment and this file get loaded when migrations are ran. I'd wait to do the add until the adapter is loaded as that should be safer.
require 'flipper'
require 'flipper/adapters/active_record'

Flipper.configure do |config|
  config.default do
    adapter = Flipper::Adapters::ActiveRecord.new
    flipper = Flipper.new(adapter)
    flipper.add(:some_flag)
    flipper
  end
end

The downside is that this will happen for each process and thread, but only once so not a huge deal. Why do the features need to exist? If the features don't exist, the return is false which is the same if they are added with no gate values. I might have suggestions if you can explain the intent. Let me know. 😄

begin
  if ActiveRecord::Base.connection.table_exists? :flipper_gates
    ...flipper stuff
  end
rescue ActiveRecord::NoDatabaseError => err
  Rails.logger.warn "No database found, skipping initialization: #{err}"
end

For future, you can also manually check for table existence such as in the above example. Catching the error is necessary for rake db:create and similar tasks when the rails app must be initialized but the DB has not been created yet.
My use case was that I have initializers that serialize the flipper gates and pass them to our frontend. So just needed to wrap it in the above conditions.


Fix dependencies .gitmodules

Thanks, but the URL automatically updates to add lib. Not sure why, but removing it will just be rewritten each time.