Refactor common code across providers

Across the 3 currently supported cloud providers, there is some common (duplicated) code that could be refactored to single and reusable implementations.  We should take a pass through the providers and refactor to remove this duplication.

The ProviderID field that almost all types have in their Status is one example that could be refactored, as noted by @negz in https://github.com/crossplaneio/crossplane/pull/317#discussion_r257360982
// the external ID to identify this resource in the cloud provider
ProviderID string `json:"providerID,omitempty"`

Let's be careful when we address this that we don't go too far with refactoring purely for the sake of deduplication. https://github.com/crossplaneio/crossplane/issues/448 contains a few links explaining this concept in more detail.

@jbw976 is this handled with #612 or separate?

Yes, I think this is actually taken care of in the #612 epic.  I've included issues #269 and #584 in that epic to properly track those items.


MarkerCluster: Unclusterize points which at the same place

How i can unclusterize points, which is at the same place? I have situation, where i have several points with same lnglat values and this cluster cannot be unclusterized. Is there such a possibility to do it now?

You can try something like OverlappingMarkerSpiderfier that combines well with markerclustererplus

@Fausto-theXS thanks, will check it!

How did your test go? I have tested OverlappingMarkerSpiderfier  but ended op dropping it due to performance

In my case i solved the problem by use of simple google.maps.InfoWindow. If points is overlapped - it show info window about points which in one position.
Example:
  const infoWindow = new google.maps.InfoWindow();

  google.maps.event.addListener(_markerCluster, 'clusterclick', (cluster, event: Event) => {
    if (cluster.getMarkers().length > 1) {
      const markers = cluster.getMarkers();
      let isOverlappedCluster = true;

      markers.slice(1).reduce((prevMarker: google.maps.Marker, marker: google.maps.Marker) => {
        if (marker.getPosition().equals(prevMarker.getPosition()) === false) {
          isOverlappedCluster = false;
        }

        return marker;
      }, markers[0]);

      if (isOverlappedCluster) {
        infoWindow.setContent('markers info...');
        infoWindow.setPosition(cluster.getCenter());
        infoWindow.open(gmap);
      }
    }

In my case i solved the problem by use of simple google.maps.InfoWindow. If points is overlapped - it show info window about points which in one position.

Instead of showing an infoWindow you could move the marker a tiny bit:
if (isOverlappedCluster) {

    markers[0].setPosition(new google.maps.LatLng(markers[0].getPosition().lat() + 0.0005, markers[0].getPosition().lng() + 0.0005))

}

I used markerclustererplus, and for me this works:
google.maps.event.addListener(cMarkerClusterer, "clusterclick", function (c) {
var markers = c.getMarkers();
        //Check Markers array for duplicate position and offset a little
        if (markers .length > 1) {
            //Check if all markers are in the same position (with 4 significant digits)
            if (markers .every((val, index, arr) => (val.getPosition().lat().toFixed(4) == arr[0].getPosition().lat().toFixed(4)) && (val.getPosition().lng().toFixed(4) == arr[0].getPosition().lng().toFixed(4)))) { /
                //Don't modify first element
                for (i = 1; i < cAllClusterMarkers.length; i++) {
                    var existingMarker = cAllClusterMarkers[i];
                    var pos = existingMarker.getPosition();
                    var quot = 360.0 / cAllClusterMarkers.length;
                    var newLat = pos.lat() + -.00008 * Math.cos(+a * i); //+ -.00008 * Math.cos((+quot * i) / 180 * Math.PI);  //x
                    var newLng = pos.lng() + -.00008 * Math.sin(+a * i);  //+ -.0008 * Math.sin((+quot * i) / 180 * Math.PI);  //Y
                    existingMarker.setPosition(new google.maps.LatLng(newLat, newLng));
                }
                let cZoom = map.getZoom();
                map.setZoom(cZoom-1);
                map.setZoom(cZoom+1);
            }
        }
    });


Make predicate a required flag in attest commands

Summary

The default value for the predicate parameter for the attest and attest-blob commands is an empty string. However, an empty string is not a valid default value for this parameter resulting in an error.
In https://github.com/sigstore/cosign/issues/2937, it was suggested that the default value for this parameter should be - (read from stdin). But this results in somewhat odd behavior when stdin is not used.
This commit retains the default value of "", but adds the following guardrails:

Makes the --predicate parameter required.
Performs an early check for empty string, and reports an error accordingly.

I also ported the new behavior to the attest-blob command.
Release Note

attest-blob can now read predicate payload from standard input.

Documentation

Updated the CLI docs accordingly.

lgtm modulo docs

@znewman01, fixed the docs and a minor issue on the tests :pray:


jQuery UI Sortable serialize() method does not work with Tabledit

I just tried to use Tabledit with jQuery UI Sortable and it seems like there is a conflict if you try to use both libraries. The problem is that Tabledit changes id of tr elements from e.g.
id="item-100" -> id="100"

To use jQuery UI Sortable serialize() method (http://api.jqueryui.com/sortable/#method-serialize) on table rows we need to have their ids in a format like "item-[number]" or "item_[number]" which is not possible with current version of Tabledit.
What do you think about making both libraries compatible?

Yes, I will change this attribute to 'date-id' or something in the next update.
For now, you can change this line or comment it:
https://github.com/markcell/jQuery-Tabledit/blob/master/jquery.tabledit.js#L104
I do not use this attribute, I send inputs, including hidden input with id.

I also found alternative workaround. sortable method may be called like this:
jQuery('table tbody').sortable('serialize', {key: 'id', expression: /(.+)/})

Then the query string looks similar to: ?id=1&id=2&id=3&.... It works well in that case.

;)


Node AzCopy: Parallelisation of the copy command – Missing --list-of-files-support

Which version of the AzCopy was used?
Note: The version is visible when running AzCopy without any argument
<EMAIL_ADDRESS>which uses azcopy version 10.16.2 under the hood.
Which platform are you using? (ex: Windows, Mac, Linux)
Mac
What command did you run? & What problem was encountered?
I was trying to parallelise the copying of a few hundred to a few thousand blobs between two storage containers by running several azCopyClient.copy() commands in parallel. (The fact that this call returns a job ID rather than a promise resolving to the result seems to suggest that parallelisation is supported and expected.) Unfortunately, even with a concurrency rate as low as 10 I was hitting resource limits in our Kubernetes container, which resulted in out-of-memory errors and very surprising "too many open file" errors.
How can we reproduce the problem in the simplest way?
I haven't double-checked the memory consumption of a single copy command call, but in our case the Kubernetes container had about 1 GB of free memory and 10 concurrent copy commands for single blobs lead to out-of-memory errors.
Have you found a mitigation/solution?
I ended up calling the azcopy-binary directly providing the list of files to be copied via the (somewhat hidden) --list-of-files argument. I am aware that this has performance issues for large number of files, but I consider those negligible compared to the poor performance of having to copy all files sequentially!
It would be great to extend the support of --list-of-files in @azure-tools/azcopy-node from the delete to the copy operation.

Re: parallelization: AzCopy itself is not really intended to be parallelized. It can be, but it is not designed to be.
Re: listoffiles: @JasonYeMSFT @MRayermannMSFT

@rene-leanix

The fact that this call returns a job ID rather than a promise resolving to the result seems to suggest that parallelisation is supported and expected.

More like since operations can take a really long time, azcopy-node does not want you to have to wait around for the results. If you want to the library page on npmjs.com gives on example of how to do that: https://www.npmjs.com/package/@azure-tools/azcopy-node

It would be great to extend the support of --list-of-files in @azure-tools/azcopy-node from the delete to the copy operation.

It is supported. 🙂 The copy method on AzCopyClient has an options parameter of type ICopyOptions. That type inherits from ICommonOptions, which contains listOfFiles.

Let me know if you aren't seeing that, and if so, version of azcopy-node you are using.

Oops, sorry, I missed that when I was browsing your source code! I think what convinced me that this option is only available for deletions was its JSDoc:

Oh. Ya we should fix that. 😁 And ok, we'll think about how we can update the README to expose some of the more useful things.


Bulk insert using sql web

Can I insert multiple records at once.

@pooja-chhabriya take a look at doc - https://github.com/ujjwalguptaofficial/sqlweb/wiki/Insert#insert-multiple-records-at-once

Thanks it is working now. Can you please tell me how to upsert using SQL
web like we have in js store.
On Sat, 14 Mar 2020, 10:05 pm Ujjwal Gupta<EMAIL_ADDRESS>wrote:

Closed #10 https://github.com/ujjwalguptaofficial/sqlweb/issues/10.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ujjwalguptaofficial/sqlweb/issues/10#event-3129562344,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOX66LYQPUPHGTVZTQSNPZTRHOW6FANCNFSM4LJKOX3A
.


Move all ReactSpan subclasses to a separate folder

Summary:
Move all ReactSpan subclasses to a separate folder.
This is a minor improvement in the context of my multi-PR work on https://github.com/react-native-community/discussions-and-proposals/issues/695.
I'm adding a new span class later, which was the direct motivation for this change.
Changelog:

[INTERNAL] [CHANGE] - Move all ReactSpan subclasses to a separate folder
Test Plan:

@mdvacca Could you review this?

@mdvacca There were already quite a few Span subclasses in the package, and I'm about to add at least one more. I thought it would be clearer if we put it inside a sub-package. It's not a big deal actually 🙂

@mdvacca It's a great point! I agree that we should be careful here.

Unfortunately this is a breakage of compatibility, could you analyze the usage of these classes by Open Source third party libraries in github search?
cc @cortinico

@cubuspl42 here some usages:
https://github.com/search?type=code&q=import+%2Fcom.facebook.react.views.text.*Span%2F+NOT+is%3Afork+language%3AJava&p=5
Most of the usages are copies of our classes (easily spottable if the filepath is com/facebook/react).
Other usages are related to old libraries, so the impact is limited IMHO.
@mdvacca could we move this to .internal maybe then?

Moving anything to .internal hardly works, because the internal Meta build system doesn't allow cycles between Java packages. Yeah, I mean actual Java packages.

Using Kotlin internal visibility modifier also doesn't work.

Moving anything to .internal hardly works, because the internal Meta build system doesn't allow cycles between Java packages. Yeah, I mean actual Java packages.

mmm how is com.facebook.react.views.text.span different from com.facebook.react.internal.text.span in terms of cycles?

Using Kotlin internal visibility modifier also doesn't work.

Using the internal modifier is sadly not an option for us because we use BUCK internally which treat each Java package as a separate library. So things will be internal to the package (i.e. same visibility as package private).

Moving anything to .internal hardly works, because the internal Meta build system doesn't allow cycles between Java packages. Yeah, I mean actual Java packages.

mmm how is com.facebook.react.views.text.span different from com.facebook.react.internal.text.span in terms of cycles?

I assumed we'd create a cycle between com.facebook.react.internal.views.text and com.facebook.react.views.text. It happened immediately in the previous PR. But maybe it indeed doesn't happen here. I can check.

I assumed we'd create a cycle between com.facebook.react.internal.views.text and com.facebook.react.views.text. It happened immediately in the previous PR. But maybe it indeed doesn't happen here. I can check.

Ah yeah that can be the case. Still if so, we'll have the cycle anyway between com.facebook.react.views.text and com.facebook.react.views.text.span.
As a last resort we could also use com.facebook.react.views.text.internal.span. It's not preferred as we tend to have everything internal in the top level .internal package, but when not possible that's also an option

I'll try it.
Have you considered using adding some annotation for React-internal APIs? Sure, it's not as clear as the .internal infix in the fully qualified name, but at least it makes it clear what is and what isn't considered stable and supported for the community dependencies with minimal changes to the RN actual code.

Have you considered adding some annotation for React-internal APIs?

Yes we do already have some:
https://github.com/facebook/react-native/blob/b8778abca5d35d6aaac6d118728d692f6172cec2/packages/react-native/ReactAndroid/gradle.properties#L25-L26
We've been discussing with @mdvacca to actually add an @Internal or @ReactNativeInternal annotation as well exactly for the reasons you mentioned

Yes we do already have some

I don't think that they match my use-case, though. @VisibleForTesting is clearly specific for stuff visible only for testing, while "unstable" sounds like "public, but experimental and might change".

We've been discussing with @mdvacca to actually add an @Internal or @ReactNativeInternal

Interesting! A remaining question is whether this would be a replacement or a supplement to the .internal convention.

Interesting! A remaining question is whether this would be a replacement or a supplement to the .internal convention.

It's going to be a supplement as we intend to have .internal as primary way to indicate non public APIs

@cortinico Could you take a look now?
If the checks succeed, does it mean Buck accepted this code?

If the checks succeed, does it mean Buck accepted this code?

Nope till we import it. Let me look into it

I'll drive this forward as there are various failures internally which needs to be handled.


Adding repeatable element using a repeat block

Describe your specific features or fixes
Added a repeat element controller and delete functionality.
Resolves: MWPW-147085
Test URLs:

Before: https://main--events-milo--adobecom.hlx.page/
After: https://gbajaj-repeat-element--events-milo--adobecom.hlx.page/

@gbajaj91 this looks good! Do you want to merge some reusable functions to a place (maybe share-controller.js) for now so that other works can start to potentially leverage it?


With Docker 1.8, rancher agent containers are showing up in UI.

V0.32.0
When using Docker 1.8, rancher agent containers are showing up in UI. These used to be hidden.
This issue is to track that we've fixed the change in v0.33.0+ and on fresh installs, these will no longer appear.

Verified that Rancher agent containers don't show up anymore and it is hidden from UI.


Automatically update virtual text output on text change

Is there a builtin way to automatically update the virtualtext output on text change?
I'd like to see something like codi

Hi!
Right now, such a thing is not implemented and as far as I can tell, it's not trivial.
It could be quite possible to dev it, from either sniprun itself or a hack relying on run_range, but it's probably not something I'll be working on very soon

Gotcha, I have a hacky solution that works for me here:
local M = {}

vim.cmd [[
  function Test()
    %SnipRun
    call feedkeys("\<esc>`.")
  endfunction
  function TestI()
    let b:caret = winsaveview()
    %SnipRun
    call winrestview(b:caret)
  endfunction
]]

function M.sniprun_enable()
  vim.cmd [[
    %SnipRun
    augroup _sniprun
     autocmd!
     autocmd TextChanged * call Test()
     autocmd TextChangedI * call TestI()
    augroup end
  ]]
  vim.notify "Enabled SnipRun"
end

function M.disable_sniprun()
  M.remove_augroup "_sniprun"
  vim.cmd [[
    SnipClose
    SnipTerminate
    ]]
  vim.notify "Disabled SnipRun"
end

function M.toggle_sniprun()
  if vim.fn.exists "#_sniprun#TextChanged" == 0 then
    M.sniprun_enable()
  else
    M.disable_sniprun()
  end
end

function M.remove_augroup(name)
  if vim.fn.exists("#" .. name) == 1 then
    vim.cmd("au! " .. name)
  end
end

vim.cmd [[ command! SnipRunToggle execute 'lua require("user.functions").toggle_sniprun()' ]]

return M

I just wanted to know if it was a builtin feature and I was missing it.

Coming back to that, I found the feature a bit limited with only %SnipRun as entry point. Actually, your idea was very well structured and I got able to make it into something actually neat.
see https://github.com/michaelb/sniprun/blob/b0742f7ea13706810f3011708febcfe686098e2d/lua/sniprun/live_mode.lua , you should be able to install it from the dev branch (or into your file, my 'sniprun.live_mode' path for requires should be equivalent to your 'user.functions')

by curiosity, what was the purpose of call winrestview(b:caret) and    call feedkeys("\<esc>.")` ?
I'm a bit puzzled about their purpose

I noticed that whenever I ran :%SnipRun my cursor was returned to the beginning of the file.
winsaveiw saves the view before something happens. So I saved the view and then passed the result to winrestview which restores the saved view. It happens so fast you don't notice the cursor teleporting to the beginning of the file and then back again. This was necessary when changing text in insert mode.
<esc>\. basically just jumps back to the previous change and since I'm already in normal mode I can just feed those keys to vim, instead of saving the view and restoring it. I could've still usedwinsaveviewandwinrestview`, but passing those keys seemed like a simpler solution.

Oh, alright then
It's a neovim spec that :%XXX commands return the cursor at the beginning of the file, and not something I can do much about, but those are nice tricks

v1.2 includes :SnipLive, (hidden behing a configuration flag) that toggles the live mode, and some optimisations for better ressources consumption (became necessary for some REPL-enabled interpreters when in live mode)

I was looking for the same Codi live update behaviour, and ended up creating my own solution.
Uses nvim_buf_lines_event instead of autocmd.
Doesn't use :SnipRun so no cursor jumping.
It also runs the whole file on each keypress (I wanted to achieve behaviour similar to nvim-luapad
I didn't see a need to run %SnipRun as we can call the lua functions directly.
Thoughts?
local Repl = {}
-- turn on for the current buffer:
-- :lua require("user.functions").toggle()
--

function Repl:start()
  self.enabled = true
  self.events.on_lines = function()
    if not self.enabled then
      return true
    end
    local line_amt = #vim.api.nvim_buf_get_lines(self.bufnr, 0, -1, false)
    self.sa.run_range(1, line_amt)
  end

  self.events.on_detach = function()
    print("detached")
    if not self.enabled then
      return true
    end
  end

  vim.api.nvim_buf_attach(vim.api.nvim_get_current_buf(), false, {
    on_lines = self.events.on_lines,
    on_detach = self.events.on_detach,
  })
  print("SnipRun Live Repl Started")
end

function Repl:stop()
  self.enabled = false
  self.events.on_lines()
  print("SnipRun Live Repl Stopped")
end

function Repl:new()
  return setmetatable({
    enabled = false,
    bufnr = vim.api.nvim_get_current_buf(),
    sa = require("sniprun.api"),
    events = {},
  }, {
    __index = Repl,
  })
end

local Manager = {
  instances = {},
}

function Manager.toggle()
  bufnr = vim.api.nvim_get_current_buf()

  if not Manager.instances[bufnr] then
    Manager.instances[bufnr] = Repl.new()
  end

  if not Manager.instances[bufnr].enabled then
    Manager.instances[bufnr]:start()
  else
    Manager.instances[bufnr]:stop()
  end

end

return Manager

@fhill2 Appreciated and gg for the scripting
While lua-only is nice and I'll certainly reuse parts of this code when/if refactoring the :SnipLive feature, I don't think I'll include something that runs the entire buffer at each text change event in any sniprun release. Doing that strays a bit from what sniprun strives to do (well), so it's possible some things are not compatible... (thinking about the display modes)
For language like lua and python that have luapad and Codi, I honestly SnipRun is inferior, and won't be equally useful for as long as I don't implement a major feature that is barely on the roadmap yet: in case you're not too aware of sniprun's limitations, I'll tell you it's probably a waste of time to reproduce these behavior exactly. (But if you're well aware that you've made something that fulfill your need for a subset to their features, it's very fine, and I appreciate someone got to hack around with my project)

+1. The most powerful feature of SnipRun is choosing portions of the file to eval.
I will most likely edit the above in my config to support a range of lines or a single line by default, and optionally the whole buffer, so it fits with Sniprun's default behaviour.
Yes, using Sniprun like this does limit it to a subset of its features, but it does fulfill my personal use case :smile:


[CELEBORN-781] Refactor RPC message type name

What changes were proposed in this pull request?
After https://github.com/apache/incubator-celeborn/pull/1658 merged, we can format the message type now.
Why are the changes needed?
Does this PR introduce any user-facing change?
How was this patch tested?

ping @waitinfuture @FMX @pan3793 Could you take a look.
This pr only for main branch.

I think it's fine to get in the main.


Complete meta-staking queries

Implement the unimplemented queries in the meta-staking contract:

[ ] all_validators: return all validators that a consumer contract delegates to.
[ ] delegation: return info about a particular consumer delegation
[ ] consumers: return a list of consumers

quick question, all_validators and consumers should be paginated? So it should also accept optional start and limit?

quick question, all_validators and consumers should be paginated? So it should also accept optional start and limit?

Sure, why not? Go ahead and make them paginated if you want. Would make the default limit pretty high though.

Closed with #39.


workbox background sync - callback

I'm in love with the workbox library, super delighted.
Now I'm working with workbox background sync, using for methods http (PUT, DELETE, UPDATE).
My question, when the user tries to perform a delete without internet, by default will return an error, as I can get / verify if there is this error if it was stored for later when the internet back perform ** background sync **.
Briefly, I need to know if that request was successfully stored, later to be executed with background sync.

There are a number of callbacks that you can pass in when configuring the Queue (passing them in to the Plugin constructor will forward them on to the Queue constructor). I'm not totally clear on what you're trying to accomplish, but the callbacks are worth investigating:
const plugin = new workbox.backgroundSync.Plugin('my-queue-name', {
  callbacks: {
    requestWillEnqueue: (storableRequest) => {
      // ...
    },
    requestWillReplay: (storableRequest) => {
      // ...
    },
    queueDidReplay: (storableRequestArray) => {
      // ...
    },
  },
});

Does that help?

but these actions do not issue some event, that I could recover in any part of the system?

Pretty sure that this is a duplicate of https://github.com/GoogleChrome/workbox/issues/1637


UriError while searching in open editors

Issue Type: Bug

Open several files from workspace.
Open a file out of workspace, for example /home/.bash_profile
Click Ctrl+Shit+F to search a word in files.
In the Search dialog click on "book" icon in field "files to include".
The search field become with red frame, no search results displayed.
When you click on search field you will see:
"[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with slash ("/") character."

Version: 1.68.1 (user setup)
Commit: 30d9c6cd9483b2cc586687151bcbcd635f373630
Date: 2022-06-14T12:48:58.283Z
Electron: 17.4.7
Chromium: 98.0.4758.141
Node.js: 16.13.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19042

Sorry for the late response, missed this.
Exact same steps for you @Reid00? Including this?

If I use Ctrl+T to open definition of some macro or variable, the file opened with real path /some-users/u/myusername
and this cause the search to fail.

I can't reproduce
Can you share a screenshot @Reid00 with the exact steps you use?

sorry, I tried again, failed to reproduce, I am not sure how to reproduce it stably.
In fact, this is second time I encounter this issue when I log it here.
what is my steps:

ssh a server
open hue project git clone from https://github.com/cloudera/hue
ctrl + shift + F to search keyword, hue_4_4.create_role     this error shows up

Please let me know if you see this coming up again


!price and simlilar put the legality sign first but card images put it last

We should be consistent. Saw confusion in the channel.

Moved it after the name as per search results in 2b0d552.


bytes/packets node stats not updating correctly

Node stats related to bytes/packets (bps, pps, total in/out) seem to update at a much slower pace than when we persist node metrics. As a result, bps/pps often display as 0 (if it hasn't changed between the last update).
Repro steps:

run server locally, and join with two clients
run ./bin/livekit-server --config config.yaml list-nodes every few seconds

Expected result:
bytes/packets would change each time, bps/pps display actual values
Actual result:
bytes/packets updates every 5 or 6 runs, bps/pps display as 0 for majority of the runs.

@davidzhao This still seems to be happening with a build on the latest HEAD (59112b9). It's less frequent, but I'm still often seeing 0s on BPS with 7 clients connected all sending and receiving audio and video.


builder: Add AppArmor to runc buildtags for armhf - fixes #27351

I update the builder cconfiguration for debian and raspbian on armhf to include the apparmor (and incidentally the selinux) build tags in order for runc to be build with the correct dependencies.
This fixes #27351 for Debian and Raspbian, and should be taken together with PR #27327 for the Ubuntu Trusty platform.
I did build the Raspbian deb package on my Raspberry Pi. It builded successfully and when testing issue #27351 it was resolved. This was not tested on Debian or Ubuntu on armhf, but this is expected to work as well.
Commit message:
builder: Add AppArmor to runc buildtags for armhf

On Raspbian and Debian Jessie for ARMv7 (aka armhf), the builtags for runc
were missing. These buildtags should include 'apparmor' and 'selinux'.

Signed-off-by: Jean-Christophe Berthon<EMAIL_ADDRESS>

ping @justincormack @mlaventure PTAL

This is what we have for amd64 on jessie, so LGTM.


There is a incorrect link in CONTRIBUTING.md

Thank you for submitting a TensorFlow documentation issue. Per our GitHub
policy, we only address code/doc bugs, performance issues, feature requests, and
build/installation issues on GitHub.
The TensorFlow docs are open source! To get involved, read the documentation
contributor guide: https://www.tensorflow.org/community/contribute/docs
URL(s) with the issue:
https://github.com/tensorflow/tensorflow/blob/master/CONTRIBUTING.md
Description of issue (what needs changing):
Correct links
Is the link to the source code correct?
No.
1.  Using tools and libraries installed directly on your system.

    Refer to the
    [CPU-only developer Dockerfile](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/docker/Dockerfile.devel)
    and
    [GPU developer Dockerfile](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/docker/Dockerfile.devel-gpu)
    for the required packages. Alternatively, use the said

The link of 'CPU-only developer Dockerfile' and 'GPU developer Dockerfile' are 404.
Submit a pull request?
I'd like to fix it.

@jvishnuvardhan I had already opened a PR to resolve the issue :sweat_smile:


Revert bogus commits

I've noticed a couple of commits that raised my eyebrows. I decided to revert them, as I could not see a clear reason for their existence.

dprint addition - we already had it, it's pointless to copy an additional one from ItchySats.
moving ffi bindings - there's no need to depart from convention, and it raises clippy warning ("module inception"). @holzeis if I missed something in this one, please feel free to submit this one again, with some description why is this important!

bors r+

This cleanup was the last commit I've borsed without explicit approval. I'm sorry if I started an anti-pattern, if I hadn't merged without approvals first, @holzeis probably wouldn't either.
I hope we can all just wait for reviews now when the project is sallet up ☺


ImportError: cannot import name 'perceptual_loss'

Hello, I followed the instructions provided by the readme to debug the demo, and the following error occurred. How to solve this problem, can you give me some suggestions?
The platform is window10

Hi, this released version has not been tested on Windows 10. Can you try to run demo.py under linux environment?

Unfortunately, currently I only have a window system. I use Deep3DFaceReconstruction first, thank you for your reply

Sorry for the inconvenience. We will try to fix the bug and test the code under Windows.

Sorry for the inconvenience. We will try to fix the bug and test the code under Windows.

I have the same error on Mac

This problem is solvable, I encountered a similar problem to yours. The main reason is that when you copy the insightface in windows, you may have overwritten the loss file in the models folder, it is recommended to check if the functions mentioned in the error are in the loss file, if not, just download it from the repository and overwrite it. arcface should be put in one folder, it should not overwrite the original The python files under the models file should not be overwritten.


Fix for connection to multiple databases

Fixes #96
Connections now saved in a map, so multiple connections should work

Great job with "save and test" @futuarmo


SyntaxError when executing gen_mini_batches.py

Hi,
Thank you for making your code available.
I follow your instruction in the front page but have encountered a syntax error while invoking the gen_mini_batches.py script as below.
Would you mind letting me know what I could do wrong?
tuan@mypc:~/avod$ python scripts/preprocessing/gen_mini_batches.py
Traceback (most recent call last):
  File "scripts/preprocessing/gen_mini_batches.py", line 6, in <module>
    from avod.builders.dataset_builder import DatasetBuilder
  File "avod/avod/builders/dataset_builder.py", line 169
    new_cfg=None) -> KittiDataset:
                  ^
SyntaxError: invalid syntax

Code retrieved in 5/11/2018.
Python version
Python 2.7.12 (default, Dec  4 2017, 14:50:18)

Kitti data structure as instructed as:

Download the data and place it in your home folder at ~/Kitti/object

tuan@mypc:~/Kitti/object$ tree -L 2
.
├── training
│   ├── calib -> /opt/dataset/KITTI_3D/calib/training/calib
│   ├── image_2 -> /opt/dataset/KITTI_3D/image_2/training/image_2
│   ├── planes
│   └── velodyne -> /opt/dataset/KITTI_3D/velodyne/training/velodyne
├── train.txt
├── trainval.txt
└── val.txt

Ubuntu 16.04 LTS
GPU: nVidia 1080 Ti
Regards,
Tuan

Please read the requirements, you need Python 3.5.

Thanks for your reply.
I am new to python, so I thought that your intention to run python 2 :

python scripts/preprocessing/gen_mini_batches.py

it works after changeing from python to python3
python3 scripts/preprocessing/gen_mini_batches.py

No problem!

@melfm  When I run gen_mini_batches.py,I meet this error,do you know why ?Thank you!
File "/home/scw4750/087/avod/wavedata/wavedata/tools/core/voxel_grid_2d.py", line 99, in voxelize_2d
discrete_pts_2d.shape[0] - unique_indices[-1])
IndexError: index -1 is out of bounds for axis 0 with size 0


[TEST] Implement a more efficient method for distinguishing items within the robot variable list

What's the test to develop? Please describe
We currently access the test variables in the lists using the workload index. We need a more effective method to differentiate the items within the list.
Describe the tasks for the test

Implement a more efficient method for distinguishing items within the robot variable list.

Additional context
https://github.com/longhorn/longhorn-tests/pull/1577#discussion_r1380171801

@c3y1huang If not sure what should be taken into consideration. The following test cases can be referenced:
test_settings.py::test_setting_concurrent_rebuild_limit
test_basic.py::test_snapshot
test_basic.py::test_restore_inc
test_basic.py::test_backup_volume_list

cc @longhorn/qa


tests: add output when the test fails

The previous error on #1696 was:
--- FAIL: TestAPIServiceGetInfo (0.10s)
	rkt_api_service_test.go:37: Running rkt install
	rkt_api_service_test.go:42: Running rkt api service
	rkt_tests.go:125: rkt didn't terminate correctly: exit status 2

This patch should add more output.
/cc @yifan-gu

If we've already Collected (for example, with an expect*WithOutput, the output would be empty right?
I guess it's good for cases where we don't expect (?)

If we've already Collected (for example, with an expect*WithOutput, the output would be empty right?

expect*WithOutput only call Collect() in case of error, so the caller of expect*WithOutput should already print the output and exit in case of error.

Fair enough. LGTM.


Wrong size of buffer-reference element returned from Reflection-API?

I'm trying to inspect the following compute shader using the Reflection-API
#version 460\n
#extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable
#extension GL_EXT_buffer_reference2 : enable
layout(buffer_reference, std430, buffer_reference_align = 4) buffer IntBuf
{
	int v;
};
layout(std140, binding = 0) uniform Params
{
	float x;
	IntBuf y;
};
void main()
{
}

spirv_cross::Compiler comp(std::move(spv));
ShaderResources res = comp.get_shader_resources();
auto ub = res.uniform_buffers[0];
auto type = comp.get_type(ub.base_type_id);
size_t size = comp.get_declared_struct_size(type);
printf("struct_size: %d\n", size);
unsigned num_members = type.member_types.size();
printf("num_members: %d\n", num_members);
size_t member_size = comp.get_declared_struct_member_size(type, 0);
printf("size of float: %d\n", member_size);
member_size = comp.get_declared_struct_member_size(type, 1);
printf("size of pointer: %d\n", member_size);
auto member_type = comp.get_type(type.member_types[1]);
member_size = comp.get_declared_struct_size(member_type);
printf("size of pointer: %d\n", member_size);

output:
struct_size: 12
num_members: 2
size of float: 4
size of pointer: 4
size of pointer: 4
If I change "int v;" to "int64_t v;", the output becomes:
struct_size: 16
num_members: 2
size of float: 4
size of pointer: 8
size of pointer: 8
I'm a little bit confused here. Is the size of a buffer reference related to its element type?

To make it clear, I'm expecting to always get "8" for a buffer reference, because at host-side, it is corresponding to a VkDeviceAddress value.

Yes, it's a bug here where physical pointers would be reflected to have the size of its element.

Thanks! Actually, I found that reflections of "offset" and "stride" information are more useful for me than "size". Luckily, these have been working correctly for me so far. Anyway, nice to see you are fixing it!


add LoT in iterative-optimzation sec.

Add the paper "Enhancing Zero-Shot Chain-of-Thought Reasoning in Large Language Models through Logic" (LoT for short, to appear at COLING 2024) in the Iterative-Optimization section.

thanks


[PRCI - demo] ui enhancement - resize homepage menu request blocks

On the demo, the PRCI homepage menu, maybe we can resize the request blocks to a more squared size :

by making the blocks wider so the text inside it can be more expanded horizontally and less vertically
we could also put the left outer box more to the left and the right outer box more to the right, so it gives space to wider as much as we can each request box

This has been resolved within #256


On FormRequests

There's been quite some discussion on FormRequests in recent times. As I explained in #343, we're getting rid of them in v3. However, now that response calls are back and more powerful (#364), body parameters and query parameters are the only things developers may have to explicitly specify. I don't have a problem with that, but, as several people have pointed out, we all know that code can change pretty quickly, and a developer may forget to update the documentation.
With that in mind (and even though I still hold that FormRequests are for validation, not information), I'm exploring reintroducing FormRequests. It's quite a lot of work, so one of my aims is to keep it unambitious and go with the basics.  Here's a proposal for how they will operate:

This package will provide a ParameterDescription rule (which always passes). Custom descriptions for parameters was one of the most requested things for FRs, and this is one way we can add it (even though it is, admittedly, a hack). So developers will be able to write:

return [
  'user_id' => 'required|int|exists:users|desc:The ID of the user',
  'room_id' => [
    'required',
    'string',
    new ParameterDescription('The ID of the room')
  ],
];

It's ugly, sure, but it could work.

For starters, we'll only parse parameter type (int, numeric, date, string, array and similar rules) and required status (required rule only) from the ruleset., and extract the description from the description rule. We'll ignore every other rule. If things work out well, we could expand its abilities. (Note: this means that data provided in examples and used in response calls may not necessarily pass other validation rules)

I'd like to hear what you guys think. cc @hubertnnn, @Punksolid, @mykeels

Thank you for the effort to put FormRequests back. It will be necessary to have ParameterDescription?
As a hack I think it could be useful, but if no description its possible I think it's better, some form fields are detailed enough. If put it explicitly its necessary in order to have less effort in the v3, I think it's okey.
Thanks

I am thinking about if we should add the possibility to define more type rules.
Eg. I have a field that is a telephone number validated using Propaganistas/Laravel-Phone.
So my field will look like this: "contact_number" => "required|phone"
I know considering a phone number as field type is a bit far-fetched but I think we might need this level of customization.
My suggestion would be to use one of following solutions (or a mix of them):

Check if Request class has docs() method. If yes use its value as documentation

class CreateUserRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'name'      => 'required|unique:users,name',
            'password'  => 'required|min:8|different:name|letters|numbers',
            'email'     => 'required|email|unique:users,email',
            'contact'   => 'required|phone',
        ];
    }

    public function docs()
    {
        return [
            'name' => 'The definition of name',
            'password' => [
                'status' => 'More than required',
                'type' => 'hidden string',
                'description' => 'The password, really',
            ],
            'contact' => null,
        ];
    }
}

As you can see in example you can use simple format just to specify description (like in name field) or more advanced to define all 3 columns, each being optional.
You can also skip a field by not including it on the list (it will use default values then)
or even explicitly tell to hide it from documentation by setting it to null

Add 3 PseudoRules, one for each column

return [
  'contact'   => 'status:sometimes required|type:phone number|desc:The contact',
];

Use translations file to match validator to definitions:

// resources/lang/en/validator.php
return [
    'status' => [
        'required' => 'Required',
        'nullable' => 'Optional',
    ],
    'type' => [
        'int' => 'Number',
        'numeric' => 'Number',
        'date' => 'Date',
        'string' => 'Text',
        'array' => 'Array',
        'phone' => 'Telephone number',
        // ...
    ],
    'description' => [
        'min' => 'Minimum: :param1',
        'different' => 'Must have a different value than parameter: :param1 ',
        // ...
    ],
]

Code for this one could be as simple as:
$rule = //Get rule name eg. "required`
$key = 'apidoc.description.' . $rule; //or 'apidoc.type.' or 'apidoc.status.'
if(trans($key) !== $key) { // We have a value for the field
}

All 3 solutions above have the advantage of giving the developer a way to define values for all 3 columns in the table. #1 and #2 Are more manual, where #3 is more automated.
In fact it should be possible to implement all 3 solutions at once if needed.
Personally I am not a fan of #2 since it will obstruct the validation code with documentation but at the same time its probably the simplest one to use.

There is 2 extra things that v2 was missing that I found problematic and need fixing in new implementation:

Fields in documentation are sorted differently than in code. That ended up with weird order like this: tags => array, name => string, tags.0 =>string where 2 fields that are related get separated by some unrelated fields. We need to keep the order that developer used in code for better visibility.

Old implementation did not support multiple requests, so if my controller had something like this:

public function index(DateRangeFilterRequest $request1, TypeFilterRequest $request2)
{
    // The code
}

It would only parse the first request.
I know its a rare case, but it should be easy to fix and one more point towards perfect package.

@hubertnnn thanks for your suggestions. My take:

No need for a rules method. This is not different from using @bodyParams. Also, this is a case of this dev package intruding on the application code.
Nope, we're not adding 3 pseudo-rules. Difficult to maintain and it would unnecessarily bloat the dev's codebase.
This is a lot of work for the dev and doesn't add significant value.

I think I'll just stick to dropping FormRequests for now.

No need for a rules method. This is not different from using @bodyParams. Also, this is a case of this dev package intruding on the application code.

Usually a developer using FormRequest would already define rules which the request is automatically validated against. I think it would be nice if the generator can use the existing rules to generate documentation, when @bodyParams is absent.

Sorry, I meant no need for a docs() method.

Hey @hagabaka
Does the generator now use existing rules method from FormRequest  to generate documentation if 'bodyParams' is absent?
I trying to figure it out my self but didn't find the solution yet.

@shalvah any change the proposed feature would become a reality soon?
return [   'user_id' => 'required|int|exists:users|desc:The ID of the user',   'room_id' => [     'required',     'string',     new ParameterDescription('The ID of the room')   ], ];

Nope. We've moved away from using Laravel validation rules. Check out the documentation on documenting request parameters here.

@shalvah
Thanks for confirming!
What about adding Dingo API form request as recommended here: https://github.com/mpociot/laravel-apidoc-generator/issues/505

Oh, yes, we can consider that. But you'll still be using the bodyParams annotations.

FormRequest rules() support is back in Scribe.😅


add xgcm_transform_wrapper to upstream stash

Added FutureWarning for wrapper function. There were a bunch of comments in there about possible improvements that I kept in. Added tests. Added cf-xarray, xgcm to ci environments.

3.7 is building fine, but 3.8 is throwing up an error when updating the test environment. I think the issue is with numba, because before that it ran through that step fine. Know of any issues with numba and 3.8? Maybe try with conda instead of Pip?

Oh most definitely use conda. Numba has very complex (non-python) dependencies. This is a prime example of when to use conda.


Pull remaining jars from maven repo

Please use a feature branch for features that should be merged to upstream repo as described in the github guide: Proposing changes to a project with pull requests
Then your own fork could have the same master branch as upstream and you don't have to jump through hoops when your PR has been merged.  And it avoids such ugly branch structure created by merging your contribution: Fork overview

this is me https://xkcd.com/1597/

:smiley: When you receive a good PR then it is not necessary to do anything in git.  Just click the github Button and then update your local copy.
  The merge is just contained in the commit fb92c3d.

I just wanted to take it to my local branch to test it, next time I'll try to do it the right way :)

There is not a single right way. If you want to test it locally (with or without current changes from master if there are any) just do this:
add the other repository as remote
git remote add krt16s https://github.com/krt16s/Earmouse.git

go to your current working branch
git checkout master

create and checkout a new test branch:
git checkout -b new-test-branch

merge the remote branch
git merge krt16s/master

Test.
You can even checkout the pull request without detours: Checking out pull requests locally


Elevations values do not match

Results whose input data for two requests, the elevation of the point and the elevations of the area, that are equal do not coincide in the result.
Example:
query Query($coord: [Float!]!) {
  pointElevation(coord: $coord)
}

{
  "data": {
    "pointElevation": [
      -3.37,
      40.51,
      610
    ]
  }
}

query Query($bottomLeft: [Float!]!, $topRight: [Float!]!) {
  areaElevation(bottomLeft: $bottomLeft, topRight: $topRight)
}

[
        -3.37,
        40.51,
        613
]

The query of areaElevation uses top-left corner as pixel reference, and other queries use the centroid.
Already adapted

Good!


Cluster: measure and optimize join times

We should specifically measure and work on join times.

How long does it take a node to "join" and be seen .joining such on 5 nodes?
How long does it take a node to "join" and be seen .up such on 5 nodes?

The same about 3 nodes, 10 nodes, 20 nodes.
We should optimize this -- by tuning the peer selection and doing more efficient seen table propagation (see https://github.com/apple/swift-distributed-actors/issues/672 )

This should be fairly simple to add metrics for perhaps?


Cut Copy Paste

What shortcut to use for cut copy paste in st terminal?
For e.g. I want to select the command output or anything which can be selected in st terminal.
please respond.

Ctrl Shift c works for copy
Ctrl Shift y Paste from primary selection (mouse middle click)
or Ctrl Shift v Paste from clipboard

Ctrl Shift c works for copy
Ctrl Shift y Paste from primary selection (mouse middle click)
or Ctrl Shift v Paste from clipboard

Hey, I tried this but the shortcuts doesn't seem to work on my system.


Enhancing lib.makeScope

I'm interested in enhancing lib.makeScope or adding similar functions with more features.
I have three features in mind:

Splicing for scopes that contain both build and host derivations
Member access control (public, private, etc.)
Ability to override ancestor scopes

I seek your thoughts on the features themselves and whether they belong in Nixpkgs. Nixpkgs does not use scopes heavily, so these features may be overkill.
For reference, here is lib.makeScope: https://github.com/NixOS/nixpkgs/blob/83686eb1fbab85a8631e28ae9c2517deb2380a80/lib/customisation.nix#L185-L204
Splicing
Currently, scopes created with lib.makeScope are not spliced. If one member of a scope depends on another member of that same scope as a native build input, it cannot resolve that dependency directly through callPackage. As a workaround, I've been using buildPackages to indirectly resolve such dependencies (e.g. referring to buildPackages.myScope.myPackage from within myScope).
I've come up with an unsatisfying but useful version of lib.makeScope which splices using the top-level pkgs${offset}${offset} attributes. As arguments, it takes a function for accessing its own result from the current scope, and a normal scope function:
{ lib, splicePackages, __splicedPackages, newScope }:

let
  compose = f: g: x: f (g x);

in {

  makeSplicedScope =
    let
      splicePackagesAt = ix: splicePackages (lib.mapAttrs (lib.const ix) {
        inherit (__splicedPackages)
          pkgsBuildBuild pkgsBuildHost pkgsBuildTarget
          /* pkgsHostHost not implemented */ pkgsHostTarget
          pkgsTargetTarget
          ;
      } // {
        pkgsHostHost = {};
      });

      makeSplicedScopeWith = newScope: ix: f:
        let
          self = f self // {
            newScope = scope: newScope (splicePackagesAt ix // scope);
            callPackage = self.newScope {};
            overrideScope = g: makeSplicedScopeWith newScope ix (lib.fixedPoints.extends g f);
            makeSplicedScope = ix': makeSplicedScopeWith self.newScope (compose ix' ix);
          };
        in self;

    in
      makeSplicedScopeWith newScope;

}

