Same issue affecting on my side. even if install your updated package.

Hi @aldabil21
I recently installed your updated package, but I'm still encountering an error.
Could you please provide me with some guidance or steps to troubleshoot the error? Any help or suggestions would be greatly appreciated.
Thank you in advance for your assistance.

Hi
Can you share a reproduction sandbox?

Hi,
Sorry I don't have production sandbox, but if I share you my package.json file screen shot will this work .?

here is the basic example: https://codesandbox.io/s/react-scheduler-demo-standard-v96bd
you can copy your <Scheduler ...  component inside it

Upgrade @mui/material to v5.8.6 or above


ZEPPELIN213: Notebook toggleAllTable and toggleAllEditor does not mat…

This fix match the notebook buttons (code & output) behavior to the paragraph behavior (code & output).
BEFORE:

AFTER:

Tested and LGTM

Very cool. LGTM.

+1


infra: support log rotation for tcmu-runner

This commit adds the log rotation support for tcmu-runner.
ceph-container related PR: ceph/ceph-container#1726
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1873915
Signed-off-by: Guillaume Abrioux<EMAIL_ADDRESS>

jenkins test centos-container-all_daemons

jenkins test centos-non_container-all_daemons

jenkins test centos-container-all_daemons

The failure is unrelated with the current change and we can see that the tcmu-runner container is started correctly with the right bindmount for the log file.


Restart ControllableRunner

Hi, sorry for spamming this repo :/
I know there is a way to seek forward with ControllableRunner.seek, but is there a way to restart the parsing progress?
If not a "built-in" way, do you recommend any logic that I should follow?
So far, I did this in my main:
        Source source = new MappedFileSource(this.demoPath);
        runner = new ControllableRunner(source);
        runner.runWith(this);

        while(!runner.isAtEnd() && runner.isRunning())
            runner.tick();

Then I call:
runner.halt();
In order to interrupt the first while, but, when the line above is called the thread never really dies and I get stuck in an infinite wait loop.
Maybe this is not the most elegant way of doing this, any recommendations? Thank you again

What do you mean "restarting the process"?
Do you say runner.halt() does not kill the runner thread?

Start from the beginning of the demo again.
Yes, I tried to use runner.halt(), when I used it my program got stuck here:

(Trhead.java)
I just made another test, waited for 5 minutes. The software never leaves this  while (isAlive()) lopp

You could do runner.seek(0) to get back to tick 0.
Why do you want a ControllableRunner anyway? From your earlier example, it seems like it would be enough to use a SimpleRunner for example.
Other than that, your code seems to call join but you do not show it. Can I have a full example that replicates your problem?

I have tried  runner.seek(0), no luck.
I imagine that SimpleRunner could do the trick as well, but how do I interrupt it? I'll probably have to wait till it ends to start it over.
This is basically what I do:

And after a few rounds I'll call runner.halt(), and the behavior described above will occur again.
This is all I do related to the runner on the entire code

I can't help you without a complete example.

You are right. Here is it, I have just tried and the problem continues:
public class App {
    @Insert
    public Context ctx;

	public static void main(String[] args) throws Exception {
        new App().run(args);
    }

	public void run(String[] args) throws Exception {
		Source source = new MappedFileSource("console-1.dem");
		runner = new ControllableRunner(source);
		runner.runWith(this);

		while(!runner.isAtEnd() && runner.isRunning())
			runner.tick();
	}

	@UsesEntities
	@OnGameEvent
	public void onGameEvent(GameEvent event) {
		switch (event.getName()) {
			case "round_announce_match_start":
				try {
					runner.seek(0);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				break;
		}
	}
}

This will cause, for me at least, to be stuck here:

I see where the problem is:

the main thread is in runner.tick() which will waitForTickReached(currentTick + 1)
the parsing thread will find the game event on currentTick and will seek to 0
if the parsing thread obeys here (and I do not think it does, but I'd have to check), the main thread could never reach tick + 1 since it'll hit the seek to 0 first

To sum up:
The functions to control the runner are not supposed to be called from the parsing thread.
What do you want to do? What should happen after the runner halted?

Cool understood.
Im trying to first list all players in teams in a CSGO console demo, because of networking (and the server vis check) you cannot get this information at round start, so I want to:
List the players trough the round
get their steam ids and etc
go back to round start to proper analyze it

Use a ControllableRunner this way:
When you got the player info, set a variable to indicate that, but let the runner continue.
Then on the main thread, look at the variable, and do the seek from there.
But do the players really change during the round? In my projects, this seems to happen basically never, so why do it?

So, when round starts (this happens only on console recorded demos), your team (user recording the demo) is available and you can get m_iTeam (and any other info really) just fine, but the other players and spectators will be 0 (in my experience).

It worked perfectly! Thank you
And now I have the correct info when the game starts, you're awesome

Glad I could help ;-)


Loading hubert model error

Hello
When I excute distiller example, I met error message below.
Can I get some help with this issue?
I think it's a problem with the import module.
python3 run_pretrain.py -u distiller -g pretrain/distiller/config_model.yaml -n mytest
[UpstreamPretrainExpert] - Using upstream config from: pretrain/distiller/config_model.yaml
[Dataset] - Sampling random segments for training, sample length: 250000
[Dataset] - Training data from these sets: ['train-clean-100', 'train-clean-360', 'train-other-500']
[Dataset] - Number of individual training instances: 281241
[UpstreamPretrainExpert] - Initializing model...
[DistillerModel] - Expands the output dimension by 2 times
[DistillerModel] - Pred layers: [4, 12]
[TransformerEncoder] - Attention type = original
[DistillerModel] - Out layer type: expand-last
[DistillerModel] - Inter dim = 768
Using cache found in /root/.cache/torch/hub/s3prl_s3prl_master
Traceback (most recent call last):
File "run_pretrain.py", line 156, in
main()
File "run_pretrain.py", line 150, in main
runner = Runner(args, config)
File "/local1/sshwang/trunk/distillation/s3prl/s3prl/pretrain/runner.py", line 44, in init
self.upstream = self._get_upstream()
File "/local1/sshwang/trunk/distillation/s3prl/s3prl/pretrain/runner.py", line 56, in _get_upstream
self.args.multi_gpu).to(self.args.device)
File "/local1/sshwang/trunk/distillation/s3prl/s3prl/pretrain/distiller/pretrain_expert.py", line 57, in init
model_config, edict(self.upstream_config["teacher"])
File "/local1/sshwang/trunk/distillation/s3prl/s3prl/pretrain/distiller/pretrain_expert.py", line 188, in init
teacher = torch.hub.load("s3prl/s3prl", teacher_config.model)
File "/local1/sshwang/trunk/distillation/venv/lib/python3.6/site-packages/torch/hub.py", line 399, in load
model = _load_local(repo_or_dir, model, *args, **kwargs)
File "/local1/sshwang/trunk/distillation/venv/lib/python3.6/site-packages/torch/hub.py", line 425, in _load_local
hub_module = import_module(MODULE_HUBCONF, hubconf_path)
File "/local1/sshwang/trunk/distillation/venv/lib/python3.6/site-packages/torch/hub.py", line 76, in import_module
spec.loader.exec_module(module)
File "", line 678, in exec_module
File "", line 219, in _call_with_frames_removed
File "/root/.cache/torch/hub/s3prl_s3prl_master/hubconf.py", line 1, in
from s3prl.hub import *
File "/local1/sshwang/trunk/distillation/s3prl/s3prl/hub.py", line 30, in
_get_hubconf_entries()
File "/local1/sshwang/trunk/distillation/s3prl/s3prl/hub.py", line 14, in _get_hubconf_entries
_module = importlib.import_module(_module_name, package=package)
File "/usr/lib/python3.6/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/local1/sshwang/trunk/distillation/s3prl/s3prl/upstream/init.py", line 1, in
from . import experts
File "/local1/sshwang/trunk/distillation/s3prl/s3prl/upstream/experts.py", line 24, in
_get_experts()
File "/local1/sshwang/trunk/distillation/s3prl/s3prl/upstream/experts.py", line 11, in _get_experts
_module = importlib.import_module(_module_name, package=package)
File "/usr/lib/python3.6/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/local1/sshwang/trunk/distillation/s3prl/s3prl/upstream/data2vec/expert.py", line 13, in
from . import model
File "/local1/sshwang/trunk/distillation/s3prl/s3prl/upstream/data2vec/model.py", line 94, in
class Data2VecAudioModel(BaseFairseqModel):
File "/local1/sshwang/trunk/distillation/venv/lib/python3.6/site-packages/fairseq/models/init.py", line 131, in register_model_cls
raise ValueError("Cannot register duplicate model ({})".format(name))
ValueError: Cannot register duplicate model (data2vec_audio)
It seems to be loaded with the Python command line command.

If I delete the upstream/data2vec folder, it works fine.
Thank you

Hi, this is because data2vec uses new modules in fairseq. Hence you will need to reinstall s3prl to get the proper version of newer fairseq.


Support Docker

I created a DockerFile and updated the Docs, maybe you want to include it into your base.
The docker Image is available on docker hub as nafets227/carddav2fb.
I am available for any kind of questions you might have...

why did you copy config.example.php to config.example-docker.php?
IMHO config.example-docker.php should be deleted.

@abma yes this seems strange...

sorrry, I lost your comments and just re-found them now. Actually you are right. config-example-docker.php can be deleted. I will do it next days plus merge your latest changes plus optmize the docker Container for have the config file in a separate Directory /etc/carddav2fb

Now I have a better Version uploaded to nafets227/carddav2fb. May I ask you to check again and Merge if ist ok or let me know?

how can the script in docker run? normaly i use a cron but i don't know how it works in the running docker container.

I use Kubernetes and run the Container via Kubernetes CronJob.
This way a Container is started every hour in my case, inside the Container carddav is doing one sync and then it ends and the Container is finished and deleted.


