[BUG] Can Not Upgrade Cluster When ClusterOutput & ClusterFlow Configured

Describe the bug
Running into an issue where either on:

v1.1.2-rc3 (1 Node Cluster)
v1.1-head ( v1.1-a72900af-head ) (3 Node Bare Metal Cluster)
When creating an upgrade version.yaml of (with 03/23/23, v1.1-head):

apiVersion: harvesterhci.io/v1beta1
kind: Version
metadata:
  name: v1.1-head
  namespace: harvester-system
spec:
  isoChecksum: 8167dfc265353bb367a1b73ca57904da9ea3157b2cbf91ebe81c2ffa9591b7d7de5c6f902e427f8e94cf2d0b2fcf61298dc7b3e34498dff10455656d682575d8
  isoURL: http://<IP_ADDRESS>:2015/harvester-v1.1-amd64.iso
  releaseDate: '20230322'

(file-server accessible by separate clusters)
Upgrade will not process with Error of:
admission webhook "validator.harvesterhci.io" denied the request: managed chart harvester is not ready, please wait for it to be ready

To Reproduce
Prerequisites:

Create an instance of ElasticSearch running so that a cluster can access it via:
sudo sysctl -w vm.max_map_count=262144
sudo docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e xpack.security.enabled=false -e node.name=es01 -it docker.elastic.co/elasticsearch/elasticsearch:6.8.23
spin up kibana for easier viewing, sudo docker run --name kibana --link elasticsearch:es_alias --env "ELASTICSEARCH_URL=http://es_alias:9200" -p 5601:5601 -it docker.elastic.co/kibana/kibana:6.8.23

In ElasticSearch PreReqs:
1.have built out in ElasticSearch:  an elastic search user, via, replace localhost as needed:
curl --location --request POST 'http://localhost:9200/security/user/harvesteruser' \
--header 'Content-Type: application/json' \
--data-raw '{
  "password": "harvestertesting",
  "enabled": true,
  "roles": ["superuser", "kibana_admin"],
  "full_name": "Harvesterrr Testingggguser",
  "email"<EMAIL_ADDRESS>}'

have built out in ElasticSearch: check, verifying the elasticsearch user, replace localhost as needed via:

curl --location --request GET 'localhost:9200/security/user/harvesteruser'

have built out in ElasticSearch: build the elasticsearch index, replace localhost as needed via:

curl --location --request PUT 'localhost:9200/harvesterindex?pretty'

Steps to reproduce the behavior:

Build a Secret in cattle-logging namespace with Advanced -> Secrets, then provide the password for the harvesteruser
Build a Cluster Output, point to the ElasticSearch, use the secret built for the password, remove checked box for the TLS
Build a Cluster Flow, select Logging, point to the Cluster Output
Have a File-Server that holds the v1.1-head iso, a version.yaml w/ appropriate checksum
Have for safety, created the 'pre-flight' adjustment:

$ cat > /tmp/fix.yaml <<EOF
spec:
  values:
    systemUpgradeJobActiveDeadlineSeconds: "3600"
EOF

$ kubectl patch managedcharts.management.cattle.io local-managed-system-upgrade-controller --namespace fleet-local --patch-file=/tmp/fix.yaml --type merge
$ kubectl -n cattle-system rollout restart deploy/system-upgrade-controller

Then fire off the upgrade
The admission webhook controller surrounding the logging should be exposed

Expected behavior
The Upgrade to be allowed to be run
Support bundle
v1.1.2-rc3 Cluster:
supportbundle_fe8a3fc4-3594-434c-a956-d35207f79079_2023-03-23T18-11-56Z.zip
v1.1-a72900af-head Cluster:
supportbundle_a8d32ff1-0769-4a05-85be-ebe21ffef525_2023-03-23T18-12-16Z.zip
Environment

Harvester ISO version: v1.1.2-rc3 & v1.1-a72900af-head
Underlying Infrastructure: bare-metal & qemu/kvm

Additional context

from the debug log:
the non-rc3 hits #3616 before upgrade, the upgrade validator denis the upgrade.
# Run kubectl commands inside here
# e.g. kubectl get all
> kubectl get bundle -A
NAMESPACE     NAME                                          BUNDLEDEPLOYMENTS-READY   STATUS
fleet-local   fleet-agent-local                             0/1                       ErrApplied(1) [Cluster fleet-local/local: another operation (install/upgrade/rollback) is in progress]
fleet-local   local-managed-system-agent                    0/1                       ErrApplied(1) [Cluster fleet-local/local: another operation (install/upgrade/rollback) is in progress]
fleet-local   mcc-harvester                                 1/1
fleet-local   mcc-harvester-crd                             1/1
fleet-local   mcc-local-managed-system-upgrade-controller   0/1                       ErrApplied(1) [Cluster fleet-local/local: another operation (install/upgrade/rollback) is in progress]
fleet-local   mcc-rancher-logging                           0/1                       ErrApplied(1) [Cluster fleet-local/local: another operation (install/upgrade/rollback) is in progress]
fleet-local   mcc-rancher-logging-crd                       1/1
fleet-local   mcc-rancher-monitoring                        1/1
fleet-local   mcc-rancher-monitoring-crd
> kubectl get managedchart -A
NAMESPACE     NAME                                      AGE
fleet-local   harvester                                 21d
fleet-local   harvester-crd                             21d
fleet-local   local-managed-system-upgrade-controller   21d
fleet-local   rancher-logging                           21d
fleet-local   rancher-logging-crd                       21d
fleet-local   rancher-monitoring                        21d
fleet-local   rancher-monitoring-crd                    21d

rc3 version: will check why harvester bundle is in such a state.
# Run kubectl commands inside here
# e.g. kubectl get all
> kubectl get bundle -A
NAMESPACE     NAME                                          BUNDLEDEPLOYMENTS-READY   STATUS
fleet-local   fleet-agent-local                             1/1
fleet-local   local-managed-system-agent                    1/1
fleet-local   mcc-harvester                                 0/1                       Modified(1) [Cluster fleet-local/local]; kubevirt.kubevirt.io harvester-system/kubevirt modified {"spec":{"customizeComponents":{"patches":[{"patch":"{\"webhooks\":[{\"name\":\"kubevirt-validator.kubevirt.io\",\"failurePolicy\":\"Ignore\"},{\"name\":\"kubevirt-update-validator.kubevirt.io\",\"failurePolicy\":\"Ignore\"}]}","resourceName":"virt-operator-validator","resourceType":"ValidatingWebhookConfiguration","type":"strategic"},{"patch":"{\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"virt-api\", \"resources\":{\"limits\":{\"cpu\":\"400m\",\"memory\":\"1100Mi\"}}}]}}}}","resourceName":"virt-api","resourceType":"Deployment","type":"strategic"},{"patch":"{\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"virt-controller\", \"resources\":{\"limits\":{\"cpu\":\"800m\",\"memory\":\"1300Mi\"}}}]}}}}","resourceName":"virt-controller","resourceType":"Deployment","type":"strategic"},{"patch":"{\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"virt-handler\", \"resources\":{\"limits\":{\"cpu\":\"700m\",\"memory\":\"1600Mi\"}}}]}}}}","resourceName":"virt-handler","resourceType":"DaemonSet","type":"strategic"}]}}}
fleet-local   mcc-harvester-crd                             1/1
fleet-local   mcc-local-managed-system-upgrade-controller   1/1
fleet-local   mcc-rancher-logging                           1/1
fleet-local   mcc-rancher-logging-crd                       1/1
fleet-local   mcc-rancher-monitoring                        1/1
fleet-local   mcc-rancher-monitoring-crd                    1/1
> kubectl get managedchart -A
NAMESPACE     NAME                                      AGE
fleet-local   harvester                                 41h
fleet-local   harvester-crd                             41h
fleet-local   local-managed-system-upgrade-controller   41h
fleet-local   rancher-logging                           41h
fleet-local   rancher-logging-crd                       41h
fleet-local   rancher-monitoring                        41h
fleet-local   rancher-monitoring-crd                    41h

The rc3 seems complaining something related to
https://github.com/harvester/harvester/commit/8c620b7dbc2f218c3714aa185940929fc38e796f
will check if it is in that state in a newly installed cluster.

@w13915984028
On a brand new single node v1.1.2-rc3 cluster without:

vms
vm networks
cluster flow
cluster output

This is seen with:
# Run kubectl commands inside here
# e.g. kubectl get all
> kubectl get bundle -A
NAMESPACE     NAME                                          BUNDLEDEPLOYMENTS-READY   STATUS
fleet-local   fleet-agent-local                             1/1
fleet-local   local-managed-system-agent                    1/1
fleet-local   mcc-harvester                                 1/1
fleet-local   mcc-harvester-crd                             1/1
fleet-local   mcc-local-managed-system-upgrade-controller   1/1
fleet-local   mcc-rancher-logging                           1/1
fleet-local   mcc-rancher-logging-crd                       1/1
fleet-local   mcc-rancher-monitoring                        1/1
fleet-local   mcc-rancher-monitoring-crd                    1/1
> kubectl get managedchart -A
NAMESPACE     NAME                                      AGE
fleet-local   harvester                                 5m1s
fleet-local   harvester-crd                             5m1s
fleet-local   local-managed-system-upgrade-controller   5m1s
fleet-local   rancher-logging                           5m1s
fleet-local   rancher-logging-crd                       5m1s
fleet-local   rancher-monitoring                        5m1s
fleet-local   rancher-monitoring-crd                    5m1s

after spinning up a vm, configuring cluster flow & cluster output it still yields:

# Run kubectl commands inside here
# e.g. kubectl get all
> kubectl get bundle -A
NAMESPACE     NAME                                          BUNDLEDEPLOYMENTS-READY   STATUS
fleet-local   fleet-agent-local                             1/1
fleet-local   local-managed-system-agent                    1/1
fleet-local   mcc-harvester                                 1/1
fleet-local   mcc-harvester-crd                             1/1
fleet-local   mcc-local-managed-system-upgrade-controller   1/1
fleet-local   mcc-rancher-logging                           1/1
fleet-local   mcc-rancher-logging-crd                       1/1
fleet-local   mcc-rancher-monitoring                        1/1
fleet-local   mcc-rancher-monitoring-crd                    1/1
> kubectl get managedcharts -A
NAMESPACE     NAME                                      AGE
fleet-local   harvester                                 14m
fleet-local   harvester-crd                             14m
fleet-local   local-managed-system-upgrade-controller   14m
fleet-local   rancher-logging                           14m
fleet-local   rancher-logging-crd                       14m
fleet-local   rancher-monitoring                        14m
fleet-local   rancher-monitoring-crd                    14m
>

