Lazy load click commands with entry points

The CLI's command groups, commands, and aliases are now defined in entry points. This makes the command discoverable without loading the code of a command and enables lazy loading. This speeds up ilab responsiveness a lot.
Before:
$ time ilab config show >/dev/null

real    0m1,314s

After:
$ time ilab config show >/dev/null

real    0m0,355s

Note: It is still necessary to use deferred imports in command modules. Click's help loads commands to show the doc string header, e.g. ilab model --help imports all instruactlab.model Python modules.
Issue resolved by this Pull Request:
Resolves #1467
Checklist:

[X] Commit Message Formatting: Commit titles and messages follow guidelines in the
conventional commits.
[ ] Changelog updated with breaking and/or notable changes for the next minor release.
[ ] Documentation has been updated, if necessary.
[x] Unit tests have been added, if necessary.
[ ] Integration tests have been added, if necessary.

Entry points were created with this script:
from instructlab import lab

print('[project.entry-points."instructlab.command"]')
for primary, group in sorted(lab.ilab.commands.items()):
    cb = group.callback
    print(f'"{primary}" = "{cb.__module__}:{cb.__name__}"')

print()

for primary, group in sorted(lab.ilab.commands.items()):
    print(f'[project.entry-points."instructlab.command.{primary}"]')
    for secondary, cmd in sorted(group.commands.items()):
        cb = cmd.callback
        print(f'"{secondary}" = "{cb.__module__}:{cb.__name__}"')
    print()

print('[project.entry-points."instructlab.command.alias"]')
for name, dct in sorted(lab.aliases.items()):
    cb = dct["cmd"].callback
    print(f'"{name}" = "{cb.__module__}:{cb.__name__}"')

More tedious to add new commands, since the pyproject.toml must always be updated

It's actually less tedious. With the current approach, you have to add two lines to to register a new command. You also need to find the right file, first.
from .spam import egg
...
model.add_command(egg)

With my new approach, it's just a single line and the line is always in the same file.

Not as straightforward for new contributors to follow, due to added complexity

The answer to this concern is: We need better documentation. My PR adds some documentation in the form of a doc string. The old system was undocumented. Also, how often will a new contributor add a command without any sort of mentoring or assistance?

@tiran You make good points, I'll approve this then.

Thanks @RobotSail ! Let's give Charlie and Russel a day to react, too.


move Documentation to docs folder

docs is the recognized folder name for keeping documentation. This PR ensures consistency in that.

One of these is user-facing docs integrated with the website, the other are developer facing docs. The split should remain as-is.

Sure!


compression: handle compression flag but no header

Motivation

Due to some yet unknown reason I ended up with the crash described in #755 where the client set the compressed bit but doesn't send the correct header for the server for compression and the server panics as it reaches an unreachable! statement with:
thread 'tokio-runtime-worker' panicked at 'internal error: entered unreachable code: message was compressed but `Streaming.encoding` was `None`. This is a bug in Tonic.

Note: the client issue might be a problem with one of the configured interceptors in my codebase, to be investigated separately.
Solution

The case where a compression flag is set but no compression header is present is checked while transitioning between the header and body phases an internal error is returned in this case.

hey @davidpdrsn 👋
by chance, could you take a look on this patch ? we would like to move away from our patches/forks 🙂


Updated gulp-sass in order to build foundation-apps out of the box

The gulp-sass version was 1.3 which had a bug where it didn't find lib-sass dependency
libsass bindings not found

There was an issue that was created by the way the sass code for the text alignment utilities. It compiled the left alignment in all the breakpoints, then the right alignment in all the breakpoints, and so on.

#747

No one with write access merged the pull request.


Add an option for no loss cables or a bundled cable repeater

So it has been a while since i use bundled cables in project red but i thought that they didn't lose redstone signal strength throughout the line, I could be wrong though.  However, I have three possible solutions to this issue.

A config option to allow for lossless redstone signal transfers when using bundled cables, colored cables can still lose signal strength or not, could be an additional config as well.

Add an upgraded version of the bundled cable that is lossless vs the standard version which can lose signal strength.  Again colored cables could benefit from this upgraded cable version also.

Add a bundled cable repeater so that you can reset the signal strength of all the colors in a bundled cable without having to break each color being used out individually.

<IP_ADDRESS> adds the bitwise diode which fulfills the repeater function


Add optional EFK stack

Elasticsearch is hosted on AWS directly, but it's optional depending on whether
you provide an ElasticsearchDomainName input.  AWS's ES offering hosts a
Kibana by default so we don't need to implement that, but we do add a fluentd
DaemonSet if you opt into ES.
Signed-off-by: Ken Simon<EMAIL_ADDRESS>

We've decided to make this a documentation article instead of being baked into the quickstart.  Closing this for now.


Proposal: ApplicationSet Progressive Rollout

Hi all,
I'm opening this issue because I'd like to discuss with the community a possible solution for what I think it's a common issue while doing GitOps.
Consider the following scenario, where you have multiple production clusters across multiple regions. When you use the ApplicationSet all the Application are updated at the same time and with the automated SyncPolicy you are basically doing a global rollout.
What I would like is to introduce the concept of a progressive rollout where you can decide how to rollout you application across those production clusters.
I can see two possible implementation of this idea:

Extend the ApplicationSet specification to support the progressive rollout. The ApplicationSet controller will then be responsible for updating the desired Applications in the desired order. For example, you might want to update a region first, or updating 10% of all your clusters.
Create a new controller with a new CRD dealing with the progressive rollout. The controller watches for ApplicationSet and does something like "argocd app sync " and argocd app wait <MYAPP>.

I think the second approach is much cleaner and doesn't overload the ApplicationSet controller, but I'd like to hear the community thoughts on this.

I'm pretty interested in this, and there was actually some discussion in the slack about this: https://argoproj.slack.com/archives/C014ZPM32LU/p1600274721058300
Sounded like the conclusion was a new CRD, but one that possible was a core part of ArgoCD: https://github.com/argoproj/argo-cd/issues/1283

Thanks, I had a look at the slack conversation and at the ApplicationSync idea. I think it's a good one but I'm not sure how would that interact with the ApplicationSet.
I still think that a new controller makes sense, because it will allow you to iterate and move fast in the same way we're doing for the AppSet controller.
We also have quite different requirements in controlling the application rollout. For example:

all the clusters in the same region are equal. It doesn't matter if you deploy to clusterA first and then to clusterB
the order of regions matters. You might have the majority of your customers in EMEA so you might want to rollout a new version of you app to APAC first
needs to be able to skip and requeue a cluster. Imagine that a cluster is briefly under maintenance or drained or not available, maybe you don't want to fail the whole rollout but just retry the affected cluster later
have a concept of bake time, to let your new deployment soak before moving forward. This might be useful to mitigate bugs that might happen only after a while or under specific traffic conditions.
support for metric checks, to see if it's safe to proceed
support for hooks so you can call a third-party API before moving on

This is why I think a separate controller might make more sense. The CRD could be something like
kind: ProgressiveRollout
metadata:
  name: myrollout
  namespace: argocd
spec:
  # A Kubernetes object representing the ApplicationSet
  # A change in this object will trigger a new progressive rollout
  applicationSetRef:
    apiVersion: argoproj.io/v1alpha1
    kind: ApplicationSet
    name: myappset
  rollout:
    # the type of the rollout strategy
    strategy: canary
    canary:
      # The ordered list of regions to use as canary
      regions:
        - eu-central-1
        - ap-southeast-1
      # (optional) The number of regions that can be updated in parallel. Default to 1
      parallelRegions: 1
      # (optional) The number of zones that can be updated in parallel. Default to 1
      parallelZones: 1
      # (optional) The number of clusters that can be updated in parallel. Default to 1
      parallelClusters: 1
      # (optional) The maximum number of cluster used as canary, per region. Default to 1.
      maxClusters: 1
      # (optional) The time to wait after a region is completed. Default to 0.
      bakeTimeRegion: 1h
      # (optional) The time to wait after a zone is completed. Default to 0.
      bakeTimeZone: 30m
      # (optional) The time to wait after a cluster is completed. Default to 0.
      bakeTimeCluster: 10m
    primary:
      regions:
        - ap-northeast-1
        - eu-west-1
        - eu-central-1
        - ap-southeast-1
      parallelRegions: 2
      parallelZones: 3
      parallelClusters: 1
      bakeTimeRegion: 2h
      bakeTimeZone: 1m
      bakeTimeCluster: 10m
  # (optional)
  retries:
      # (optional) specifies the number of retries per cluster before marking the ProgressiveRollout failed. Default to 1
      # A value of -1 is infinite retries
      attempts: 3
      # (optional) retry interval. Default to 10m
      interval: 30m
  # (optional)
  metrics:
    - name: cluster-drained
      type: pre-deployment-cluster
      thresholdRange:
        min: 1
      interval: 5m
    # minimum req success rate (non 5xx responses)
    - name: region-request-success-rate
      type: post-deployment-region
      # percentage (0-100)
      thresholdRange:
        min: 99
    - name: myapp-custom-check
      type: post-bake-time-region
      templateRef:
        # Name of the MetricTemplate
        name: myapp-custom-check
        # (optional) The namespace where the metric check lives. Default to the operator namespace.
        namespace: mynamespace
      # accepted values
      thresholdRange:
        min: 10
        max: 1000
      # metric query time window
      interval: 5m
  # (optional)
  webhooks:
    - name: "regional load test"
      type: post-bake-time-region
      url: http://load-test-service.example.com
      timeout: 15s
      retries: 3
      metadata:
        cmd: "hey -z 1m -q 5 -c 2 http://myapp.example.com"
  # (optional)
  alerts:
    - name: "on-call Slack"
      severity: error
      providerRef:
        name: on-call-slack
        namespace: rollout-system
    - name: "info Slack"
      severity: info
      providerRef:
        name: info-slack

note that this mimic heavily Flagger, but it tries to extend it.

@maruina currently ApplicationSet only handles the installation of the application CRD. The solution you are looking for is for the installation and the first sync stage? or for the day-to-day sync?

Day to day sync. Every time the AppSet creates/updates the Application, something should take care of their synchronization.

Hi all, I created a PoC for a progressive rollout controller using ApplicationSet. You can find it here https://github.com/maruina/argocd-progressive-rollout-controller
Any feedback is very much appreciated :)

Has any progress been made on this front? I believe this to be a major blocker for adopting ApplicationSet.


Very initial remote snapshotter crate

This PR adds:

GRPC generated code.
Snapshotter types.
Server wrapper.
Snapshotter example.
README

Interesting, maybe we could switch the nydus-snapshotter to rust in future:)
https://github.com/containerd/project/issues/83


Test_Ignore : This is a test

Test_Ignore :

This is a test