Fixes some minor response formatting issues.

Testing out the current HEAD on ores-staging, I get:
{
  "error": {
    "code": "internal server error",
    "message": "Traceback (most recent call last):\n  File \"./ores/wsgi/routes/v3/scores.py\", line 25, in process_score_request\n    return util.format_v3_score_response(score_response)\n  File \"./ores/wsgi/routes/v3/util.py\", line 51, in format_v3_score_response\n    util.format_error(error)\nKeyError:<PHONE_NUMBER>4346\n"
  }
}

For https://ores-staging.wmflabs.org/v3/scores/fiwiki/?revids=23456784334346
This PR fixes this issue.

Codecov Report

Merging #195 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #195   +/-   ##
=======================================
  Coverage   10.97%   10.97%
=======================================
  Files           5        5
  Lines         319      319
=======================================
  Hits           35       35
  Misses        284      284

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 aafae14...8098e7f. Read the comment docs.


Add DeleteCollection verb for endpointslice

Signed-off-by: Aswin Surayanarayanan<EMAIL_ADDRESS>

@aswinsuryan we need to make this change in helm too


test_catmath done

Coverage increased (+1.1%) to 37.931% when pulling 9680f1eddc97f0fa0c77ce21e846eb6e089417e3 on SylwiaOliwia2:master into cad3d2ba400a71b24a6aee9b7ecf44938b97fa0a on keeppythonweird:master.

Coverage increased (+18.4%) to 55.172% when pulling 2f28712907407d4e8726de104419eea1d6961363 on SylwiaOliwia2:master into cad3d2ba400a71b24a6aee9b7ecf44938b97fa0a on keeppythonweird:master.


Enhancing the "Features of PetMe at a Glance"

The font size and the overall image is too small to understand.
The three columns there could have been more clearly differentiated.
.

pls assign me this issue to work on

Its not required currently in website.


initial setup for julia

Close #1
This PR includes:

Add the new template julia (supersede https://github.com/microsoft/vscode-dev-containers/tree/main/containers/julia. Almost the same as https://github.com/devcontainers/templates/tree/main/src/ubuntu except for the addition of the Julia Feature.)
Minor improvements to the development environment
Remove sample files
Auto formatting some files

Looks good to me, I think the only thing I'd do is add the Julia VS Code extension, see my suggestion.

Thanks for your review!
The Julia VS Code extension is included in the julia Feature (https://github.com/JuliaLang/devcontainer-features/blob/193e161a6aaab7c18a6380e2f7198c073a2c0440/src/julia/devcontainer-feature.json#L24-L30), so no need to add it again here.
I will add Better TOML adds and comments about the Julia extension.

Ah, great!
I'm wondering whether we should move the TOML extension into the Julia feature as well then? But I'll merge now, we can always iterate later.

I'm wondering whether we should move the TOML extension into the Julia feature as well then? But I'll merge now, we can always iterate later.

Good point.
Looking at the Rust Feature, it does indeed contain the Better TOML extension.
https://github.com/devcontainers/features/blob/96bff0097028001e6e4126c5528d37cb8c13e785/src/rust/devcontainer-feature.json#L38-L52


cors: enable cors for direct/redirect

Signed-off-by: SpecialYang<EMAIL_ADDRESS>Support cors for direct response or redirect response.

The cors filter does not take effect on redirect and direct-response because the cors policy takes effect only on route, see envoy proto definition:

the cors policy is defined only on RouteAction.

@SpecialYang seems like this isn't needed from @gengleilei comment. Closing for now, but happy to reopen if this isn't the case.


Switched to uploadFile from axios in scribe

Proposed Changes

Fixes #8327
Change 1
Change 2
More?

@coronasafe/care-fe-code-reviewers @coronasafe/code-reviewers
Merge Checklist

[ ] Add specs that demonstrate bug / test a new feature.
[ ] Update product documentation.
[ ] Ensure that UI text is kept in I18n files.
[ ] Prep screenshot or demo video for changelog entry, and attach it to issue.
[ ] Request for Peer Reviews
[ ] Completion of QA

Looks good to me


bug found in prediction file

One line is missing after line 53, which causes RuntimeError: Column name deep_features does not exist.
https://github.com/yulingtianxia/AudioEmotion/blob/a6aa7a783602c9a04b23ddc3f2178655c051a6fa/Source/turicreate_classifier.py#L53
add the following line between line 53 and 54 in file Source/turicreate_classifier.py
data['deep_features'] = tc.sound_classifier.get_deep_features(data['audio'])

Thanks for your suggestion! Would you like to send a PR to me?

Thanks for your suggestion! Would you like to send a PR to me?

Hi I have opened a pull request #3


Example of using Object based Filter

Hi, I have had no luck getting a filter-expression to work, if I wanted to just do a filter based on an attribute on the node, no entry box..
I have tried, for example <treecontrol filter-expression="{booleanAttribute: true}" .. >
but no luck.
Am a bit of a noob for angular in general, but got working what I wanted for ng-repeat..

Try this:
<treecontrol filter-expression="variable" .. >


feat(text/unstable): add strip, stripStart, stripEnd functions (#6265)

Resolves #6265.
Roughly speaking, these replicate the combined functionality of trim_matches, trim_start_matches, trim_end_matches, strip_prefix, and strip_suffix (plus a hypothetical strip_prefix_and_suffix) from the Rust standard library.

I think the count option should not be part of this api. Instead, the user can always call the function repeatedly or in a loop themselves. In that sense, I think stripStart() and stripEnd() should be the only exported functions, and maybe a stripAll() to reflect replaceAll().

I think the count option should not be part of this api. Instead, the user can always call the function repeatedly or in a loop themselves. In that sense, I think stripStart() and stripEnd() should be the only exported functions, and maybe a stripAll() to reflect replaceAll().

@timreichen Probably worth getting some more use cases, but if I grep my code for functions named *strip*, mostly they simply strip out all occurrences (usually based on replaceAll or similar, no need for a library function), and in a significant minority of cases they remove all prefixes and suffixes, like this:
// strip(str, /[^\p{L}\p{M}]+/gu, { count: Infinity })
function stripNonLetter(str: string) {
    return str.replaceAll(/^[^\p{L}\p{M}]+|[^\p{L}\p{M}]+$/gu, '')
}

// strip(str, /[_\- ]+/g, { count: Infinity })
const strip = (str: string) => str.replaceAll(/^[_\- ]+|[_\- ]+$/g, '')

There are also a few cases where they strip a single instance at the start or end and then stop there, and it sounds like @canac 's use case fits here:
// strip(str, '\ufeff', { count: 1 })
function stripBom(str: string) {
   return str.replace(/^\ufeff/, "")
}

I guess the "strip up to n occurrences" case is rare when 1 < n < Infinity, but very common (possibly the most common) when n == Infinity, and also reasonably common where n == 1. So maybe a better API is options?: { all?: boolean } or options?: { single?: boolean }, depending on what the chosen default is (no strong opinion either way on the default).
I'm not keen on the idea of doubling the API surface area from strip/stripStart/stripEnd to strip/stripStart/stripEnd/stripAll/stripAllStart/stripAllEnd, even though that's essentially what Rust std library does. Seems like overkill in JS/TS.
Another way of supporting single/all, but without a specific option, would be reading the g flag if the supplied pattern is a regex. I'm also not keen on this option as it doesn't support string patterns, and it's also not really the correct semantics for the g flag. Currently I just ignore g and y flags, but maybe throwing would be better if g doesn't match all-ness (and always throwing if y supplied).

@timreichen Probably worth getting some more use cases, but if I grep my code for functions named *strip*, mostly they simply strip out all occurrences (usually based on replaceAll or similar, no need for a library function), and in a significant minority of cases they remove all prefixes and suffixes, like this:
// strip(str, /[^\p{L}\p{M}]+/gu, { count: Infinity })
function stripNonLetter(str: string) {
    return str.replaceAll(/^[^\p{L}\p{M}]+|[^\p{L}\p{M}]+$/gu, '')
}

// strip(str, /[_\- ]+/g, { count: Infinity })
const strip = (str: string) => str.replaceAll(/^[_\- ]+|[_\- ]+$/g, '')

There are also a few cases where they strip a single instance at the start or end and then stop there, and it sounds like @canac 's use case fits here:
// stripStart(str, '\ufeff', { count: 1 })
function stripBom(str: string) {
   return str.replace(/^\ufeff/, '')
}

I guess the "strip up to n occurrences" case is rare when 1 < n < Infinity, but very common (possibly the most common) when n == Infinity, and also reasonably common where n == 1. So maybe a better API is options?: { all?: boolean } or options?: { single?: boolean }, depending on what the chosen default is (no strong opinion either way on the default).

I agree, strip as a name is confusing as it doesn't indicate single or all occurrences.

I'm not keen on the idea of doubling the API surface area from strip/stripStart/stripEnd to strip/stripStart/stripEnd/stripAll/stripAllStart/stripAllEnd, even though that's essentially what Rust std library does. Seems like overkill in JS/TS.

I wouldn't like that either. I think the problem here is that the functions are explicit in name but are n

Another way of supporting single/all, but without a specific option, would be reading the g flag if the supplied pattern is a regex. I'm also not keen on this option as it doesn't support string patterns, and it's also not really the correct semantics for the g flag. Currently I just ignore g and y flags, but maybe throwing would be better if g doesn't match all-ness (and always throwing if y supplied).

Come to think of it, this api is tries to do too much combining all these rust functions into one imo. There is String.prototype.replace, String.prototype.replaceAll, which already cover a lot of use cases.
This api should be reduced to replaceStart() and replaceEnd(), which makes them actually more flexible, not only stripping but allow for any replacement:
strip_prefix => replaceStart("foo:bar", "foo:", "") // "bar"
strip_suffix => replaceEnd("bar:foo", ":foo", "") // "bar"
trim_start_matches => replaceStart("11foo1bar", /1+/, "") // "foo1bar"
trim_end_matches => replaceEnd( "foo1bar11", /1+/, "") // "foo1bar"
trim_matches => "11foo1bar11".replace(/^1+|1+$/, "") // "foo1bar" or call both replaceStart() and replaceEnd()
N replacements can be handled by the regexp, using a prepared string or calling the function repeatedly:
replaceEnd("barfoofoofoo", /(foo){2}/, "") // "barfoo" or
replaceEnd("barfoofoofoo", "foo".repeat(2), "") // "barfoo" or
for (let i = 0; i < 2; i++) replaceEnd("barfoofoofoo", "foo", "") // "barfoo"

N replacements can be handled by the regexp, using a prepared string or calling the function repeatedly:
replaceEnd("barfoofoofoo", /(foo){2}/, "") // "barfoo" or
replaceEnd("barfoofoofoo", "foo".repeat(2), "") // "barfoo" or
for (let i = 0; i < 2; i++) replaceEnd("barfoofoofoo", "foo", "") // "barfoo"

@timreichen None of these are really satisfactory for the case where you want to dynamically strip arbitrarily many occurrences of an arbitrary string, but none of the use cases I've found involve doing that anyway — use cases with unlimited occurrences typically seem to be more suited to regex, where you can trivially use a non-capturing group along with * or +.
As for replace vs strip:
replaceEnd(url.pathname, /\/*/, '/') // pathname always ends with slash
stripEnd(url.pathname, /\/*/) + '/' // same result

But it could be useful for cases like this:
// only prepend 'https:' when replacing existing 'http:' protocol
replaceStart(url.href, 'http:', 'https:')

// doesn't work with `strip` version as the protocol might be something else
// e.g. you might end up with `https:file:///...`
'https:' + stripStart(url.href, 'http:')

Using the name replace* along with allowing regexes weakly implies that the string-replacement syntax will be supported, which would add a moderate amount of implementation complexity — something like this.
'abcxyzabcxyz'.replace(/[abc]+/, '<$&>') // '<abc>xyz<abc>xyz'

// naive result would be `<$&>xyzabcxyz`
// but seems reasonable to expect result to be `<abc>xyzabcxyz`
replaceStart('abcxyzabcxyz', /[abc]+/, '<$&>')

Conversely, supporting callback replacements would be trivial, as you can just conditionalize the replacement based on whether the index lies at the start/end.
replaceStart('abcxyzabcxyz', /[abc]+/, (m) => `<${m}>`)

Also, the name replace for replace-both-ends would be confusing due to String#replace. Maybe replaceEnds or something. Requiring calling 2 functions just to strip/replace both ends is suboptimal as it requires either declaring an extra variable or repeating code.

How about just replaceStart() and replaceEnd() just supporting strings without regexp support?
I feel if one wants to do a complex strip/replacement with a regexp, prepending ^ or appending $ and using the built in replace() function is more suited.
I also don't think we should provide a replaceBoth() function. The name is kinda weird and it is just a small convenience function which can be done by the user with one line.
If there are requests for more functionality by multiple users, we still can add to that.


[dagster-pipes-rust]: make pipes version a constant

Summary & Motivation
This moves the hardcoded pipes protocol version into a constant
How I Tested These Changes
cargo test
Changelog
Ensure that an entry has been created in CHANGELOG.md outlining additions, deletions, and/or modifications.
See: keepachangelog.com

Thanks for making this changes, @marijncv. Perhaps we can also use PipesMessage::new in src/lib.rs to centralize DAGSTER_PIPES_VERSION to only one place?

+1 to this suggestion.
Just FYI, I pushed a commit (rebase on main) to this PR to trigger the CI.

Thanks for making the changes, @marijncv. Perhaps we can also use PipesMessage::new in src/lib.rs to centralize DAGSTER_PIPES_VERSION to only one place?

Yes, great suggestion!


SILOptimzer: add a workaround to repair the Windows builds

The current implementation of InstModCallbacks seems to fail to invoke the eraseFromParent on the instruction when performing GlobalOpt.  As a result, we end up with undefined references that are preserved.  This workaround ensures that the instruction is removed.  This should allow us to finally refresh the Windows toolchain.

CC: @jckarter @gottesmm

@swift-ci please test

@swift-ci please test


Release with winit 0.21/0.20

Is it possible to get a release soon with winit 0.20/0.21; the current version uses alpha, which can be upgraded to 0.20 by cargo, which has a breaking change. I think only change required is some functions requiring LogicalPosition?

Yeah, I was waiting for a new winit 0.21-compatible Glium release, which finally happened yesterday :smile:
I'll do the necessary upgrades and a new release later this week.

Awesome, thanks much! :)

As far as I can tell, none of the breaking changes impacted imgui-winit-support. I PR'ed a cargo.toml change to allow building against 0.21 here: https://github.com/Gekkio/imgui-rs/pull/300

0.3.0 is now out :tada:


fix priority problem

attempt to fix the priority problem (lower priority taking over the slots) - need to be tested

Looking at the code again. Actually this might not be the problem,  this patch won't change any functional behavior. I think problem might be in JobSubmitter code. (I can see if there are too many jobs created and high priority job is created after lower priority job is created, high priority jobs might not get to submitted first)

Test this please

test this please

@amaltaro, Alan, please review.  We need to have better solution for JobSubmitter cache but. I am not sure what can we do about this.

As a general comment, refreshing the job submitter cache all the time is bad (and makes caching useless for this component :D). In cases the agent has >10k (or much more like 50k) jobs queued, this can take from several minutes to an hour or two.
Cache should be updated only when really needed (something in the cached jobs needs to be updated - sitewhitelist, priority, etc)

Is refreshing the cache really needed or was this only done here because we don't understand how low priority jobs can jump the queue on high priority jobs ?

I don't know where this (not refreshing cache) is actually the problem or not.
One case I can think of which could affect is the same case that Tier0 problem we had a couple of days ago (Express jobs are not submitted)
Here is the case.

Jobs are created much more (30K) with lower priority, than JobSubmitter Cache threshold  (10K),
When JobSubmitter cache is refreshed cache is filled with all 30K jobs (threshold means cache refresh threshold but there is no limit on cache size, it will take all created jobs in wmbs)
Higher priority workflow is assigned  - this will still get to WMAgent and create the new jobs,
However those jobs are not submitted until JobSubmitter cache is refreshed. (20K jobs need to be submitted before it gets refreshed).

Bottom line is JobSubmitter has its own queue (cache) so that could prevent higher priority jobs gets submitted first.
The problem is it take long time to refresh cache if there are too many jobs in created status.
I am not sure how we can solve this other than refreshing cache for each cycle. (Since we don't know whether new jobs created or not with higher priority or not)

test this please

As we discussed in yesterdays meeting, the ideal would be to control how many jobs the agents creates, to make sure the agent cache won't grow above a specific number.
In addition to that, we could have another polling cycle in JobSubmitter that would refresh the cache every hour, this should be frequent enough to make everyone's happy.

Hi Alan, yes I agree. I will update the patch. I am just sending jenkins test message since it seems not working. (Merged build finished. No test results found.)

Test this please

test this please

@ticoann I don't think limiting the # of jobs created by the JobCreator will be very simple.
And, since I'd like to have this patch in in the next WMAgent release candidate (tomorrow maybe), how about
a) never refresh the cache if above 50k cached jobs
b) either b1) refresh the cache every hour OR b2) refresh the cache every 20 cycles (~45min)
No hurry though, we can get it done by tomorrow :-P

