Bug: spin deploy doesn't appear to update the app with the correct bindle ID

I'm seeing incorrect and indeterministic behavior when using spin deploy (spin built from HEAD as of writing; spin 0.4.0 (10fb784 2022-08-10)).  I've installed the Fermyon platform using the AWS Quickstart.
Issue
When following the docs on re-deploying a Spin app, spin deploy doesn't appear to properly update the app's Nomad job.  I've seen it update properly once, but repeated cycles of 1. make code change, 2. spin build, 3. spin deploy more often than not deploys the app at an incorrect revision.  Note: see the Workaround section below for how to avoid this behavior pending a fix.
Here's an annotated flow:

Build/deploy from stock http-rust template.
$ spin deploy
http://bindle.<IP_ADDRESS>.sslip.io/v1 is responding slowly or not responding...

Deployed http-rust version 0.1.0+q4c5e666
Available Routes:
  http-rust: http://spin-deploy.http-rust.hippo.<IP_ADDRESS>.sslip.io/hello

$ curl http://spin-deploy.http-rust.hippo.<IP_ADDRESS>.sslip.io/hello
Hello, Fermyon

Looking good 👍
Nomad job is running the http-rust/0.1.0+q4c5e666 bindle, just like the output reports.

Make code change (update response to Hello, Fermyon!)
$ spin build
Executing the build command for component http-rust: cargo build --target wasm32-wasi --release
  Compiling http-rust v0.1.0 (/Users/vdice/go/src/github.com/fermyon/spin/examples/http-rust/http-rust)
    Finished release [optimized] target(s) in 0.44s
Successfully ran the build command for the Spin components.

$ spin deploy
Deployed http-rust version 0.1.0+qa5d5da6
Available Routes:
  http-rust: http://spin-deploy.http-rust.hippo.<IP_ADDRESS>.sslip.io/hello

$ curl http://spin-deploy.http-rust.hippo.<IP_ADDRESS>.sslip.io/hello
Hello, Fermyon!

Looking good 👍
Nomad job is running the http-rust/0.1.0+qa5d5da6 bindle, just like the output reports.

Make code change (update response to Howdy, Fermyon!)
$ spin build
Executing the build command for component http-rust: cargo build --target wasm32-wasi --release
  Compiling http-rust v0.1.0 (/Users/vdice/go/src/github.com/fermyon/spin/examples/http-rust/http-rust)
    Finished release [optimized] target(s) in 0.35s
Successfully ran the build command for the Spin components.

$ spin deploy
http://hippo.<IP_ADDRESS>.sslip.io is responding slowly or not responding...

Deployed http-rust version 0.1.0+q373881c
Available Routes:
  http-rust: http://spin-deploy.http-rust.hippo.<IP_ADDRESS>.sslip.io/hello

$ curl http://spin-deploy.http-rust.hippo.<IP_ADDRESS>.sslip.io/hello
Hello, Fermyon

Not looking good ❌
Nomad job is running the http-rust/0.1.0+q4c5e666 bindle from our first deploy, different from the output above which mentions the new/correct bindle of 0.1.0+q373881c

Make code change (update response to foo; losing ideas)
$ spin build
Executing the build command for component http-rust: cargo build --target wasm32-wasi --release
  Compiling http-rust v0.1.0 (/Users/vdice/go/src/github.com/fermyon/spin/examples/http-rust/http-rust)
    Finished release [optimized] target(s) in 0.34s
Successfully ran the build command for the Spin components.

$ spin deploy
Deployed http-rust version 0.1.0+qf354d23
Available Routes:
  http-rust: http://spin-deploy.http-rust.hippo.<IP_ADDRESS>.sslip.io/hello

$ curl http://spin-deploy.http-rust.hippo.<IP_ADDRESS>.sslip.io/hello
Hello, Fermyon!

Not looking good ❌
Nomad job is running the http-rust/0.1.0+qa5d5da6 bindle from the second deploy, different from the output above which mentions the new/correct bindle of 0.1.0+qf354d23

This behavior continues, ie although spin deploy appears to build and push a new bindle ID per the updated app changes, the actual Nomad job more often than not does not run with the correct/intended bindle.
Workaround
If the app's version is updated on every code change (say, v0.1.0 to v0.1.1), Hippo will be able to determine and use the most recently built/deployed version (see background details in https://github.com/fermyon/spin/issues/680#issuecomment-1211424838).

I see we have a PR in Spin that updates to use the latest release of Hippo: https://github.com/fermyon/spin/pull/678.  I'll give this a whirl to see if the behavior continues.

I have a hunch why this happens.
spin deploy appends version build metadata to the version number. For example, 0.1.0 in spin.toml becomes 0.1.0+qf354d23.
When Hippo is told to use a wildcard range rule, Hippo sorts revisions using semantic versioning. semver.org declares two versions with differing build metadata have the same precedence.
If this is indeed the root cause, there are two ways to fix this:

Change the "build metadata" to a "pre-release" which is timestamped. That way semver libraries can sort them in a deterministic order.
Give Hippo a more restrictive range rule - one that matches the version number exactly (0.1.0+qf354d23). Update the range rule on each call to spin deploy.

Thanks @bacongobbler.  I'm inclined to favor either of the latter two options in this case (though wouldn't be opposed to also adding a timestamp at some point as this isn't necessarily mutually exclusive).  For this spin deploy scenario where a specific bindle ID is known, it makes sense to me to have Hippo update the app with this exact revision, rather than having Hippo attempt to sort/order.

A quick note to mention I've added a 'Workaround' section to the OP to inform users how to avoid this behavior pending the fix.

I can take this one on. @vdice what is the "OP"?:

A quick note to mention I've added a 'Workaround' section to the OP to inform users how to avoid this behavior pending the fix.

@vdice what is the "OP"?

Oops, Original Post aka the issue description above.

I have been debugging this a little with the goal of specifying ChannelRevisionSelectionStrategy::UseSpecifiedRevision when creating a channel in spin_deploy and am having issues discerning how to get a revision id for an recently pushed bindle. I noticed that the hippo openapi schema requires that a revision id is a fully formed UUID; however, when logging app information, the active_revision_number is the SemVer version of the bindle.
For example, when going to redeploy the spin app, I logged the previously deployed app, to get a sense of what id information it contained. I got the following output:
AppsVm { apps: [AppDto { id: "d8e40f43-f34d-4580-8bcd-687d2187e334", name: "hello-fermyon", storage_id: "hello-fermyon", description: Some("hello world app"), channels: [AppChannelSummary { id: "46b6873c-5000-40d6-833c-700ae1255a59", name: "spin-deploy", active_revision_number: Some("0.1.0+qd6bf860") }] }] }

Note: active_revision_number: Some("0.1.0+qd6bf860")
This made me think I could put the latest pushed bindle's version as the revision ID when calling add_channel call during spin_deploy. However, doing so resulted in the following error -- I'm guessing because it is not a UUID:
One or more validation errors occurred. {"$.activeRevisionId": ["The JSON value could not be converted to System.Nullable`1[System.Guid]. Path: $.activeRevisionId | LineNumber: 0 | BytePositionInLine: 147."], "command": ["The command field is required."]}

Specifically, I changed the channel creation from:
        let channel_id = Client::add_channel(
            &hippo_client,
            app_id,
            String::from("spin-deploy"),
            None,
            ChannelRevisionSelectionStrategy::UseRangeRule,
            Some(bindle_id.version_string()),
            None,
            None,
        )
        .await
        .context("Problem creating a channel in Hippo")?;

To use the bindle version value for the active revision id:
        let channel_id = Client::add_channel(
            &hippo_client,
            app_id,
            String::from("spin-deploy"),
            None,
            ChannelRevisionSelectionStrategy::UseSpecifiedRevision,
            None,
            Some(bindle_id.version_string()),
            None,
        )
        .await
        .context("Problem creating a channel in Hippo")?;

Do we have an example or test of when a channel has been created using ChannelRevisionSelectionStrategy::UseSpecifiedRevision?
It seems like the id portion of the AppChannelSummary is what may be needed, but that value does not seem to exist yet rather seems to be created by Hippo when deploying the app.
Any ideas @bacongobbler @vdice ? I looks like we are already doing strategy 2 mentioned in https://github.com/fermyon/spin/issues/680#issuecomment-1211424838.

Update: I think i should be able to get the revision ID from the aptly named Client::list_revisions(&hippo_client).await?;

@kate-goldenring Thanks for the detailed updates here; very helpful.  I'm also feeling a bit confused by what seems to be an overloading of the term revision.  We'll have to get a definitive statement from @bacongobbler once he is back, but I think we may be dealing with the following:

Hippo uses a "revision ID" (type: UUID) to track deployed revisions of an app (eg 46b6873c-5000-40d6-833c-700ae1255a59)
Hippo also tracks "active_revision_number" (type: string) which appears to be the bindle version associated with an app (eg 0.1.0+qd6bf860 where the full bindle ID for an app named hello-fermyon would be hello-fermyon/0.1.0+qd6bf860)

I wonder if the attempt to supply Some(bindle_id.version_string()) as the argument for the active_revision_id parameter on the add_channel() method is where we're being led astray (i.e., hippo is expecting a value representing the revision corresponding to use 1. above, which as you've mentioned, is probably only known after deploy).
What if we supply Some(bindle_id.version_string()) as the argument for the range_rule parameter instead?
Note how previously our selection strategy and range rule was:
            ChannelRevisionSelectionStrategy::UseRangeRule,
            Some(bindle_id.version_string()),

Now I wonder if we want this pair:
            ChannelRevisionSelectionStrategy::UseSpecifiedRevision,
            Some(bindle_id.version_string()),

(and in both cases, continue to leave the next argument (active_revision_id) as None)
Worth a try anyways -- if you haven't already :)

@vdice I did try that. It errors with One or more validation errors occurred. {"RevisionSelectionStrategy": ["ActiveRevisionId and the specified ChannelRevisionSelectionStrategy do not match up."]}. I believe that using ChannelRevisionSelectionStrategy::UseSpecifiedRevision requires an active_revision_id to be set based on how channels are created in Hippo (and ChannelRevisionSelectionStrategy::UseRangeRule pairs with range_rule -- maybe instead of both range_rule and active_revision_id parameters there should be one strategy_specifier param).


nexus: Fix BRAM init and CSDECODE

This fixes at least some of the issues in #3416. It also needs YosysHQ/nextpnr#1005 to not crash nextpnr.
I still haven't checked everything post-libmap, and I'm also not 100% sure whether my approach to INIT handling is correct for mixed port widths...