In the example usage below, foo and bar are spliced within myScope, so foo can use { bar }: { nativeBuildInputs = [ bar ]; } as it would in the top-level Nixpkgs scope.
let
  myScopeFn = self: with self; {
    foo = callPackage ./foo.nix {};
    bar = callPackage ./bar.nix {};
  };
in self: super: with self; {
  myScope = makeSplicedScope (x: x.myScope) myScopeFn;
}

I believe that the splicing of scopes can be accomplished in a way which does not require passing the scope's path from its parent's top-level, but I haven't found one yet.
Member access control
Features to organize scope members would allow for finer-grained access to members and more precise overriding. I'm not proposing that the definition of makeScope presented in this section should replace lib.makeScope. I'm only using it to illustrate some ideas.
The following definition of makeScope organizes scope members into three classes: public, protected, and private. Members defined at the scope function's top-level are public. Those specified within the _protected (resp. _private) attribute are protected (resp. private). The resulting scope attrset contains, at its top-level, all public members, the attributes added by makeScope (e.g. callPackage), and an attrset at _public (resp. _protected, _private) containing only the scope's public (resp. protected, private) members.
All members (public, protected, and private) are available to the scope via its callPackage function. However, only public and protected members are available via descendant scopes' callPackage functions.
{ lib }:

{

  makeScope = newScope: f:
    let
      raw = f self;
      _public = builtins.removeAttrs raw [ "_protected" "_private" ];
      _protected = raw._protected or {};
      _private = raw._private or {};
      extra = {
        newScope = scope: newScope ( _public // _protected // // scope);
        callPackage = newScope (_public // _protected // _private // extra);
        overrideScope = g: makeScope newScope (lib.fixedPoints.extends g f);
      };
      self = _public // extra // {
        inherit _public _protected _private;
      };
    in self;

}

Better organization of scope members prevents issues like https://github.com/NixOS/nixpkgs/pull/68525.
The example below illustrates another benefit of member access control:
{ makeScope, newScope }:

{

  myScope = makeScope newScope (self: with self; {

    _private.stdenv = callPackage ./my-stdenv.nix {};

    # foo uses modified stdenv
    foo = callPackage ./foo.nix {};

    myChildScope = makeScope newScope (self: with self; {
      # bar uses normal stdenv
      bar = callPackage ./bar.nix {};
    });

  });

}

Ability to override ancestor scopes
This feature is easier to explain. If scope attrsets provided access to their ancestors, perhaps via a _parent attribute, ancestors could be modified using their overrideScope attributes. This would allow for precise overriding in deeply-nested scenarios.

Related issues:

https://github.com/NixOS/nixpkgs/pull/44196 @nbp
https://github.com/NixOS/nixpkgs/issues/59344 @deliciouslytyped
https://github.com/NixOS/nixpkgs/pull/51213 @Ericson2314
https://github.com/NixOS/nixpkgs/pull/43828
https://github.com/NixOS/nixpkgs/pull/67422 @Infinisil

Splicing
Currently, scopes created with lib.makeScope are not spliced. If one member of a scope depends on another member of that same scope as a native build input, it cannot resolve that dependency directly through callPackage. As a workaround, I've been using buildPackages to indirectly resolve such dependencies (e.g. referring to buildPackages.myScope.myPackage from within myScope).

I still don't quite get what splicing is and what it's necessary for. What prevents these dependencies from being resolved through callPackage? In nixpkgs nobody is using buildPackages to set nativeBuildInputs either?

Splicing is mentioned but not explained in the manual. I provide a quick explanation here.

Source: https://github.com/NixOS/nixpkgs/blob/9566ec034b9515ba2487d3625664109b59ca46f1/pkgs/top-level/splice.nix
Relevant bits of manual:

https://nixos.org/nixpkgs/manual/#chap-cross
https://nixos.org/nixpkgs/manual/#ssec-stdenv-dependencies

Derivations expressed using stdenv have a build, host, and target platform. These attributes are, respectively, the platform on which a derivation is built, the platform on which it runs, and, for certain sorts of packages (e.g. a compilers), the platform which it targets.
When not cross-compiling, every derivation's build, host, and target platforms are the same. However, when cross-compiling, they differ. For example, a package which is cross-compiled from x86_64-linux to aarch64-linux, has (build, host, target) platforms at (x86_64-linux, aarch64-linux, aarch64-linux).
When I'm cross compiling a package which uses CMake and links against OpenSSL, I need to providemakeDerivation with a CMake derivation at (*, x86_64-linux, aarch64-linux) and an OpenSSL derivation at (x86_64-linux, aarch64-linux, *). Adjacent packages in the top-level Nixpkgs attrset have the same (build, host, target) as the package I'm expressing, so callPackage can provide me with the correct OpenSSL derivation. However, callPackage would provide me with a CMake that runs on aarch64-linux, which is not what I want.
One way to deal with this would be explicit references to buildPackages (e.g. nativeBuildInputs = [ buildPackages.cmake ]). This is a bit of a pain, and isn't convenient to override.
Instead, top-level Nixpkgs attrsets of every relevant (build, host, target) are "spliced" together into one attrset where each package has the extra attribute __spliced, which is an attrset with attributes buildBuild, buildHost, buildTarget, hostHost, hostTarget, and targetTarget. Each of those attributes holds the derivation of that package at the "offset" relative to the original derivation according to its name. The details here are confusing, but the point is, for a spliced package, buildPackages.cmake can be reached by cmake.__spliced.buildHost.
makeDerivation receives spliced packages via each of buildInputs, nativeBuildInputs, depsBuildBuild, etc., and retrieves the correct derivation using the .__spliced attribute.
(Note: currently .__spliced.buildHost and .__spliced.hostTarget are named .nativeDrv and .crossDrv respectively, but that's legacy and will change)

Wow, it's always impressive when someone has thoroughly reverse engineered your undocumented abomination—great job figuring out splicing!
As you point out the big question is whether we can avoid passing in the scopes own binding, which leads to odd behavior if the scope is, let's say, bound and overriden under a new name.
As Alan Kay might say "...late binding...". We usually solve these sorts of issues by delaying when the not is tied. Unfortunately, the solution here is pretty dirastic: we'd need package sets of functions rather than functions applied to the rest of the set via callPackage. Then in one big pass we'd crawl the thing tying the knot and adding sub package sets to the scope. Instead of functions we could use nix's "functors" so we could tell what was a sub package set and what is a package function.

For what it's worth, I think splicing is a clever technique!
Thanks for your input. I'll give this some more thought.

hehe it may be clever, but that doesn't make me hate it any less!
Good luck mulling it over :)

Regarding splicing, I noticed that an evaluation like
NIX_SHOW_STATS=1 NIX_COUNT_CALLS=1 nix-instantiate --dry-run ~/Dev/nixpkgs/nixos/release-combined.nix -A nixos.tests.simple.x86_64-linux

calls the function merge in splice.nix 24627 times. The comment in splice.nix "for performance reasons, rather than uniformally splice in all cases, we only do so when pkgs and buildPackages are distinct" suggests that splice.nix should be a no-op when we're not cross-compiling, but apparently it's doing quite a lot. @Ericson2314 Is that expected/intended behaviour?


New linter: SublimeLinter-contrib-stylint

https://github.com/jackbrewer/SublimeLinter-contrib-stylint
This linter provides an interface to the Stylint linter for Stylus.

Any chance of reviewing this? Would like to be able to use it.

:+1:

Linters that inherit from NodeLinter must override one more variable, which is npm_name. This is a string of the projects name in NPM. In this case
npm_name = 'stylint'

After that, make a release and I'll add it to the package manager.

Thanks for the feedback.
I've added the variable as requested and have pushed a 1.0.0 tag.

Hi @skj3gg, any chance of this moving along?

https://github.com/SublimeLinter/package_control_channel/commit/2a771a5834538dcb7db383c4d705a58fce8677a6
Sorry for taking so long. Thank you for your contributions!


Development On Hold?

I've not noticed any updates to this repo in awhile, any reasons to this? I haven't seen any posts about it either, though I've noticed some contributors/owners replying to issues. No big deal, just wondering.

Express is in active development. In particular, unlike the Express of old, a lot of Express code lives in dependency modules, with most work occurring there. For example, the entire router of Express has been extracted into it's own module, so the main source of activity for Express no longer even lives in this repository.
I hope that helps; Express is made up of about 50 repositories, and so activity will be spread across them, an no longer concentrated here. There is only so much activity that can be done on a small repository.

Is there a central place that has a list of all of those repositories?

On GitHub, we have them split into three organizations: expressjs, pillarjs, and jshttp. This module should be in the expressjs organization to make it easier to discover, but StrongLoop refuses to do so, continuing to confuse users. Feel free to provide feedback at<EMAIL_ADDRESS>

I'm on a computer now, so here are the links:

https://github.com/pillarjs
https://github.com/expressjs
https://github.com/jshttp

Thanks for the info, looking forward to 5.x :+1:.

So are we all :) Our big ticket items are out of the box TypeScript bindings, HTTP/2 support, and Promise support in the middleware model.