@amaltaro , the problem with these proposals is that in the Tier0 we need to guarantee that high priority jobs are submitted first, no matter how large the backlog in low priority jobs is. So any arbitrary cutoff is kind of unacceptable. Delaying things somewhat (not too long) is ok, stopping to accept new jobs and evaluating their priority compared to older jobs is not.

Ok, then let me rephrase one of them
a) never refresh the cache if above 50k (default setting) cached jobs, however keep it configurable such that Tier0 can set it to 0 (so, always refresh it).

Why is this a problem really ? Once you are over a certain threshold, switch to evaluate the priority of he highest priority lets say 1k jobs in the cache. If your new jobs have higher or same priority add them to the cache (as the assumption is they should run soon) and if not don't add them.

Ok, this doesn't take into account that jobs have different possible sites, but you can't have everything. At least you guarantee this way that high priority jobs go out first and aren't superseeded by lower priority jobs just because your agent is overloaded.

Number can be tweaked of course, but the principle should work. Just needs two things:
A fast way to count jobs by priority we have in the cache.
Selectively being able to just add jobs with the highest priorities to the cache.
Should be doable, shouldn't it ?

How about the following.
We set the threshold for delay of refresh.

set threshold 30K.
If cash is more than a threshold updated cache every 20 polling cycle until size is smaller than threshold.

Or we can do a little bit more fine control by increase time proportionally  (10K - 20K 10 polling cycle, 20K - 30K, 20 polling cycle, etc)

Seangchan, IMO it makes no real difference whether it's 10 or 20 polling cycle. So I suggest we keep it as simple as possible and just use a X (30k sounds Ok) threshold and update it every Y polling cycles (20 sounds Ok).

A fast way to count jobs by priority we have in the cache.

This is kind of a new feature. I'd rather have it in another PR to get this one done and merged asap.

Selectively being able to just add jobs with the highest priorities to the cache.

Only highest priority jobs get created, so in principle there is no effective way to do this. If there is, I'd rather keep it in another PR as well.

A fast way to count jobs by priority we have in the cache.
It seems filling up the cache take more time than sorting the priority if the cache size if big. It is loading pickled file to get some information (location, etc)

Selectively being able to just add jobs with the highest priorities to the cache.
This is tricky. We have to consider not just priority but also sites jobs can run with we get it from pickle file,  so it won't be just done by db call.

Should be doable, shouldn't it ?
I think it is but may not be simple.