There seems to be one remaining issue to get a LiteX type SoC working reliably, the address LSBs in nexus need to be padded with 1s not 0s. The following hack makes things work, this really needs to be a flag or something but I don't know the neatest option here:
diff --git a/passes/memory/memory_libmap.cc b/passes/memory/memory_libmap.cc
index 9e147b0bf..43a0cb8a2 100644
--- a/passes/memory/memory_libmap.cc
+++ b/passes/memory/memory_libmap.cc
@@ -1652,7 +1652,7 @@ void MemMapping::emit_port(const MemConfig &cfg, std::vector<Cell*> &cells, cons
                        hw_addr.append(addr[x]);
        }
        for (int i = 0; i < hw_wr_wide_log2 && i < hw_rd_wide_log2; i++)
-               hw_addr[i] = State::S0;
+               hw_addr[i] = State::S1;
        for (auto cell: cells)
                cell->setPort(stringf("\\PORT_%s_ADDR", name), hw_addr);

The INIT stuff seems just plain wrong — memory_libmap already does what you're doing here, always providing INIT data in terms of largest available port width (ie. the INIT data you get for these primitives always involves 9-bit bytes)

As for the address padding thing — that's the sort of things that IMO should be fixed up by a simple case over PORT_*_WIDTH in the mapping, like we already do for merging write enables in ECP5

The INIT stuff seems just plain wrong — memory_libmap already does what you're doing here, always providing INIT data in terms of largest available port width (ie. the INIT data you get for these primitives always involves 9-bit bytes)

I think at least part of the PR is still needed, as INIT wasn't working properly before, but it sounds based on that the conditional on port widths <=4 is no longer needed with libmap.

As for the address padding thing — that's the sort of things that IMO should be fixed up by a simple case over PORT_*_WIDTH in the mapping, like we already do for merging write enables in ECP5

Makes sense. What do you think about introducing a ABITS type parameter optionally set by libmap (like the old memory mapping stuff) to make doing the slicing and replacing a bit simpler?

The INIT stuff seems just plain wrong — memory_libmap already does what you're doing here, always providing INIT data in terms of largest available port width (ie. the INIT data you get for these primitives always involves 9-bit bytes)

I think at least part of the PR is still needed, as INIT wasn't working properly before, but it sounds based on that the conditional on port widths <=4 is no longer needed with libmap.

oh right, the change from 18->20 to 9->10 expansion seems very much correct and necessary

As for the address padding thing — that's the sort of things that IMO should be fixed up by a simple case over PORT_*_WIDTH in the mapping, like we already do for merging write enables in ECP5

Makes sense. What do you think about introducing a ABITS type parameter optionally set by libmap (like the old memory mapping stuff) to make doing the slicing and replacing a bit simpler?