for v1.1.2-rc3 single node
Then after changing the systemUpgradeJobActiveDeadlineSeconds and such it still yields:
# Run kubectl commands inside here
# e.g. kubectl get all
> kubectl get bundle -A
NAMESPACE     NAME                                          BUNDLEDEPLOYMENTS-READY   STATUS
fleet-local   fleet-agent-local                             1/1
fleet-local   local-managed-system-agent                    1/1
fleet-local   mcc-harvester                                 1/1
fleet-local   mcc-harvester-crd                             1/1
fleet-local   mcc-local-managed-system-upgrade-controller   1/1
fleet-local   mcc-rancher-logging                           1/1
fleet-local   mcc-rancher-logging-crd                       1/1
fleet-local   mcc-rancher-monitoring                        1/1
fleet-local   mcc-rancher-monitoring-crd                    1/1
> kubectl get managedcharts -A
NAMESPACE     NAME                                      AGE
fleet-local   harvester                                 17m
fleet-local   harvester-crd                             17m
fleet-local   local-managed-system-upgrade-controller   17m
fleet-local   rancher-logging                           17m
fleet-local   rancher-logging-crd                       17m
fleet-local   rancher-monitoring                        17m
fleet-local   rancher-monitoring-crd                    17m

Then trying to create the upgrade, it was able to be created.

Changing this to Reproduce Rare since it seems to be able to not be as easily reproduced...

from the kubevirts.yam, a special value is in the KubeVirt object, tha's different with the default value, it may cause the complains from fleet.
- apiVersion: kubevirt.io/v1
  kind: KubeVirt

      - patch: '{"spec":{"template":{"spec":{"containers":[{"name":"virt-controller",
          "image":"registry.suse.com/harvester-beta/virt-controller:0.54.0-1","imagePullPolicy":"Always"}]}}}}'
        resourceName: virt-controller
        resourceType: Deployment
        type: strategic

my local master-head release shows:
harv2:~ # kubectl get pods -n harvester-system virt-controller-5d54b8b9bf-rnw5g -oyaml | grep image
    - --launcher-image
    image: registry.suse.com/suse/sles/15.4/virt-controller:0.54.0-1504<IP_ADDRESS>
    imagePullPolicy: IfNotPresent
    image: registry.suse.com/suse/sles/15.4/virt-controller:0.54.0-1504<IP_ADDRESS>
    imageID: sha256:30c23294b1b9fad7e729d52b3f0a296d16bc6d735c785f2e5e88fb4e7c7cf668
harv2:~ #

the image of registry.suse.com/harvester-beta/virt-controller:0.54.0-1 is patched to harvester-beta, but virt-operator is normal
...

I believe that patch was due to testing:
https://github.com/harvester/harvester/wiki/Replace-KubeVirt-virt-controller-image

@irishgordo @bk201 @guangbochen
There are 2 screnarios here:
(1) In the v1.1.2-rc3 release upgrade test, the upgrade check blocks upgrade due to the temp patch to virt-controller, the fleet-agent complains that the harvester bundle is modified.  The output meets the design.
(2) In v1.1-head release upgrade test, the same issue with #3616 was encountered.
At the moment, we have no more planned fix for this issue.
How to continue this issue? thanks.

Will monitoring this issue when dealing with the v1.2.0-rc upgrade, thanks.

This happens when we manually patch kube-virt image https://github.com/harvester/harvester/issues/3715#issuecomment-1481965453
@Vicente-Cheng, we need a way to deal with this case.

Move this issue to v1.2.1 for a note; modifying the default kubevirt config is not supported in the current stage, and since the kubevirt patch is already included in Harvester v1.2.0, so users will need to revert it before the upgrade.

Update the https://github.com/harvester/harvester/wiki/Replace-KubeVirt-virt-controller-and-other-KubeVirt-component-images for the above upgrade solution.
Thanks, @w13915984028, for giving the patch. I tested it, and looks well.

After discussion, we thought the wiki information should be enough.
Most people would not patch kubevirt manually.
Let's move forward.

@Vicente-Cheng thanks for the mention :+1: :smile:
following the test-plan things look good :smile:
Waiting for ManagedChart fleet-local/harvester-crd from generation 2
Target version: 1.1.2, Target state: ready
Current version: 1.1.2, Current state: null, Current generation: 4
Waiting for KubeVirt to upgraded to 0.54.0-1504<IP_ADDRESS>...
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
KubeVirt current version: 0.54.0-1504<IP_ADDRESS>, target version: 0.54.0-1504<IP_ADDRESS>
Waiting for LH settling down...
Waiting for longhorn-manager to be upgraded...
Checking instance-manager-r pod on node harvester-node-0...

Additionally, as a smoke-test:
Validated that:

Output & Flow (configured with ElasticSearch)
Cluster Output & Cluster Flow (configured with ElasticSearch)

Configured with:
sudo sysctl -w vm.max_map_count=262144
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e xpack.security.enabled=false -e node.name=es01 -it docker.elastic.co/elasticsearch/elasticsearch:6.8.23
docker run -d --name kibana --link elasticsearch:es_alias --env "ELASTICSEARCH_URL=http://es_alias:9200" -p 5601:5601 -it docker.elastic.co/kibana/kibana:6.8.23

ElasticSearch: 6.8.23
Kibana: 6.8.23
With ElasticSearch Index And User built like attached postman loadout:
Sample ElasticSearch Setup.postman_collection.json
Do not cause any issues.
hvst-upgrade-n9nhz-upgradelog-archive-2024-03-04T22-55-56Z.zip
hvst-upgrade-q8dwv-upgradelog-archive-2024-03-04T20-44-41Z.zip

I'll go ahead and close this out :smile:


Scam Thread Submission

Duplicate Submissions

[X] Yes, I checked that the name is not currently in the list
[X] I read the wiki explaining each different categories and examples before submitting

(Required) Spam Comment Direct Link
https://www.youtube.com/watch?v=VWSPm-qYV78&lc=Ugw66_QRIPHEXyBvYsR4AaABAg
(Optional) Screenshot of comments referencing the scammer names
No response
(Required) List of the scammer names
charlotte miller

Duplicate of #615


Navigation arrows in modal

Hello, i have a problem in page http://dentprawp.hrmiweby.cz/#zubni-centrum In this page I have photoslider with arrows. It is great, but when I open photo in modal window, I need navigation arrows too.
Can you help me please? Thanks
I use this JS
$(this).ekkoLightbox({
loadingMessage: 'Nahrávám...',
onNavigate: true,
});

The example site doesn't work, please provide a minimal working example.

Hello. Exampúle is working. Sorry for my mistake.


Save Cutlist Items as new parts

I work with a lot of weldments and have to save may of my cutlist items to new parts in order to create individual prints for the part because of special hole locations, bends, things of that nature.
I would like a Macro that would take any selected cutlist item, or multiply items, and automatically create a new part and save them under the same file location and part-cutlist name.  It would be nice if it could create a new folder labeled "part name"-cutlist parts and save them into this folder.
This would save me a great deal of time when working with larger weldments.

Thank you for the idea. Do you need to create a dumb bodies from those items or you want to have them linked to the original geometry (i.e. stock feature)?

I would like to have them linked to the original geometry. That way if there are changed made to the Weldment it will update the prints as well.
Thanks,
Wayne

From: Artem Taturevych<EMAIL_ADDRESS>Sent: Wednesday, October 21, 2020 9:25 PM
To: xarial/codestack
Cc: Schwarze, Wayne; Author
Subject: Re: [xarial/codestack] Save Cutlist Items as new parts (#19)
CAUTION: This email originated from outside of the Colorado Community College System. Do not click links or open attachments unless you recognize the sender and know the content is safe. Please contact your college IT Help Desk if you have any questions.
Thank you for the idea. Do you need to create a dumb bodies from those items or you want to have them linked to the original geometry (i.e. stock feature)?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/xarial/codestack/issues/19#issuecomment-714196979, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARLUN7EYSQKUBRU22DB66F3SL6Q2LANCNFSM4SPZE5XQ.


Bump distroless base images to latest versions

As prompted by the slack reminder for #4033
NONE

/lgtm
/approve
I wonder if we could automate at least the bit where we check if they're actually out of date and only then Slack the notification. I guess it should be doable even as a simple Github action if we could obtain a Slack token (?) for our kube channel. Could be a good first issue perhaps


fallback loader options

Make it possible to add options to the fallback loader
e.g.
{
  test: /\.(woff|woff2|eot|ttf|svg)$/,
  use: {
    loader: "url-loader",
    options: {
      limit: 8192,
      fallback: {
        loader: "file-loader",
        options: {
          name: isProd ? "[hash:7].[ext]" : "[name].[ext]",
          publicPath: "/fonts",
          outputPath: "fonts"
        }
      }
    }
  }
}

@Sparki2002 PR welcome :+1:

I want this feature too.

This feature would be really nice.
Does anybody know a workaround? E.g. somehow wrapping file-loader with predefined options or something similar?

@Sparki2002 I found that you can set any fallback options like this:
{
  test: /\.(woff|woff2|eot|ttf|svg)$/,
  use: {
    loader: "url-loader",
    options: {
      limit: 8192,
      fallback: "file-loader",

      // Below are the fallback options
      name: isProd ? "[hash:7].[ext]" : "[name].[ext]",
      publicPath: "/fonts",
      outputPath: "fonts"
    }
  }
}

Works great, thanks @fengcen!
@evilebottnawi: I think adding this to the readme would be helpful for future users.

I believe, that also it would be good to have feature to chain fallback loaders.
Usage example:

I want my small pictures to be loaded as url-string
I want my bigger pictures to be optimized

So I need this code:
...
test: /\.(gif|png|jpe?g)$/,
  loader: 'url-loader'
  options: {
     limit: 1000,
     fallback: [
       'file-loader',
       {
         loader: 'image-webpack-loader'
         options: {
           // ...optimizing options
         }
       }
     ]
   }
}

@queses no, please read how works loaders

@fengcen @TimHolzherr yep, feel free to send PR