If you set some sort of threshold and don't add jobs into the cache, you by design don't consider certain jobs for running. In such a system lower priority jobs in the cache can drown out higher priority jobs that are stuck in the db and not in the cache.
Corect, if you just add high priority jobs from the db to the cache, you will consider them for running preferentially, but at the expense of possible lower priority jobs that might have been able to run at sites where the higher priority jobs can't run.
But we are discussing here what to do in an overload situation. You pick your poison and I'd rather have looked at the high priority jobs and decided they can't run because of site restrictions than not to have looked at all and just ran FIFO.
Anyways, if you think it's too much for this PR please open another issue. But any kind of hard cutoff without taking into account priorities will inevitably result in some sort of complaint from Ops at some point: Why are all these low priority jobs being submitted if we have high priority work in the system ?

Either I misunderstood this fix, or you got lost on the discussion.
I'm not saying we are not going to update the cache. I'm not saying that low priority jobs should run in front of the high prio either.
The original PR would update the cache ALL the time, such that high prio jobs always run in front of the low prio.
I'm just suggesting to not update it ALL the time, but instead define a polling cycle for these updates in case the cache is too big.
Having said that, the worst case scenario is that low prio jobs will run in front of the high prio within a cycle (less than an hour). I was hoping it would not be that bad to Tier0... (?) Certainly is not for central production.

I understand. Was just some brain storming to see if there is a smarter alternative to "do it less often". Something like "only do the parts that are most important".
If we get a configurable timeout to reduce the impact of large job counts without affecting submission too badly (Tier0 we can probably live with 30 min cycle, 1h is stretching it) that would be fine for now.
Would still like to see an issue where we could maybe have some smarter way in the future...

@amaltaro, Alan, updated the patch and create the new issue #6864
Updated patch is not test I will run the new test.
I keep the 2 commit - one for WQ side change and the other for JobSubmitter change.
I will create the new tag tonight. I want to include one more patch for the new agent test.
Please review.
Thanks,

Besides the last comment, patch looks good.
FOI., mysql agents seems to take only (?I'm surprised...) ~10secs to refresh 5k jobs. Oracle agents seem to take a second or two only (astonished, again...)

I am not sure what would be the optimal number even with 30K tier0 didn't take long (Oracle) < 1min.

Relax, 30k is a good number in general ;)

test this please


CI Test

@dotnet-bot test this please

Looks like this caught a typo in netci.groovy; I've opened https://github.com/dotnet/dotnet-docker-nightly/pull/37 to fix it.


Overlay not working

Hi,
Any idea why the app might open in a separate form and not as an overlay?
It seems to be able to scrape the position correctly, but somehow it doesn't show as an overlay once I tab in.
Also no options menu present.

Tried with 3 monitor setup & single monitor setup, same results.
Are there maybe any prerequisites I might be missing?
Thanks in advance.

Then it shows it in-game, but still in the same Form.


remove SEP suite validation in 1.x actions

Description
Removes the SEP validation test suite from our CI pipeline.
Context
Maintaining working preview deployments and using them for our SEP validation test suite is too high of a maintenance burden for the usage 1.x has in the ecosystem. We can run the same tests locally before releasing.

Something went wrong with PR preview build please check

Something went wrong with PR preview build please check

Something went wrong with PR preview build please check


Check validity of arguments in weather observation functions

obs_weather_X functions take mostly the same arguments, which are passed on to the WFS. Make share helper functions that check the validity of arguments.

Addressed in PR #23 and in commits 7103017 and 0d75e1a.


Reverse segments inside a channel

Describe the problem
I need to mirror reversely wired LED strips and I'm struggling with accomplishing this with my limited programming knowledge. I don't know if it is even possible or if I need to rip out the led strips.
The case has limited room for wires so it would be nice if I can keep the current wiring and solve the issue on software level.
How do I reverse segments of the top strip and the inside strip, but let the outside strip run normally?
Screenshots

System (please complete the following information):

OS: Windows 10
Board: Sparkfun Pro Micro
Device: Lighting Node PRO
Version of IDE:Arduino IDE 1.8.13
Version of CLP: 0.15.0
Version of CLP Boards:0.2.0
Sketch: see below

Code changes
/*
   Copyright 2020 Leon Kiefer

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

	   http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
*/
#include <CorsairLightingProtocol.h>
#include <FastLED.h>

#define NUMBER_OF_LEDS_PER_FAN 16

// actually used
#define DATA_PIN_FAN_1 7
// TOP strip
#define DATA_PIN_STRIP_1 8
// FRONT OUTSIDE strip
#define DATA_PIN_STRIP_2 9
// FRONT IN strip
#define DATA_PIN_STRIP_3 10

CRGB ledsChannel1[21];
CRGB ledsChannel2[50];

const char mySerialNumber[] PROGMEM = "xxxxxxxx";

CorsairLightingFirmwareStorageEEPROM firmwareStorage;
CorsairLightingFirmware firmware(CORSAIR_LIGHTING_NODE_PRO, &firmwareStorage);
FastLEDControllerStorageEEPROM storage;
FastLEDController ledController(&storage);
CorsairLightingProtocolController cLP(&ledController, &firmware);
CorsairLightingProtocolHID cHID(&cLP);

void setup() {
  CLP::disableBuildInLEDs();
  //                          FAN_PIN           CRGB array            offset             number of leds per fan
  FastLED.addLeds<WS2812B, DATA_PIN_FAN_1, GRB>(ledsChannel1, NUMBER_OF_LEDS_PER_FAN * 0, NUMBER_OF_LEDS_PER_FAN);

	// strip + case panel + external
	//                          FAN_PIN           CRGB array            offset             number of leds per fan
  // INVERT Green/red for SignalRGB
	FastLED.addLeds<WS2812B, DATA_PIN_STRIP_1, RGB>(ledsChannel2, 0, 30);
  FastLED.addLeds<WS2812B, DATA_PIN_STRIP_2, GRB>(ledsChannel2, 30, 50);
  FastLED.addLeds<WS2812B, DATA_PIN_STRIP_3, GRB>(ledsChannel2, 30, 50);

ledController.addLEDs(0, ledsChannel1, 21);
ledController.addLEDs(1, ledsChannel2, 50);
  ledController.onUpdateHook(1, []() {
    CLP::reverse(&ledController, 1);
  });

}

void loop() {
	cHID.update();

	if (ledController.updateLEDs()) {
		FastLED.show();
	}
}

You can create a new LED buffer CRGB ledsChannel2Reverese[20]; in which you copy the led values in reverse order and then hook this up to FastLED.addLeds<WS2812B, DATA_PIN_STRIP_3, GRB>(ledsChannel2Reverse, 0, 20); and before FastLed.show(); insert this code to copy the values
 for (uint8_t i=0; i<20; i++) {
    CRGB ledsChannel2Reverese[20 - 1 - i] = ledsChannel2[30 + i];
  }

Genius! It worked. I first was struggling with the placement of the for loop. I had to put it just before the FastLed.show(); function.
Will post a picture of the result.
Here's my (Leon's) working code in case somebody needs it (I also use the scale function to adapt my Chinese 18-led FAN to a Corsair HD fan with 12 leds):
`/*
Copyright 2020 Leon Kiefer
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#include <CorsairLightingProtocol.h>
#include <FastLED.h>
// spare
//#define DATA_PIN_FAN_3 7
//#define DATA_PIN_FAN_4 8
//#define DATA_PIN_FAN_5 9
//#define DATA_PIN_FAN_2 9
//#define DATA_PIN_STRIP_2 15
// actually used
#define DATA_PIN_FAN_1 7
#define DATA_PIN_STRIP_1 8
#define DATA_PIN_STRIP_2 9
#define DATA_PIN_STRIP_3 10
CRGB ledsChannel1[18];
CRGB ledsChannel2[50];
CRGB ledsChannel2Reverse[20];
const char mySerialNumber[] PROGMEM = "2024B0BB1002";
CorsairLightingFirmwareStorageEEPROM firmwareStorage;
CorsairLightingFirmware firmware(CORSAIR_LIGHTING_NODE_PRO, &firmwareStorage);
FastLEDControllerStorageEEPROM storage;
FastLEDController ledController(&storage);
CorsairLightingProtocolController cLP(&ledController, &firmware);
CorsairLightingProtocolHID cHID(&cLP);
void setup() {
CLP::disableBuildInLEDs();
//                          FAN_PIN           CRGB array            offset             number of leds per fan
FastLED.addLeds<WS2812B, DATA_PIN_FAN_1, GRB>(ledsChannel1, 0, 18);
// strip + case panel + external
//                          FAN_PIN           CRGB array            offset             number of leds per fan

// INVERT Green/red for SignalRGB
// TOP
FastLED.addLeds<WS2812B, DATA_PIN_STRIP_1, GRB>(ledsChannel2, 0, 30);
// INSIDE
FastLED.addLeds<WS2812B, DATA_PIN_STRIP_3, GRB>(ledsChannel2, 30, 50);
// FRONT
FastLED.addLeds<WS2812B, DATA_PIN_STRIP_2, GRB>(ledsChannel2Reverse, 0, 20);
ledController.addLEDs(0, ledsChannel1, 12);
ledController.addLEDs(1, ledsChannel2, 50);
ledController.onUpdateHook(0,  {
CLP::scale(&ledController, 0, 18);
});
//cfr sketch for explanation of double reverse for external led strip
ledController.onUpdateHook(1,  {
CLP::reverse(&ledController, 1);
});
}
void loop() {
cHID.update();
for (uint8_t i=0; i<20; i++) {
ledsChannel2Reverse[20 - 1 - i] = ledsChannel2[30 + i];
}
if (ledController.updateLEDs()) {
FastLED.show();
}
}
`


fix uint testing bug for issue #1348

