AttributeError: 'tuple' object has no attribute 'cls_token'

I have been trying to get this to work for several days now and keep on getting errors every time. I tried building the container image on my mac and on an AWS p3.8xlarge instance, but failed each time.
So this is the error I am getting if I just build the docker image as is (latest version) and then try it on the toxic-comments dataset, as is described exactly in the blog.
UnexpectedStatusException: Error for Training job toxic-comments-2020-04-24-20-21-27-316: Failed. Reason: AlgorithmError: Exception during training: 'tuple' object has no attribute 'cls_token'
Traceback (most recent call last):
  File "/opt/ml/code/train", line 157, in train
    logger=logger,
  File "/opt/conda/lib/python3.7/site-packages/fast_bert/data_cls.py", line 421, in __init__
    train_examples, "train", no_cache=self.no_cache
  File "/opt/conda/lib/python3.7/site-packages/fast_bert/data_cls.py", line 542, in get_dataset_from_examples
    cls_token=self.tokenizer.cls_token,
AttributeError: 'tuple' object has no attribute 'cls_token'

It appears that this error relates to AutoTokenizer, so I even tried to replace that to how the old version had it (RobertaTokenizer, etc.), but i was then getting a different error: "Caught StopIteration in replica 0 on device 0."
I tried to install fast-bert and apex directly into a notebook (with GPU) and then run the training and prediction code locally (i.e. not in the container via sagemaker) and it all runs fine!
Any ideas on what can be going wrong with that container?

Any update on this issue. It will be helpful if version information can be added to requirements.txt

I'm having the same issue:
`06/24/2020 13:31:35 - INFO - transformers.tokenization_utils -   loading file None
06/24/2020 13:31:35 - INFO - root -   Number of GPUs: 4
06/24/2020 13:31:35 - INFO - root -   label columns: ['toxic', 'severe_toxic', 'obscene', 'threat', 'insult', 'identity_hate']
Exception during training: 'tuple' object has no attribute 'cls_token'
Traceback (most recent call last):
File "/opt/ml/code/train", line 157, in train
logger=logger,
File "/opt/conda/lib/python3.7/site-packages/fast_bert/data_cls.py", line 424, in init
train_examples, "train", no_cache=self.no_cache
File "/opt/conda/lib/python3.7/site-packages/fast_bert/data_cls.py", line 550, in get_dataset_from_examples
cls_token=self.tokenizer.cls_token,
AttributeError: 'tuple' object has no attribute 'cls_token'

UnexpectedStatusException                 Traceback (most recent call last)
 in
----> 1 estimator.fit(s3_input)
/opt/conda/lib/python3.7/site-packages/sagemaker/estimator.py in fit(self, inputs, wait, logs, job_name, experiment_config)
495         self.jobs.append(self.latest_training_job)
496         if wait:
--> 497             self.latest_training_job.wait(logs=logs)
498
499     def _compilation_job_name(self):
/opt/conda/lib/python3.7/site-packages/sagemaker/estimator.py in wait(self, logs)
1107         # If logs are requested, call logs_for_jobs.
1108         if logs != "None":
-> 1109             self.sagemaker_session.logs_for_job(self.job_name, wait=True, log_type=logs)
1110         else:
1111             self.sagemaker_session.wait_for_job(self.job_name)
/opt/conda/lib/python3.7/site-packages/sagemaker/session.py in logs_for_job(self, job_name, wait, poll, log_type)
3066
3067         if wait:
-> 3068             self._check_job_status(job_name, description, "TrainingJobStatus")
3069             if dot:
3070                 print()
/opt/conda/lib/python3.7/site-packages/sagemaker/session.py in _check_job_status(self, job, desc, status_key_name)
2660                 ),
2661                 allowed_statuses=["Completed", "Stopped"],
-> 2662                 actual_status=status,
2663             )
2664
UnexpectedStatusException: Error for Training job toxic-comments-2020-06-24-13-26-42-334: Failed. Reason: AlgorithmError: Exception during training: 'tuple' object has no attribute 'cls_token'
Traceback (most recent call last):
File "/opt/ml/code/train", line 157, in train
logger=logger,
File "/opt/conda/lib/python3.7/site-packages/fast_bert/data_cls.py", line 424, in init
train_examples, "train", no_cache=self.no_cache
File "/opt/conda/lib/python3.7/site-packages/fast_bert/data_cls.py", line 550, in get_dataset_from_examples
cls_token=self.tokenizer.cls_token,
AttributeError: 'tuple' object has no attribute 'cls_token'`

Pull request created to fix this: #239


pglookout: Fix broken main() entry point for current_master

Following the lines of 6e4ce4d, fix also current_master entry point.

Thanks, merged.


SecretLeaseContainer has no expiryThreshold parameter

expiryThreshold is shared by minRenewal, It is difficult to assess how much minRenewal should be set
renewed.getLeaseDuration().getSeconds() < this.minRenewal.getSeconds()

https://github.com/spring-projects/spring-vault/blob/afdbdd67f1018634a536fa4e0f60a52d37b1860c/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseContainer.java#L594C5-L594C5

Care to elaborate on what you're planning to achieve? Please provide more detail and context so that we can understand what you're up to.

Here is my code.
    class VaultForJdbc {
        private static SecretLeaseContainer secretLeaseContainer;

        static {
            VaultTemplate vaultTemplate = new VaultTemplate(VaultEndpoint.create("http://<IP_ADDRESS>", 1234));
            SecretLeaseContainer secretLeaseContainer = new SecretLeaseContainer(vaultTemplate);
            secretLeaseContainer.afterPropertiesSet();
            secretLeaseContainer.start();
            VaultForJdbc.secretLeaseContainer = secretLeaseContainer;
        }

        private static Map<RequestedSecret, LeaseAwareVaultPropertySource> map = new ConcurrentHashMap<>();

        public static LeaseAwareVaultPropertySource requestSecret(RequestedSecret requestedSecret) {
            return map.computeIfAbsent(requestedSecret, k -> new LeaseAwareVaultPropertySource(secretLeaseContainer, requestedSecret));
        }
    }

    public static void main(String[] args) {
        LeaseAwareVaultPropertySource propertySource = VaultForJdbc.requestSecret(RequestedSecret.rotating("/database/readwrite"));
        Object username = propertySource.getProperty("username");
        Object password = propertySource.getProperty("password");
    }

minRenewal is used in two pieces of code.

Sets the amount of seconds that is at least required before renewing a lease.
Ttl threshold of the valid lease

SecretLeaseContainer whether can like LifecycleAwareSessionManagerSupport. RefreshTrigger, Open for users to configure nextExecutionTime and getValidTtlThreshold？

If a sockettimeout is displayed, The default leaseStrategy is drop, but onLeaseExpired(requestedSecret, lease) is not executed after drop. Note Rescheduling can only be triggered by the user rotate, which affects the execution time of the user. if leaseStrategy is retainOnIoError, doRenewLease will return the original lease with no change in leaseDuration, resulting in a high probability that the calculation for the next execution cycle is wrong.
https://github.com/spring-projects/spring-vault/blob/61ca991ba4ec8b54a728899d3460f1e9076e90de/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseContainer.java#L680


feat:: Scaffolded the app structure and also set up the jwt package

what issue is this?

PR is for API Boilerplate Scaffold #16


Add Uniform distribution

split from #4678 .

How should we deal with the difference of arguments between numpy.random and scipy.stats?

numpy.random.uniform takes low and high
scipy.stats.uniform takes loc and scale.

(low == loc, high == loc + scale)
It seems the safest way, at the moment, to make them keyword-only arguments.

I think you are right.
I will implement this feature

jenkins, test this please.

Jenkins CI test (for commit 1b27ca864bb0c291eaf50d914bedacda46b5adf4, target branch master) succeeded!


[v3] onAuthStateChanged doesn't fire

The following function : onAuthStateChanged(event: Function): Function is firing for me on debug mode but not on release mode. Not sure exactly why that would happen...It may be an issue with the actual Firebase SDK.

I think I'm having the same issue. Which specific branch are you using?

I thought I was having the same issue and it turned out to be this: https://github.com/fullstackreact/react-native-firestack/issues/174#issuecomment-264631709, which can be fixed like this: https://github.com/fullstackreact/react-native-firestack/issues/174#issuecomment-264632427.
Just posting this in case it helps you guys out.

@Leeds-eBooks Awesome catch! Seems to work so far!

Still having the same issue.. started a new project and was going nuts before I landed here and was able to fix it.


Add option to pin content locally?

Question from HackFS participant:
When using the IPFS Companion extension, is there a way to create a button to let users pin this content locally?
cc @autonome for clarification: We've got the pin toggle in the main extension menu (cube menu); is this instead referring to a right-click option when clicking on an item that could be imported to IPFS?

I remember this question, in the thread it was clarified the person meant a cross-origin button like those twitter/facebook ones from the past:

With #777 we moved away from injecting  anything into the page contexts, and the current climate on the web is is moving away from "facebook button".
So the short answer is no, there is no way to create such button atm.

That being said, one can pin the currently loaded resource via ipfs-companion browser extension, just like @jessicaschilling hinted at:

