litmus-agent Helm chart - Subscriber and Event-tracker CrashLoopBackOff: ACCESS_KEY / VERSION missing values

What happened:

Deployed litmus Helm chart v3.9.0 on a private GKE cluster in the litmus-operator namespace via ArgoCD.
The control plane components are working fine and I can access the Chaos Center UI.
Created an Environment.
Configured the litmus-agent Helm chart v3.9.0 as follows (credentials are redacted)

litmus-agent:
  global:
    infraConfigName: test-chaos-infra-config  # This gets created but it is empty
    infraSecretName: test-chaos-infra-secret  # This gets created but it is empty
    INFRA_MODE: "cluster"
  INFRA_NAME: "test-chaos-infrastructure"
  INFRA_DESCRIPTION: "Test chaos infrastructure"
  SA_EXISTS: "false"
  NS_EXISTS: "true"
  INFRA_TYPE: "internal"
  APP_VERSION: "3.9.0"
  SKIP_SSL: "true"
  LITMUS_URL: "http://litmus-operator-app-frontend-service.litmus-operator.svc.cluster.local:9091"
  LITMUS_BACKEND_URL: "http://litmus-operator-app-server-service.litmus-operator.svc.cluster.local:9002"
  LITMUS_USERNAME: "admin"
  LITMUS_PASSWORD: "******"
  LITMUS_PROJECT_ID: "***"
  LITMUS_ENVIRONMENT_ID: "testenvironment"

Deployed litmus-agent Helm chart 3.9.0 on the same private GKE cluster in the litmus-agent namespace via Argo CD.
The agent installation Job finishes with an error about not being able to process the request header, but I can see the new infrastructure as PENDING in the Chaos Center UI. It never connects.
The subscriber workload is in a CrashLoopBackOff state and the logs show a fatal error: "required key ACCESS_KEY missing value"
The event-tracker workload is in a CrashLoopBackOff state and the logs show a fatal error: "required key VERSION missing value"
The litmus-agent namespace only contains an empty infra secret. There is no 'agent secret' as mentioned in other Issues.

What you expected to happen:
I expected the infra created by the litmus-agent Helm chart to connect successfully to the Chaos Center.
How to reproduce it (as minimally and precisely as possible):
See above in "What happened"
Anything else we need to know?:
I have searched through the issues and have followed the steps mentioned in issue 3531 and issue 3528 amongst others.

is this issue resolved?

Im also facing this exact issue with the latest installation.

I can confirm, I am facing the same issue with flux, using latest version 3.11.0

Can I take this issue?

go ahead, @jemlog

Hi, contributors.
when we deploy litmus-agent helm chart, this pre-install-job work first.
# hook-pre-install-job.yaml
...
spec:
      restartPolicy: Never
      serviceAccountName: {{ include "litmus-agent.serviceAccountName" . }}
      containers:
      - name: {{ .Chart.Name }}
        imagePullPolicy: Always
        image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.Version }}"
        args: ["./litmus-agent", "--action", "create"]
...

pre-install-job use container image from this directory.
Analyze
Please refer to this code below from now on.
https://github.com/litmuschaos/test-tools/blob/master/custom/litmus-helm-agent/pkg/litmus/client.go#L214-L232
When execute job, we first login and get access token from auth server. For this work, we need env value LITMUS_FRONTEND_URL, LITMUS_USERNAME and LITMUS_PASSWORD.
credentials.ServerEndpoint = authInput.Endpoint # Endpoint is LITMUS_FRONTEND_URL!

After we logged in, credentials.ServerEndpoint is initialized by authInput.Endpoint.
But it's weird, because authInput.Endpoint is frontend url, not backend url !
To get infrastructure info (access_key & version) from backend server, pre-install-job try to connect backend server by graphQL. Refer to the code below.
https://github.com/litmuschaos/litmusctl/blob/master/pkg/apis/infrastructure/infra.go#L104
But apis.SendRequest() is using credentials.ServerEndpoint and as you know, it's frontend url.
So.. I think it's the reason why subscriber and event-tracker are missing ACCESS-KEY and VERSION.
If my prediction is right, we need to fix this line
credentials.ServerEndpoint = os.Getenv("LITMUS_BACKEND_URL")

PTAL @namkyu1999 🙇♂

After switching to the Helm charts litmus-agent:3.11.2 and litmus:3.11.0, the issues I was encountering have been resolved. Everything now appears to be functioning smoothly on my end.

I am seeing the same issue on litmus-agent:3.13.0 and litmus:3.13.0.
We install via ArgoCD and let the chart create all it's own secrets and configmaps


fix(api): mps password updates in vault on edit in cira profiles

Codecov Report

Merging #303 (2485afc) into master (e8ae0a1) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #303   +/-   ##
=======================================
  Coverage   44.86%   44.86%
=======================================
  Files          50       50
  Lines        3040     3040
  Branches      531      531
=======================================
  Hits         1364     1364
  Misses       1499     1499
  Partials      177      177

Continue to review full report at Codecov.

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


⚠ Bofrost.at has degraded performance

In b13fa1c, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1086 ms

Resolved: Bofrost.at performance has improved in 5bc6aac.


ID3 Tags Broken on Bandcamp