TypeScript bindings and Promise support are two of the reason I can't wait to use 5.x.

Guys, I would like to contribute to Express.js. What's a good module to work on? Any tips.

@dougwilson - can you please elaborate on this: For example, the entire router of Express has been extracted into it's own module? Can't seem to find anything like that, and still fighting with Router.

He was talking about express 5.x, which has the router here.

any updates?


Battery Icon

Suggestion that the icons for the EV battery changed based on how much battery is remaining. Similar to how the battery shows for a mobile phone device.
100% mdi:battery
50% mdi:battery-50

I took a look through this: https://icon-sets.iconify.design/?query=battery
I don't think a partially charged battery icon exists for a car battery.  Only option would be switch to a normal battery icon like a phone.

any thoughts abut using phone battery vs car battery icon?


feat: add personal info (#13)

Signed-off-by: lvyangcai<EMAIL_ADDRESS>
What is the purpose of the change

Closes #

Brief change log

Your changes.

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

What is the purpose of the change

Closes #

Brief change log

Your changes.

@lvyangcai 可以在这个PR模板填上自己修改的情况。

@lvyangcai 已提交 review 建议，可酌情修改。
参考：https://github.com/X-lab2017/xlab-website/blob/master/CONTRIBUTING.zh-CN.md#8-提-pull-request

Thank you @lvyangcai .


Can't download a resource

Resource: https://www.hydroshare.org/resource/20ff6a71b0ef4970b74cc7a53a523c4f/

it's currently discoverable (not Public).

Error on Welcome Page:

My contact<EMAIL_ADDRESS>

@saisiddu does the user attempting this have file access permissions over the resource.  You mention it being discoverable but do not indicate if the user attempting this is you (the owner) who should be able to download files, or someone else.  It is correct for access to files for a discoverable resource to be blocked for a user who has not had the resource explicitly shared with them.
@ChristinaB  may be able to help as she is familiar with HydroShare and this seems to be a landlab related resource.  She is at UW.
Also @Castronova can you look into this and check whether access control is working as it should through the REST client from Jupyterhub issue.  Please investigate whether there is a way to give a clearer error message for resources properly blocked by access control.

@dtarb: Yes, I was trying to access my resource. This error doesn't occur with any of my other resources. I will talk to @ChristinaB and @Castronova.
Thank you!

What is different about this resource.  I suggest you share it with me (dtarb) and Tony (TonyCastronova) so we can see if we can see what is causing trouble with this one but not the others.

@dtarb: I have added you and Tony to the resource (https://www.hydroshare.org/resource/20ff6a71b0ef4970b74cc7a53a523c4f/). I have used this resource earlier without any glitches. I don't remember changing anything.  Thank you for looking at this issue.

@alvacouch  - thanks for looking at this one

Do we need a new resource or does it have a clean bill of health?

@ChristinaB @alvacouch @dtarb I have fixed this resource, it can now be downloaded successfully. The issue was with the bag_modified flag, it was set to false, but there was no bag.  Once I manually set it to true, everything just works.

@saisiddu @ChristinaB You can probably close this issue after verifying download of this resource now works, even though we have no idea how the bag_modified flag was out of sync with what it should really be, probably resulting from some exception or testing or whatever it was we did not know...

Thank you @hyi!

@hyi this is a one off fix, not a systematic fix.  I suggest we need a systematic fix.  Could the code that attempts to download a bag catch when there is no bag and then instead of giving an error, set the bag_modified code to true and restart the process so that a bag is generated.  If we had code like this, then if a resource is ever in this state again it will be fixed by the system.

@dtarb Good suggestion. I can work on this if you create a new issue for this. It should not take too much time. OK. I see you just created a new issue and assigned it to me. Should be able to get it in for release 1.14.


Mapping for OIDC claims and SAML attributes can be defined for fields of the schema

As a ZITADEL administrator I want to be able to define oidcClaim definitions and SAML attributes on the user schema, which then can be used to map attributes to fill into oidc claims and SAML attributes.
Acceptance Criteria

[ ] As an administrator I am able to define how the user schema attributes are mapped to the oidc schema
[ ] As an administrator I want to be able to know which oidc claims are available, and a must, and which are optional
[ ] As an administrator I want to be able to define custom oidc claims
[ ] As an administrator I want to be able to verify if my mapping is filled in a way that it is oidc compliant (e.g minimal attributes filled)
[ ] As an administrator I am able to define how the user schema attributes are mapped to the SAML attributes
[ ] As an administrator I want to be able to know which SAML attribuets are available, and a must, and which are optional
[ ] As an administrator I want to be able to define custom SAML attribteus

Todos

[ ] Verification for given claims/attributes in user schema to be used
[ ] Add/remove claim/attribute definitions from user schema

Additional information
userschema definition with oidcClaima and saml attribute as attribute https://github.com/zitadel/zitadel/issues/6433#issuecomment-1867508702

@stebenz @eliobischof can you please estimate this?


Single test run fails if there is an import error in unrelated file

Environment data

VS Code version: 1.52.1
Extension version (available under the Extensions sidebar): v2020.12.424452561
OS and version: macOS 10.15.7
Python version (& distribution if applicable, e.g. Anaconda): 3.7.6
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): venv
Relevant/affected Python packages and their versions: XXX
Relevant/affected Python-related VS Code extensions and their versions: XXX
Value of the python.languageServer setting: Pylance

[NOTE: If you suspect that your issue is related to the Microsoft Python Language Server (python.languageServer: 'Microsoft'), please download our new language server Pylance from the VS Code marketplace to see if that fixes your issue]
Expected behaviour
Discovered test should be run without even if there is problem in different test, or at least error should be reported.
Actual behaviour
Even though tests are discovered in testing tab, running single tests causes message "No tests ran, please check the configuration settings for the tests." to appear. No tests are run.
Steps to reproduce:
[NOTE: Self-contained, minimal reproducing code samples are extremely helpful and will expedite addressing your issue]
I can't reproduce it outside our codebase, which has a lot of things glued on duck tape and Unittest discovery goes crazy, but I think here it is just a problem with error reporting here.
Logs

Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

Unhandled exception in thread started by

Hello! Closing as this is the same as this issue, which we are getting to this iteration! I will be fixing this for pytest but if you actually want this for unittest please comment and I will reopen. Thanks!


Convert IntelliJ plugin to Kotlin

[!NOTE]
This requires #501 to be merged first

This PR is the basis for future improvements of the plugin. In this PR, the plugin code is converted to Kotlin, the configurable is recreated with the Kotlin UI DSL, and the goal is to maintain the existing behaviours.
The only small change is that the style dropdown in the configurable is disabled when ktfmt is disabled.

Not sure how to do that? I didn't know you could override what diff thinks happened

@hick209 please advise so I can look into it tomorrow

@hick209 I tried looking into this but I did not find a way to force Git to consider files as moved. I had kept the actual conversion of the files to Kotlin to a dedicated commit, too, but that did not help. Also tried re-doing the conversion in another branch by committing the moving first, and the conversion second, but the conversion still results in pairs of adding/deleting

Yeah I looked it up as well and noticed this is not really doable in git :-/
I'm used to working with Mercurial, which allows this with the following command:
hg mv FROM TO --after

No worries, I can try to do that internally once we pull your changes. I have to wait until we merge the other 2 PRs for this though.
Thanks a ton for you contributions!


npm installation fails

I was just about to add this to a project I'm working on, but was stifled:
>npm install --save @fooloomanzoo/datetime-picker
npm ERR! code ETARGET
npm ERR! notarget No matching version found for @polymer/iron-fit-behavior@gloo
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget
npm ERR! notarget It was specified as a dependency of '@polymer/iron-overlay-behavior'
npm ERR! notarget

It thinks this dependency dependency is missing...

npm ERR! notarget No matching version found for @polymer/iron-fit-behavior@gloo

Am I doing something incorrectly?

I experienced the same error. I was able to work around it by installing this package through bower, and include that in my project.


MQTT connection refused

Hi,
I am trying to get this application running, but so far I did not have luck. The changes I made  in the docker-compose.yml:
Changed host to:   MESHSTELLAR_MQTT_HOST: 'meshstellar-mqtt'
Added:      container_name: meshstellar-mqtt    to mqtt container
Attached the containers to the same bridged network
Exposed port 1883 on the mqtt container
(And added some labels to the web container to have it working together with the reverse proxy)
What I see, that the Matt container is restarting in a loop, and the logs in every second the following:
meshstellar-mqtt    | 2024-06-21T22:17:31.373158Z  INFO meshstellar: Meshstellar v0.1.27-1-g81b8a46 (81b8a465511db91144fd59c61ab433d99069233f 2024-06-15T10:59:43.062323778Z)
meshstellar-mqtt    | 2024-06-21T22:17:31.375203Z  INFO meshstellar::mqtt_processor: Starting MQTT processor
meshstellar-mqtt    | 2024-06-21T22:17:31.375262Z  INFO meshstellar::util: MQTT (meshstellar-mqtt:1883) connecting..
meshstellar-mqtt    | 2024-06-21T22:17:31.376425Z ERROR meshstellar: An error occurred: I/O: Connection refused (os error 111)
meshstellar-mqtt    |
meshstellar-mqtt    | Caused by:
meshstellar-mqtt    |     Connection refused (os error 111)

Here is my compose file (if the above description is to messy):
x-common-envs: &common-envs
  MESHSTELLAR_DATABASE_URL: 'sqlite:///home/meshstellar/meshstellar.db?mode=rwc'
  MESHSTELLAR_HTTP_ADDR: <IP_ADDRESS>:3000
  MESHSTELLAR_MAP_GLYPHS_URL: 'https://protomaps.github.io/basemaps-assets/fonts/{fontstack}/{range}.pbf'
  MESHSTELLAR_MQTT_AUTH: 'true'
  MESHSTELLAR_MQTT_CLIENT_ID: 'meshstellar'
  MESHSTELLAR_MQTT_HOST: 'meshstellar-mqtt'
  MESHSTELLAR_MQTT_KEEP_ALIVE: '15'
  MESHSTELLAR_MQTT_PASSWORD: 'password'
  MESHSTELLAR_MQTT_PORT: '1883'
  MESHSTELLAR_MQTT_TOPIC: "meshtastic/#"
  MESHSTELLAR_MQTT_USERNAME: 'username'
  MESHSTELLAR_OPEN_BROWSER: 'false'
  MESHSTELLAR_HIDE_PRIVATE_MESSAGES: 'false'
services:
  mqtt:
    image: ghcr.io/jurriaan/meshstellar:latest
    container_name: meshstellar-mqtt
    user: '65532:65532'
    environment: *common-envs
    restart: on-failure
    expose:
      - 1883
    volumes:
      - meshstellar_data:/home/meshstellar:z
    command:
      - /usr/local/bin/meshstellar
      - mqtt
    networks:
      traefik-network:

  web:
    image: ghcr.io/jurriaan/meshstellar:latest
    container_name: meshstellar-web
    user: '65532:65532'
    expose:
      - 3000
    environment: *common-envs
    restart: on-failure
    volumes:
      - meshstellar_data:/home/meshstellar:z
    command:
      - /usr/local/bin/meshstellar
      - web
    labels:
      - "traefik.enable=true"
      - "traefik.http.services.meshstellar.loadbalancer.server.port=3000"
      - "traefik.http.routers.meshstellar.rule=Host(`some.domain.name`)"
      - "traefik.http.routers.meshstellar.entrypoints=websecure"
      - "traefik.http.routers.meshstellar.tls.certresolver=letsencrypt"
    networks:
      traefik-network:

  import:
    image: ghcr.io/jurriaan/meshstellar:latest
    container_name: meshstellar-import
    user: '65532:65532'
    environment: *common-envs
    restart: on-failure
    volumes:
      - meshstellar_data:/home/meshstellar:z
    command:
      - /usr/local/bin/meshstellar
      - import
    networks:
      traefik-network:

volumes:
  meshstellar_data:

networks:
  traefik-network:
    external: true

What could be the issue here?
For me it seems that something from the mqtt container tries to connect back to itself. But they why does it get refused?
The network in the docker seems to work, when I open the application in a browser, then I get the world map.
Thanks!

Never mind... First I thought the mqtt container is a bundled mitt-broker, but later I figured out that I needed to run my own broker.
Sorry for the noise.

Might be good to better document that, thanks!


InvalidProtocolBufferException (Protocol message contained an invalid tag (zero))

In my Android app, I see this exception happening on one device:
Protocol message contained an invalid tag (zero)., com.google.crypto.tink.shaded.protobuf.InvalidProtocolBufferException
Related code where the exception happens (Kotlin code from my Flutter plugin):
.
.
.
"encryptString" -> {
    uiScope.launch {
        try {
            var encryptedDataBase64String: String? = null
            withContext(Dispatchers.IO) {
                initializeTink()

                val applicationId = call.argument<String>("applicationId")
                        ?: throw IllegalArgumentException("applicationId")
                val keySetName = call.argument<String>("keySetName")
                        ?: throw IllegalArgumentException("keySetName")
                val dataString = call.argument<String>("data")
                        ?: throw IllegalArgumentException("data")
                val passwordString = call.argument<String>("password")

                val data = dataString.toByteArray(Charsets.UTF_8)

                val password = passwordString!!.toByteArray(Charsets.UTF_8)

                val keySetHandle = getOrGenerateNewKeysetHandle(applicationContext!!, applicationId, keySetName)
                val aead = keySetHandle.getPrimitive(Aead::class.java)

                val encryptedData = aead.encrypt(data, password)

                encryptedDataBase64String = Base64.encodeToString(encryptedData, Base64.DEFAULT)
            }
            result.success(encryptedDataBase64String)
        } catch (e: Exception) {
            Log.e(LOG_TAG, "Exception", e)
            result.error(
                    "Exception",
                    e.localizedMessage ?: e.message ?: "$e", "$e")
        }
    }
}

Tink 1.4.0
Device: Huawei P20 / Android 10
This is an user device so I cannot reproduce it myself (I see this from Crashlytics).

+1

+1
Its also happening to me on devices Xiaomi MI A1,  Xiaomi Redmi Note 7 and Huawei Honor 5X ...all have Android 9

+1
Its also happening to me on devices Xiaomi MI A1,  Xiaomi Redmi Note 7 and Huawei Honor 5X ...all have Android 9

+1

+1
This has also been reported on the issue tracker (under androidx.security-crypto), but stack traces show Tink is in fact generating the exception when reading encrypted content.
https://issuetracker.google.com/issues/164901843
https://issuetracker.google.com/issues/168238828
https://issuetracker.google.com/issues/167701944
https://issuetracker.google.com/issues/168238828
So far, I've only seen reports of crashes on Android 9 & 10.
The issue tracker reports are all related to security-crypto:1.1.0-alpha02. For me, downgrading to `1.1.0-alpha01' makes the problem go away. There was a change in the Tink dependency between these two versions:

1.1.0-alpha01' -> tink-android:1.4.0-rc2`
1.1.0-alpha02' -> tink-android:1.4.0`

So my conclusion is something broke or regressed between 1.4.0-rc2 and the stable release. Hopefully that helps narrowing down the cause. Meanwhile, if you're experiencing this crash, it may be a consideration to use 1.4.0-rc2 instead.

Thanks for the report, and the issuetracker links.
In many of the issuetracker reports, a stacktrace is offered. They look something like this:

Caused by com.google.crypto.tink.shaded.protobuf.InvalidProtocolBufferException
While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either that the input has been truncated or that an embedded message misreported its own length.
com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite.parsePartialFrom (GeneratedMessageLite.java:1566)
com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite.parseFrom (GeneratedMessageLite.java:1664)
com.google.crypto.tink.proto.Keyset.parseFrom (Keyset.java:957)
com.google.crypto.tink.integration.android.SharedPrefKeysetReader.read (SharedPrefKeysetReader.java:84)
com.google.crypto.tink.CleartextKeysetHandle.read (CleartextKeysetHandle.java:58)
com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.read (AndroidKeysetManager.java:321)
com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.readOrGenerateNewKeyset (AndroidKeysetManager.java:280)
com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.build (AndroidKeysetManager.java:230)
androidx.security.crypto.EncryptedSharedPreferences.create (EncryptedSharedPreferences.java:121)

Sorry, misclicked and closed. We're investigating.

Let's treat this as duplicate of https://issuetracker.google.com/issues/164901843

See https://issuetracker.google.com/issues/158234058#comment48 for a summary.

I see also this error message occurring in Nokia 8.3 5G / Android 10 (end-user's device):
CodedInputStream encountered an embedded string or message which claimed to have negative size
Is this related to this issue or should I file a new issue?
Reinstalling the app did not help either.  It seems this is not a random exception, it happens always in this user's device.
I already implemented a retry logic for exceptions of type InvalidKeyException and KeyStoreException as suggested in the linked issue. This new error message has some other type which I don't know yet. But I guess retrying would not help if reinstalling the app did not help either.

Don't know if this solves the issue for you all, but apparently changing the fileName on EncryptedSharedPreferences.create call to something different solved the problem to me.
In my case the issue appeared after updating the crypto version from 1.0.0-rc04 to 1.1.0-alpha03 (I had to extend support to Lollipop). So seems that, with the new version, the old sharedPreferences saved on the phone (working as for 1.0.0-rc04 on Android M+ devices) was not readable anymore. Here the idea of changing the filename, so I ignore any existing shared preferences (that's acceptable with the app I'm working on, and it's way better than crash on launch) and start reading/writing on a new one.

1.1.0-alpha02

androidx.security:security-crypto:1.1.0-alpha03 still has this issue

1.1.0-alpha02

androidx.security:security-crypto:1.1.0-alpha03 still has this issue

androidx.security:security-crypto-ktx:1.1.0-alpha03 too

any progress?

androidx.security:security-crypto:1.1.0-alpha04 has been released. I haven't tried it myself since it requires targetSdk 33, but I will do it as soon as I get a chance to update targetSdk.
There is a chance that alpha04 fixes this.


add type definition

Should reference to #238 and #177 here, and maybe compare contents of my gist linked in it.

I just want help, and I am using this project in my work.

Having typings for this library would be awesome! @guyonroche 🙏

Thanks @taoqf for doing this!
I'm not the hugest fan of types in JS but I know a lot of people are :-) so this will be a great addition

How should I use this typings for my Typescript application?

Just install this lib will be OK, after new version if published.

ask @guyonroche

@taoqf @guyonroche It looks like this is in the repo and released 👏
But on v1.0.1 import * as ExcelJs from 'exceljs'; isn't giving me any types as expected.
I can't find a index.d.ts in the dist after installing either
Has anyone gotten it to work? 🤔

@guyonroche , please put index.d.ts in release.

@ahaverty I found the typings in the repo, copied and pasted into the node_modules/exceljs folder.  Not a great solution but works until the release is fixed.

Before this change I was using types from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/exceljs
ie. installed with npm install @types/exceljs
Now I updated to the latest exceljs and the 'official' types from this merge don't seem so good. To give one example the font interface says that font requires all the parameters where I believe actually they should be optional?

@spacem could you please submit a PR that would fix the typing issues you are facing?

@spacem anything else?


com.archinamon.aspectj-ext and includeAllJars app crashing on startup

When running attached sample app with com.archinamon.aspectj-ext and includeAllJars = true the app is crashing on startup in simulator (Genymotion API 23) with the error below.
When running with com.archinamon.aspectj-ext plug-in disabled the app starts just fine.
Please note that application main activity is not implemented in main app modules, but in in the lib used by the library. Maybe it is related to multiDex treatment.
Please also find attached small Android Studio project with 2 modules app that simulates the issue.
test-project-for-archinamon.zip
                                                   --------- beginning of crash 05-20 04:20:54.191 23882-23882/? E/AndroidRuntime: FATAL EXCEPTION: main                                                    Process: com.mycompany.myapp.non.store.id, PID: 23882                                                    java.lang.RuntimeException: Unable to instantiate application com.mycompany.myapp.MyAppMyCompanyApplication: java.lang.ClassNotFoundException: Didn't find class "com.mycompany.myapp.MyAppMyCompanyApplication" on path: DexPathList[[zip file "/data/app/com.mycompany.myapp.non.store.id-2/base.apk"],nativeLibraryDirectories=[/data/app/com.mycompany.myapp.non.store.id-2/lib/x86, /vendor/lib, /system/lib]]                                                        at android.app.LoadedApk.makeApplication(LoadedApk.java:578)                                                        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4680)                                                        at android.app.ActivityThread.-wrap1(ActivityThread.java)                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)                                                        at android.os.Handler.dispatchMessage(Handler.java:102)                                                        at android.os.Looper.loop(Looper.java:148)                                                        at android.app.ActivityThread.main(ActivityThread.java:5417)                                                        at java.lang.reflect.Method.invoke(Native Method)                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)                                                     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.mycompany.myapp.MyAppMyCompanyApplication" on path: DexPathList[[zip file "/data/app/com.mycompany.myapp.non.store.id-2/base.apk"],nativeLibraryDirectories=[/data/app/com.mycompany.myapp.non.store.id-2/lib/x86, /vendor/lib, /system/lib]]                                                        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)                                                        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)                                                        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)                                                        at android.app.Instrumentation.newApplication(Instrumentation.java:981)                                                        at android.app.LoadedApk.makeApplication(LoadedApk.java:573)                                                        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4680)                                                         at android.app.ActivityThread.-wrap1(ActivityThread.java)                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)                                                         at android.os.Handler.dispatchMessage(Handler.java:102)                                                         at android.os.Looper.loop(Looper.java:148)                                                         at android.app.ActivityThread.main(ActivityThread.java:5417)                                                         at java.lang.reflect.Method.invoke(Native Method)                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)                                                     	Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.mycompany.myapp.non.store.id-2/base.apk                                                        at dalvik.system.DexFile.openDexFileNative(Native Method)                                                        at dalvik.system.DexFile.openDexFile(DexFile.java:295)                                                        at dalvik.system.DexFile.<init>(DexFile.java:80)                                                        at dalvik.system.DexFile.<init>(DexFile.java:59)                                                        at dalvik.system.DexPathList.loadDexFile(DexPathList.java:279)                                                        at dalvik.system.DexPathList.makePathElements(DexPathList.java:248)                                                        at dalvik.system.DexPathList.<init>(DexPathList.java:120)                                                        at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:48)                                                        at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:65)                                                        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:58)                                                        at android.app.LoadedApk.getClassLoader(LoadedApk.java:376)                                                        at android.app.LoadedApk.makeApplication(LoadedApk.java:568)                                                        		... 9 more                                                    	Suppressed: java.lang.ClassNotFoundException: com.mycompany.myapp.MyAppMyCompanyApplication                                                        at java.lang.Class.classForName(Native Method)                                                        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)                                                        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)                                                        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)                                                        		... 12 more                                                     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

Thanks for the details! I'll take a look on it as soon as I have some free time. :)

@siniy123 if you have multidex enabled, i recommend cleaning every time before building again - it helps me to overcome this problem.
@Archinamon i have seen this behavior many times - the only idea i got to fastFix this - is to remove predicate and always clean output:
if (!transformInvocation.isIncremental) {
    outputProvider.deleteAll()
}

Another idea is hidden inside the power of TransformAPI - check for changes with good usage of Scopes/ReferencedScopes
Also i don't fully understand the reason to do mergeJars inside transformation

@Badya, it is reproducible even if I run it ./gradlew clean assembleDebug. Is there something else I should do?

Also i don't fully understand the reason to do mergeJars inside transformation

There's damn magic inside android tools. Without mergeJars we're getting Multiple Dex files exception because android's MergeJars transform unable to combine multiple identical files — one from jar, another is an output of aspectj transform.

Is there something else I should do?

Yes. You have not to use includeAllJars just for fun. I'll explain why it's bad.
AJC (aspectj compiler) grabs all the jars and project's outputs with .class files under -inpath parameter. That means the AJC tries to lookup aspect classes within ALL libraries (I mean jars and aars too) and your own code. Some of them may become corrupted or incompatible in raw with AJC post-processing tools because there's may be a unusual bytecode manipulations that will brake AJC. I'd recommend to not using includeAllJars at all :) If you need to cover the concrete library with you aspect — please, use the includeJar attribute to qualify exact list of libraries (jars or aars, or even subproject modules) by simple verbose name (you don't need to qualify the full name).
I'm looking your example. It's working fine simply removing includeAllJars attribute.
test-project-for-archinamon.zip Here is a working sample aspect. :)

I would like to apply my aspects to all code and libraries including 3rd parties in my project. If I use includeJar to list my libraries that define aspects - they are only applied to java (compiled) classes and not applied to 3rd party jars/aar.

@siniy123 in case you wanna cover with aspects from 3rd party libraries into 3rd party libraries you may use includeJar to define WHAT libraries to weave and includeAspectsFromJar to define WHERE from ajc should take aspects (if they may come from another jar).
 :( It could be static analyse tool or any other. Anyway it's unpleasant work.

 :( It could be static analyse tool or any other. Anyway it's unpleasant work.

We did the exercise of excluding these libraries for our app community already, so we are ok with paying catchup with it. The original problem is not quite related since everything builds fine and just crashed on start-up.

The core problem I found is that ajc fails during build on some library. You may find log file in the root directory or in build/ajc-transform.log file. So dexing process doesn't have needed class files and this causes fail at startup.

@Archinamon , thank you for the lead. I noticed this, but other build tasks sailed through. In the end to make it start I had to upgrade to new instabug library and I also had to exclude the library pointed to by you from -inpath. Thanks, again.


[#3112] Add supprt for TCP_INFO when using EpollSocketChannel

Motivation:
On linux you can gather various metrics using getsockopt(..., TCP_INFO...). We should support this in EpollSocketChannel.
Modifications:
Add EpollSocketChannel.tcpInfo() which return TcpInfo that holds all relevant metrics.
Result:
TCP_INFO is supported now.

@trustin ping :)

It depends on what users intend to do with tcpinfo. Why do you dislike reusing EpollTcpInfo?

@trustin I think it is just a cleaner API to return a new object and not mutate an existing one. Also I think object creation is the "smaller" problem with calling it heavily as every call also needs to do a JNI Call, which is the "more expensive thing" IMHO.
If we really want to reuse TcpInfo we should also change the method name to updateTcpInfo or something like that. That said I'm still not convinced that it is a good thing to do.

Well, you could think the new method similarly to toArray(T[]) in collections API?

@trustin as you seems to feel very strong about it why not just keep both ?

I actually meant for keeping both.

@trustin ok let me update the PR and ping you again for final review :)

@trustin ok addressed... please one last review before I merge :)

Looks great to me. Please cherry-pick after fixing asterisk position consistency.

@trustin thanks... Cherry-picked into 4.0 (d79e4ffe071b7ac83692dfd4b08b7af6dfbc192e), 4.1 (c5bd8fd264986b1a3bdbaf5cb4488981ce554b78) and master (201d9ed9badaa70c941943268d974e61c4e84e9d)


⚠ Bofrost.de has degraded performance

In 573a180, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1703 ms

Resolved: Bofrost.de performance has improved in ec0744e after 20 minutes.


Make the package npm publishable

Addresses #42
Description

Updates the package so that it's publishable to npm
Haven't looked at publishing to bower as bower has been deprecated

Notes
To run demos just run npm run demo to build bundles for webpack and browserify or run respective scripts specified in package.json.
@xdamman, I believe since you're the owner of the package - I'll let you decide whose name this package should go under.
Also, I noticed that this package is named either selection-share or share-selection. At the moment this package is named share-selection according to package.json but the project itself is named selection-sharer. I believe you should publish it as selection-sharer to avoid confusion to former and current users. But it's upto you. :smile_cat:
Let me know if there's anything that needs to be changed in this PR.

Feel free to publish it under your name.
Agreed on keeping the name consistent with the name of the repo.
Thanks for the great work!
A really cool thing to do would be to make it as a react component.

A really cool thing to do would be to make it as a react component.
I think we should have a different repo for that as it might confuse people who are not using react on their project.

Just an update on the consistent name. I went ahead and named it selection-sharer in npm as well so that it matches the repo name.
It's now been published here. :tada:

react-selection-sharer?

Yeah, I think the naming convention on react-components should make that obvious.


mark client_channel_stress_test as flaky

The test is currently flaky on dbg (see internal issue) and causing red builds.
Marking as flaky until this gets resolved and we figure out the huge test duration variance.

known failures:
https://github.com/grpc/grpc/issues/22623


Make boot2docker compatible with Machine

I'm using this issue as a way of tracking our boot2docker dependencies for a Machine 1.0 release.

Docker with identity auth should be included in boot2docker
This patch is required for VMware Fusion

Closing as we no longer use identity and have separate issues for the b2d compatibility for vmw.


[3.x] Make posmod use int64_t instead of int

Fixes #48420, fixes #48421. Cherry-pickable for 3.3.
Needs a separate version for master because the code handling calling from GDScript is different. I'm not really sure what needs to be done in there thus I'm leaving it for someone else.

Thanks!

Cherry-picked for 3.3.1.


Add the possibility to compute the joint velocity in SensorBridge

It would be nice to implement a small filter in YarpSensorBridge to get the robot velocity. We may add an optional configuration parameter (e.g. use_estimated_velocity)  to switch from yarp velocity to the estimated one.
A possible solution is to implement an exponential filter to compute the joint velocity
cc @isorrentino @S-Dafarra @traversaro @paolo-viceconte @prashanthr05

I would prefer to have a separate block to filter them. In my opinion, the sensor bridge should avoid doing any computations on the input data. It is on the user to eventually add filters

I would prefer to have a separate block to filter them. In my opinion, the sensor bridge should avoid doing any computations on the input data. It is on the user to eventually add filters

Yes, in the past we "hided" computations inside a sensor interface, and that was not a great idea as people forgot about those filtering, and they did not considered them when optimizing parameters/debugging problems.


Flaky issues link to internal dashboards

See https://github.com/flutter/flutter/pull/95572

50 consecutive runs

There should be a public link and access to the internal chart. As a work around, we could link to flutter-dashboard.appspot.com with a filter so non-Google contributors can audit flaky tests.

\cc @keyonghan @chunhtai

Closing because the bug has not been updated for more than one year.
Feel free to reopen any bugs that you believe are important but please provide updates on how to resource the fix of the bug and what can be done to prevent the issue from not getting updates for another year.