Hey @evilebottnawi watch out: I don't see the default fallback=file-loader to be respected, just lost 1 hour on this to find out I had to explicitly set it like this:
            },{
                test: /\.(woff|woff2|ttf|eot)$/i,
                use: [{
                    loader: 'url-loader',
                    options: {
                        limit: 8192,
                        fallback: 'file-loader',
                        outputPath: '/assets/fonts',
                        name: '[name].[ext]?hash=[hash]',
                    },
                }],
            },{

@damianobarbati can you create new issue with minimum reproducible test repo?

good


Codeigniter\Entity - Added $deep parameter in toArray and toRawArray

Description
Added boolean $deep parameter in toArray and toRawArray methods. This parameters allows casting inner custom and entity objects to array as well
Additionally added :

Unit Tests
Return Type Declaration for Entity Getters to avoid IDE errors
Some Code Style Fixes

Checklist:

[x] Securely signed commits
[x] Component(s) with PHPdocs
[x] Unit testing, with >80% coverage
[x] User guide updated
[x] Conforms to style guide

How about renaming the $deep parameter to $recursive? IMO it is more descriptive of what it does.

How about renaming the $deep parameter to $recursive? IMO it is more descriptive of what it does.

@paulbalandan It makes sense to me using either of those names let's see what other think about it.

$recursive would be more consistent with other variable names in the framework already.

@michalsn regarding the else if and elseif can we see to get this rule added in CodeSniffer standard ?


linux_xanmod: 6.1.30 -> 6.1.31, 6.3.3 -> 6.3.5

Description of changes

Updates xanmod kernels to the latest releases
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

[x] Fits CONTRIBUTING.md.

You need to be running a CPU-intensive task for a bit. It usually takes >10min to repro which makes it really annoying.

do you mean shuttering on output or input? i possibly got a similar thing on lts, after some cpu intense task noisetorch (mic filtering) gone into a crazy shuttering.
After switching the input source (non filtered) it was fine again.

@Shawn8901 no such weird setups on my end. See https://github.com/xanmod/linux/issues/373

Could you split the commits @brenix?


Added change of camera stream, update README

I added possibility to change camera stream.
Update README too with logo and badges! 😄
I have also added yarn lock and a module logo 👍

You can also set this description for the repository " 🎥 Webcam component for VUEJS 📷 "

@VinceG did you check my changes?

@Giorat Thank You. i'll give this a try and merge if everything goes well. I appreciate the help with this.

Any news on this?

Still nothing? Sorry for the comments but I really want to improve and help you out! ;) This is also my first pull request

I considered that users usually have just 2 cameras on phones, but you're right a real business might have hundreds of connected cameras. Sorry for my mistakes, this was my first real pull request.
I'll try to improve with your tips.
Thanks, Riccardo.

@Giorat you did great. Thank you for the contribution and the help.


Expose viewportWidth to reporter plugins

It's currently used by minimal reporter, but not exposed in plugin host

Closed in #670


Search book by isbn

Fixes #26
This PR uses the Google Books API to search and prepopulate new book form with details retrieved using the ISBN provided by the user.
How it works

When user logs into the application, s/he provides an ISBN and submits the form.
The solution performs a lookup based on the ISB provided and loads the Add Book page with the details of the book pre-populated.
User clicks on the Save button to save book information as-as or modifies book information before saving.

Screenshots

Challenges
Django's Admin site framework is quite inflexible and has little room for customization if the object being manipulated is not a model - which is the case for this scenario. The closest
I could do to make the form look generic was to inherit the admin/app_index.html template in the isbn form template.
Due to the same issue of inflexibility, I could find nowhere on the Admin Dashboard to place a button to perform this particular action, ATM users will simply have to get there with the URL admin/books/book/isbn. Any knowledge on how to fix this is welcome.

We could register a new route for Django Rest Framework for having the flexibility of handling this outside the Django Admin interface. Will approve this PR and then port this to the API as well. :-)
Should be really helpful for now, thanks.

@ekowcharles we add the button on the header menu, as these templates are ours. I added a quick filter for avoiding adding duplicated because on our first database import there was duplications and books without isbn and we still didn add isbn as an unique id. On the future we plan to merge those database records and curate the ones with no isbn numbers.


[BACKEND] Update LLVM to llvm/llvm-project@1d40fefb08e9b11

Upgrading LLVM repo, because we need a feature that has been recently submitted in llvm/llvm-project#d741435d7

[x] I am not making a trivial change, such as fixing a typo in a comment.

[x] I have written a PR description following these
rules.

[x] I have run pre-commit run --from-ref origin/main --to-ref HEAD.

Select one of the following.

[ ] I have added tests.

/test for lit tests
/unittest for C++ tests
/python/test for end-to-end tests

[x] This PR does not need a test because I am bringing upstream LLVM changes.

Select one of the following.

[x] I have not added any lit tests.
[ ] The lit tests I have added follow these best practices,
including the "tests should be minimal" section. (Usually running Python code
and using the instructions it generates is not minimal.)

Please just touch the llvm hash file.

Thanks @antiagainst. Done


Role assumes become: true

The role seems to assume that it will be run as root but this is not stated anywhere. Examples tasks requiring privelege include yum package installs.
Should the sample playbook in the Readme be updated with?
- hosts: ci-server
  vars:
    jenkins_hostname: jenkins.example.com
  roles:
    - geerlingguy.jenkins
      become:true

Yeah, good idea!


[dy] Customize ecs config

Description

Allow users to customize the ECS config. The load_extra_config method is only used in the ECSConfig class right now.
How Has This Been Tested?

[x] Tested locally

Checklist

[x] The PR is tagged with proper labels (bug, enhancement, feature, documentation)
[x] I have performed a self-review of my own code
[ ] I have added unit tests that prove my fix is effective or that my feature works
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation

cc: @wangxiaoyou1993

Could you provide more details about your tests?

@wangxiaoyou1993 added


Add a discarded callback in tcp::Packet

Packet waiting for acknoledgement need a way to tell the waiter that no answer will never come (disconnection, etc...)
Needed since the object waiting the answer must have a lifetime superior or equal to the paquet lifetime

Actually, it's in fact a bug


Add Kazakh language

We have no translation background, but both maintainers are native Kazakh speakers and have proficient English level

Kazakhstani web development industry would really shine with a React translation, making it easier to get started, with or without particular English level.

Hi folks, sorry for no response.
We've been working on new React docs, and so translations of the old site were deprioritized.
In the meantime, it looks like our GitHub permissions sync may have broke.
Now that we've rolled out the new site and reset the repositories for new translations, I'm going to close all old pull requests including this one so that we can start from a clean slate. If you'd like to still make the same change, please open a new PR.
Thanks, and sorry for the churn.


Protect against infinite sized view configuration/mediaquerydata when DPR is unknown

Description
In CI testing, it's been observed on Fuchsia that sometimes we get to laying out a frame before the embedder has actually reported the devicePixelRatio - which gets defaulted to 0.
When we then go to divide by zero, we end up with infinite sizes where we don't want them, and we assert pretty late in the game, making it harder to figure out what's going on.
This makes it so that we will not crash in this case, although tests that expect to find things in this state may fail. Fuchsia should still try to figure out why it's taking so long to figure out the viewport metrics (/cc @arbreng @gw280 @iskakaushik)
Related Issues
https://bugs.fuchsia.dev/p/fuchsia/issues/detail?id=60299
Tests
I added the following tests:
Test that MediaQueryData and RenderView do the right thing if DPR is 0.
-changes*

This is less essential given https://github.com/flutter/engine/pull/21389.
I think we should probably do something with this, but maybe it should just be asserts now rather than explicitly avoiding div/0 since after the linked PR the engine won't give us 0 anymore.


Multiple: Check optimizer_control before updating optimizer

JIRA: MADLIB-1109
This is applicable only for the Greenplum and HAWQ platforms:
We disable/enable ORCA using the 'optimizer' GUC in some functions for
performance reasons. GPDB/HAWQ has another GUC 'optimizer_control' which
allows the user to disable updates to the 'optimizer' GUC. Updating
'optimizer' when 'optimizer_control = off' leads to an ugly error.
This commit adds a check for the value of 'optimizer_control' and
updates 'optimizer' only if 'optimizer_control = on'.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/134/

Did you intend to add the two additional changes (comment out unused time.time() usages, rename EnableHashagg to HashaggControl) in this PR? At a minimum, they should be mentioned in the commit message or split out in separate commits.

Added more details in the 2nd commit message which will be used in the final merge.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/135/

Tested on GPDB 4.3.12. kmeans IC fails with the following error:
SELECT * FROM kmeanspp('kmeans_2d', 'position', 10);
psql:/tmp/madlib.tPVzko/kmeans/test/kmeans.sql_in.tmp:116: ERROR:  cannot change the value of "optimiz
er"
CONTEXT:  SQL statement " SET optimizer=off "
PL/pgSQL function "kmeanspp_seeding" line 20 at execute statement
SQL statement "SELECT  madlib.kmeans(  $1 ,  $2 , madlib.kmeanspp_seeding( $1 ,  $2 ,  $3 ,  $4 , NULL
,  $5 ),  $4 ,  $6 ,  $7 ,  $8 )"
PL/pgSQL function "kmeanspp" line 4 at assignment
SQL statement "SELECT  madlib.kmeanspp( $1 ,  $2 ,  $3 , 'madlib.squared_dist_norm2'::VARCHAR, 'madlib
.avg'::VARCHAR, 20::INTEGER, 0.001::DOUBLE PRECISION, 1.0::DOUBLE PRECISION)"
PL/pgSQL function "kmeanspp" line 4 at assignment

LGTM +1


Made a flag is_strategic in object.update()

made is_strategic upload flag in object.update()
if is_stragegic is true, merge and update object in the original method.
otherwise, just keep the key/value pairs in the new objects.
make the variable names in utils more readable.

Made a flag is_strategic in object.update() and corresponding utils functions.
default value is True.
comes with several unittest.

Thanks!


Feature request: Support for local leader

Hi! I just wanted to say thank you for this plugin. I've been using the old which key for a while. But when I recently ported over my config to lua, I found that there was a lot of functionality I would like that wasn't quite there. And this plugin has a lot of that, so thank you!
Anyway, everything is working great, but I'd like to request that <LocalLeader> be supported the same way that <Leader> currently is.
Thanks, again!

<localleader> should already work in combination with buffer=123.
Can you clarify specifically what doesn't work right now?

If you had issues with the default <localleader> set to \, then that should be resolved now.

Hi, and sorry for the slow response!
My local leader is set to semicolon (;), and what doesn't work for me is that which-key doesn't trigger after I press ;. It does trigger when I press any other key, and it also happens if I run it by command (:WhichKey ;), but otherwise I can't seem to get it to work like it does for the other keys.
Forgive me, but I'm not clear on what you mean by the suggestion above about using buffer=123. Should I pass in a function to buffer that always returns the number of the buffer I'm on? Or did you mean something else?

Nevermind the buffer stuff. That's needed if you want buffer-local mappings.
Using ; as your local leader should work as expect. Just tested it myself and it triggers WhichKey.
Can you post a bit more about your  (code) configuration? Specific keymapping that doesnt work?
Are you certain you define your maplocalleader before setting any keymaps?

My entire nvim setup is here, but the specific file for those mappings is here. It's the first thing that happens on init other than defining a few helper functions.
And with your guidance, I think I found the problem. Since ; is my local leader and also a default vim keybinding, I unmap the default (further down in that same file). I do this because ; will go back to the default functionality in buffers with no local bindings (and I kept accidentally doing it).
When I remove that line then whichkey works as expected. The strange part, though, is that I do the exact same thing with space (which is my leader), but whichkey doesn't seem to mind either way in that case.