$ sof https://wednesdaysound.bandcamp.com/album/lorn-dolor-drugs
Downloading: GRID // TACKS
[################################] 13252/13252 - 00:00:08
'int' object has no attribute 'encode'
Downloading: VOLUME UNIT // CASES
[################################] 18506/18506 - 00:00:12
'int' object has no attribute 'encode'
Downloading: A FAREWELL WITH DRUMS
[################################] 4519/4519 - 00:00:04
'int' object has no attribute 'encode'

Can't repro anymore


import example.avro.User;

I didnt not find User file in the project
import example.avro.User;

That is correct, you need to run: mvn generate-sources so that the Avro plugin generates this class.


build-plugin-rax-compat-react not work with antd-mobile

Error message
(undefined) ./node_modules/antd-mobile/es/action-sheet/index.js
Module not found: Can't resolve 'react-dom' in '...'
Configuration (build.json)
{
  "plugins": [
    [
      "build-plugin-rax-app",
      {
        "targets": ["web", "wechat-miniprogram"]
      }
    ],
    "build-plugin-rax-compat-react"
  ]
}

我看下

跟进 pr https://github.com/raxjs/rax-scripts/pull/114


Add a tab for AuditEvents to each resource, but tab should not pre-load

Tab should not render by default and instead should have a button that queries for the past 20 events related to that resource.

This ticket refers to adding an "AuditEvent" tab on the default resource page in the Medplum App. This would allow users to view all Audit events related to the current resource, by running the filter:
AuditEvent?entity=:ResourceType/:id.
Because reading AuditEvents is a heavyweight operation on the DB, we'd like to add the follow mitigations:

Only load this these events when a user clicks a button in the tab. This prevents Mantine from preloading the events before the user navigates to the tab
Paginate the AuditEvents, so only 20 show up at a time.

Sort by lastUpdated, newest to oldest


Prohibited values

Hi there,
Can I specify that certain parameter values are invalid? Something to the same effect of:
        private string _server = null;
        [Option('s', "server", Required = true, HelpText = "Some text here")]
        public virtual string Server
        {
            get { return _server; }
            set {   if (string.Compare("localhost", value, true) == 0)
                    {
                        _server = null;
                        throw new ArgumentException("Localhost is not accepted as a server name.");
                    }

                }
        }

Of course, I can validate after parsing is complete, but I had to do it in many places. Is there a better way?
Thanks!

I think @nemec was talking about this lib: https://github.com/JeremySkinner/FluentValidation. Right?
@raymondb1, I'm agree with @nemec, anyway I don't think a few validation machinery will never be added to this library too.
In issue #158 we discuss some of this eventual mechanism. Please give a look and back here (or there) to say what you think.
Thank you for choosing this project for you command line parsing needs! :+1:


Define a ReSharper profile for an agreed code style

The solution should provide a ReSharper .DotSettings file that will provide a coherent set of naming conventions and cleanup rules for the source code in YAXLib.

Recently we introduced .editorconfig, which is the standard for declaring common basic settings that can be picked up by many editors and IDE's. So partly this issue is already covered.
DotSettings is a file that ReSharper uses to save "team shared" settings. Shouldn't be too difficult to agree on. Still we cannot rely on contributors having ReSharper in use.
@NKnusperer @304NotModified Close and leave as it is, or introduce DotSettings?

Personally I use JetBrains Rider which supports .DotSettings so this is fine, however .editorconfig is platform agnostic so it covers a broader audience. It might be good idea to use it.


Tokenization and textmate  color mismatch

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

VS Code Version:

1.75.0-insider
6ed4d436a9b6ae131732f4e2a723868231f4473a
x64

OS Version:
21.4.0 Darwin Kernel Version 21.4.0

Steps to Reproduce:

Customizeeditor.tokenColorCustomizations
The color is not correct

Notice that the hex number(it's a bit hard to see), already shows as with #8DDEE6 foreground color, but still appears black

Are you using custom fonts with ligatures? If yes, could you please try with default fonts?

See https://github.com/microsoft/vscode/issues/100840


Pynndescent knn

Changelog
Added a component src/labels_transfer/pynndescent_knn. This component has a lot of overlap with src/labels_transfer/knn,  but some changes were made such that the component is compatible with the cell type annotation workflow that is in progress. For now it is implemented as a separate component for backwards compatibility, but eventually we can combine the two components and deprecate one.
Major changes include:

Accept a reference h5mu file as input, such that reference files created by OP can be provided directly to the component
Save probabilities rather than uncertainties in the output h5mu, which can be used to calculate the majority vote
Implement the scikit-learn knn classifier (rather than manual calculations), allowing for multiple distance functions

Issue ticket number and link
Closes #xxxx (Replace xxxx with the GitHub issue number)
Checklist before requesting a review

[x] I have performed a self-review of my code

[x] Conforms to the Contributor's guide

Check the correct box. Does this PR contain:

[ ] Breaking changes
[x] New functionality
[ ] Major changes
[ ] Minor changes
[ ] Documentation
[ ] Bug fixes

[x] Proposed changes are described in the CHANGELOG.md

[x] CI tests succeed!

I merged @dorien-er 's implementation with the previous one. The older knn component can now be deleted. Would be great to standardize the xgboost component with the new annotation format as well. We can then clean up the code a bit more.
Would appreciate a review @DriesSchaumont, @rcannood

I opened a new PR making XGBoost compatible with the new annotation workflow: https://github.com/openpipelines-bio/openpipeline/pull/858
We can first merge it to this branch or do it separately

Suggestion: the KNNClassifier also accepts a callable for the weights kwarg, so I just pushed a change where the gaussian weights calculation is directly passed to the classifier. It simplifies the code quite a bit, but also ensures that the sum of probabilities across detected neighbours equals 1. @VladimirShitov and @DriesSchaumont lmkwyt!

Thank you, @dorien-er ! Looks much clearer. Are the results identical to the previous?

Thank you, @dorien-er ! Looks much clearer. Are the results identical to the previous?

Yes!


DOC: use _shared_docs for fillna methods

currently the docstring for DataFrame.fillna is shown for Series.fillna and Panel.fillna. http://pandas.pydata.org/pandas-docs/version/0.16.0/generated/pandas.Panel.fillna.html?highlight=fillna#pandas.Panel.fillna
this is not accurate in particular for the axis values. This PR makes it such that they share the same template with different axis descriptions.

@sinhrks updated according to your comments

@mortada thanks you sir!


Adds support for infiniband network interfaces

Adds a service module for bringing up userspace infiniband devices, including IP over IB

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Notify maintainers
cc @

Nice work, considering the contributor... :stuck_out_tongue:

you might want to check the kernel configuration enables INFINIBAND as well. (look for requiredKernelConfig)

@andir here is effectively the process I executed to validate the module
First starting with a minimal config, no ib enabled
{ config, pkgs, ... }:

{

  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
      # Users on this system
      ./system-users.nix
      # Defaults
      ./modules/base.nix
    ];

  networking = {
    hostName = "stcg-us-0005-11";
    hostId = "b08b87f6";
    interfaces.enp24s0f0.useDHCP = true;
  };

  environment.systemPackages = with pkgs; [ vim ];

}

because of the intree kernel drivers we see an infiniband device and surprisingly a uverbs device, but no network interface or anything else
[ogle@stcg-us-0005-11:~]$ ls /sys/class/net
enp1s0f0  enp1s0f1  enp24s0f0  enp24s0f1  lo

[ogle@stcg-us-0005-11:~]$ ls /sys/class/infiniband
mlx5_0

[ogle@stcg-us-0005-11:~]$ ls /dev/infiniband
uverbs0

enable the service in the config
{ config, pkgs, ... }:

{

  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
      # Users on this system
      ./system-users.nix
      # Defaults
      ./modules/base.nix
      # Infiniband
      ./modules/infiniband/infiniband.nix
    ];

  networking = {
    hostName = "stcg-us-0005-11";
    hostId = "b08b87f6";
    interfaces.enp24s0f0.useDHCP = true;

    ib-interfaces.enable = true;
  };

  environment.systemPackages = with pkgs; [ vim ];

}

All of these services/udev rules fire on boot, so....
REBOOT
ok now take a look at what we have.
[ogle@stcg-us-0005-11:~]$ ls /sys/class/net
enp1s0f0  enp1s0f1  enp24s0f0  enp24s0f1  ibp59s0  lo

[ogle@stcg-us-0005-11:~]$ ls /sys/class/infiniband
mlx5_0

[ogle@stcg-us-0005-11:~]$ ls /dev/infiniband
issm0  rdma_cm  umad0  uverbs0

we have a new network interface ibp59s0 (this is the ipoib device) and a number of new infiniband devices listed. Lets go ahead and configure the new network interface
{ config, pkgs, ... }:

{

  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
      # Users on this system
      ./system-users.nix
      # Defaults
      ./modules/base.nix
      # Infiniband
      ./modules/infiniband/infiniband.nix
    ];

  networking = {
    hostName = "stcg-us-0005-11";
    hostId = "b08b87f6";
    interfaces.enp24s0f0.useDHCP = true;

    ib-interfaces.enable = true;
    interfaces.ibp59s0 = {
      ipv4.addresses = [ {
        address = "<IP_ADDRESS>";
        prefixLength = 24;
      }];
    };
  };

  environment.systemPackages = with pkgs; [ vim ];

}

Finally a sanity check of functionality
test ip over ib
[ogle@stcg-us-0005-11:~]$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.465 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.124 ms
64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=64 time=0.152 ms
64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=64 time=0.120 ms
^C
--- <IP_ADDRESS> ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3084ms
rtt min/avg/max/mdev = 0.120/0.215/0.465/0.144 ms

test rdma (see https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-testing_early_infiniband_rdma_operation)
on another machine start a server
ogle@stcg-us-0005-05:~$ ibping -S -C mlx5_0 -P 1

on the nixos machine
Note if you dont want your users to require sudo, you need to modify the udev rules
ogle@stcg-us-0005-05:~$ ibping -S -C mlx5_0 -P 1
Pong from stcg-us-0005-05.(none) (Lid 21): time 0.021 ms
Pong from stcg-us-0005-05.(none) (Lid 21): time 0.021 ms
Pong from stcg-us-0005-05.(none) (Lid 21): time 0.023 ms
Pong from stcg-us-0005-05.(none) (Lid 21): time 0.022 ms
Pong from stcg-us-0005-05.(none) (Lid 21): time 0.022 ms
Pong from stcg-us-0005-05.(none) (Lid 21): time 0.023 ms
Pong from stcg-us-0005-05.(none) (Lid 21): time 0.024 ms
Pong from stcg-us-0005-05.(none) (Lid 21): time 0.021 ms
Pong from stcg-us-0005-05.(none) (Lid 21): time 0.025 ms
Pong from stcg-us-0005-05.(none) (Lid 21): time 0.025 ms

--- stcg-us-0005-05.(none) (Lid 21) ibping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 10000 ms
rtt min/avg/max = 0.021/0.022/0.026 ms

one thing I have noticed however, is that nix doesnt seem to have a way to configure the broadcast addr. so while I set the prefix, I still end up without a broadcast addr, at least as reported by ifconfig
ibp59s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 2044
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
...

Regarding the requirement of having to reboot after enabling this:
Skimming through this, I don't think the udev rule should only fire on boot.
There might be some bugs in our activation script, that cause an additional target to not start during activation, but the only udev rule added should fire as soon as srp_daemon is started.
When it comes to the interface network configuration, you might want to switch to the networkd backend (which shouldn't be as racy as the scripted one).
With it, you can also specify a broadcast address via Broadcast= - if it's not calculated properly with networkd already, which I'd assume it will:
networking = {
    hostName = "stcg-us-0005-11";
    hostId = "b08b87f6";
    useDHCP = false;
    useNetworkd = true;
    interfaces.enp24s0f0.useDHCP = true;
    ib-interfaces.enable = true;
};
systemd.network.networks."01-ibp59s0" = {
  name = "ibp59s0";
  address = ["<IP_ADDRESS>/24"];
  networkConfig.Broadcast = "<IP_ADDRESS>";
};

@blogle any chance you'll get to this in the near future? Would be nice to finish this :-)

@flokli I was driving this project in an effort to mount our lustre filesystems across our data center hosts. Ultimately I ran into major headaches trying to get that software to run as expected under NixOS (mofed ko's + lustre client rpms). The source code for both have significant number of absolute paths, and the lustre client ultimately uses init scripts that systemd based distros are expected to call into. In the end I had a mounted filesystem, where any fs operations hung the system - though the lustre equivalents worked as expected.
Sadly I dont have any urgency to clean this up, or move it forward

No worries, thanks for replying back. It'd be nice if you could keep the branch on your nixpkgs fork though, so others might be able to pick up from your work :-)

No worries, thanks for replying back. It'd be nice if you could keep the branch on your nixpkgs fork though, so others might be able to pick up from your work :-)

Yup, I wont delete the branch. Would be awesome if someone else has a need for this and can shepherd it along. Would love to see this (and lustre) working on NixOS


fix(chips): dynamic chip input placeholder changes not being propagated to form field

Fixes changes to the placeholder of a chip input not being propagated to its parent form field. Also un-deprecates the input for placeholder, because we need to know when it has changed.
Fixes #11861.

Just needs rebase


Verify Endpoint.Info() before accessing it

During concurrent stress operations in multi-host environment, it is possible to run into a nil EndpointInfo when running docker network ls. It is a valid situation. It just means the endpoint is no longer available in the datastore.

Signed-off-by: Alessandro Boch<EMAIL_ADDRESS>

LGTM

This is OK, but I think it's better to return a nil, err instead of nil and then always checking if the thing is nil.
The error type isn't necessarily for real/hard error cases that we can't come back from, it can be used to signify these types of things, ie "this thing you asked for doesn't actually exist".
This would prevent cases like this where it's only returning one thing so we just assume we're good to use it.

@cpuguy83 Makes sense, but that would be a public API change.

public API of what?

Libnetwork package API. We have been trying not to change existing API in libentwork, not only the ones interfacing with remote drivers. Sure the non driver interfacing API can be changed, given daemon is probably going to be the only client.

LGTM.
Yes, I get we don't want to change the driver API. Package API should be fine to change as this should be versioned by checkouts.

@cpuguy83 @aboch please check if PRs need to be added to the 1.9.1 milestone when merging, so that we don't forget.

@thaJeztah Yes, please. This should be added to 1.9.1.

Thanks! If you see another PR that needs to be considered, feel free to ping me or another maintainer :heart:


Why is the content in your custom render target constantly jittering?

The jittering is caused by the Temporal Anti-Aliasing (TAA) configuration. Disable TAA in the custom RenderPass can resolve it.


Add ability to add custom log tag on cache requests

In order to segment which requests to the http cache are coming from different machines (CI vs local machines for example) it would be helpful to be able to pass a tag to the buck-http-cache when making the GET request, perhaps as a query param or similar. I don't believe this is currently possible (no custom logging options appear in this method) but correct me if I'm wrong.
cc @zayhero @kageiit

I believe you can pass in arbitrary headers in the cache request. One example is the cache expiry header. Using headers you should be able to log the type of requests at the frontend directly instead of making changes in the cache code itself

Good idea, especially paired with buck.cache.http_write_headers config option. Will give it a try and report back if it works or not.

Closing this since I assume @seanabraham has got it working by now :)


Alert email validation issue

If I enter my email address in the "Alert Emails" box, then i get following error.

There is PR in place for this which is being reviewed by Scott Holden

This is fixed so resolving the issue #81


snd and asnd definition fixes

Adjusted the snd definition in the common section to cover all the transaction types, current definition clashes with clawback (unless the clawback definition "overrides" it, but this is not stated anywhere) and is also not ideal for asset transfer.
Removed asnd from asset accept: It's incorrect, asset accept doesn't have this field.
Removed asnd from asset transfer: Though the definition states that it should not be set unless it's a clawback transaction, it seems better to just not list it. "zero value" based on my tests is just not setting it.

I'm still new to all this, might be missing something. Main purpose is just to bring attention to this, maybe it can be addressed in a better way.

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


mist_device_gateway : Provider produced inconsistent result after apply .additional_config_cmds

When using the following hcl
terraform {
  required_providers {
    mist = {
      source  = "juniper/mist"
      version = "0.1.33"
    }
  }
}

resource "mist_device_gateway" "gateway_one" {
  name        = "gateway_one"
  device_id = "redacted"
  site_id   = "redacted"
  oob_ip_config = {
    type = "dhcp"
  }
  additional_config_cmds = []
  dns_servers = ["<IP_ADDRESS>"]
  managed = false
}

I get the following error during terraform apply
mist_device_gateway.gateway_one: Creating...
╷
│ Error: Provider produced inconsistent result after apply
│
│ When applying changes to mist_device_gateway.gateway_one, provider
│ "provider[\"registry.terraform.io/juniper/mist\"]" produced an unexpected new value:
│ .additional_config_cmds: was cty.ListValEmpty(cty.String), but now null.
│
│ This is a bug in the provider, which should be reported in the provider's own issue
│ tracker.

fixed in v0.1.34, I added  listvalidator.SizeAtLeast(1) to all additional_config_cmds (but I just saw I forgot some of them... I'll fix that in the next release)

it looks fixed in the latest release from my testing


throw a little error when there are failures

related to

https://github.com/amtoine/nu-git-manager/pull/26

Description
after https://github.com/amtoine/nu-git-manager/pull/26, i would like to add nupm test to the CI :ok_hand:
however, currently, nupm test does not return a true error when the tests fail and thus won't crash a CI :thinking:
this PR throws a real error the number of $failures is non-zero :+1:
example
let's introduce an obvious error in the tests of nupm itself
diff --git a/tests/mod.nu b/tests/mod.nu
index b20e9bc..7d0fbac 100644
--- a/tests/mod.nu
+++ b/tests/mod.nu
@@ -22,6 +22,8 @@ export def install-script [] {
             | path join
             | path exists)
     }
+
+    assert false
 }

 export def install-module [] {

running nupm test; print "all tests passed" should not print the string

before the changes: it did

Testing package /home/amtoine/documents/repos/github.com/amtoine/nupm
tests install-module ... SUCCESS
tests install-script ... FAILURE
tests install-custom ... SUCCESS

Test "tests install-script" failed with exit code 1:
2023-10-10T19:10:54.072|INF|installing package spam_script
Error:   × Assertion failed.
    ╭─[/home/amtoine/documents/repos/github.com/amtoine/nupm/tests/mod.nu:25:1]
 25 │
 26 │     assert false
    ·            ──┬──
    ·              ╰── It is not true.
 27 │ }
    ╰────

Ran 3 tests. 2 succeeded, 1 failed.
all test passed

after the changes: it does not anymore

Testing package /home/amtoine/documents/repos/github.com/amtoine/nupm
tests install-module ... SUCCESS
tests install-script ... FAILURE
tests install-custom ... SUCCESS

Test "tests install-script" failed with exit code 1:
2023-10-10T19:10:59.395|INF|installing package spam_script
Error:   × Assertion failed.
    ╭─[/home/amtoine/documents/repos/github.com/amtoine/nupm/tests/mod.nu:25:1]
 25 │
 26 │     assert false
    ·            ──┬──
    ·              ╰── It is not true.
 27 │ }
    ╰────