This is the only safe way of doing this without asking user to manually whitelist Origin via CORS etc.
We will be revamping pinning UI in Companion after support for Pinning Services Integration lands (tracked in epic at https://github.com/ipfs/ipfs-gui/issues/91), #581  #525


vscode, vscodium: 1.73.1 -> 1.74.1

I have Allow edits and access to secrets by maintainers enabled and you can push stuff here if you want.
Ofborg failures are (hopefully) not related to this bump:

https://hydra.nixos.org/job/nixpkgs/trunk/vscode-extensions.vadimcn.vscode-lldb.x86_64-darwin
https://github.com/NixOS/nixpkgs/pull/159220#issuecomment-1036231572

Description of changes
The update is not that trivial probably because of https://github.com/microsoft/vscode/commit/23b25e9d4d3aad79f59a087f25bffb859afea88e.
I guess I will open a PR first and hopefully get some feedback :upside_down_face:

Closes #205080
Closes #205042
Closes #205074
Closes #205672
Closes #205661
Closes #206324

To test
If you use vscode-fhs, please help test vscode-fhs.
For vscode-with-extensions, to test some extensions, e.g. vscode-extensions.vadimcn.vscode-lldb, use
nix-build -I nixpkgs=. -E 'with import <nixpkgs> { config = { allowUnfree = true; }; }; vscode-with-extensions.override { vscodeExtensions = with vscode-extensions; [ vadimcn.vscode-lldb ]; }'

Don't just nix-build -A vscode-extensions.vadimcn.vscode-lldb, e.g. the former will fail to eval on f007395f951878c8c0b507f6e8f621d417b90744 but the latter does build.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Launches vscode-fhs, vscode-with-extensions myself

VSCodium works for me. Thanks!

vscode works for me. I am not using nix managed extensions though, so didn't test that functionality.

vscode.fhs works for me on x86_64-linux

@ofborg build vscodium
@ofborg test vscodium.xorg

this seems to break the title bar on wayland

My vscode loads without extensions in 1.74.1.
Do I need to change the syntax, I see a comment on the description but I'm not sure if it's related or not. I do something like this on my config:
{ pkgs, ... }:

with pkgs.vscode-extensions;

[
  asvetliakov.vscode-neovim
  bbenoist.nix
  brettm12345.nixfmt-vscode
  dbaeumer.vscode-eslint
];


Feature/country shapes

Adds the polygons submodule, which initially just contains a function for getting geometries for named countries.

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

Project coverage is 96.84%. Comparing base (d08b2ad) to head (bcdd670).

Additional details and impacted files
@@             Coverage Diff             @@
##           develop      #12      +/-   ##
===========================================
+ Coverage    96.17%   96.84%   +0.66%
===========================================
  Files            5        6       +1
  Lines          157      190      +33
  Branches         9        7       -2
===========================================
+ Hits           151      184      +33
  Misses           3        3
  Partials         3        3

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

🚨 Try these New Features:

Flaky Tests Detection - Detect and resolve failed and flaky tests

Please add the example to theindex.rst


RGeo::CoordSys::Proj4.transform_coords slower in version 3.0.1 than version 2.0.1

Issue encountered
I've tried to update to the 3.0.1 version but I've observed that using RGeo::CoordSys::Proj4.transform_coords to project the coordinates of my geometry was slower than the 2.0.1 version.
Step to reproduce
Here is a minimal script to reproduce, you can uncomment to alternate between the 2 versions.
require "bundler/inline"

gemfile do
  source "https://rubygems.org"
  # gem "rgeo-proj4", "~> 3.0", ">= 3.0.1"
  gem "rgeo-proj4", "~> 2.0", ">= 2.0.1"
end

raise "RGeo::Geos is not supported" unless RGeo::Geos.supported?
puts "preferred_native_interface #{RGeo::Geos.preferred_native_interface}"
puts "rgeo-proj4 version #{RGeo::Proj4::VERSION}"
raise "proj4 is not supported" unless RGeo::CoordSys::Proj4.supported?
puts "proj4 version: #{RGeo::CoordSys::Proj4.version}"
puts "RUBY_VERSION: #{RUBY_VERSION}"
puts "RUBY_PLATFORM #{RUBY_PLATFORM}"
ws84_definition = "proj=longlat +datum=WGS84 +no_defs +type=crs"
# https://epsg.io/2154
paris_lambert_definition = "+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs +type=crs"

ws84_proj4 = RGeo::CoordSys::Proj4.create(ws84_definition)
raise "invalid ws84_definition" unless ws84_proj4

paris_lambert_proj4 = RGeo::CoordSys::Proj4.create(paris_lambert_definition)
raise "invalid paris_lambert_definition" unless paris_lambert_proj4

starting = Process.clock_gettime(Process::CLOCK_MONOTONIC)
1000.times do
  RGeo::CoordSys::Proj4.transform_coords(ws84_proj4, paris_lambert_proj4,<PHONE_NUMBER>824854, 6722964.293806808, nil)
end
puts "Processed in #{Process.clock_gettime(Process::CLOCK_MONOTONIC) - starting}"

With 2.0.1
preferred_native_interface capi
rgeo-proj4 version 2.0.1
proj4 version: 721
RUBY_VERSION: 2.6.6
RUBY_PLATFORM x86_64-darwin19
Processed in 0.0032739999987825286

With 3.0.1
preferred_native_interface capi
rgeo-proj4 version 3.0.1
proj4 version: 7.2.1
RUBY_VERSION: 2.6.6
RUBY_PLATFORM x86_64-darwin19
Processed in 1.5407219999979134

Versions

Proj: 7.2.1
Ruby: ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
OS: macOS Catalina, Version 10.15.7,  x86_64-darwin19

Note
I've tried to use WKT definition as well, it was faster but it was still slower than the 2.0.1  version
 paris_lambert_definition = <<~EOS
      PROJCS["RGF93 / Lambert-93",
          GEOGCS["RGF93",
              DATUM["Reseau_Geodesique_Francais_1993",
                  SPHEROID["GRS 1980",6378137,298.257222101,
                      AUTHORITY["EPSG","7019"]],
                  TOWGS84[0,0,0,0,0,0,0],
                  AUTHORITY["EPSG","6171"]],
              PRIMEM["Greenwich",0,
                  AUTHORITY["EPSG","8901"]],
              UNIT["degree",0.0174532925199433,
                  AUTHORITY["EPSG","9122"]],
              AUTHORITY["EPSG","4171"]],
          PROJECTION["Lambert_Conformal_Conic_2SP"],
          PARAMETER["standard_parallel_1",49],
          PARAMETER["standard_parallel_2",44],
          PARAMETER["latitude_of_origin",46.5],
          PARAMETER["central_meridian",3],
          PARAMETER["false_easting",700000],
          PARAMETER["false_northing",6600000],
          UNIT["metre",1,
              AUTHORITY["EPSG","9001"]],
          AXIS["X",EAST],
          AXIS["Y",NORTH],
          AUTHORITY["EPSG","2154"]]
    EOS

    ws84_definition = <<~EOS
      GEOGCS["WGS 84",
           DATUM["WGS_1984",
                 SPHEROID["WGS 84",6378137,298.257223563,
                          AUTHORITY["EPSG","7030"]],
                 AUTHORITY["EPSG","6326"]],
           PRIMEM["Greenwich",0,
                  AUTHORITY["EPSG","8901"]],
           UNIT["degree",0.0174532925199433,
                AUTHORITY["EPSG","9122"]],
           AUTHORITY["EPSG","4326"]]
    EOS

Result
preferred_native_interface capi
rgeo-proj4 version 3.0.1
proj4 version: 7.2.1
RUBY_VERSION: 2.6.6
RUBY_PLATFORM x86_64-darwin19
Processed in 0.4099999999998545

Docker image to reproduce
Here is a gist with a docker image where I've reproduced the issue with proj version:8.1.0
https://gist.github.com/x4d3/1dff5f2348a0a6ec1a6fd440d0d64ac7

Thank you for the detailed/reproducible issue. I'm seeing a similar performance regression when I tested your script. I think I have an idea what it might be, but I'll do some digging and report progress as it comes up.

So I looked into it and the cause is what I suspected. In newer versions of proj, you need to create a crs_to_crs projection and then transform coordinates with that, whereas in older versions you would pass 2 separate CRS's into the transform function. I'm not sure exactly how the internals worked, but I assume they cached the mapping somehow, but now they don't since they give us the crs_to_crs object back.
It takes about 0.002s for me to create the new crs_to_crs, so doing this 1000 times is ~2s.
I think the best solution to this is to do the following:

Create a new class RGeo::CoordSys::CRSToCRS that is instantiated from 2 RGeo::CoordSys::Proj4 objects and stores the crs_to_crs.
Create a singleton class RGeo::CoordSys::CRSStore that maps some combination of Proj4 objects to a CRSToCRS object.
When running transform_coords, check the CRSStore to see if the mapping exists, if not create it and store it, else get it.
Change the underlying C function to accept the crs_to_crs instead of 2 projections and just transform the coordinates.

Reference to see differences in C library between versions: https://proj.org/development/migration.html

Thanks @keithdoggett, I had a stab at fixing it in #20


Try again the sound of the audio was not clear

its again and again saying this error

@mbcse, did you make sure that the file "myspsolution.praat" is in the directory where your audio files are at? I was getting the same exception and this is what solved it for me.

Yes it is still saying audio not clear

I am getting the same error also:(

Can you post your code?

mysp=import("my-voice-analysis")
p="demo" # Audio File title
c=r"C:\Users\HP\Desktop\foldert"
mysp.myspgend(p,c)
mysp.myspsyl(p,c)
mysp.mysppaus(p,c)
mysp.myspsr(p,c)
mysp.myspatc(p,c)
mysp.myspst(p,c)
mysp.myspod(p,c)
mysp.myspbala(p,c)
mysp.myspf0mean(p,c)
mysp.myspf0sd(p,c)
mysp.myspf0med(p,c)
mysp.myspf0min(p,c)
mysp.myspf0max(p,c)
mysp.myspf0q25(p,c)
mysp.myspf0q75(p,c)
mysp.mysppron(p,c)
can you tell me about the python version that suits best

I have been able to workaround this issue by changing the init.py code. For each function:
Chaged this:
sound=p+"/"+m+".wav"
sourcerun=p+"/myspsolution.praat"
path=p+"/"
to this (be aware that myspsolution.praat may not be in the same folder as the .wav files):
sound=p+"/"+m+".wav"
sourcerun="myspsolution.praat"
path=p+"/"
I've been checking everything thorugh os:
print(os.path.isfile(sourcerun))
print(os.path.isfile(sound))
All the best,
David


add initial postgresql setup

Context
Setup Postgreqsl terraform files, and confirm plan.
Checklist

[ ] Attach to Trello card
[ ] Rebased main
[ ] Cleaned commit history
[ ] Tested by running locally

 Deploy AKS infra resources

 FALTRN Deploy postgres


chore: update Dockerfile

New Trivy minor release with some bugfixes 🐸
Fix for: https://github.com/aquasecurity/trivy/issues/5441

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

Already fixed with https://github.com/aquasecurity/trivy-action/pull/277


Make README consistent with official website saying "K3s is packaged as a single <50MB binary"

Proposed Changes
just a simple change

Types of Changes

Verification

Linked Issues

User-Facing Change

Further Comments

Yeah, but it's not any more. That's why we raised it. The website should probably be updated.

I see.


How to Use XR-Transformer in Text2Text App

Description
I want to use XR-Transformer in text2text app, following the parameters given here. But setting --params-path to this .json file raise the error:
Traceback (most recent call last):
  File "/home/huziyuan/miniconda3/envs/huggingface/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/huziyuan/miniconda3/envs/huggingface/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/huziyuan/miniconda3/envs/huggingface/lib/python3.9/site-packages/pecos/apps/text2text/train.py", line 345, in <module>
    train(args)
  File "/home/huziyuan/miniconda3/envs/huggingface/lib/python3.9/site-packages/pecos/apps/text2text/train.py", line 328, in train
    t2t_model = Text2Text.train(
  File "/home/huziyuan/miniconda3/envs/huggingface/lib/python3.9/site-packages/pecos/apps/text2text/model.py", line 317, in train
    pred_params = pred_params.override_with_kwargs(kwargs)
  File "/home/huziyuan/miniconda3/envs/huggingface/lib/python3.9/site-packages/pecos/apps/text2text/model.py", line 126, in override_with_kwargs
    self.xlinear_params.override_with_kwargs(pred_kwargs)
AttributeError: 'NoneType' object has no attribute 'override_with_kwargs'

References

Text2Text API
XR-Transformer

Another question: if I want to apply PECOS to the XMC problem with Chinese text corpus, what kind of adjustment should I do? Does it support Chinese, e.g., the tf-idf feature extraction?

Thanks for your reply! If I follow XR-Transformer to perform XMC and I have both the text and the extracted visual features, how am I supposed to fuse these multimodal features in XR-Transformer?

XR-Transformer supports both additional dense and sparse features. You can just replace the sparse TF-IDF features here with your dense instance feature. Or you could follow the example here (i.e. replace train_feat.npz with your train_feat.npy) in python API.


failed: A socket operation could not be performed because the system lacked buffer memory or a queue was full. (10055)

What happened: app stop working, debug info "failed: Ein Socketvorgang konnte nicht ausgeführt werden, da dem System Pufferspeicher fehlte oder eine Warteschlange voll war.  (10055)"
What you expected to happen: running masternode
How to reproduce it (as minimally and precisely as possible): running app

What are your environment parameters?

DeFi Wallet Version: v.2.3.2
Operating System (OS):WIN server 2009

Anything else we need to know?:

Hi @supervolot , thanks for your feedback. Kindly send your app logs. If possible, do attach screenshots / screen recordings. This will provide more insight for the investigation. Thank you.


Publish ClrMD 2.0 RTM

This issue is mostly a marker/FYI about the current schedule.  I currently plan to do an API review of all public methods of all public classes in ClrMD, fix all outstanding issues, publish RTM, and then update documentation.  Here's my current deadlines for each stage, subject to change if I find more work missing:

[x] API Review
[x] Fix open issues (and testing)
[x] Performance Work
[x] Publish Release Candidate
[ ] RTM:  6/5 (planned)
[ ] Update Documentation:  6/5 (planned)

I still expect there to be some issues to fix, but I'm trying to really wrap up the public surface area changes by 5/15.  There may be a ClrMD 2.1 and 2.2 within the next few months if I find I need to make more minor breaking API changes, but I'd like to avoid that if possible.

I marked a few items as "help wanted" if anyone is looking for a side project.  =)

I was pulled into some high priority work last week and continuing this week.  I have pushed back the RTM date.

Thanks for your hard work @leculver!

This is great, can't wait!

I've published a 2.0 release candidate build for ClrMD here:  https://www.nuget.org/packages/Microsoft.Diagnostics.Runtime/2.0.0-rc.20278.6.  This is a last-call for breaking changes, as I will publish 2.0 RTM a week from tomorrow (June 5th) to give myself some bake time in case I forgot something or regressed something in the changes this week.
(@NextTurn as an fyi.)

We are still on track here.  I will be publishing the final 2.0 RTM build around 6-10pm PST tomorrow (6/5/2020).

I have published ClrMD 2.0 here:  https://www.nuget.org/packages/Microsoft.Diagnostics.Runtime/2.0.130507
However, I spent a lot of the week stress testing the runtime and I found an issue with the current implementation where we can leak memory in a very specific scenario: https://github.com/microsoft/clrmd/issues/727.  I ran out of time this week to get this fixed but I'll be working on it first thing Monday morning.


New version: evilmartians.lefthook version 1.6.3

Pull request has been created with WinGet Releaser v2 :rocket:
Microsoft Reviewers: Open in CodeFlow

Hi @mrexox,
The package didn't pass a Defender or similar security scan. This might be a false positive and we can rescan tomorrow.


avatar command supports now a user's id as parameter

The avatar command can be used with a user's id.

This looks great to me, so I'm going to merge this. It was definitely a much-needed feature, and it's great to see Onyx support user IDs now 😄
Thanks so much for the excellent contribution!


Macos Mac book pro MAX + UTM + Ubunut 22.04 + 2 monitor =>error from start

Questions?
Any possibility to start Ubuntu (or any other Gnu/Linux) with at least 2 monitors ?

UTM Version: 4,1
macOS Version:  13.2.1
Mac Chip (Intel, M1, ...):  M2 MAX
Qemu : 7.2

Crash log
QEMU left with an error : qemu-aarch64-softmmu: -device virtio-ramfb: duplicate fw_cfg file name: vgaroms/vgabios-ramfb.bin

I have an identical issue.  Though I don't seem to be able to generate debug logs; I am running a 2 display setup and I cannot get passed the installation.  That goes fine, then on reboot hangs indefinitely at a black screen.


A way to stop WASM instance when execution hangs

Feature
Would it be possible to add a way to send a trap or similar to the WASM instance from any caller at any time from API to force a currently running instance to terminate nicely. It is kind of like sending a POSIX abort/interrupt signal().
Benefit
Allow WASM instance to be aborted nicely when it would otherwise run in infinite loop. When to abort, is then fully controllable from caller.
Implementation
Allow special trap to be sent from external caller thread which would be injected into a given running thread or all threads of the WASM instance. Which any return will trigger a trap within a given time or execution cycles.
Alternatives
Not sure what else could be done. There is no guarantee that an import is called from the WASM instance to hook for arbitrary modules.

Thanks for the report! I believe this is covered by https://github.com/bytecodealliance/wasmtime/issues/860, or that's at least where we've been consolidating these sorts of feature requests, so I'm going to close this in favor of that.

Thanks.


Continue (Button) or Continue (Audodetect)

Hello and congrats on such excellent work!

I'm using https://github.com/oobabooga/text-generation-webui/wiki/12-‐-OpenAI-API  with the openai API (simil) to openai. To continue generation, I added for testing a small button next to send called "Continue," which sends _continue as a message. Hence, it continues generation, and it works, but dunno how to remove the user message with the _continue from the chat.

Another alternative would be reading the generated json and detect if finish_reason eq to length it means the message is not yet complete and just "ask" for the rest. (there is finish_reason eq stop).
Here it is the json to experiment, both versions:
{"id":"chatcmpl-1703102330350430976","object":"chat.completions","created":1703102330,"model":"zephyr-7b-beta.Q6_K.gguf","choices":[{"index":0,"finish_reason":"length","message":{"role":"assistant","content":"Title: Embracing the Power of Linux: The Ultimate Guide\n\nLinux, the open-source operating system, has become a popular choice for IT professionals, developers, and enthusiasts alike. With its flexibility, customizability, and security features, Linux has carved out a niche for itself in the tech landscape. In this article, we’ll explore the benefits of Linux, discuss some popular use cases, and provide a beginner’s guide to get started with this powerful operating system.\n\nBenefits of Linux\n\nLinux offers a host of benefits, many of which make it a top choice for tech-savvy users. Here are some of the major advantages of choosing Linux:\n\n reliability: Linux is renowned for its reliability and stability. With a stable, robust kernel and a modular architecture, Linux ensures that system processes run smoothly and without errors. This makes Linux an ideal choice for mission-critical applications where downtime cannot be tolerated.\n\nsecurity: Linux is a secure operating system with an impressive track record in preventing security breaches. With features like mandatory access control, SELinux, and AppArmor, Linux provides strong protection against attacks. Additionally, the open-source nature of Linux makes it easier to identify and address security issues quickly.\n\ncustomizability: Linux is highly customizable, allowing users to tailor their systems to their specific needs. With a vast range of software packages and tools available, users can easily add new features and functionalities. Moreover, the open-source nature of Linux means that users can contribute to the development of the OS and the software ecosystem, making it a truly community-driven platform.\n\ncost-effectiveness: Linux is a free and open-source operating system, which makes it an attractive choice for individuals and organizations looking to save costs. Apart from the cost-effectiveness, Linux can also reduce hardware requirements since it consumes fewer system resources compared to other OSs.\n\npopular use cases of Linux\n\nLinux has a wide range of applications across various industry sectors. Here are some popular use cases of Linux:\n\nweb servers: Linux is the preferred choice for web servers due to its reliability, scalability, and security features. With Apache, Nginx, and other popular web servers, Linux enables organizations to build and manage high-performance, cost-effective web platforms.\n\ndatabase servers: Linux is an ideal choice for database"}}],"usage":{"prompt_tokens":48,"completion_tokens":513,"total_tokens":561}}
{"id":"chatcmpl-1703102393123772928","object":"chat.completions","created":1703102393,"model":"zephyr-7b-beta.Q6_K.gguf","choices":[{"index":0,"finish_reason":"stop","message":{"role":"assistant","content":"Love is a powerful emotion that connects two people deeply. It can be characterized as a feeling of affection, kindness, and devotion towards someone else. Love can take on many different forms, including romantic love, platonic love, and self-love. It often involves actions and sacrifices that demonstrate compassion, respect, and commitment. Ultimately, love is a fundamental aspect of the human experience that brings people closer together and helps them to thrive as individuals and couples."}}],"usage":{"prompt_tokens":38,"completion_tokens":97,"total_tokens":135}}
Would you mind helping implementing such features?

So you're using the oobabooga API as an endpoint in Prompta?

So you're using the oobabooga API as an endpoint in Prompta?

Yes, it is compatible.

Yeah it's meant to be usable with any openai-compatible api. so what's the issue here?
You want to remove user messages from the chat?
If so you can delete those messages via the UI. this was recently shipped. see #14

Yeah it's meant to be usable with any openai-compatible api. so what's the issue here?
You want to remove user messages from the chat?
If so you can delete those messages via the UI. this was recently shipped. see #14

I wanted to make a PR but i'm not familiar with Svelte, essentially, on the API, there are 2 or maybe more, types of finish_reason:

length
stop

The first is when you still have content to be received. The second when the message is fully received. I added a simple Continue button to get more content but the message gets on the chat and the idea is to have it as a feature but invisible. The other option is to detect when finish_reason = length is received and then send _continue again.


Bump github.com/aws/aws-sdk-go from 1.40.7 to 1.40.11 in /testgrid/tgapi

Resolves #1927

Resolves #1929


Output

I see we use NCDatasets?
https://github.com/natgeo-wong/YangShallowWater.jl/blob/e17d0506d0290226be5ac2332635da9ad7f9b9f1/Project.toml#L11
Just noting that FourierFlows gives output functionality via JLD2.

I feel that NCDatasets is much more stable than JLD2 (personally speaking), and NetCDF as a file format is much more widely used and allows for non-Julia users to analyze the data output as well. This is why I would choose to use NCDatasets.jl over JLD2.

Gotcha!


[proposal] Add-to-App support for desktop platforms

Flutter Module supports android and iOS to help add-to-app more convenient,  for desktop applications,  some apps also only use flutter in part  modules, or progressive migrate to flutter, so is there a plan to support windows/mac desktop as mobile's "add-to-app" ?

H @wangying3426
flutter module doesn't support desktop and when I look for a similar issue, I can't find any for desktop and it may be a completely different method for desktop, I'm not sure.
It would be interesting to know if it possible to embed flutter into existing windows or macOS desktop
CC @stuartmorgan for more information about this, highly appreciate it

it may be a completely different method for desktop

There is currently no supported add-to-app process for desktop per the docs

It would be interesting to know if it possible to embed flutter into existing windows or macOS desktop

It is of course possible, since by definition the runner is just an application that embeds Flutter. But without tooling support you'd be on your own for all the steps the tool handles: getting the correct engine artifacts and putting them in a known location, calling assemble with all the correct settings, setting up the plugin builds and generating the registrant, etc.

ok, I got it, thanks

@csells Is this the first time this issue has been logged? IIRC, it's certainly been discussed when charting MVPs for our various betas, and ruled out for early beta releases.

@kf6gpe  As far as I know this is the first time it's ever actually been filed as a request.

Also check out https://github.com/flutter/flutter/wiki/Desktop-shells#add-to-app

That's the same thing I linked to above.

Any updates on this proposal?

Thank you for filing the issue. This is definitely something we want to support for desktop. Keep in mind that we'll follow our usual triage/prioritisation process, so people can help get this prioritised by adding thumbs-up reactions.


X3D Enables interactive Text and Font Style Changes via JavaScript

Accompanied with tests at https://github.com/gearvrf/GearVRf-Tests/pull/247
Also a fix to allow scales with negative values.
GearVRF DCO signed off by: Mitch Williams
<EMAIL_ADDRESS>

Looks good. Tests match the document. Planning to merge on Thursday.


add request method check: change url for GET requests only

Hi!
I think for GET only requests. What do you think?

Thanks @western--I can agree with this change. That said, I just added you as a collaborator on this repo and as an author on rubygems. Feel free to land this and publish as you see fit. If you'd like to move the repository to your github account, just say the word and I'll submit the transfer!

@tkellen Thank you so much. Merge this changes if you agree. That's enough. I'm not sure that i will send changes in the future.

Thank you for privileges!


Logs of machines chef-clients

As far as I can see logs of chef-client running on machine resources is not shown inside chef-client run of provisioner node. Is there a configuration option for this or this feature doesn't exist?

I've been beating my head on this as well.
the problems are multiple -
first: the way the remote chef-client is run, output from it will -only- output in the local chef if the local chef is running at debug log level.
so if debug level is OK for you, add a -l debug to your chef-client run.    this is currently the -only- way I've found to get remote client log output to the local client at all.
If you dont want everything to be debug - and are OK with using a remote log file -
you can provide configuration to the remote client via:
with_machine_options({
  :convergence_options => {
    :chef_config => "
      log_level :info
      log_location '/var/log/chef.log'
    "
  },
})

...but any log_level you might specify in that config is overriden by the command line args (correctly).  when local chef-client runs remote chef-client, it passes the -l flag - default of -l auto, otherwise whatever log_level the local client is running at.
-l auto on the remote, running without a connected tty, will....not log at all.   so even if you specify a file output, it'll be empty.
so you need to at least pass -l info or greater to the local so you get -l info on the other end.   (obviously you could use the local config file, too)   give it a logfile so you can inspect it, otherwise it just blackholes.
at least, that's been what I've found (yesterday...)

-l debug sounds like a reasonable solution in my situation.  Then you will get reports for each chef-client run, including provisioner node. For provisioner node report you will set how long it took to provision node X, and then you can open report for node X to see what exactly took that long.  One thing to keep in mind is that numbers in reports are not that precise if they took less than a minute.

@Fodoj pointer to details on that? :)

I think it would be reasonable to add a mode that would print stdout and stderr to a file for each machine. You could even tee it to stdout.
I just hacked something up that probably does that, but it's completely untested (not even run) at the moment. If you are able to give a branch a try, then please do and let me know if it does what you need!  The branch of chef-provisioning is jk/output_per_machine.
You can use the feature by specifying this in machine_options:
machine 'blah' do
  machine_options convergence_options: { machine_output_path: "/Users/jkeiser/output" }
end

It will then create a file for each machine in the specified directory, and stream the output to it. It will also stream the output to stdout still.

Hmm, I just realized that doesn't completely solve what you want--you are saying that if you don't set -l debug, you don't get any output from the chef-client?
Still, might help for massive runs. I know it's been asked for.

@Fodoj oh! I know what you need. Disregard.
You need this:
machine 'blah' do
  machine_options convergence_options: { stream: true }
end

The relevant code is here.

ohhh ho ho, magic! :)
I'll give that a kick tomorrow!
On Thu, Aug 27, 2015 at 10:56 PM, John Keiser<EMAIL_ADDRESS>wrote:

@Fodoj https://github.com/Fodoj oh! I know what you need. Disregard.
You need this:
machine 'blah' do
machine_options convergence_options: { stream: true }end
The relevant code is here
https://github.com/chef/chef-provisioning/blob/master/lib/chef/provisioning/transport.rb#L72
.
—
Reply to this email directly or view it on GitHub
https://github.com/chef/chef-provisioning/issues/425#issuecomment-135619328
.

@keen99 what I meant was this: https://docs.chef.io/reporting.html Still good to have this reporting

@jkeiser awesome, thanks!

@keen99 @jkeiser
So, actually neither of two solutions work:

-l debug on provisioner node shows lots of, well, debug information, but still doesn't output any logs from clients that are created and provisioned
stream: true didn't do anything at all.

Ugh, I see why stream: true didn't do anything. -l debug should have, though. What were you expecting it to do, and what did it do instead?

@jkeiser So if I have a recipe:
machine "web" do
  recipe "my_app"
end

and then I run it with chef-client, then inside log of chef client I wanted to see also logs of another chef client run that happens inside node web after it's created. So in that case I would like to see how my_app recipe was run inside web node.

@Fodoj it should print the log of the node to your current console--what are you seeing?

@jkeiser
all it shows is
[2015-08-28T14:52:50+00:00] INFO: Executing sudo chef-client -l auto on<EMAIL_ADDRESS>[2015-08-28T14:58:40+00:00] INFO: Completed chef-client -l auto on<EMAIL_ADDRESS>exit status 0