I just pushed a change.
WK never creates hooks for keybindings that already exist.
Your ; was an existsing keybinding  (to <nop>).
It worked for <leader> since I already make a change to allow overwriting a leader set to <nop>
I just changed it so that keybindings are allowed to be overwritten when they are effectively <nop>s


Remember what notifications you previously subscribed for

@keybase/react-hackers
Fixes: https://keybase.atlassian.net/browse/DESKTOP-191 where newer setNotifications turn off older setNotifications call

:thumbsup:


dev: create a StarknetJS script to generate on the fly SN addresses for test_kakarot_core_compute_starknet_address() in crates/contracts/src/tests/test_kakarot_core.cairo

Reference to https://github.com/kkrt-labs/kakarot-ssj/pull/483#discussion_r1376517901
### Tasks
- [ ] add starknet js to kakarot ssj repository (using bun)
- [ ] inside a scripts folder, create a compute_starknet_address.ts file
- [ ] create documentation in readme
- [ ] add a documentation reference to this script in crates/contracts/src/tests/test_kakarot_core.cairo>test_kakarot_core_compute_starknet_address

Code snippet for inspiration:
import { CallData, hash } from 'starknet';

// the class hash of the contract to be deployed
const classHash =
  0x23e3d667a815a28526089de7cdd8926696a24e272805343dc35a8a3b5e5d4ban;

// Salt is the EVM address of the contract to be deployed
const salt = 0x65766d5f61646472657373n;

// The Kakarot Address when deploying Kakarot first in a Scarb test environment
const kakarotAddress = 1n;

const CONSTRUCTOR_CALLDATA = [kakarotAddress, salt];

console.log(CONSTRUCTOR_CALLDATA);

function guessAddress() {
  return hash.calculateContractAddressFromHash(
    salt,
    classHash,
    CONSTRUCTOR_CALLDATA,
    1n
  );
}

console.log(guessAddress());

Can I take this to prepare for : Issue #475 ?

Can I take this to prepare for : Issue #475 ?

Fine for me!


RELATED: FET-166 Add missing copyrights

Build succeeded (check pipeline).

https://checklist.intgdc.com/job/compliance/job/gooddata-typings-opensource-repository-check/20/ : SUCCESS in 9s
https://checklist.intgdc.com/job/client-libs/job/gooddata-typings-unit-tests-zuul-docker-el7/25/ : SUCCESS in 59s

Build succeeded (gate pipeline).

https://checklist.intgdc.com/job/compliance/job/gooddata-typings-merge-compliance-check/6/ : SUCCESS in 19s
https://checklist.intgdc.com/job/client-libs/job/gooddata-typings-unit-tests-zuul-docker-el7/26/ : SUCCESS in 30s


having problem with opening a large(1.77gb) file

I tried to open a 1.77GB file, and it didn't work. It literally does nothing.
It worked when I tried it with a much smaller one.
When it comes to that larger, it couldn't open, doing nothing and making no errors, so no stack trace was left.
Could you please assist me?

unity version

targeted file

https://github.com/nesrak1/UABEA/wiki/Sending-a-crashlog

Sorry, I don't know anything about programming at all. I am hoping this is what you said. Thank you.

~https://github.com/nesrak1/UABEA/wiki/Sending-a-crashlog~
Actually, you said it does nothing (not crash) so it's probably more related to detection than anything. Could you screenshot the hex dump of the top of the file?

Sorry, I don't know anything about programming at all. I am hoping this is what you said. Thank you.

Should be fixed in latest nightly.

Thank you very much!


TFS 2018 Event Log Debug

I have a local TFS 2018 server. I also upgrade from 2018 RC to the latest release.
I have noticed that the Microsoft-Team Foundation Server 2018 event log is logging hundreds of informational debug entries, most with: TFS ProductTrace Entry. Every minute there are 3 or 4 event log entries generated which quickly add up.
Is this normal logging behavoir? Can I turn this off?

https://developercommunity.visualstudio.com/spaces/22/index.html might be a better place for this one. This issue tracker is just for the build agent


About EfficientViT finetune on high resolution?

Hello, I would like to ask how to load the weight of 224 in high resolution and report the shape mismatch problem. Looking forward to your reply

Hi @wulele2 , thanks for your interest in our work. You may set the argument --finetune to the pretrained model path, and it will call the load_model function  https://github.com/microsoft/Cream/blob/73afa00ae492928e836bfbe2f249ce08a655cae9/EfficientViT/classification/utils.py#L249 to load model weight, which handles the shape for relative_position_bias.

Thank you very much for your reply. Thank you！

I found it in efficientvit.py. Sorry to interrupt


Thumbnails in suggestions missing the video duration info

Bug
User reported
Thumbnails in suggestions missing the video duration info
Screenshots

App | 0.52.0
Daemon (lbrynet) | 0.106.0

Working on this


S3 Access Logs are not replicating to central logging bucket

Describe the bug
S3 Access Logs deposited in the aws-accelerator-s3-access-logs-accountID-region buckets are not being replicated to aws-accelerator-central-logs-loggingAccountID-primaryRegion.  Examining the "Management" tab of the source account's s3 access logs bucket shows there are no replication rules.
To Reproduce

Create an s3 bucket in a workload account with a logging configuration recording access to that account's aws-accelerator-s3-access-logs-accountID-region bucket
Make some requests to access content in that bucket
Verify the bucket access is logged in the workload account
In the LogArchive account, verify no s3 logs are replicated to the aws-accelerator-central-logs-loggingAccountID-primaryRegion bucket