Ran 3 tests. 2 succeeded, 1 failed.
Error:   × some tests failed

Thanks, seems like a nice QoL touch, we should be returning an error. We might need to redesign the reporting a bit in the future.

We might need to redesign the reporting a bit in the future.

yup agree there is room for improvement :+1:

Thanks, seems like a nice QoL touch, we should be returning an error.

at least for now it will not run past a failing nupm test :pray:


[SuggestionProvider] Suggest investigating remote cache misses

If remote caching is used and there are remote cache misses, suggest investigating the misses with a link to Bazel documentation.
Contributes to #90

Example output:
Suggestion: "Investigate remote cache misses"
The following actions with cache misses took the longest to execute:
	- Action: "Copying directory external/npm/_/node_modules/date-fns [for tool]"
		Action duration: 52s
	- Action: "Copying directory external/npm/_/node_modules/date-fns"
		Action duration: 51s
	- Action: "Copying directory external/npm/_/node_modules/rxjs"
		Action duration: 46s
	- Action: "Copying directory external/npm/_/node_modules/@material-ui/core [for tool]"
		Action duration: 42s
	- Action: "Copying directory external/npm/_/node_modules/@material-ui/core"
		Action duration: 41s
Check https://bazel.build/remote/cache-remote#troubleshooting-cache-hits to learn more about how to debug remote cache misses. Increasing the cache hit rate can significantly speed up builds.
Caveats
- Only the first 5 of 6125 cache misses are listed. Try running this tool with --verbose to get more data.

Could you rebase on main and force-push please?

Rebased and addressed TODOs. PTAL.

Example output with target name caveat:
Suggestion: "Investigate remote cache misses"
The following actions with cache misses took the longest to execute:
[...]
Check https://bazel.build/remote/cache-remote#troubleshooting-cache-hits to learn more about how to debug remote cache misses. Increasing the cache hit rate can significantly speed up builds.
Caveats
- The profile does not include which target each action was processed for, although that data can help with investigating remote cache misses. It is added to the profile by using the Bazel flag `--experimental_profile_include_target_label`. Also see https://bazel.build/reference/command-line-reference#flag--experimental_profile_include_target_label


Checkpoints

Thanks for your nice work.
Could you please release the checkpoints to reproduce the results?

Thanks for your attention. However, we had deleted the checkpoints. You could follow the instructions and train the model to get similar results.


chore: upgrade ESLint

Ran the following commands:
rm -rf node_modules
npm uninstall eslint
npm install --save-dev eslint

Closes newrelic#33

:tada: This PR is included in version 0.4.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


docker-poc

Thanks for opening a Pull Request!
Here's a handy checklist to ensure your PR goes smoothly.

[x ] I signed Google's Contributor License Agreement
[ n.a.] My code conforms to Google's python style.
[ n.a.] My PR at a minimum doesn't decrease unit-test coverage (if applicable).
[ x] My PR has been functionally tested.
[ n.a.] All of the unit-tests still pass.
[ n.a] Running pylint --rcfile=pylintrc passes.

These guidelines and more can be found in our contributing guidelines.

Hold off on merging whilst I debug k8s CronJob code added after initial pull request was made.


Prometheus log errors "observedGeneration" field not declared in schema

Hello!
Description
I started seeing the errors in the prometheus-operator pod when I began to use k8s-ephemeral-storage-metrics exporter.
Logs:
level=info ts=2024-07-03T10:43:56.939201168Z caller=operator.go:1185 component=prometheus-controller msg="failed to apply prometheus status subresource, trying again without scale fields" err="failed to create typed patch object (monitoring/kube-prometheus-stack-prometheus; monitoring.coreos.com/v1, Kind=Prometheus): errors:\n  .status.conditions[0].observedGeneration: field not declared in schema\n  .status.conditions[1].observedGeneration: field not declared in schema\n  .status.shards: field not declared in schema"
level=error ts=2024-07-03T10:43:56.952912424Z caller=klog.go:126 component=k8s_client_runtime func=ErrorDepth msg="status \"monitoring/kube-prometheus-stack-prometheus\" failed: failed to apply prometheus status subresource: failed to create typed patch object (monitoring/kube-prometheus-stack-prometheus; monitoring.coreos.com/v1, Kind=Prometheus): errors:\n  .status.conditions[0].observedGeneration: field not declared in schema\n  .status.conditions[1].observedGeneration: field not declared in schema"
level=info ts=2024-07-03T10:43:57.18298472Z caller=operator.go:1185 component=prometheus-controller msg="failed to apply prometheus status subresource, trying again without scale fields" err="failed to create typed patch object (monitoring/kube-prometheus-stack-prometheus; monitoring.coreos.com/v1, Kind=Prometheus): .status.selector: field not declared in schema"

To Reproduce

AWS EKS: Kubernetes version: 1.28
Prometheus (https://prometheus-community.github.io/helm-charts/kube-prometheus-stack): helm release version: 56.13.1, application version: v0.71.2.
Ephemeral-storage-exporter: helm release version: 1.11.0, application version: 1.11.0.

ephemeral-storage-exporter helm release values:
deploy_type: DaemonSet
serviceMonitor:
    additionalLabels:
        release: kube-prometheus-stack

Help to solve the issue, please.

Hi @aitimashnov, Thank you for raising this issue and going into detail.
I attempted to recreate your environment in this PR. I ran make deploy_observability to do this.
https://github.com/jmcgrath207/k8s-ephemeral-storage-metrics/pull/101/files
Here is my test chart tests/charts/observability
The CI test did pass.
https://github.com/jmcgrath207/k8s-ephemeral-storage-metrics/actions/runs/9778835511/job/26997543635
Could you confirm you are running this CRD in your cluster? Also do you get the same error when deploying 1.10.1 of this chart?
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.71.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml

https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack/56.13.1#from-55-x-to-56-x
Thanks!

Hi! Thank you for the help.
I've restored all v0.71.0 CRDs for kube-prometheus-stack and the issue has been resolved.


feat: Implements network configuration synchronization using Pebble notices

Description

Makes use of the custom Pebble notices
Replaces fiveg_gnb_identity with fiveg_core_gnb
Bumps workload version to 1.1.0

This PR is a part of the story defined by the TE126 - Orchestrating network configuration between the Core and the RAN.
It implements a callback to a custom Pebble notice sent by the webconsole on every NetworkSlice change. When the charm receives the event, it fetches the NetworkSlices to calculate the configuration of the connected gNBs. Next, the configuration is sent to the gNBs through the fiveg_core_gnb relation data bag. The fiveg_core_gnb replaces the old fiveg_gnb_identity.
NOTES:

Before merging, the fiveg_core_gnb library should be removed and replaced by a properly fetched one.
Integration tests will fail until gnbsim-k8s charm is updated to use the fiveg_core_gnb interface

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that validate the behaviour of the software
[ ] I validated that new and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] I have bumped the version of the library

you can update the PR description to remove the NOTES