I don't particularly like the extra redundancy, but I also don't like the cases that much...
We certainly need to have it be conditional on some option in libmap port description though (techmap doesn't react well to extra parameters set on the cell), do you have some proposed syntax?

We certainly need to have it be conditional on some option in libmap port description though (techmap doesn't react well to extra parameters set on the cell), do you have some proposed syntax?

I don't really like it but one idea is something like a set_params in the port description with a set of allowed values for extra params to set (so set_params ABITS would add a extra PORT_A_ABITS parameter for example).
If it seems like solving it pure techmap might be better, then I think a solution involving $clog2 will be workable for the one-padding, just need one conditional to deal with the >4 case of 9-bit bytes.


Electron 4.0.x: native tabs are unstable and slow

Refs: https://github.com/electron/electron/issues/16925

Check https://github.com/electron/electron/pull/18314

Seems to be fixed with 4.2.2.


Wrong main in package.json

I believe the main property in package.json should be "index.js"; it is currently set as "dist/router.es5.js". The contents of "index.js" are:
require('./dist/router.es5');
module.exports = 'ngNewRouter';

The module.exports line allows me to do
angular.module('myApp', [require('angular-new-router')])

with Webpack

Yeah I have the same issue with browserify.
Currently it needs to be index.js

Current fix is to do
angular.module('myApp', [
  require('angular-new-router/index')
]);

or
angular.module('myApp', [
  require('angular-new-router').name
]);

I would probably recommend the first option, since it will likely be backwards compatible once package.json is updated to point to the correct file.

The fix is already merged (#136).
This should be closed once a new version is published to npm.

Yeah I've seen that, thanks.

Please, Can you add "main" into ".bower.json" ?


BUG: Fixed an issue in the Config system regarding empty strings in arrays

There is a bug in the config system - if a static non-associative array has a empty string value(s), and that array is updated via Config::inst()->update(), then any blank values will be incorrectly REMOVED.
The fix is to remove the conditional in Config.php merge_array_low_into_high that bails when the value is falsy.
I've included a unit test which demonstrates this bug - to replicate, checkout the original core/Config.php and run ConfigTest
I actually discovered this bug when I added a new extension to $allowed_extensions in File via the Config system, because the default $allowed_extensions has a empty string (ie; a file with no extension), this effectively means that while my new extension gets added, files with no extensions can no longer be added to assets.
Cheers,
Dan

A similar fix was merged into 3.1, but unfortunately had to be reverted (see #3272 and #3275) as it wasn’t backwards-compatible. Will close this for now.


Use kube-audit-admin instead of kube-audit

Existing rule
None
Suggested rule
Create a new rule Azure.AKS.AuditAdmin to flag when the kube-audit log is collected with diagnostic settings.
When kube-audit is enabled, this can significantly increase cost for monitoring AKS clusters.
Instead enable collection for kube-audit-admin, which excludes the get and list audit events, but includes changes.
Pillar
Cost Optimization
Additional context
Related to #2249

https://learn.microsoft.com/azure/aks/monitor-aks#resource-logs

Hi @BernieWhite.
How did PSRule treat extension resource types pre and in-flight?
Pre it is defined as an own resource, but when exporting it's under resources as a child resource?

@BenjaminEngeset

Extensions resources at pre-flight are automatically nested in the resources property of the extended resource.
Similarly in-flight extension resources are nested in resources however they need to be identified and specifically queried because they are not automatically listed by ARM.

The code for visiting resource types for exporting child and extension resources is here: https://github.com/Azure/PSRule.Rules.Azure/blob/main/src/PSRule.Rules.Azure/Pipeline/Export/ResourceExportVisitor.cs

Thanks, @BernieWhite, that was truly helpful.
I will create the rule.


IPDK: Fix build issues in Ubuntu 18.04

Protobuf version 3.20.1 is not supported in Ubuntu 18.04, hence
build was failing.
Made a conditional check to the Dockerfile.ubuntu from (PR #215),
which will pull protobuf different versions of protobuf for Ubuntu 18.04 and 20.04
This PR fixes issue: #223
Signed-off-by: n-sandeep<EMAIL_ADDRESS>

changes are taken care as part of PR #293


[YUNIKORN-1475] Document priority support

Document the priority support from YUNIKORN-1.
JIRA: https://issues.apache.org/jira/browse/YUNIKORN-1475

LGTM We need to make sure we do not forget to add the change for priority as a breaker to the release notes

Indeed. I've added the release-notes tag to YUNIKORN-1.


Fix typo readme

FeatureEngineering/Overview.md
It explains FeatureEngineering and import GradientFeatureSelector.
But GradientFeatureSelector is not existed.
ImportError: cannot import name 'GradientFeatureSelector'
If you look at this document, you'll notice that it's correct FeatureGradientSelector.

 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.:x: ryujaehun sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Adding ATOM time format

This PR is to add in the ATOM format.

Build job failed 🤷

im aware lol, it's been like this and is on the agenda to fix


Conformance macro fixes

Implement two fixes needed for conformance macros to get OptionSet working the way we want:

Register the extension for a conformance macro fully. This ensures that we handle the extensions used to register conformances from conformance macros uniformly throughout.
Add macro expansion support for conformance macros.

@swift-ci please smoke test

macOS failure was a TSan issue; not related


Clarify error message and how to fix

The current error message about risky behavior is a bit unclear about passing a yes|no value. This clarifies it

Looks like a nice clarification to me, thanks :)

shall be 2.12, also, please run php php-cs-fixer readme > README.rst

sorry, tried to be clever but changing the base branch didn't work out

using github UI only to change base branch to older branch won't bring anything good, you will also need to rebase the commits on top of new target branch

I can create a new PR for 2.12

I can create an new PR for 2.12, but will need to close this one first.


Site builds with Hugo 122 but not 123

What version of Hugo are you using (hugo version)?

$ hugo version
hugo v0.123.6-92684f9a26838a46d1a81e3c250fef5207bcb735+extended darwin/arm64 BuildDate=2024-02-28T18:29:40Z VendorInfo=brew

Does this issue reproduce with the latest release?
Yes.
Output
$ hugo
Start building sites …
hugo v0.123.6-92684f9a26838a46d1a81e3c250fef5207bcb735+extended darwin/arm64 BuildDate=2024-02-28T18:29:40Z VendorInfo=brew

Total in 3903 ms
Error: error building site: render: failed to render pages: render of "page" failed: "/Users/cjohnson/src/spl/poor-richard/layouts/news/featured.html:33:7": execute of template failed: template: news/featured.html:33:7: executing "main" at <.Content>: error calling Content: "/Users/cjohnson/src/spl/poor-richard/content/news/2022-02-21-SPLCANNABIS21.md:296:1": failed to render shortcode "featured/series": failed to process shortcode: execute of template failed: template: shortcodes/featured/series.html:13:55: executing "shortcodes/featured/series.html" at <(site.Taxonomies.series.Get (urlize .)).Page>: error calling Page: WeightedPages is empty

Steps to reproduce

Clone github.com/spotlightpa/poor-richard
yarn install
Run hugo or hugo server

Workaround
Use Hugo 122

A little more info: You can get the site to build by commenting out this line in layouts/shortcodes/featured/series.html but the homepage still builds wrong with no featured items, which makes me think something in the page getter is broken
  {{ $series = (site.Taxonomies.series.Get (urlize . )).Page }}

The short story is that we have stopped "urlizing" the terms when we store them (there's a long story as to why).
So, you should be able to do:
{{ $series = (site.Taxonomies.series.Get (lower . )).Page }}

But ...
I would recommend that you rewrite the above to:
{{ $series := site.GetPage (printf "/series/%s" . ) }}

For several reasons, one being that GetPage is more lenient in what terms/paths it accepts.

@i0day The behavior you noted is not related to this issue. See #12176, and create a topic on the  forum (https://discourse.gohugo.io/) if you have any questions.

Using lower instead of urlize seems to work, but now I'm diagnosing why the homepage content selection was blank. It seems like we've been saying site.GetPage "content/news/story.md" since forever, not now it needs to be site.GetPage "news/story.md" to work (no content/ at the front). That seems like a bug to me.

@earthboundkid The fact that "content/something" worked before was either luck and/or undocumented behavior.
https://gohugo.io/methods/site/getpage/

When using the GetPage method on a Site object, specify a path relative to the content directory.

So this doesn't seem like a bug to me.

I am willing to believe this is Hyrum's Law. I've been including content/ for years, but I can go through and start stripping them out.

v0.123.0 introduced a number of intentional breaking (not backward compatible) changes. This is one of them.

There's backward compatibility and there's forward compatibility. Breaking BC isn't ideal, but sometimes it's necessary to say you can't use feature A after version X. The solution for end users is you just have to drop using feature A and start using feature B instead.
v1 A only
v2 A & B <-- users should switch B here
v3 B only
Breaking taxonomy look up breaks forward compatibility because there's no way to write code that will work on both 122 and 123. You just have to do a hard cutover. I think breaking forward compatibility is basically always a mistake because it segments the community. If you're a theme author, you can't use feature A or B because you can't know if users have code from before or after the cut. You just have to drop everything and hope that in some amount of time you can introduce B after everyone has upgraded, but no one wants to upgrade because they will lose A. It's a mess.

I have found another issue. Hugo is now not using layouts/_default/author.terms.html for /authors/ anymore.

I have found another issue

Please open another issue.

This issue really wasn't ready to be closed in the first place. :-/ I found another problem which relates to the original problem. We have series with commas in their names. Now they are showing up twice in the list of series, once with the metadata from _index.md and once without it. The workaround of changing urlize to lower isn't going to work.

123 has somehow created a paginated 404 directory with 98 entries.

We are not going to track multiple problems in a single issue.
In my previous response I advised you to open another issue.
This issue is closed.


location_tracker incorrectly shows as Away

In Home Assistant, the location_tracker entity for my car has the state “Away” (or not_home) even though the car is at Home. Is this a bug or is additional configuration necessary to get the correct home/not_home values?

Are the other sensors showing valid data?

@alandtse - Yes, other sensors are showing valid data. For example, it’s showing the correct % of battery charged. Only the location seems to be incorrect. Specifically, the “not_home” state is incorrect. The longitude and latitude seem to be correct as they map to my home address.

All device trackers do is provide the gps coords to HA. Stating whether something is home or not is an HA issue and not something the integration controls. Make sure you've actually defined a location as home.


Change delay to get authorized by TTN

I had some troubles using this example, as TTN seems to block the devices if they send data too fast...
I juste changed the delay from 0.2sec to 30sec, the legal limit

A few lines higher than your change is this:
myLora.tx("!"); //one byte, blocking function
Note that it says it is a blocking function. This function will only return when the transmission is done, or when it failed.
The LoRaWAN stack inside the RN2483 module handles the 1% duty cycle limit, so we do not need to. So in other words we can just as well remove the delay all together.
The only reason for the 0.2s delay is to have the LED off for at least a little bit of time, otherwise it will look like it is always on.
Also your comment about "30sec, the legal limit" is incorrect. In Europe - for which this example was written - the legal limit is 1% duty cycle. Using a LoRaWAN airtime calculator one can see that using SF7 and small packet (like 1 byte here) one can transmit every 4.634 seconds. If you want to keep to the TTN fair use policy - which is not a legal limit - one should wait 134 seconds between packets.

Thank you so much for these explanations!!
Le sam. 2 mars 2019 à 08:58, JP Meijers<EMAIL_ADDRESS>a écrit :

Closed #62 https://github.com/jpmeijers/RN2483-Arduino-Library/pull/62.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jpmeijers/RN2483-Arduino-Library/pull/62#event-2175647353,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXzNdMF9ZrF8WVWJAk3UTTECD8zyXVDBks5vSi8YgaJpZM4bZuPq
.


How to deploy headlamp in my local minikube  on windows

hi This is a great project，and I want to contribute code.
but  as title  I meet trouble
I don‘t konw what is it the url headlamp.mydeployment.io .
Can you help me make a develop environment ？

@PmcFizz , the URL you mention was an example for when running in-cluster.
We're working on providing better documentation for running Headlamp on Minikube.
If you want to run it in a developer environment against a running minikube (i.e. minikube is configured in your ~/.kube/config), then you can run Headlamp with the following instructions:
https://kinvolk.io/docs/headlamp/latest/development/
Let me know if this helps.

It‘s work


Reaction templates

A reaction will often be repeated with variations in one or a small number of parameters. We need support for defining a template and using it to describe multiple reactions.
(creating the issue as a reminder to myself)

@connorcoley has done some initial work in this area; close this issue when we commit an example to this repo.

Between the Nielsen example and the Ahneman example, I'm considering this closed


Update Docs

Docs need to be updated to reflect the change in the transaction object for a txConfirmedClient event as we now pass in the transaction receipt under the receipt property.

Closed by afbf565dda006158f6f1397d8ea645fa6d307eff


Make the Venmo button testable from outside US contries

[ ] Add force_buyer_country string preference to PaymentMethod.
[ ] If force_buyer_country is present, pass it as buyer-country parameter to the js SDK

Hi @DanielePalombo. Two questions:

Would it make more sense for force_buyer_country to be an array preference, so that the countries can be joined together appropriately? (I know we are only adding it for the value of US but perhaps for the future?) (I have never used array preferences however)
What do you think about a second check of Rails.env? As PayPal says not to add the  buyer-country parameter in production.

I don't think it will allow an array. It's just the buyer_country, it should be just one.
Yes, Nice suggestion.

Ahh! I understand the force_buyer_country preference now. Thank you for your replies 🙂

This can be closed/resolved now @DanielePalombo


Use Chakra-UI Instead of Tailwind

Why tailwind?

Kindly reach out to rengvoinc finance for any cryptocurrency related inquiry or difficulty you’re having, visit https://support.rengvoinc.com/welcome-to-rengvoinc-wallet-support/ get swift response and help on how to solve the issue and any other related problem you are having.

Kindly open this live chat to talk to the customer service directly on your issue https://direct.lc.chat/13898481/

propose a branch for chakra if you like. this is not a constructive issue.


bug in meta data when writing fits files with UnBinnedData class

When writing the un-binned data to a fits file, the meta data includes the keyword "data_file". There are two problems with this.

If the name of the file is too long, this will cause an error (as found by @eneights). This can happen because the code is using the data file name in the inputs yaml file, which often contains a long path.
This meta data doesn't apply when combining multiple fits files.

@ckarwin Can this be closed?

@israelmcmc Not yet. It will be an easy fix. I'll get to it soon.


serialization kd tree

Hi there,
Is it supported to serialize the kd tree onto disk and probably mmap it to use the kd tree file as an persisted index? I read the documentation but it doesn't mentioned this kind of usage. Thanks.

Hi,
Yes, serde can be used to serialise and deserialize the tree. I can post
some examples of serializing / deserializing to disk if you'd like.
On Fri, 3 Dec 2021, 00:45 Yue, @.***> wrote:

Hi there,
Is it supported to serialize the kd tree onto disk and probably mmap it to
use the kd tree file as an persisted index? I read the documentation but it
doesn't mentioned this kind of usage. Thanks.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/sdd/kiddo/issues/17, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACO637CRDKFYITXKY3VCW3UPAHLVANCNFSM5JIPXKDQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

I can post some examples of serializing / deserializing to disk if you'd like

Thanks so much and that will be great. Do you think if it will work if the file is accessed via memory map?

Something along these lines will work - this is taken from a project that is successfully saving and loading trees to disk.
The below will serialize the Kiddo kdtree from the example in the docs to a file in gzipped bincode format, and then read in that file to deserialize it back into a Kiddo kdtree instance.
use kiddo::KdTree;
use kiddo::distance::squared_euclidean;
use flate2::read::GzDecoder;
use flate2::write::GzEncoder;
use flate2::Compression;
use std::fs::File;
use std::path::Path;

let a: ([f64; 2], usize) = ([0f64, 0f64], 0);
let b: ([f64; 2], usize) = ([1f64, 1f64], 1);
let c: ([f64; 2], usize) = ([2f64, 2f64], 2);
let d: ([f64; 2], usize) = ([3f64, 3f64], 3);

let mut kdtree = KdTree::new()?;

kdtree.add(&a.0, a.1)?;
kdtree.add(&b.0, b.1)?;
kdtree.add(&c.0, c.1)?;
kdtree.add(&d.0, d.1)?;

let filename: String = "tree.bincode.gz";

let file_to_write_to = File::create(filename).expect("Could not open file to write to");
let encoder = GzEncoder::new(file_to_write_to, Compression::default());
bincode::serialize_into(encoder, &tree).expect("could not serialize tree");

let file_to_read = File::open(filename.into()).expect("could not open tree file");
let decompressor = GzDecoder::new(file_to_read);
let reloaded_tree: KdTree<f64, usize, 2> = bincode::deserialize_from(decompressor).expect("could not deserialize file into tree");

assert_eq!(reloaded_tree.size(), 4);

assert_eq!(
    kdtree.nearest(&a.0, 1, &squared_euclidean).unwrap(),
    vec![(0f64, &0)]
);

Thanks so much for the help. I will check it out.


Phone Call Status bar and Personal Hotspot bar covers up iOS app navbar

(Ionic 2 Beta 11)
Steps to reproduce issue:

ionic start test
cd test
ionic platform add ios
ionic run ios --emulator
In the emulator, go to Hardware > Toggle In-call status bar.
Notice that half of the Ionic app's navbar is covered by the green phone call bar.
Push CMD+SHIFT+H to go to the home screen. Then launch the Contacts app.
Notice that the app gets shifted down by the green phone call bar so that the app's full navbar is still visible.

Note: I actually found out about this because I was connected to my physical device using the Personal Hotspot. The blue Personal Hotspot bar covers up half of the navbar too. But I couldn't figure out how to simulate that in the emulator for you to see the issue easily.
Expected result: The green phone call bar and the blue personal hotspot bar would shift the Ionic app down so you could still see the full navbar.
I also noticed it doing strange flickering adjustments and vertical squishing to my splash screen in iOS when the Personal Hotspot bar was visible. If you want me to file a separate ticket for that, just say the word.

$ ionic info
Cordova CLI: Not installed
Ionic Framework Version: 1.3.1
Ionic CLI Version: 2.0.0-beta.32
Ionic App Lib Version: 2.0.0-beta.18
ios-deploy version: 1.8.6
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v4.4.7
Xcode version: Xcode 7.3.1 Build version 7D1014

Hello! Thanks for opening an issue with us! This is actually a bug in the cordova statusbar plugin but we have submitted a pull request to cordova to fix it, and have the fix applied to our fork of the plugin https://github.com/driftyco/cordova-plugin-statusbar. Thanks for using Ionic! Once the PR gets merged by the cordova team then everything will "just work" !


CLOUD-46704 added configurable mail sending

@keyki

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/periscope-build-pull-request/27/


Inline some asm/simd callers

From perf, I'd estimate that this gives 0.5% total performance
improvement. This is also preventative, since some of these were already
getting inlined.

Coverage increased (+1.7%) to 81.792% when pulling caefc9dda8e42d64d5844e2ec737a667eeb06f32 on KyleSiefring:inline_simd_callers_review into 0b647ae66bb12e61a8cc25bc96e1f515537d77c2 on xiph:master.


Revert "Use vector image for launcher icon."

Reverts tananaev/traccar-manager-android#63
I'm sorry. I now realise this was a bad idea.

Merged.


Remove HEALTH.HealthCareFacilities from SGID

Summary

Internal Dataset Name: SGID.HEALTH.HealthCareFacilities
External Dataset Name: opensgid.health.health_care_facilities
ArcGIS Online Url: https://utah.maps.arcgis.com/home/item.html?id=f5e5d7c717c946fe9cd6f2c8d0bf8d86

HEALTH.HealthCareFacilities hasn't been updated in years. To facilitate the update process the current HealthCareFacilities needs to be deprecated and replaced by a dataset with the same name and new schema that is the same as the source data from the Dept of Health.
Migration Guide
AGOL data will be deprecated and shelved to make way for the new health care facilities

This dataset will be replaced by HEALTH.HealthCareFacilities which is named health.health_care_facilities in the Open SGID.
The replaced data is still accessible via our shelved policy in AGOL (a link to the shelved item).
Action items

Assign a person who should complete the task by replacing name with their github @name.
Check [x] the box when the task is completed and add the date of completion.
~Strike~ out all items that do not apply.

Soft Delete
The purpose of the soft delete is to ensure that all of our users and applications have gracefully migrated off of the dataset. Soft deletes will remain in effect for 14 days. During this time, we will have the ability to restore the dataset to its original SGID offering(s). After these 14 days, the item is then ready for a hard delete.
Note: If this dataset is being replaced, then wait until the new data is publicly available before completing these steps:

[ ] Append "(Mature Support)" to the end of the item title in the SGID.META.AGOLItems table (@ZachBeck , completed: 2023/00/00)
[ ] Remove all tags other than "Deprecated" in the SDE metadata (@ZachBeck , completed: 2023/00/00)
[ ] Add note to SDE description noting when layer will be deleted and any replacement layer (@ZachBeck, completed: 2023/00/00)
~[ ] Update the SGID Index row as deprecated by pasting the related Porter issue URL in the Deprecated field (name, completed: 2023/00/00)
[ ] Change Authoritative field to d in SGID.META.AGOLItems to automatically set the Deprecated AGOL flag. Allow the d to persist through one run of Auditor - currently, Auditor runs daily at 5:00am (@ZachBeck , completed: 2023/00/00)

After at least one successful run of Auditor:

[ ] Remove the row from the SGID.META.AGOLItems table. This will trigger the removal of this item in Open SGID (@ZachBeck, completed: 2023/00/00)
[ ] Unshare the item from its SGID group, which will remove it from Open Data (@jacobdadams, completed: 2023/00/00)

Hard Delete
Hard deletes are final. It is recommended to complete the soft delete process before moving on to these steps. If you decide to skip the soft delete, note that you will need to incorporate some of those steps here.

[ ] Manually remove data from the Internal SGID (@ZachBeck , completed: 2023/00/00)

[ ] Deprecated database layers should be backed up on Google Drive > AGRC Projects > SGID > deprecated layers > internal_db_sgid_layers (@ZachBeck , completed: 2023/00/00).

[ ] Remove ArcGIS Online item: (@jacobdadams , completed: 2023/00/00)

~Manually delete the AGOL item
-OR-
-~ Unshare by changing the AGOL_ITEM_ID field in SGID.META.AGOLItems to something other than an Item ID and manaually changing the sharing settings (remove the item from all SGID groups, remove Public sharing),
-OR-
Shelve the data by copying the row from SGID.META.AGOLItems to the AGOLItems_shelved table in AGOL and changing the AGOL_ITEM_ID field in SGID.META.AGOLItems to shelved or some other note.
~Deprecated AGOL items can be backed up on Google Drive > AGRC Projects > SGID > deprecated layers > agol_sgid_layers.

~[ ] Remove Farm from AGOL connection (name, completed: 2023/00/00)
~[ ] Update relevant gis.utah.gov data pages (name, completed: 2023/00/00)
[ ] Add this porter url to the Deprecated field of the Stewardship record (name, completed: 2023/00/00)
[ ] Update SGID.META.AGOLItems table (@ZachBeck, completed: 2023/00/00)

cut and paste row to AGOLItems_shelved table if shelving (see below)
set the AGOL_ITEM_ID field to hosted by <agency> for Farm from AGOL
set the AGOL_ITEM_ID field to exclude from AGOL to not publish to ArcGIS Online

[ ] Delete Google Drive data (@ZachBeck , completed: 2023/00/00)
[ ] Remove row from SGID.META.ChangeDetection (@stdavis , completed: 2023/00/00)
[ ] Remove data from forklift hashing and receiving (@stdavis, completed: 2023/00/00)
[ ] Remove row from data/hashed/changedetection.gdb/TableHashes (@stdavis, completed: 2023/00/00)

Shelve/Static
Choose one based on situation.
-~ [ ] Upload to UtahAGRC/AGRC_Shelved folder in AGOL (New shelved item not already in AGOL) (name , completed: 2023/00/00)

[ ] Move existing AGOL item to AGRC_Shelved AGOL folder (shelving an item already in AGOL) (@ZachBeck, completed: 2023/00/00)
~[ ] Upload to appropriate UtahAGRC/{SGID Category} folder in AGOL (for static datasets) (name, completed: 2023/00/00)

Add record to table.

[ ] Add record to AGOLItems_shelved table in ArcGIS Online  with shelved or static in the CATEGORY field (@ZachBeck, completed: 2023/00/00)

:robot: Automation validation

Assign yourself or someone to check the item by replacing name with their github @name.
Check [x] the box and add the date of verification 2020/01/01 when the task is verified.
~Strike~ out all items that do not apply.

[ ] Remove data from Open SGID (@jacobdadams on 2023/00/00)
[ ] sgid-index (@steveoh on 2023/00/00)
[ ] Auditor sets appropriate shelved/static/Deprecated information (@jacobdadams on 2023/00/00)

Are there service dependencies

[ ] Are clients querying this data with the WebAPI?
[ ] Notify Josh Nielson (josh.nielson at motorolasolutions.com) if the data is in the Next-Generation 911 Motorola Aware Map? (@eneemann on 2023/00/00)
[ ] Does any other application depend on this data?

Notification

[ ] Twitter (@steveoh)

Group Task Assignments

Check [x] the box when you have assigned all the tasks relevant to your group.

[ ] Data Team (@gregbunce)
[ ] Dev Team (@steveoh)
[ ] Cadastre Team (@rkelson)

conductor results for tasks - 256

check
status

@ZachBeck has completed 0 out of 11 tasks
:no_entry:

@jacobdadams has completed 0 out of 4 tasks
:no_entry:

@stdavis has completed 0 out of 3 tasks
:no_entry:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@eneemann has completed 0 out of 1 tasks
:no_entry:

@gregbunce has completed 0 out of 1 tasks
:no_entry:

@rkelson has completed 0 out of 1 tasks
:no_entry:

conductor results for tasks - 256

check
status

@ZachBeck has completed 0 out of 11 tasks
:no_entry:

@jacobdadams has completed 0 out of 4 tasks
:no_entry:

@stdavis has completed 0 out of 3 tasks
:no_entry:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@eneemann has completed 0 out of 1 tasks
:no_entry:

@gregbunce has completed 0 out of 1 tasks
:no_entry:

@rkelson has completed 0 out of 1 tasks
:no_entry:

conductor results for tasks - 256

check
status

@ZachBeck has completed 0 out of 11 tasks
:no_entry:

@jacobdadams has completed 0 out of 4 tasks
:no_entry:

@stdavis has completed 0 out of 3 tasks
:no_entry:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@eneemann has completed 0 out of 1 tasks
:no_entry:

@gregbunce has completed 0 out of 1 tasks
:no_entry:

@rkelson has completed 0 out of 1 tasks
:no_entry:

conductor results for tasks - 256

check
status

@ZachBeck has completed 0 out of 11 tasks
:no_entry:

@jacobdadams has completed 0 out of 4 tasks
:no_entry:

@stdavis has completed 0 out of 3 tasks
:no_entry:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@eneemann has completed 0 out of 1 tasks
:no_entry:

@gregbunce has completed 0 out of 1 tasks
:no_entry:

@rkelson has completed 0 out of 1 tasks
:no_entry:

conductor results for tasks - 256

check
status

@ZachBeck has completed 0 out of 11 tasks
:no_entry:

@jacobdadams has completed 0 out of 4 tasks
:no_entry:

@stdavis has completed 0 out of 3 tasks
:no_entry:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@gregbunce has completed 0 out of 2 tasks
:no_entry:

@rkelson has completed 0 out of 1 tasks
:no_entry:

adding blocked since work hasn't started

Waiting on updated facilities from Health.

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:no_entry:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- porter issue link
:no_entry:

conductor results for tasks - 256

check
status

@ZachBeck has completed 0 out of 11 tasks
:no_entry:

@jacobdadams has completed 0 out of 4 tasks
:no_entry:

@stdavis has completed 0 out of 3 tasks
:no_entry:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:no_entry:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- porter issue link
:no_entry:

conductor results for tasks - 256

check
status

@ZachBeck has completed 0 out of 11 tasks
:no_entry:

@jacobdadams has completed 0 out of 4 tasks
:no_entry:

@stdavis has completed 0 out of 3 tasks
:no_entry:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:no_entry:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- porter issue link
:no_entry:

conductor results for tasks - 256

check
status

@ZachBeck has completed 0 out of 11 tasks
:no_entry:

@jacobdadams has completed 0 out of 4 tasks
:no_entry:

@stdavis has completed 0 out of 3 tasks
:no_entry:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

Do folks think this will need a new retention schedule as it moves to "Shelved"? it seems like it will, as it is different from non shelved.

In my opinion, it lived in the SGID for longer than 6 months and archives should have a copy so I believe we are covered there. The schedule it is on says archives will retain it in perpetuity, which I would suggest maybe a shorter lifespan since it doesn't appear to have historical relevance.

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:no_entry:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- porter issue link
:no_entry:

conductor results for tasks - 256

check
status

@ZachBeck has completed 0 out of 11 tasks
:no_entry:

@jacobdadams has completed 0 out of 4 tasks
:no_entry:

@stdavis has completed 0 out of 3 tasks
:no_entry:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:+1:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- porter issue link
:no_entry:

conductor results for tasks - 256

check
status

@ZachBeck has completed 4 out of 13 tasks
:no_entry:

@jacobdadams has completed 1 out of 4 tasks
:no_entry:

@stdavis has completed 0 out of 3 tasks
:no_entry:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:no_entry:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- porter issue link
:+1:

conductor results for tasks - 256

check
status

@ZachBeck has completed 6 out of 13 tasks
:no_entry:

@jacobdadams has completed 1 out of 4 tasks
:no_entry:

@stdavis has completed 0 out of 3 tasks
:no_entry:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

Sorry to reopen the conversation. We're shelving this layer, but I'm wondering if we shouldn't just do a hard delete it and keep a copy in our google drive. It seems as though it's been completely superseded by the new layer and there's not any reason to keep the historic data around (ie, is anyone going to want to compare this with the new one to track changes over time?).

I agree. When Matt and I were looking at the shelved category items, it appeared that there are many more shelved items than seemed to have historical relevance. Maybe I need a refresher on when items should be shelved or we need to take a closer look at the process to understand what's being added there.

From our policy:

Over time, we will remove datasets from the Open SGID that are no longer current but continue to have historical value (e.g., Census/ACS data or previous tax district boundaries). Their associated ArcGIS Online items will be tagged as shelved and placed in the public UGRC Shelf ArcGIS Online group for future reference. Shelved datasets are not included in the SGID on ArcGIS site.

Tracking in https://github.com/agrc/planning-queue/issues/452

conductor results for tasks - 256

check
status

@ZachBeck has completed 11 out of 13 tasks
:no_entry:

@jacobdadams has completed 1 out of 4 tasks
:no_entry:

@stdavis has completed 0 out of 3 tasks
:no_entry:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:+1:

meta table
:+1:

stewardship

- porter issue link
:+1:

conductor results for tasks - 256

check
status

@ZachBeck has completed 11 out of 13 tasks
:no_entry:

@jacobdadams has completed 1 out of 4 tasks
:no_entry:

stdavis has completed 3 out of 3 tasks
:+1:

@steveoh has completed 0 out of 3 tasks
:no_entry:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:+1:

meta table
:+1:

stewardship

- porter issue link
:+1:

conductor results for tasks - 256

check
status

@ZachBeck has completed 11 out of 13 tasks
:no_entry:

@jacobdadams has completed 1 out of 3 tasks
:no_entry:

stdavis has completed 3 out of 3 tasks
:+1:

@steveoh has completed 3 out of 4 tasks
:no_entry:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:+1:

meta table
:+1:

stewardship

- porter issue link
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:+1:

meta table
:+1:

stewardship

- porter issue link
:+1:

conductor results for tasks - 256

check
status

@ZachBeck has completed 11 out of 13 tasks
:no_entry:

@jacobdadams has completed 1 out of 3 tasks
:no_entry:

stdavis has completed 3 out of 3 tasks
:+1:

steveoh has completed 4 out of 4 tasks
:+1:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:+1:

meta table
:+1:

stewardship

- porter issue link
:+1:

conductor results for tasks - 256

check
status

ZachBeck has completed 13 out of 13 tasks
:+1:

@jacobdadams has completed 1 out of 3 tasks
:no_entry:

stdavis has completed 3 out of 3 tasks
:+1:

steveoh has completed 4 out of 4 tasks
:+1:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:+1:

meta table
:+1:

stewardship

- porter issue link
:+1:

conductor results for tasks - 256

check
status

ZachBeck has completed 13 out of 13 tasks
:+1:

@jacobdadams has completed 1 out of 3 tasks
:no_entry:

stdavis has completed 3 out of 3 tasks
:+1:

steveoh has completed 4 out of 4 tasks
:+1:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:+1:

meta table
:+1:

stewardship

- porter issue link
:+1:

conductor results for tasks - 256

check
status

ZachBeck has completed 13 out of 13 tasks
:+1:

@jacobdadams has completed 1 out of 3 tasks
:no_entry:

stdavis has completed 3 out of 3 tasks
:+1:

steveoh has completed 4 out of 4 tasks
:+1:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:+1:

meta table
:+1:

stewardship

- porter issue link
:+1:

conductor results for tasks - 256

check
status

ZachBeck has completed 13 out of 13 tasks
:+1:

@jacobdadams has completed 1 out of 3 tasks
:no_entry:

stdavis has completed 3 out of 3 tasks
:+1:

steveoh has completed 4 out of 4 tasks
:+1:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for HEALTH.HealthCareFacilities

check
status

internal sgid
:+1:

meta table
:+1:

stewardship

- porter issue link
:+1:

done


scrcpy: 2.7 -> 3.0

https://github.com/Genymobile/scrcpy/releases/tag/v3.0
Diff: https://github.com/Genymobile/scrcpy/compare/v2.7...v3.0
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 358820

x86_64-linux

:white_check_mark: 5 packages built:

kazumi
kazumi.debug
kazumi.pubcache
qtscrcpy
scrcpy

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 358820

aarch64-darwin

:white_check_mark: 1 package built:

scrcpy


Fixed bug in EditableTextBlock

Removed restoring focus on previous element mechanism in EditableTextBlock. Removed oldFocus property entirely. This mechanism led to giving focus to a control that has already been removed which led to loss of proper double formatting in some cases.

Sorry I don't quite understand the issue here... Controls removed when the EditableTextBox is in edit mode? Double formatting? Can you give some more info about how to reproduce the issue.
See the TreeListBoxDemo example. Select an item with the arrow keys, press F2 on an item, edit the header and press enter. Then the tree view is back in focus and you can continue to select with the arrow keys. I think this is the desired behaviour.

Can we close this PR?

Yes, sure. It works fine after your fix.
Pozdrowienia / Best regards / Med vennlig hilsen
for Det Norske Veritas Poland Sp.z.o.o
Mateusz Włoch
Software Developer, Strength Assessment Poland
DNV GL - Software
DET NORSKE VERITAS POLAND Sp. z o.o. 81-537 Gdynia, ul. Łużycka 6e, NIP 583-000-94-58, REGON 190053470, KRS<PHONE_NUMBER>, SR Gdańsk VIII W.Gosp., Kap.zakł. 1.000.000 PLN
From: Oystein Bjorke<EMAIL_ADDRESS>Sent: Tuesday, March 08, 2016 8:05 PM
To: objorke/PropertyTools
Cc: Wloch, Mateusz
Subject: Re: [PropertyTools] Fixed bug in EditableTextBlock (#98)
Can we close this PR?
—
Reply to this email directly or view it on GitHubhttps://github.com/objorke/PropertyTools/pull/98#issuecomment-193918569.

This e-mail and any attachments thereto may contain confidential information and/or information protected by intellectual property rights for the exclusive attention of the intended addressees named above. If you have received this transmission in error, please immediately notify the sender by return e-mail and delete this message and its attachments. Unauthorized use, copying or further full or partial distribution of this e-mail or its contents is prohibited.


OSOE-760: Disable SA1518 since it's already covered by S113

warns on lacking newline at end of file

Thanks for the contrib! Don't worry about the missing parent PR failing check, I'll add one.
Any particular reason why you didn't choose to keep the StyleCop rule instead?

Thanks! I had already forgotten that a parent PR is needed 😉
As for the choice of rule to keep - I think I liked the warning message better from S113, but looking at the great rules provided by StyleCop, keeping SA1518 instead seems like a good idea, too. Would you like me to switch them around?

No, it's OK then. The StyleCop rule also requires some configuration so that makes things easier. Interestingly enough, we didn't actually add any config but it was still working, perhaps by some coincidence.

Thank you!

It's been a pleasure! 😊

There's another duplicate, CA1711 and S2344:

Which one would you remove?

I'd need to dig into that, but the SDK one is usually a safer bet.

the SDK one is usually a safer bet.

To keep, I suppose?

I just discovered why picking S113 over SA1518 might have been the wrong choice - there's no quick-fix action available for the former, but there is for the latter, which is greatly appreciated when you want to clean up your solution one warning at a time 😉
Do you fancy another PR to invert the exclusion?

Yes, and sure, thanks.

Here's the follow-up PR: https://github.com/Lombiq/.NET-Analyzers/pull/97.


[BUG] OpenCV 4.x+ requires enabled C++11 support

Describe the bug
Setup CMake with:
-DDEPTHAI_BUILD_EXAMPLES=ON

Building any of the example targets yields:
In file included from /Users/joel/development/depthai-core/examples/utility/utility.cpp:1:
In file included from /Users/joel/development/depthai-core/examples/utility/utility.hpp:3:
In file included from /usr/local/include/opencv4/opencv2/opencv.hpp:52:
In file included from /usr/local/include/opencv4/opencv2/core.hpp:52:
/usr/local/include/opencv4/opencv2/core/cvdef.h:666:4: error: "OpenCV 4.x+ requires enabled C++11 support"
#  error "OpenCV 4.x+ requires enabled C++11 support"
   ^

Regressing to OpenCV 3.x is not an acceptable solution for a number of reasons.
Expected behavior
OpenCV 4.x should be supported

@jwinarske
Which CMake version do you have?
newer than v3.8.0 should propagate the requirement of C++14 down to linkee of the library (eg the examples).
cpp14_examples_tests branch should address this. Let me know

Closer
Apriltag
/Users/joel/development/depthai-core-upstream/include/depthai/device/DeviceBase.hpp:34:10: fatal error: 'depthai-shared/device/CrashDump.hpp' file not found
#include "depthai-shared/device/CrashDump.hpp"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

depth_preview
/Users/joel/development/depthai-core-upstream/include/depthai/device/DeviceBase.hpp:34:10: fatal error: 'depthai-shared/device/CrashDump.hpp' file not found
#include "depthai-shared/device/CrashDump.hpp"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

@themarpe nevermind.
git submodule update --init --recursive

did the trick.

Great, thanks for confirmation!

@jwinarske the PR fix causes other problem. To better understand, I ask you provide much more setup detail.
What is your

specific os. if you are windows type ver. If you are linux try looking withing /etc/os-release
specific depthai-core version you are building. The commit ID is best.
specific compiler toolchain you are using. This can widely vary with env vars, os alternatives, cmake vars, etc. So please be sure to get the exact compiler and linker being used
specific cmake version. please type cmake --version

Alternatively, if you have a docker container with your setup, then point us to it.

@diablodale this was on a Ventura M1 Max Mac.  Latest brew packages.  I haven't checked on my daily driver - Fedora 37.
In general there needs to be a CI matrix to validate this kind of change, otherwise it's a game of whack a mole...

@diablodale
stable | ✅ | 4.7.0
Revision: 2
4.7.0_2
https://formulae.brew.sh/formula/opencv#default

Great. And all the rest?

specific os. if you are windows type ver. If you are linux try looking withing /etc/os-release
specific depthai-core version you are building. The commit ID is best.
specific compiler toolchain you are using. This can widely vary with env vars, os alternatives, cmake vars, etc. So please be sure to get the exact compiler and linker being used
specific cmake version. please type cmake --version

The repro involved:

OS: Mac Ventura (arm64)
DepthAI-core: v2.20.2
Compiler: AppleClang 14.0.0
CMake 3.24.2

I am definitely not blocked, and I would consider this a low priority item.  I have since made it build elsewhere.

Got it. One last set of information. What are the reproduction steps to follow so we can reproduce the error?
Meaning, please list the exact command-line(s) given so that we understand how you setup your environment, what arguments/parameters you passed to cmake, etc. As above, I don't know if this is debug/release, if shared libs/not, and so many more possibilities.
We should be able to copy/paste the steps you provide into our command prompt and the see the compiler error. So please give us everything.

That was last week, I was in the airport in a 5 hour layover, and I really don't remember.  I would make a note of it, and move on.  Note that I am working on a fairly large refactor of the CMake, and it will implicitly support this combo.
Hunter replacement proof here: https://github.com/jwinarske/cmake_json/

OpenCV 4 is well supported in depthai across Linux and Windows. Regularily tested. Personally, I write Windows apps using my own fork of Depthai-core and OpenCV 4.5.x for ~two years. I must have compiled 50+ times this past week as I coded.
I suspect your error was something due to toolchain setup, configuration, or maybe something specific to MacM1. Luxonis does support Mac, but perhaps there is something recently broken by Apple or MacM1 ecosystem that hasn't yet surfaced with many customers so to be identified.
While Hunter (and similarily VCPKG) are sometimes a pain, there is a need they both serve. When your idea is ready, I suggest you approach Luxonis. I've found they are open to considering innovation/ideas. 👍


Consider adding support for Futures crate

I've been playing around with Futures and Tokio lately, and one of the things that's been a major pain point has been dealing with errors from Futures. I think it would be really nice to be able to call chain_err on a Future. Currently, the Future trait defines a map_err function, which isn't to terribly far off. It's just a lot more verbose since the conversion between error types has to be done manually. Any thoughts?

Maybe simply impl [ResultExt](https://docs.rs/error-chain/0.7.1/error_chain/example_generated/trait.ResultExt.html) for Future?

@Yamakaky Yeah, exactly. It's probably easy enough to do that it wouldn't be all that bad to just add that boilerplate into every project that uses Futures, but I'm wondering if Futures is going to be popular enough to warrant just adding support to the error_chain crate maybe as an optional feature.

Just thinking that in the future we could use Carrier, when it's stabilized. It would apply to Future, Result and Option.

It will definitively be an optional feature. Do you want to try?

Good idea about using the Carrier trait once it's stabilized. Yeah, I can take a stab at it and send a PR over.

In fact, can't it be implemented in future?

You mean in the futures crate? I don't think it could really be implemented there since the trait is defined in the macro, right?

My bad, my change was reverted  few days ago ;)

BTW, could Future implement Carrier?

5 minutes ago, I didn't see any problems with that, but now I've realized that it probably can't work. The problem I see is that a Future doesn't itself represent a result, so the ? operator really wouldn't make any sense. You don't know whether the future represents a success or failure until after it's been completed, at which point it just returns a Result.

Do you have an example of code where you would like to use error-chain?

Sure. In the example, the methods in tokio_core::io all return Futures where the error type is std::io::Error, but my_future_fn returns a Future with an associated error type of, MyError.
let future = tokio_core::net::TcpStream::connect(&addr, &reactor.handle()).map_err(|err| {
  format!("error creating connection: {:?}", err)
}).and_then(|tcp_stream| {
  my_future_fn().map_err(|err| {
    format!("Error in my_future_fn: {:?}", err)
  }).and_then(|my_value| {
    tokio_core::io::write_all(tcp_stream, my_value)
  })
});

let result: Result<(TcpStream, Vec<u8>), String> = reactor.run(future);

In that example, both the io errors and the custom error types are being converted to strings since they need to be the same type in order for the chained calls to and_then to work. A better way of doing this would of course be to convert them to a better common error type than String, but you get the picture. It just ends up being verbose having to do all the conversions manually in map_err calls.

FWIW I wrote a small helper to add the chain_err method to futures, but there's likely other cool integration that can happen as well.

Hello, I've made some changes to @alexcrichton helper to work with futures_cpupool::CpuPool (since CpuPool::spawn needs the future to have Send trait implemented and for the ones I was testing it was failing.
Also, I've made a macro future_chain! which works like error_chain! (since I almost CTRL+C CTRL+V it) but only supports types block.
With it you can just use future_chain!{} after error_chain!{} to generate a special FutureChain type that works with error-chain structure.
All the code is in this link: https://play.rust-lang.org/?gist=0df6f758e0f109fe64ad83cbf1ea7c2c&version=stable&backtrace=0
Note that Rust playground doesn't support crates, so you will need to create a local cargo projeto to it and add
[dependencies]
error-chain = "0.10.0"
futures = "0.1.9"
futures-cpupool = "0.1"

to it.
I hope this helps someone


Pub install fails

After updating to the latest version of the editor I can no longer perform a Pub Install. Fails with "Directory listing failed"
////////////////////////////////////////////////////////////////////////////////////
Editor: 0.4.3_r20515 (2013-03-26)
OS: Mac OS X - i386 (10.8.3)
JVM: 1.6.0_37
projects: 1
open dart files: 9
auto-run pub: true
localhost resolves to: <IP_ADDRESS>
mem max/total/free: 988 / 211 / 116 MB
thread count: 30
analysis: 0 tasks, 71 libraries, 1 contexts
index: 282052 relationships and 0 attributes in 35831 elements in 1328 resources stored in 8 MB on disk
SDK installed: true
Dartium installed: true
////////////////////////////////////////////////////////////////////////////////////
e/example/application.dart
!ENTRY com.google.dart.tools.core 4 0 2013-03-24 22:51:35.029
!MESSAGE Failed to resolve ${user.home}/github/spectre/example/application.dart
!ENTRY com.google.dart.tools.core 4 0 2013-03-24 22:51:35.030
!MESSAGE Failed to resolve ${user.home}/github/spectre/example/application.dart
!ENTRY com.google.dart.tools.core 4 0 2013-03-24 22:51:35.031
!MESSAGE Failed to resolve ${user.home}/github/spectre/lib/spectre_mesh.dart
!ENTRY com.google.dart.tools.core 4 0 2013-03-24 22:51:35.031
!MESSAGE Failed to resolve ${user.home}/github/spectre/example/application.dart
!ENTRY com.google.dart.tools.core 4 0 2013-03-24 22:51:35.032
!MESSAGE Failed to resolve ${user.home}/github/spectre/lib/spectre_mesh.dart
!ENTRY com.google.dart.tools.core 4 0 2013-03-24 22:51:35.032
!MESSAGE Failed to resolve ${user.home}/github/spectre/example/application.dart
!SESSION 2013-03-25 13:58:36.075 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_37
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=en_US
Framework arguments:  -keyring ${user.home}/.eclipse_keyring -showlocation
Command-line arguments:  -os macosx -ws cocoa -arch x86 -consoleLog -data @user.home/Library/Application Support/DartEditor -keyring ${user.home}/.eclipse_keyring -showlocation
!ENTRY org.eclipse.core.resources 2 10035 2013-03-25 13:58:39.212
!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
!ENTRY org.eclipse.ui.workbench 4 2 2013-03-25 13:58:42.321
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench".
!STACK 0
org.eclipse.swt.SWTException: Device is disposed
        at org.eclipse.swt.SWT.error(SWT.java:4282)
        at org.eclipse.swt.SWT.error(SWT.java:4197)
        at org.eclipse.swt.SWT.error(SWT.java:4168)
        at org.eclipse.swt.widgets.Display.error(Display.java:1065)
        at org.eclipse.swt.widgets.Display.syncExec(Display.java:4607)
        at org.eclipse.ui.internal.StartupThreading.runWithoutExceptions(StartupThreading.java:94)
        at org.eclipse.ui.internal.Workbench.doRestoreState(Workbench.java:3695)
        at org.eclipse.ui.internal.Workbench.access$32(Workbench.java:3624)
        at org.eclipse.ui.internal.Workbench$60.run(Workbench.java:2324)
        at org.eclipse.ui.internal.Workbench.runStartupWithProgress(Workbench.java:2021)
        at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:2322)
        at org.eclipse.ui.internal.Workbench.access$30(Workbench.java:2293)
        at org.eclipse.ui.internal.Workbench$54.run(Workbench.java:2139)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:2083)
        at org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(WorkbenchConfigurer.java:183)
        at org.eclipse.ui.application.WorkbenchAdvisor$1.run(WorkbenchAdvisor.java:781)
!ENTRY org.eclipse.ui 4 4 2013-03-25 13:58:42.346
!MESSAGE Exception in Workbench.runUI after display was disposed
!ENTRY org.eclipse.ui 4 1 2013-03-25 13:58:42.347
!MESSAGE Exception in Workbench.runUI after display was disposed
!STACK 0
org.eclipse.swt.SWTException: Device is disposed
        at org.eclipse.swt.SWT.error(SWT.java:4282)
        at org.eclipse.swt.SWT.error(SWT.java:4197)
        at org.eclipse.swt.SWT.error(SWT.java:4168)
        at org.eclipse.swt.widgets.Display.error(Display.java:1065)
        at org.eclipse.swt.widgets.Display.checkDevice(Display.java:619)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3592)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
        at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at com.google.dart.tools.deploy.DartIDEApplication.start(DartIDEApplication.java:98)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
!ENTRY org.eclipse.core.jobs 2 2 2013-03-25 13:58:43.068
!MESSAGE Job found still running after platform shutdown.
Dependencies installed!
The null object does not have a getter 'isRoot'.
NoSuchMethodError : method not found: 'isRoot'
Receiver: null
Arguments: []
!ENTRY com.google.dart.tools.core 4 0 2013-03-26 10:42:24.859
!MESSAGE Pub install failed, [1] Resolving dependencies...
Dependencies installed!
The null object does not have a getter 'isRoot'.
NoSuchMethodError : method not found: 'isRoot'
Receiver: null
Arguments: []
!SESSION 2013-03-26 22:52:43.453 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_37
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=en_US
Framework arguments:  -keyring ${user.home}/.eclipse_keyring -showlocation
Command-line arguments:  -os macosx -ws cocoa -arch x86 -consoleLog -data @user.home/Library/Application Support/DartEditor -keyring ${user.home}/.eclipse_keyring -showlocation
!ENTRY com.google.dart.tools.core 4 0 2013-03-26 22:54:41.592
!MESSAGE Pub install failed, [1] Resolving dependencies...
Directory listing failed
!ENTRY com.google.dart.tools.core 4 0 2013-03-26 22:54:41.593
!MESSAGE Pub install failed, [1] Resolving dependencies...
Directory listing failed
!ENTRY com.google.dart.tools.core 4 0 2013-03-26 22:55:25.244
!MESSAGE Pub install failed, [1] Resolving dependencies...
Directory listing failed
!ENTRY com.google.dart.tools.core 4 0 2013-03-26 22:55:25.244
!MESSAGE Pub install failed, [1] Resolving dependencies...
Directory listing failed
!ENTRY com.google.dart.tools.core 4 0 2013-03-26 22:55:54.849
!MESSAGE Pub update failed, [1] Resolving dependencies...
Downloading unittest 0.4.3+1...
Downloading browser 0.4.3+1...
Downloading meta 0.4.3+1...
Directory listing failed
!ENTRY com.google.dart.tools.core 4 0 2013-03-26 22:55:54.849
!MESSAGE Pub update failed, [1] Resolving dependencies...
Downloading unittest 0.4.3+1...
Downloading browser 0.4.3+1...
Downloading meta 0.4.3+1...
Directory listing failed
!SESSION 2013-03-26 22:56:37.257 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_37
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=en_US
Framework arguments:  -keyring ${user.home}/.eclipse_keyring -showlocation
Command-line arguments:  -os macosx -ws cocoa -arch x86 -consoleLog -data @user.home/Library/Application Support/DartEditor -keyring ${user.home}/.eclipse_keyring -showlocation
!ENTRY com.google.dart.tools.core 4 0 2013-03-26 22:56:54.479
!MESSAGE Pub install failed, [1] Resolving dependencies...
Directory listing failed
!ENTRY com.google.dart.tools.core 4 0 2013-03-26 22:56:54.480
!MESSAGE Pub install failed, [1] Resolving dependencies...
Directory listing failed

This issue has been moved to dart-lang/pub#499.


Extend the utils.find_depth() function to return depth

Please confirm that this PR has done the following:

[x] Tests Added
[x] Documentation Added
[x] Description in RELEASE_NOTES.md Added

Description of PR
This PR extends the function utils.find_depth() to return the depth (as integers) if no test assertion using level is given.

Coverage increased (+0.06%) to 84.164% when pulling ae9c1a1b262f7ee466021eec6d728f4415e3186e on danielhuppmann:find_depth into 213f1d6e102223692836b31642efc0f67dda27d6 on IAMconsortium:master.

rebased following merge of #190

@gidden, there is a plethora of tests for level in test_core.py - do you want me to refactor them and migrate to test_utils.py?

Ah, I was looking for tests calling find_depth(..., level=...). If I missed them apologies! But all tests for a specific function should be in a single file if they aren't already.

Thanks @gidden for the comments and suggestion for improvements - much nicer now! And migrating the unit tests made me realise that there were some unexpected corner cases which are resolved now.

Hi @danielhuppmann I am personally in favor of named lambdas (especially in
this context). If you agree, can you add E731 to
https://github.com/IAMconsortium/pyam/blob/master/.stickler.yml#L5
On Tue, Feb 12, 2019 at 11:49 AM Stickler Bot<EMAIL_ADDRESS>wrote:

@stickler-ci commented on this pull request.
In pyam/utils.py
https://github.com/IAMconsortium/pyam/pull/192#discussion_r255898904:

 if not isstr(level):

   test = lambda x: level == x

   test = lambda x: level == x if x is not None else False

E731 do not assign a lambda expression, use a def
In pyam/utils.py
https://github.com/IAMconsortium/pyam/pull/192#discussion_r255898908:

 elif level[-1] == '-':

     level = int(level[:-1])

   test = lambda x: level >= x

   test = lambda x: level >= x if x is not None else False

E731 do not assign a lambda expression, use a def
In pyam/utils.py
https://github.com/IAMconsortium/pyam/pull/192#discussion_r255898910:

 elif level[-1] == '+':

     level = int(level[:-1])

   test = lambda x: level <= x

   test = lambda x: level <= x if x is not None else False

E731 do not assign a lambda expression, use a def
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IAMconsortium/pyam/pull/192#pullrequestreview-202598711,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABVAESms17n_iWxAbhOH70lXMc-AdU-Bks5vMpw2gaJpZM4a0_Tg
.

Now good to go @gidden! Thanks for the help to make that code so smart!


[WIP] Plotting waveforms

Started electrode module with a MEA class to represent a probe
Waveform visual
PanZoom utilities for VisPy

To do (possibly later):

Install Qt in travis
More interactivity options
Better management of keyboard shortcuts
Better color management (store directly in HSV?)
Use VisPy transforms for box placement
Support sparse waveforms
Use ST instead of PanZoom
Add depth

Coverage decreased (-7.42%) to 90.39% when pulling c905bec0d3ebb19ae8da23ed5826f9683502660c on rossant:plot-waveforms into fefb2633e9fdb9b1d05012757be9e4882f7cd427 on kwikteam:master.

Coverage decreased (-6.99%) to 90.82% when pulling c9c534965497073184cdd27b0fda907ee0aacfd2 on rossant:plot-waveforms into fefb2633e9fdb9b1d05012757be9e4882f7cd427 on kwikteam:master.


Fix deadlock for reaper

shim.Reap and shim.Default.Wait may deadlock,putting those two pieces of code together makes it easier to see the problem.
func Reap() error {
	now := time.Now()
	exits, err := sys.Reap(false)
	Default.Lock()
	for c := range Default.subscribers {
		for _, e := range exits {
line 44			c <- runc.Exit{
				Timestamp: now,
				Pid:       e.Pid,
				Status:    e.Status,
			}
		}
	}
	Default.Unlock()
	return err
}

func (m *Monitor) Wait(c *exec.Cmd, ec chan runc.Exit) (int, error) {
	for e := range ec {
		if e.Pid == c.Process.Pid {
			c.Wait()
line 85			m.Unsubscribe(ec)
			return e.Status, nil
		}
	}
}

if first code  run to line 44, and the second code happened to run to line 85,  those two pieces of code will deadlock.
the following will show how to reproduce
[root@centos0 c]# cat fork.c
 #include <unistd.h>
 #include <stdio.h>
 #include <stdlib.h>

 int wait_seconds = 300;
 int count = 0;
 int main(int argc, char *argv[])
 {
     if (argc < 2)
     {
         exit (1);
     }
     int fork_num = atoi(argv[1]);

     pid_t pid;
 refork:
     pid = fork();
     count++;
     if ( pid>0 )
     {
     }
     else if (pid == 0)
     {
         if (count > fork_num )
         {
             sleep(wait_seconds);
             exit(0);
         }
         goto refork;
     }
     else
     {
         exit(0);
     }
     sleep(wait_seconds);
     return 0;
 }
 [root@centos0 c]# gcc fork.c -o fork

[root@centos3 shim-sigchld]# cat test.sh
#!/bin/bash

i=0
while [ 1 ]
do
        docker rm fork >/dev/null 2>&1
        docker run  -tdi -v `pwd`:/home -w /home --name fork centos:7 sleep  1000
        docker exec fork ./fork 1024 &
        sleep 10
        docker stop -t 1 fork
        ((i++))
        echo "test ${i}"
done

and then modify shim/reaper.go
diff --git a/runtime/v1/shim/reaper.go b/runtime/v1/shim/reaper.go
index 573f4eda..867f31d1 100644
--- a/runtime/v1/shim/reaper.go
+++ b/runtime/v1/shim/reaper.go
@@ -31,24 +31,28 @@ import (
 // ErrNoSuchProcess is returned when the process no longer exists
 var ErrNoSuchProcess = errors.New("no such process")

-const bufferSize = 2048
+const bufferSize = 32

 // Reap should be called when the process receives an SIGCHLD.  Reap will reap
 // all exited processes and close their wait channels
 func Reap() error {
        now := time.Now()
        exits, err := sys.Reap(false)
-       Default.Lock()
-       for c := range Default.subscribers {
-               for _, e := range exits {
-                       c <- runc.Exit{
-                               Timestamp: now,
-                               Pid:       e.Pid,
-                               Status:    e.Status,
+
+       go func() {
+               Default.Lock()
+               for c := range Default.subscribers {
+                       for _, e := range exits {
+                               c <- runc.Exit{
+                                       Timestamp: now,
+                                       Pid:       e.Pid,
+                                       Status:    e.Status,
+                               }
                        }
                }
-       }
-       Default.Unlock()
+               Default.Unlock()
+       }()
+
        return err
 }

at last , execute the shell script,  and you will find the hung.
./test.sh

the other branches may have this problem too.
Signed-off-by: Shukui Yang<EMAIL_ADDRESS>

Codecov Report

Merging #3525 into release/1.2 will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           release/1.2    #3525   +/-   ##
============================================
  Coverage        43.66%   43.66%
============================================
  Files              101      101
  Lines            10816    10816
============================================
  Hits              4723     4723
  Misses            5357     5357
  Partials           736      736

Flag
Coverage Δ

#linux
47.25% <ø> (ø)
:arrow_up:

#windows
40.78% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Codecov Report

Merging #3525 into release/1.2 will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           release/1.2    #3525   +/-   ##
============================================
  Coverage        43.66%   43.66%
============================================
  Files              101      101
  Lines            10816    10816
============================================
  Hits              4723     4723
  Misses            5357     5357
  Partials           736      736

Flag
Coverage Δ

#linux
47.25% <ø> (ø)
:arrow_up:

#windows
40.78% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


GNU readline wrapper

This is a tiny wrapper for the GNU readline library. For some reasons, pkg-config doesn't know about libreadline so I had to hardcode the cflags using the ldflags module annotation.
Signed-off-by: Frédéric Vachon<EMAIL_ADDRESS>

need a readline.ini for package description
Can we have some tests, so we wont break it latter?

Any idea on how to test fun readline ? I'd need to mock stdin to do so.

For tests, I have a proposal: https://github.com/privat/mynit/commit/584a4d3bab40448e632aa843461e7e088873a4bc

libreadline is not on the jenkins server

installed.
toaster: test this please

fuuu. I may have botched the tests

Just a little warning about license compatibility.
The Gnu Readline library is licensed under the GNU General Public License, version 3. This implies that any software linked with it must be licensed under the same terms:
https://cnswww.cns.cwru.edu/php/chet/readline/rltop.html#TOCIntroduction :
Readline is free software, distributed under the terms of the GNU General Public License, version 3. This means that if you want to use Readline in a program that you release or distribute to anyone, the program must be free software and have a GPL-compatible license. If you would like advice on making your license GPL-compatible, contact<EMAIL_ADDRESS>

Apache v2 is compatible with GNU GPL v3 : http://www.gnu.org/licenses/quick-guide-gplv3.fr.html#new-compatible-licenses

I know that they are compatible, but once linked, the GPL license terms take over (e.g. its more restrictive clauses apply to the overall software).
Here's what the GPL says:

Conveying Modified Source Versions.

You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
...
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy.  This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged.  This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.

http://www.gnu.org/philosophy/why-not-lgpl.html dit:
Le projet GNU a principalement deux licences utilisables pour les bibliothèques. L'une est la GNU GPL amoindrie ; l'autre est la GNU GPL ordinaire. Le choix de la licence a un gros impact : utiliser la GPL amoindrie permet l'utilisation de la bibliothèque dans des programmes privateurs ; utiliser la GPL ordinaire pour une bibliothèque la rend disponible uniquement pour les programmes libres.
...
Toutefois, lorsqu'une bibliothèque offre une fonctionnalité vraiment unique en son genre, comme GNU Readline, c'est une toute autre histoire. La bibliothèque Readline met en œuvre l'édition et l'historique des entrées pour les programmes interactifs, et cette fonctionnalité n'est généralement pas disponible ailleurs. La publier sous la GPL et limiter son utilisation au logiciel libre donne à notre communauté un bon coup de pouce. Il y a au moins un programme applicatif qui est libre aujourd'hui précisément parce que c'était nécessaire pour utiliser Readline.
La license Apache 2 permet l'utilisation du code dans des logiciels privateurs. La license GPL ne le permet pas. C'est une question d'intention des développeurs du logiciel.
Je veux simplement m'assurer que les conséquences soient bien comprises.

For example, a software using the GNU Realine Library must be licensed under the terms of the GNU GPL[...]

In fact, the "spreading" clause applies only to deployments integrating a GPL-licensed project. So, this means we can not statically link to the library nor include it in the repository if we want to keep the whole project Apache-licensed. But, can dynamically link to the library.
PS: As @egagnon noted, the compatibility between both licenses is Apache Software License v2 -> GNU GPL, not the reverse.

Interesting. I'll leave this to the Nit HQ to decide. Not going to rework this PR until then.

Just to clarify, again: What I found surprising was that the wrapper, which appears to me as a derivative work of GNU Readline, was licensed under the Apache license, instead of the GPL.
On the other hand, I see no problem for a repository of various libraries to contain some libraries under various licenses. The important is for any software that uses libraries to be licensed under terms which meet all license requirements of used libraries.

When 2 works of art (example: 2 pieces of software) are clearly separated (example: not in the same repository, dynamically-linked), one is not a derivative work of the other. A derivative work is when you integrate part or all of a previous work into a new work. So, for example, a commercial software can run on a GNU+Linux system without being a derivative work of Linux. However, a distribution containing both piece of software is technicaly illegal, since it is a compilation of both projects (with similar legal implications than a derivative work). This one of the reasons why, on many Linux distributions, you usually have to install an optional package to get essential commercial software.
Note: The FSF does not agree with me (see http://www.gnu.org/licenses/gpl-faq.en.html#GPLStaticVsDynamic and http://www.gnu.org/licenses/gpl-faq.en.html#GPLAndPlugins). However, there is case law that may invalidate their point of view.

@jcbrinfo I prefer to read the GPL License itself:
5 Conveying Modified Source Versions.
...
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

On the other hand, I think that it would be difficult to convincingly argue, in the front of a judge, that a wrapper is not a derivative work of the library it wraps. Anyway, that's my opinion, if anyone wants to consider it.

About licensing: we do not really include or extend works under a third party license (we wrap them at most).
Only assembled products (or semi assembled) are subject to the copyleft clause of the GPL.
Our only duty is to produce code usable by other: if they can't compile lib/readline.nit because some license  incompatibility with GNU readline, it is a bad move from our part. This does not make lib/readline.nit illegal, it just make it useless. (in fact, it is not true, people can still compile and use it to themselves, it is the distribution the issue).
We just need to be careful on software we really distribute: eg http://nitlanguage.org/fdroid/ or https://hub.docker.com/r/nitlang/nit/tags/ that might contain licensing issues.
By the way, licensing issues are just issues and can by solved like any other bugs (there are just far more boring) and the worst that I coud imagine is that we delay the release of a future Debian release because an essential package written in Nit is found license-RC-buggy.
Having lib/readline.nit under apache2 is not a big deal because a software that is linked with both lib/readline.nit and GNU readline can be diffused under the GPL3 licence. It may just be seen as non optimal. Therefore, I see some solutions:

replace the license information from the readline.nit and readline.ini to gpl3 (sed is your friend)
keep apache2 so the proposed wrapper code can be extended and used with https://github.com/antirez/linenoise or http://thrysoee.dk/editline/ (BSD is your friend)
stop nitpicking about 77 lines of code. Under 300 source lines of code I suggest that license discussions should be exclusively held on the dedicated channel

OK, I was wrong about the wrapper, if we are to believe the GNU Project. Here's their view (Thanks to @privat for the pointer):
http://www.gnu.org/licenses/gpl-faq.en.html#GPLWrapper
I'd like to incorporate GPL-covered software in my proprietary system. Can I do this by putting a “wrapper” module, under a GPL-compatible lax permissive license (such as the X11 license) in between the GPL-covered part and the proprietary part?
No. The X11 license is compatible with the GPL, so you can add a module to the GPL-covered program and put it under the X11 license. But if you were to incorporate them both in a larger program, that whole would include the GPL-covered part, so it would have to be licensed as a whole under the GNU GPL.
The fact that proprietary module A communicates with GPL-covered module C only through X11-licensed module B is legally irrelevant; what matters is the fact that module C is included in the whole.

+1
@Freddrickk How about redef gets to use readline, can it be used as a direct replacement? We could mix it in at compilation like so: nitc my_prog_using_gets.nit -m readline.

@xymus Some programs may have an interactive and a non-interactive mode. Not sure of what readline does if stdin is not a pty.

readline and gets does not have the same API.
Readline need a prompt. gets have no prompt. readline mess with the output. gets do not use the output.
Proposal for a future PR: change the API of gets to be compatible with readline:

add an optional prompt
update the doc of gets to say that the output can be messed
refine gets in readline.nit

@jcbrinfo : the tests of readline are run with input and output redirection, they seem to behave correctly.

@Freddrickk you should also squash the commits into a single one when you are ready to merge (you can squash my small commit in yours).

What I mean is you may want to simply read a line sometime (and nothing more). In these cases, you do not want to implicitly use readline because:

It writes to stdout.
It interprets the input (see tests/sav/test_readline.res, line 8).

IMHO we should have a gets function for basic functionality and a prompt function for cases where we expect to interact with a user.


feat(robot-server): enable analysis of JSON v6 protocols

Overview
As a future PD user, I'd like my JSONv6 protocols to be analyzable when I upload them via POST /protocols
Acceptance criteria

[ ] A "basic" JSONv6 protocol can be analyzed via the POST /protocols endpoint

"Basic" means any pipetting command already implemented in the engine
See #9553 epic for any commands that have not yet been implemented

Implementation notes

Logistically, this means engine support for JSONv6 protocols, which is currently hidden behind a NotImplementedError in ProtocolRunner
For now, let's proceed on the path of simply queuing up commands into the engine straight from the protocol file

We may have to adjust this implementation later, that's ok

This may have the effect of "accidentally" implementing JSONv6 protocol runs as a nature of the implementation changes
There are various TODOs in the ProtocolRunner interface about cleanup and splitting the runner into multiple concrete implementations per protocol type; this ticket is a good place to accomplish that work

Closed by #9772


update examples/hazelcast to v1

#9286
@krousey @nikhiljindal @bgrant0607
@pires, v1beta3 is still supported, so I think there is no need to update the path in HazelcastDiscoveryController.java now. It should be an easy change anyway.

@caesarxuchao great! Will release a new version soon enough. Thank you.


Do not resume remote configuration from cache in case it has different endpoint (close #688)

Addresses issue #688 which goal was to support switching between remote configurations with different endpoints. This was not previously possible because the tracker cached previous configurations and didn't consider the endpoint when using the cache. Thus, if one switched to a new remote configuration with a new endpoint, a cache for the previous one could still be used by the tracker.
The approach that I chose is to add a hash of the remote config endpoint URL into the cache file name. So instead of .../snowplow-cache/remoteConfig.data, the cache files are now called .../snowplow-cache/remoteConfig-12498219.data where the number (12498219) is the hashcode of the URL. I make use of the NSString hash function which is not the most reliable hash but I think it's sufficient for this purpose.

Thanks for your pull request. Is this your first contribution to a Snowplow open source project? Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
:memo: Please visit https://docs.snowplowanalytics.com/docs/contributing/contributor-license-agreement/ to learn more and sign.
Once you've signed, please reply here (e.g. I signed it!) and we'll verify. Thanks.


Fixe prometheus-adapter override

Signed-off-by: JoaoBraveCoding<EMAIL_ADDRESS>
Description
Fix override in prometheus-adapter configmap
Type of change
What type of changes does your code introduce to the kube-prometheus? Put an x in the box that apply.

[ ] CHANGE (fix or feature that would cause existing functionality to not work as expected)
[ ] FEATURE (non-breaking change which adds functionality)
[x] BUGFIX (non-breaking change which fixes an issue)
[ ] ENHANCEMENT (non-breaking change which improves existing functionality)
[ ] NONE (if none of the other choices apply. Example, tooling, build system, CI, docs, etc.)

Changelog entry
Please put a one-line changelog entry below. Later this will be copied to the changelog file.

fix node resource override in prometheus-adapter configmap

Thank you for the clarification <3 I appreciate it a lot