Expected behavior
https://github.com/awslabs/landing-zone-accelerator-on-aws/blob/main/README.md?plain=1#L228 says
Logs are stored in account specific S3 buckets and have bucket replication enabled to replicate logs to Centralized Logging S3 Bucket in Central Logging Account.
although it does not specify a subdirectory/path for s3 access logs (https://github.com/awslabs/landing-zone-accelerator-on-aws/blob/main/README.md?plain=1#L259).  A subdirectory will probably be required to keep the central bucket organized.
Ideally the replication process would also partition the logs by date so I can efficiently query them with athena, but that's a feature-request add-on.
Please complete the following information about the solution:

[ ] Version: 1.3.2
[ ] Region: us-east-2
[ ] Was the solution modified from the version published on this repository? No
[ ] If the answer to the previous question was yes, are the changes available on GitHub?
[ ] Have you checked your service quotas for the services this solution uses? N/A
[ ] Were there any errors in the CloudWatch Logs? No

Screenshots
Additional context
If I'm reading the code correctly, I suspect the root of the issue is around https://github.com/awslabs/landing-zone-accelerator-on-aws/blob/main/source/packages/%40aws-accelerator/accelerator/lib/stacks/logging-stack.ts#L177.  Compare that to https://github.com/awslabs/landing-zone-accelerator-on-aws/blob/main/source/packages/%40aws-accelerator/accelerator/lib/stacks/logging-stack.ts#L261 and note the serverAccessLogsBucket creation does not pass a "replicationProps" like the elbAccessLogsBucket

Hello @sigfigsteve, and thank you for raising this issue!
This looks to be a documentation issue rather than a bug -- LZA does not replicate the account-level access logs to the central logs bucket due to the duplicative storage cost associated with that job. I can confirm that we do have a feature request in our backlog that we are evaluating for a future release for users that would like the centralized replication job to be set up.
I will open a documentation fix ticket on your behalf so we can clear this up; we apologize for any confusion caused by this documentation error.

OK, I'll work with the account-specific buckets for s3 logs and consider this a documentation bug.  For the feature request for the long term, it would be really useful if the logs were partitioned by date.  Feel free to close this issue.

Thank you for the feedback! I will add this to our feature request.
Thanks for your interest and support of LZA!


.Apk files support

Cant backdoor-factory support apk files somehow, as this feature will be awsome with "bdfproxy" and maybe if don't support the use of payload injection(automatic) or binding(onionduke) like with windows binaries and other OS then perhaps the "replace" method can be used, i.e just replace the legitimate .apk with malicious .apk, the method might not be handy with backdoor-factory itself but would be an awsome feature in bdfproxy.
and if this can be, then please consider this an enhancement request.

Already an issue: https://github.com/secretsquirrel/the-backdoor-factory/issues/26
I accept pull requests!

@secretsquirrel I don't think this is quite a duplicate of #26, since there's two ways to backdoor an APK:

Backdooring with smali (see https://github.com/dana-at-cp/backdoor-apk), which is basically #26 is asking for
Backdooring native (ELF) binaries inside the APK

I think doing option 2 would be easier since the only part missing right now is unpacking and repacking/signing the APK.
Thoughts?
cc @infodox

Good point.  Yeah I've looked at some elf binaries within certain APKs from the play store that would load after manual modification.  Feel free to open an issue to specifically support backdooring native ELF binaries inside the APK. Though to be really useful for APKs, BDF will need a new patching method to support shared object patching as I've seen a lot of those in APKs specifically.


Handle configuration/collection errors when no pytest inifile is present.

Handle config collection when no pytest inifile is present, finish config
collection via StopCollect even if an ini file is not present in the
cmdline_main configuration hook.
Resolves issues where ptw fails silently if errors are present in the
source module and an pytest.ini file is not present. See #85 #73

Hey @asford, after testing out a few different cases, I ended up with a solutions that doesn't need to move StopCollect up. I can't foresee if that'll cause other issues, so that's another reason for doing it this other way.
I'll pull this in still and keep the comment, and still tag you in Authors.md. Thanks!


Clean way for actions in project context

There are actions and some of them have the prefix project- and they present a menu to select a project
There are two scripts archive.cmd and editor.cmd which represent actions in a project context

Currently only the second scripts are on the path. There should be a self-explanatory way to access actions for a specific project context and for the current project context.

The actions from 1. do not presume the Bench environment, but instead load the auto\env.cmd first.
The actions from 2. do presume the Bench environment, and call runps directly.

Will be resolved with the project commands in the new Bench CLI.


Add line wrapping / breaking to emitter

Currently, the emitter seems to have no option or support for breaking lines at a certain length. If a parameter description has a 500-character block of text, all of that text will be on the same line. It would be really useful to have some sort of parameter or setting to automatically wrap text when a certain number of characters is reached in a line.

👍  Yes, we should definitely implement this!  Doing so would enable a tool like API Extractor to normalize the comment format when it writes a .d.ts file for release.
Another idea would be to emit the DocNodeKind.SoftBreak as a newline.  If I remember right, the reason this wasn't implemented is that trimSpacesInParagraphNodes() discards the soft breaks when it is normalizing the text.  We would need to pass them along somehow as hints to the emitter.

When I started working on this, I realized that the emitter should probably support three separate modes:

verbatim: Emit the AST "as-is" without any reformatting. This would be used e.g. by a refactoring tool that wants to rename a @param name without disturbing anything else. It should perhaps be the default.  It's simple to support since the AST already captures all whitespace; we simply need to disable the trimSpacesInParagraphNodes() transform.

trim spaces: This is the current behavior, where unnecessary newlines are discarded, and the lines are unwrapped.  The main value is that it makes it easier to emit Markdown correctly, since Markdown engines tend to misinterpret extra spaces/newlines.  But when emitting .ts comments (instead of .md files), it produces ugly long lines as you pointed out.

trim spaces and word wrap: This would add some extra logic to trimSpacesInParagraphNodes() that re-wraps the paragraphs to a specified column.  It could be most useful for a code prettifier, or to prettify generated output.

@iansan5653  I'm wondering, would verbatim be more appropriate for your application than trim spaces and word wrap?

Also note that word-wrap probably cannot be applied to other sections such as DocCodeSpan or (in the future) markdown headings, unless we introduce a comment-wrapping operator like proposed in RFC #166.

would verbatim be more appropriate for your application than trim spaces and word wrap

I don't think so, unless I misunderstand what you're asking - I'd like to make a tool that, no matter how the input content is formatted, always produces the same standardized output. Lines wrapped, tags in the same order, newlines where they should be and not where they shouldn't, etc.

I'd like to make a tool that, no matter how the input content is formatted, always produces the same standardized output. Lines wrapped, tags in the same order, newlines where they should be and not where they shouldn't, etc.

👍 Got it.  I'll see if I can implement this.  I started work on it over the weekend, but ran into some deeper architectural questions that I need to think about before I write too much code.

I don't think this comment is entirely accurate:

[...] Markdown engines tend to misinterpret extra spaces/newlines. [...]

Markdown doesn't "misinterpret" extra spaces/newlines. Rather, Markdown is a whitespace-significant language and has very specific behavior with regards to the number of whitespaces and newlines that it encounters. Here are a few common examples:

Text indented 4 (or more) spaces from the start of a line is considered a code block, without the need for ``` fences:
this is code

Single newlines are considered insignificant when in a paragraph, but significant in bulleted lists, tables, pullquotes, etc.:
These lines
are a single line.

- But these
- Are different

> These lines
> are also a single line but the leading `>`
> of the subsequent lines is ignored.

| Col 1 | Col 2 |
|:--|:--|
| Single-lines are important | for Markdown Tables |

Double newlines are considered a new paragraph (i.e., <p>):
These are

Different paragraphs

Two space characters followed by a single newline character is considered a hard break (i.e., <br>):
There is a hard break here:
Making this a new line in the same paragraph.

In my opinion, the best thing to do is to parse out the TSDoc specific syntax (@ tags and {} inlines, etc.) and trim the leading * from each line in a doc comment, but preserve the rest essentially verbatim.
You can find the latest specification for commonmark (the Markdown spec that Github-Flavored Markdown is based on) here: https://spec.commonmark.org/0.29/

Note that whitespace is also significant inside a pullquote:
> line 1
>
>     code
>
> line 2

line 1
code

line 2

In my opinion, the best thing to do is to parse out the TSDoc specific syntax (@ tags and {} inlines, etc.) and trim the leading * from each line in a doc comment, but preserve the rest essentially verbatim

@rbuckton We started with this idea.  However, it conflicts with two of TSDoc's overarching goals:

Unambiguous syntax: Every tool should agree about how TSDoc syntax is parsed. (Semantic differences are okay, though. For example: skipping some unsupported tags, or rendering tags differently.)

Predictable rendering: Users should be able to accurately predict how their input will get parsed, without relying on a preview.  Traditional Markdown is usually authored with an interactive preview window, but TSDoc may not have his luxury, e.g. when reviewing PRs on GitHub, or if the DocFX pipeline runs only after a PR is merged.

I originally thought that CommonMark would address these concerns.  But it doesn't. CommonMark has many gotchas where an expression gets parsed unexpectedly.  And as a unifying "standard", CommonMark turned out to be a standard that nobody actually implements:  Every single Markdown engine adds its own proprietary grammar extensions that, when used, can cause an entire input to be misinterpreted by other engines.
As evidence, consider this code:
| Col1  | Col2 |
| --- | --- |
| `{@link X | Y}` |
| {@link X | Y}  |

How it gets parsed:

CommonMark sees it as plain text, with a single <code>{@link X | Y}</code> in the middle
Jekyll (which uses Kramdown) sees it as a table with <code>{@link X | Y}</code> all in one cell, and the second row is split into {@link X and Y.
GitHub sees it as a table with the non-code `{@link X in the first cell, and Y}` in the second cell.

(There are endless examples like this. If you put ``` on the first line, some engines treat the whole file as code, others treat the whole file as not code.)
We considered mitigating this by making TSDoc into a preprocessor, that grabs its tags in a simple-minded way, and then passes along the remaining content uninterpreted, with no attempt at consistency between tools.  But even if consistency doesn't matter (I believe it does), we found that the resulting grammar was highly counterintuitive. It wasn't a pleasant authoring experience.
Thus, after a very long discussion we came to the opinion that TSDoc should have its own "TSDoc-flavored-Markdown" with the following properties:

A very conservative subset of Markdown constructs that is sufficient for everyday API documentation needs
Accept certain nonstandard grammar simplifications if they make the rendering more predictable
If possible, try to minimize any reliance on nesting blocks and whitespace-based rules
Recommend for people to use HTML tags for any complex/nesting structures (e.g. tables)
Extensions to TSDoc must not alter the grammar, instead, extensions are restricted to custom tags or HTML elements that everyone can parse

In practice this has worked very well.  I still haven't gotten around to adding basic features like boldface, headers, bullets, etc. -- which we do want to support -- but already people have written A LOT of very good documentation with relatively few complaints about missing constructs.  Doc comments embedded in source code really don't need a whole lot of bells and whistles, it seems.
So, to recap:  When you use API Documenter for example, your TSDoc-flavored-Markdown gets fully parsed into an AST.   Later, when the MarkdownEmitter generates writes the .md/.yml output file, it is very thoroughly escaped to ensure the emitted Markdown correctly captures TSDoc's interpretation.  We really do not want any Markdown extensions to work unless they are part of the TSDoc-flavored-Markdown grammar.


Dry-run + ability to specify models + minor edits

I changed some of things @shasheene changed back to the way I had it originally just to ensure they weren't unintentional omissions. If they were intentional then just drop those commits. I explain below and in commit messages.
So 3 commits:
First with the minor edits:

Call vs Run?

On my original PR you mentioned that we should use subprocess.run instead of subprocess.call because the latter was older api. But then I saw that you had it changed back to the call variant. Just wanted to ensure if this was intentional.
Also, I saw that you switched from using os.path functions to just directly parsing the string yourself using split('/'). I favor using the os.path api so that we can just leverage others work to ensure the paths are parsed correctly across platforms and etc. We can just trust it will always work versus having to parse it ourselves and relying that we correctly implemented the splitting part ourselves. But your call on which you think is best.

Flatter nests

I saw that you changed main.py's inference loop to go back to checking for relevant files and running inference all in one loop. I switched it back to the way I had with multiple loops because I think it just looks clearer with it being flatter rather than nested too much. Please read the commit message for more details.
Also, if it was switched because the changes didn't work, I actually discovered that I had made an error on the first version of it. I was removing elements from an array while also actively reading it, which caused it to skip elements and otherwise not work correctly. I switched to appending to a new array and then deleting the old one instead, so it should work correctly now.

And the slightly larger edit:

Dry-run and models

Instead of rearranging code as we did before to instantiate the models before checking for argument validity to get the useful side effect of being able instantiate cuda cache for reusable docker images, I just formalized it into --dry-run option to achieve the same thing, but now regular users with incorrect arguments don't have to wait for instantiation just to learn their arguments were incorrect. Best of both worlds.
Also, now users can specify which pbmm and scorer models they wish to use if there are multiple. It defaults back to just searching the local directory for one if one isn't specified. Also, if more than one is found or zero are found, it will throw the appropriate errors to notify the user.

Looks good to me.
Yeah I kept subprocess.call() so that the earlier commit did one thing only: provide the command as a list to fix only the path error issue. I wasn't sure whether the change to the subprocess.run() high level API could cause any negative side effects that I hadn't considered. Like the semantics of stdout/stderr. Switching to subprocess.run() is fine.
Yep, using basename() over split() was a change I intending to keep. It's very easy to fix things like that on top (like you have) now that everything has been merged, so thanks for making that change.
The filter stuff LGTM. As does the --dry-run option.
I am fine with this PR being merged.
The only thing for future reference is the commit messages are definitely not to my taste. But I'm not the owner of this git repository, and all other commits don't follow Chris Beam's great post linked earlier. (I highly recommend reading that blog post though!)

Sorry. New to git in general, but good point regarding verbosity.

Ok, looks good guys. Thanks!
And yes, I'll give that blog a read.

And yes, I'll give that blog a read.

Your one-line commit messages are already pretty good for high-velocity development. I don't necessarily recommend writing a detailed commit message body unless the change warrants it.
But yes, the blog post is still worth reading.


Pub get sometimes doesn't terminate

It seems to be happening on this repo: https://github.com/a14n/dart-google-maps
At commit: 780daebe74d6899277b50219919ef882b25bfaeb
I am doing some bulk analysis on lots of pub files. If I run pub get on this repo's pubspec.yaml, after running it on several hundred other files, it never completes, the dart process saturates at 100%.
Running on verbose capturing streams, gives a very long log that I will transfer to you separately.
A sample from close to the end of it is at the end of this issue. There are around 700k simliarish lines.


Added 'raw' mode

Added raw mode support for RetDec.

Coverage remained the same at 100.0% when pulling e9e1f8d8f432801e81decc66a60af90a6fbfc5a9 on hugsy:master into ca2e3de4958d60989a5a66c75e5d5fd222f9b82e on s3rvac:master.

Thank you for your time to make retdec-python better! I will gladly merge the PR, provided that you

add missing descriptions of the newly added parameters to the docstring of Decompiler.start_decompilation() in retdec/decompiler.py,
add missing unit tests for the newly added parameters (tests/decompiler_tests.py),
squash all commits into a single commit.

You can also add yourself to the AUTHORS.rst file if you want.

Done, see commit caaac3a

Coverage remained the same at 100.0% when pulling caaac3a857ae49efbf276140d67aac3537576c55 on hugsy:master into ca2e3de4958d60989a5a66c75e5d5fd222f9b82e on s3rvac:master.

Merged, thanks!


Initial Proof of concept functional type safe for Azure Functions node.js v4

I've completed for PoC State, move to next branch


Error when Installing

ETGMod Installer v17.3.8
Entering the Modgeon
No previous mod installation found.
Still reverting to unmodded backup...
Reverting: EtG.exe
Reverting: Assembly-CSharp.dll
Reverting: UnityEngine.dll
Reloading Assembly-CSharp.dll
Backing up: UnityEngine.dll
Backing up: Assembly-CSharp.dll
Backing up: EtG.exe
Mod #0: Base
Downloading http://modthegungeon.github.io/ETGMOD.zip...
System.Net.WebException: The operation has timed out
at System.Net.HttpWebRequest.GetResponse()
at ETGModInstaller.ETGModder.getLength(String url)
at ETGModInstaller.ETGModder.Download(InstallerWindow ins, String url)
at ETGModInstaller.ETGModder.DownloadCached(InstallerWindow ins, String url, String cached)
at ETGModInstaller.ETGModder.Install_(InstallerWindow ins)
at ETGModInstaller.ETGModder.Install(InstallerWindow ins)
i have gog games version not steam version but my version is up to date

nvm i figured it out. i put the installer in offline mode and downloaded the api zip from here


Apply ambisonics to an audio file then to a video file result to a non playable video

Here is the code using it. I will add a sample online soon (tested with Omnitone 1.0.6 and 1.2.1) :
https://github.com/gopro/forgejs/tree/alps-700-omnitone-fix
https://github.com/gopro/forgejs-samples/tree/alps-700-omnitone-fix

Here is the sample to execute on a localhost:
https://www.dropbox.com/s/ok3c101ej0r71mk/sample.zip?dl=0
Here is the sample online:
http://www.kolor.com/private_forgejs/projects/ambisonic/ to begin by an image scene with ambisonics audio (first scene)
http://www.kolor.com/private_forgejs/projects/ambisonic/#first-scene&uid=scene-2 to begin by a video with ambisonics (3rd scene)

Notes on the samples

I've also noticed that the sound volume is not always the same and noise can happen in some cases.
The global AudioContext used is the same for wav and mp4 files, and when a new scene is requested the FOARenderer is connected to it and disconnected from the previous scene.

So sorry for the late response! (Was on vacation when the issue was filed...)
I am not sure if I understood the problem correctly. This is what I did:

Go to http://www.kolor.com/private_forgejs/projects/ambisonic/

The audio plays correctly. (scene 1)

Press ">" on the right.

The audio still plays correctly. (scene 2)

Press ">" on the right again.

No audio from the player. (scene 3)

But if I access the scene 3 with the direct link, it plays the audio correctly.
Did I get your problem right?

Yes exactly.
It can be linked to our audio implementation.
For image scene with ambisonics we instanciate an audio tag and a webaudio context which is destroyed when leaving the scene.
For video scene with embedded ambisonics we instanciate a video tag which is destroyed when leaving the scene.

Have not looked at the code yet...
Can you keep the audio context and the Omnitone renderer? Why do you have to re-instantiate the whole thing for every scene?
The Omnitone renderer is simple and transparent, so all you need to do is the reset the rotation matrix to put it back to the initial state. There will be a tail of 256 samples from the convolution, but that's less than ~7ms. It should be trivial to reconstruct the renderer from scratch, but still there is a cost and you might want to avoid that.
For each scene, all you have to do is to create MediaElementAudioSourceNode for audio or video tag and feed it into the renderer.
Keep it mind that an AudioNode must be connected to the node belongs to the same audio context.

Thanks for your feedback.
I've tested with a SoundManager class which create a FOARenderer and connect it to the "global" audio context.
Then the Sound and Video classes now only connect the sound element source to the FOARenderer input when they are instanciated.
But I've exactly the same result.
Note: on some sounds or videos I'll be happy to switch between FOA and HOA renderer also, it's why I was creating and instanciating the Ambisonics renderer on each sound or video where ambisonics are required on my first test.

Could you try it again with the latest version of Canary? I think it might have been a bug in Chrome's implementation and I fixed the issue a couple of days ago.

Same result with a few tests with the latest Canary version.

Okay, I think this is related to an implementation bug in Chrome. Have you had a chance to try this out in FireFox?

My bet is changing the source of MediaElement dynamically does not go well with the attached MediaElementSourceNode (which is a Chrome bug). For the workaround/hack, I suggest you to do this:

Create VideoElement
Set src.
Create MESN with the video element.
Connect to the Omnitone.

When changing the source:

Disconnect MESN from Omnitone.
Give it ~20ms.
Change the new src in the element.
Connect to MESN the Omnitone again.


The ONNX model would crash when used for image larger than 512 pixels (either width or height) for inference

I was testing out the ONNX model inference with some sample videos, and found out even though the model allows image input with any width or heigh, but it'd crash on my machine when I feed in any image that's larger than 512 pixels (either width or height). Is this a known issue? Is there any workaround? Thanks!

Hi, thanks for your attention, and sorry for late response.
There are two possible problems that may cause the crash:

Have you resized the input image to ensure its sides can be divided by 32?
Dose your machine have enough memory (a large input size will use more memory) ?

Thanks for the heads-up! That's good to know. My current workaround is to resize it to 512 or smaller (keeping the aspect ratio), this may have image quality loss especially when I have high-res images. I will give it a try to resize it as little as possible and still a factor of 32 and see if that helps. I have a pretty decent machine and hope the memory isn't a bottleneck for regular size images (eg: 4K or less), but will find out.


Fork EnTT and use a stable fixed verison of

We need to do this to keep stability over time, because I really don't have a ton of time to work on this engine. EnTT is ever changing (for the better) and being upgraded, and its one of the only submodules we are using that is not in our own fork.

Well, I follow your work since the beginning and I like it. I'm willing to help you when you want to upgrade EnTT to a newer version. :slightly_smiling_face:
I've recently updated a project from version 2 to version 3 of EnTT, I don't think it would be a great problem for me to update the engine to a new minor version time by time. :wink:

I really appreciate that! 🙂 Hopefully I will be able to keep the versions up to date, but I always welcome PR's! A lot of the work that I have to here is a learning experience with Vulkan for me, so sometimes the other stuff falls by the wayside due to lack of free time.


Bridge Builder: Default to a single csproj if found

Closes #1132
Changes proposed in this pull request:

Change the signature of GetBridgeOptionsFromCommandLine to (ref string[], ILogger) so that we may output the modified args instead of whatever was passed in.
Only call ShowHelp when GetBridgeOptionsFromCommandLine returns null
Bridge.Builder.exe will now default to a csproj in the target folder (either with the -f flag, or the cwd) if a single csproj is found

I will need help with this:

(it would have to support reading *.csproj.user files for current configuration, or maybe reading environment variables if VS makes them available on events/tasks calls).

Hi @Phrohdoh!
Thank you for this pull request. Welcome to Bridge :)
Before a review of the pull request we would need the CLA form accepted. You can find more information in CONTRIBUTING.md.
The full CLA is available here.
When you get a chance, please review the CLA and complete the CLA Acceptance Form. If you have any questions, please just let us know.