Added Entity() and AllEntities() to IHaContext

Some imorovements on Model3 api
Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (which adds functionality to an existing integration)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Additional information

This PR fixes or closes issue: fixes #
This PR is related to issue:
Link to documentation pull request:

Checklist

[ ] The code change is tested and works locally.
[ ] Local tests pass. Your PR cannot be merged unless tests pass
[ ] There is no commented out code in this PR.
[ ] I have followed the [development checklist][dev-checklist]
[ ] The code compiles without warnings (code quality chek)
[ ] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated for www.home-assistant.io

Codecov Report

Merging #474 (98caeee) into remodel (9b9598c) will increase coverage by 0.11%.
The diff coverage is 41.37%.

@@             Coverage Diff             @@
##           remodel     #474      +/-   ##
===========================================
+ Coverage    13.77%   13.88%   +0.11%
===========================================
  Files          120      122       +2
  Lines         4727     4747      +20
  Branches       716      722       +6
===========================================
+ Hits           651      659       +8
- Misses        4030     4037       +7
- Partials        46       51       +5

Flag
Coverage Δ

unittests
13.88% <41.37%> (+0.11%)
:arrow_up:

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

Impacted Files
Coverage Δ

...DaemonRunner/DaemonRunner/Service/RunnerService.cs
0.00% <0.00%> (ø)

...el3/NetDeamon.Model3/Common/HaContextExtensions.cs
0.00% <0.00%> (ø)

src/Model3/NetDeamon.Model3/Common/IHaContext.cs
0.00% <0.00%> (ø)

...del3/NetDeamon.Model3/Entities/EntityExtensions.cs
0.00% <0.00%> (ø)

...amon.Model3/Internal/AppScopedHaContextProvider.cs
68.00% <0.00%> (ø)

...del3/NetDeamon.Model3/Internal/EntityStateCache.cs
76.66% <36.36%> (-23.34%)
:arrow_down:

src/Model3/NetDeamon.Model3/Entities/Entity.cs
71.87% <50.00%> (-3.99%)
:arrow_down:

...odel3/NetDeamon.Model3/DependencyInjectionSetup.cs
64.28% <100.00%> (+9.74%)
:arrow_up:

...del3/NetDeamon.Model3/Internal/ExtensionMethods.cs
92.30% <100.00%> (+0.64%)
:arrow_up:

Continue to review full report at Codecov.

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


[BUG]

Module Version: v0.5.8
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Create a quest.
add a 2x8 Table in the quest description
Save the description. it should be fine
edit the quest description and move the column divider to the left/right, save the quest.

Alternatively, adding specific items as rewards seem to trigger the error as well. Deleting the item/rewards from the fql folder journalEntry does not fix it.
Expected behavior
The console displays the errors (or similar):
Forien's Quest Log | Quest Folder contains invalid entry. The "Test2" is either corrupted Quest Entry, or non-Quest Journal Entry.
quest.mjs:408 SyntaxError: Unexpected token \ in JSON at position 147
    at JSON.parse (<anonymous>)
    at Function.getContent (quest.mjs:404)
    at Function.get (quest.mjs:264)
    at new QuestPreview (quest-preview.mjs:15)
    at HTMLDivElement.<anonymous> (quest-log.mjs:99)
    at HTMLDivElement.dispatch (jquery.min.js:2)
    at HTMLDivElement.v.handle (jquery.min.js:2)
getContent @ quest.mjs:408
get @ quest.mjs:264
QuestPreview @ quest-preview.mjs:15
(anonymous) @ quest-log.mjs:99
dispatch @ jquery.min.js:2
v.handle @ jquery.min.js:2
quest.mjs:265 Uncaught TypeError: Cannot set property 'permission' of null
    at Function.get (quest.mjs:265)
    at new QuestPreview (quest-preview.mjs:15)
    at HTMLDivElement.<anonymous> (quest-log.mjs:99)
    at HTMLDivElement.dispatch (jquery.min.js:2)
    at HTMLDivElement.v.handle (jquery.min.js:2)
get @ quest.mjs:265
QuestPreview @ quest-preview.mjs:15
(anonymous) @ quest-log.mjs:99
dispatch @ jquery.min.js:2
v.handle @ jquery.min.js:2

Screenshots

Browser:

Chrome or Electron

Foundry Version:
0.7.9, 0.7.10
Game System:
dnd5e
Additional context
Happens with NO other modules installed.

As noted in a comment on #32 the reason is that pasting from the browser contains \n characters (and possibly other problematic characters), which makes the json parsing fail. See comments on #32 or #40 for a possible workaround.
Closing this as duplicate of #32


Allow hidden form fields

We have added a "postType" attribute on Post, which is sometimes populated by the results returned by embedly. Videos links, for instance are set to postType=video and our PostPage shows the media embedded. This field is something we don't need members setting so we hide it from them and populate it programatically.
We can't take away the "insertableBy" permission from members because they still do the mutation, but we don't want them changing the value to another that doesn't make sense.

Well, we already have hidden: true which removes the field from the form completely, so I wonder if adding the hidden type wouldn't be a bit confusing… I'm also not sure if this is a very "react-y" way of handling things. For example how are you updating this hidden field?

@SachaG we update the value our custom embedly callback, but maybe your hidden: true method is the way to go. I didn't see anything in the docs regarding it. Is this something that is set on the field's schema?

But I assume that hidden field is in a different component than the Embedly one, so I don't know if a hidden field would help?
You could look at the way the default Embedly component uses this.context.updateCurrentValues() to update one field from another. As long as a value is in this.state.currentValues it should be submitted with the form, no matter whether there is an actual form item or not.

Ok - that works. So maybe I should do a PR on nova-docs to include:
Schema > Forms Properties > hidden
😄

Yeah a PR to the docs would be great!


config: tls verification can be disabled

Codecov Report

Merging #32 into master will increase coverage by <.01%.
The diff coverage is 20%.

@@            Coverage Diff             @@
##           master      #32      +/-   ##
==========================================
+ Coverage   49.51%   49.51%   +<.01%
==========================================
  Files           4        4
  Lines         206      208       +2
==========================================
+ Hits          102      103       +1
- Misses         93       94       +1
  Partials       11       11

Impacted Files
Coverage Δ

proxy.go
19.23% <0%> (-0.77%)
:arrow_down:

server/server.go
60.78% <100%> (+0.25%)
:arrow_up:

Continue to review full report at Codecov.

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


Runs JRuby tests on travis

There were errors when tests were tried to be run on JRuby. Added fix and also enabled CI to run tests for jruby too.

@jcupitt could you check, the next PR will add truffleruby support

Hi @pftg, sorry, I wasn't sure if this was still a WIP. I'll have a look.

@jcupitt thanks for notices. I removed not relevant changes, and instead of changing the scheme of the lib, just make return nil.
Here is why:
For JRuby, it could not auto-convert array into a pointer. Because sometimes we return an array, this is not a pointer, then we need to convert array to pointer. But we do not use results anywhere, so better to return nil which will be auto-converted to the expected type.

OK, sounds reasonable.
Thank you for doing this work! I'll merge.

I noted this in CHANGELOG and credited you.


Add on_exception to run() activity method if fail() method fails

We cannot add hard fail on timeout, because in case of timed out activity we still will receive successful response from execute_activity() method, but complete() method will fail with Exception "Unknown activity", to stop decider we try to run fail() method, but since activity timed out this method will also throw same Exception "Unknown activity". Raising Exception or returning "False" as result will not make decider to stop working. We decided to call on_exception() method if activity failed to call fail() method so we might find Exception in sentry since there was no logging when fail() method fails.

@xethorn are you able to review?

master branch is no longer used, can you rebase with branch-1.0? this will make the Github actions run.

Two additional comments:

master branch is no longer used, can you rebase with branch-1.0? this will make the Github actions run.
Please add some tests.

Tests added, target branch is branch-1.0

LGTM, thanks!


Serialize to Vec<serde_test::Token>

I wanted to write a unit test that would check all JSON fields for following camelCase.
I thought this would be very easy if I could serialize an example value as a raw stream of Serde values and check their contents directly, without having to recursively visit a tree structure.
serde_test::assert_tokens almost does this, except there's no way to convert a value into tokens.
I wish it could be assert_eq!(tokens(value), vec![...]).
Before this, at one point I considered having a trie with Serde values instead of string characters for storing a large number of similar serialized values and deduplicating them without paying the full cost of deserialization every time.
Is there something that does this? Are these reasonable things to want at all?

This functionality is not provided by serde_test, but Serializer impls defined outside of serde_test can produce Vec<serde_test::Token> as output. Example: https://docs.rs/serde_assert/0.5.0/serde_assert/struct.Serializer.html

Thank you!


xref with format pdf, txt, .. do not work properly in DITA OT 3.x

Expected Behavior

I have a dita Topic that contains file references to different formats (txt, pdf, docx, zip).
The files are located in the same Directory as the dita Topic file.
When transforming this Topic to xthml I would expect that the files are also copied to the Output Directory.
According to the spec at least pdf and txt should be supported:
https://docs.oasis-open.org/dita/dita/v1.3/errata01/os/complete/part1-base/langRef/attributes/theformatattribute.html
<!DOCTYPE dita PUBLIC "-//OASIS//DTD DITA Composite//EN" "ditabase.dtd">
<dita>
  <topic id="id_40a72787efc94c2a8bb6e60f8cac2b2c">
	<title>Test</title>
	<shortdesc>Test format attribute with zip, pdf, ...</shortdesc>

<xref href="Test.pdf" format="pdf">pdf file</xref>

<xref href="Test.zip" format="zip">zip file</xref>

<xref href="Test.docx" format="docx">docx file</xref>

<xref href="Test.txt" format="txt">txt file</xref>

  </topic>
</dita>

Actual Behavior

With DITA OT 2.4 all files are copied to the Output Directory and the links work correctly.
With DITA OT 3.x the files are NOT copied to the Output Directory. Consequently the links do not work.
Possible Solution

Steps to Reproduce

Copy of the error message, log file or stack trace

Environment

DITA-OT version: dita-ot 3.0.2
Operating system and version:
Windows
How did you run DITA-OT?
(dita command, Ant, startcmd, oXygen, other editor, CMS, etc.)

//Xhtml with dita-ot 3.0.2
"C:\dita-ot-3.0.2\bin\dita" --input=Test.ditamap --output=out\xhtml302 --format=xhtml --temp=temp302 --logfile=log302.xml --clean.temp=no --verbose

