[Feature request] Support alternative future executor handling for compute-bounded futures

(I am willing to contribute work on this. Sharing for broader feedback after a conversation with djc@ and ctz@)
Overview
Today, this crate wraps a heterogenous set of futures, some of which are I/O bounded (eg, network hops), some of which are compute bounded (eg, crypto operations). In the case of initial handshake, those compute operations can impact the performance of the tokio executor by starving worker threads.
I've encountered some pathological cases of this where applications are needing to establish many connections very quickly, and the executor grinds to a halt. It also highly impacts current-thread runtime. The impact on multi-threaded runtimes without pathological amounts of connections is lessened, but still non-zero.
Meanwhile, approaches like delegating the tls handshake to a secondary threadpool with lower priority threads, dramatically improves throughput, both for the tls handshake work as well as other tasks.
Given that we know the composition of the work inside these futures, it would be great to enable more sophisticated handling of the futures that might block the executor.
Task::spawn_blocking as it stands today isn't quite right as is can spawn many more threads than cores, and also is fairly opinionated in that can force expensive thread-local initializations and cause other issues. Task::block_in_place has its own limitations.
Ultimately I think the goal state here would be:

tokio-rustls is able to signal to the tokio executor that these futures are likely to block / be long running (at least for initial handshake)
tokio runtime has perhaps some smarter default handling than a naive spawn_blocking
the caller can optionally tune the tokio runtime behavior directly via tokio config, rather than bubbling up config from eg tokio-rustls -> hyper-rustls -> hyper-util -> reqwest

There is a conversation in progress about this sort of possibility in the #tokio-internals  channel of the tokio discord.
As that conversation progresses, I think that there is an intermediate step available here under an experimental feature flag, that would be a good POC for such functionality:

create a new experimental crate that accepts a special type of call, let's call it spawn_compute_heavy_future, and applies special handling to it
add a wrapper call in tokio-rustls that checks an experimental feature flag to decide whether to delegate to the experimental crate, otherwise it just awaits the provided future

Suggested approach
A couple of guidelines:

no change to the tokio-rustls interface for callers (besides the feature flag)
try to support both 'standard' use cases (the occasional new handshake, no need for long-lived threadpool) and the 'hyperscalar' use case (potentially pathological cases with many connections, want a separate threadpool)

We'll have a lot more options if support for this lands in tokio, since then you can configure via runtime config, do clever things with unwinding the poll fn call for 'sometimes blocking' futures that might prefer thread locality, pre-emptively kick tasks to other worker queues, overloading spawn_blocking, etc.
In the meantime I suggest that we just use a public static constant OnceLock which can be initialized with a strategy for spawn_compute_heavy_future. This allows the outermost caller to inject config, without propagating it through intermediate crates, which better simulates what it would be like to embed it in tokio. Or we could fall back to defaults.
If the caller doesn't specify anything, we can implicitly initialize it on build to one of two options:

if the current runtime is a multi-threaded flavor, use block_in_place to call received futures
if the current runtime is current thread flavor, use spawn_blocking

I think that the above is a decent middle ground for 'somewhat better' than the current behavior for the caller establishing occasional connections, and it's behind an experimental flag so we could document this opinionated behavior and guide users to evaluate it and consider overriding it. We'll hopefully come up with some cooler things to do natively on tokio, before we ever lift this out of the experimental flag.
Alternately, the caller CAN specify arbitrary behavior, such as injecting their own secondary executor backed by a threadpool. We could provide a sample usage showing a simple version of that, but I don't think it belongs as a default in the crate since anyway calling applications using threadpools probably have other logic they want to incorporate.
Rough example, probably won't compile:
// optionally implemented by caller
pub trait ComputeHeavyFutureExecutorStrategy<F, R> {
    async fn spawn_compute_heavy_future<F, R>(&self, f: F) -> R
}

pub enum ComputeHeavyFutureExecutor {
    SpawnBlocking(SpawnBlockingStrategy),
    BlockInPlace(BlockInPlaceStrategy),
    Custom(Box<dyn ComputeHeavyFutureExecutorStrategy>)
}

impl ComputeHeavyFutureExecutor {
    pub spawn_blocking() -> Self {
      ComputeHeavyFutureExecutor::SpawnBlocking(SpawnBlockingStrategy {})
   }

    pub block_in_place() -> Self {
      ComputeHeavyFutureExecutor::BlockInPlace(BlockInPlaceStrategy {})
   }

    pub custom(strategy: impl ComputeHeavyFutureExecutorStrategy) -> Self {
       ComputeHeavyFutureExecutor::Custom(Box::from(strategy))
   }

}

struct SpawnBlockingStrategy {}
impl ComputeHeavyFutureExecutorStrategy<F, R> for SpawnBlockingStrategy {
    async fn spawn_compute_heavy_future(&self, fut: F) -> R
         where F: FnOnce() -> R + Send + 'static
                    R: Send + 'static {

    task::spawn_blocking(move || {
        Handle::current().block_on(async {
                fut.await
        })
    // not unwrap, would model the return better
    }).await.unwrap()
}

pub struct BlockInPlaceStrategy {}
impl ComputeHeavyFutureExecutorStrategy<F, R> for BlockInPlace {
    async fn spawn_compute_heavy_future(&self, fut: F) -> R
         where F: FnOnce() -> R + Send + 'static
                    R: Send + 'static {

   task::block_in_place(move || {
        Handle::current().block_on(async {
                fut.await
        })
    // not unwrap, would model the return better
    }).await.unwrap()
}

// optionally configured by caller
pub static EXPERIMENTAL_COMPUTE_HEAVY_TOKIO_EXECUTOR_STRATEGY: OnceLock<ComputeHeavyFutureExecutor> = OnceLock::new();

// called by tokio
// not sure if we want to instead require a build call to the tokio-rustls crate to avoid checking the oncelock each time
pub async fn spawn_compute_heavy_future<F, R> (fut: F) -> R
         where F: FnOnce() -> R + Send + 'static
                    R: Send + 'static {

     let strategy = EXPERIMENTAL_COMPUTE_HEAVY_TOKIO_EXECUTOR_STRATEGY.get_or_init(||
           match Handle::runtime_flavor() {
              RuntimeFlavor::CurrentThread => ComputeHeavyFutureExecutor::SpawnBlocking(SpawnBlockingStrategy {}),
              _ => ComputeHeavyFutureExecutor::BlockInPlace(BlockInPlaceStrategy {}),
          }
      );

      strategy.0.spawn_compute_heavy_future(fut).await
}

And then an outer calling crate might choose to modify the global static to override default behavior:
EXPERIMENTAL_COMPUTE_HEAVY_TOKIO_EXECUTOR_STRATEGY.set(ComputeHeavyFutureExecutor::spawn_blocking()).unwrap();

Or else implement a custom one and pass it in, which would look much like the above impl. I would include a sample showing adding a threadpool as a custom executor.
Questions

For folks that have noticed perf issues due to TLS, does this suit your use case?
How do folks feel about the static OnceLock interface to bypass the tendrils needed for config drilling? Would we prefer just some cookie cutter defaults only?

Corollary: If we go with the oncelock, any feelings about checking it every execution of the spawn method, versus once on build and then point to an owned struct? The nice thing about doing it each call means that other crates can also hook into the same behavior. Though I guess anyway that they could just manage a separate owned struct that they execute with.

Any initial thoughts on what futures make sense to move behind such handling? I'm thinking, mostly during the initial TLS handshake only, whenever we process bytes? I haven't poked too deeply yet.

I'll just note that block_in_place does not take a future but rather a synchronous function, and I expect this API will also take one.

Would the static need to be re-exported from the higher level crate, or can I just add tokio-rustls to my Cargo.toml (with appropriate features etc) and grab it myself even if the higher level crate doesn't re-export?

You should be able to just add tokio-rustls to your Cargo.toml. Of course, this creates annoying consequences if you add the wrong version of tokio-rustls to your Cargo.toml but that's life.

I'll just note that block_in_place does not take a future but rather a synchronous function, and I expect this API will also take one.

@arielb1 as written in the sample code, it accepts async and blocks on it. Theoretically we could have both a sync and an async version of this delegated call that doesn't have that behavior, does that seem critical to you as minimal scope?

Would the static need to be re-exported from the higher level crate, or can I just add tokio-rustls to my Cargo.toml (with appropriate features etc) and grab it myself even if the higher level crate doesn't re-export?

My understanding is that you would need an explicit dependency on the experimental crate to customize the behavior of that global constant if eg tokio-rustls doesn't re-export. That said, we might as well re-export for convenience.

You should be able to just add tokio-rustls to your Cargo.toml. Of course, this creates annoying consequences if you add the wrong version of tokio-rustls to your Cargo.toml but that's life.

Yeah that's what I was worried about. If versions are the same it should be the same compiled lib and therefore the same static, but wasn't sure if that would hold with different versions or different features etc.

Corollary: If we go with the oncelock, any feelings about checking it every execution of the spawn method, versus once on build and then point to an owned struct?

If .get_or_init() has performance implications this might be an issue, at least when there are multiple threads or tasks. The docs says OnceLock::get() never blocks, but they don't say the same for OnceLock::get_or_init(). I don't really know what the performance implications of OnceLock are though.

@arielb1 currently in the sample code, it accepts async and blocks on it inside of block_in_place to allow async execution.

The API of block_in_place is sync, so you mean it adds another async layer on top of it?

I don't see why we would be using get_or_init, given that there are different people doing the get and the init. And get is fast.

I was trying to avoid requiring packages like tokio-rustls to explicitly initialize, but yeah I can just do that too.

I spoke to @arielb1 out of band and updated the description of the issue to contain sample code that actually compiles, along with some tweaks based on Ariel's feedback:
Object safety
No more trait object containing generic methods, which can't be sized. Instead we now have a more opinionated set of handling for CpuHeavyFutureExecutor::Custom. Essentially it expects a closure that accepts a future with no return (Future<Output = ()). And then our library under the hood, injects a oneshot channel and awaits its response.
With that change, I didn't actually see much value in exposing a trait at all. Instead we just call a different function per CpuHeavyFutureExecutor type, passing in the future needing execution.
OnceLock handling
Ariel pointed out that it could be very confusing to callers if they have a code path that executes cpu-heavy code prior to initializing the OnceLock containing the executor config, and it is implicitly initialized by this library.
Instead, since we aren't allocating anything to construct CpuHeavyFutureExecutor::BlockInPlace or CpuHeavyFutureExecutor::SpawnBlocking, and runtime_flavor() is quite cheap, we can just call OnceCell::get() and, if None, decide which executor to use each time spawn_compute_heavy_future() is called.