I have signed the CLA and will make the noted changes shortly.

@LeonidVeriga This has been updated.

Thanks @Phrohdoh, we will review the pull request and try to get this into the Bridge 1.14 release.

@Phrohdoh, thank you for this nice pull request. It is merged and we will include this into 1.14 release.

Awesome, thank you.


Performance issue when converting HTML with many trailing space to editorState

Performance issue when converting HTML to editorState (with stateFromHTML from draft-js-import-html)
Below is an example of some HTML that contains many trailing spaces which causes the parsing process to slow down. Time taken depends on how large the HTML is, it can take more than 1 minute for a fairly large block of HTML.
Also, I used performance.now() to measure the time taken when using stateFromHTML.
" Nemo develops a smaller right fin <\/em> as a result of damage to his egg during the attack, which limits his  swimming ability <\/em> .

 Worried about Nemo's safety, Marlin embarrasses Nemo during a school field trip.

 Nemo sneaks away from the reef and is  captured by scuba divers <\/em> .

 As the boat departs, a diver accidentally knocks his   diving mask <\/em> <\/a> overboard.

 While attempting to save Nemo, Marlin meets Dory, a good-hearted and optimistic   regal blue tang with <\/em> <\/a>  short-term memory loss <\/em> .

 Marlin and Dory meet three   sharks <\/em> <\/a> –  Bruce, Anchor and Chum <\/em> – who claim to be  vegetarians <\/em> ."
Time taken:
1st round - 443.50ms
2nd round - 481.62ms
3rd round - 442.65ms
This HTML has the trailing spaces removed and it is working perfectly fine as you can see the result of the time taken to convert below.
"Nemo develops a smaller right fin <\/em>as a result of damage to his egg during the attack, which limits his swimming ability <\/em>.
\n
\nWorried about Nemo's safety, Marlin embarrasses Nemo during a school field trip.
\n
\nNemo sneaks away from the reef and is captured by scuba divers <\/em>.
\n
\nAs the boat departs, a diver accidentally knocks his diving mask <\/em><\/a>overboard.
\n
\nWhile attempting to save Nemo, Marlin meets Dory, a good-hearted and optimistic regal blue tang with <\/em><\/a>short-term memory loss <\/em>.
\n
\nMarlin and Dory meet three sharks <\/em><\/a>\u2013 Bruce, Anchor and Chum <\/em>\u2013 who claim to be vegetarians <\/em>."
Time taken:
1st round - 63.91ms
2nd round - 71.46ms
3rd round - 65.11ms

Wow, thanks for reporting this. I think I might have an idea where the bottleneck is, but I'll do some profiling and see what functions are taking the longest..

Hi, is there any progress on it? I have probably the same problem. We have some HTML which goes from email conversations, about 10k chars and browser freezes on stateFromHTML().

Confirmed. If trailing spaces removed, browser not freezes anymore, but performance is still bad. Parsing HTML from email conversation (about 10k chars) takes aprox. 420ms to parse. For comparison if I use covertFromHTML from draft-js itself, it is lightning fast (<50ms).

I totally know why this is happening. It's related to trimTrailingSpace (and the similar functions trimLeadingSpace and collapseWhiteSpace are just as bad). There's performance issues with manipulating the characterMetaData associated with the text.
I think this needs to be refactored so we trim all the text and then manipulate the meta data only once.
I'll try to get a fix out soon.

Is there any update on this?


Use Redux & RxJS to manage start/stop and the grpcClient states

So that our state management code will be more maintainable in the future.

Merge to #20


fix: checkPathParamExists rule

Rule was assuming that all of our paths were stored in a dereferenced openapi file rather than being a $ref. This should cover both cases now.