//Xhtml with dita-ot 2.4
"C:\\dita-ot-2.4\bin\dita" --input=Test.ditamap --output=out\xhtml24 --format=xhtml --temp=temp24 --logfile=log24.xml --clean.temp=no --verbose

Transformation type:
xhtml

Tested the problem with DITA OT 3.0.4, it's still there. In this case the ".job.xml" has no reference to the "Test.pdf" whatsoever.

Similar problem when in the DITA Map I have a reference to the PDF (tested using DITA OT 3.0.4):
    <topicref navtitle="PDF TITLE" href="tasks/flowers.pdf" format="pdf"/>

The .job.xml has a reference to it:
    <file src="file:/D:/projects/eXml/test/dita/transform/tasks/flowers.pdf"
        uri="tasks/flowers.pdf" path="tasks\flowers.pdf"
        result="file:/D:/projects/eXml/test/dita/transform/tasks/flowers.pdf" format="pdf"/>

but the "copy-files" target only copies images and html files by calling the "copy-image" and "copy-html" targets.
What it should actually do would be to maybe merge the "copy-html" and "copy-images" to a target called "copy-non-dita" and copy all non-DITA resources in the same way to the output folder.

Problem persists in DITA OT 3.1. Referenced non-DITA and non-HTML files are no longer copied to the output folder.

Same problem with DITA OT 3.2. In "dita-ot-3.2\plugins\org.dita.base\build_preprocess_template.xml" the "copy-files" target depends on "copy-image" and "copy-html", how about if it would depend on a "copy-non-dita" target which copies all resources in the job.xml which do not have DITA or DITAMap format.
Otherwise we would need to add extra targets like "copy-pdf", "copy-zip" and so on.

@jelovirt what's your opinion on this?

The most simple solution would probably be to copy all resources that are not dita, ditamap, or ditaval.

Then it would need to be not(dita | ditamap | ditaval), i.e. a custom language. Need to think what would be an alternative way to solve that.

Something like:
     <ditafileset format="dita" exclude="true"/>

which would mean copy all resources excluding the "dita" ones.
And afterwards we would join the "copy-image" and "copy-html" targets to a single "copy-other" target.


intranet redirector: fixed

now google has   added your patch (intranet-redirect-detector)
its redundant and braks compiling
best regarts

The current revision of that patch in develop does not break compiling on Chromium 57, because I am running on it right now. Please check your build enviornment thorougly.


Dependency Monitoring

As an user of the repo
I expect the terraform provider to be up to date, if a new version is released I expect a dependabot/renovate PR to be raised to update the codebase.
So that the modules stay up to date
The terraform provider for GitHub is out of date for example.

Jahir has configured Dependabot and added the repo to renovate.


RWD - Adjustments for the product slider feature on the homepage

The original project of the feature:

The feature applied currently on the homepage:

Please add these improvements:

change the title to "New Luma Yoga Collection"
ass "see all in the collection" link
reduce padding in the bottom, adjust the height of the widget as it's set on the project (420px);
apply only 1 raw, also in the mobile, products shouldn't be listed in the form of the grid with multiple rows;
add slider capabilities so as a Customer I should be able to slide the feature to the left/right and see 4 more products
add "almost visible products" to the left and right of the slider (they suggest the slider capabilities)

@Aekal could you take care of this one?

@Aekal could you add slider to the feature?

@filrak please take care of this one Ok?

@pkarw ok ;)

@karolbzik the slider works like in the gif,   "see all in the collection"  link remained and the task is ready ;)


Hangs long after progressbar gets to 100%

Using either cog_translate() or the command line, large files (2GB+) take an extremely large time to convert or don't convert at all and stall the current process.
There is no indication of progress since it hangs after it hits 100%.
Memory on machine and HD space are not maxed out so it's probably related to memory management within python but I'll have to do some more digging.

Settings are as follows:
cog_translate(
src_path=input_filepath,
dst_path=output_filepath,
dst_kwargs=cog_profiles.get('deflate'),
indexes=None,
nodata=None,
alpha=None,
overview_level=6,
overview_resampling='average',
config={'NUM_THREADS': 'ALL_CPUS', 'PREDICTOR': '2'}
)

Hi @mitch3x3,
I should add some logging but basically the progressbar is only for a first iteration where we take the input data and create an intermediate GeoTIFF with internal tiles. In a second iteration we add overview and compression but sadly there is no progressbar for this part.
I'll open a new issue referring this one


Implement PEP 660 allowing both "strict" and "lax/loose" approaches

This PR is an attempt to implement editable installs (PEP 660) in such a way that it allows for both “strict” and “loose/lax” editable installations. The overall approach, and the rationale behind which “editable mode” is picked by default is discussed in https://discuss.python.org/t/pep-660-and-setuptools/14855/2.
Summary of changes

Starting with the existing PoC (https://github.com/pypa/setuptools/pull/3082), re-use bdist_wheel and avoid re-implementing wheel logic
Add namespace_packages handling (based on the existing develop command)
Add an implementation for the “loose/lax” mode based on static .pth files

Target: projects where it is relatively safe to use that approach

For example, projects using the src-layout.

Add an implementation for the “loose/lax” mode for the projects that cannot be safely handled via .pth files.

This implementation is based on a MetaPathFinder and offers the following improvements over the existing implementation (develop command):

Capacity to handle more complex package_dir mappings
Avoid accidental/unrelated folders and Python files in the project root to be added to sys.path

As a trade-off (which seems to be reasonable), this implementation will not automatically pick up new “top-level” modules or packages, but will handle any new file contained by existing package folders.

Add an implementation for the “strict” editable mode based on a tree of file links (symlinks are used when available, hardlinks are used otherwise).

(As always) this task ended up being tricker than I was expecting, so I also divided this PR in a series of smaller PRs that can be reviewed independently (but only if the reviews think that reviweing separated PRs can help). Let me know if there is anything different I could do to facilitate the review.
Note, however, that this division was an afterthought, so between “sub-PRs” there might be transient code/changes that are not part of the end result.

Part 1) https://github.com/abravalheri/setuptools/pull/9
Part 2) https://github.com/abravalheri/setuptools/pull/3
Part 3) https://github.com/abravalheri/setuptools/pull/4
Part 4) https://github.com/abravalheri/setuptools/pull/5
Part 5) https://github.com/abravalheri/setuptools/pull/6
Part 6) https://github.com/abravalheri/setuptools/pull/7
Part 7) https://github.com/abravalheri/setuptools/pull/11
Part 8) https://github.com/abravalheri/setuptools/pull/10

Side note
For the sake of not increasing even more the size of the change, I am currently not providing any news fragment or docs for the implementation. Depending on how the feedback/review go, I would provide that in a later stage.
Closes #2816
Pull Request Checklist

[x] Changes have tests
[ ] News fragment added in changelog.d/.
(See documentation for details)

FAQ about the implementation:
Why is the implementation much more complex than the previous PoCs
This implementation tries to handle the implicit requirement that came up in the previous discussions: allow the user to chose which trade-off makes more sense for the use case in hands. Naturally, supporting multiple strategies instead of only one increases code size/complexity
Moreover, the previous PoCs don’t seem to be able to handle arbitrary mappings in package_dir and all the flexibility it brings to a package.
Why editables is not used?
The editables library currently seems to focus in 2 use cases: a static .pth for the top-level package or a strict MetaPathFinder that handles a specific list of modules, (I might be wrong) but neither of which seems to be able to handle the use case I identified as required for this implementation: having a replacement for arbitrary directory symlinks (which are not available on Windows).
There are 2 “asides”: 1) I don’t know if the current implementation in editables for the strict scenario can handle what in setuptools we call package_data, 2) I wanted to avoid the whole debate about “acyclic” build dependency graph…
What happens to data_files, headers, binary extensions, etc?
These files should be available in the installation but are not “editable” (in accordance with the existing spec). There is some discussion starting here: https://discuss.python.org/t/pep-660-and-setuptools/14855/6.
Why a link tree is used for the strict mode instead of a MetaPathFinder?
The link tree allows the correct handling of package_data.
Which is the default editable mode and why?
Please refer to the discussion in https://discuss.python.org/t/pep-660-and-setuptools/14855/2.

Downsides/short-comings of the proposed implementation

It is fairly complex
It uses wheel and bdist_wheel under the hood, which do not officially provide an stable API.
o	The alternative would be duplicating the same logic inside of setuptools, which I would like to avoid… Since there is some dialog towards vendoring wheel and/or moving bdist_wheel directly to the setuptools repository, so we comply with the acyclic requirement of PEP 517, it might make sense to endure this non-ideal situation for now…
In the case of flat-layout projects + the “lax/loose” editable mode, new top-level packages/modules will not be automatically picked up (but the nested ones will). This seems to be a reasonable trade-off to avoid having things like setup.py, noxfile.py, docs, tests, notebooks, examples, … accidentally added to sys.path.
The editable install may fail for projects overwriting build_py with a custom class that does not derive from setuptools.command.build_py.build_py (or that considerably change the way this command works internally).

Updates:

In abravalheri/setuptools#10 I changed the MetaPathFinder approach by adding an auxiliary PathEntryFinder, this way implicit namespaces can be support dynamic path computation as required by PEP 420.
The following discussions might be relevant:

Packaging - pep-660-and-setuptools
Users - how-to-implement-namespace-packages-via-import-hooks

pip is currently investigating providing a UI for config_settings - https://github.com/pypa/pip/pull/11059.
The syntax supported is --config-settings KEY=VALUE.
This can be used in the context of editable installs to choose which mode the user prefers for the editable install, for example as:
pip install -e . --config-settings mode=strict

Here mode and strict are merely illustrative. It is open for bike shedding and we can choose the words we find more appropriate (e.g. editable-mode=pre-flight).
Just let me know if there is a clear preference and I will implement it accordingly.

@jaraco @pganssle do you have any opinion about the approach taken here to implement PEP 660?

Hi Anderson. Thanks for all the hard work on this effort. I'm really excited to see the progress.
Thanks also for providing an overview of the approach and its downsides.
I haven't reviewed the implementation specifically, but based on the description you've provided, it sounds like you've found a fairly robust solution. If you're even moderately happy with it, I'm happy to move forward with it.

Thank you very much Jason. I will wait a few days to see if Paul has any objection, otherwise I will go ahead and follow a very similar process that I did for PEP 621 and ask for feedback from the community (maybe using a beta version?).

Any idea when this will make it into a release?

Any idea when this will make it into a release?