Issues associated with this PR
Your PR should present related issues you want to solve.
Solutions
You should show your solutions about the issues in your PR, including the overall solutions, details and the changes. At this time, Chinese is allowed to describe these.
UT result
Unit Test is needed if the code is changed, your unit test should cover boundary cases, corner cases, and some exceptional cases. And you need to show the UT result.
Benchmark
If your code involves the processing of every request, you should give the Benchmark Result.
Code Style

Make sure Goimports has run
Show Golint result

=== RUN   Test_AddUpdateCallback
2020-09-10 01:29:22,660 [INFO] [sds][subscribe] init sds stream client success
2020-09-10 01:29:22,660 [INFO] get stream secrets
2020-09-10 01:29:23,660 [INFO]  add update callback
2020-09-10 01:29:23,660 [ERROR] streamn receive error: rpc error: code = Canceled desc = context canceled
2020-09-10 01:29:23,660 [INFO] [xds] [sds subscriber] get resp timeout: rpc error: code = Unavailable desc = transport is closing, retry after 1s
2020-09-10 01:29:24,660 [INFO] [xds] [sds subscriber] stream client closed
2020-09-10 01:29:24,661 [INFO] [xds] [sds subscriber] stream client reconnected
2020-09-10 01:29:24,661 [INFO] get stream secrets
2020-09-10 01:29:34,660 [ERROR] [xds] [sds subscriber] send request loop closed
--- FAIL: Test_AddUpdateCallback (12.00s)
    sdsclient_test.go:88: callback reponse timeout

This error occurs every time a PR is submitted.
Sorry, I can't fix this error because of my limited ability.

=== RUN   Test_AddUpdateCallback
2020-09-10 01:29:22,660 [INFO] [sds][subscribe] init sds stream client success
2020-09-10 01:29:22,660 [INFO] get stream secrets
2020-09-10 01:29:23,660 [INFO]  add update callback
2020-09-10 01:29:23,660 [ERROR] streamn receive error: rpc error: code = Canceled desc = context canceled
2020-09-10 01:29:23,660 [INFO] [xds] [sds subscriber] get resp timeout: rpc error: code = Unavailable desc = transport is closing, retry after 1s
2020-09-10 01:29:24,660 [INFO] [xds] [sds subscriber] stream client closed
2020-09-10 01:29:24,661 [INFO] [xds] [sds subscriber] stream client reconnected
2020-09-10 01:29:24,661 [INFO] get stream secrets
2020-09-10 01:29:34,660 [ERROR] [xds] [sds subscriber] send request loop closed
--- FAIL: Test_AddUpdateCallback (12.00s)
    sdsclient_test.go:88: callback reponse timeout

This error occurs every time a PR is submitted.
Sorry, I can't fix this error because of my limited ability.

interesing, I want to open other issue for discussing this.


Fixed for v0.4.5 with a raw events API.


Proxy Support

What is the correct method for specifying a proxy when using this cookbook to attach and ebs volume? http_proxy environment variable doesn't seem to be working, nor does setting it in the chef config file.
I don't think that the version of ruby that is embedded with chef supports those methods anyway.
# grep -i http_proxy /opt/chef/embedded/lib/ruby/1.9.1/net/http.rb
        # Note that net/http does not use the HTTP_PROXY environment variable.
        # If you want to use a proxy, you must set it explicitly.

It appears that using chef 12 uses newer Ruby that supports the http_proxy environment variable


Pass offset also for rank-0 memref

As pointed out by @MaheshRavishankar , the existing code had a bug: the caller needs to add the offset to the base buffer to get the buffer effective address in all cases, including the case of rank 0.

Folded into #13053


[Macos] build failure

Host Environment

OS:Macos

Steps to reproduce the behavior:
./bootstrap-vcpkg.sh
Failure logs
FAILED: CMakeFiles/vcpkglib.dir/src/vcpkg/base/cofffilereader.cpp.o
/usr/local/bin/g++-9  -DVCPKG_DISABLE_METRICS=0 -DVCPKG_USE_STD_FILESYSTEM=1 -I../include -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14   -std=c++17 -MD -MT CMakeFiles/vcpkglib.dir/src/vcpkg/base/cofffilereader.cpp.o -MF CMakeFiles/vcpkglib.dir/src/vcpkg/base/cofffilereader.cpp.o.d -o CMakeFiles/vcpkglib.dir/src/vcpkg/base/cofffilereader.cpp.o -c ../src/vcpkg/base/cofffilereader.cpp
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/algorithm:71,
                 from ../include/pch.h:22,
                 from ../src/vcpkg/base/cofffilereader.cpp:1:
/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
                 from ../include/pch.h:19,
                 from ../src/vcpkg/base/cofffilereader.cpp:1:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
   26 | char    *ctermid(char *);
      |          ^~~~~~~
[2/75] Building CXX object CMakeFiles/vcpkglib.dir/src/vcpkg/base/checks.cpp.o
FAILED: CMakeFiles/vcpkglib.dir/src/vcpkg/base/checks.cpp.o
/usr/local/bin/g++-9  -DVCPKG_DISABLE_METRICS=0 -DVCPKG_USE_STD_FILESYSTEM=1 -I../include -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14   -std=c++17 -MD -MT CMakeFiles/vcpkglib.dir/src/vcpkg/base/checks.cpp.o -MF CMakeFiles/vcpkglib.dir/src/vcpkg/base/checks.cpp.o.d -o CMakeFiles/vcpkglib.dir/src/vcpkg/base/checks.cpp.o -c ../src/vcpkg/base/checks.cpp
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/algorithm:71,
                 from ../include/pch.h:22,
                 from ../src/vcpkg/base/checks.cpp:1:
/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
                 from ../include/pch.h:19,
                 from ../src/vcpkg/base/checks.cpp:1:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
   26 | char    *ctermid(char *);
      |          ^~~~~~~
[3/75] Building CXX object CMakeFiles/vcpkglib.dir/src/vcpkg/base/downloads.cpp.o
FAILED: CMakeFiles/vcpkglib.dir/src/vcpkg/base/downloads.cpp.o
/usr/local/bin/g++-9  -DVCPKG_DISABLE_METRICS=0 -DVCPKG_USE_STD_FILESYSTEM=1 -I../include -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14   -std=c++17 -MD -MT CMakeFiles/vcpkglib.dir/src/vcpkg/base/downloads.cpp.o -MF CMakeFiles/vcpkglib.dir/src/vcpkg/base/downloads.cpp.o.d -o CMakeFiles/vcpkglib.dir/src/vcpkg/base/downloads.cpp.o -c ../src/vcpkg/base/downloads.cpp
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/algorithm:71,
                 from ../include/pch.h:22,
                 from ../src/vcpkg/base/downloads.cpp:1:
/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
                 from ../include/pch.h:19,
                 from ../src/vcpkg/base/downloads.cpp:1:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
   26 | char    *ctermid(char *);
      |          ^~~~~~~
[4/75] Building CXX object CMakeFiles/vcpkglib.dir/src/vcpkg/base/chrono.cpp.o
FAILED: CMakeFiles/vcpkglib.dir/src/vcpkg/base/chrono.cpp.o
/usr/local/bin/g++-9  -DVCPKG_DISABLE_METRICS=0 -DVCPKG_USE_STD_FILESYSTEM=1 -I../include -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14   -std=c++17 -MD -MT CMakeFiles/vcpkglib.dir/src/vcpkg/base/chrono.cpp.o -MF CMakeFiles/vcpkglib.dir/src/vcpkg/base/chrono.cpp.o.d -o CMakeFiles/vcpkglib.dir/src/vcpkg/base/chrono.cpp.o -c ../src/vcpkg/base/chrono.cpp
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/algorithm:71,
                 from ../include/pch.h:22,
                 from ../src/vcpkg/base/chrono.cpp:1:
/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
                 from ../include/pch.h:19,
                 from ../src/vcpkg/base/chrono.cpp:1:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
   26 | char    *ctermid(char *);
      |          ^~~~~~~
[5/75] Building CXX object CMakeFiles/vcpkg.dir/src/vcpkg.cpp.o
FAILED: CMakeFiles/vcpkg.dir/src/vcpkg.cpp.o
/usr/local/bin/g++-9  -DVCPKG_DISABLE_METRICS=0 -DVCPKG_USE_STD_FILESYSTEM=1 -I../include -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14   -std=c++17 -MD -MT CMakeFiles/vcpkg.dir/src/vcpkg.cpp.o -MF CMakeFiles/vcpkg.dir/src/vcpkg.cpp.o.d -o CMakeFiles/vcpkg.dir/src/vcpkg.cpp.o -c ../src/vcpkg.cpp
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from ../include/vcpkg/base/cstringview.h:4,
                 from ../include/vcpkg/base/chrono.h:3,
                 from ../src/vcpkg.cpp:23:
/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
                 from ../src/vcpkg.cpp:20:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
   26 | char    *ctermid(char *);
      |          ^~~~~~~
[6/75] Building CXX object CMakeFiles/vcpkglib.dir/src/vcpkg/archives.cpp.o
FAILED: CMakeFiles/vcpkglib.dir/src/vcpkg/archives.cpp.o
/usr/local/bin/g++-9  -DVCPKG_DISABLE_METRICS=0 -DVCPKG_USE_STD_FILESYSTEM=1 -I../include -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.14   -std=c++17 -MD -MT CMakeFiles/vcpkglib.dir/src/vcpkg/archives.cpp.o -MF CMakeFiles/vcpkglib.dir/src/vcpkg/archives.cpp.o.d -o CMakeFiles/vcpkglib.dir/src/vcpkg/archives.cpp.o -c ../src/vcpkg/archives.cpp
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/cwchar:44,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/string:40,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/stdexcept:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/array:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/tuple:39,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/functional:54,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/9.3.0_1/include/c++/9.3.0/algorithm:71,
                 from ../include/pch.h:22,
                 from ../src/vcpkg/archives.cpp:1:
/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.3.0/include-fixed/stdio.h:222:7: error: conflicting declaration of 'char* ctermid(char*)' with 'C' linkage
  222 | char *ctermid(char *);
      |       ^~~~~~~
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
                 from ../include/pch.h:19,
                 from ../src/vcpkg/archives.cpp:1:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous declaration with 'C++' linkage
   26 | char    *ctermid(char *);
      |          ^~~~~~~
ninja: build stopped: subcommand failed.

Hi @selimanac, thanks for reporting this issue!
Please provide your OS version and clang version.
Thanks.

Hi @JackBoosY

Please provide your OS version and clang version.
MacOS 10.14.6 (18G4032)
Clang: Apple clang version 11.0.0 (clang-1<IP_ADDRESS>)
Also I have  gcc/g++ version  9.3.0_1. Looks like vcpkg uses this one. Is there a flag for forcing vcpkg build to use clang?

Thank you 🙏

@strega-nil Could you please take a look?
Thanks.

Oh god. Apparently macOS doesn't guard their implementation of unistd.h with extern "C". That's awful...

Apparently, apple doesn't protect their ctermid header with extern "C"... this is a problem. I'll bring it up to them and until then, we'll have to work around it.


Scatterplot legend size

Steps to reproduce
The width of the the legend for scatter plot is taking up majority of the chart space when the dashboard space is halved.
My text field is trimmed.

Please see attached notebook, publish the chart widget and add a random widget to the same dashboard.
Reddit.zip
Environment
atoti: <IP_ADDRESS>00731141215
Operating System: win32

Hi, I didn't look at your notebook yet but could it be a resize issue? What happens if you drag the bar between the two widgets? Does the Plotly chart rerenders with the expected size?

It looks like the width is taking up so much space because one of the labels in it is very long. If you scroll down in the legend you can see there's a label with a long twitter url which is causing the legend to take up so much space


Unexpected behaviour of option width (applies also on attribute)

Setting width to 3 causes that grid items takes only part of a grid root element and positioning items partialy acts like it is a full width.
Lates take basic example:
<!DOCTYPE html>

	<title>Test gridstack</title>
	<link rel="stylesheet" href="gridstack.css" />

A

B

Start drag item
drag it to the x:2 y:0 position
as you can see drop place holder is on x:1 y:0 position instead
to drop it into x:2 y:0 you need to drag proportionally, related to root element

Hope you understand, today I have terrible english :D

Ok, I have found in docs the solution ;) https://github.com/troolee/gridstack.js#change-grid-width


Add InceptionV4 to applications

This should add InceptionV4 to applications, this is not my original work please see this
I have not written tests or docs as I'm in high school and being rushed.
Review Away :)

I don't have time to look why the build failed. Can someone do that? If not I will do that sometime between now and 4:00

I think you should write a few simple unit tests and add a description to keras/docs/templates/applications.md

@bdwyer2 Can you look at my tests and see if there are any problems? I'm in school and can't make changes when I please. I would rather know if there is a problem and if there is, where it is so I can fix it.
Thanks :)

I think the test are failing because of the undefined variables I mentioned above

Tests are still going on?!?!? it has been two hours xD

I do not understand what the errors mean in the check. anyone want to help?


First draft of landing page and MAUI intro

First attempt at creating the shared landing page plus a MAUI Community Toolkit introduction

Docs Build status updates of commit 367e46b:
:warning: Validation status: warnings

File
Status
Preview URL
Details

communitytoolkit/index.md
:warning:Warning
View
Details

communitytoolkit/maui/get-started.md
:warning:Warning
View
Details

communitytoolkit/maui/index.md
:warning:Warning
View
Details

communitytoolkit/TOC.yml
:white_check_mark:Succeeded
View

communitytoolkit/maui/TOC.yml
:white_check_mark:Succeeded
View

communitytoolkit/index.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 15, Column 6: [Warning: hard-coded-locale - See documentation] Link 'https://docs.microsoft.com/en-gb/windows/communitytoolkit/' contains locale code 'en-gb'. For localizability, remove 'en-gb' from links to most Microsoft sites.
Line 17, Column 6: [Warning: hard-coded-locale - See documentation] Link 'https://docs.microsoft.com/en-gb/windows/communitytoolkit/' contains locale code 'en-gb'. For localizability, remove 'en-gb' from links to most Microsoft sites.
Line 15, Column 6: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/en-gb/windows/communitytoolkit/' will be broken in isolated environments. Replace with a relative link.
Line 17, Column 6: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/en-gb/windows/communitytoolkit/' will be broken in isolated environments. Replace with a relative link.

communitytoolkit/maui/get-started.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.

communitytoolkit/maui/index.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 11, Column 98: [Warning: hard-coded-locale - See documentation] Link 'https://docs.microsoft.com/en-us/dotnet/maui/' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 11, Column 305: [Warning: hard-coded-locale - See documentation] Link 'https://docs.microsoft.com/en-us/dotnet/maui/' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 13, Column 88: [Warning: hard-coded-locale - See documentation] Link 'https://docs.microsoft.com/en-us/dotnet/maui/' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 23, Column 131: [Warning: hard-coded-locale - See documentation] Link 'https://docs.microsoft.com/en-us/dotnet/maui/' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 11, Column 98: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/en-us/dotnet/maui/' will be broken in isolated environments. Replace with a relative link.
Line 11, Column 305: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/en-us/dotnet/maui/' will be broken in isolated environments. Replace with a relative link.
Line 13, Column 88: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/en-us/dotnet/maui/' will be broken in isolated environments. Replace with a relative link.
Line 23, Column 131: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/en-us/dotnet/maui/' will be broken in isolated environments. Replace with a relative link.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@brminnick some issues that were raised against these docs is that we don't include an ms.prod or ms.service tag in the header. These docs aren't for a specific Microsoft product or service so I assume we want to get this rule turned off?

@brminnick some issues that were raised against these docs is that we don't include an ms.prod or ms.service tag in the header. These docs aren't for a specific Microsoft product or service so I assume we want to get this rule turned off?

Nope. We need to insert the correct ms.prod and ms.technology values. They enable us to easily filter docs telemetry. Leave that with me.

@brminnick some issues that were raised against these docs is that we don't include an ms.prod or ms.service tag in the header. These docs aren't for a specific Microsoft product or service so I assume we want to get this rule turned off?

Nope. We need to insert the correct ms.prod and ms.technology values. They enable us to easily filter docs telemetry. Leave that with me.

@davidbritch thank you. I assume you aware but just to confirm the initial index.md page applies to multiple products/technologies:

.NET
Windows -> UWP
MAUI

Docs Build status updates of commit 2aef1af:
:warning: Validation status: warnings

File
Status
Preview URL
Details

communitytoolkit/index.md
:warning:Warning
View
Details

communitytoolkit/maui/get-started.md
:warning:Warning
View
Details

communitytoolkit/maui/index.md
:warning:Warning
View
Details

communitytoolkit/TOC.yml
:white_check_mark:Succeeded
View

communitytoolkit/maui/TOC.yml
:white_check_mark:Succeeded
View

communitytoolkit/index.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.

communitytoolkit/maui/get-started.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.

communitytoolkit/maui/index.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@brminnick some issues that were raised against these docs is that we don't include an ms.prod or ms.service tag in the header. These docs aren't for a specific Microsoft product or service so I assume we want to get this rule turned off?

Nope. We need to insert the correct ms.prod and ms.technology values. They enable us to easily filter docs telemetry. Leave that with me.

Update: I know what the correct ms.prod value is, but I also need to get an ms.technology value created. It'll be next week before that comes through.

@brminnick some issues that were raised against these docs is that we don't include an ms.prod or ms.service tag in the header. These docs aren't for a specific Microsoft product or service so I assume we want to get this rule turned off?

Nope. We need to insert the correct ms.prod and ms.technology values. They enable us to easily filter docs telemetry. Leave that with me.

Update: I know what the correct ms.prod value is, but I also need to get an ms.technology value created. It'll be next week before that comes through.

That's great thanks David! Have a great weekend

Docs Build status updates of commit 7c84eda:
:warning: Validation status: warnings

File
Status
Preview URL
Details

communitytoolkit/index.md
:warning:Warning
View
Details

communitytoolkit/maui/get-started.md
:warning:Warning
View
Details

communitytoolkit/maui/index.md
:warning:Warning
View
Details

communitytoolkit/TOC.yml
:white_check_mark:Succeeded
View

communitytoolkit/maui/TOC.yml
:white_check_mark:Succeeded
View

communitytoolkit/maui/images/get-started/manage-nuget.png
:white_check_mark:Succeeded
View

communitytoolkit/index.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.

communitytoolkit/maui/get-started.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.

communitytoolkit/maui/index.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

I think we want to use the yml format for the index to get the nice boxes for each project for the main starting point links, like the C# page, eh? https://github.com/dotnet/docs/blob/main/docs/csharp/index.yml

Unless we also want to experiment and see what happens if we try the hub page type: https://github.com/dotnet/docs/blob/main/docs/index.yml#L11
In either case, think it'd be good to have our mission statement at the top in the intro:

The home for .NET based Community Toolkits which are partnering the community with engineers, Microsoft MVPs, and the teams working on those technologies.

We should also call out that they're part of the .NET Foundation.