@RomanHotsiy, I made some updates to this rule based on recommendations from @jamesmessinger. One of the assumptions that we made was that the visitedNodes will always have the OpenAPI object as the root. Please let me know if that won't always be the case and we'll rethink our fix.

Hey @rkrauskopf,
Thanks for the PR!
Yes. I see what's the issue is. Your assumption is correct.
I would though simplify the whole rule! This is guaranteed that IF the first item of visitedNodes is "paths" then the second item is the actual path. There is no need to looks for path through all the stack.
Would you be open to update this PR? We can do it from our side too if you don't have time. Just let us know.

@RomanHotsiy I made the update based on your recommendations. Let me know if that's what you had in mind and feel free to make any additional changes you feel are necessary.

@rkrauskopf we will update this PR a bit next week. We didn't manage to squeeze it into todays release.

Thank you!


Logo

About Logo and Sources: https://gitlab.com/kyberorg/filez/-/tree/master/honeypot_icon

Should be done, other way: input at left, outputs at right, metrics at down


Request: add source code edit mode

froala/nova-froala-field has a very useful (in some cases) mode to edit raw HTML. Is it possible to implement the same for this field/editor?

Hi there - this is not planned. As the content ist not stored as HTML but as a JSON object, there is not real raw HTML to edit in the first place.

Well - the original tiptap editor - which this is a wrapper for - actually has the possibility to switch from JSON to HTML. I will keep this open so far and see if I can add this.

Added in 0.5.0 - thanks to @tmorian.


Enable Customer Usage Attribution for partners

The CUA mechanism is being used to allow tracking of the various modules and for Microsoft to provide better support.
However, Customer Usage Attribution is one of the mechanisms used to recognise partner attached ACR.  It isn't the preferred mechanism - CSP and PAL are more robust - but is still valid and the repo should enable its use.
I suggest that the repo introduces a consistently named parameter, e.g. CUA_GUID, to all modules so that a partner specified GUID can filter through the modules. The parameter value would be set to the GUID generated and registered by the partner.

Hey @richeney,
Thanks for raising this. This needs some consideration as it would technically break our own telemetry if we allowed the CUA ID to be set via a parameter, today its a variable, that partners could change if they wanted to today once they've forked/cloned the repo.
I agree that CSP and PAL are the better ways for partner to attach themselves to ACR.
Are there any active requests for this from partners (feel free to ping me on Teams to keep it confidential 👍)? This will help us understand priority for this work.
Potential Idea
Make the telemetry module a loop that merges the ALZ-Bicep CUA ID with an input parameter version in a concat and then loop over the combined array.
That way both PIID deployments could occur and live together.
Would you want the opt out of telemetry option to apply to the partner one also @richeney?

To be clear, CUA is a mechanism intended for use by partners.
I don't think it supports multiple GUIDs as suggested by the loop idea. It just adds pid-GUID to the agent header and then uses the correlationId to determine which resources should be linked to the MPN ID via that pre-registered GUID.

Update:
Myself and @richeney are syncing internally on this

@richeney did we need to pick this one backup?

Yep, I think support for Customer Usage Attribution needs to be added. I understand that CUA is being used to track impact, but it is there as a partner attach ACR mechanism and partners should be able to use it here. That is analogous to the azurerm Terraform provider where Hashicorp use it by default to get some visibility on usage, but it is always available to partner (or to be switched off) even if that has an impact on what Hashicorp can see.
Note that there is a new partner program and partner score for this FY which has added focus on partner ACR attach, so we have an opportunity here to add support and avoid any unnecessary friction.
I suggest CUA in Bicep need to support both of the following formats:

pid-<guid>-partnercenter (Marketplace - this is the format generated in Partner Center after publishing offers)
pid-<guid> (Other use cases - original format, created manually and registered)

For reference, I had a recent PR in the Terraform azurerm provider which was pulled into the v3.21.0 release. Issue 17403 / Pull 17441.
Adding @mormond, who's the Marketplace guru in the team!

Ado sync


Add "all" archive

This PR adds another archive class in the all namespace.
This class provides a convenient and common interface to all archive types.

I'm not interested in supporting this class. This kind of thing seems more tailored for your own code base.

I understand, but:

This class would make this library way more accessible to anyone wishing to use it
It's not a large piece of code, and would likely require very few maintenance

Anyway, that's your choice


Creating pull requests from fork to other fork

After merging #404 there's no support only for creating PR from one fork to different fork.
PyGithub (GitHub API respectively) doesn't allow creating pull requests on a repository we're "merging" from.

[ ] implement getting other fork repository when creating PR against it (internal Repository should be enough)

[ ] handle non-existing fork

In a scenario where A(upstream) -> B(fork) -> C(fork)
Passing forkusername as None, seemed to create a PR to the parent fork, that is B, like here -
https://github.com/AICoE/clai/pull/1
Does creating PR from one fork to different fork mean same?

Looked at the project, it satisfies the "graph" you made, there it works fine.
I meant something like:
  A (upstream)
 / \
B   C

And then PR from B -> C or other way around.


Update PCRE version to 8.42

Updates the pcre_version variable to use the latest available release
available from ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.
The previously specified version (8.36) is no longer available.
Fixes #1.

I haven't tested this and am not sure how to, but given the link @pixelbacon provided this seemed like the thing to do.

@littlelazer @rmw @thegrubbsian Are any of you in a position to review this?


fix: disappearing dialog error message

#252
Added a new state that keeps track of the last error message so that the message still displays even when error state is set to undefined on close
https://github.com/user-attachments/assets/471e6bdc-6109-4384-8bf8-85cc47c18731

This change is

Nice catch! However, the fix you provide in this PR is more of a band-aid rather than fixing the actual underlying issue, which is that the ScheduleListItem is using the wrong (old) dialog system that we're trying to move away from. I made a new PR #254 for that.
Let me know if that PR looks ok to you.

w elie and this guy


[Overlay] Scroll blocking inconsistency on different OS/Browsers

Bug, feature request, or proposal:
bug
What is the expected behavior?
Scrolling should be blocked on all platforms when a backdrop overlay is active.
What is the current behavior?
There are browsers that don't block scrolling when a backdrop overlay is active.
What are the steps to reproduce?
All test are done on the page: https://material.angular.io/components/dialog/overview by opening the modal on clicking Pick one.
Also I observed the behavior of the sidebar is different across browsers, thats probably a different issue.
Windows 10:

Chrome 62:

Page scrolling is blocked while modal is opened.
Sidenav has a scrollbar.

Opera 49:

Page scrolling is blocked while modal is opened.
Sidenav has a scrollbar.

Internet Exporer 11:

Page scrolling is blocked while modal is opened.
Sidenav has a scrollbar.

Edge 16:

Page scrolling is blocked while modal is opened.
Sidenav hasn't a scrollbar, sidenav is scrolled with the entire page [the layout of page is broken].

Firefox 57:

Page scrolling isn't blocked while modal is opened.
Sidenav hasn't a scrollbar, sidenav is scrolled with the entire page [the layout of page is broken].

Android 8.1(Developer preview 2) [nexus 6p]

Chrome 62:

Page scrolling isn't blocked while modal is opened.
Sidenav scrolls the entire page when reaching the bottom of the sidenav.
Page is scrollable on backdrop while sidenav is opened.

Opera 44:

Page scrolling is blocked while modal is opened.
Sidenav scrolls the entire page when reaching the bottom of the sidenav.
Page is scrollable on backdrop while sidenav is opened.

Firefox 57:

Page scrolling isn't blocked while modal is opened.
Sidenav scrolls the entire page when reaching the bottom of the sidenav.
Page is scrollable on backdrop while sidenav is opened.

iOS 10.3.3 [iPhone 5c]

Safari 10:

Page scrolling is blocked while modal is opened.
Sidenav scrolls the entire page when reaching the bottom of the sidenav (wait for animation to stop).
Page is scrollable on backdrop while sidenav is opened.

Chrome 62

Page scrolling is blocked while modal is opened.
Sidenav scrolls the entire page when reaching the bottom of the sidenav (wait for animation to stop).
Page is scrollable on backdrop while sidenav is opened.

What is the use-case or motivation for changing an existing behavior?
The scroll blocking should be consistent among the platforms for a better UX.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
The ones that are used on material.angular.io
Is there anything else we should know?
All components that use backdrop overlay are affected (ex: menu, select)

It looks like the problem is also connected with the viewport size. I have tried with Chrome 64 and page scrolling isn't blocked when viewport size is <=720px. Above 720px scrolling is blocked for Chrome 64.

It looks like the problem is also connected with the viewport size. I have tried with Chrome 64 and page scrolling isn't blocked when viewport width is <=720px. Above 720px scrolling is blocked for Chrome 64.

I can confirm this!

+1
Am using dialogs extensively and my app doesn't work on ipad / safari due to this issue. Any touch scrolling actions on dialogs affect the page more often than they perform the desired scrolling on the dialog. This can be confirmed on the 'Dialog with header, scrollable content and actions' example here: https://material.angular.io/components/dialog/overview

(revisiting older issues as part of a triaging fix-it)
I tried this on:

Windows (Chrome, Firefox, desktop and mobile view)
macOS (Safari)
ChromeOS
Android (Chrome)

In all cases the scrolling was blocked as expected, so I suspect this was fixed either in the browser or in the library between 2017 and now. Feel free to file a new issue is some problem persists.


Failed to create config file/option alerts on Windows installer