Instead, since we aren't allocating anything to construct CpuHeavyFutureExecutor::BlockInPlace or CpuHeavyFutureExecutor::SpawnBlocking, and runtime_flavor() is quite cheap, we can just call OnceCell::get() and, if None, decide which executor to use each time spawn_compute_heavy_future() is called.

Well that solves my .get_or_init() concerns.
Using .get().unwrap_or() also means there won't be any conflicts between the caller using .set() and the library using .get_or_init() if the caller decides to set it later on for some reason.
(I'm not sure I can think of a realistic scenario where that would actually happen, other than the caller accidentally initialising the OnceCell later than they should)

The rule with Cargo is that every major version can only exist once in a given binary (e.g., you can have separate 0.4.0, 0.5.0, 1.0.0 and 2.0.0 versions of a crate, but not 2.0.0 and 2.1.0). Features don't matter.

Yeah so it could happen if, for example, I've not updated my reqwest dependency and it's still using v0.25.x of tokio-rustls, then I have v0.26.x declared separately in my Cargo.toml with this feature to set the OnceLock and I'm sat there wondering why it isn't using my custom strategy in reqwest.
I guess it's the sort of issue that can be offset with some warning in the docs reminding people to make sure they're using the same major versions if they're interacting with it directly rather than through an re-export from reqwest though, so not really a big deal.

Maybe we should have a rustls-heavy-futures-executor crate with 1 major version that rustls depends on?On 6 Dec 2024, at 12:49, jclmnop @.***> wrote:
Instead, since we aren't allocating anything to construct CpuHeavyFutureExecutor::BlockInPlace or CpuHeavyFutureExecutor::SpawnBlocking, and runtime_flavor() is quite cheap, we can just call OnceCell::get() and, if None, decide which executor to use each time spawn_compute_heavy_future() is called.
Well that solves my .get_or_init() concerns.
Using .get().unwrap_or() also means there won't be any conflicts between the caller using .set() and the library using .get_or_init() if the caller decides to set it later on for some reason.
(I'm not sure I can think of a realistic scenario where that would actually happen, other than the caller accidentally initialising the OnceCell later than they should)
The rule with Cargo is that every major version can only exist once in a given binary (e.g., you can have separate 0.4.0, 0.5.0, 1.0.0 and 2.0.0 versions of a crate, but not 2.0.0 and 2.1.0). Features don't matter.
Yeah so it could happen if, for example, I've not updated my reqwest dependency and it's still using v0.25.x of tokio-rustls, then I have v0.26.x declared separately in my Cargo.toml with this feature to set the OnceLock and I'm sat there wondering why it isn't using my custom strategy in reqwest.
I guess it's the sort of issue that can be offset with some warning in the docs reminding people to make sure they're using the same major versions if they're interacting with it directly rather than through an re-export from reqwest though, so not really a big deal.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Maybe we should have a rustls-heavy-futures-executor crate with 1 major version that rustls depends on

How does that solve this problem, since anyway they will need the version of tokio-rustls that uses this crate in reqwest's dependency tree?
I do see some benefit to this, namely that we could then offer the same approach to s2n-tls-tokio and others, though that would depend on whether tokio-rustls maintainers are open to depending on an experimental crate. I was initially thinking that we should use the experimental crate, yes, though I'm less convinced now after talking to Carl. Need to discuss with @djc what his preference is.
In any case, I didn't anticipate reqwest directly interacting with this config or re-exporting anything. The re-export I was referring to was from tokio-rustls, in the event we do depend on an experimental crate. It just strikes me as an explosion of tendrils to expect any calling library that uses tokio-rustls to add explicit references to this feature. Particularly if it is intended more of a POC to try to get this moved directly into the tokio runtime config.

Spoke with @jswrenn and he pointed out that if we're willing to do a little black magic with Any, potentially we could keep generic bounds out of the CpuHeavyFutureExecutor::Custom strategy and go back to letting the caller decide whether to use a channel or not. Since, we do have a generic type (T, R) to work with for spawn_compute_heavy_future(). So maybe accept a dyn future and then return impl Any, and downcast to R on the receiving end.
Will poke around with it a bit.

Just to capture my thoughts - I also think I want to add the API to offer a 'usually blocking' versus 'sometimes/briefly blocking' config. Since, callers might want to send the former to a threadpool and/or spawn_blocking, but not the latter.
Context here is that @ctz mentioned that the initial tls handshake is much more expensive than subsequent crypto operations once the connection is open. So for most users, they probably care about the cpu-boundedness of only the initial handshake. But for very high-throughput applications with a lot of i/o tasks, perhaps they still want to handle ANY blocking crypto specially.
And then, the default for 'sometimes/briefly' blocking would just be to await the future in the current task.


Overhaul gsym logic

Overhaul gsym logic, replacing various panicking calls with saner ones from ReadRaw, simplifying the code and fixing a few bugs in the process.

Addressed comments and merged change. Thanks for the review!


It looks like this broke master https://buildkite.com/sorbet/sorbet/builds/7448 . I'll work on a fix.
Motivation

Test plan

See included automated tests.

phew, not needed


Create Main, Form, Json and Textarea components

Hi @minamrp ! Can you review the work I've been doing?
First, I have created 4 components: Main, Form, Json and Textarea., with their propTypes. Next, I have instantiated each component where they correspond. The Form component is empty for now, but the Json component is already working as it should be:
I have instantiated a Textarea inside it, and controled it from the App state. To do so, I created a method in App to control the Textarea value (only for the Textarea in the Json component). In Json, because the prop sample is a JSON object, I've had to stringify it to pass it through to the Textarea. Only this way the JSON file can be painted here. Also, because the Textarea value is a string, but the sample stored in App state is a JSON, in the method that controls the Json Textarea value I had to parsed the Textarea value to JSON. Now, if you change the JSON data in the textarea in the webpage, you'll see in the React devTools that the App state changes accordingly.
By the way, to be able to see the Form and Json elements in the webpage, you'll have to hide the grey area that is behind the Cv preview. It's a ::before element in the  tag, just uncheck the position property in the devTools and it will disappear for the moment!

Hello @lauraferrandof ,
I downloaded the branch in my room to see it apart from checking the code and in the Text area appears all the JSON but not parsed. It comes out without formatting, should not come out with an object format when it has been parsed?

@minamrp thanks for noticing it! Actually, it is parsed to string because the textarea can't read an object. I don't know how to make it look indented, but for the moment I thought we could leave it that way and do some research on how to make it look like a JSON format. Do you agree?
By the way I forgot to add a label to the textarea, I will add it in another commit and make a push but without merging yet!


Compatibility with Font Awesome Icons

Basically, the problem is Font Awesome Icons are not displaying.
Example attached.
I tried with another renderer, but that's not displaying other icons either.

Hey @ervindobri , thanks for the issue.
Maybe this could help you by now https://github.com/JHBitencourt/timeline_tile/issues/14#issuecomment-680308582.
Please let me know.

Hey @ervindobri , thanks for the issue.
Maybe this could help you by now #14 (comment).
Please let me know.

I tried adding the icons to the pubspec and it is giving the same output.
How can I make a custom indicator? I'm new to this package.

Which pub.dev package are you using?
For a custom indicator, you could pass any widget to the indicator property from IndicatorStyle.
As you can see here in the football timeline example, or here with the activity timeline example.

Which pub.dev package are you using?
For a custom indicator, you could pass any widget to the indicator property from IndicatorStyle.
As you can see here in the football timeline example, or here with the activity timeline example.

Thanks for the reply, I managed to do it with a custom indicator, but its containers size is very small for some reason..
Changing its height/width do not work. Is there a setting maybe I skipped?

I'm closing this, since I got the help I needed.


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from  to before v5.10.71",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=516d9055039017a20a698103be2b556b4c976bb8"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "516d9055039017a20a698103be2b556b4c976bb8",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "hwmon: (w83791d) Fix NULL pointer dereference by removing unnecessary structure field\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.10.71 by commit 516d9055039017a20a698103be2b556b4c976bb8. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1001655


Method fitcts fails

Describe the bug
baseflow.fitevents fails in subfunction saveFit because none of the individual event times tH computed in preparefit are members of the complete input timeseries eventTime.
To Reproduce
Steps to reproduce the behavior:

Open `baseflow_demo_1.mlx
Set opts.fitevents.derivmethod = 'CTS';
Run the demo, specifically Step 2: [EventFits, FitsTable] = baseflow.fitevents(EventData, opts.fitevents);
See error

Expected behavior
All values in the individual event time should be contained in the full event time vector eventTime.

This was resolved by PR #8 . Closing this issue.


clustermesh issue: cluster2 rebel-base pods restart and cluster1 is never able to get to cluster2 rebel-base

Bug report
I was following the doc on setting up clustermesh using your sample rebel-base service.
cluster2 rebel-base pods restart by themselves (I couldn't find out the reason using "k logs rebel-base-595fb48c9c-5h52h --previous" as it was filled with logs for readiness/liveness probes"
And then cluster1 is never able to get to cluster2 rebel-base service pods.
I figured using "cilium service list" on a cilium pod in cluster1 that it's still holding the old cluster2 IP(s).
Please check the attached screenshots.

General Information

Cilium version (run cilium version)
Client: 1.4.90 4f02ade 2019-02-12T16:50:21-08:00 go version go1.11.1 linux/amd64
Daemon: 1.4.90 4f02ade 2019-02-12T16:50:21-08:00 go version go1.11.1 linux/amd64

Kernel version (run uname -a)
4.14.96-coreos

Orchestration system version in use (e.g. kubectl version, Mesos, ...)
kubernetes 1.11.6 using kops with coreDNS

Link to relevant artifacts (policies, deployments scripts, ...)
same as your clustermesh rebel-base example

Upload a system dump (run curl -sLO releases.cilium.io/tools/cluster-diagnosis.zip && python cluster-diagnosis.zip sysdump and then attach the generated zip file)

How to reproduce the issue
check the screenshots

@bjethwan We'll need a bit more information than what is visible in the screenshot. Please collect a system dump:
curl -sLO releases.cilium.io/tools/cluster-diagnosis.zip && python cluster-diagnosis.zip sysdump

or follow the clustermesh troubleshooting section and report where things are off:
http://docs.cilium.io/en/v1.4/gettingstarted/clustermesh/#troubleshooting

@tgraf
I destroyed both the clusters, I use kops/aws and destroy the cluster if I am struck.
I can try reproducing it again.
Can you tell me how to make the liveness probe fail for this pod?
As deleting the rebel-base pods won't help.

We'll need either a system dump or the output of the commands in the troubleshooting guide to make any progress in looking into this. It is likely that something went wrong with the cluster mesh setup in general but it's hard to say without any log files.
Cilium does not influence any liveness probes. The pod IPs are removed from the Endpoints structure as the pods get deleted. The Kubernetes apiserver is responsible to do that.

@tgraf
I didn't do anything fancy here, just made your rebel-base example work, took a long 2hr break, and came back and found the rebel-base pods in cluster2 had restarted and the pod IPs had changed, I should have taken the logs using --previous, but I missed.  And cause the pod IPs changed for pod restart (not re-scheduler), your example had broken. So if you like you can close this till I run into another time. I will sure catch the diagnostic dump. Thanks

Great, thanks.


Cannot disable updates on OS X

VSCode Version: 1.17.2
OS Version: Sierra 10.12.3

Steps to Reproduce:

Install visual studio code.
In setting - "update.channel": "none"
Restart visual studio code.
Wait for Info message: Visual Studio Code will be updated after it restarts.

I am unable to get updates to disable on OS X.  I can set the user settings to use Update.Channel = None in this file $HOME/Library/Application Support/Code/User/settings.json (per Microsoft) , however updates do not actually get disabled.  Plus when I pre-populate this data in the user profile on first launch the user settings are actually never applied.

When you open VS Code, and press Cmd ,, the settings file should open. What's in it?

Thanks, for some reason I could not reproduce the issue.


Global border styles are too aggressive

Global styles that set border colour are too aggressive: https://github.com/cschroeter/park-ui/blob/53235fbaf69e5f6b8a1bb8d2518a5816475a1f3c/packages/panda/src/global-css.ts#L18.
This may be totally OK for fresh projects. But in my case, where I'm migrating gradually from Tailwind to PandaCSS with ParkUI this style is too aggressive and takes over styling where I'm not expecting it.
There is a similar problem with Preflight, but it can be scoped with a class name. But in this case, I can't scope it with PandaCSS config, so must manually override the preset after it was created with createPreset
Perhaps this global styles config can either respect preflight scoping or it can be overwritten on createPreset function call.
Or, it should not be global in the first place.
wdyt?

I unfortunately also ran into this issue. When park-ui is combined with payloadcms in this case this global style overrides any style set by the cms.
for now my solution is to override this line and fixing any park ui styling by hand
const globalCss = defineGlobalStyles({
  // reset park ui conflicting global style against payload
  "*, *::before, *::after": {},
});

export default defineConfig({
  // Don't reset payload css
  // preflight: true,
  ...
  globalCss,
  conditions: {
    extend: {
      // react to dark mode from payload
      dark: '.dark &, [data-theme="dark"] &',
    },
  },
  theme: {
    extend: {
      recipes: {
        button: {
          base: {
            borderWidth: 0,
          },
        },
      },
    },
  },
});


Updating Simulate example to ES6 Standards

Fixes #324   all Declaration of var have been changed to let and Class synatax have been added where
useful.

I request to maintainer please review my pr. Thankyou

wonderful!

Hi @lmccart  thanks for merging.


Upgrade to 4.12 fails in IE11

Hi,
I'm updating production application from version 4.11 to 4.12 (target is 4.17). I encountered an error in IE11. FF and Edge on chromium work correctly.
This application is quite complicated and related to the internal resources of the company, so I prepared a simple one based on the sample application provided by you. It's in this repository:
https://github.com/kelylah/arcgis-ng
Master branch is with ArcGIS JS API 4.12 version when 'arcgis411' is with version 4.11.
I tried to make dependencies as similar as possible to the production application. Dependencies aren't the newest one.
It is ejected and has custom webpack configuration.
The error that appears in IE11 console is: Object expected, zone.js (240,1) in Zone.prototype.scheduleTask
As we settle with TJ from Esri Customer Care the breaking change between 4.11 and 4.12 was using Fetch API despite esri/request:
esri/request now uses the Fetch API internally to request resources. When not available (e.g. with IE11), we use a fetch polyfill instead.
https://developers.arcgis.com/javascript/latest/breaking-changes/#412
This issue looks similar to issue #43
Looking forward to any clues.
Adam

Hi Adam, I don't have access to IE 11. Does this sample work in IE 11 when you change the version to 4.12?  https://developers.arcgis.com/javascript/latest/sample-code/request/

Hi Andy,
Thanks for your response. Yes, this sample is working in IE11.
I believe that problem isn't the JS API itself but a special coincidence of JS API with Angular stuff.

Thanks. I do have a few suggestions that you can try:

Make sure all the IE polyfills are enabled in Angular
There's a possibility that webpack causing the problem, since this doesn't show up in a plain old JavaScript sample. You might look to see if AngularCompilerPlugin has an compiler options related to optimization that you can temporarily disable to see if that fixes the problem. https://github.com/kelylah/arcgis-ng/blob/master/webpack.config.js#L488
Consider upgrading your version of Angular. Angular 7 is no longer supported by Google. It's possible that this old version of Angular doesn't have the necessary configuration options to allow you to bypass the issue.
Try testing using esri-loader instead of using arcgis-webpack-plugin. That will let you bypass an compile-time problems.

Hi Andy, Hi Guys,
I'm coming back with this topic. A colleague of mine has updated Angular to 10.2.3 and we are simultaneously trying to build this app.
I'm trying with arcgis-webpack-plugin as it allows to make 'normal' imports opposite to esri-loader.
It looks like my configuration doesn't read esriConfig. I put it in 2 places.

In starting index.ejs file as global
In main.ts (after importing from 'esri/config' - underlined as error)
Both files attached in ZIP.
I also attached a screenshot of the build of the app that shows that dojo.js is searched in node_modules
esriConfigs.zip
How can I be assured that esriConfig is set properly?
Is there any other place where I can insert this esriConfig setting?

I appreciate any help.
Adam

Maybe try using our new ES modules build => npm i @arcgis/core. The next release, 4.19, will be available in early April and you can also try it out at npm i @arcgis/core@next.
Here are some samples, starting at 4.19 (and also when you install @next version) you won't need to configure the assets as mentioned in the README:
https://github.com/Esri/jsapi-resources/tree/master/esm-samples/jsapi-angular-cli

With pleasure but well, you know... IE11!
That's why we are trying to run with JS API 4.17.

Closing. @kelylah if you have additional questions let us know.


Add ledger entry diff to simulateTransaction response

What
It adds the following field to SimulateTransactionResponse
StateDiff       []LedgerEntryDiff            `json:"stateDiff,omitempty"`       // If present, it indicates how the state (ledger entries) will change as a result of the transaction execution.

where:
// LedgerEntryDiff designates a change in a ledger entry. Before and After cannot be be omitted at the same time.
// If Before is omitted, it constitutes a creation, if After is omitted, it constitutes a delation.
type LedgerEntryDiff struct {
	Before string `json:"before,omitempty"` // LedgerEntry XDR in base64
	After  string `json:"after,omitempty"`  // LedgerEntry XDR in base64
}

Why
Closes #11
Known limitations
It can considerably increase the size of simulate transaction responses (particularly for contract uploads, which will contain the full wasm).

@leighmcculloch PTAL


Small error in listed code on 'Object' Reference page

There appears to be a small oversight in the code on 'Object' Reference page located at:
https://processing.org/reference/Object.html
The listed code is:
  void update() {
    ypos += speed;
    if (ypos > width) {
      ypos = 0;
    }
    line(0, ypos, width, ypos);
  }

Shouldn't it be:
  void update() {
    ypos += speed;
    if (ypos > height) {
      ypos = 0;
    }
    line(0, ypos, width, ypos);
  }

Trivial, I realize, but somewhat confusing.

This issue was moved to processing/processing-docs#732


Fix Release Crash

https://github.com/solid-software/flutter_vlc_player/issues/160#issuecomment-768985811

Already fixed in b164848948106300bf7980751d8d96882b4cacb9.

Cool you will want the iOS parts tho because I forgot those as part of the Webm change over.


Prototype pollution in LoadActionModules() CVE-2021-44908

Node version: 12.13.0
Sails version (sails): 1.4.0
else-if statement in lines 134-165 https://github.com/balderdashy/sails/blob/master/lib/app/private/controller/load-action-modules.js#L163) is vulnerable to prototype pollution.
The object assignment on line 163 may lead to denial of service or property injection if SailsJS based application dynamically controls the value of variable “filePath”.
Proof of concept case is demonstrated here: https://github.com/Marynk/JavaScript-vulnerability-detection/tree/main/sailsJS_PoC
The CVE Program has assigned the ID CVE-2021-44908 to this issue. This is a record on the CVE List, which standardizes names for security problems.

Hi @Marynk, thanks for reading through the code!
I took a look at your .zip file and video.  Here is the provided code that demonstrates how it is possible for a developer to code a Sails.js request handler that creates a javascript string, compiling in untrusted, unescaped data from the request, then deliberately overwrites an action file in the api/controllers/ folder.  If a developer was to build that, it would be insecure, and not recommended.

if SailsJS based application dynamically controls the value of variable “filePath”.

The userland app code then calls reloadActions(), an experimental function in Sails that should never be used to dynamically load JavaScript files with untrusted, unescaped strings injected into them.

We've updated the docs to clarify this, just in case, and linked to this issue.  Thanks!

@Marynk could you unzip the contents of your code here into your repository https://github.com/Marynk/JavaScript-vulnerability-detection/blob/main/sailsJS_PoC/sailsJS PoC.zip?
Your readme says there is screen capture video and commentary, which I don't see.  I can only assume it is in the zip.  It doesn't make sense to compress already compressed video and I don't trust your account enough to be downloading unkown executable/zip files.


[share_plus] pubspec file updated

Description

Updated the latest dependencies in pubspec.yaml

Related Issues

Update the latest version of all dependcies

Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated the version in pubspec.yaml and CHANGELOG.md.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] I am willing to follow up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[x] No, this is not a breaking change.

Thanks, but this is a low quality contribution and won't qualify for Hacktoberfest

Thanks, but this is a low quality contribution and won't qualify for Hacktoberfest

Yeah still I am updating the code, will give you the updated PR soon.

Thanks, but this is a low quality contribution and won't qualify for Hacktoberfest

I think it also doesn't bring any value as it doesn't update any outdated dependencies, which block usage of plugins for some users, as there are no such dependencies at the moment.

Yeah still I am updating the code, will give you the updated PR soon.

If you are going to just change the title in the example as you commented after review - don't do it. If you have other ideas that might actually be valuable (for example, pick one of opened issues we have) - feel free to open a new PR as I am going to close this one.


🚨 Use a specific user agent for media.ccc.de 🚨

Hi,
Requests from 'okhttp' to the public JSON API of media.ccc.de make up 98% of the total traffic now and it's affecting performance.
Maybe some of those requests can be avoided,  seems odd that we output several 100gb of JSON each day. However I'm not sure where those requests are coming from.
As first countermeasure I want to rate limit the 'okhttp' user agent. If I understand correctly cccTV currently uses that agent? Can you set an app specific agent, so we can tell the apps apart?

Hi Mario,
okHttp is a very common library for http requests on Android/Java/Kotlin. So I am pretty sure that it is the sum of all mobile clients that raise the traffic.
In this project I use https://github.com/johnjohndoe/c3media-base to access the media.ccc.de which is probably used in other projects as well.
And than there is also https://github.com/NiciDieNase/chaosflix that most likely uses okHttp.
Honestly speaking, I am not very active on this project anymore. Most things I did here are also available in Chaosflix by now + Chaosflix is also available for phone/tablet.

Hey @stefanmedack
Very well, Chaosflix did already react and that should be enough to debug this issue.

FYI: @manno I updated the underlying library.


Add your MoJ email address to your Github account

Your access to the ministryofjustice GitHub organisation will be revoked if you don't add a @digital.justice.gov.uk, @justice.gov.uk, @cica.gov.uk or @hmcts.net email address to your GitHub account.

Hi I've added email as requested
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: Nick Walters @.>
Sent: Wednesday, January 19, 2022 1:12:37 PM
To: ministryofjustice/no-verified-domain-email-repo @.>
Cc: Ajiri Owuasu @.>; Assign @.>
Subject: Re: [ministryofjustice/no-verified-domain-email-repo] Add your MoJ email address to your Github account (Issue #54)
Reopened #54https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fministryofjustice%2Fno-verified-domain-email-repo%2Fissues%2F54&data=04|01||a74ac6ba46f4446c7cf108d9db4d5dfa|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637781947607050922|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=zZgovx8%2Bp83ipsYFZc8TVTR%2BWRs1E0yjbR1IfoH%2B5Cw%3D&reserved=0.
—
Reply to this email directly, view it on GitHubhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fministryofjustice%2Fno-verified-domain-email-repo%2Fissues%2F54%23event-5917599343&data=04|01||a74ac6ba46f4446c7cf108d9db4d5dfa|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637781947607050922|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=T9yq7mRRu6osD%2BAqMa0kcH1Q%2BDNbgI7umn2aCi9xm7Y%3D&reserved=0, or unsubscribehttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAEJM4L6KVUYJ6NT4PMEID63UW22ELANCNFSM5MHFFUPA&data=04|01||a74ac6ba46f4446c7cf108d9db4d5dfa|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637781947607050922|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=WdJNTY00WQvPByOj8WCgZXW1BykfFBRHPvqkNv%2Br2co%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01||a74ac6ba46f4446c7cf108d9db4d5dfa|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637781947607050922|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=4V2qIInQbRcTlbc94PsfZO5LjvBNniGcTb3xecsnKCg%3D&reserved=0 or Androidhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01||a74ac6ba46f4446c7cf108d9db4d5dfa|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637781947607050922|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=Jki3OHWxSyhEduBfYpoirtnOOQAstBqh%2Fxo7XPP9LS8%3D&reserved=0.
You are receiving this because you were assigned.Message ID: @.***>


Cloning a service with a specific host results in Error

If you have a service that was deployed to a specific host, and clone it you will get a Validation failed in API: requestedHostId error. This is happening on latest UI.
You have to go to the scheduling tab in the service, select a different host, then select the host you really want.

Not only this, but the host which is selected by default is not the proper host from the cloned service.

Just came across this in 0.44. Thanks for the tip about how to work around it.

+1
Just ran in to this on v0.47.0-rc1

This is because of #594, the ID that comes back from GETting the service isn't a valid hostId


Kea 2.4 Updates

Description

Update installation packages to cover versions greater than 2.2
Kitchen test with Kea 2.4
Updates for Kea 2.4 release

Add allocator property to config_dhcp4
Add allocator and pd_allocator property to config_dhcp6
Add template_test property to config_dhcp4_client_class and config_dhcp6_client_class

Issues Resolved

n/a

Check List

[x] A summary of changes made is included in the CHANGELOG under ## Unreleased
[x] New functionality includes testing.
[x] New functionality has been documented in the README if applicable.

Released as: 1.1.0


Audit uses of FnvHashMap for collision attack potential

We currently use FnvHashMap in a number of places, presumably because it is faster than the std HashMap. However, the reason FnvHashMap is not the default, as I understand it, is because it is possible for attackers to generate input data that will cause denial of service through worst-case performance of hash map algorithms.
In Endpoint, we currently use FnvHashMap for (1) connection_ids_initial, (2) connection_ids, and (3) connection_remotes. (1) seems definitely vulnerable to this style of attack for server endpoints, since clients can randomly pick initial CIDs for their packets, thus triggering collisions. (2) seems safe, since local CIDs are generated by our own code. For (3), I'm not sure how easy it is to spoof IP addresses these days.

(One might also consider that using FnvHashMaps here is a form of premature optimization and we should just switch to std HashMaps until benchmarking proves that these matter; in which case we also might want to consider https://github.com/Amanieu/hashbrown.)

I'm not sure how easy it is to spoof IP addresses these days.

In IPv6, any attacker can easily control at least 80 bits of their IP address in addition to their source port, leaving 48 fixed. No idea if this is enough to be an issue. for hash collisions.

(One might also consider that using FnvHashMaps here is a form of premature optimization and we should just switch to std HashMaps until benchmarking proves that these matter; in which case we also might want to consider https://github.com/Amanieu/hashbrown.)

However, FxHash (what hashbrown uses) is not nessecarily more secure than FnvHash. They explicitly state it's not good to be used where DDoS is a concern - see the disclamer on the readme for https://github.com/cbreeden/fxhash

As I understand it hashbrown (like the std hash map) can use different hashing algorithms, so we could pick one that's collision-resistant.


Obfuscation mapping

Feature Request

The feature I mean is a txt file as a map to translate the obfuscation back to normal, for example;

lIlIIlIllll = slap.like.now.Epico.AMethod();

To make fixing errors easier, because now it is actually impossible to fix things, it would also be nice to fix things like this; https://hastebin.com/kopefahesu.

I have 5 weeks of vacation thanks to corona :3 When I work on the obfuscator this is one of the first things to fix for me ;D

Wow, I wished my schools closed(The Fucking Netherlands prime minister says it's unnecessary...).
Although thank you for fixing this!

How is progress?

I’ve not been able to do anything on this due to large pressure at school but I’ll try to contribute soon :/

No problem, school above everything!

Any updates?

Can i have an update please?

Ive been working on other projects recently, sorry.
If you want to implement it yourself it should be as simple as dumping the map at https://github.com/superblaubeere27/obfuscator/blob/master/obfuscator-core/src/main/java/me/superblaubeere27/jobf/processors/name/NameObfuscation.java#L89

No problem! Since I don't know how pull requests work, is it ok that I don't commit it?

Up to you, I think there is a guide on the ReadMe of how to contribute to the main repo tho


Question: Running multiple commands when called from Alexa

When I say, Turn on Entertainment to my alexa, I want the following set of actions to triggered.

Run a script (that sends x10 commands to turn on power to my entertainment system"
Invoke Harmony activity to trigger "Entertainment activity"

I have 1 and 2 individually working from Alexa->HABridge.  I want to combine them.  I understand that HAbridge supports to call multiple commands ( sequence of scripts  or sequence of Harmony activity), I'm not sure how to mix them.
Could you please someone help or point me in right direction?
Thanks
Ragu
Btw, HABridge rocks. RPi+HABridge+Alexa is really works well.

Multiple Call Construct

Thanks you for the response.  I'm aware of the multi-call-construct. May be, i don't know how to use that for my need.  I guess I don';t know the http url for my Harmony bridge triggers.  Has anyone combined harmony triggers and running shell commands?

Yeah, this is not straightforward as you need to combine different types into one call. The example for you is:
[{"item":"exec://","type":"execDevice"},{"item":"{"name":"<activity id from harmony"}","type":"harmonyActivity"}]
The "activity id from harmony" is the id you see in the harmony tab. You can create the activity in the tab and copy it into this construct as shown.

Is this resolved?


The subscription is not registered for the resource type 'dnszones' in the location 'westeurope'. Please re-register for this provider in order to have access to this location.

Hello.
I wanted to try the azure dns private zones (https://docs.microsoft.com/en-us/azure/dns/private-dns-getstarted-cli) (it is in preview now) and I am getting this err:
"The subscription is not registered for the resource type 'dnszones' in the location 'westeurope'. Please re-register for this provider in order to have access to this location."
I use azure-cli (2.0.30) on Mac installed via curl/bash.
The subscription is registered under Microsoft.Network provider.
Wha I am missing?
Thank you very much

@Trepliev , @averhaegen . What command resulted in this error?

Hi, I have had the same issue with my MSDN subscription, I've issued the following command:
az network dns zone create -g $RESOURCE_GROUP -n contoso.com
And I got this exact same error, using latest az cli

@ernani what was the exact command you used? What location was your resource group in?

@tjprescott The command I issued is outlined in the previous thread, the resource group is in eastus2 In my case, the error relates to eastus2 as well, not like this one that states westus.

Does it work if you use --location global?

I've tried that before as per @averhaegen 's suggestion and I get the following error:
az: error: unrecognized arguments: --location global

@ernani @adewaleo I created the DNS using an ARM Template. I got this error because I used the same location as my Resource group. But after setting the location to global, the deployment succeeded.
It seems Microsoft should update the azure cli to accept a —location parameter when creating a DNS

@averhaegen I have had to create mine via portal, then it worked. It seems it is just a need to allow --location to be global or hardcode it, and ignore whatever the user specifies if they do but, I am knot sure how az cli global parameters would rule it out. That's just my guess.

In my case, the problem was that I had set my default location (using az configure), so it tried to use that one instead of "global". Once I removed my default location, I could create a DNS zone without getting an error. Since you can't pass a location parameter to the "az network dns zone create" command, there's no other way to do it, but that command really shouldn't be reading your default location. Microsoft needs to fix this.

@guyhummel Nice catch, that's exactly my own case here.

Thanks for your incredibly fast response! I'm looking forward to seeing this work when you push the fix to production.

Just bumped into this using Bicep, location equals global solves the issue. Thanks.


IEnumIDList generated with incorrect (void vs HRESULT) return

Actual behavior
Generated return type for IEumIDList methods are all void, instead of HRESULT.
This prevents callers from actually using the result (Which is important as some of the members like Next() return S_FALSE :( )
Expected behavior
The COM interfaces were generated consistently with HRESULT returns. If the intent here is to use the automatic HRESULT conversion to an exception, it's still broken as the runtime won't do that without an attribute tagging that behavior. Ultimately that would be inconsistent with other COM interfaces. Ultimately though that would still be a problem as the S_FALSE return state is important and not handled by the automatic marshaller conversion. (IShellFolder is correctly generating for the HRESULT return)
A clear and concise description of what you expected to happen.
Repro steps

NativeMethods.txt content:

SHGetDesktopFolder

NativeMethods.json content (if present):

Any of your own code that should be shared?

Context

CsWin32 version: 0.2.10-beta
Win32Metadata version (if explicitly set by project): N/A
Target Framework: net6.0-windows10.0.19041.0
LangVersion (if explicitly set by project): N/A

We rely on the metadata to tell us whether we need to treat these APIs as PreserveSig=true, which should happen for any APIs that return non-S_OK success codes, at least. I'll move the issue to the win32metadata repo.


ci: use latest docker for tags and add master tag

Description

Change latest docker to point to the "latest stable tag"
Introduce master tag for  owncloud/ocis-rolling for the builds from the master branch.

Related Issue

Fixes <issue_link>

Motivation and Context

How Has This Been Tested?

test environment:
test case 1:
test case 2:
...

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Technical debt
[ ] Tests only (no source changes)

Checklist:

[ ] Code changes
[ ] Unit tests added
[ ] Acceptance tests added
[ ] Documentation ticket raised:

@kulmann @tbsbdr
There is a kind of "Yolo" factor in there. We can only test after merging 😄


WIP - Reference a Shipwright Build in a Tekton Pipeline

Changes
This adds a Tekton Custom Task controller, which watches for Tekton Run objects that reference a Shipwright Build and generates a corresponding Shipwright BuildRun. The controller then watches for BuildRun updates and syncs them to the corresponding Run object.
The current implementation only supports referencing an existing Build object. Future work can include an embedded Build spec, support parameters, and so forth.
Implements #529 in part, and partially implements SHIP-0031.
Credit to @otaviof and @imjasonh for their initial work on custom task controllers for Shipwright Builds.
/kind feature
Submitter Checklist

[ ] Includes tests if functionality changed/was added
[ ] Includes docs if changes are user-facing
[x] Set a kind label on this PR
[x] Release notes block has been filled in, or marked NONE

See the contributor guide
for details on coding conventions, github and prow interactions, and the code review process.
Release Notes
Shipwright Builds can be referenced inside a Tekton Pipeline or Tekton Run as a Tekton Custom Task. Referenced builds are executed as a Shipwright BuildRun on the cluster.

Marking this as WIP for now - I need to add integration and e2e tests, plus docs.
FYI @otaviof - this deviates a bit from the original triggers SHIP, but based on what I've done I think including this in the main set of controllers is more reasonable.

Yes, it does deviate from the original SHIP, and for me is a source of concern.
The SHIP is clear about introducing a new project which is responsible for triggering BuildRun that the Build Controller will react accordingly. In terms of architecture, we have a clearly defined boundary for each component.
This architectural separation of components also reflects directly on the code base, testing and documentation, etc.

This was implemented in https://github.com/shipwright-io/triggers


PostgreSQL results: FAILURE (800 tests, 541 passed, 221 failed, 38 skipped)

…ipped)

Merged but I've changed the commit message and remove a change in IdentityGeneratorTypeTest

Merged but I've changed the commit message and remove a change in IdentityGeneratorTypeTest


Bonus action importing

fixed #70
EDIT: added bonus action importing for improved initiative tracker too. Looks like all the rest of the sites/databases importing is implemented for either doesn't support bonus actions as their own section (they use traits for that) or don't have any monsters to import that have bonus actions

LGTM thanks :)


Data for subject endpoints should be fetched from ManagementPortal

The getAllSubjects and getSubject endpoints should get their data from ManagementPortal

The following have been implemented in this commit 9b8463445396c2b9723ae1a90c24360b27ce6c34  on the branch resolve_get_subjects_issue  according to guidelines in issue #42

[x] /api/mp/subjects
[x] /api/mp/subjects/{id}
[x] /api/mp/projects/{id}/subjects
[x] /api/mp/projects/{id}

The following have been implemented but do not provided intended results because of this issue of MP issue 18. Once this issue is resolved, this should work.

[ ] /api/mp/projects

A separate endpoint (/mp) has been created for exposing data retrieved from the MP for now. This can later be merged into (/api)
Here {id} of subject in Rest-API = {login} of subject in MP
All of this data is retrieved from the MP and formatted and exposed through REST-API.

closed with #43


When drain time out is set on sidekicks , upgrading the service results in sidekick stuck in "stopping" state forever.

Rancher versions:v1.6.11-rc3
Steps to reproduce the problem:
Create a service with sidekick which has drain time out set.
Upgrade the service.
Side kick containers get stuck in "stopping" state forever.

Tested with rancher-server version - v1.6.11-rc4
Drain time out is set on sidekicks is ignored. Able upgrade services with sidekicks successfully even when drain time out is set on sidekicks in compose files , since the drain time out for sidekick does not get saved .


[Improvement-12391][API] Workflow definitions that contain logical task nodes support the copy function

… function.

Purpose of the pull request

this pr closes #12391
PR for link history: #7647
Currently, the system does not support the replication function of workflow definition including CONDITIONS, SWITCH, SUB_PROCESS, DEPENDENT four task nodes.
The copy function generates new task nodes and should not limit logical task nodes.
I looked up the historical PR, at that time the replication function, no new task node was generated, all there will be problems. Now the code copy function of the dev branch will generate new task nodes, which will not affect the historical tasks.
https://github.com/apache/dolphinscheduler/blob/b7bd8d780356e055998fd0047be7e2cfea85d59b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java#L2151-L2170
Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
Manually verified the change by testing locally.

(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

Codecov Report

Merging #12392 (b7bd8d7) into dev (b7bd8d7) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head b7bd8d7 differs from pull request most recent head 81fbcbb. Consider uploading reports for the commit 81fbcbb to get more accurate results

@@            Coverage Diff            @@
##                dev   #12392   +/-   ##
=========================================
  Coverage     38.93%   38.93%
  Complexity     4178     4178
=========================================
  Files          1040     1040
  Lines         38805    38805
  Branches       4460     4460
=========================================
  Hits          15107    15107
  Misses        21930    21930
  Partials       1768     1768

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Can this merge into 2.0. x branches?

Can this merge into 2.0. x branches?

We only do bugfixs and without new features in the version 2.0.X.


How do i add categories with a foreach loop?

I want to create categories with a foreach loop based on column entries in the database but can't figure out the syntax for it. What i've tried is:
type: 'category',
                categories: [@foreach (var entry in Model.ListOfScores)
                {
                  "'"+@entry+"'"+,
                } ]

The query:
var scoresBetted = _context.Bet.Where(i => i.MatchId == id).Select(a => a.ScoreBetted).ToList();
ListOfScores = scoresBetted;

But that obviously doesnt work.
The result i'm looking for is that categories ends up looking like this when it's populated by the loop:
categories: [1-1, 4-1, 2,1]

Hi,
The issue queue is to be used for reporting defects and problems with C3.js, in addition to feature requests and ideas.
It is not a catch-all support forum.
For general support enquiries, please use the Google Group at https://groups.google.com/forum/#!forum/c3js.
All questions involving the interplay between C3.js and any other library (such as AngularJS) should be posted there first!
Thank you!


Attributes via data structures broken with last update

After the fix for issue #232 our attributes no longer show. This is only affecting attributes created using data structures. Normal inline attributes appear to be OK.
See the official Apiary Data Structures example.
To confirm, view the "Create a coupon" interactive area, we should see the Coupon Base attributes listed, and we should see the Coupons attributes listed under the response. We no longer see either of these lists.

The regression issue on Apiary has been fixed. As I have mentioned here https://github.com/apiaryio/api-blueprint/issues/232#issuecomment-155065074

Looks great now, thanks :)


feat: ajout page /en-maintenance

cf https://github.com/mission-apprentissage/flux-retour-cfas/pull/2313

:tada: This PR is included in version 3.0.0-beta.2 :tada:
The release is available on:

GitHub release
v3.0.0-beta.2

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.0.0 :tada:
The release is available on:

GitHub release
v3.0.0

Your semantic-release bot :package::rocket:


Add code for errors and report error if unknown IDE-159

Description

Related Issue(s)

Fixes IDE-159
How to test

Documentation

/hold

It will report telemetry with error code

It will report error error code is unknown and hide details in telemetry


Please include information on how to include and reference ViewBox elements in a WPF app

Hi,
Please updated the attached page so that includes recommendation on how to include and reference ViewBox element XAML files in a WPF app.
For example, in this page, the VS Image Gallery is explained. The gallery includes VS icons in XAML format.
However, there's no guidance and recommendations on how to include those images in a WPF app, please update the docs to demonstrate that.
Here are some relevant questions on SO and MSDN:

How to include raw xaml file which is not a resource?
How to use a ViewBox as a Resource
Embed XAML file with ViewBox as a Resource

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

ID: a67c2159-b497-7f30-59d2-e9f4261f7bc7
Version Independent ID: f7b9dc91-11d5-9431-8e54-0e8af8a826c7
Content: Pack URIs - WPF .NET Framework
Content Source: dotnet-desktop-guide/framework/wpf/app-development/pack-uris-in-wpf.md
Product: dotnet-framework
Technology: dotnet-wpf
GitHub Login: @adegeo
Microsoft Alias: adegeo

Hello @weitzhandler I'm sorry but I can't seem to figure out the link between what you're talking about and the PackURI article. This article isn't describing how to design resources, it's describing how to reference them, so it doesn't sound like an appropriate place for this suggestion.
But I may be misunderstanding your suggestion. Can you please clarify what's the exact problem you encounter, if you found a solution to fix it, and where specifically you would like it documented?


Login

where is the code of login page ?
are you changed anything in about page ?
I need you to push only login page code in this pull request not all of these changes in these files


Add support for zlib compression & DefaultCodec

Hi thanks for writing go-hadoop-io!  I added a small change to add support for the "org.apache.hadoop.io.compress.DefaultCodec" compression type and based it on your bzip2 reader as well as on this python-hadoop package's sequencefile reader ZlibCodec module.
The Java implementation is here: https://github.com/apache/hadoop/blob/master/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/DefaultCodec.java

Thank you for sending PR, @cce! zlib support is essential to this project. Merging.


Additional libraries for benchmark

Change Summary
Additional libraries for benchmarks:

validate_it
serpyco

Related issue number

Checklist

[ ] Unit tests for the changes exist
[ ] Tests pass on CI and coverage remains at 100%
[ ] Documentation reflects the changes where applicable
[ ] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)

Sorry, I can't really accept this.
See https://github.com/samuelcolvin/pydantic/pull/1810#issuecomment-706050989 and the comment below that.


Discussion for #2830 - Update StoredTabletFile equals to fix spotbugs warning

This overrides equals in StoredTabletFile by delegating to the parentTabletFile.equals() - this seems to preserve current behavior - but not sure that it should.  Provided for reference - this should not be merged until #2830 discussion is resolved.

Superseded by https://github.com/apache/accumulo/pull/2854 - the usage of StoredTableFile requires that the equals / compare methods match the parent.
As found by @ctubbsii
Bulk v2 LoadFiles reads creates a Map<TabletFile, ?>  and puts StoredTabletFiles in it. Then, it calls map.contains(new TabletFile(...)) . So, it's trying to use an equality comparison between StoredTabletFiles and TabletFiles, because of the attempt to compare what was loaded from the metadata table, and what is being attempted to be bulk imported. This happens in the fate operation, which seems to retry indefinitely until .contains is eventually true. Because of this, we need to ensure the equals, hashCode, and compareTo methods all have parity, so they give the same result regardless of which method is being called.


Remaining cleanups for BoundPods

Starting a new issue since the old ones have lots of history.
I'm perfectly willing to do this work, but putting it in an issue in case anyone else wants to grab instead.

Delete BasicBoundPodFactory reference in pkg/master/master.go
Now NewREST in pkg/registry/pod/etcd/etcd.go line 42 no longer needs the second argument.  Fix that.
Now pkg/registry/pod/bound_pod_factory.go and pkg/registry/pod/bound_pod_factory_test.go are unused.  Delete them.
I think there were some other dead code and simplifications but can't remember exactly what.

@wojtek-t @rsokolowski  @jszczepkowski you might be interested or know someone who is.

What team and component does this belong to? Thanks.

I will start working on that today.


Chat text in thread view does not update when switching threads

Describe the bug
When using the “Show X Replies” button in the Communication section to open threads, switching between threads does not update the displayed chat text in the thread view. Instead, the chat text from the first opened thread remains visible, which can lead to confusion.
To Reproduce

Go to the Communication section.
Click on “Show X Replies” to open a thread.
Switch to another thread using the same method.
Observe that the chat text in the thread view does not update and still shows the content from the first opened thread.

Expected behavior
The chat text in the thread view should update to display the correct content of the currently selected thread.
Screenshots
No response
Which version of Artemis are you seeing the problem on?
7.7.1
What browsers are you seeing the problem on?
Chrome
Additional context
No response
Relevant log output
No response

Duplicate of https://github.com/ls1intum/Artemis/issues/9754 - I am already working on this

Closed due to being duplicate as @badkeyy described. 👍


More complete fuzzing with all suricata callbacks

As discussed, @victorjulien , this is intended to get a better code coverage
There will then remain dead code to be removed.
But we will get a better view of which code is dead this way.

Merged as part of #184. I did rewrite the commit message to follow Suricata's style.

Ok merging this was a mistake as Suricata's QA is now broken. See https://travis-ci.org/OISF/suricata/jobs/495085015
Can you add some travis checks that would have caught this?

Where can I see that Suricata's QA ?
The link you pointer shows green...

On 19-02-19 08:46, Catena cyber wrote:

Where can I see that Suricata's QA ?
The link you pointer shows green...

I already pushed fixes, so I don't think you can see it now.

Ok, I just saw your commits, thanks.
Where can I check next time ?

On 19-02-19 10:00, Catena cyber wrote:

Ok, I just saw your commits, thanks.
Where can I check next time ?

In the OISF/suricata travis, but really this shouldn't happen again. I
would like to make sure the libhtp travis catches this so it doesn't
accidentally get merged.
Suricata bundles libhtp and then uses:
https://github.com/OISF/suricata/blob/master/.travis.yml#L43


CNAME can also be bound to trafficmanager

Must have CNAME mapped directly to .azurewebsites.net. Mapping to an intermediate CNAME value blocks certificate issuance and renewal.
Must meet all the above for successful certificate issuance and renewals.

As far as I know CNAMEs can also be mapped to TrafficManager (trafficmanager.net). See also https://learn.microsoft.com/en-us/answers/questions/1181/managed-certificates-behind-traffic-manager.html

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

ID: cc2ee874-df45-1de2-1b30-1fd75c7fd709
Version Independent ID: ee181722-8386-9842-407f-d0549012d2e9
Content: Add and manage TLS/SSL certificates - Azure App Service
Content Source: articles/app-service/configure-ssl-certificate.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

@LXBdev
Thanks for your feedback! We will investigate and update as appropriate.

Thanks for the feedback. We'll update the doc.

Front Door as well.  Keep getting these messages and have to manually untangle everything :
App Service Managed Certificate issued to hostname 'xxx' is at risk of failing renewal due to warning: Current CNAME record of the certificate's subject name xxx is not directly pointing to one of App Service's allowed domain names.


Fine-tune stepper drivers

At the time of writing, some of the stepper motors don't seem to be able to support the weight of the arm. This might be due to the fact that we are not providing enough current to the motors by setting the limit too low on the driver.
Experiment with this.

What we are using is probably not the best setup for the robotic arm design we are going for.
Overheating problems and pulse on high current
From a RepRap forum post:

"Looks like the current is set too high to me. They run OK for a while until
the chips get too hot and start cutting out, cooling a little and cutting
back in. That is the pulsing effect you see in the second half of the video."

The video is not available anymore, but we have the same behaviour.
From the docs:

"[A4988] offers overcurrent protection. If the boards get too hot, they will
interrupt the current until it cools a bit. If the current is too high for
the heat sinking, the motors will pulse as the current is interrupted and
restored."

Also, about the heat sinks:

"[...] the use of some thermal conductive glue makes things easier.
Try Arctic Silver - Arctic Alumina Thermal Adhesive or similar."

The effect of the small heat sink is debatable.
Some people think it actually improves the performance of the driver, while RepRap highly recommends active cooling.
How to properly compute Vref
Vref refers to the voltage value that can be regulated through the small potentiometer on some drivers (e.g., A4988, DRV8825).
In order to set the value correctly you need to take into account a couple of parameters:

The rate current for the stepper motor (you can find it on the component or the datasheet).

The value of the current sense resistor (here is a nice intro to current sense resistors).
They are usually marked on the sink screen as S1/S2 and typical values are 50mΩ, 100mΩ, 200mΩ.
See close ups for A4988 and DRV8825.

Once you have all the necessary info you need to refer to the driver datasheet.
Consider this datasheet for A4988.
It mentions that the driver has an internal PWM Current Control for which the maximum trip current $I_{MaxTrip}$ can be computed with the following formula:
\begin{equation}
I_{MaxTrip} * 8 * R_{S} = V_{ref}
\end{equation}
where $R_{S}$ is the value of a single current sense resistor.
If we set $I_{MaxTrip}$ as the rated current for the stepper motor we can get the ideal value for Vref.

Example:
Assuming we have a rated current of 2.8A (e.g., from our NEMA 23) and a current sense resistor of 100mΩ we get
\begin{equation}
2.8A * 8 * 0.1Ω = 2.24V
\end{equation}
Note: this voltage value might not be compatible with the driver.
In this case, our A4988 can't even provide this value of Vref.
Similarly consider this datasheet for DRV8825.
In this case the formula is slightly different:
\begin{equation}
I_{MaxTrip} * 5 * R_{S} = V_{ref}
\end{equation}
Example:
Similarly, assuming we have a rated current of 2.8A and a current sense resistor of 100mΩ we get
\begin{equation}
2.8A * 5 * 0.1Ω = 1.4V
\end{equation}
This is more or less what we observed during our experiments.
We initially found that a value for Vref of 1.5 was giving good performances but we should be able to lower the value more.
Motor drivers used in the MoveoArm
According to this infamous picture and the building manual, the MoveoArm uses the TB6560 motor drivers.
Since our electronics setup is inspired by the one from the Moveo, it would be ideal to stick to this choice.
According to the pictures in this datasheet, all the information necessary to setup the driver and limit the current flowing in the motor is reported in the silk screen.
Shoulder motors
The shoulder of the arm (at the base) is powered by two NEMA 23.
So far we have used two different "slots" in the RAMPS 1.4 to power two drivers (and motors), syncing them and setting the correct direction via software.
The plan was to eventually use the same driver to power two motors, inverting the signal from the hardware side.
IMPORTANT: this is not possible!
This is creating a simple parallel circuit (two motors in parallel, with the power supply as a source in series with the driver).
Let's assume the rated current for a single motor is 2.8A;
since the total amperage flowing through a circuit is the sum of the currents of each branch, we would need a driver providing $2.8A * 2 = 5.6A$ to supply two identical motors in parallel with the correct rated current (TB6560s are not able to do that).
The solution is to use two drivers, put in parallel with the motors.
At this point, the source in the circuit is simply the power supply which should be able to provide enough current to both drivers (and hence to both motors).
TB6560 setup
First of all, the driver needs to be set up using the dip switches on the board.
The silk screen on the driver should give you all the information necessary to configure it.
Example:
In order to provide the correct rated current (let's say we are aiming for 2.8A, the rated current for our NEMA 23), we can set the driver to provide 3A.
The "running current" table tells us to set SW1, SW2, SW3 to on and S1 to off.
We should proceed similarly with the rest of the switches.
Keep in mind the terminology:

Running current should be as close as possible to the rated current of the motor, to maximise performance;

Stop current is the current used to hold the motor shaft at a stopped position. You will want to set this as low as possible, to minimize unnecessary heating of the motor. Increase this value if your motor cannot hold its position.

Excitation mode is equivalent to the number of microsteps.

Decay seems to be the speed at which the magnetic field in the motor decays, but I'm not really sure about this. Some people on the interwebs suggest to leave it at 0%, while others set it to 50%. In the end, it shouldn't matter for our setup.

Finally, have a look at the picture to connect the driver to a RAMPS 1.4.
Note that cable colors don't necessarily have any meaning and you should check with a multimeter for continuity to find out the couple of cables A+/- and B+/- that connect the driver to the motor (or alternative look at the current connections and try to remember the order of the colors).

Arduino code
We should be able to use the code we have been using so far.
In particular instances of AccelStepper should be created in the same way, with unaltered pins setup.
Enable pin still needs to be set to LOW (inverted pin).

The drivers have been installed according to the instructions above. There is a mistake in the wiring diagram, where the driver is connected to the same potential on the power supply, resulting in no voltage across it (the supply we are using is a slightly different model, I'll add a picture once I get my hands on it again). We set the output current to 3A and the stop current to 50%.
There hasn't been enough time to test the new drivers thoroughly, but there are a few observations from those I managed to run:

Surprisingly, the arm behaved in a similar fashion when only 1 motor was plugged in and when both of them were

I measured the output voltage of TB6560 - 2.8V, which, in other words, is twice the voltage and four times the power of the previous drivers. It is enough to operate the arm with the "forearm" close to the "underarm", but not in the extended position, which, despite much better drivers, is no-better performance than DRV8825, except for the heating situation, which has been ameliorated.

In the extended position, the arm behaves inconsistently, usually managing to raise or lower itself, but plunges as soon as it stops with the characteristic sound of overloaded stepper motors.


Release workflow: failing maven deploy due to permission denied

@riprasad You can take a look at the most recent Release workflow for the full log, but here is the line in question:
2021-05-21T19:11:16.7392651Z [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project apicurio-data-models: Error while storing the mojo status: /home/runner/work/apicurio-data-models/apicurio-data-models/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst (Permission denied) -> [Help 1]

Interestingly I got that same permission denied in the workflow when trying to update the package.json file.  I ended up just removing that step from the workflow because it was  no longer necessary.  But apparently it is also a problem when doing the maven deploy.  Any ideas?

Link to the release workflow run in question:  https://github.com/Apicurio/apicurio-data-models/actions/runs/864863190
The workflow actually succeeded even though the maven deploy step failed.  Failure was identified by @DyspC here:  https://github.com/Apicurio/apicurio-data-models/pull/272#issuecomment-848738306

@EricWittmann I will take a look at this, but I have some priority items on my to-do list. Might take a while before I pick this one up. Does that work?

No problem, @riprasad - I have done the deploy into maven manually for that release, so there's no rush.  I can continue to do that for as long as needed. :)

@EricWittmann The permission denied issues might be because the cloned files are owned by a different user and maven is run as the user that exists in the GitHub actions runner environment. I have now added a step after the code checkout to give full permission to the cloned files to avoid any permission denied issues.
Also, looks like some sleep statements were added to the maven deploy step. But || operator was used instead of &&. This kind of messed with the retry logic and resulted in false positive. The sleep command was successful and therefore the maven deploy commands after the || operator never got executed. I have done the fix and also reduced the sleep time to 30 min for each retry. This is because Github actions has a default timeout set and making it sleep for 4 hours could have resulted in a timeout failure.


resetting logging to debug for inventory and dispatcher

Signed-off-by: Jonathan Holloway<EMAIL_ADDRESS>Description
Changing back to debug for inventory and dispatcher event logging.
Fixes # (issue)
Type of change
What is it?

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Documentation update
[ ] Tests update
[x] Refactor

Checklist:

[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] I run go fmt ./... to check that my code is properly formatted
[ ] I run go vet ./... to check that my code is free of common Go style mistakes

Test results are available in Ibutsu. The test run IDs are:
31b386e3-10da-4d37-8bc4-6214169f9234
60e5824f-12f6-4af2-8a75-a443df346ec8

Codecov Report

Merging #1027 (5e7ce3f) into main (db95113) will increase coverage by 0.00%.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #1027   +/-   ##
=======================================
  Coverage   30.37%   30.38%
=======================================
  Files          46       46
  Lines        5583     5588    +5
=======================================
+ Hits         1696     1698    +2
- Misses       3651     3655    +4
+ Partials      236      235    -1

Impacted Files
Coverage Δ

pkg/services/consumers.go
21.42% <0.00%> (-0.66%)
:arrow_down:

pkg/services/devices.go
59.40% <0.00%> (+0.39%)
: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 011a8f6...5e7ce3f. Read the comment docs.

Test results are available in Ibutsu. The test run IDs are:
1bdf33c8-e4e9-4892-a8d0-8afc461f1cef
3fbb1779-94e4-45e3-8bb2-e5751c194e45


Docs: remove redundant @package tags

@package tags are an arcane manner to group related files as belonging to one project.
For projects using namespaces, the current recommendation is to only have @package tags when they have supplemental information to the namespace.
That is only in a very limited way the case in WPCS, so I'm proposing to remove the @package tags from the WPCS class docblocks, though leaving them for now in the file docblocks.
At the very least, this removed duplicate information for which there is no reason for the duplication.
Includes cleaning up (normalizing) the tag description alignments in the class docblocks.
:point_right: reviewing with whitespace changes ignored should make it easier to see that the only real change is the removal of the package tags.
Refs:

https://docs.phpdoc.org/3.0/guide/references/phpdoc/tags/package.html#package
https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc-tags.md#59-package

Rebased to get passed the merge conflict.


Failed to load the frozen graph of GazeML

Hi:
With below code added to GazeML/src/core/model.py inference_generator, I can successfully export the GazeML to a frozen graph gaze.pb with the weights loaded by saver:
    sess = self._tensorflow_session
    from tensorflow.python.framework import graph_util
    constant_graph = graph_util.convert_variables_to_constants(
            sess, sess.graph_def,
            ['hourglass/hg_2/after/hmap/conv/BiasAdd', # heatmaps
             'upscale/mul', # landmarks
             'radius/out/fc/BiasAdd', # radius
             'Webcam/fifo_queue_DequeueMany', # frame_index, eye, eye_index
            ])
    with tf.gfile.FastGFile('./gaze.pb', mode='wb') as f:
        f.write(constant_graph.SerializeToString())

Then I try to load it with below code:
    with tf.gfile.FastGFile('gaze.pb', 'rb') as f:
        graph_def = tf.GraphDef()
        graph_def.ParseFromString(f.read())
        _ = tf.import_graph_def(graph_def, name='')

But it will be loaded failed with below errors:
2019-05-16 22:49:42.059659: I T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
Traceback (most recent call last):
  File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\framework\importer.py", line 489, in import_graph_def
    graph._c_graph, serialized, options)  # pylint: disable=protected-access
tensorflow.python.framework.errors_impl.InvalidArgumentError: Input 0 of node radius/fc3/BatchNorm/cond_1/AssignMovingAvg_1/Switch was passed float from radius/fc3/BatchNorm/moving_variance:0 incompatible with expected float_ref.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "gaze.py", line 47, in <module>
    eye,eye_index,frame_index,landmarks,radius = model()
  File "gaze.py", line 37, in model
    _ = tf.import_graph_def(graph_def, name='')
  File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\util\deprecation.py", line 432, in new_func
    return func(*args, **kwargs)
  File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\framework\importer.py", line 493, in import_graph_def
    raise ValueError(str(e))
ValueError: Input 0 of node radius/fc3/BatchNorm/cond_1/AssignMovingAvg_1/Switch was passed float from radius/fc3/BatchNorm/moving_variance:0 incompatible with expected float_ref.

I googled it and find this page, https://stackoverflow.com/questions/34265768/what-is-a-tensorflow-float-ref, according to its comments, that there is maybe a use of tf.Variable instead of a t.fplaceholder, thus this issue happened.
But I am not familiar with the GazeML code, could you help to fix this issue, really thanks?

@parai  I am getting the same issue, did you find a solution?

Hi I found solution. This middle part code block starting with fixed nodes, solves the problem.
def model():
    print("Trying to import Gaze Model.")
    dir = os.path.dirname(os.path.realpath(__file__))+'/gaze'
    pb = glob.glob('%s/*.pb'%(dir))[0]

    # Read graph definition
    with tf.gfile.FastGFile(pb, 'rb') as f:
        gd = graph_def = tf.GraphDef()
        graph_def.ParseFromString(f.read())

	# Fix nodes of freezed model
        for node in graph_def.node:
            if node.op == 'RefSwitch':
                node.op = 'Switch'
                for index in range(len(node.input)):
                    if 'moving_' in node.input[index]:
                        node.input[index] = node.input[index] + '/read'
            elif node.op == 'AssignSub':
                node.op = 'Sub'
                if 'use_locking' in node.attr: del node.attr['use_locking']

        # Export fixed freezed model pb file.
        with tf.gfile.FastGFile('./gaze_better.pb', mode='wb') as model_fixed:
           model_fixed.write(graph_def.SerializeToString())

        # Import graph into session
        tf.import_graph_def(graph_def, name='')

    # Saving the important nodes of the Gaze model
    # Input nodes of the model
    frame_index = sess.graph.get_tensor_by_name('Webcam/fifo_queue_DequeueMany:0')
    eye = sess.graph.get_tensor_by_name('Webcam/fifo_queue_DequeueMany:1')
    eye_index = sess.graph.get_tensor_by_name('Webcam/fifo_queue_DequeueMany:2')

    # Output nodes of the model
    heatmaps = sess.graph.get_tensor_by_name('hourglass/hg_2/after/hmap/conv/BiasAdd:0')
    landmarks = sess.graph.get_tensor_by_name('upscale/mul:0')
    radius = sess.graph.get_tensor_by_name('radius/out/fc/BiasAdd:0')
    sess.run(tf.global_variables_initializer())
    return eye,heatmaps,landmarks,radius

@Zeleni9 @parai has anyone of you managed  to export a .pb model that can be succesfully imported in OpenCV with readNetFromTensorFlow()?

I don't know about OpenCV, but I used command above to get freezed model and load it in tensorflow for inference.
with tf.gfile.FastGFile('./gaze_better.pb', mode='wb') as model_fixed:                model_fixed.write(graph_def.SerializeToString())

@Zeleni9, how did you manage to export a frozen model with a node 'Webcam/fifo_queue_DequeueMany' ?
When I try to do it, by first loading the metagraph from the checkpoints and then using the code from @parai, tensorflow tells me that there is no node named 'Webcam/fifo_queue_DequeueMany'.
However if I use 'UnityEyes/random_shuffle_queue_DequeueMany' it manages to export it fine.
Is it just a typing mistake or am I missing something?
Here is my code:
# This function exports a saved model

import os
import tensorflow as tf
from tensorflow.python.framework import graph_util

# trained_checkpoint_prefix = 'checkpoints/dev'
trained_checkpoint_prefix = 'model-4672654'
export_dir = os.path.join('models', 'GazeML_010520') # IMPORTANT: each model folder must be named '0', '1', ... Otherwise it will fail!

# handle unitialized variables
def initialize_uninitialized(sess):
    global_vars          = tf.compat.v1.global_variables()
    is_not_initialized   = sess.run([tf.compat.v1.is_variable_initialized(var) for var in global_vars])
    not_initialized_vars = [v for (v, f) in zip(global_vars, is_not_initialized) if not f]

    print ([str(i.name) for i in not_initialized_vars]) # only for testing
    if len(not_initialized_vars):
        sess.run(tf.compat.v1.variables_initializer(not_initialized_vars))

loaded_graph = tf.Graph()
with tf.compat.v1.Session(graph=loaded_graph) as sess:
    # Restore from checkpoint
    loader = tf.compat.v1.train.import_meta_graph(trained_checkpoint_prefix + '.meta')
    loader.restore(sess, trained_checkpoint_prefix)
    initialize_uninitialized(sess)

    constant_graph = graph_util.convert_variables_to_constants(
            sess, sess.graph_def,
            ['hourglass/hg_2/after/hmap/conv/BiasAdd', # heatmaps
             'upscale/Mean', # landmarks
             'radius/out/fc/BiasAdd', # radius
             'UnityEyes/random_shuffle_queue_DequeueMany', # frame_index, eye, eye_index
            ])
    with tf.gfile.FastGFile('./saved_GazeML.pb', mode='wb') as f:
        f.write(constant_graph.SerializeToString())

any help will be much appreciated! :)

Well I have added commented part of the code from this answer to issue - https://github.com/swook/GazeML/issues/23#issuecomment-494861909 into the code in file: https://github.com/swook/GazeML/blob/master/src/core/model.py inside at the end of method def inference_generator(self). It is the code on line 9-19 on this link https://github.com/parai/dms/blob/master/models/gaze.py.
The idea is that exports the model on inference_generator call, but it is only sufficient to save it once and stop the inference_generator.
Here I tried both versions for webcam or video so the names were  'Webcam/fifo_queue_DequeueMany' or 'Video/fifo_queue_DequeueMany', the graph will export with name you put in the code. Hope this helps.


Add API change document (proposal)

Proposal

Add a short document explaining how to make API breaking changes.
Adds in C++, Python and Javascript examples for when:

The new method has the same name as the old one (signature change only)
The new method has a different name than the old one (replace old method)

@kwokcb Let's hold off on this contribution for now, since we're still working through the details of how deprecated methods should be contributed to MaterialX, and this proposal isn't yet quite aligned with our existing documentation on API changes:
https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/DeveloperGuide/MainPage.md#materialx-api-changes


ci(release): add dataverse in github release assets

The data verse contract was missing from the GitHub release assets.

Summary by CodeRabbit

New Features

Introduced a new WebAssembly module to enhance app capabilities.
Launched "dataverse" component for advanced data interactions.

Documentation

Updated asset list with new module and schema details.

Refactor

Renamed contract schema file for consistency with new feature naming.

size-limit report 📦

Path
Size

target/wasm32-unknown-unknown/release/okp4_objectarium.wasm
432.79 KB (0%)

target/wasm32-unknown-unknown/release/okp4_law_stone.wasm
642.18 KB (0%)

target/wasm32-unknown-unknown/release/okp4_cognitarium.wasm
824.95 KB (0%)

target/wasm32-unknown-unknown/release/okp4_dataverse.wasm
230.07 KB (0%)


Error on running a Simple Go Program

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
1.10
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN="/Users/xxx/Downloads/projects/golang/bin"
GOCACHE="/Users/xxx/Library/Caches/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/xxx/Downloads/projects/golang"
GORACE=""
GOROOT="/usr/local/opt/go/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/opt/go/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="/usr/local/Cellar/gcc/7.3.0_1/bin/gcc-7"
CXX="/usr/local/Cellar/gcc/7.3.0_1/bin/g++-7"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/var/folders/w8/y97pxwvj35xcsw9vmh2s3gzr0000gn/T/go-build575805343=/tmp/go-build -gno-record-gcc-switches -fno-common"
What did you do?
ran a simple program
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
func main() {
urls := make([]string, 3)
urls[0] = "https://www.usa.gov/"
urls[1] = "https://www.gov.uk/"
urls[2] = "//www.gouvernement.fr/"
for _, u := range urls {
	responseTime(u)
}

}
func responseTime(url string) {
start := time.Now()
res, err := http.Get(url)

if err != nil {
	log.Fatal(err)
}

defer res.Body.Close()

elapsed := time.Since(start).Seconds()

fmt.Printf("%s took %v seconds \n", url, elapsed)

}
What did you expect to see?
expected output
What did you see instead?
crypto/x509
In file included from /System/Library/Frameworks/Security.framework/Headers/AuthSession.h:32:0,
from /System/Library/Frameworks/Security.framework/Headers/Security.h:43,
from /usr/local/Cellar/go/1.10/libexec/src/crypto/x509/root_cgo_darwin.go:17:
/System/Library/Frameworks/Security.framework/Headers/Authorization.h:193:7: error: variably modified 'bytes' at file scope
char bytes[kAuthorizationExternalFormLength];
^~~~~

solved this issues by using clang as the compiler instead of gcc

@avinashrd what version of gcc is this?
/cc @ianlancetaylor @FiloSottile

It sounds like gcc 7.3 from the previous issue https://github.com/golang/go/issues/24425#issuecomment-373974188

There's nothing Go-specific here. I see this problem all over the web with different projects.
The code in question is Apple's, and not in Go's codebase anywhere.
At best we could make cmd/go detect this case (on failure, check if using gcc) and then recommend using clang. Might be overkill. @ianlancetaylor?

Honestly I think that is overkill.  I agree that I don't think there is anything we can reasonably change to make this work, so closing the issue.  Please comment if you disagree.


WIP: Add in atomic_{min,max}_x intrinsics

I have probably not got this even remotely right.
Recent rust stable seems to have added atomic_max and atomic_min intrinsics. I recently bumped into this being unimplemented while using miri to (hopefully) track down some bugs.
I think this is an implementation of these.

The implementation lgtm. Could you also add some tests that end up invoking at least one min and one max function from a stable Rust API?

Cc @JCTyblaidd for the data race detector changes

The implementation lgtm. Could you also add some tests that end up invoking at least one min and one max function from a stable Rust API?

The tests are those in the compiler test suite, or are there some other test suite I can add to?

The tests are those in the compiler test suite, or are there some other test suite I can add to?

Yes, see the tests/ folder. The compiler test suite is not run in Miri.

https://github.com/rust-lang/miri/blob/9b762c7b6da721700249a2557902383e3df84066/src/data_race.rs#L508-L515
Why not replace the op and neg arguments with a for<'ctx> fn(ImmTy<'ctx, Tag>, ImmTy<'ctx, Tag>) -> InterpResult<'tcx, ImmTy<'tcx, Tag>> function pointer, which closures without captures can coerce to?

Why not replace the op and neg arguments with a for<'ctx> fn(ImmTy<'ctx, Tag>, ImmTy<'ctx, Tag>) -> InterpResult<'tcx, ImmTy<'tcx, Tag>> function pointer, which closures without captures can coerce to?

A closure would be an alternative to the enum, yeah. It could even for impl for<'ctx> FnOnce ..., so it can actually capture things in the closure.

@GregBowyer What is the status of this, do you still plan to continue working on this PR?

@GregBowyer What is the status of this, do you still plan to continue working on this PR?

@GregBowyer thank you for opening this PR! I am going to close it due to inactivity, but if you (or anyone else) plan to revive this code, take care of the remaining concerns, and drive the PR to completion, feel free to reopen or create a new PR. :)


6.0.5 subclass non-nullable strings shown as nullable

Hi,
Great that the nullable reference types support is coming along! I tested it and found an issue that was a bit confusing.
When SupportNonNullableReferenceTypes is enabled:
public class TopLevelClass{
    public string TopNonNullableString { get; set; } = null!;
    public string? TopNullableString {get; set; }

    public class SubClass{
        public string SubNonNullableString { get; set; } = null!;
        public string? SubNullableString {get; set; }
    }
}

For the TopLevelClass the properties' nullable context is shown correctly, but for SubClass both are shown as nullable.
Now if I move the SubClass to be on the top level, the nullable context is shown correctly.
I'm on version 6.0.5

I have tracked down this bug and will submit a PR tomorrow.


Syntax Error upgrade_1-1.php

Last pull request #2260 from Spuds/Misc_Fix
Error notice by upgrade:
Parse error: syntax error, unexpected 'array' (T_ARRAY) in C:\xampp\htdocs\elk11test\install\upgrade_1-1.php on line 378

Bug still exists after pull request Code Trolling #2291


' always gives '' now.

Since (I think) 1.3 of VS Code, pressing ' will now automatically give '', so you have to manually delete the second one. Is there a way to turn this off?

That's good question ;)

Seems that if you add "editor.autoClosingBrackets": false to the user settings this behaviour is turned off. However, it apparently affects quotations (both single and double) and brackets (squared, rounded...) at the same time, I haven't found a way to discriminate them.

Relevant to this issue:

Microsoft/vscode#8850
Microsoft/vscode#8539

I think it got recently fixed by @cloudRoutine

Indeed. This is now fixed.