Is that on the console or in the local chef-client log?

@jkeiser that's inside chef-client log of machine that executes this recipe:
machine "web" do
  recipe "my_app"
end

@Fodoj I believe the output of the machine in question goes to the console rather than the logfile. I totally get that that's not useful to you if you're running remotely, but you might want to check it anyway--run chef-client from a terminal and see? At least then we can be sure what the problem is.

@jamesc I am running it manually from the provisioner node. I get full log of provisioner chef client, but I don't get the log of chef client of machine that it provisions in the same log.

@Fodoj What is the full command you run, and are you looking at the output that appears on the console, or in a file somewhere? (It's super possible this is now broken, I just want to make darn sure, since chef-client -l debug should be printing out that stuff to the console.)

yeah, looks like your debug log_level isn't getting set...or at least not
in a way that gets passed down, since your remote was still -l auto
how are you passing debug?  -l debug?  or local client.rb?
On Fri, Aug 28, 2015 at 11:46 AM, John Keiser<EMAIL_ADDRESS>wrote:

@Fodoj https://github.com/Fodoj What is the full command you run, and
are you looking at the output that appears on the console, or in a file
somewhere? (It's super possible this is now broken, I just want to make
darn sure, since chef-client -l debug should be printing out that stuff
to the console.)
—
Reply to this email directly or view it on GitHub
https://github.com/chef/chef-provisioning/issues/425#issuecomment-135811056
.

It works fine for provisioner node - shows debug info. It also gets passed down. But in provisioner node log I don't get of provisioned nodes.
Full command: chef-client -o "recipe[cluster]" -l debug
Best regards,
Kirill Shirinkin
On Fri, Aug 28, 2015 at 6:20 PM, david raistrick<EMAIL_ADDRESS>wrote:

yeah, looks like your debug log_level isn't getting set...or at least not
in a way that gets passed down, since your remote was still -l auto
how are you passing debug?  -l debug?  or local client.rb?
On Fri, Aug 28, 2015 at 11:46 AM, John Keiser<EMAIL_ADDRESS>wrote:

@Fodoj https://github.com/Fodoj What is the full command you run, and
are you looking at the output that appears on the console, or in a file
somewhere? (It's super possible this is now broken, I just want to make
darn sure, since chef-client -l debug should be printing out that stuff
to the console.)
—
Reply to this email directly or view it on GitHub
https://github.com/chef/chef-provisioning/issues/425#issuecomment-135811056
.

Reply to this email directly or view it on GitHub:
https://github.com/chef/chef-provisioning/issues/425#issuecomment-135823517

@Fodoj cool, seems like the right command. Where are you reading the output you pasted? Are you seeing the [INFO] lines in a file, or on the command line console where you ran that command?

command line console

stream didn't work for me (-l info on the cmdline and -l info on the remote, no output between
but -l debug on the local client passed it to the remote and I got output from the remote to the local.(using master from earlier in the week):
 chef-client -z $file -l debug |grep -v "WARN:.*Chef 13"
[2015-08-28T14:29:25-04:00] INFO: Executing chef-client -l debug on<EMAIL_ADDRESS>[2015-08-28T14:29:29-04:00] DEBUG: #<ChefZero::RestRequest:0x007f89231334a0 @env={"GATEWAY_INTERFACE"=>"CGI/1.1"...
....
--- END RESPONSE ---
[2015-08-28T14:29:35-04:00] INFO: Completed chef-client -l debug on<EMAIL_ADDRESS>exit status 0

@keen99 so it shows you all the recipes etc inside remote machine ?

....I take that back.
-l debug is giving me the zero chef-server debug output, not the zero
chef-client output, I think.   Definitely not the client output
[2015-08-28T15:40:50-04:00] DEBUG: {"run_list":["example","runuserdata"]}
[2015-08-28T15:40:51-04:00] DEBUG:
--- RESPONSE (200) ---
{
  "example": {
    "recipes": [

I should be able to find this (which logged on the client in the
loglocation file I spec'd) but it's not there.
[2015-08-28T19:40:58+00:00] ERROR: ruby_block[doaws] (runuserdata::default
line 57) had an error: NoMethodError: undefined method `log' for
Chef::Resource::RubyBlock

I've been away from a -server world for a while (and glad to be) so I think
my brain just fuzzed - it saw output, obviously it must be from the client
right? :)
On Fri, Aug 28, 2015 at 3:28 PM, Kirill Shirinkin<EMAIL_ADDRESS>wrote:

@keen99 https://github.com/keen99 so it shows you all the recipes etc
inside remote machine ?
—
Reply to this email directly or view it on GitHub
https://github.com/chef/chef-provisioning/issues/425#issuecomment-135866914
.

I am totally confused and I think one of you at least misunderstands the problem. I will compile a reproducible demo to show what I mean, give me 1-2 days for this. :)

I was having problems capturing debug log_level output as well but I think I figured out what's going on.
Whenever I run chef-client -z provision.rb -l debug obviously a ton of output scrolls by so I pipe it to less or redirect it to a file. But piping or redirecting apparently causes the node's chef-client run to stop streaming the output.
To overcome this I append --force-formatter to the command and now I can pipe or redirect the output without losing any output.
By the way, this is true of any of the log_levels.
To demonstrate this I have the following machine resource.
machine 'supermarket' do
  machine_options({
                    convergence_options: { chef_version: "12.6.0" },
                    transport_options: {
                      ip_address: '<IP_ADDRESS>',
                      username: 'dev-lxc',
                      ssh_options: {
                        password: "dev-lxc"
                      }
                    }
                  })
end

And here is the output for each log level with and without --force-formatter.
$ chef-client -z provision.rb -l error | egrep 'version 12.6.0|chef-client -l'
$
$ chef-client -z provision.rb -l error --force-formatter | egrep 'version 12.6.0|chef-client -l'
    [supermarket] Starting Chef Client, version 12.6.0
    - run 'chef-client -l error' on supermarket

$ chef-client -z provision.rb -l warn | egrep 'version 12.6.0|chef-client -l'
$
$ chef-client -z provision.rb -l warn --force-formatter | egrep 'version 12.6.0|chef-client -l'
    [supermarket] Starting Chef Client, version 12.6.0
    - run 'chef-client -l warn' on supermarket

$ chef-client -z provision.rb -l info | egrep 'version 12.6.0|chef-client -l'
[2016-01-06T00:38:03-05:00] INFO: Executing sudo chef-client -l info on<EMAIL_ADDRESS>[2016-01-06T00:38:05-05:00] INFO: Completed chef-client -l info on<EMAIL_ADDRESS>exit status 0
$
$ chef-client -z provision.rb -l info --force-formatter | egrep 'version 12.6.0|chef-client -l'
[2016-01-06T00:30:39-05:00] INFO: Executing sudo chef-client -l info on<EMAIL_ADDRESS>                  Starting Chef Client, version 12.6.0
[2016-01-06T00:30:41-05:00] INFO: Completed chef-client -l info on<EMAIL_ADDRESS>exit status 0
    - run 'chef-client -l info' on supermarket

$ chef-client -z provision.rb -l debug | egrep 'version 12.6.0|chef-client -l'
[2016-01-06T00:38:24-05:00] INFO: Executing sudo chef-client -l debug on<EMAIL_ADDRESS>[2016-01-06T00:38:26-05:00] INFO: Completed chef-client -l debug on<EMAIL_ADDRESS>exit status 0
$
$ chef-client -z provision.rb -l debug --force-formatter | egrep 'version 12.6.0|chef-client -l'
[2016-01-06T00:29:57-05:00] INFO: Executing sudo chef-client -l debug on<EMAIL_ADDRESS>                  Starting Chef Client, version 12.6.0
[2016-01-06T00:29:59-05:00] INFO: Completed chef-client -l debug on<EMAIL_ADDRESS>exit status 0
    - run 'chef-client -l debug' on supermarket[2016-01-06T00:29:59-05:00] DEBUG: Closing SSH session on<EMAIL_ADDRESS>

@jeremiahsnapp - thanks! --force-formatter option displays you'l get both:

client/provisioner output
and
client/target_node_chef_client_run output

sudo chef-client -z -o systems-infrastructure::my_app -E prod --force-formatter

@jeremiahsnapp thank you! the --force-formatter option worked for me as well.

Let's go back to :stream_stdout and :stream_stderr for completeness.
How should these two be used in the machine_options of a machine resource?


Nested Navigator Widget rebuild when use pushNamedAndRemoveUntil predicate route false

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

go to nested navigator Page 1
go to nested navigator Page 2
pushNamedAndRemoveUntil External navigator (rootNavigator: true,predicate route false) to Page IN.

nested navigator rebuild page 1 . we can see page 1 before show External Page IN
if remove navigatorKey or Object? routeSettings - all ok (nested navigator do not rebuild)
if predicate return not false, example:  route.isFirst  - all ok
if declare navigatorKey not in Widget build - all ok
Expected results
rebuild: nested/page1
rebuild: nested/page2
Actual results
rebuild: nested/page1
rebuild: nested/page2
rebuild: nested/page1
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(final BuildContext context) {
    return MaterialApp(
      title: 'home',
      initialRoute: '/',
      routes: <String, WidgetBuilder>{
        '/': (final BuildContext context) => const HomeScreen(),
        '/nestedNavigator': (final BuildContext context) => const NestedNavigator(),
        '/in': (final BuildContext context) => const PageIn(),
      },
    );
  }
}

class HomeScreen extends StatelessWidget {
  const HomeScreen({super.key});

  @override
  Widget build(final BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('External Navigator')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextButton(
              child: const Text('Go to Nested Navigator page 1'),
              onPressed: () async {
                await Navigator.pushNamed(context, '/nestedNavigator');
              },
            ),
          ],
        ),
      ),
    );
  }
}

class NestedNavigator extends StatelessWidget {
  const NestedNavigator({super.key});

  @override
  Widget build(final BuildContext context) {
		// remove one
    final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
    final Object? routeSettings = ModalRoute.of(context)?.settings.arguments;

    return Navigator(
      key: navigatorKey,
      initialRoute: 'nested/page1',
      onGenerateRoute: (final RouteSettings settings) {
        late final WidgetBuilder builder;
        print('rebuild: ${settings.name!}');
        switch (settings.name) {
          case 'nested/page1':
            builder = (final BuildContext _) => const NestedPage1();
            break;
          case 'nested/page2':
            builder = (final BuildContext _) => const NestedPage2();
            break;
        }
        return MaterialPageRoute<void>(builder: builder, settings: settings);
      },
    );
  }
}

class PageIn extends StatelessWidget {
  const PageIn({super.key});

  @override
  Widget build(final BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('External Page In')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text('This is External Page In'),
            TextButton(
              child: const Text('Go to back start'),
              onPressed: () async {
                await Navigator.of(context).pushNamed('/');
              },
            ),
          ],
        ),
      ),
    );
  }
}

class NestedPage1 extends StatelessWidget {
  const NestedPage1({super.key});

  @override
  Widget build(final BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Nested Navigator page 1')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextButton(
              child: const Text('Go to Nested page 2'),
              onPressed: () async {
                await Navigator.of(context).pushNamed('nested/page2');
              },
            ),
          ],
        ),
      ),
    );
  }
}

class NestedPage2 extends StatelessWidget {
  const NestedPage2({super.key});

  @override
  Widget build(final BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Nested Navigator page 2')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextButton(
              child: const Text('Go to External Page In'),
              onPressed: () async {
                await Navigator.of(context, rootNavigator: true).pushNamedAndRemoveUntil(
                  '/in',
                  (final Route route) => false,
                );
              },
            ),
          ],
        ),
      ),
    );
  }
}

Screenshots or Video
No response
Logs
No response
Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.13.2, on Microsoft Windows [Version 10.0.19045.3324], locale ru-RU)
    • Flutter version 3.13.2 on channel stable at C:\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ff5b5b5fa6 (8 days ago), 2023-08-24 08:12:28 -0500
    • Engine revision b20183e040
    • Dart version 3.1.0
    • DevTools version 2.25.0

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at G:\DB\soft_db\Android\Sdk\
    • Platform android-33-ext5, build-tools 33.0.2
    • ANDROID_HOME = G:\DB\soft_db\Android\Sdk\
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 2022.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)

[√] VS Code (version 1.81.1)
    • VS Code at C:\Users\ooovid\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.46.0

[√] Connected device (2 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 116.0.5845.141
    • Edge (web)   • edge   • web-javascript • Microsoft Edge 116.0.1938.62

[√] Network resources
    • All expected network resources are available.

Thanks for the report. Seeing the same behavior as reported.

 stable, master flutter doctor -v
[!] Flutter (Channel stable, 3.13.2, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 3.13.2 on channel stable at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ff5b5b5fa6 (7 days ago), 2023-08-24 08:12:28 -0500
    • Engine revision b20183e040
    • Dart version 3.1.0
    • DevTools version 2.25.0
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.14.0-13.0.pre.67, on macOS 12.2.1 21D62
    darwin-x64, locale en-GB)
    • Flutter version 3.14.0-13.0.pre.67 on channel master at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e9448fdf61 (2 hours ago), 2023-08-31 23:49:06 -0400
    • Engine revision a9ebed54c4
    • Dart version 3.2.0 (build 3.2.0-128.0.dev)
    • DevTools version 2.27.0
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/dhs/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for
      more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13C100
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 65.1.4
    • Dart plugin version 213.7228

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.29.0

[✓] Connected device (3 available)
    • Darshan's iphone (mobile) • 21150b119064aecc249dfcfe05e259197461ce23 • ios
      • iOS 15.3.1 19D52
    • macOS (desktop)           • macos                                    •
      darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)              • chrome                                   •
      web-javascript • Google Chrome 109.0.5414.119

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

I have the same behavior


chore(rebuild): handle custom blockquotes

Rebased and refactored slightly to make this a proper remark plugin. @montogeek I'm naming these plugins remark-*** for now and keeping them in the /src/utilities directory but you should think about separating them out to repos in your namespace or in the remarkjs organization.

Need clean up, and tests would be cool!

Cleanup done (at least for simple mapping feature) but yeah tests would be great. I'd recommend doing that once it's separated to another repo though. The whole point of creating these is so that we can abstract and maintain elsewhere.
We want to keep the codebase here as light and easy to maintain as possible. This allows the site to remain content-focused and allows others to use the same tools we build for it elsewhere. There's probably even more code (e.g. certain components) that can be factored out into shared open-source packages even after the rebuild branch is merged.
cc @jeremenichelli

@skipjack I will try to find some time this week to do it, thanks for cleaning it out

It would be super good to turn our remark plugins to packages. We should
reach out if the remark org is interested in hosting them too.
Jeremias Menichelli
web developer
skype | jeremias.menichelli
http://jeremenichelli.github.io
github | jeremenichelli


Automated cherry pick of #1857: fix: esxi change instanceType failed as ChangeConfig2 not implemented

Cherry pick of #1857 on release/2.10.0.
#1857: fix: esxi change instanceType failed as ChangeConfig2 not implemented

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.10.0@c4f6f51). Click here to learn what that means.
The diff coverage is 0%.

@@               Coverage Diff                @@
##             release/2.10.0   #1858   +/-   ##
================================================
  Coverage                  ?   7.62%
================================================
  Files                     ?     410
  Lines                     ?   62928
  Branches                  ?       0
================================================
  Hits                      ?    4798
  Misses                    ?   57718
  Partials                  ?     412

Flag
Coverage Δ

#aFlag
7.62% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/guestdrivers/managedvirtual.go
0% <0%> (ø)

Continue to review full report at Codecov.

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


CI: ebpf unit tests fail with Ubuntu 20.04.2 kernel 5.8

CI failure: ebpf unit tests fail with Ubuntu 20.04.2 kernel 5.8
OS + Kernel
uname -a
Linux wanlindu-cilium-ebpf-testvm-image-ubuntu20042-58 5.8.0-63-generic #71~20.04.1-Ubuntu SMP Thu Jul 15 17:46:08 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Checked out commit
git log
commit 4bff5376d2a6561865940a94d29e4311a210fff7 (HEAD -> master, origin/master, origin/HEAD)

Commands to run the test
# Install the newest version of golang.
sudo add-apt-repository ppa:longsleep/golang-backports -y && sudo apt update && sudo apt install golang-go -y

# Install clang, llvm and make
sudo apt-get install clang llvm -y make

# Clone the upstream cilium.
mkdir upstream_cilium && cd upstream_cilium && git clone --recursive https://github.com/cilium/cilium.git

# Run ebpf unit test in /upstream_cilium and /internal_cilium
cd ~/upstream_cilium/cilium && make -C test run_bpf_tests

Error message
cd ~/upstream_cilium/cilium && make -C test run_bpf_tests
make: Entering directory '/home/wanlindu/upstream_cilium/cilium/test'
make -C ../bpf/tests all
make[1]: Entering directory '/home/wanlindu/upstream_cilium/cilium/bpf/tests'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/wanlindu/upstream_cilium/cilium/bpf/tests'
go test ./bpf_tests -exec sudo -bpf-test-path /home/wanlindu/upstream_cilium/cilium/bpf/tests

--- FAIL: TestBPF (1.74s)
    --- FAIL: TestBPF/tc_nodeport_lb4_nat_lb.o (0.05s)
        bpf_test.go:150: verifier error: load program: invalid argument:
            	Validating build_reply() func#1...
            	btf_vmlinux is malformed
            	Arg#0 type PTR in build_reply() is not supported yet.
            	processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0
    --- FAIL: TestBPF/tc_nodeport_test.o (0.04s)
        bpf_test.go:150: verifier error: load program: invalid argument:
            	Validating build_packet() func#1...
            	btf_vmlinux is malformed
            	Arg#0 type PTR in build_packet() is not supported yet.
            	processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0
    --- FAIL: TestBPF/xdp_nodeport_lb4_nat_backend.o (0.12s)
        --- FAIL: TestBPF/xdp_nodeport_lb4_nat_backend.o/xdp_nodeport_nat_backend (0.00s)
            bpf_test.go:408: src MAC is not the client MAC
    --- FAIL: TestBPF/xdp_nodeport_lb4_nat_lb.o (0.06s)
        bpf_test.go:150: verifier error: load program: invalid argument:
            	Validating build_reply() func#1...
            	btf_vmlinux is malformed
            	Arg#0 type PTR in build_reply() is not supported yet.
            	processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0
FAIL
FAIL	github.com/cilium/cilium/test/bpf_tests	1.803s
FAIL
make: *** [Makefile:92: run_bpf_tests] Error 1
make: Leaving directory '/home/wanlindu/upstream_cilium/cilium/test'

@anfernee

:wave: can you give it a try with clang 10?

Closing in favor of https://github.com/cilium/cilium/issues/24053.


implemented: https://github.com/audreyr/cookiecutter/issues/127

generate_file() ignores the creation of file if its filename is empty.

+1, this is really useful

+1, This would be super useful.

+1, jinja misinterprets code gradlew scripts in Gradle projects & breaks hard. Might be possible to work around the issue with hooks, but doing so seems pretty hacky.

@thomaslee how about copy-without-render? :confused:

@hackebrot my bad -- looks like exactly what I'm after!

This can be done in post-generate hooks as seen in https://github.com/pydanny/cookiecutter-django/blob/master/hooks/post_gen_project.py#L163-L165. This makes this issue more an education issue then a technical solution. This is good because making logic work in directory/file names on Windows is impossible (and we support Windows).
Therefore, I believe this is better done as a recipe described in the advanced_usage.rst document.


290 save volunteer

This is WIP. Some things missing:

no slack id
no email being captured
not sending skills (not sure if express handles this properly)

React is not my sweet-spot, so I'm reaching on some of this. For the above two points: I don't know where we are capturing that info. The formData piece seems like not what we need here; or maybe I fail to understand how that should work with the actual post request.
Similarly, does it make sense to have all the Register components in separate files? Are we going to reuse those? It would seem easier to embed them all in the Register component. Does that make it easier to manage the "step" sequence?
Next steps:

resolve whether we pass the user data piece by piece (as we do in this PR), or modify the express endpoint to accept a user object.
how to submit "skills"? Is that subsequent requests after adding volunteer?
where does this resolve to? Or what does user see next?

Hey Brian,
Thanks for your work on this!
I think a lot of your confusion is due to my lack of details in the story, and I apologize for that.
The slack id and email are both returned once the user enters their email to log in, and those values will be added to the form as hidden fields. So what you have set up is the right idea - those values will be filled and saved in the state when they are pre-filled by the API response, so the user won't need to enter them in themselves.
Saving skills will be handled in a different story. There is still some backend work needed to create those relationships in the database.
We have the different parts of the Register process as different components so they match up to the different pages in the mockups: https://www.figma.com/file/ZuD4HddKFKZ7RHi2Ng53et/Registration-Form?node-id=7%3A3225
Hopefully that answers your questions. Please feel free to reach out to me on Slack if there's anything that's still not clear.


the build trigger already knows the short sha of the release tag, rem…

…oved the piece of code that was erroring dupliating that step

From last run.
HEAD is now at de9775f Merge pull request #31 from ONSdigital/SDSS-77-preprod-yaml-fix
it already knew the short_sha


Intendation error when calling from_graph method

https://github.com/gtfierro/reasonable/blob/4b79278ed14ee94d6fa8ab9c0aa6e44822d98326/src/pyreason.rs#L155
Traceback (most recent call last):

  File ~\AppData\Local\mambaforge\envs\metadata_dev\lib\site-packages\IPython\core\interactiveshell.py:3398 in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)

  Input In [12] in <cell line: 1>
    r.from_graph(g)

  File converters.pg:2
    def get_triples(graph):
    ^
IndentationError: unexpected indent

This probably can be fixed by removing the indentation in the code, I dont really get why I get this error

I was running in windows and in a ipythonkernel

Should be fixed in reasonable==0.2.2a4!


Fix python bug preventing use of Azure OpenAI and OpenAI at the same …

Motivation and Context
Using both OpenAI and Azure OpenAI services would not work due to the way they were configured.  The openai module would be configured globally with keys and endpoints for one type of service and then overwritten when adding another service. Instead, we can configure the settings when making the API calls.
Also, some integration tests are failing because of throttling by GPT4.
Description

Use the API settings when calling the openai API instead of configuring gloabally
Increased delay to 3 seconds for some integration tests to avoid rate limit errors
Relaxed the assertion strings for some integration tests
Ran pre-commit linting
Switch some tests to GPT Turbo 3.5

It'd be nice to see a green pass on your repo fork as well to confirm this fixes things.

More greens in my fork https://github.com/mkarle/semantic-kernel/actions/runs/4950586657/jobs/8854401012


chown /shared folders as well - right?

Summary
I needed to add a volume mount hack for the ~/shared folder. I'm not fully confident about this in general though, but this is what I did.
This change can now be seen in https://github.com/2i2c-org/pilot-hubs/pull/436/commits/9c5e6ee373545a2a4565e36b1342d1e16d35dd7c but below is a summary.
Before
          singleuser:
          # ...
            initContainers:
              # Need to explicitly fix ownership here, since EFS doesn't do anonuid
              - name: volume-mount-ownership-fix
                image: busybox
                command: ["sh", "-c", "id && chown 1000:1000 /home/jovyan && ls -lhd /home/jovyan"]
                securityContext:
                  runAsUser: 0
                volumeMounts:
                  - name: home
                    mountPath: /home/jovyan
                    subPath: "{username}"

Current
          singleuser:
          # ...
            initContainers:
              # Need to explicitly fix ownership here, since EFS doesn't do anonuid
              - name: volume-mount-ownership-fix
                image: busybox
                command: ["sh", "-c", "id && chown 1000:1000 /home/jovyan /home/jovyan/shared && ls -lhd /home/jovyan"]
                securityContext:
                  runAsUser: 0
                volumeMounts:
                  - name: home
                    mountPath: /home/jovyan
                    subPath: "{username}"

                  # Added along with the /home/jovyan/shared entry in the `chown` command
                  - name: home
                    mountPath: /home/jovyan/shared
                    subPath: _shared

Action points

[ ] Conclude if this is needed and wanted

[ ] Do this for the other hubs with this kind of logic in place.
Note that I copied carbonplan.cluster.yaml for jmte.cluster.yaml that I've currently not pushed to the repo.

Very interesting that I didn't do this for carbonplan or openscapes and it seems to have just worked fine?!
_shared only needs to be created once per hub, so maybe it should be part of nfs-share-creator?

Yes i think that may have solved these matters, i'll explore that

This was also reported here: https://github.com/2i2c-org/infrastructure/issues/810#issuecomment-967407615.

Very interesting that I didn't do this for carbonplan or openscapes and it seems to have just worked fine?!

I tested carbonplan, farallon and openscapes AWS hubs and all of them show the same behavior whereas it is working OK on the 2i2c cluster.

Could somebody update this issue with the tasks needed to complete this? Do we need to make a change on the AWS hubs?


Missing Translation in German (de) django.po for search "Everything"

The po-File in mezzanine/core/locale/de lacks the translation for the word "Everything" in search-form.html.
I have added the German word "Alles" in my po-File.
Christian

I added some more translations (found/not found messages after search). I could provide those mo/po, if someone is interested.
Christian

Could you create a pull request with the new files? Thanks


if helper argument is undefined in 2.3

Template case: {{#book}}{{#if isOpend}}...{{/if}}{{/book}}
isOpened is a function on the scope.
scope: {
  isOpend(book){
     return attr('openedId') == book.id
  }
}

In 2.2. isOpened has book (current context) as first agrument and in 2.3 isOpened has not arguments passed, is it by design?

Not intentional, it's a bug.

Is it going to be fixed soon?

Can you submit a test?

Seem to work now


Fixed example project #37

Fixed #37

Removed reference to relative path ../.. which is the parent of Popovers root directory - which causes Xcode to load a ton of unrelated files.
Fixed compilation error where checking non-optional.

Ah, that was probably why it kept crashing. Thanks!


[CHECK] Adapter srm needs verification

Adapter srm needs verification:
Repository stephan1827/ioBroker.srm is archived
Adapter srm is currently installed 12 times

[ ] verify that repository https://github.com/stephan1827/ioBroker.srm is really archived

[ ] check if adapter has been migrated but links are not yet updated at repository
fix links at repository if this is causing the problem

[x] decide if adapter should (and can) be moved to community-adapters (current usage 12 installs)

[ ] move adapter to iobroker-community-adapters
or

[ ] create deprecation news at admin iF required

[ ] set reminder to remove from stable (typical after 14 day up to one months)

[ ] remove from stable

[ ] set reminder to remove from latest (typical after 3 months)

[ ] remove from latest

adapter moved to iobroker-community-adapters


CommandItem not updating on asynchronous changes

Hi, as u can see in the video i am trying to implement  a component which on input change gets the addres predictions from server. Its using PopOver from shadcn for the for the popover.
Now the thing is that when the first adresses arrive than it will render it but on chnage of the input value, it gets the new predictions but it will not render them?
https://github.com/pacocoursey/cmdk/assets/137432044/0a94b4de-afd8-4ebb-b234-5316ef7ee68d
"use client";

import * as React from "react";
import { useDebounce } from "@/hooks/useDebounce";

import { Button } from "@/components/ui/Button";
import {
  Command,
  CommandEmpty,
  CommandList,
  CommandGroup,
  CommandInput,
  CommandItem,
} from "@/components/ui/Command";
import {
  Popover,
  PopoverContent,
  PopoverTrigger,
} from "@/components/ui/Popover";
import { Check, ChevronsUpDown } from "lucide-react";

export function ComboboxDemo() {
  const [open, setOpen] = React.useState(false);
  const [value, setValue] = React.useState("");
  const [selectedValue, setSelectedValue] = React.useState("");

  const [options, setOptions] = React.useState([] as any[]);
  const debouncedValue = useDebounce(value);

  React.useEffect(() => {
    async function handleValueChange() {
      // fetch needed data
      setOptions(results...);
    }
    handleValueChange();
  }, [debouncedValue]);

  return (
    <Popover open={open} onOpenChange={setOpen}>
      <PopoverTrigger asChild>
        <Button variant="outline" className="w-[200px] justify-between">
          {selectedValue
            ? options.find((option) => option.value === value)?.label
            : "Select framework..."}
          <ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" />
        </Button>
      </PopoverTrigger>
      <PopoverContent className="p-0">
        <Command>
          <CommandInput
            value={value}
            onValueChange={setValue}
            placeholder="Search framework..."
          />
          <CommandList>
            <CommandEmpty>No framework found.</CommandEmpty>

            <CommandGroup>
              {options.map((option) => (
                <CommandItem
                  key={option.value}
                  value={option.value}
                  onSelect={(currentValue) => {
                    setSelectedValue(
                      currentValue === selectedValue ? "" : currentValue,
                    );
                    setOpen(false);
                  }}
                >
                  <Check
                    className={cn(
                      "mr-2 h-4 w-4",
                      selectedValue === option.value
                        ? "opacity-100"
                        : "opacity-0",
                    )}
                  />
                  {option.label}
                </CommandItem>
              ))}
            </CommandGroup>
          </CommandList>
        </Command>
      </PopoverContent>
    </Popover>
  );
}

export default ComboboxDemo;

+1 experiencing the same issue.
The items are only "updated" only when the popover closes abd then reopened

@pacocoursey any help with that?

Hi @ImamJanjua, since the options are updated when the Command is closed and reopened, I made a workaround to "abolish" the Command from the dom tree and replace it with another lookalike component while loading. After new data is fetched successfully, the Command will be added back.
It should end up with something like this:
https://github.com/pacocoursey/cmdk/assets/65691613/e29568ff-ece1-4104-ad14-a9077c1eefbf
interface DataTableFacetedFilterProps<TData, TValue> {
  column?: Column<TData, TValue>;
  title?: string;
  options: {
    label: string;
    value: string;
    icon?: React.ComponentType<{ className?: string }>;
  }[];
  onOpenChange?: ((open: boolean) => void) | undefined;
  onValueChange?: ((search: string) => void) | undefined;
  value?: string | undefined;
  defaultValue?: string | undefined;
  isLoading?: boolean;
}

const TableFacetedFilter = <TData, TValue>({
  column,
  title,
  options,
  onOpenChange,
  onValueChange,
  value,
  defaultValue,
  isLoading,
}: DataTableFacetedFilterProps<TData, TValue>) => {
  const facets = column?.getFacetedUniqueValues();
  const selectedValues = new Set(column?.getFilterValue() as string[]);
  // If it's loading, replace it with lookalike component
  if (isLoading) {
    return (
      <Popover onOpenChange={onOpenChange}>
        <PopoverTrigger asChild className="w-full">
          <Button variant="outline" className="border-dashed">
            <PlusCircledIcon className="mr-2 h-4 w-4" />
            {title}
            {selectedValues?.size > 0 && (
              <>
                <Separator orientation="vertical" className="mx-2 h-4" />
                <Badge
                  variant="secondary"
                  className="rounded-sm px-1 font-normal lg:hidden"
                >
                  {selectedValues.size}
                </Badge>

                  {selectedValues.size > 0 ? (
                    <Badge
                      variant="secondary"
                      className="rounded-sm px-1 font-normal"
                    >
                      {selectedValues.size} selected
                    </Badge>
                  ) : (
                    options
                      .filter((option) => selectedValues.has(option.value))
                      .map((option) => (
                        <Badge
                          variant="secondary"
                          key={option.value}
                          className="rounded-sm px-1 font-normal"
                        >
                          {option.label}
                        </Badge>
                      ))
                  )}

              </>
            )}
          </Button>
        </PopoverTrigger>
        <PopoverContent
          className="w-full p-0 popover-content-width-same-as-its-trigger"
          align="start"
        >

            <Icons.Search className="mr-2 h-4 w-4 shrink-0 opacity-50" />
            <Input // emulate the Command.Input
              className="flex h-10 w-full rounded-md bg-transparent py-3 px-0 text-sm !outline-none placeholder:text-muted-foreground !ring-0 !border-0"
              placeholder={title}
              defaultValue={value}
              autoFocus // keep the input focused
            />

            <Icons.Spinner className="h-4 w-4 animate-spin" />

Fetching data…

        </PopoverContent>
      </Popover>
    );
  }

  // After the loading finished, re-render the options again
  return (
    <Popover onOpenChange={onOpenChange}>
      <PopoverTrigger asChild className="w-full">
        <Button variant="outline" className="border-dashed">
          <PlusCircledIcon className="mr-2 h-4 w-4" />
          {title}
          {selectedValues?.size > 0 && (
            <>
              <Separator orientation="vertical" className="mx-2 h-4" />
              <Badge
                variant="secondary"
                className="rounded-sm px-1 font-normal lg:hidden"
              >
                {selectedValues.size}
              </Badge>

                {selectedValues.size > 0 ? (
                  <Badge
                    variant="secondary"
                    className="rounded-sm px-1 font-normal"
                  >
                    {selectedValues.size} selected
                  </Badge>
                ) : (
                  options
                    .filter((option) => selectedValues.has(option.value))
                    .map((option) => (
                      <Badge
                        variant="secondary"
                        key={option.value}
                        className="rounded-sm px-1 font-normal"
                      >
                        {option.label}
                      </Badge>
                    ))
                )}

            </>
          )}
        </Button>
      </PopoverTrigger>
      <PopoverContent
        className="w-full p-0 popover-content-width-same-as-its-trigger"
        align="start"
      >
        <Command>
          <CommandInput
            placeholder={title}
            onValueChange={onValueChange}
            value={value}
            defaultValue={defaultValue}
            autoFocus
          />
          <CommandList>
            <CommandEmpty>No results found.</CommandEmpty>
            <CommandGroup>
              {options?.map((option) => {
                const isSelected = selectedValues.has(option.value);
                return (
                  <CommandItem
                    key={option.value}
                    onSelect={() => {
                      if (isSelected) {
                        selectedValues.delete(option.value);
                      } else {
                        selectedValues.add(option.value);
                      }
                      const filterValues = Array.from(selectedValues);
                      column?.setFilterValue(
                        filterValues.length ? filterValues : undefined
                      );
                    }}
                  >

                      <CheckIcon className={cn("h-4 w-4")} />

                    {option.icon && (
                      <option.icon className="mr-2 h-4 w-4 text-muted-foreground" />
                    )}
                    {option.label}
                    {facets?.get(option.value) && (

                        {facets.get(option.value)}

                    )}
                  </CommandItem>
                );
              })}
            </CommandGroup>
            {selectedValues.size > 0 && (
              <>
                <CommandSeparator />
                <CommandGroup>
                  <CommandItem
                    onSelect={() => column?.setFilterValue(undefined)}
                    className="justify-center text-center"
                  >
                    Clear filters
                  </CommandItem>
                </CommandGroup>
              </>
            )}
          </CommandList>
        </Command>
      </PopoverContent>
    </Popover>
  );
};

+1, same issue here

+1, same issue here.

I have two forms of solving this problem.
First it's just not use the Input provided by cmdk, use a native input handling changes and displayed data manually.
Something like this:
Solution 1 - Best solution for my use case
const [currentData, setCurrentData] = useState(initialData);

const searchRoleByTerm = async (event: ChangeEvent<HTMLInputElement>) => {
    const value = event.target!.value
    setIsLoading(true);

    try {
      const response = await getServerRolesCategoriesAndChannels(
        guildId,
        "roles",
        {
          query: value,
        }
      );
      setCurrentData(response.data.roles);
      setIsLoading(false);
    } catch (error) {
      errorToast(
        "Unable to search by this term. Please try again or contact the management team"
      );

      console.log(error);

      setIsLoading(false);
    }
  };

<Command>

      <HiSearch className="mr-2 h-4 w-4 shrink-0 opacity-50" />
      <input
         onChange={handleDebouncedRoleSearch}
         placeholder="Search a role..."
         className="flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-defaultText font-medium disabled:cursor-not-allowed disabled:opacity-50"
      />

    <CommandList>...</CommandList>
</Command>

This way you will be able to control 100% of the results and flow of the search. Using uncontrolled input

Solution 2
This one you have some problems and I don't recommend using it.
This one consists of a key on the Command element, that changes when a new result comes, making the Command re-render
const [currentData, setCurrentData] = useState(initialData);
const [currentCommandId, setCurrentCommandId] = useState(
    Math.random() * 1000
  );

const searchRoleByTerm = async (value: string) => {
    setIsLoading(true);

    try {
      const response = await getServerRolesCategoriesAndChannels(
        guildId,
        "roles",
        {
          query: value,
        }
      );
      setCurrentData(response.data.roles);
      setIsLoading(false);

      setCurrentCommandId(Math.random() * 1000); // This updates Command element
    } catch (error) {
      errorToast(
        "Unable to search by this term. Please try again or contact the management team"
      );

      console.log(error);

      setIsLoading(false);
    }
  };

<Command key={currentCommandId}>
    <CommandInput
        onValueChange={onValueChange}
     />

    <CommandList>...</CommandList>
</Command>

But you will see that the input lose the value typed before
For that you can set it's value directly after Command has been updated. With something like this:
// ...rest of the states
const inputRef = useRef<HTMLInputElement | null>(null);

const searchRoleByTerm = async (value: string) => {
    setIsLoading(true);

    try {
      // ... fetch result
      setCurrentCommandId(Math.random() * 1000);

      setTimeout(() => {
        inputRef.current!.value = value;
        inputRef.current!.defaultValue = value;
      }, 10);
      // This updates the input value after 10ms
      // PS: State changes are asynchronous, so if the input updates before Command element re-render, it won't update the input after
    } catch (error) {
      errorToast(
        "Unable to search by this term. Please try again or contact the management team"
      );

      console.log(error);

      setIsLoading(false);
    }
  };

<Command key={currentCommandId}>
    <CommandInput
        ref={inputRef}
        onValueChange={onValueChange}
     />

    <CommandList>...</CommandList>
</Command>

If it doesn't work for someone I would happy to help, I'm also available on Discord as rafaelfarias

Well this is annoying

@ImamJanjua @hisamafahri @TalalBadreddine @guilhermeseckert @TheRafaelFarias @softmarshmallow
I've come across a similar issue, and it has been resolved by adding the props shouldFilter with value false on the Command component
Like this :
<Command shouldFilter={false}>
My guess is that the Command component is trying to filter its CommandItem with the CommandInput's value, but it's happening way before we populate the items with our asynchronous data, so it has a weird behavior
I hope that this will help people that have this issue too
(I have found this solution thanks to this codepen)

@ImamJanjua @hisamafahri @TalalBadreddine @guilhermeseckert @TheRafaelFarias @softmarshmallow
I've come across a similar issue, and it has been resolved by adding the props shouldFilter with value false on the Command component
Like this : <Command shouldFilter={false}>
My guess is that the Command component is trying to filter its CommandItem with the CommandInput's value, but it's happening way before we populate the items with our asynchronous data, so it has a weird behavior
I hope that this will help people that have this issue too
(I have found this solution thanks to this codepen)

Thanks - encountered this issue while implementing an autosuggest/autocomplete following this comment from a shadcn-ui issue as a starting point. Adding shouldFilter={false} solved it. Love it when a fix is short and simple.

A silly solution I came across was dynamically setting the value of the should filter property on the command element,
const isLoading = false //dynamic <Command shouldFilter={isLoading ? false : true}>...</Command>
This worked for me, it disables filtering while your async data is loading, the once it loads and isLoading is false, it will allow filter again.


Periodic database cleaning

Fix for https://github.com/stanfordnmbl/opencap-api/issues/82

@suhlrich and @AlbertoCasasOrtiz, tagging you both on this one (I don't want us to start deleting data). Can you both review? We can then do some testing on the dev side.

@olehkorkh-planeks two remarks regarding this PR:

This line selects 500 sessions, the problem is that if, after some cleaning maybe, the 500 first selected sessions are good then there will be no more cleaning even if there are still bad sessions in there. That's why I had to bump to 500 to clean the entire dev db. Is there a way to adjust the task to make sure we go through the entire db? The prod db has over 40k sessions. I can see that it is not practical to filter the entire db every time, maybe we can find a way to filter it once and then we only select part of it (as is now). Let me know your thoughts.

We need to use a more conservative criterion here. We noticed that we have sessions with data we want to keep but with no neutral trial. FYI it is possible to directly navigate to step5 and record data even if there is no neutral. Let's use the following:

delete session if empty (no trials) AND older than 7 days
delete session if all the existing trials are named calibration AND all the trials have status error AND older than 7 days

FYI, we also noticed that we might not have a proper backup of the DB and S3 in place, so we might want to implement that before merging this into main. Regardless, it would be good to address the two points above (then maybe we comment for now). Thanks.
FYI @suhlrich and @AlbertoCasasOrtiz

@antoinefalisse I prepared a fixed implementation. Let me know if it works for you - https://github.com/stanfordnmbl/opencap-api/pull/144


add Bitcoin -regtest compatibility?

I'm trying to generate bech32 addresses for Bitcoin's regtest mode, but am not seeing it in the list of available networks.
I think for the purposes of this site -regtest is the same as -testnet, but with a bech32 prefix of bcrt instead of tb.
To test this I tried replacing the 3 occurrances of 'tb' in bip39-standalone.html with 'bcrt' and that did allow me to create the bech32 addresses that I needed.

Thanks for this.
See https://github.com/iancoleman/bip39/commit/f12242014d1ed5c7606c3350a9780c3883abc565 - Add bitcoin regtest params


Channel Detail Screen UI

Make Channel Detail Screen Ui according to designs.

@cakesoft-shashank - what kind of screen do you need?

https://xd.adobe.com/view/1b7355c9-e125-47f4-895c-1a6d1d5dc438-4e20/screen/bc4d8ef6-d5d0-4f14-8db7-d91ad0e76be3/

Verified this issue on dev app v2.0.70(438)


Widen file extension association

We are typically working with files that have a different extension than .h5 or .hdf5. Those can only be opened after renaming them as far as I can tell. Even the 'Open with' menu lists only the editor, not h5web.
It is probably not useful to list all custom extensions that people use. But it would be great if the viewer would not be tied to the file name.

Hello @jl-wynen,
Thanks for trying the extension and for the feedback !
Unfortunately, the extension adds the h5web capabilities is by adding a new file type to JupyterLab. And the way to do this is by matching file extensions...
I agree with you that as there is a lot of HDF5 custom extensions, it would be preferable to work around this so I will investigate.
In the mean time, know that I will add NeXus extensions (.nx, '.nexus`) in the next release and you are welcome to suggest any HDF5 extension that might be useful to your work.

I was trying NeXus files, so the addition you mentioned will do it for me :-) Thanks!
Unfortunately, I don't know a way this could be done in a general way.