"Failed to create config file/option" alerts
Branch: 0.16 installer (build # 81) on Windows 7 & 8
Current Behavior:
Two error alerts appear when KA Lite is started from the desktop shortcut:

Both errors alerts appear twice (1st, 2nd, 1st, 2nd), but after that KA Lite appears in the Taskbar notification area, and can start the server correctly.

@ruimalheiro perhaps you can give some insight? Not really sure what the config.h stuff is for.

Hey @radinamatic @MCGallaspy ,
The options to run at windows startup / autostart server  are stored within the file "CONFIG.dat". The "config.h" contains all the logic to create and read the configuration file.
Perhaps that error is related with writing permissions issues by the user? If it fails to create the file, it will display that error.

So far these errors appears on Windows 7 & 8, but not on XP. Can that maybe shed some light?

That would make sense since Windows Vista+ are more restrictive in respect to user permissions.
That would make sense since that Windows Vista+ are more restrictive in respect to user permissions.
If the user does not have permissions to write to the directory where KA Lite is installed, it will not be able to create the configuration file and it will display that error.
Unfortunately we are not printing the errors to a log file or so. That would help a lot because we could easily check the error code under MSDN, that would provide us more detailed information.
Could you try to run KA Lite as admin (right click on exe, run as admin) and check if the same error is happening?

The user that is installing KA Lite and running has admin status, and those errors do not appear while running the KA Lite.exe (weather by double click, right click >Open or right click > Run as administrator).
However, if I want to activate Options > Run KA Lite when the user logs in, by right clicking KA Lite icon in the taskbar notification area, I get "Failed to create config file".

Yeah, it does indeed have to do with the owner of the CONFIG.dat file (which is found in KA Lite's installation directory). If it's created at install time, the admin privileges cause it to be owned by an admin. Subsequently a regular user doesn't have the perms to modify it, but if you run the gui app as admin it seems to work ok. (This is on Win 7, but I expect similar results for other versions.)
Not sure what the best course of actions is -- it might be possible to run KA Lite always as an admin (but that's a bit excessive), or to change the permissions of CONFIG.dat so that it's always writable.

The user also doesn't necessarily have permissions to create a CONFIG.dat file if one wasn't created during installation...

I wonder if it's possible to request the perms on newer version of Windows? I'll look into it.

Yep, that is right. Perhaps one possible course of action would be to actually create the configuration file under the user documents or similar? This would allow different config styles for each user on that machine and would avoid any I/O problems (regarding user permissions).

TL;DR
Old behavior is problematic since KA Lite could now be run by several users on the same machine. We should support multiple users (and also thereby avoid permissions problems), but this creates a lot of caveats for upgrading. I've proposed some changes, but they bear discussion because there are pros and cons. Read more below and share your opinion.
Recap
The installer is run with elevated permissions, so if a user chooses an option which creates a CONFIG.dat file, then it will be created with the elevated permissions, preventing subsequent access. However KA Lite.exe (the task-tray program) is generally not run with elevated permissions.
There are two distinct mechanisms by which the CONFIG.dat file could be created:

At install time using the API exposed by IS. See here. No specific function for changing permissions, though could be possible using e.g. ShellExec
After installation using the task-tray program. It is possible to set the desired access levels using CreateFile.

Furthermore, older installations of KA Lite may be suffering from this problem, in the sense that they might have created a CONFIG.dat at install time (as described above) but are not able to subsequently modify it, or they may receive notifications telling them that they can't open the CONFIG.dat file as @radinamatic experienced.
It's also now possible that if 2 users run KA Lite on the same system, that they will both be accessing the same CONFIG.dat file. That means the options will be modified for all users if one changes them, which is clearly not desirable.
Proposed changes regarding CONFIG.dat

Change
Pros
Cons

Remove the ability to create CONFIG.dat at install time
Prevents the ability to create a file which cannot be accessed without elevated privileges later. Easier to maintain code, as it's no longer duplicated.
Less convenient, perhaps will make it less obvious these options exist

Write CONFIG.dat to a location determined by the user running KA Lite.exe
Avoids sharing CONFIG.dat files across several users
Users may rely on old behavior. Configuration files may be lost and need to be set again.

Caveat
The behavior of "Run at system start..." doesn't play nice -- it currently runs KA Lite as the SYSTEM user (and will still in #322, except on XP). This is problematic because it means that several users may all control whether KA Lite is run by the SYSTEM user or not, but also because choosing to run KA Lite from the task-tray program actually runs KA Lite as the current user. Again, users may rely on old behavior here. In previous version of KA Lite there was no notion of running KA Lite as different users. Furthermore we don't wish to have users "lose" data because suddenly they are running KA Lite as a different user (which will create & access a different database file).
The latter issue is the most difficult problem here -- it is possibly annoying but trivial for the user to create a new CONFIG.dat file. But it could be more difficult to preserve user's data, depending on the version of KA Lite they use and how they typically start the server. How to preserve data when upgrading:
 |  KA Lite run as SYSTEM user (through scheduled task)  |   KA Lite run as current user (started manually from task-tray)

---------|--------------|------------
Shared database  |  Migrate data from canonical location at upgrade time to installing user's ~/.kalite dir. Installer already does this.   |    Migrate data from canonical location at upgrade time to installing user's ~/.kalite dir. Installer already does this.
Single-user database |        Migrate data from location dependent on Windows version to installing user's ~/.kalite dir. The installer currently has no way to distinguish whether KA Lite is run this way or not. May need to prompt user. The alternative is to include a separate tool/script for migrating data, allowing users to self-identify if they need to use it after installation.         |  No action.
@radinamatic I'm particularly curious about the bottom-left entry -- in your opinion, what can we do that will make it as simple as possible for a user to upgrade in that scenario?

Additionally, I can't recall when we moved from a shared database to a single-user database on Windows -- from the release notes I think we started using a single-user database in 0.14.0. @radinamatic can you verify that 0.13.x uses a shared database (found in the KA Lite installation directory) and 0.14.x uses a single-user database (found in a user's .kalite directory)? This will inform how upgrades from various versions to 0.16.x should be handled.

Ok, I will do a 0.13 version installation to verify the shared database presence.
Regarding the CONFIG.dat conundrum, I'm just wondering how frequent is the user case where there are 2 different users (2 admins?) who need to run the server, which will lead to 2 sets of user data? I've always envisioned one and only one server installation, since it has the ability to manage multiple scenarios (schools, classes, groups...).

Thinking further...Learner users will probably never start the server themselves, but some Coach might (a part from Admins, obviously), so do I see the need to sort the server start by different users after all...

0.13.2 version has the data.sqlite file in folder:
C:\Program Files\KA Lite\ka-lite\kalite\database

@MCGallaspy knowing there is some crossover between a planned kalite deployment you are involved with and kolibri. This might be a good time to look at a start to a more sane user permission structure for our furture kolibri design? Depending on time tables of course which I know you understand much better than I? But my preference would be a roll based adminstration assigned model where the admin / assumed installer, can pick or choose from those internal account types which will be granted this capability and others on an as needed basis as I think @radinamatic is suggesting. I can imagine in many scenarios it could be best for the students themselves to be able to start it nd my preference has always been always on anyway LOL anyway, just food for thought?

0.14.2 version has the data.sqlite file in folder:
C:\Users\IEUser\.kalite\database

Just a note -- on XP, even when a KA Lite scheduled task is run as the SYSTEM user, it seems to choose the location of the .kalite dir based on the current user's %USERPROFILE% value.

It does seems that only scheduled task are reserved for those with elevated permissions.
Regarding the above table about migrating data (bottom-left entry):

The installer currently has no way to distinguish whether KA Lite is run this way or not. May need to prompt user.

We are talking about upgrading on Win 7 & 8 for users who run KA Lite run as SYSTEM user. Can't the installer check if there is a kalite.job scheduled task present?

The alternative is to include a separate tool/script for migrating data, allowing users to self-identify if they need to use it after installation.

That's also an option, but I would personally prefer if all can be correctly setup/migrated during the installation.

We are talking about upgrading on Win 7 & 8 for users who run KA Lite run as SYSTEM user. Can't the installer check if there is a kalite.job scheduled task present?

Yeah, I am trying to determine where the .kalite dir appears when run as the SYSTEM user -- then we can prompt them to save/migrate that data at install time. Sadly, it appears there's a bug in Windows affecting this very situation: https://support.microsoft.com/en-us/kb/2968540

A note to summarize the USERPROFILE situation on each version of Windows. I'll be updating this.

OS
Value of USERPROFILE at boot for SYSTEM user
Value of USERPROFILE after log in for SYSTEM user

XP
Apparently no value? Could be why it fails.
Takes the value for the currently logged-in user

Windows 7
Apparently C:\Windows\System32\config\systemprofile\
Haven't yet determined.

Windows 8
Maybe also C:\Windows\System32\config\systemprofile\. Now checking.
Haven't yet determined.

Sadly, it appears there's a bug in Windows...

Oh, what a surprise... :unamused:
I am testing starting the server on non-admin (coach) Windows user with 0.14.2 that I installed today. It does not throw any errors from KA Lite options in taskbar notification, but it does require the system admin user password when python process is raised.

0.14.2 on Windows 7
Running the server by two different Windows users (one admin and other standard) creates two completely different KA Lite "setups" - different content folders, databases, (super)users...
Is this really the intended behavior? I could understand the need for, let's say, coach person to login with their Windows credentials on that machine and be able to start the server, but that would have to be the same KA Lite server "setup" as the one the admin user would run when they login on the machine with their own Windows credentials, and that's not what's happening.

Running the server by two different Windows users (one admin and other standard) creates two completely different KA Lite "setups" - different content folders, databases, (super)users...

Yes, if two different users run KA Lite then it will create two different .kalite directories, because it's based on the running user's %USERPROFILE% value. This can be changed by setting the KALITE_HOME environment variable. It's also why I find it problematic that the scheduled task runs as the SYSTEM user, but a user using the the task-tray program will start KA Lite as his/herself and not SYSTEM.
As for why this is the case, briefly it's because we want to ensure that any user that starts KA Lite has permission to write data, which is not the case in prior versions and resulted in errors. In this case:

I could understand the need for, let's say, coach person to login with their Windows credentials on that machine and be able to start the server, but that would have to be the same KA Lite server "setup" as the one the admin user would run when they login on the machine with their own Windows credentials, and that's not what's happening.

We'd like KA Lite to start as the admin user through a scheduled task, so the coach will never start it. The almost-equivalent thing we do on linux is create an initscript which runs kalite as a particular user every time. However I'm struggling to do this on Windows using schtasks.exe.

I have always felt this would be a nice feature in a multi-teacher classroom for example, where the room is scheduled for use by more than one teacher each day on the same hardware each having their own record store and coaching capabilities for the classes they are teaching without access to the others. I think it offers the greatest amount of flexibility in meeting different use cases but does come with its headaches on our end.

Okay, after much sleuthing I discovered that on Windows 8: the default value of KALITE_HOME is C:\Windows\System32\config\systemprofile\ still, but this gets translated to C:\Windows\SysWOW64\config\systemprofile\ somewhere along the way. See my table above.

TIL about running 32-bit windows programs in 64-bit windows: https://msdn.microsoft.com/en-us/library/aa384187(v=vs.85).aspx


Cannot delete pipeline when Jenkins is closed

Versions used
KubeSphere:  v3.2.0
How To Reproduce
Steps to reproduce the behavior:
1、Close Jenkins  kubectl scale deploy devops-jenkins -n kubesphere-devops-system --replicas=0
2、Delete any pipeline in pipeline list
Except Behavior
successfully deleted，pipeline do not exists in pipeline list
Actual Behavior
The deletion failed, and the pipeline still exists in pipeline list.
when Jenkins restart, viewing the details of the pipeline, it prompts that the pipeline does not exist, and then it disappears from the pipeline list
/kind bug
/cc @kubesphere/sig-devops
/priority medium

This is by design. We need to remove the corresponding Jenkins job when users want to delete a Pipeline.
/close
/remove-kind bug