YML format is definitely better for the index, but it should be a landing page rather than a hub page. Hub pages are for collections of related products/services. So .NET is the hub page. .NET Community Toolkit should be landing page (like https://github.com/dotnet/docs-maui/blob/main/docs/index.yml).

@michael-hawker thanks for the comments. Sorry I meant to include you in the PR review but didn't sort that yet. I'm happy to go with the YAML page but unless we can convince @davidbritch and probably others to get the hub style page I will go with a landing page. It's a shame as the hub style would look great with our setup.
And I'll make sure to include the dotnet foundation part.

YML format is definitely better for the index, but it should be a landing page rather than a hub page. Hub pages are for collections of related products/services. So .NET is the hub page. .NET Community Toolkit should be landing page (like https://github.com/dotnet/docs-maui/blob/main/docs/index.yml).

Thank you for the clarification and example of what to follow

Additional note for myself:
Add a note to the top of the docs that let's the user know that the docs are a work-in-progress and also that we are migrating the Windows Toolkit docs

Hub pages are for collections of related products/services. So .NET is the hub page.

We have 3 toolkits under one repo. Are we labelling them as one or could they technically be 3 related products/services? 😄
I guess this comes in to this ms.prod requirement right?

@davidbritch is there any documentation on what can go in to one of these YAML files?

Docs Build status updates of commit 6f9013b:
:warning: Validation status: warnings

File
Status
Preview URL
Details

communitytoolkit/TOC.yml
:warning:Warning
View
Details

communitytoolkit/maui/get-started.md
:warning:Warning
View
Details

communitytoolkit/maui/index.md
:warning:Warning
View
Details

communitytoolkit/index.md
:white_check_mark:Succeeded

communitytoolkit/index.yml
:white_check_mark:Succeeded
View

communitytoolkit/maui/TOC.yml
:white_check_mark:Succeeded
View

communitytoolkit/maui/images/get-started/manage-nuget.png
:white_check_mark:Succeeded
View

communitytoolkit/TOC.yml

Line 2, Column 9: [Warning: file-not-found - See documentation] Invalid file link: 'index.md'.

communitytoolkit/maui/get-started.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.

communitytoolkit/maui/index.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@michael-hawker and @davidbritch this landing page approach actually looks great! Thanks for the links/suggestion David/Michael it is a big improvement in terms of layout!

P.S. I'll get the top item on the left to match the title of the page :)

Docs Build status updates of commit fe06432:
:warning: Validation status: warnings

File
Status
Preview URL
Details

communitytoolkit/maui/get-started.md
:warning:Warning
View
Details

communitytoolkit/maui/index.md
:warning:Warning
View
Details

communitytoolkit/TOC.yml
:white_check_mark:Succeeded
View

communitytoolkit/index.md
:white_check_mark:Succeeded

communitytoolkit/index.yml
:white_check_mark:Succeeded
View

communitytoolkit/maui/TOC.yml
:white_check_mark:Succeeded
View

communitytoolkit/maui/images/get-started/manage-nuget.png
:white_check_mark:Succeeded
View

communitytoolkit/maui/get-started.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.

communitytoolkit/maui/index.md

Line 2, Column 1: [Warning: ms-prod-or-service-missing - See documentation] One of the following attributes is required: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Hub pages are for collections of related products/services. So .NET is the hub page.

We have 3 toolkits under one repo. Are we labelling them as one or could they technically be 3 related products/services? 😄
I guess this comes in to this ms.prod requirement right?

It comes down to the URL they are published under. If you published under docs.microsoft.com/CommunityToolkit/ you can have a hub page there. If you publish under docs.microsoft.com/dotnet/... you can't have a hub page as /dotnet/ already has the hub page. Anything under /dotnet/ has to be a landing page.

Also, it should always be .NET MAUI. Never just MAUI. Then, on first use on every page it should always be .NET Multi-platform App UI (.NET MAUI).

Hub pages are for collections of related products/services. So .NET is the hub page.

We have 3 toolkits under one repo. Are we labelling them as one or could they technically be 3 related products/services? 😄
I guess this comes in to this ms.prod requirement right?

It comes down to the URL they are published under. If you published under docs.microsoft.com/CommunityToolkit/ you can have a hub page there. If you publish under docs.microsoft.com/dotnet/... you can't have a hub page as /dotnet/ already has the hub page. Anything under /dotnet/ has to be a landing page.

Thanks for the explanation, it all helps to understand the logic. Actually the landing page looks pretty good with the column based format so I think we can achieve the look we want with that.

Also, it should always be .NET MAUI. Never just MAUI. Then, on first use on every page it should always be .NET Multi-platform App UI (.NET MAUI).

OK great thanks. This looks like something we should add to the contributing guide.

Closing due to the inability to continue editing this branch. See #5 for the correct PR


Change from AGPL to Apache

@clytwynec OK? I can explain if you like.

Regarding the travis failure - filed as Issue #71

Merged the fix, so tests should pass if this is rebased onto master.


Problem in return graph query

Hi,
I'm trying to return graph in a simple query as below:
val myGraph = graph.cypher(
    s"""MATCH (n:Disease {name:"acne"})<-[r]-(m:Disease)
    |CONSTRUCT
    |MERGE ALL n, m, r
    |RETURN GRAPH""".stripMargin).graph

but I'm facing this error:
org.opencypher.v9_0.util.SyntaxException: Invalid input 'n': expected whitespace, comment, '=', node labels, MapLiteral, a parameter, a relationship pattern, ON, FROM GRAPH, CONSTRUCT, LOAD CSV, START, MATCH, UNWIND, MERGE, CREATE UNIQUE, CREATE, SET, DELETE, REMOVE, FOREACH, WITH, CALL, RETURN, UNION, ';' or end of input (line 3, column 11 (offset: 69))
	at org.opencypher.v9_0.parser.Base$$anonfun$parseOrThrow$1.apply(Base.scala:139)
	at org.opencypher.v9_0.parser.Base$$anonfun$parseOrThrow$1.apply(Base.scala:127)
	at scala.collection.immutable.List.map(List.scala:273)
	at org.opencypher.v9_0.parser.Base$class.parseOrThrow(Base.scala:127)
	at org.opencypher.v9_0.parser.CypherParser.parseOrThrow(CypherParser.scala:22)
	at org.opencypher.v9_0.parser.CypherParser.parse(CypherParser.scala:29)
	at org.opencypher.v9_0.frontend.phases.Parsing$.process(Parsing.scala:26)
	at org.opencypher.v9_0.frontend.phases.Parsing$.process(Parsing.scala:22)
	at org.opencypher.v9_0.frontend.phases.Phase$$anonfun$transform$1.apply(Phase.scala:35)
	at org.opencypher.v9_0.frontend.helpers.package$$anonfun$closing$1.apply(package.scala:23)
	at org.opencypher.v9_0.frontend.helpers.package$$anonfun$closing$1.apply(package.scala:23)
	at org.opencypher.v9_0.frontend.helpers.package$.using(package.scala:31)
	at org.opencypher.v9_0.frontend.helpers.package$.closing(package.scala:23)
	at org.opencypher.v9_0.frontend.phases.Phase$class.transform(Phase.scala:34)
	at org.opencypher.v9_0.frontend.phases.Parsing$.transform(Parsing.scala:22)
	at org.opencypher.v9_0.frontend.phases.PipeLine.transform(Transformer.scala:59)
	at org.opencypher.v9_0.frontend.phases.PipeLine.transform(Transformer.scala:59)
	at org.opencypher.v9_0.frontend.phases.PipeLine.transform(Transformer.scala:59)
	at org.opencypher.v9_0.frontend.phases.PipeLine.transform(Transformer.scala:59)
	at org.opencypher.v9_0.frontend.phases.PipeLine.transform(Transformer.scala:59)
	at org.opencypher.v9_0.frontend.phases.PipeLine.transform(Transformer.scala:59)
	at org.opencypher.v9_0.frontend.phases.PipeLine.transform(Transformer.scala:59)
	at org.opencypher.v9_0.frontend.phases.PipeLine.transform(Transformer.scala:59)
	at org.opencypher.v9_0.frontend.phases.PipeLine.transform(Transformer.scala:59)
	at org.opencypher.v9_0.frontend.phases.PipeLine.transform(Transformer.scala:59)
	at org.opencypher.v9_0.frontend.phases.PipeLine.transform(Transformer.scala:59)
	at org.opencypher.okapi.ir.impl.parse.CypherParser$class.process(CypherParser.scala:59)
	at org.opencypher.okapi.ir.impl.parse.CypherParser$.process(CypherParser.scala:39)
	at org.opencypher.okapi.relational.api.graph.RelationalCypherSession$$anonfun$3.apply(RelationalCypherSession.scala:138)
	at org.opencypher.okapi.relational.api.graph.RelationalCypherSession$$anonfun$3.apply(RelationalCypherSession.scala:138)
	at org.opencypher.okapi.relational.api.graph.RelationalCypherSession.time(RelationalCypherSession.scala:106)
	at org.opencypher.okapi.relational.api.graph.RelationalCypherSession.cypherOnGraph(RelationalCypherSession.scala:138)
	at org.opencypher.okapi.relational.api.graph.RelationalCypherSession.cypherOnGraph(RelationalCypherSession.scala:63)
	at org.opencypher.okapi.api.graph.PropertyGraph$class.cypher(PropertyGraph.scala:104)
	at org.opencypher.okapi.relational.impl.graph.ScanGraph.cypher(ScanGraph.scala:43)
	at Main$.delayedEndpoint$Main$1(Main.scala:58)
	at Main$delayedInit$body.apply(Main.scala:20)
	at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
	at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
	at scala.App$$anonfun$main$1.apply(App.scala:76)
	at scala.App$$anonfun$main$1.apply(App.scala:76)
	at scala.collection.immutable.List.foreach(List.scala:381)
	at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
	at scala.App$class.main(App.scala:76)
	at Main$.main(Main.scala:20)
	at Main.main(Main.scala)

I couldn't find a documentation to check correctness of my query.
What part of my query is wrong?
Thanks
CAPS version: 0.2.0
Spark Version: 2.2
Scala Version: 2.11.8

Hej Hamed,
you seem to be using a slightly wrong syntax. CAPS currently does not use the MERGE keyword to express graph construction.
To achieve what you want you could run the following query
val myGraph = graph.cypher(
    s"""MATCH (n:Disease {name:"acne"})<-[r]-(m:Disease)
    |CONSTRUCT
    |  CREATE (m)-[COPY OF r]->(n)
    |RETURN GRAPH""".stripMargin).graph

The CREATE keyword takes a pattern. Every node variable used in that pattern, that is already bound, is merged into the new graph, i.e. there will be exactly one instance of that node in the resulting graph. It is currently not allowed to merge relationships (because we would have to make sure that they are merged with their respective start and end nodes). Instead you can use the COPY OF keyword to create a copy of any bound relationship (copies type and properties).
We are currently working on a more comprehensive documentation. Meanwhile you can find lots of examples describing the CAPS specific Cypher syntax and our API at the examples folder: https://github.com/opencypher/cypher-for-apache-spark/tree/master/spark-cypher-examples

Hey @DarthMax
Thanks for your great answer. That worked like a charm!
But it is too slow! my neo4j database has only 4 nodes and relationships but it's still too slow!
Is there any way to cache intermediate constructed graph? like this command:
myGraph.cache
or
myGraph.persist

and about the documentation, I've read all of the examples but of course somethings like that `COPY OF' stuff cannot be found on examples.
So sorry if I ask questions on issues and thanks again for rapid answering of your team.
Best regards

Yes so one problem you seem to be encountering here is that the Sparks planning time is quite long at times - this happens irregardless of the data size. You can use PrintRelationalPlan.set() before running any query to print the relational plans that are compiled from the Cypher query.
Yes, you can simply try to run graph.cache, this will cache all the dataframes that make up the graph.
We are working on a real documentation which will be published soon :)
Best, Max

@DarthMax,
Thanks again.
I just tried to myGraph.cache command, but it says that there is no cache method for CypherResultGraph and it is not available for PropertyGraph too and not either for CypherResult type!
Is that because of using CAPS v2.0? Should I use v1.6?
Best, Hamed

@hoptical oh I'm sorry I thought that we had introduced #cache on PropertyGraph already.
You can do it like this then:
import org.opencypher.spark.impl.CAPSConverters._
val myGraph: CypherResult#Graph = graph.cypher(
      s"""MATCH (n:Disease {name:"acne"})<-[r]-(m:Disease)
         |CONSTRUCT
         |  CREATE (m)-[COPY OF r]->(n)
         |RETURN GRAPH""".stripMargin).graph