It will. This was the initial proof of concept to see if the other maintainers agree with the approach.
I am refining the implementation now to make it more appropriate for a release.
Then the plan is to open for the community to test and then an actual release.

@theo-brown, please feel free to participate of the preliminary round of tests :)


issue on efficient_intrinsic_gridview

while use  efficient _intrinsic_gridview  package, i faced renderflex overflow problem, where same as faced on gridview.builder widget.
EfficientIntrinsicGridView(
              children: [
                for (int index = 0; index < services.length; index++)
                  serviceContainer(
                      services[index].imageURL, services[index].name, index)
              ],
              intrinsicController: intrinsicController,
              crossAxisCount: 3,
 ),

Widget serviceContainer(String image, String name, int index) {
   return Container(
     margin: const EdgeInsets.only(right: 20),
     padding: const EdgeInsets.all(10.0),
     decoration: BoxDecoration(
       color: Colors.grey.shade100,
       border: Border.all(
         color: Colors.blue.withOpacity(0),
         width: 2.0,
       ),
       borderRadius: BorderRadius.circular(20.0),
     ),
     child: Column(
       children: [
         Image.network(
           image,
           height: 45,
         ),
         SizedBox(
           height: 20.0,
         ),
         Text(
           name,
           style: TextStyle(fontSize: 15),
         )
       ],
     ),
   );
 }
}

It would be better if you had provided a screen shot of the issue.
Also, it would be better it you had provided on which version this issue happened??

I have solved the issue, and in the current new release of the package, this renderflex error will not come.
Thanks for filing the issue, without you, I might never have figured out this bug. :-)
You might check and verify the fix, once verified this issue could be closed.


Format not respecting my indentation settings

I have my settings to indent 2 spaces instead of 4. When I format using twig-language-2, it indents all code with 4 spaces. Is this a bug or a something I can configure?

Note I ave this in my setting:
"editor.insertSpaces": true,
"editor.tabSize": 2,

That's interesting. I began to test it and I ran into the same problems as you. There is a chance that Twig Language 2 is just not respecting the editor settings but I will try to fix it ASAP. Thanks for submitting the issue 👍

Just add this to your editor config:
"twig-language-2.tabSize": 2,

Hi @mblode I am using v. 0.9.2
I have added "twig-language-2.tabSize": 2, as you mentioned above and still it is formatting with tabs instead of spaces.

Hi @mblode I am using v. 0.9.2
I have added "twig-language-2.tabSize": 2, as you mentioned above and still it is formatting with tabs instead of spaces.

Same issue here

Same here

@JSchreff I found that on my own, too. However, this plugin STILL doesn't respect my VS Code local settings, NOR the local .editorconfig settings. I have to manually change these settings in Twig Language 2 extension to match.
This is a non-starter for me - how are we supposed to enforce code standards on our team if it requires everyone to manually adjust this extension's settings and cross their fingers that they did it right? It's wild to me that the plugin is so opinionated and doesn't even follow its own UI promise ("Tab Size: 0 will default to the editor's tab size.").

I cant see any way to stop this extension using tabs. It doesn't seem to listen to the   "twig-language-2.indentStyle": "space", setting

I managed to solve it by removing the extension Beautify by HookyQR v1.5.0. It was conflicting with Twig Language 2.

I struggled with this, too.  My findings, in case it helps anyone else:

Twig Language 2 does not respect my .editorconfig file (it's in my project root, and it has root = true set in it).
BUT, it does seem to respect my editor.tabSize setting in VS Code.

To test:

I changed editor.tabSize to a weird value that absolutely couldn't come from any other settings or config files (3).
I set twig-language-2.indentStyle to space.
I changed twig-language-2.tabSize to its default (0).
Then, I restarted VS Code, and did "Format Document" on a twig file -- all my indentations became 3 spaces.

Anyway, to get things the way I actually wanted them to be! --

I have twig-language-2.formatting enabled, so I can use the "Format Document" thing in the context menu.
Twig-language-2 settings:

    "twig-language-2.indentStyle": "space",
    "twig-language-2.tabSize": 2,

I needed to make sure NOT to set "Indent Level" to 2 -- I think I did that when I was flailing around trying different settings, and, I don't really understand the purpose of it, but it seems to pile onto the regular tabSize setting?

in other words, the following setting was "bad" and I removed/reset it:

  "twig-language-2.indentLevel": 2,

As unipro-LeighMason indicated, any time I change any of these settings, I have to restart VS Code (even though it doesn't prompt me to do so).

✏✏✏
Maybe the help text under "Twig-language-2: Tab Size" could say:

0 will default to the editor's tab size (editor.tabSize). This formatter will not use the indent_size setting declared in .editorconfig files.

And maybe the help text under "Twig-language-2: Indent Style" could say:

Choose to indent using tabs or spaces. This formatter will not use the "Editor: Insert Spaces" setting, nor will it use the indent_style setting declared in .editorconfig files.

Anyway, thanks for the extension, I'm very glad to have it!


Add CP and backup acknowledgement (boomerang client) code samples and README doc

Added code samples and README documentation for CP structures.

Added code samples and README documentation for backup acknowledgement feature.

Windows test PASSed.

Windows test PASSed.

Windows test FAILed.

Linux test FAILed.

Linux test FAILed.

Windows test PASSed.

Linux test PASSed.

Windows test PASSed.


[Java] Added parse method to enums to convert from strings

@sigansky,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

This change should also update golden files.

Yes, working on this.

In reply to: 321634791 [](ancestors = 321634791)


Where is the emulator installed?

I'm using the latest release version 3.5.27, the emulator works fine in the first run, but I can't find anything like a shortcur on my desktop or in the start menu. So I have to click the installer every time I want to run the emulator, and that is slow. Where is the emulator installed on my Windows 10, can I use a shortcut? Thanks.

Hi @targetnull This is a regression in the latest build. We're prepping a recovery build and will have a patch out soon.

Happened to me too, but it is located in:
C:\Users\Mohamed\AppData\Local\botframework\app-3.5.27
I right clicked on botframework-emulator.exe and add it to start menu, for now.

I tried that and when I ran the emulator I got:
write EPROTO 101057795:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:c:\jenkins\workspace\electron-win-x64\vendor\node\deps\openssl\openssl\ssl\s23_clnt.c:794:

I've been giving this thing a good college but it no work... Pointing to c:\jenkins... huh?

@LlewellynJones Pay no mind to that file path. It's just debugging information encoded into the Electron binary at the time it was built.
Your error message suggests you are able to launch the emulator, but are getting this error when trying to send your bot a message. Is this what you're experiencing?

Okay, I see what I was doing, connecting to https://... not http://... and
my app didn't have ssl enabled. I'm okay with running it from the appdata
folder for now.
Cheers,
James
my own book http://myownbook.org
On Thu, May 4, 2017 at 6:48 PM, Eric Anderson<EMAIL_ADDRESS>wrote:

@LlewellynJones https://github.com/LlewellynJones Pay no mind to that
file path. It's just debugging information encoded into the Electron binary
at the time it was built.
Your error message suggests you are able to launch the emulator, but are
getting this error when trying to send your bot a message. Is this what
you're experiencing?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/BotFramework-Emulator/issues/166#issuecomment-299352925,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJxgz9zlyqLP2LX385INFMFZJlXOk_heks5r2n_lgaJpZM4NHAVd
.

We released emulator version 3.5.28 today, with a fix for the "no shortcut" bug. Direct download link: https://github.com/Microsoft/BotFramework-Emulator/releases


Can not find the Data source and Service selection

Hello Stefan,
Thanks for your answer on another issue. I could not find the selection as you have shown in your guidance.
After selecting: ABAP Environment on SAP Business Technology Platform, I do not have the option to choose default_abap-trial.
Could you please help? Thanks.

Hello again,  I got another error when generate the query. Could you please help to check? Thanks.

Hey,
in the exercises we use SAP Business Application Studio, you are using Visual Studio Code.  You can find more information here: https://help.sap.com/viewer/17d50220bcd848aa854c9c182d65b699/Latest/en-US/99061814ead548808d539861fb27bafb.html.
Regarding the second screenshot, at which exercise and step do you get this error message?

Hello Stefan,
Sorry for my late response. I have tried to use SAP BAS but I could not go further, that's why I switch to Visual Studio Code:

Regarding the second screenshot, I have tried to replicate the issue, but now, I only got this error in the terminal, the Internet explorer is not even pop up.
Would it help you with the below screenshot?

Thanks for your support, I am pretty new to VS code and Fiori, and it is pretty hard to follow the OpenSAP + Github as the data sources is not in sync (in the Github and in openSAP course, you are using different data sources). Thank you.

Hey,
regarding the error message in your first screenshot, did you log on to Cloud Foundry? This is described here: https://github.com/SAP-samples/fiori-elements-opensap/blob/9e634e9446302a698cbfc8da364b6d69af8266d3/week2/unit4.md#step-1-ensure-you-are-logged-in-to-cloud-foundry. Could you perform this step and then try again?
Regarding the second error, it's hard to tell without knowing which exercise you did and at which step you are currently. In the majority of the cases the participants accidentally missed a step of the exercise which then led to the issue. I also see you named the project "project1" and not like suggested in the exercise. It could be helpful if you start over with the current app you are building and carefully check, that you do all the described steps. For most participants that was the quickest solution.

Closing due to inactivity.


feat: Auto rotate the main configuration token

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.06% :tada:

Comparison is base (33452e2) 69.23% compared to head (58cb6b9) 69.30%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the GitHub App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             main       #4      +/-   ##
==========================================
+ Coverage   69.23%   69.30%   +0.06%
==========================================
  Files          14       14
  Lines         884      886       +2
==========================================
+ Hits          612      614       +2
  Misses        232      232
  Partials       40       40

Flag
Coverage Δ

unittests
69.30% <100.00%> (+0.06%)
:arrow_up:

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

Files Changed
Coverage Δ

path_config.go
86.95% <ø> (ø)

entry_config.go
71.42% <100.00%> (+3.00%)
:arrow_up:

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


How can i add a mouse in the OS

please help !!

Well, PS2 Mouse is a work in progress ...   See this picture ... the mouse pointer is that yellow rectangle in the middle of the screen ,,, it is able to click on the buttons in the taskbar, so, buttons move down and up. That fake 3d effect.

I do not fully initialize the ps2 embedded driver at the kernel initialization. I only initialize the ps2 keyboard. To test the ps2-mouse i'm following these steps: [control+f9] to enter into a kernel mode embedded shell, type the command 'ps2-qemu', [control+f10] to go out of the shell. ... in the ring3 shell we can type 'wsq' to initialize the GUI ,,, and after that, [shitft+f12] to enable the mouse usage.

Ok i will try to add the current mouse, but one more request please make a documentation on the command an KEYS for the OS, please..

I'm taking notes ... and i will build a documentation on the commands for all the command interpreters in the system.
One thing about the keys: The system has support for only one keyboard layout for now. It's the brazilian keyboard. pt-br. This standard is called 'abnt2'.

Ok i will try to add .., an how can I close the current window, Because i tried to change some code in the ' wn.c ' an now it close the whole desktop 😭..

please help !!

You are right. The mouse thing is a work in process.
The ps2 mouse is working only when the system is running on qemu without kvm. Type ./runnokvm and when in the desktop environment, press the combination [Control + F12].


Do not add 'FieldKey*'  field when they are void.

Set the default field key to "", eg. :
logrus.FieldKeyLevel:   ""

it will create an error format JSON string as "":"info". So add FieldKey length checking before do json.Marshal(data).
It alse can using the default key-name that defined in previous:
        const (
            FieldKeyMsg   = "msg"
            FieldKeyLevel = "level"
            FieldKeyTime  = "time"
        )

But I think developer who set these fields to "" wants to hide or conceal the key-value that definde in default JSONFormatter.
Sorry for my poor English :D

These FieldKey* are constants these values can not be changed. I don't think we need this fix.

If you really need something soooo specific I think the way to go is to create your own Formatter for your specific needs. In this PR we are linking the logic between showing/not showing certain logrus-populated properties with the fact that the user changes the name of them to "empty". I honestly wouldn't do it.

Thank you, but in order to clean up older PRs and issues (this PR hasn't had any activity in ~ 1 year), I'm going to close this PR. Feel free to re-open with an updated branch if this is still of interest. PS: I'm sorry this sat for so long.


⚠ HawkeUno has degraded performance

In 210d422, HawkeUno ($UNO) experienced degraded performance:

HTTP code: 403
Response time: 4037 ms

Resolved: HawkeUno performance has improved in e953c6e after 6 minutes.


fix(twitch): Fix darkTheme json

It gave the error "Invalid JSON: frappe is not a valid JSON literal" because of a missing quotation mark.

Thanks for the fix


filter upstream depr warning

fix an instability seen in bleeding-edge CI that we have no control over

pre-commit.ci failures are adressed in #132


6.4.47 is out

finally a new release after a month - new beta 6.4.47 is out now

Commit 5da1c4d adds 6.4 directories, beta v6.4.47. GH action to build and push to container registries can be monitored at https://github.com/goofball222/unifi/actions/workflows/build-6.4-beta.yml


Interaction results filtering

Noticed a few issues

[ ] the filter gene option should maybe be disabled if there's only one gene
[ ] approval rating and indication seems to include blank options
[ ] don't include every possible float for the score column -- instead use buckets or cutoffs

more or less resolved in #317


Sqlparser parseMultiple doesn’t split some stuff correctly

Hey , thanks for this package but i would love to ask, the parseMultiple function is it meant to split the statement or we should handle that our selves ? And if yes what us the accuracy please.
I got stuck somewhere for a while, it's very basic stuff and it didn't split it well so I got confused:
CREATE TABLE IF NOT EXISTS "employees" (
	"employee_id"	INTEGER,
	"department_id"	INTEGER NOT NULL,
	"employee_name"	TEXT(100) NOT NULL,
	PRIMARY KEY("employee_id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "projects" (
	"project_id"	BIGINT AUTO_INCREMENT,
	"employee_id"	INT NOT NULL,
	"project_title"	CHAR(255) NOT NULL,
	PRIMARY KEY("project_id", "employee_id")
);

Please tell me how accurate the splitting In parseMultiple is ,thanks .
So I can know which way to go

Chatgpt wrote this. The max one
List splitSqlStatements(String sql) {
List statements = [];
StringBuffer buffer = StringBuffer();
int parenCount = 0;
String? encloser;
bool inSingleLineComment = false;
bool inMultiLineComment = false;
String? dollarQuoteTag;
for (int i = 0; i < sql.length; i++) {
String char = sql[i];
String nextChar = i + 1 < sql.length ? sql[i + 1] : '';
String? prevChar = i > 0 ? sql[i - 1] : null;
// Handle comments
if (!inSingleLineComment && !inMultiLineComment && encloser == null && dollarQuoteTag == null) {
  if (char == '-' && nextChar == '-') {
    inSingleLineComment = true;
  } else if (char == '/' && nextChar == '*') {
    inMultiLineComment = true;
  }
} else if (inSingleLineComment && char == '\n') {
  inSingleLineComment = false;
} else if (inMultiLineComment && char == '*' && nextChar == '/') {
  inMultiLineComment = false;
  buffer.write(char); // Write '*' of '*/'
  buffer.write(nextChar); // Write '/' of '*/'
  i++; // Skip '/'
  continue;
}

// Handle enclosers (', ", `, [, ], and PostgreSQL $$)
if (!inSingleLineComment && !inMultiLineComment) {
  if (dollarQuoteTag != null) {
    if (sql.substring(i).startsWith(dollarQuoteTag)) {
      buffer.write(dollarQuoteTag);
      i += dollarQuoteTag.length - 1;
      dollarQuoteTag = null;
      continue;
    }
  } else if (encloser != null) {
    if (char == encloser) {
      if ((encloser == "'" || encloser == '"') && nextChar == encloser) {
        // Escaped quote by doubling, skip the next character
        buffer.write(char); // Write the first quote
        buffer.write(nextChar); // Write the second quote
        i++; // Skip the next quote
        continue;
      } else {
        encloser = null;
      }
    }
  } else {
    if (char == "'" || char == '"' || char == '`' || char == '[') {
      encloser = (char == '[') ? ']' : char;
    } else if (char == '$' && nextChar == '$') {
      // Handle dollar-quoted strings (PostgreSQL)
      RegExp dollarTagExp = RegExp(r'\$[^\$]*\$');
      Match? match = dollarTagExp.matchAsPrefix(sql.substring(i));
      if (match != null) {
        dollarQuoteTag = match.group(0);
        buffer.write(dollarQuoteTag!);
        i += dollarQuoteTag!.length - 1;
        continue;
      }
    }
  }
}

// Handle parentheses
if (!inSingleLineComment && !inMultiLineComment && encloser == null && dollarQuoteTag == null) {
  if (char == '(') {
    parenCount++;
  } else if (char == ')') {
    if (parenCount > 0) {
      parenCount--;
    }
  }
}

// Write character to buffer
buffer.write(char);

// Check for statement terminator
if (char == ';' && !inSingleLineComment && !inMultiLineComment && encloser == null && dollarQuoteTag == null && parenCount == 0) {
  statements.add(buffer.toString().trim());
  buffer.clear();
}

}
// Add any remaining SQL as the last statement
if (buffer.isNotEmpty) {
String remaining = buffer.toString().trim();
if (remaining.isNotEmpty) {
statements.add(remaining);
}
}
return statements;
}
What do u think?

We're already doing something much more sophisticated than splitSqlStatements to tokenize the input source. So the tokenizer is well aware of the semicolon, but the parser chooses to ignore it. The problem is that we don't support this syntax: PRIMARY KEY("employee_id" AUTOINCREMENT) (since SQLite doesn't support autoincrement in table constraints either). Since we want to be able to report multiple syntax errors instead of stopping at the first one, we generally fast-forward to the next semicolon if an error happens, allowing us to parse the next statement. When parsing CREATE TABLE statements however, we had an additional piece of logic that would try to skip to the next comma for errors in a column definition or table constraint. The intention here was to parse subsequent column definitions / table constraints as part of the same CREATE TABLE statement.
In this case, skipping to the next comma at the place of the syntax error actually skips over the semicolon, so we find ourselves in the middle of the second statement and pick it up there. So the parser thinks you wrote
CREATE TABLE IF NOT EXISTS "employees" (
	"employee_id"	INTEGER,
	"department_id"	INTEGER NOT NULL,
	"employee_name"	TEXT(100) NOT NULL,
         -- < skipped invalid syntax >
	"employee_id"	INT NOT NULL,
	"project_title"	CHAR(255) NOT NULL,
	PRIMARY KEY("project_id", "employee_id")
);

It's worth noting that this is not fundamentally incorrect. There are legitimate syntax errors reported by the parser here, and the AST for erroneous inputs will always be generated on a best-effort basis. Recovering from parsing errors is more art than science.
In the linked commit, I've improved the error recovery to consider nested scopes of error recovery (so despite the error inside the table definition, we remember that we're in a statement and don't skip into the middle of the next one). The results are pretty great, only the primary key from the first statement and the AUTO_INCREMENT constraint in the first column for the second table are missing due to syntax errors.

Visualized problem

By the way, if it's really important that you skip statements at semicolons, you can use the tokenization API for that and then parse statements one at the time. Again, all bets on the returned AST are off if there is a parsing error, we just try to make stuff up to recover from errors.
import 'package:collection/collection.dart';
import 'package:sqlparser/sqlparser.dart';
import 'package:sqlparser/utils/node_to_text.dart';

void main() {
  const source = '''
CREATE TABLE IF NOT EXISTS "employees" (
	"employee_id"	INTEGER,
	"department_id"	INTEGER NOT NULL,
	"employee_name"	TEXT(100) NOT NULL,
	PRIMARY KEY("employee_id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "projects" (
	"project_id"	BIGINT AUTO_INCREMENT,
	"employee_id"	INT NOT NULL,
	"project_title"	CHAR(255) NOT NULL,
	PRIMARY KEY("project_id", "employee_id")
);
''';

  final engine = SqlEngine();
  final tokens = engine.tokenize(source);
  final statements = tokens.splitAfter((t) => t.type == TokenType.semicolon);

  for (final statement in statements) {
    if (statement case [final first, ..., final last]) {
      final parsed = engine
          .parse(source.substring(first.firstPosition, last.lastPosition));
      print('Found ${parsed.rootNode.toSql()}, errors: ${parsed.errors}');
    }
  }
}

Hmm. Thanks for your response. I think that makes sense especially the statement about more art than science, I get that.
Also,  I would  love to ask. Does this package provide a way to split multiple sql statements more than semicolon ?
What do you recommend, I'm not an expert in sql tbh and I need the best possible solution
Should I stick to the script gpt came up with or can the package handle It more efficiently?

What is the task you're trying to achieve here? Splitting a string of SQL statements by the statement? If so I'd use the tokenizer and then the snippet from my previous comment (splitting on TokenType.semicolon).

Yes, my intention is to split not parse

Thank you.
Im going with this
`import 'package:collection/collection.dart';
import 'package:sqlparser/sqlparser.dart';
void main() {
const source = '''
CREATE TABLE IF NOT EXISTS "employees" (
"employee_id"    INTEGER,
"department_id"    INTEGER NOT NULL,
"employee_name"    TEXT(100) NOT NULL,
PRIMARY KEY("employee_id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "projects" (
"project_id"    BIGINT AUTO_INCREMENT,
"employee_id"    INT NOT NULL,
"project_title"    CHAR(255) NOT NULL,
PRIMARY KEY("project_id", "employee_id")
);
-- Comment with semicolon inside
INSERT INTO "employees" ("employee_id", "department_id", "employee_name") VALUES
(1, 2, 'John Doe; CEO'),
(2, 3, 'Jane Smith; CFO');
''';
final statements = splitSqlStatements(source);
for (var i = 0; i < statements.length; i++) {
print('Statement ${i + 1}:\n${statements[i]}\n');
}
}
List splitSqlStatements(String source) {
final engine = SqlEngine();
final tokens = engine.tokenize(source);
// Split tokens into groups ending with a semicolon
final tokenGroups = tokens.splitAfter((t) => t.type == TokenType.semicolon);
final statements = [];
for (final group in tokenGroups) {
if (group.isEmpty) continue;
final firstToken = group.first;
final lastToken = group.last;

// Extract the original text corresponding to the token range
final statementText =
    source.substring(firstToken.span.start.offset, lastToken.span.end.offset).trim();

if (statementText.isNotEmpty) {
  statements.add(statementText);
}

}
return statements;
}`

Yo my man I noticed if you put a language that's not sql ...it tokenizes non stop

We can't really do too much with a non-SQL input. Are you hitting an infinite loop? If so, it would be good to have the exact input so I can try to reproduce this.

Yeah I know but I expected an error.
I think this should work
,,,
class Screen extends ConsumerStatefulWidget {
const Screen({super.key});
@override
ConsumerState createState() => _ScreenState();
}
,,,

I have another request that's completely unrelated I don't know If you could just take a look at it, would love your opinion, it's on permissions
Okay so I'm trying to build an Android app with flutter that needs to create a PDF file in public external storage, specifically at the path: /storage/emulated/0/Mypdfs/my_pdf.pdf.//an example

For Android 10 and below, can I simply use READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE permissions to create and write the PDF in public storage?

For Android 11 and above, is MANAGE_EXTERNAL_STORAGE really necessary for just creating a PDF, or can I use READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE permissions to save it? I know Google has strict policies about MANAGE_EXTERNAL_STORAGE for publishing apps, so I want to avoid it unless absolutely needed.

I'm trying to publish the app, I'm stuck on this

Yeah I know but I expected an error.

The intended behavior is that:

SqlEngine.tokenize throws a CumulatedTokenizerException when encountering invalid tokens.
SqlEngine.parse does not throw exceptions but instead reports all tokenizer and parsing errors through ParseResult.errors.

I've added a testcase for this in b2a0d50252be3de8bc0f4cc04bc2ecdbb7e044ca and it seems to work as intended.
I can't really help you with the other question, I think the common approach is to let users pick a file to write to which will give your app access to that temporarily. Setting your target SDK to Android 10 might work, but it's possible that Google will reject your app from the Play store. Searching for this on StackOverflow will probably give you more conclusive results.


feat: plumb context further into diff and solver packages

This is continuation of the effort started in 7b85526.

Codecov Report

Merging #373 (08d9458) into main (32d78d5) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #373   +/-   ##
=======================================
  Coverage   54.19%   54.19%
=======================================
  Files          61       61
  Lines        4971     4971
=======================================
  Hits         2694     2694
  Misses       1978     1978
  Partials      299      299

Impacted Files
Coverage Δ

crud/types.go
100.00% <ø> (ø)

crud/registry.go
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

Update:
The linter has now been turned on for all non-test code to catch for cases where we might be passing a nil context.

Part 2 of #325

I've update the PR to include changes that happen in main due to merge of Konnect documents work. Please take another look.

@mflendrich That merge conflict took a while to resolve. PTAL.

@mflendrich Again resolved the conflicts, please review at your earliest convenience.


[Offline area selector] Tapping download button sometimes has no effect

OfflineBaseMapSelectorFragment.onDownloadClick() is never called. @scolsen FYI.

This was actually caused by an invalid URL in the project config. Filed #812 and #813 as follow-up.


Avoid re-ordering of projections in case of complex projections

resolves #4258
The issue: When we added complex projection to the Sql, we removed the scalar projections from it. They get re-added while binding but this changes the order in which projections appear. In the case of #4258 , we had to do filter on client eval, due to re-ordering the filter condition still used old index which was wrong. Based on the type of the projection at that index, it threw InvalidCastException or gave incorrect results.
Fix:When we visit the SelectClause we record the present projection count. These projections are already present and required by WhereClause. Then we visit the Selector and if we lift the query we remove additional projections added while visiting the selector using previously recorded count.

@anpete - this may need additional testing. Can you suggest some scenarios?

:shipit:


set ActiveProcessorCount based on ...requests.cpu

Instead of telling the user to manually update ActiveProcessorCount,
simply add the setting automatically based on
.Values.jira.resources.container.requests.cpu.

@domruf, thank you for the improvements. This will make the configuration less error-prone. Would you mind adding the same implementation to the other products as well?
Can you also fix the test.RequestsTest.sts_resource_requests_and_limits test please? It would be great to add some additional unit tests to cover this logic.

@nanux okay I'll look into it.

Thanks @domruf !


SSSS: Implement reading in the UI

We need to update the UI because we need to ask for the passphrase at the end of verification flows so that we upload verification signatures.
TODO: Find UI and flows.

Not sure we need it if we implement gossiping (https://github.com/vector-im/riot-ios/issues/3000).

Not needed. We will implement it with the full SSSS implementation that will include UI for bootstrapping it.


Can't seem to ignore requires that start with '.'

If the ignore starts with a '.', then special changes are made:
Browserify.prototype.ignore = function (file, opts) {
    if (!opts) opts = {};
    var basedir = defined(opts.basedir, process.cwd());

    // Handle relative paths
    if (file[0] === '.') {
        this._ignore.push(path.resolve(basedir, file));
    }
    else {
        this._ignore.push(file);
    }
    return this;
};

But these are not then applied when using it as a filter.
E.g.:
browserify('path/to/file.js').ignore('./test.js') doesn't seem to work if file.js contains require('./test.js')
I have a work-around by simply adding a check that replicates the ignore's resolve transform.
    mopts.resolve = function (id, parent, cb) {
      // Handle relative paths
        if (id[0] === '.') {
          if (self._ignore.indexOf(path.resolve(basedir, id)) >= 0) return cb(null, paths.empty, {});
        }
        if (self._ignore.indexOf(id) >= 0) return cb(null, paths.empty, {});

Are you also passing basedir as an option to the ignore method? This defaults to process.cwd() which could be throwing off the path resolution (you can log out the value pushed to _ignore to confirm.

I've tried using basedir as an option.
I've also tried using ignore() with a completely relative path (without the '.') as well as the full absolute path to the file.
Neither seems to have any impact on the require() calls that start with .

For reference, I'm trying to use gulp to have a custom build of chart.js:
https://github.com/chartjs/Chart.js/blob/master/src/chart.js

To confirm, you passed basedir to the ignore method, not just the Browserify instance? I was pretty confused myself but was clear when I had a look at the source you posted above, note that there isn't a fallback to this._options — the options are only what you pass to the method.
Aside from this it's up to node's Path.resolve method to construct your paths, which will need to resolve to the correct locations of the files to ignore. I think something like this should work unless I'm misunderstanding how ignore actually works:
browserify.ignore(path.join(process.cwd(), 'node_modules', 'chart.js'), './core/core.tooltip')

Alternately you can also use require.resolve('moduleName') to get absolute paths to the Chart.js modules.

@pushred I had not, until now.
However, that didn't really seem to change much.
Ultimately, it seems that I simply needed to add the '.js' to the end and the ignores work perfectly since it's referencing the file rather than the require() itself.


Question: Which entity should be used to describe different annotators?

Hi BIDS team,
We are manually annotating imaging datasets and a given dataset could have multiple annotators.  How would you suggest that we name these different annotation files that have the same underlying imaging dataset?  We are currently planning on using the desc-<label> entity where <label> would be replaced with the annotator's initials.  Any suggestions would be appreciated.  Thank you.
cc @jingjingwu1225 @jssyq

What does it mean to annotate a dataset?

Hi @effigies, we are drawing masks on a 3d volume to delineate a region of interest (i.e. an axonal pathway).

desc-<label> appears to be the best choice of the current crop of entities. That seems fine to me.

Thank you.  Feel free to close this issue or keep it open for further discussion.


fix: show thrown errors when an async-wrapped function fails

Coroutine-wrapped (async.run) functions will fail silently if any error
happens. Instead, the error should be displayed and notified to users.
For example,
:lua require"dapui".float_element("notexist")

fails silently, but it could instead show a more informative error:
.../nvim-dap-ui/lua/dapui/init.lua:137: attempt to index local 'elem' (a nil value)
stack traceback:
        .../nvim-dap-ui/lua/dapui/init.lua: in function <.../nvim-dap-ui/lua/dapui/init.lua
:125>

@rcarriga kindly bumping this up.

No longer needed with the switch to nvim-nio which does this automatically, thanks for the PR!


Blocky/tiling glitch when using pinch-to-zoom in the default viewer (viewer.html)

Link to a viewer: https://mozilla.github.io/pdf.js/web/viewer.html
Configuration:

Web browser and its version: Safari (default version)
Operating system and its version: iOS 16.4.1
PDF.js version: 3.5.141
Is a browser extension: no

Steps to reproduce the problem:

Zoom in and move around

What went wrong?
Blocky glitches appear (see screenshot).
(The screenshot shows a different PDF file, but the same problem occurs in the one linked above.)

Duplicate of #16155


Update httparty version to be compatible with stash

Sorry I'm behind on this, Ryan, so it looks like things have drifted out of sync.
In your httparty branch could you
git merge upstream/master```

Maybe run `bundle install` if you need to.

Commit the results to your branch.

I think this will fix the problems with travis running and get the gems all in sync between the two repositories.