[Zendesk Comment #1]
this test seems to work

Glad to see it work !!!


Traitor switching to other players always faces right

This is a known issue, and not terrible but would be great to fix eventually.

Hacky solution: ca4277046aa4a71dd10b28acd25d65acc08d9cad


Install Beard

Beard v. 1.1.4 now supports also GitHub, so it'd be quite handy to have it in the container by default.

I think this is already included now, right?

True, resolved by https://github.com/million12/docker-typo3-flow-neos-abstract/commit/f935dd148f96d88bcb2d75a787d5945dc258e5f6, https://github.com/million12/docker-typo3-flow-neos-abstract/commit/8b4cf3401495d0cb08e25e131c0c8dabe3e3ccc5 and https://github.com/million12/docker-typo3-flow-neos-abstract/commit/f4b78f62520505e96c35d13d9314bf88b021010e


Find sometimes fails to scroll the display to show the text it found

HaxeDevelop, https://github.com/fdorg/flashdevelop/commit/436add6fc7 (binary distribution from the website)
Repro steps:

Create new blank document with Ctrl+N

Paste in the Lorem Ipsum nonsense below. Make sure you can't see all of it at once - it needs to be wider than the window. It's nearly 1K so this will probably be the case anyway

Ctrl+Home, Ctrl+F, search for rhoncus - it'll find the first word

f3 - it'll find the last word

f3 - it'll find the first word again

Actual behaviour: when scrolling left to show the word, it only scrolls the display to show the char after the word that was found - so you can't see it! Use the scrollbar to scroll left a bit and you'll see it...
Expected behaviour: the display is scrolled to show the word that was found.
Thanks,
--Tom
rhoncus, turpis eget sollicitudin tincidunt, risus tortor convallis ipsum, vel lacinia ante est tincidunt magna. Duis ullamcorper turpis eget sollicitudin tincidunt, risus tortor convallis ipsum, vel lacinia ante est tincidunt magna. Duis ullamcorper turpis eget sollicitudin tincidunt, risus tortor convallis ipsum, vel lacinia ante est tincidunt magna. Duis ullamcorper turpis eget sollicitudin tincidunt, risus tortor convallis ipsum, vel lacinia ante est tincidunt magna. Duis ullamcorper turpis eget sollicitudin tincidunt, risus tortor convallis ipsum, vel lacinia ante est tincidunt magna. Duis ullamcorper turpis eget sollicitudin tincidunt, risus tortor convallis ipsum, vel lacinia ante est tincidunt magna. Duis ullamcorper turpis eget sollicitudin tincidunt, risus tortor convallis ipsum, vel lacinia ante est tincidunt magna. Duis ullamcorper turpis eget sollicitudin tincidunt, risus tortor convallis ipsum, vel lacinia ante est tincidunt magna. Duis ullamcorper rhoncus

Still an issue as of https://github.com/fdorg/flashdevelop/commit/41581cca36. Do I need to do anything to this PR to improve its chances of being merged?
Thanks,
--Tom


Synchronously handle cached responses (experimental)

To avoid the forced 1s delay in WebKit browsers when handling cached responses,
synchronously execute the handler function instead of using a setTimeout of 0.
This means that handling a cache response will be synchronous and handling
a network response will be asynchronous.  For evaluation and testing, guard
this behavior behind a experimental-sync-response-cache config flag.
Progress on #337.

LGTM

You could also experiment with running the timers in a WebWorker as they are not affected when you run in a background tab.

@3rd-Eden Absolutely, and we might need to do that for handling async tasks during response processing (e.g. in spf.tasks.scheduleTask_).  For this case, I don't think we need the overhead of tracking the callbacks for postMessage calls (either to a worker or just to self), since synchronous execution works.
The only side effect of this change is that the spfprocess event and onProcess callback will execute before a call to the spf.navigate API function returns.  Here's the before/after:
// Async Cache Handling
window.addEventListener('spfrequest', function() { console.log('test event spfrequest'); });
window.addEventListener('spfprocess', function() { console.log('test event spfprocess'); });
window.addEventListener('spfdone', function() { console.log('test event spfdone'); });
console.log('test before');
spf.navigate('/url', {
  onRequest: function() { console.log('test callback onRequest'); },
  onProcess: function() { console.log('test callback onProcess'); },
  onDone: function() { console.log('test callback onDone'); }
});
console.log('test after');
// test before
// test callback onRequest
// test event spfrequest
// test after
// test callback onProcess
// test event spfprocess
// test callback onDone
// test event spfdone

// Sync Cache Handling
window.addEventListener('spfrequest', function() { console.log('test event spfrequest'); });
window.addEventListener('spfprocess', function() { console.log('test event spfprocess'); });
window.addEventListener('spfdone', function() { console.log('test event spfdone'); });
console.log('test before');
spf.navigate('/url', {
  onRequest: function() { console.log('test callback onRequest'); },
  onProcess: function() { console.log('test callback onProcess'); },
  onDone: function() { console.log('test callback onDone'); }
});
console.log('test after');
// test before
// test callback onRequest
// test event spfrequest
// test callback onProcess
// test event spfprocess
// test after
// test callback onDone
// test event spfdone

If this causes problems for anyone, we can always go with the more involved postMessage path.


Fix gamepad L2/R2 in games

Fix #5362 (to be tested)

it works perfectly (on uhid), thank you.
I changed the vid:pid and the controller name to match an xbox 360 and thats it, no modifications required on android itself:
public final class UhidManager {
         ByteBuffer buf = ByteBuffer.allocate(280 + reportDesc.length).order(ByteOrder.nativeOrder());
         buf.putInt(UHID_CREATE2);

-        String actualName = name.isEmpty() ? "scrcpy" : "scrcpy: " + name;
+        int vid = 0;
+        int pid = 0;
+        String actualName;
+        if ("Xbox One Controller".equals(name)) {
+            actualName = "Microsoft X-Box 360 Pad";
+            vid = 0x045e;
+            pid = 0x028e;
+        } else {
+            actualName = name.isEmpty() ? "scrcpy" : "scrcpy: " + name;
+        }
         byte[] utf8Name = actualName.getBytes(StandardCharsets.UTF_8);
         int len = StringUtils.getUtf8TruncationIndex(utf8Name, 127);
         assert len <= 127;
@@ -183,8 +192,8 @@ public final class UhidManager {

         buf.putShort((short) reportDesc.length);
         buf.putShort(BUS_VIRTUAL);
-        buf.putInt(0); // vendor id
-        buf.putInt(0); // product id
+        buf.putInt(vid); // vendor id
+        buf.putInt(pid); // product id
         buf.putInt(0); // version
         buf.putInt(0); // country;
         buf.put(reportDesc);

aoa is gonna be broken as long as we cant change the vid:pid on it (or you could revert back to the old descriptor for aoa).
im doing the "if ("Xbox One Controller".equals(name)){" check so i dont affect other devices like a mouse or a keyboard, i dont know if it would work for people with other controllers (or other os).
but here's the binary with that check removed if anyone wants to try it (probably breaks the uhid keyboard):
scrcpy-server.zip

I changed the vid:pid and the controller name to match an xbox 360 and thats it

What if you keep 0:0, does it also work?

I changed the vid:pid and the controller name to match an xbox 360 and thats it

What if you keep 0:0, does it also work?

well, yes, but the rstick and triggers are reversed.

well, yes, but the rstick doesnt work and the triggers act as the rstick instead.

Is that also true with "Game Controller Tester" (uk.co.powgames.gamecondiag)? On my devices, it works correctly in Gamepad testers with 0:0.
Can it be related to your changes in .kl files? (https://github.com/Genymobile/scrcpy/issues/5362#issuecomment-2404529796)

well, yes, but the rstick doesnt work and the triggers act as the rstick instead.

Is that also true with "Game Controller Tester" (uk.co.powgames.gamecondiag)? On my devices, it works correctly in Gamepad testers with 0:0.

yup, its the same, which gamepad(s) did you try?

Can it be related to your changes in .kl files? (#5362 (comment))

nope, i reverted all of those changes, you dont need keylayout modifications to use xbox360 vid:pids with this update.

yup, its the same, which gamepad(s) did you try?

With a PS4 controller, but that should not make any difference, since scrcpy uses the events received from SDL to generate UHID events.
The difference is probably the drivers on the device. On my devices, it works correctly with both 0:0 or 045e:028e (but not with the ids of the PS4 controller, because it is expected to behave differently I guess).

The difference is probably the drivers on the device. On my devices, it works correctly with both 0:0 or 045e:028e (but not with the ids of the PS4 controller, because it is expected to behave differently I guess).

how do games react to input? do they see your gamepad as an xbox or a ps one?
some ps4 keylayouts use generic identifiers so thats probably the issue you're having i reckon.
you can try the dualsense one: Vendor=0x054c, Product=0x0ce6
its axis identifiers are identical to xbox's, buttons might not work though.

With 054c:0ce6, in Gamepad Tester, it is detected as a "PS5 Controller".
The right stick and L2/R2 axis are inverted (right stick changes L2/R2, and vice-versa).
With 0:0 or 045e:028e, it works correctly.

I will add an option --gamepad-uhid-ids=xxxx:xxxx, and use 045e:028e by default.

Or just force 045e:028e without option (setting another value would not change the HID reports, so it makes no sense).

I updated the PR.
Please test the latest version.
Here are binaries for Linux and Windows:

scrcpy-linux-x86_64-gamepad_fixes.tar.gz SHA-256: f81fe2e3428018b403e401fd87483718ec2452b35f4586a7d8c612c4ccaac4d
scrcpy-win64-gamepad_fixes.zip SHA-256: 9e2f0a521ba191f8b098ccfc0c3f8ff3d406337c3849a076f754ecd0dfdaa53

@LHLaurini @yume-chan I'm also interested in your feedback if you have some time, since you worked on gamepads in the past 😉 Thank you.

I updated the PR.
Please test the latest version.
Here are binaries for Linux and Windows:

scrcpy-linux-x86_64-gamepad_fixes.tar.gz SHA-256: f81fe2e3428018b403e401fd87483718ec2452b35f4586a7d8c612c4ccaac4d
scrcpy-win64-gamepad_fixes.zip SHA-256: 9e2f0a521ba191f8b098ccfc0c3f8ff3d406337c3849a076f754ecd0dfdaa53

it works perfectly, but i think we should change the controller name as well, since some games seem to pay attention to that:
diff --git a/app/src/uhid/gamepad_uhid.c b/app/src/uhid/gamepad_uhid.c
index 2a063af5..b9016b39 100644
--- a/app/src/uhid/gamepad_uhid.c
+++ b/app/src/uhid/gamepad_uhid.c
@@ -36,7 +36,7 @@ sc_gamepad_uhid_send_open(struct sc_gamepad_uhid *gamepad,
     msg.uhid_create.id = hid_open->hid_id;
     msg.uhid_create.vendor_id = SC_GAMEPAD_UHID_VENDOR_ID;
     msg.uhid_create.product_id = SC_GAMEPAD_UHID_PRODUCT_ID;
-    msg.uhid_create.name = hid_open->name;
+    msg.uhid_create.name = "Microsoft X-Box 360 Pad";
     msg.uhid_create.report_desc = hid_open->report_desc;
     msg.uhid_create.report_desc_size = hid_open->report_desc_size;

diff --git a/server/src/main/java/com/genymobile/scrcpy/control/UhidManager.java b/server/src/main/java/com/genymobile/scrcpy/control/UhidManager.java
index 1d7678ec..c4867a3f 100644
--- a/server/src/main/java/com/genymobile/scrcpy/control/UhidManager.java
+++ b/server/src/main/java/com/genymobile/scrcpy/control/UhidManager.java
@@ -174,7 +174,7 @@ public final class UhidManager {
         ByteBuffer buf = ByteBuffer.allocate(280 + reportDesc.length).order(ByteOrder.nativeOrder());
         buf.putInt(UHID_CREATE2);

-        String actualName = name.isEmpty() ? "scrcpy" : "scrcpy: " + name;
+        String actualName = name.isEmpty() ? "scrcpy" : name;
         byte[] utf8Name = actualName.getBytes(StandardCharsets.UTF_8);
         int len = StringUtils.getUtf8TruncationIndex(utf8Name, 127);
         assert len <= 127;

i think we should change the controller name as well, since some games seem to pay attention to that

Did you observe a difference in behavior with just a different name?
If possible, I'd like to keep exposing the real controller name, but if it causes issues, ok.

Or just force 045e:028e without option (setting another value would not change the HID reports, so it makes no sense to expose it).

I believe having that option would only be useful for games and controllers that support stuff like gyro, adaptive triggers and force feedback. While I did find some references online saying some games support these features, I didn't find which games support them. In any case, I don't think scrcpy currently supports these features anyway, so it doesn't matter for now.

i think we should change the controller name as well, since some games seem to pay attention to that

Did you observe a difference in behavior with just a different name?

yes, in human fall flat (#5362), the game didnt recognize the controller cause of its name, changing the name fixed the issue.

@Withoutruless Thank you :+1: I added a commit under your authorship: 7418fd06626a2ae405f4bfbe9980a9c4ebd744a7.
(and I added a log when a gamepad is added or removed: 548d2c755fa285369735b693adc34cab3c55e9cf)

(scrcpy 3.1 including this PR is ready. I will publish it soon :rocket:)

@rom1v Hello! It seems there's still a problem with some gamepads. The triggers on Logitech F310 don't work in either mode, and the Y and X buttons are for some reason swapped. Tested on 3.1 release version and gamepad_fixes version from this conversation. Could you please look into it?


Status Events

:white_check_mark: Build datakit 1.0.68 completed (commit https://github.com/docker/datakit/commit/686e84d11b by @samoht)

Seems to work well enough now, so merging.


issue reproducing the results

Hi there, I have ran the following command from run.sh, in an attempt to reproduce the results for roberta but I am facing discrepencie.
python main.py --learning-rate 1e-5 --weight-decay 0 --batch-size 3 --epochs 21 --log-interval 400 \
    --grad-accum-steps 4 --model-type roberta --prefix 0524 --filename final --task ast

I am getting these results, which seem different from Roberta in Table 4 where   Value is  73.1% instead o 53.9.

Could you explain this discrepency And quick question?
is "intent" in Table 4 also called Action_Accuracy in the code? Thanks!

Hello, I'm encountering a similar issue. @IssamLaradji, for your AST case, I recommend referring to Table 3, where the ACC value is listed as 67.2. However, it appears to differ significantly from your result. In my situation, I'm attempting to replicate BERT, achieving an ACC of 37.4 for value, while the ACC for action is 88.6.


A few bug fix for create monitor

Description

Fix the problem of bucket level monitor preview graph not showing up when minDate equals to maxDate.
A few text update.
Fix the bug when bucket-level monitor metrics fields contains '.', the data won't show correctly in preview graph. Added a parsing function to parse '.' to '_'.
Update validation of numeric fields to show error message if input is a string type value.
Removing a redundant comma in bucket-level alerting graph.

Issues Resolved
N/A
Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[ ] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #121 (65eed16) into main (ae78928) will decrease coverage by 0.03%.
The diff coverage is n/a.

:exclamation: Current head 65eed16 differs from pull request most recent head 3473d51. Consider uploading reports for the commit 3473d51 to get more accurate results

@@            Coverage Diff             @@
##             main     #121      +/-   ##
==========================================
- Coverage   50.93%   50.90%   -0.04%
==========================================
  Files         200      200
  Lines        4639     4642       +3
  Branches      586      587       +1
==========================================
  Hits         2363     2363
- Misses       2274     2277       +3
  Partials        2        2

Impacted Files
Coverage Δ

...ateMonitor/components/VisualGraph/utils/helpers.js
46.23% <0.00%> (-1.55%)
:arrow_down:

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 ae78928...3473d51. Read the comment docs.


Error running atlantafx in IntelliJ: stack - java: module not found: atlantafx.base

Discussed in https://github.com/mkpaz/atlantafx/discussions/91

Originally posted by podwesley April 24, 2024
Hello everyone! I'm encountering an error while running atlantafx on IntelliJ. After adding the dependency in Maven and in the runner, the console shows the following error: java: module not found: atlantafx.base
Does anyone have any idea what this could be? See the image below:

I'm sorry but this sort of issues should be asked to StackOverflow or https://www.reddit.com/r/javahelp/.


reflect: is there any way to compare the same method between different receiver ?

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go version go1.9.2 darwin/amd64
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN="/usr/local/go/bin"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/usr/local/gopath"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/xq/b3m9nkcx6jlgmnsvyz8w_05r0000gn/T/go-build427161431=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
What did you do?
I want to make a event-delegate framework for my job, and I want to compare the same method between different receiver, if it's any way to do that? Or if I can get the value of receiver (maybe by reflect) ?
I know func value is not comparable but I'm wondering if there any other way can do that ?
package main

import (
	"reflect"
)

type TEvent struct {
	Name string
}

func (this *TEvent) Changed() {
	println(this.Name)
}

func main() {
	t1 := TEvent{"T1"}
	t2 := TEvent{"T2"}

        // might use reflect to compare ?
	tMV1 := reflect.ValueOf(t1.Changed)
	tMV1-2 := reflect.ValueOf(t1.Changed)
	tMV2 := reflect.ValueOf(t2.Changed)

	// Want: compare `t1.Changed` and `t2.Changed` got false,
        // compare `t1.Changed` and `t1.Changed` got true.
}

What did you expect to see?
What did you see instead?

Hi,
the Go project does not use its bug tracker for general discussion or asking questions about the language. The Github bug tracker is only used for tracking bugs and proposals going through the Proposal Process.
Please see the Questions wiki page; it has a list of good places for asking questions. Thanks!
Closing, since this is not a bug.


Separated DLS/FLS privilege evaluation from action privilege evaluation

Description
This change is in preparation for #3870 and #4380 .
This cuts off some parts from the quite big and monolithic method PrivilegesEvaluator.evaluate() into separate methods and modules.
This achieves several things:

Better separation of concerns, thus better modularization and thus better understandability, re-usability and testability
Computations of DLS/FLS privileges are done directly in the DLS/FLS valve code. Thus, if DLS/FLS valve is disabled, no DLS/FLS privileges are computed
The new class PrivilegesEvaluationContext combines commonly needed information for privilege evaluation and thus allows to shorten the parameter lists of many methods in this context. For this PR, only the PrivilegesEvaluator.evaluate() method itself is changed, but further adaptions will follow up when due.

Category - Refactoring
Why these changes are required?

For #3870, we need to re-build the privilege evaluation code both for the normal action privilege evaluation and for DLS/FLS. Even though these are quite separate and different things, these are currently intermingled in one big monolith. The changes for #3870 will be easier to understand if they are structured better.

What is the old behavior before changes and new behavior after changes? - No changes.

Issues Resolved
Contributes to #3870
Testing

Existing integration tests

Check List

[ ] New functionality includes testing
[x] New functionality has been documented
[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@cwperks @scrawfor99 this is blocked by each of your un-resolved conversations. Would you mind going through them and closing as needed?


wu

There is already a CLI for wunderground, wu that is worth exploring. It is written in Go.

As nice as wu is, I shall do what I've done with all APIs up to this point: write the interface myself.


Patch dependent test modules under devfile/registry

Which area/kind this issue is related to?

/kind task
/area registry
Issue Description

After new v2.2.2 release of devfile/library is made #1477, there should be a version bump of this dependency on devfile/registry.
Acceptance Criteria

[ ] Bump github.com/devfile/library to v2.2.2

Related issue: https://github.com/devfile/api/issues/1494

Removed blocked status as v2.2.2 is released

Opened PR https://github.com/devfile/registry/pull/396 to bump up the necessary dependent modules

Sized as 1, after the time spent for the PR


Quickpay callback includes acquirer param and must be checked with md5secret from options

I have just verified this fix. The changes here are still relevant and correct. Would love to see this merged.

I'll close this since it has been more than a year without activity

I get the need to close off old pull requests, but I'd venture a claim that the activity that's missing here is this PR being merged. 😉
If any other action is expected from the community before this could be merged, it would be helpful to clarify what those actions are so we can take them.
What next steps should we take in order to have these changes merged?

Could you add a description on the impact of the changes and I'll get it merged.

@pi3r this change is necessary to verify the request using the md5. The current code does not include all the attributes necessary to perform the check.
btw: This is the deprecated version of QuickPay API which now requires the use of a paid proxy. Still usable but there is a new version as added in https://github.com/activemerchant/offsite_payments/pull/205


Fix NativeScript property list order

NativeScript::get_script_property_list previously inserted PropertyInfos at the front of the (already partially filled) list passed to it.
It should append them to the back instead, like GDScript does. Placing them in front of script causes them to never be loaded when instancing scenes, because the NativeScript is not yet attached when they're set.
Fixes #17672 and #18088.
CC @karroffel

IIRC that method is called from the bottom of script inheritance hierarchy, so if you add properties to the end of the list you have base properties at the bottom, which is not desired.
Make a test where there are two GDScript types inherited from each other and having properties and two NativeScript types replicating the hierarchy and see how it's displayed in the editor - it should be consistent.

Ah actually looked at the code now, and it seems to be fine :)

Cherry-picked for 3.0.7.


Navbar is not responsive in the simulator section.

Describe the bug
Navbar hide behind Properties and Circuit  Elements panel when screen size is  996 x 948 or less than this.
To Reproduce
Steps to reproduce the behavior:

Go to https://circuitverse.org/
Click on "Simulator" on the navbar
Inspect the page and change the screen size to 996 x 948.
Click on the navbar-toggler-icon
See error

Current behavior

Expected behavior

Device Information:

Fedora
Firefox

Are you working on this issue? (Yes/No)

can i work on this?

Hi, if this issue is still open . I would like to work on this . If you could assign this to me .

i want to work on this issue please assign me

I think the navbar is not responsive for the mentioned size. I intend to align it in a slight portrait view for a better look.
I would like to work on this issue. Could you please assign this issue to me?


Strategy for connecting an input GeoPandas dataframe to a geovoronoi output polygons

I'm trying to generate geovoronoi regions using a GeoDataFrame. The input points come from the dataframe's geometry. Once I have the resulting polygons, I need a mapping of the rows in the dataframe to the regions generated by the library. I don't find any way to do this using the outputs from voronoi_regions_from_coords. Here follows an example program using cities in South Africa. The idea would be to get the right city name back for each Voronoi region. It's not correct at the moment. What am I missing?
import logging

import matplotlib.pyplot as plt
import geopandas as gpd

from geovoronoi import coords_to_points, voronoi_regions_from_coords
from geovoronoi.plotting import subplot_for_map, plot_voronoi_polys_with_points_in_area

logging.basicConfig(level=logging.INFO)
geovoronoi_log = logging.getLogger('geovoronoi')
geovoronoi_log.setLevel(logging.INFO)
geovoronoi_log.propagate = True

mercator = 3395
wsg84 = 4326
hartebeesthoek94 = 4148 # Frequently used for southern Africa
crs = hartebeesthoek94

country = 'South Africa'

print(f'loading country {country} from naturalearth_lowres')
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))

area = world[world.name == country]
assert(len(area) == 1)

print('CRS:', area.crs)

area = area.to_crs(epsg=crs)
area_shape = area.iloc[0].geometry

print('loading local cities from naturalearth_cities' )
cities = gpd.read_file(gpd.datasets.get_path('naturalearth_cities'))
cities = cities.to_crs(epsg=crs)
local_cities = cities.loc[cities['geometry'].within(area_shape)]
assert(len(local_cities) >= 1) # This doesn't work for all countries!

# Calculate the `per_geom=False` voronoi diagram for the country, using the GeoDataFrame's `geometry` column
# to provide the coordinates.
voronoi_regions, voronoi_points = voronoi_regions_from_coords(local_cities.geometry, area_shape, per_geom=False)

fig, ax = subplot_for_map()

plot_voronoi_polys_with_points_in_area(ax, area_shape, voronoi_regions, local_cities.geometry, voronoi_points)

ax.set_title(f'Cities and their Voronoi regions in {country} (with per_geom=False)')

plt.tight_layout()
plt.savefig('national_city_regions.png')
plt.show()

city = 0
assert(city < len(local_cities)-1) # No point looking for cities with higher indexes

print('Goal is to map the original GeoPandas df to the voronoi_regions output')
print('\nvoronoi_points showing dict index:')
pprint(voronoi_points)
print('\nvoronoi_regions showing dict index:')
pprint(voronoi_regions)

print('\nlocal_cities showing index after the filter out of the global cities originally loaded:')
print(local_cities)

print(f'\nlocal_cities.iloc[city]["name"]: {local_cities.iloc[city]["name"]}')

print(f'\nvoronoi_points[city]: {voronoi_points[city]}')
print(f'\nvoronoi_points[city][0]: {voronoi_points[city][0]}')

print(f'\nvoronoi_regions[voronoi_points[city][0]]:')
voronoi_regions[voronoi_points[city][0]]

The region polygon in voronoi_regions[voronoi_points][0]] is Cape Town, not Bloemfontein.

The mapping works. I think you mixed how the mapping in voronoi_points works. It's a dict that maps a region ID to (possibly multiple) point IDs. The point IDs are indices into local_cities.geometry. You should also be aware that this uses array indices 0 to N and not the pandas indices (which are, after filtering, 57, 58, 171, 189 in your case). So to find out the region ID for a given city it would be:
cities_list = local_cities.name.to_list()
city = 0

for reg_id, reg_pts in voronoi_points.items():
    if city in reg_pts:
        print(f'city #{city} {cities_list[city]}" is in region #{reg_id}')

The whole hassle is because you could theoretically have multiple points in one region (if they're duplicates points or extremely close together). Btw. there's only a function points_to_region to inverse the mapping which makes the whole thing easier:
from geovoronoi import points_to_region

pts_region = points_to_region(voronoi_points)
pts_region[city]


Example with webpack

I am trying to use this library along with webpack to prepare a bundle for browser use. Both browser versions (normal and minified) included in ./dist do not seem to load correctly, but I didn't test it thoroughly.
Here is my webpack.config.js file
const path = require('path');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
	entry: './src/index.js',
	output: {
		filename: 'bundle.js',
		path: path.resolve(__dirname, 'dist')
	},
	plugins: [
		new CleanWebpackPlugin(['dist']),
		new HtmlWebpackPlugin({
			title: 'Production'
		})
	],
	module: {
		rules: [{
			test: /\.csv$/,
			use: 'file-loader'
		}]
	}
};

next is my package.json
{
	"name": "csvToJsonExample",
	"version": "1.0.0",
	"description": "",
	"main": "index.js",
	"scripts": {
		"build": "webpack"
	},
	"author": "",
	"license": "ISC",
	"devDependencies": {
		"clean-webpack-plugin": "^0.1.17",
		"csvtojson": "^1.1.7",
		"file-loader": "^0.11.2",
		"html-webpack-plugin": "^2.30.1",
		"webpack": "^3.6.0"
	}
}

then the source index.js
import csvFile from './qa.csv';
const csv = require('csvtojson');

csv()
.fromFile(csvFilePath)
.on('json', (jsonObj) => {
	console.log(jsonObj);
})
.on('done', (error) => {
	console.log('end')
})

and lastly the CSV file itself
Money,Capitals,Food,People,Places
What is the currency of Norway?,What is the capitol of Mongolia?,What is kimchi?,Who is Malala Yousafzai?,What is France?
What is the currency of Thailand?,What is the capitol of Germany?,What is coffee?,Who is Lionel Messi?,What is Italy?
What is the currency of Japan?,What is the capitol of Lebanon?,What is caviar?,Who is the Kim Jong-un?,What is Peru?
What is the currency of Nigeria?,What is the capitol of Mexico?,What is saki?,Who is Queen Elizabeth?,What is India?
What is the currency of Russia?,What is the capitol of Colombia?,What is France?,Who is Nelson Mandela?,What is Greece?

I am probably missing something but webpack compilation results in the following error
npm run build

><EMAIL_ADDRESS>build /Users/gswcm/Projects/Temp/csv
> webpack

clean-webpack-plugin: /Users/gswcm/Projects/Temp/csv/dist has been removed.
Hash: d317bfbbdbda5c6d4473
Version: webpack 3.6.0
Time: 1340ms
                               Asset       Size  Chunks                    Chunk Names
bcd5266e832fcf30178c410e7f140e30.csv  628 bytes          [emitted]
                           bundle.js     886 kB       0  [emitted]  [big]  main
                          index.html  181 bytes          [emitted]
   [0] (webpack)/buildin/global.js 509 bytes {0} [built]
  [37] (webpack)/buildin/module.js 517 bytes {0} [built]
  [39] ./src/index.js 342 bytes {0} [built]
  [40] ./src/qa.csv 82 bytes {0} [built]
    + 134 hidden modules

ERROR in ./node_modules/csvtojson/libs/core/workerMgr.js
Module not found: Error: Can't resolve 'child_process' in '/Users/gswcm/Projects/Temp/csv/node_modules/csvtojson/libs/core'
 @ ./node_modules/csvtojson/libs/core/workerMgr.js 2:12-36
 @ ./node_modules/csvtojson/libs/core/Converter.js
 @ ./node_modules/csvtojson/libs/core/index.js
 @ ./node_modules/csvtojson/libs/csv2json.js
 @ ./node_modules/csvtojson/index.js
 @ ./src/index.js

ERROR in ./node_modules/csvtojson/libs/core/Converter.js
Module not found: Error: Can't resolve 'fs' in '/Users/gswcm/Projects/Temp/csv/node_modules/csvtojson/libs/core'
 @ ./node_modules/csvtojson/libs/core/Converter.js 473:11-24
 @ ./node_modules/csvtojson/libs/core/index.js
 @ ./node_modules/csvtojson/libs/csv2json.js
 @ ./node_modules/csvtojson/index.js
 @ ./src/index.js
Child html-webpack-plugin for "index.html":
     1 asset
       [2] (webpack)/buildin/global.js 509 bytes {0} [built]
       [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        + 2 hidden modules
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR<EMAIL_ADDRESS>build: `webpack`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/gswcm/.npm/_logs/2017-09-27T01_45_34_195Z-debug.log

I am attaching the log file reference from the last line of the log output.
2017-09-27T01_45_34_195Z-debug.log
Am I doing something wrong? Thank you.

this problem has been fixed in 1.1.8
you just need update the lib.
~Keyang

@Keyang are you sure this is actually fixed? I installed 1.1.8 and am still running into this.

@Keyang @danteoh Same thing here: I try to package the project using webpack: it is not working even using 1.1.8. Check this my comment

Ok, got it working by defining this Webpack config:
node: {
	fs: 'empty',
	process: 'mock',
	Buffer: true,
}

Hope it helps someone:)


Please tag this repository

Hello,
Could you please tag this repository?
I am the Debian Maintainer for this project and tags would help Debian keep up with new releases/bugfixes.
See:

http://semver.org/
http://dave.cheney.net/2016/06/24/gophers-please-tag-your-releases

Done.
https://github.com/sasha-s/go-deadlock/releases/tag/v0.1.0


Add Ledger Stax logo for Core

Add Core logo for Ledger Stax according to the Ledger Stax logo icon design requirements.

Closing in favor of https://github.com/LedgerHQ/app-ethereum/pull/474


Request for some examples for using angular cache in ngResource

Hi,
I understand that the latest release has support to ngResource. Could you please add some examples to the document page on using angular cache in $resource. It would really be helpful.
Thank you.

How can we use it in ngResource?

With the knowledge that angular-cache can be used anywhere that $cacheFactory can be used (it's a drop in replacement for $cacheFactory), then the ngResource documentation for using $cacheFactory with ngResource and various blog posts and stackoverflow answers about the topic should provide sufficient examples.
ngResource actions support the same options as $http(config), so your knowledge of that and its documentation also tell you that there is a cache option that you can set to an instance of a cache (either one created by $cacheFactory or by angular-cache), and the cache will be used by the resource.

Here's an example I found on Stack Overflow: http://stackoverflow.com/questions/30466569/angular-cache-ng-resource-transformresponse-before-caching

Closing because I’m not sure this is an issue, if you are convinced that this is really a bug, please feel free to re-open the issue and add more information:

good - Your versions of Angular, Angular-cache, etc, relevant console logs/error, code examples that revealed the issue
better - A plnkr, fiddle, or bin that demonstrates the issue
best - A Pull Request that fixes the issue, including test coverage for the issue and the fix

Otherwise support is done via the mailing list.


first suggested auto import is invalid, doesn't take into account capitalization

before:

after:

class Foo(Enum):
    ...

This is currently working as intended, as we're trying to be helpful in offering similar terms, and import enum ends up being simpler than from enum import Enum, so we offer it first (assuming that the user will select the one they want). We don't know per-se which item is "valid", but it would likely be better to prefer exact matches.

However, enum is a module in the sample, which we cannot use here where we need to inherit from a module. I suggest that pylance to only show context-appropriate auto-import commands.

However, enum is a module in the sample, which we cannot use here where we need to inherit from a module. I suggest that pylance to only show context-appropriate auto-import commands.

See also #424 and #1557; auto-imports in general do not take any context into consideration.

we now put exact match (including upper/lower casing) at higher priority in add using list. so, the issue itself is fixed.
but currently we don't have context aware-ness in completion so that part is still not done.
that being said, in this particular case, class A(__here) is type context where any type name can show up, so enum is valid name since user can write A(enum.Enum), so even if we improve features to context aware, enum will still show up since it is valid one to show.


Missing device configuration: Aeotec MultiSensor 7 ZWA024-C

Checklist

[X] It is not in the configuration DB

[X] It was not merged recently or has a pending PR

Which device is missing?
Aeotec ZWA024-C
Manufacturer ID
0x0371
Product Type
0x0002
Product ID
0x0018
Firmware Version
1.1
Is the device listed on the Z-Wave Alliance website?
https://products.z-wavealliance.org/products/4061
Do you have a manual?
ES - MultiSensor 7(1).pdf

@zwave-js-bot import config 4061 from zwa

@AlCalzone hello my friend, do you have everything you need regarding ZWA024/multisensor 7? I bought 3 today and using them as powered, they can be added to zwavejs, but it has a general nodexx status. And i cant edit the configuration. Thank you, and have a nice christmas :)

Its being worked on: https://github.com/zwave-js/node-zwave-js/pull/3855
In the meantime you should be able to change the config parameters in zwavejs2mqtt by entering the param no., value size and value in the respective field.

Its being worked on: #3855
In the meantime you should be able to change the config parameters in zwavejs2mqtt by entering the param no., value size and value in the respective field.

nice, i tried using zwavejs2mqtt once along side zwavejs but i was confused on how they worked together, guess i have to try again.  thank you for your fast repsonse.


Add code of conduct

Thanks for this project. We are using it in GitLab.
I think this would be a great addition to the project for creating a welcoming community. I used the generic contributor covenant (same as what the storybook repo uses)

Thank you a lot


Nginx 500 after automated script

Fixed in https://github.com/Azure/EasyAuthForK8s/commit/3e76cfaade2142adf493a9dd498ee255e1bd0f33


Compute only unique minterms during mintermization

This PR should improve the speed of mintermization, by computing minterms only for unique BDDs from transitions + only keeping unique minterms.

Is there mintermization in python binding? I changed the interface a bit, so it could break it there. I also changed one header file in cudd, I am not sure whether it should be also changed in cudd-min for binding.

Is there mintermization in python binding? I changed the interface a bit, so it could break it there. I also changed one header file in cudd, I am not sure whether it should be also changed in cudd-min for binding.

Should I fix the binding? You have nothing more to commit?

The binding should be fixxed.

I am fine with the changes. Do any of you plan to add anything new to the PR, or can we merge the PR?

I won't be adding any new changes to this PR,


OS X -> Mac

OS X is no longer the marketing name. It's technically macOS, but I'm using Mac in the website marketing since that's what I think users will expect.

You should update the GitHub repository description as well. :v:

Done.


[Bug]: REPORT 06: TOP POPULATED COUNTRIES BY REGION: format issue

Is there an existing issue for this?

[X] I have searched the existing issues

Contact Name
Bobby Walters
Description of the bug?
Colum Headings need to be In ALL Caps
Version
Develop Branch
Steps to Reproduce the Error
Enter N for the number of countries to display
10
Enter Name of Region
Eastern Asia
Top 10 Populated Countries by Region

Code       Name                      Continent            Region               Population           Capital
CHN        China                     Asia                 Eastern Asia<PHONE_NUMBER>           1891
JPN        Japan                     Asia                 Eastern Asia         126714000            1532
KOR        South Korea               Asia                 Eastern Asia         46844000             2331

Code of Conduct

[X] I agree to follow this project's Code of Conduct

This Report and Report for UC03 are Similar and should be written in One Class

BUG was resolved


sqlx-cli: 0.6.2 -> 0.7.0

Description of changes

Updated to version 0.7.0 CHANGELOG
Removed patch as the issue is resolved upstream.

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Ah @xrelkd beat me to it. https://github.com/NixOS/nixpkgs/pull/242608


chore: fix node version to ensure compatibility and stability

[x] Ensure consistent node version, install nvm, configure nvmrc file, and set node engines in package.json

LGTM


Failure during installing Caffe2 on macOS

Hey there!
I faced some problems while installing Caffe2 on macOS. I'd be grateful if you could help me to resolve them.
The compilation asserts in the very beginning with the following error:
[  1%] Performing build step for 'nccl_external'
ls: /usr/local/cuda/lib64/libcudart.so.*: No such file or directory
ls: /usr/local/cuda/lib64/libcudart.so.*: No such file or directory
ls: /usr/local/cuda/lib64/libcudart.so.*: No such file or directory
ls: /usr/local/cuda/lib64/libcudart.so.*: No such file or directory
Compiling src/core.cu                         > /Users/kostya_by/Programming/aimatter/caffe2/third_party/nccl/build/obj/core.o
src/core.cu(717): error: expected an expression

src/core.cu(717): error: expected an expression

2 errors detected in the compilation of "/var/folders/n6/s4c7zx0s5f3fflgh_dl7qtc80000gn/T//tmpxft_000022bd_00000000-11_core.compute_52.cpp1.ii".
make[3]: *** [/Users/kostya_by/Programming/aimatter/caffe2/third_party/nccl/build/obj/core.o] Error 2
make[2]: *** [nccl_external-prefix/src/nccl_external-stamp/nccl_external-build] Error 2
make[1]: *** [CMakeFiles/nccl_external.dir/all] Error 2
make: *** [all] Error 2

I checked my /usr/local/cuda directory. There is no lib64 subdirectory there, only lib. And there is no entity matching the libcudart.so.* pattern, only libcudart.8.0.dylib, libcudart.dylib and libcudart_static.a.
I have the following software installed on my Mac:
macOS version: 10.12.3
CUDA driver version: 8.0.53
Thanks!

Ah, so right now we haven't tried building on a Mac with cuda support yet, and you can set -DUSE_CUDA=OFF to turn off the whole thing. NCCL does not support build on mac yet, I have a pending PR here:
https://github.com/NVIDIA/nccl/pull/62

Feel free to reopen this if things does not work :)

@Yangqing Just wanted to confirm, that it worked! Thanks!


DllNotFoundException

Brief Description
OS: OS X 10.11.6
Trying to follow along with the Generating Bindings instructions, but I immediately get a DllNotFoundException when I try to run. I've zipped everything I've done (binaries and all) and uploaded it here.
In my assemblies I've added a reference to every dll that the build process generated that wasn't obviously for tests.
build/gmake/lib/Release_x86/Common.CSharp.dll
build/gmake/lib/Release_x86/CppSharp.AST.dll
build/gmake/lib/Release_x86/CppSharp.dll
build/gmake/lib/Release_x86/CppSharp.Generator.dll
build/gmake/lib/Release_x86/CppSharp.Parser.CSharp.dll
build/gmake/lib/Release_x86/CppSharp.Parser.dll
build/gmake/lib/Release_x86/CppSharp.Runtime.dll
build/gmake/lib/Release_x86/CSharp.CSharp.dll
build/gmake/lib/Release_x86/Encodings.CSharp.dll
build/gmake/lib/Release_x86/NamespacesBase.CSharp.dll
build/gmake/lib/Release_x86/NamespacesDerived.CSharp.dll
build/gmake/lib/Release_x86/nunit.framework.dll
build/gmake/lib/Release_x86/VTables.CSharp.dll
I saw this error during the setup:
Error loading type maps from assembly 'CppSharp': The classes in the module cannot be loaded.
Though all the tests passed when I ran them via RunTests.sh. I've included the setup output in the zipped blob as setup-output.txt.
I've hit this problem both with the current stable, and what is in master right now. I can only assume that my setup has failed, or that I'm doing something very wrong in adding my references. Any help would be appreciated.
Thanks
Used settings
Target: OS X 10.11.6
JetBrains Rider
2017.1.1
$ clang -v
Apple LLVM version 8.0.0 (clang-8<IP_ADDRESS>)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
$ mono --version
Mono JIT compiler version <IP_ADDRESS> (d15-3/da80840 Thu Jul 20 16:43:07 EDT 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS:           normal
SIGSEGV:       altstack
Notification:  kqueue
Architecture:  amd64
Disabled:      none
Misc:          softdebug
LLVM:          yes(3.6.0svn-mono-master/8b1520c)
GC:            sgen (concurrent by default)
(I've also repro'd on mono 4.8.0)
Stack trace or incompilable generated code
/Library/Frameworks/Mono.framework/Versions/Current/bin/mono --debug --debugger-agent=transport=dt_socket,server=y,suspend=y,address=<IP_ADDRESS>:55555,setpgid=y /osx-try-cppsharp/Sample/bin/Debug/Sample.exe
Loaded assembly: /osx-try-cppsharp/Sample/bin/Debug/Sample.exe
Loaded assembly: /osx-try-cppsharp/Sample/bin/Debug/CppSharp.Generator.dll
Loaded assembly: /osx-try-cppsharp/Sample/bin/Debug/CppSharp.AST.dll
Resolved pending breakpoint at 'Program.cs:9,13' to void Sample.Program.Main (string[] args) [0x00001].
Loaded assembly: /osx-try-cppsharp/Sample/bin/Debug/CppSharp.dll
Loaded assembly: /Library/Frameworks/Mono.framework/Versions/4.8.0/lib/mono/gac/System.Core/<IP_ADDRESS>__b77a5c561934e089/System.Core.dll
Loaded assembly: /Library/Frameworks/Mono.framework/Versions/4.8.0/lib/mono/gac/System/<IP_ADDRESS>__b77a5c561934e089/System.dll
Loaded assembly: /osx-try-cppsharp/Sample/bin/Debug/CppSharp.Parser.dll
Loaded assembly: /osx-try-cppsharp/Sample/bin/Debug/CppSharp.Parser.CSharp.dll
Unhandled Exception:
System.DllNotFoundException: CppSharp.CppParser
at (wrapper managed-to-native) CppSharp.Parser.CppParserOptions+__Internal:ctor (intptr)
at CppSharp.Parser.CppParserOptions..ctor () [0x00041] in <38066ad309604fc99b06f70b4b937e95>:0
at CppSharp.Parser.ParserOptions..ctor () [0x00000] in <6a7e82c62194420a82de3e018e8a80ee>:0
at CppSharp.Driver..ctor (CppSharp.DriverOptions options) [0x0000e] in :0
at CppSharp.ConsoleDriver.Run (CppSharp.ILibrary library) [0x00012] in :0
at Sample.Program.Main (System.String[] args) [0x00006] in <399299cd69954991a77ace6d227d4ac6>:0

Very classic mistake here is to forget that the native library CppSharp.CppParser.dll wasn't copied to the executable folder.

Like @realvictorprm said, you need to copy libCppSharp.CppParser.dylib to the output folder.

I certainly hadn't done that. Now that I have though I'm still seeing the same error. I went ahead and even copied everything into the folder my binary is in. Still no luck.
sample-output.txt
Is there some other mistake I may have made here?
Thanks in advance

Can you check the architecture of your version of Mono? Just do mono --version and it should print something like Architecture:  amd64. Make sure your C++# architecture is the same.

Did you manage to fix it?

My day job has me away on a offsite. From here I've confirmed that I do see Architecture: amd64 for mono --version, and I can see Release_x64 build/lib folders. However my solution configuration for my Sample app in Rider is set to AnyCPU, is that the problem?

@dubiousnate run your executable with the following command:
MONO_DEBUG_LOG="debug" MONO_LOG_MASK="dll" mono <your_generator>.exe
You'll see detailed information about why the lib is not found. I would guess you're missing a dependency.

I have same issue on linux. Upon closer inspection it appears that .NET executables (like CSharp.Gen.exe) are built for x86 while native libs (like libCppSharp.CppParser.so) are x64. Mismatch causes this exception. Is there easy way to make .net executables build as x64?

You can pass an --arch=x64 argument to Premake. Or better yet, fix the logic in https://github.com/mono/CppSharp/blob/142b3be9f1e2d09bdf75672bac3baa46e7cac69f/build/Helpers.lua#L20.

Architecture is detected properly in that file and passing --arch=x64 does not do anything. Scouting generated make files i could not find a single instance where target architecture would be specified. I think this is the problem. Other .NET project with some interop i built recently had no platform specified in csproj and it always defaulted to x86. I ended up passing  /property:Platform=x64 to msbuild/xbuild. Can this be done somehow with premake?

I managed to build .net executables as x64 by adding  buildoptions { "/platform:x64" } to SetupManagedProject(). Problem is some of them still do not work. Executables which fail all display this:

[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: CppSharp.CppParser

libCppSharp.CppParser.so does exist in same directory as built executables and running them through strace shows this library is being loaded:
openat(AT_FDCWD, "/home/rk/src/open/CppSharp/build/gmake/lib/Release_x64/libCppSharp.CppParser.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\337Y\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=67381856, ...}) = 0
mmap(NULL, 45437992, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f66d54aa000
mprotect(0x7f66d7bdc000, 2093056, PROT_NONE) = 0
mmap(0x7f66d7ddb000, 2150400, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2731000) = 0x7f66d7ddb000
mmap(0x7f66d7fe8000, 95272, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f66d7fe8000
close(3)                                = 0
munmap(0x7f66d54aa000, 45437992)        = 0

And according to objdump they are of compatible architectures now.
./CppSharp.CLI.exe:     file format pei-x86-64
./libCppSharp.CppParser.so:     file format elf64-x86-64

No idea where to go from here.
P.S. my tests were performed on ArchLinux.

Ok after bit more digging i think i know what is problem in my case.
I tried to manually load dlopen("libCppSharp.CppParser.so", RTLD_LAZY); and it prins following error:
libCppSharp.CppParser.so: undefined symbol: _ZTIN4llvm11raw_ostreamE

Ran:
objdump -t libCppSharp.CppParser.so|grep UND

It prints lots of missing symbols (as i understand).  Precompiled binaries are probably not compatible. Will try building llvm/clang myself.
@dubiousnate could it be that you are facing exactly same issue here?

@rokups which Linux do you use? We build our binary LLVM for Ubuntu 14.04 and we have verified it doesn't work on 16.04. The same may apply to other Linux distributions.

Archlinux (mentioned in my post 20 days ago)

@rokups it's unfortunately quite tedious but your best option is to build LLVM yourself for your system and version.

I built llvm/clang as per docs but no luck still. Now error is bit different though:

libCppSharp.CppParser.so: undefined symbol: crc32

So it is missing crc32 import. Oddly enough all imported libs can be found but none of them provide it.
% ldd libCppSharp.CppParser.so
        linux-vdso.so.1 (0x00007ffc2a7ec000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007efe035f9000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007efe032ad000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007efe03096000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007efe02cde000)
        /usr/lib64/ld-linux-x86-64.so.2 (0x00007efe066af000)

At this point i am out of ideas. In case you have any thoughts on what i could check on - i am all ears. I made absolutely sure compiled llvm/clang is used. Deleted all downloaded binaries, recloned CppSharp.. Build system also says Using LLVM build: /home/rk/src/open/CppSharp/deps/llvm/. I am fairly confident it is not my mistake at this point..

@rokups I am sorry but it seems to me you have misunderstood. I am saying you shouldn't use our compiled binaries. Instead, compile LLVM and then C++# yourself.

No misunderstanding here. I cloned llvm and clang repos, checked out appropriate commits and built them on my machine.
I am inching forward though. Adding links { "z", "tinfo" } to Helpers.lua under filter { "action:gmake" } got me further with missing linked libs. At the moment i am missing _ZN4llvm23EnableABIBreakingChecksE which seems to be in built libclang.so. I am yet to figure out how to link to that (premake is a odd beast). Makes me wonder how come it all works on CI. I am using same build/Compile.sh script after all..

I see, my apologies. The explanation why it works has to lie somewhere in the different Linux systems. About EnableABIBreakingChecks, it seems to be part of the Config module. Try linking it if we don't already. If we do, we have found that the order they are listed in premake matters too so you could try moving it around.

Could you elaborate please? What Config module? I see nothing named like that in llvm dir, is it something else? Also reordering you mean in LLVM.lua SetupLLVMLibs() function?

Yes, that's the one. And "Config" is one of the modules LLVM has.

Ok there was definitely some mess-up somewhere, as using Scripts/LLVM.lua to build llvm produces different results:
mono --debug "../lib/Release_x64/CSharp.Gen.exe"

Generating bindings for CSharp (CSharp)
Looking for tests in: /home/rk/src/open/CppSharp/tests/CSharp
mono: symbol lookup error: /home/rk/src/open/CppSharp/build/gmake/lib/Release_x64/libCppSharp.CppParser.so: undefined symbol: LLVMInitializeAArch64TargetInfo

And libCppSharp.CppParser.so itself can be loaded by dlopen(), no more missing symbols. Any idea what error above is about?

@rokups What is the architecture on your host system?
We only try to compile x86 so it's really weird it fails with AArch64 symbols...

It is x86_64
On November 17, 2017 9:30:33 PM João Matos<EMAIL_ADDRESS>wrote:

@rokups What is the architecture on your host system?
We only try to compile x86 so it's really weird it fails with AArch64
symbols...
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mono/CppSharp/issues/946#issuecomment-345343311


Domain activation

Before opening, please confirm:

[X] I have checked the custom domains troubleshooting guide.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

App Id
d1eqrct9sbxwxw
Region
us-west-2
Step
Domain activation
Status
Failed
Issue or question
I have verified the domain using CNAM.
I have added the CNAM for cloudfront and point the custom domain (www.tcrindustries.com) to cloudfront.
Yet, I am getting the Domain Activation error.
Not sure wh
Error message
Error message: One or more aliases specified for the distribution includes an incorrectly configured DNS record that points to another CloudFront distribution. You must update the DNS record to correct the problem. For more information, see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-restrictions
Additional information
No response

According to our records, this domain is now available. Re-open if you have any further issues.


Sanity

I order for the publishers to start to add content into Sanity, we should make the best possible editor experience in Sanity

Where does this epic fit into the "Go live" and "Switch off AEM" plan?


WIP: Default the display name to imagestream name

Resolve two issues:

Set the notebook display  name to default to the imagestream name when annotation opendatahub.io/notebook-image-name does not exist. This fixes the instance where the Spawner UI will have a blank radio button for the notebook

Resolve error in the JH logs when notebook imagestream has no tags set

  File "/opt/app-root/lib/python3.6/site-packages/jupyterhub_singleuser_profiles/api/api.py", line 52, in decorated
    return f(user=user, *args, **kwargs)
  File "/opt/app-root/lib/python3.6/site-packages/jupyterhub_singleuser_profiles/api/api.py", line 107, in get_images
    images = _PROFILES.images.get()
  File "/opt/app-root/lib/python3.6/site-packages/jupyterhub_singleuser_profiles/images.py", line 94, in get
    result = self.load()
  File "/opt/app-root/lib/python3.6/site-packages/jupyterhub_singleuser_profiles/images.py", line 69, in load
    for tag in i.spec.tags:
TypeError: 'NoneType' object is not iterable

Signed-off-by: Landon LaSmith<EMAIL_ADDRESS>

LGTM...once you are happy, please remove the WIP, I tested it and it works as advertised:-)


Update beta parser to accomodate rc3

Just a small set of changes to fix issues I ran across when using this to test a newly-developed API.
There's probably still plenty of room for improvement here, but figured I'd try to share a few changes quickly in case anyone else is running in to problems. Hope you find them useful.

Looks good; I need to get back to this soon. In the middle of switching day jobs so the help is appreciated @mattmueller


New Version of PSMoveService doesn't stay running?

Hey there,
I am trying to connect my new PS Move controllers but I keep running into this issue where everytime I run the PSMoveServiceAdmin.exe it will initiate and then close the window afterwards.
My log shows the following:
[2018-10-23 06:22:43.54]: main - Starting PSMoveService v0.9-alpha 9.0.0 (protocol v0.9-alpha 9.0.0)
[2018-10-23 06:22:43.70]: USBAsyncRequestManager::startup - Requested LibUSBApi
[2018-10-23 06:22:43.71]: USBAsyncRequestManager::startup - Creating LibUSBApi
[2018-10-23 06:22:43.75]: USBAsyncRequestManager::startup - Initialized USB API
[2018-10-23 06:22:43.83]: DeviceManager::startup - Platform Hotplug API is ENABLED
[2018-10-23 06:22:43.144]: bluetooth_get_host_address - Found a bluetooth radio
[2018-10-23 06:22:43.146]: bluetooth_get_host_address - Retrieved radio info
[2018-10-23 06:22:43.315]: PSMoveController::open - Opening PSMoveController(\?\hid#vid_054c&pid_0c5e&col01#6&8b884fc&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030})
[2018-10-23 06:22:43.320]: PSMoveController::open -   with EMPTY serial_number
[2018-10-23 06:22:43.328]: WorkerThread::start - Starting worker thread: PSMoveSensorProcessor
[2018-10-23 06:22:43.333]: DeviceTypeManager::update_connected_devices - Device device_id 0 (PSMove) opened
[2018-10-23 06:22:43.337]: PSNaviController::open - Opening PSNaviController(gamepad_1)
[2018-10-23 06:22:43.338]: PSNaviController::open -   Successfully opened gamepad: XInput Controller 1 #1
[2018-10-23 06:22:43.347]: DeviceTypeManager::update_connected_devices - Device device_id 1 (PSNavi) opened
[2018-10-23 06:22:43.358]: TrackerDeviceEnumerator - Skipping device (USB\VID_1415&PID_2000\b3_p9.4.2) - Operation not supported or unimplemented on this platform
[2018-10-23 06:22:43.361]: PS3EyeTracker::open - Opening PS3EyeTracker(USB\VID_1415&PID_2000\b3_p9.4.2, camera_index=0)
[2018-10-23 06:22:43.627]: SharedMemory::initialize() - Allocating shared memory: tracker_view_0
[2018-10-23 06:22:43.949]: DeviceTypeManager::update_connected_devices - Device device_id 0 (PSEYE) opened
Any ideas what may be causing the issue? I would really like to promote what you have done here but I can't until I get it working myself lol.
Thanks,
James.

Ok I solved the issue... apparently the PSMoveService did not like that I had a wired XBox 360 controller attached while running the application. As soon as I disconnected the controller, it worked.

Thanks for the debugging info. That's super helpful. Sounds like something about how I am using the gamepad library in PSMoveService broke. The gamepad library is used for people doing virtual controllers (xbox gamepad+bulb) or attaching a PSNavi to their PSMove. Glad to hear you were able to work around the issue in the mean time. I'll take a look at this as soon as I can.

Ok that worked... did a few tests and the new version seems to be stable with a controller attached. Awesome work!

Fixed in latest release: https://github.com/HipsterSloth/PSMoveSteamVRBridge/releases/tag/v1.5.1


All ability to exclude and include directories

Sometimes you might want to exclude an entire directory from static building or transpilation, like node_modules or bower_components, but you might want to include just a couple directories within those directories...figure out how to allow that kind of fine-grained control. For example, I want to exclude bower_components entirely, and most of node_modules, but I want to include lit-html and prendus-question-elements, and assessml

Done


stack trace in error field

https://github.com/sirupsen/logrus/blob/67a7fdcf741f4d5cee82cb9800994ccfd4393ad0/json_formatter.go#L64
Consider
data[k] = fmt.Sprintf("%+v", err)
instead of
data[k] = v.Error()
not to loose stack trace when using github.com/pkg/errors

Any updates/thoughts?

@markphelps
Still relevant enhancement, not stale.
Any updates/thoughts?

+1


Vulnerability roundup 103: libX11-1.7.0: 1 advisory [9.8]

search, files

[ ] CVE-2021-31535 CVSSv3=9.8 (nixos-21.05)

Scanned versions: nixos-21.05: 0b8b127125e.

https://github.com/NixOS/nixpkgs/pull/128003


import:uploads sftp doesn't support ed25519 keys

When using sftp import:uploads parses a url, sends it to League\Flysystem\PhpseclibV2\SftpConnectionProvider
PhpseclibV2 doesn't support ed25519 keys. The logic in SftpConnectionProvider is to use an agent unless opt'd out (7th parameter of SftpConnectionProvider).
I suggest two workarounds:
1.) if password is specified set useAgent = false.
2.) add an additional cli argument to disable agent.
PhpseclibV3 support is also available. I haven't looked into it (unsure about backwards compat).
https://github.com/thephpleague/flysystem/issues/1261
I'll open a PR for workaround 1 as it seems sane to me. Of course both of these only handle the case where password access is available!

I'll bump the version of phpseclib when I can. They haven't released a new version with v3 support yet. I'll open another issue for it.


Python Wheel Installation Script - Bug in getLibStatus

There is an error in the Python script for installing a Python wheel on a Databricks Cluster. To specify, there is the part at which the statuses of installed Python wheels are checked. The implementation is shown as follows:
def getLibStatus(shard, token, clusterid, dbfslib):

    resp = requests.get(shard + '/api/2.0/libraries/cluster-status?cluster_id='+ clusterid, auth=("token", token))
    libjson = resp.text
    d = json.loads(libjson)
    if (d.get('library_statuses')):
        statuses = d['library_statuses']

        for status in statuses:
            if (status['library'].get('whl')):
                if (status['library']['whl'] == 'dbfs:' + dbfslib):
                    return status['status']
                else:
                    return "not found"
    else:
        # No libraries found
        return "not found"

On checking with if (status['library']['whl'] == 'dbfs:' + dbfslib) and the with else-statement placed like this, the function returns "not found", as soon as the function finds any python wheel with another location than dbfslib.
On the other hand, there is no return statement, if no python wheel is installed on the cluster, but at least one PyPI modules. This results in a return of None. The return statements for the package not found can be merged like this:
def getLibStatus(shard, token, clusterid, dbfslib):

    resp = requests.get(shard + '/api/2.0/libraries/cluster-status?cluster_id='+ clusterid, auth=("token", token))
    libjson = resp.text
    d = json.loads(libjson)
    if (d.get('library_statuses')):
        statuses = d['library_statuses']

        for status in statuses:
            if (status['library'].get('whl')):
                if (status['library']['whl'] == 'dbfs:' + dbfslib):
                    return status['status']
    # No libraries found
    return "not found"

That way, the function behaves as intended.

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

ID: 56b86f59-7a22-90c6-9aa6-652b85975612
Version Independent ID: b333ab7b-847b-7129-9b62-4b9b934747d7
Content: Continuous integration and delivery on Azure Databricks using Azure DevOps - Azure Databricks - Workspace
Content Source: databricks/dev-tools/ci-cd/ci-cd-azure-devops.md
Service: azure-databricks
GitHub Login: @mssaperla
Microsoft Alias: saperla

@Lemppi  Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

#please-close


Why I cannot find drawText method in Canvas class?

You should use TextPainter to draw text.  Using TextPainter will let you take advantage of all the international text support in the engine (e.g., bidirectional text, text shaping, etc).


Add support for msk connect resources

Description of your changes
Adds support for the three Msk Connect resources.
Note: AWS has very limited api support for these resources. Other than the scaling object, every field on the terraform schema has ForceNew: true, so from the crossplane perspective, the resources are mostly immutable once created.  If you want to make a change, you'll have to delete it and make a new one.
The WorkerConfiguration also has no delete method in the aws API, so once you've created a config with a given name, that's it, forever.
There is some surprising lifecycle behavior around the Connector resource, that I'm not sure if it's possible to resolve.
The AWS api exposes the State of a connector, which can be either "Creating", "Running", "Deleting" or "Failed". The terraform provider uses this state to determine whether a creation call succeeds, but does not expose it in the observed status as a property of the resource, so I can't think of a way to get it into crossplane.
When I create a Connector resource that is broken (as in the connector-broken.yaml example, where the kafka cluster doesn't exist), what happens is that the create call runs for just over 20 minutes (I had to increase the timeout slightly from the 20 minutes configured in the terraform provider), and then fails, and sets the following conditions:
  - lastTransitionTime: "2024-02-17T23:47:54Z"
    reason: ReconcileSuccess
    status: "True"
    type: Synced
  - lastTransitionTime: "2024-02-17T23:47:54Z"
    reason: Creating
    status: "False"
    type: Ready
  - lastTransitionTime: "2024-02-18T00:08:23Z"
    message: 'async create failed: failed to create the resource: [{0 waiting for
      MSK Connect Connector (arn:aws:kafkaconnect:us-east-2:905418119848:connector/connector-broken/4f63f714-30c2-4dd7-bf0c-edced7778d4e-2)
      create: unexpected state ''FAILED'', wanted target ''RUNNING''. last error:
      UnknownError.Unknown: The last operation failed. Retry the operation.  []}]'
    reason: AsyncCreateFailure
    status: "False"
    type: LastAsyncOperation

The provider then immediately runs an Observe, which finds that the connector does exist, and that its status matches the spec (since the State is not exposed in the terraform schema), and decides that creation must have succeeded after all, filling in status.atProvider and setting the following conditions:
  - lastTransitionTime: "2024-02-17T23:47:54Z"
    reason: ReconcileSuccess
    status: "True"
    type: Synced
  - lastTransitionTime: "2024-02-18T00:08:25Z"
    reason: Available
    status: "True"
    type: Ready
  - lastTransitionTime: "2024-02-18T00:08:25Z"
    reason: Success
    status: "True"
    type: LastAsyncOperation
  - lastTransitionTime: "2024-02-18T00:08:25Z"
    reason: UpToDate
    status: "True"
    type: Test

I'm not quite sure how best to reconcile this behavior of the aws resource, and the terraform provider, with what crossplane expects.
Fixes #374
Fixes #1146
I have:

[ ] Run make reviewable test to ensure this PR is ready for review.

How has this code been tested

Manually, in kind, using the manifests I committed. I was able to get the connector to enter a Running state, in which it did nothing because there was no traffic, and no actual working code to run, but the infrastructure was all healthy.
I'll run uptest on the manifests that don't require manual intervention.
Output from local run with the connector.yaml example:
NAME                                       READY   SYNCED   EXTERNAL-NAME   AGE
group.cloudwatchlogs.aws.upbound.io/test   True    True     op-vggf5w1o     154m

NAME                                           READY   SYNCED   EXTERNAL-NAME       AGE
securitygrouprule.ec2.aws.upbound.io/egress    True    True     sgrule-2572981504   154m
securitygrouprule.ec2.aws.upbound.io/ingress   True    True     sgrule-2191228865   154m

NAME                                  READY   SYNCED   EXTERNAL-NAME          AGE
securitygroup.ec2.aws.upbound.io/sg   True    True     sg-0b03fcec08eeca5d9   154m

NAME                                   READY   SYNCED   EXTERNAL-NAME              AGE
subnet.ec2.aws.upbound.io/subnet-az1   True    True     subnet-04e98dd98ea750f9f   154m
subnet.ec2.aws.upbound.io/subnet-az2   True    True     subnet-040975500b81b55f1   154m

NAME                         READY   SYNCED   EXTERNAL-NAME           AGE
vpc.ec2.aws.upbound.io/vpc   True    True     vpc-0319cb8653512d954   154m

NAME                                               READY   SYNCED   EXTERNAL-NAME                                                             AGE
deliverystream.firehose.aws.upbound.io/connector   True    True     arn:aws:firehose:us-east-2:226209437353:deliverystream/example-absdfsdf   154m

NAME                                READY   SYNCED   EXTERNAL-NAME   AGE
role.iam.aws.upbound.io/connector   True    True     connector       154m

NAME                                   READY   SYNCED   EXTERNAL-NAME                                                                                AGE
cluster.kafka.aws.upbound.io/example   True    True     arn:aws:kafka:us-east-2:226209437353:cluster/example/d9f0e042-f520-4e34-a6d6-1ac5fce3e82d-4   154m

NAME                                         READY   SYNCED   EXTERNAL-NAME                                                                                AGE
configuration.kafka.aws.upbound.io/example   True    True     arn:aws:kafka:us-east-2:226209437353:configuration/example/eae7df28-446c-4c93-9ecb-ab0737de0e01-4   154m

NAME                                                     READY   SYNCED   EXTERNAL-NAME                            AGE
connector.kafkaconnect.aws.upbound.io/connector          True    True     c6c84280-7796-42cc-9f4b-42607692741a-2   29m

NAME                                               READY   SYNCED   EXTERNAL-NAME                            AGE
customplugin.kafkaconnect.aws.upbound.io/example   True    True     29fec958-2694-4251-9a62-b2f7de64f7fc-2   154m

NAME                                                        READY   SYNCED   EXTERNAL-NAME                            AGE
workerconfiguration.kafkaconnect.aws.upbound.io/connector   True    True     2d5604c3-ec17-4394-be2f-8b07131963c3-2   154m

NAME                                 READY   SYNCED   EXTERNAL-NAME   AGE
bucket.s3.aws.upbound.io/connector   True    True     op-bonq5b6d     154m

NAME                               READY   SYNCED   EXTERNAL-NAME   AGE
object.s3.aws.upbound.io/example   True    True     empty.zip       154m

/test-examples="examples/kafkaconnect/v1beta1/customplugin.yaml"

/test-examples="examples/kafkaconnect/v1beta1/workerconfiguration.yaml"

/test-examples="examples/kafkaconnect/v1beta1/connector-broken.yaml"

/test-examples="examples/kafkaconnect/v1beta1/connector-broken.yaml"
The previous run actually failed because of the aws account hitting a VPC limit. It would be great if someone from upbound could submit some AWS quota increase requests for the number of VPCs per region.

/test-examples="examples/kafkaconnect/v1beta1/connector-broken.yaml"

The previous run failed with
2024-03-01T19:10:45.0295557Z     logger.go:42: 19:10:44 | case/0-apply |       message: 'connect failed: cannot initialize the Terraform plugin SDK async external
2024-03-01T19:10:45.0296976Z     logger.go:42: 19:10:44 | case/0-apply |         client: cannot get terraform setup: cannot get referenced Provider: default:
2024-03-01T19:10:45.0298532Z     logger.go:42: 19:10:44 | case/0-apply |         Timeout: failed waiting for *v1beta1.ProviderConfig Informer to sync'

I haven't seen this particular failure before, but it doesn't seem at all related to this PR.
Maybe it will pass a second time?
/test-examples="examples/kafkaconnect/v1beta1/connector-broken.yaml"

The previous failure was caused by https://github.com/upbound/universal-crossplane/issues/442. Pinning the UXP version in the makefile resolved the issue.
/test-examples="examples/kafkaconnect/v1beta1/connector-nokafka.yaml"

Uptest is failing because of too many VPCs. This is a problem in the upbound AWS account, which I don't have access to.
@jeanduplessis Could you please take a look at why cloud-nuke doesn't seem to be cleaning them up? Requesting a limit increase from AWS on the number of VPCs per region would also be very helpful.

/test-examples="examples/kafkaconnect/v1beta1/connector-nokafka.yaml"

@mbbush its should be fine now again. Ping me directly if the uptest run fails again with that issue.

/test-examples="examples/kafkaconnect/v1beta1/connector-nokafka.yaml"

I believe this is ready for review. @turkenf do you think you could take a look before the next provider-aws release?
I don't see any path forward to improving the behavior of the provider when creating a Connector results in creating a connector in state Failed in aws. The state is not exposed by the tf provider, so the only way I could even possibly query it would be to extract the aws client from the provider and make an explicit API call.
I tried that, and was able to extract the aws client, but it was wrapped in a different type, and I couldn't figure out how to extract the underlying aws sdk client (it's probably possibly, I just don't know how). But regardless of whether it's possible I'm not sure if it's wise.
My preference would be to merge this as-is, and release it, with the known issue that the provider does not expose error states with the connector. If there's consensus that it is wise to somehow add the connector's status field to the schema by invoking the SDK client directly, then I can work on that for a future release, as it would be a non-breaking change.
Nothing significant has changed, so I'm confident the e2e tests will still pass. I'll rerun the ones that are testable automatically, but the full example which requires manual intervention is kind of a pain to run and takes a very long time, so I'd rather only do it one more time after this is otherwise approved.

/test-examples="examples/kafkaconnect/v1beta1/customplugin.yaml"

/test-examples="examples/kafkaconnect/v1beta1/connector-nokafka.yaml"

/test-examples="examples/kafkaconnect/v1beta1/connector-nokafka.yaml"

@turkenf Rebased and resolved conflicts. It's not clear to me if you've already started the process of releasing v1.3.0. It would be great if this made it in, but it's not a huge problem for me if it doesn't.

@mbbush, we will include this PR.

Thanks! I'm rebasing/committing from the train on my way in to the office, so I didn't have the bandwidth to run make generate locally. But I applied the diff from the failed check-diff ci job using patch, so it should pass now.

/test-examples="examples/ec2/v1beta1/vpc.yaml"


Changes to data blending

A couple changes that fix issues found when adopting the new dataset api (builder like) in dahsmore.

Coverage increased (+0.004%) to 90.73% when pulling 787b738db98b62d643abedf7960d1313cc1d0221 on x8lucas8x:changes-to-data-blending into c19123779728b656381889adc73925e40b832e36 on kayak:master.

Coverage increased (+0.004%) to 90.73% when pulling 787b738db98b62d643abedf7960d1313cc1d0221 on x8lucas8x:changes-to-data-blending into c19123779728b656381889adc73925e40b832e36 on kayak:master.


Fix Performance Unit Tests requiring Unswizzling

These tests require unswizzling in the SDK. I have a hunch that we don't want to include unswizzling in the SDK, so I want to look into a way to do this without importing the GUL Swizzling Test helpers into the SDK.
In addition, this fixes the UNSWIZZLE_AVAILABLE which was missing the FPR prefix
#no-changelog

Just one test failure

https://github.com/firebase/firebase-ios-sdk/issues/11903


LLama Toolkit integration seems to be broken for Vector index.

when building a toolkit and creating llama chat agent (llam_index v0.6.9 and langchain v0.0.175), it doesn't work against the data in vector store and instead creates a generic chat agent. Any pointers on whats missing here?
from langchain.agents import Tool
from langchain.chains.conversation.memory import ConversationBufferMemory
from langchain.chat_models import ChatOpenAI
from llama_index.langchain_helpers.agents import LlamaToolkit, create_llama_chat_agent, IndexToolConfig

query_engine = index.as_query_engine(verbose=True,text_qa_template=QA_PROMPT,streaming=True)
index_configs = []
tool_config = IndexToolConfig(
    query_engine=query_engine,
    name=f"Vector Index",
    description=f"Vector index",
    tool_kwargs={"return_direct": True, "return_sources": True},
)
index_configs.append(tool_config)
toolkit = LlamaToolkit(
    index_configs=index_configs
)
memory = ConversationBufferMemory(memory_key="chat_history")
llm = ChatOpenAI(temperature=TEMPERATURE, model_name=OPENAI_MODEL_ID)
agent_chain = create_llama_chat_agent(
    toolkit,
    llm,
    memory=memory,
    verbose=True
)
 response = agent.run(query)

Have you got answer to this issue?

I am waiting too for an answer to this issue

The toolkit is pretty un-maintained right now. Would welcome a contribution, but tbh I would recommend using our own data agents
https://gpt-index.readthedocs.io/en/latest/core_modules/agent_modules/agents/modules.html#module-guides


WinRmMachineLocation obtaining WinRmTool parameters via its config().get

This allows WinrmTool props to be supplied via external configuration providers.
WinRmTool instantiation is made to be the same as in SshMachineLocation#connectSsh

LGTM. @bostko can you add a test to verify the changes work.

@neykov as far as I can see test for this requires two things:

BrooklynCampPlatformLauncherNoServer in order external config to work https://github.com/apache/brooklyn-server/blob/master/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatform.java#L90
WinRmMachineLocation in order to test it

Could you advice on how to approach writing such test?

You'd need your test living in brooklyn-camp, see ExternalConfigBrooklynPropertiesTest for an example on how to set it up
Have a look at tests using RecordingWinRmTool for examples of a unit-testable winrm location. See AbstractJcloudsStubYamlTest for a yaml-accessible location
JcloudsExternalConfigYamlTest might be just what you need as a starting point

I missed to add that my concern is that I do not know find suitable place to put such test.
Adding test in brooklyn-camp or brooklyn-software-winrm will introduce circular dependency.

AbstractJcloudsStubYamlTest in brooklyn-camp already depends on brooklyn-software-winrm. Adding the test in brooklyn-camp would be fine.

Thanks @bostko, merging.

This fixes https://issues.apache.org/jira/browse/BROOKLYN-476


Renders slow on big projects

The generated website has rendering problems if the project is big enough. This maybe a reason to reorganize the architecture for the<EMAIL_ADDRESS>Let's discuss.
Should we even keep Angular?

Probably the biggest bottle neck is shadow DOM since browser needs to parse the CSS and apply styles individually to every component. I would suggest to try disableEncapsulation: true; and test if it helps.

Tested.
Impossible to say, because when using disableEncapsulation: true, CSS is not reloaded at all (I used the designer tools to change one of the colors).
With ShadowDOM version, most likely the changes are applied slowly because it happens not right away. When changing the color I see that first the application rebuilds and reloads the JSON (progress bar is visible). Then the components are re-rendered (it is visible because slow) but with old colors. Then they are re-rendered again with new colors.
So, there are 2 problems:

when not using ShadowDOM, re-rendering does not happen. I think that we can re-load CSS after getting new JSON by adding ?<random> parameter to it
when using ShadowDOM, for some reason there are 2 re-renders

Any news on this one?


estimatefee output error

Operating system:
Ubuntu 17.10 (GNU/Linux 4.13.0-19-generic x86_64)
Dogecoin version:
dogecoin-1.10.0, Block synchronize works well.
dogecoin-cli estimatefee 1 always return -1.00000000
Anyone has problem, will it be fixed, thanks?

I am also facing the same issue for testnet version.

@patricklodder @rnicoll @michilumin We can close this one.


feat: added sonar properties

Description
adding sonar properties to enable better controlling over the exclusion and quality gate
Issue ticket number and link
https://issues.redhat.com/browse/RHTAP-1856
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist:

[X] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added meaningful description with JIRA/GitHub issue key(if applicable), for example HASSuiteDescribe("STONE-123456789 devfile source")
[ ] I have updated labels (if needed)

/lgtm


General Intro should define normative words

The General Intro should define the normative words for us. This seems done in some domains, but not all of them.
Likely section 7, or appendix E

Here is the text from Cardiology and Radiology Technical Frameworks
H2 Normative versus informative contents of the Technical Framework
Most parts of the Technical Framework describe required or optional characteristics of
Integration Profiles, Actors and Transactions: these are normative. For a better understanding of
the text, there also exist illustrating parts in the Technical Framework that are informative and
non-normative.
According to IETF RFC 2119, certain words indicate whether a specific content of the Technical
Framework is normative: either required (e.g., “must”, “required”, “shall”) or optional (e.g.,
“may”, “recommended”). Informative content does not contain these key words.

RFC 2119 has been updated by 8174 which has been combined into BCP-14.  Having an acknowledgement of one of these (preferably BCP-14) would make it clear.  However a review of all docs to ensure that capitalization has been adhered to should be done.

@MaryLJ should this be handled by the documentation workgroup?

I can work with you to add text to the General Intro.

add to general Intro, appendix E, section E.1 a new section E.1.1
H2 E.1.1 Normative versus informative contents of the Technical Framework
Most parts of the Technical Framework describe required or optional characteristics of
Integration Profiles, Actors and Transactions: these are normative. For a better understanding of
the text, there also exist illustrating parts in the Technical Framework that are informative and
non-normative.
According to IETF BCP-14 (currently  RFC 2119 and RFC 8174), certain words indicate whether a specific content of the Technical
Framework is normative: either required (e.g., “must”, “required”, “shall”) or optional (e.g.,
“may”, “recommended”). Informative content does not contain these key words.


Error in migration after upgrading github enterprise to 3.8

Description
I am seeing the following error.
Git archive URL returned a HTTP 400 response. Please make sure that the URL is valid and that the file is accessible.
There is3 bucket set in the console.
I am seeing objects being uploaded to s3 bucket. So there does not seem to be AWS Credentials issue.
Reproduction Steps
gh gei migrate-repo --github-source-org "sourceorg" --source-repo "sourcerepo" --target-repo "targetrepo" --github-target-org "orgname" --ghes-api-url "apiurl" --wait --verbose

Closing this issue as it relates to the GitHub Enterprise Importer backend rather than the CLI, and I am supporting @solankiarpan directly.


session material for defining project

as appropriate, relocate material to the session page for defining a project.
this should be whatever you'll be presenting from, asking people to examine during class, etc and lives in _sessions/w0/d1/defining_project.md
material which is reference / read ahead should remain in _topic

updated, let's see how formatting appears - looked good in the preview.