myGraph.asCaps.cache()

@DarthMax,
I tried your recommended caching method and I cached the myGraph cypher result as you said like this:
import org.opencypher.spark.impl.CAPSConverters._
// making graph
val myGraph: CypherResult#Graph = graph.cypher(
      s"""MATCH (n:Disease {name:"acne"})<-[r]-(m:Disease)
         |CONSTRUCT
         |  CREATE (m)-[COPY OF r]->(n)
         |RETURN GRAPH""".stripMargin).graph
// caching the graph
myGraph.asCaps.cache()

// get result as a dataframe from the graph
val result = myGraph.cypher(
  s"""MATCH (n)-[r]-(m)
       |RETURN r
    """.stripMargin)
val result_frame = result.records.asDataFrame
result_frame.show

Then I measured the run-time. It took about 15s.
Then I removed the caching line .i.e myGraph.asCaps.cache(), and suprisingly it's run-time was the same as before.
This means the caching did not make any speed up!
And with 15 seconds run-time for a simple database and a simple query, cannot do any analytical procedure.
I checked up spark planning time and could not infer anything from it.
Thanks.
Best Regards

@hoptical as you are only using the graph once you will not see any speed up using cache, as the graph you are querying in your second query is only computed at that point in time.
Regarding your performance issues, in which environment are you running your program Spark local mode, on a cluster, (from within Zeppelin/ spark shell)?
As I mentioned earlier, running this job on a graph with only four nodes will cause the program to spend most of the time setting up the spark environment/ connection to the cluster and then planning the execution.

@DarthMax
I tried below code on a database with about 2000 nodes and 3000 relationships and I'm using Spark in Standalone mode with 8 cores and 6Gb memory:
// making graph
  val myGraph = graph.cypher(
    s"""MATCH (n:Disease {name:"acne"})-[r]-(m:Disease)
       |MATCH (o:Sign {name:"infection"})
       |CONSTRUCT
       |  CREATE (m)-[COPY OF r]->(o)
       |RETURN GRAPH""".stripMargin).graph

// caching the graph
  myGraph.asCaps.cache()

// get result1 as a dataframe from the graph
  val result = myGraph.cypher(
    s"""MATCH (n)-[r]-(m)
       |RETURN r
    """.stripMargin)
  val result_frame = result.records.asDataFrame
  time {result_frame.show}

// get result2 as a dataframe from the graph
  val result2 = myGraph.cypher(
    s"""MATCH (n:Sign {name:"infection"})
       |RETURN n.name
    """.stripMargin)
  val result_frame2 = result2.records.asDataFrame
  time {result_frame2.show}

// get result3 as a dataframe from the graph
  val result3 = myGraph.cypher(
    s"""MATCH (m:Disease)
       |RETURN m.name
    """.stripMargin)
  val result_frame3 = result3.records.asDataFrame
  time {result_frame3.show}

Above code uses a time function which is used to measure block run-time.
I got these run-time results:
result1: 68s
result2: 7s
result3: 7s
I run code without caching and the result was almost the same as above. I checked the job timings in Spark UI too. It says the same. Meaning that caching is not affecting second and third query after even the first query is run and the graph is created. So the caching should affect second and third result but it didn't.

@hoptical The aforementioned documentation is available here. Note that this is documentation for Neo4j Morpheus, the commercial product that Neo4j is offering around CAPS. I did notice that COPY OF is missing from it; we'll add it in soon.
I wonder, how is graph instantiated in your code above? Where does the data live on disk originally? In a Neo4j database?
Also, if you were to run time {result_frame.show} twice in a row, does it take 68 seconds for both runs?
Generally, CAPS isn't optimised for latency, meaning small data sizes are likely to underperform when compared to one's intuitive expectation, and especially when compared to a database system such as Neo4j. It would be very interesting however to see how this scales as the data size increases -- what if your graph has 200k nodes instead of 2k?

@Mats-SX
I tested above code .i.e time {result_frame.show} thrice on a row on a neo4j dataset with 200K nodes and 200K relationships. But dataset was simpler than my own in the manner of nodes and relationships properties.
After the test I got these metrics:
35s for first, 30 for second and 35 for the third one.
As I said this dataset had more simpler properties than the 2k one. That's why the overall run-time is smaller than previous one.

@Mats-SX Thanks for your answer again.
I should dedicate some time on reading the source code to find ideas for performance improvement.
If I found something, I would notice you.
Best Regards

Sounds good @hoptical. I will close this issue for now, and we can create new ones if there are additional findings.
All the best
Mats


Expose offset retention time for Consumer API

Any feedback on this change before I submit it to the upstream repo?
Prime: @jturkel
CC: @will89

I'm going to merge this into a salsify-master branch and then submit back to the upstream repo.


Implement tab completion

Under https://github.com/capitalone/cloud-custodian/pull/736#pullrequestreview-13549396, I find myself hitting custodian schema e<tab>. Would be swell to have that do the thing we all know it should do. ;-)

that would be awesome

there's some extant argparse tab completion, but might need something more custom for schema

When I've seen this before, it's been a bash thing (django has it, iirc).

sure its typically something like this https://argcomplete.readthedocs.io/en/latest/ or explicitly done, and it requires some integration into the user env, for dynamic completion the app has to do some specific integrations

Agreed - this is something I was thinking about while implementing the schema subcommand.


Add network.discv5.enabled to the IDiscv5DiscoveryInputOptions type

See
https://github.com/ChainSafe/lodestar/blob/00012384f2fefe57805e368d815c6677214baf05/packages/lodestar-cli/src/testnets/altona.ts#L25-L29

this issue is also being tracked here:
#1227

True, duplicate


Some modifications, see description

Changing to non static, added constructor on both methods for variable initialization, changing unnessessary public voids to private ones to prevent outside access, private variables.
Had to make this change to be able to run it multiple times on row. Static tree caused old inputs to stack up.

This is ready for @SKR301 review


We're transitioning our support channels from Zendesk to Chatwoot. Our primary focus is minimizing disruptions. Follow this page for updates on our transition progress.

We have enabled Chatwoot for https://cakepay.com (not https://buy.cakepay.com, nor support@cakepay.com). We are conducting additional tests before implementing Chatwoot on other platforms.

Our Telegram support bot @cakewallet_bot is now going to Chatwoot. Please be patient as we continue to test the functionality.

We have enabled Chatwoot for https://cakewallet.com (not<EMAIL_ADDRESS>nor guides.cakewallet.com).

We are transitioning servers this evening. Limited downtime is expected. If you need reliable support, please use<EMAIL_ADDRESS>which will not be a part of this transition tonight.


[Question]: You exceeded your current quota, please check your plan and billing details.

What is your question?
After reading the documentation, I am still not clear how to get ChatGPT working. I tried increasing my quota, but am still getting quota limits when doing an extract_wisdom from a yt video. Switching to Gemini works, but it doesn't give as good of a response as ChatGPT. I'm using model gpt-4o-2024-05-13

@jdjb78 , are you seeing an error message like this?
{'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.',
  'type': 'insufficient_quota',
  'param': None,
  'code': 'insufficient_quota'}}

If so, I'm getting the same error.  I'm using the free tier.  Since you are using the gpt-4o-2024-05-13 model, I take it that you have a paid account.
@jdjb78 , would you try using the gpt-4-turbo-preview model and see what happens?
My first attempt at running extract_wisdom over the transcript output by yt gave an error message that indicated that was the model it wanted to use.  I want to rule out the possibility that there is some feature or functionality supported by that model that the models you and I are using do not have.

The other issue could be the policy change where you have to pre-pay. I just had that error message and it was because I ran out of the balance that I had pre-loaded.