tests: Use assertion to enforce None-checks in tests.

This fixes a batch of mypy errors of the following format:
'Item "None" of "Optional[Something]" has no attribute "abc"
Since we have already been recklessly using these attritbutes
in the tests, adding assertions beforehand is justified presuming
that they oughtn't to be None.
This counts as a part of #18777.

There are some additional mypy errors in this category. Working on it.

Merged, thanks @PIG208!  Since I'd already read this, I figure it's easier to send the next batch in a new PR.


How do I assign a literal value?

I want to hard code a literal value. Here is a minimal example:
$fm->define('Resume')->setDefinitions([
	'salary' => 'd',
]);

The problem is I also have a global function d() and it calls the d() function instead of just using the literal value 'd'. Is there a way to assign literal string values?

Hmm, that is a bit of a problem. The issue is the string d is callable on your machine.

One way to force the string would be to do:
$fm->define('Resume')->setDefinitions([
    'salary' => function () { return 'd'; },
]);

That would work but it is a bit verbose. As a user I would expect a literal string to assign a literal string. It would be a breaking change but maybe in the future it could be changed so that if you want to call a callable that you would have to do something like like this.
$fm->define('Foo')->setDefinitions([
    'bar' => $fm->call('myCallable'),
]);

I wonder if I could refactor the generator stuff so that people could choose to disable callables. Would that work for you. In other words, only support closures rather than callables, as an option.

That would work. If callables were disabled I still like the idea of having a helper method that you could pass a string and it would return a closure that calls the callable. Like the $fm->call() in my previous example.

I'll have a think how I can make this work so it's really nice to use.


TEP-0124 implement opentelemetry and jaeger tracing

Adds opentelemetry instrumentation code to pipelinerun and taskrun reconcilers. Also made required changes in the main.go to include jaeger as tracing backend

Changes

Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[x] Has Docs included if any changes are user facing
[x] Has Tests included if any functionality added or changed
[x] Follows the commit message standard
[ ] Meets the Tekton contributor standards (including
functionality, content, code)
[ ] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
[x] Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
[ ] Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
Added support for tracing using Jaeger and OpenTelemetry. It can be enabled by adding the following environment variables to controller manifest
* `OTEL_EXPORTER_JAEGER_ENDPOINT` is the HTTP endpoint for sending spans directly to a collector.
* `OTEL_EXPORTER_JAEGER_USER` is the username to be sent as authentication to the collector endpoint. (optional)
* `OTEL_EXPORTER_JAEGER_PASSWORD` is the password to be sent as authentication to the collector endpoint. (optional)

Adds opentelemetry instrumentation code to pipelinerun and taskrun reconcilers. Also made required changes in the main.go to include jaeger as tracing backend
Changes
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[ ]  Has Docs included if any changes are user facing
[ ]  Has Tests included if any functionality added or changed
[ ]  Follows the commit message standard
[ ]  Meets the Tekton contributor standards (including
functionality, content, code)
[ ]  Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
[ ]  Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
[ ]  Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
NONE

Please make sure you follow the PR template, describe changes clearly in detail under the "Changes" part, check the checklist as appropriate, and include release notes.

Thanks a lot for the review! I have addressed the comments. I will close this PR and raise against upstream now


Training log

Hello i have trained your RFB model with your data with 320x240 input
i have a less accurate model than yours
in wider_evaluate.py
your model detects a total of 13746 faces (RFB_320 model)
while mine detects 13069
can you show me your training log file
mine is below:
log.txt

I can not find the log.txt  temporarily. I use the epoch-160 model and its validation loss is 2.8383.

Thanks for the reply
Can you tell how to add hard negatives samples in the training data

1.You can add hard negatives samples and labels to the 'Complete wideface data compression package without filtering small faces' data set I provided, then run wider_face_2_voc_add_landmark.py to generate voc format training data.
2.You need to modify the image preprocessing part to train the grayscale image.

But how to generate xml files for negative samples

If you want to reduce the false positive rate, you can try to modify the arg 'neg_pos_ratio' or  use focal loss.

OK I'ill try that
Thanks


Log helpful details when nested plan fails with bolt/pal-error

Use Case
When a function has a failure in a Bolt plan, it can be very difficult to track down where in the plan the error came from. consider the following output:
Starting: plan peadm::util::add_cert_extensions
Starting: task peadm::trusted_facts on puppetmom01.newlab.sv.cloud.wellsfargo.net
Finished: task peadm::trusted_facts with 0 failures in 0.86 sec
Starting: task peadm::trusted_facts on puppetcm01.newlab.sv.cloud.wellsfargo.net
Finished: task peadm::trusted_facts with 0 failures in 1.43 sec
Starting: plan peadm::util::insert_csr_extension_requests
Starting: task peadm::read_file on puppetcm01.newlab.sv.cloud.wellsfargo.net
Finished: task peadm::read_file with 0 failures in 1.42 sec
Finished: plan peadm::util::insert_csr_extension_requests in 1.42 sec
Finished: plan peadm::util::add_cert_extensions in 3.72 sec
Finished: plan peadm::convert in 5 min, 59 sec
{
  "kind": "bolt/pal-error",
  "msg": "(<unknown>): did not find expected key while parsing a block mapping at line 2 column 1",
  "details": {
  }
}

Where did this error come from? It's pretty unclear, especially since Bolt kind of hides information about when in the log output the error actually occurred by printing a lot of green "Finished: ..." lines after the error occured.
Describe the Solution You Would Like
When this happens, the error message should include at a minimum the Puppet plan file name and line number where the error was raised. Maybe even more details if they are available. E.g.,
{
  "kind": "bolt/pal-error",
  "msg": "(<unknown>): did not find expected key while parsing a block mapping at line 2 column 1",
  "details": {
    "function": "parseyaml",
    "file": "peadm/plans/util/insert_csr_attributes.pp",
    "line": 11
  }
}

Todo

Investigate if this is happening because we're throwing away useful information from Puppet, or if Puppet just isn't providing us the information we want or need.
This came up from the installer team using this and finding errors in plans that call plans
This issue specifically seems to happen when a plan calls a plan which calls parse_yaml with invalid yaml, so specifically providing a file and line number would be really useful.
We should try to make sure that when run_* functions error they provide info on where they were called from (updates to plan function errors basically)

This is happening because we rescue the Puppet error and throw away useful information by using the error's cause instead:
https://github.com/puppetlabs/bolt/blob/master/lib/bolt/pal.rb#L24
We can either use the Puppet error:
{
  "kind": "bolt/pal-error",
  "msg": "Evaluation Error: Error while evaluating a Function Call, 'run_command' expects between 2 and 4 arguments, got 1 (file: /Users/tom/.puppetlabs/bolt/plans/inner.pp, line: 3, column: 13)",
  "details": {
  }
}

Use the error cause and add in the discarded info:
{
  "kind": "bolt/pal-error",
  "msg": "'run_command' expects between 2 and 4 arguments, got 1",
  "details": {
    "file": "/Users/tom/.puppetlabs/bolt/plans/inner.pp",
    "line": 3,
    "column": 13
  }
}

Or some combination of the two:
{
  "kind": "bolt/pal-error",
  "msg": "Evaluation Error: Error while evaluating a Function Call, 'run_command' expects between 2 and 4 arguments, got 1 (file: /Users/tom/.puppetlabs/bolt/plans/inner.pp, line: 3, column: 13)",
  "details": {
    "file": "/Users/tom/.puppetlabs/bolt/plans/inner.pp",
    "line": 3,
    "column": 13
  }
}


git-init task could not fetch ssh link with ssh-directory setup properly

Expected Behavior
git-init task with .ssh setup properly will fetch repository
Actual Behavior
report a warning and error
{"level":"warn","ts":1659233796.5188842,"caller":"git/git.go:277","msg":"URL("ssh://git@github.com:xxxxx.git") appears to need SSH authentication but no SSH credentials have been provided"}
{"level":"error","ts":1659233801.5396273,"caller":"git/git.go:54","msg":"Error running git [fetch --recurse-submodules=yes --depth=1 origin --update-head-ok --force HEAD]: exit status 128\nssh: Could not resolve hostname github.com:xxxx: Try again\r\nfatal: Could not read from remote repository.\n\nPlease make sure you have the correct access rights\nand the repository exists.\n","stacktrace":"github.com/tektoncd/pipeline/pkg/git.run\n\tgithub.com/tektoncd/pipeline/pkg/git/git.go:54\ngithub.com/tektoncd/pipeline/pkg/git.Fetch\n\tgithub.com/tektoncd/pipeline/pkg/git/git.go:149\nmain.main\n\tgithub.com/tektoncd/pipeline/cmd/git-init/main.go:53\nruntime.main\n\truntime/proc.go:204"}
Steps to Reproduce the Problem

setup with this task https://hub.tekton.dev/tekton/task/git-clone
provided ssh-directory workspace
run it

Additional Info

Kubernetes version:
Output of kubectl version:

WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.2", GitCommit:"f66044f4361b9f1f96f0053dd46cb7dce5e990a8", GitTreeState:"clean", BuildDate:"2022-06-15T14:14:10Z", GoVersion:"go1.18.3", Compiler:"gc", Platform:"darwin/amd64"}
Kustomize Version: v4.5.4
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.6+k3s1", GitCommit:"418c3fa858b69b12b9cefbcff0526f666a6236b9", GitTreeState:"clean", BuildDate:"2022-04-28T22:16:18Z", GoVersion:"go1.17.5", Compiler:"gc", Platform:"linux/amd64"}

Tekton Pipeline version:
Output of tkn version or kubectl get pods -n tekton-pipelines -l app=tekton-pipelines-controller -o=jsonpath='{.items[0].metadata.labels.version}'

v0.37.0
.ssh folder was created in home folder, but validate in CredsDir
https://github.com/tektoncd/pipeline/blob/v0.38.1/pkg/git/git.go#L77-L88

I also have the same ploblem. /tekton/home/.ssh/* exists and valid in kubernetes container. and I tested tekton git-init container run in my desktop and wrote private/known_hosts for ssh auth, then git clone is successfully.

@lookis Did you ever find a solution to this problem ? I'm facing the same thing now.

@lookis Did you ever find a solution to this problem ? I'm facing the same thing now.

I have to replace ssh with https link and use basic authentication to fetch the code to work around

@lookis Think you've mixed URL formats with ssh://git@github.com:xxxxx.git
Should either be git@github.com:xxxxx.git or<EMAIL_ADDRESS>

@chengjoey never mind, I've give up tekton for now, thanks

Duplicate of https://github.com/tektoncd/pipeline/issues/5611


Adding Levels 3 and 4 Profile Data

Processed with pycytominer. Also adding cell counts files. Very minor modifications made to scripts updating paths according to https://github.com/broadinstitute/lincs-cell-painting/pull/32#issuecomment-627569802
🎉

cc @niranjchandrasekaran wooo!

Looks great! I didn't read the code, only looked at the structure of the profiles directory.
Minor edit: Remove row number in cell counts and save as CSV for consistency
Also, I think it will be cleaner for pycytominer to count cells by summing the Count_Cells column in the Image.csv  files for that well (see sample Image.csv file) and then report that column as Count_Cells int the <plate>_cell_count.csv file (cell count bingo!). But I don't think this is a big deal and we can leave it as is.
FYI I did GIT_LFS_SKIP_SMUDGE=1 git fetch to download only a pointer to the lfs files

Remove row number in cell counts and save as CSV for consistency

Code updated in bee9e79c0a5351f7237bb97a016c34fcae8b5603 - i will run the pipeline again (only the first step of counting cells, and stop it there) to recreate the cell count csv files and make sure that the updated paths work. This commit will come in at some point later today.

I am happy to change the name, but we've used _normalized_variable_selected.csv in the past (because of the name cytominer::variable_selection). I'm ok with either.
We don't want to clutter things too much here. It is poor practice to rely on the filename (beyond a point) to encode the process. It is definitely impractical to do in some cases (e.g. variable selection).

I agree 💯 the current approach is very readable and I am ok to keep it as is since it would take a lot of time for minimal benefit.

Also, I think it will be cleaner for pycytominer to count cells by summing the Count_Cells column in the Image.csv files for that well (see sample Image.csv file) and then report that column as Count_Cells in the _cell_count.csv file (cell count bingo!). But I don't think this is a big deal and we can leave it as is.

This is great, thank you for the note! I agree that this proposal is a more elegant solution. Let's reserve it for a future enhancement - I describe it in cytomining/pycytominer/issues/80

FYI I did GIT_LFS_SKIP_SMUDGE=1 git fetch to download only a pointer to the lfs files

👍 good to know this is a specific option. In the past, I have noticed that some users of datasets embedded as git LFS files struggle to access (i think if git LFS isn't installed, pointers will be downloaded by default). We should be explicit about download instructions. I've added a note to do this in #35

This commit will come in at some point later today.

I lied - will not come until next week. It is going to take some time to process the count files again with the changes specified in bee9e79c0a5351f7237bb97a016c34fcae8b5603 (I do agree that these changes are necessary fwiw)
@shntnu - how do you feel about merging the PR with just profiles?
The next steps after merging, as I see them are:

Add a notebook to generate consensus perturbation signatures (MODZ and median)
Update cell health submodule (broadinstitute/cell-health#125) - I am eager to finalize figure 4!
Add cell count files after rerunning processing (only cell count step, exiting after)
Update whitening procedure in pycytominer and add whitened profiles

@shntnu - how do you feel about merging the PR with just profiles?

Sounds good to me.

The next steps after merging, as I see them are:

Add a notebook to generate consensus perturbation signatures (MODZ and median)

👍

Update cell health submodule (broadinstitute/cell-health#125) - I am eager to finalize figure 4!

👍 (I did not look at the PR)

Add cell count files after rerunning processing (only cell count step, exiting after)

👍
Could you please double check that it lines up with the plan here https://github.com/broadinstitute/lincs-cell-painting/issues/4#issuecomment-608629652

Update whitening procedure in pycytominer and add whitened profiles

👍

Could you please double check that all this, especially 1 and 4, lines up with the plan here #4 (comment)?

Confirmed and reorganized thoughts into github project:
https://github.com/broadinstitute/lincs-cell-painting/projects/1

if everything looks good @shntnu can you approve the PR? I will work on consensus signatures next


How to use ibc_testkit

Hey, how should one use the ibc_testkit in tests?
I thought I should implement TestHost for my blockchain and then I could use the fixtures like
ibc_integration_test::<MyHost, TendermintHost>()

But I cannot implement it because TestHost::ClientState: Into<AnyClientState> and there is no way to extend AnyClientState

Thanks for taking interest in ibc-testkit.
Currently, our MockIbcStore works only with AnyClientState - hence this restriction. The immediate solution is to fork ibc-testkit to add a new variant to AnyClientState and AnyConsensusState.
The ideal solution is to generalize MockIbcStore<S> with MockIbcStore<S, AnyClientState, AnyConsensuState> where AnyClientState and AnyConsensusState are generics. Please don't hesitate to open a PR if that works for you.

Thanks, I'll take a look at what's needed there

The ideal solution is to generalize MockIbcStore with MockIbcStore<Storage, AnyClientState, AnyConsensuState> where AnyClientState and AnyConsensusState are generics.

I tried to implement that and I'm kind of stuck. I have some wip changes here, however I'm hitting the recursive generics specification between Host and MockIbcStore.
The way I see this is that the Store should be generic over ClientState and ConsensusState which should be specified by Host.
However Host::ClientState at some point needs to have ValidationContext and ExecutionContext specified, which are implemented by MockIbcStore.
This is not exactly valid code but quite gives an example:
    /// An object that stores all IBC related data.
    pub ibc_store: MockIbcStore<S, H::ClientState<MockIbcStore<...(recursion)>, MockIbcStore<...>>, HostConsensusState<H, S>>,

Do you maybe have any idea/tips how to approach that? Previously Host and MockIbcStore were kinda disjoint things, and I'm getting feeling that you need a dedicated Contexts per Host, I don't see a way to have both Host and Store generic at the same time...

Hey, thanks for reporting this! Makes sense. I will take a dig at this and re-evaluate our generics and associated type bounds.
Meanwhile, I can only suggest forking and modifying AnyClientState and AnyConsensusState.

actually I'm still looking into this. I've got some first success where this happily compiles.
ibc_integration_test::<TendermintHost, TendermintHost>();

I've tried many different approaches before and I'm not quite happy with current angle but it's still very wip so maybe I'll manage to make it clean

Wow ! Great :+1:
Just giving my opinion after going over your changes. I would like to not add ClientValidationContext and ClientExecutionContext in TestHost. Maybe you can add those bounds where we use TestHost explicitly. I agree, this may become too verbose. But let's try to keep things almost identical without any huge dependency changes.
Nonetheless, nice work ! :sparkles:

I would like to not add ClientValidationContext and ClientExecutionContext in TestHost

I'll see how it plays. Out of curiosity, why? is there a case where TestHost::ClientState doesn't need to implement ClientState?

is there a case where TestHost::ClientState doesn't need to implement ClientState?

Not at all. You're right. But I am trying to decouple the circular dependencies between TestHost and MockIbcStore.
Anyway, I am still looking into it. I started a branch rano/feat/generialize-mockibcstore - but it's not finished.

I had two approaches trying to remove the generics, they both fail. MockIbcStore<S, H> and MockIbcStore<S, AnyClientState, AnyConsensusState>. So far the only way that worked was with those generics but I still couldn't implement the TestHost for TendermintHost genericly, but only for specific MockIbcStore

I'll try to proceed with this generics on TestHost to see how much cleaner it could get

Actually this on it's own is enough to give compiler a head ache
impl<S, AnyClientState, AnyConsensusState> ClientExecutionContext
    for MockIbcStore<S, AnyClientState, AnyConsensusState>
where
    S: ProvableStore + Debug,
    AnyClientState: ClientStateExecution<Self> + Clone + Debug + Into<Any> + TryFrom<Any>,
    AnyConsensusState: ConsensusState + Clone + Debug + Into<Any> + TryFrom<Any>,
{
    type ClientStateMut = AnyClientState;

use ibc::clients::tendermint::client_state::ClientState;
use ibc::clients::tendermint::consensus_state::ConsensusState;
use ibc::core::client::context::ClientExecutionContext;

struct A<B: ClientExecutionContext> {
    _b: std::marker::PhantomData<B>,
}

fn get_a() -> A<MockIbcStore<MockStore, ClientState, ConsensusState>> {
    todo!()
}

    = note: required for `MockIbcStore<S, ibc::clients::tendermint::client_state::ClientState, ibc::clients::tendermint::consensus_state::ConsensusState>` to implement `ExtClientExecutionCont
ext`
    = note: required for `ibc::clients::tendermint::client_state::ClientState` to implement `ibc::core::client::context::client_state::ClientStateExecution<MockIbcStore<S, ibc::clients::tende
rmint::client_state::ClientState, ibc::clients::tendermint::consensus_state::ConsensusState>>`
note: required for `MockIbcStore<S, ibc::clients::tendermint::client_state::ClientState, ibc::clients::tendermint::consensus_state::ConsensusState>` to implement `ibc::core::client::context::
ClientExecutionContext`

I've noticed that even if we make MockIbcStore generic, it will only allow for testing with custom clients, but there will still be no way of testing custom ibc implementation with ibc-testkit. Maybe we could make it generic over both client state and context? This way, we would no longer need to make MockIbcStore itself generic and use it as a context only for currently implemented hosts, but allow defining new ones with custom context.

Hey. Appreciate that you looked into this. Since, it is getting complicated - wait for us to wrap up the fix at our side.

we make MockIbcStore generic, it will only allow for testing with custom clients, but there will still be no way of testing custom ibc implementation with ibc-testkit.

This is a good point. We did this way so that we can test the ibc-rs stack by mocking different hosts and their light client implementation. We can think about your suggestion as a separate issue later.
I am curious, since I know, you're working on IBC integration in Sovereign - what kind of custom IBC implementation you're using? If you follow our latest work, we don't have any changes to IBC-rs. And our integration tests are here: https://github.com/informalsystems/sovereign-ibc/tree/main/crates/test/sov-ibc-mocks

Maybe I wasn't exactly clear about my wording there. I would like to be able to test the ibc implementation with the storage native to the blockchain that will use it, so here is where MockIbcStore gets in the way.
I'm aware of the mocks you linked, I just thought that the purpose of ibc-testkit is to provide a set of pre-defined testcases to test custom clients and ibc applications. I got that impression because the test functions are publicly exposed.
Thanks for all the context and support

hey @zvolin I am closing your issue in favor of the tracking issue. In the future, let's discuss at the tracking issue. I listed down the list of changes that needs to be done after discussing with you :pray: If I missed anything or if you come across anything else - please let me know.


Support default values for protobuf fields

Related to #90

Hello,
Please provide unit tests for this change.

@alexmoore @javajolt @tburghart - please weigh in. Thanks.


Php 7 with laravel 5.5.40 mongo db driver issue

Any one have idea about the below issue, so please suggest me
composer update jenssegers/mongodb Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages.
Problem 1 - Conclusion: remove laravel/framework v5.5.40 - Conclusion: don't install laravel/framework v5.5.40 - jenssegers/mongodb v3.4.0 requires illuminate/database ^5.6 -> satisfiable by illuminate/database[v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6 .14, v5.6.15, v5.6.16, v5.6.17, v5.6.19, v5.6.2, v5.6.20, v5.6.3, v5.6.4, v5.6.5 , v5.6.6, v5.6.7, v5.6.8, v5.6.9]

@stardesign77 you must lock the package to this version
"jenssegers/mongodb": "^3.2",

install this version on your project :
"jenssegers/mongodb": "3.3.1"

I have to install using this command - composer require jenssegers/mongodb 3.3.1 ?

(1/1) ErrorExceptionTrying to get property 'headers' of non-object
in VerifyCsrfToken.php line 158
at HandleExceptions->handleError(8, 'Trying to get property 'headers' of non-object',

1- open composer.json file
2- add "jenssegers/mongodb": "^3.3.1" into require
3-open terminal in project directory and  composer update

(1/1) ErrorExceptionTrying to get property 'headers' of non-object
in VerifyCsrfToken.php line 158
at HandleExceptions->handleError(8, 'Trying to get property 'headers' of
non-object',
@hosseinjafari https://github.com/hosseinjafari, is it for the above?
On Thu, May 10, 2018 at 8:19 PM, Hossein jafari<EMAIL_ADDRESS>wrote:

1- open composer.json file
2- add "jenssegers/mongodb": "^3.3.1" into require
3-open terminal in project directory and composer update
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jenssegers/laravel-mongodb/issues/1514#issuecomment-388076622,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AVL6GSg4g8zbHcZ1-1eRqxZZIgXcfwQZks5txFNogaJpZM4T0kxX
.


Added PartialEq to TimerError.

Hi. TimerError can trivially be PartialEq and it's fairly crucial inside https://github.com/sirpent-team/comms that it is. This just adds that derivation.

Could you also add Eq?

@carllerche sure, done.

Thanks!


Open to other features?

Feature suggestion, feel free to close.
Would it make sense to consider this an entry point to various preview enhacements? There is reusable code for detecting interactive previews.
I'm imagining

in non interactive mode - default to invisible, or smaller indication of feature availability
in interactive mode, allow toggling between constraints explorer and other features. Maybe applying dynamic themes? or annotating some components?

These rarely get to the level of justifying a new project. So I'm curious if this will only ever be constraints explorer?

I was kinda hoping something like this could eventually find its way into Android Studio itself, since it would be nice to have this automatically available for every preview without having to add a library and modify code. Which would also probably be true for many of the things you're thinking of. Even if the @Preview annotation could decorate previews with arbitrary code like Python, then you could create a preview alias annotation that would apply stuff without having to wrap all your function bodies which would be a lot cleaner. But maybe unrealistic to hope for.
I'm a bit reluctant to make a single function a grab bag of tools since that raises more UX questions, eg how do you select between them? Solvable but I just whipped this up on a Saturday and didn't really want to invest a lot more time in it than that. Maybe worth releasing a "preview tooling helper" library, but the "trick" for detecting preview interactive mode is just waiting a frame so a library feels a bit much just for that.


Example app: Enterprise SSO + Ruby on Rails

This can be done using the package https://github.com/Sorcery/sorcery

Example app repo link: https://github.com/boxyhq/ruby-examples/tree/main/rails-enterprise-sso.


Improve the Cognito service in production, as a PDS SSO

💡 Description

[x] the invitation message should be updated so that it is not only for DUM but for the PDS Engineering node tools (including registry for examle).
[x] the invitation message should contain a link to update the password
[x] the link to update the password should forward to a valid URL (PDS Web Site, specific welcome web page ?)

⚔ Parent Epic / Related Tickets
No response

Ramesh is updating the terraform, in the DUM repository.

Created a pull request https://github.com/NASA-PDS/pds-mcp-infra/pull/10

Everything is configured in the terraform script which needs to be run twice.

Cognito is the recommended approach vs using AWS accounts for people outside JPL
Load balancer rules need to be troubleshooted
Redirection to Airflow UI isn't working; attempting fix (going to some Cognito URL) Small gap!

PR in review

PR approved and code merged


inject command in manifests, bump to 1.5.4

/cc @openshift/openshift-team-auth-maintainers

/hold
for verification


Add utility function for Bearer Token authentication

Every initialized Java client will require setting up a Bearer Token with an API Token.
This is a bunch of boilerplate that we take care of in other languages, so we should also do so for Java.

This was fixed in #9


Extremely high loss value for each epoch, not increasing in accuracy.

from keras.models import Sequential
from keras.layers.core import Dense, Activation, Masking
from keras.layers.recurrent import LSTM

#build and train model
in_dimension = 3
out_dimension = 2

model = Sequential()
model.add(Masking([[0,0,0]], input_shape=(max_sequence_length, in_dimension)))
model.add(LSTM(output_dim=out_dimension, input_dim=in_dimension, return_sequences=False))
model.add(Activation("softmax"))
model.add(Dense(output_dim=out_dimension, input_dim=in_dimension))
model.add(Activation("softmax"))
model.compile(loss="categorical_crossentropy", optimizer="rmsprop")

model.fit(padded_training_seqs, training_final_steps, nb_epoch=5, batch_size=1)

padded_training_seqs is an an array of sequences of [latitude, longitude, temperature], all padded to the same length with values of [0,0,0]. When I train this network, each epoch gives me a loss of about 63, and only decreases to about 62 after 100 epochs.
This is causing a model.predict call later in the code to give values that are completely off of the training values. For example, most of the training values in each sequence is around [40, 40, 20], but the RNN outputs values consistently around [0.4, 0.5], which causes me to think something is wrong with the masking layer.
The training X (padded_training_seqs) data looks something like this (only much larger):
[
[[43.103, 27.092, 19.078], [43.496, 26.746, 19.198], [43.487, 27.363, 19.092], [44.107, 27.779, 18.487], [44.529, 27.888, 17.768]],
[[44.538, 27.901, 17.756], [44.663, 28.073, 17.524], [44.623, 27.83, 17.401], [44.68, 28.034, 17.601], [0,0,0]],
[[47.236, 31.43, 13.905], [47.378, 31.148, 13.562], [0,0,0], [0,0,0], [0,0,0]]
]

and the training Y (training_final_steps) data looks like this:
[
[44.652, 39.649], [37.362, 54.106], [37.115, 57.66501]
]

Have you normalised the data (Zero-mean and std of 1)? I'd check by putting BatchNormalization(axis=?, input_shape=(your input shape)) at the beginning of the model.


Add indicator of which state was featured in the most recent batch.

This is intended to resolve issue #161.
Screenshot of new functionality on HTML page.

Screenshot of new functionality on .txt file:

showing agreement with most recent commit

after adding in @thomasdesr changes, the screenshot on the txt file is

merging with a LGTM from @bojanrajkovic :)


Revert "Add a flag to allow global admins to be program admins (#2928)"

I've kept the test that was missing to validate expected behavior.
Release notes:
Removing config value: ALLOW_GLOBAL_ADMINS_BE_PROGRAM_ADMINS. After consideration, this is not a use case that we need to support.

Was this something that the Seattle deployment still wanted?  If it's behind a flag, it's still optional

No, Seattle doesn't need this feature.


License requirements for mixed user scenarios.

This is related to issue 349. My customers find this sentence "These users can be made admins, create groups, and use all Yammer Enterprise features. " misleading as they assume that users who do not have Office 365 license are the same as users who have Basic (free) license. So they read this paragraph as a statement that there can be both Basic and Enterprise users in one network and Basic users do not have to have an Enterprise license tu use Enterprise features. As I understand all users of a network where there are enterprise features need to have an Enterprise license purchased, even if this is not enforced. Is this correct? If so can you please add a sentence stating that users must be licensed with Enterprise license when using a network were Enterprise features were activated?

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

ID: 701c4134-00e1-34c7-e7d0-75f521733c9a
Version Independent ID: 8233cbcd-59ee-a3e1-f3c1-07ae522bef21
Content: Yammer admin key concepts
Content Source: yammer/get-started-with-yammer/admin-key-concepts.md
Service: yammer
GitHub Login: @IrenePasternack
Microsoft Alias: v-irpast

@Larryngolog - Thank you for submitting feedback.
I will get this issue over to the O365ITPro writing team for investigation.
Thank you for reporting and making the docs better. Much appreciated.
I made a note to request the team to update this when the work is complete.

@Larryngolog Thank you for the feedback. When you say Enterprise features, Are you referring to other apps like Exchange, SharePoint online etc?

@Larryngolog Can you brief us about the enterprise features that you would like to add? Are you referring to apps like exchange online, Sharepoint online etc?

Hello, no. I'm referring to Yammer Enterprise features vs Yammer basic features as outlined here https://docs.microsoft.com/en-us/office365/servicedescriptions/yammer-service-description/yammer-service-description. It's a bit strange question as I'm quoting this article, where enterprise features are mentioned, see this quote "These users can be made admins, create groups, and use all Yammer Enterprise features.". As I mentioned in my initial submission, article is understood by customers that they can use Enterprise features without appropriate license and I think it needs clarification. I'm not asking about adding any enterprise features. Just please add clarification, that although technically it is possible to add users who do not have Office 365 license, users still need to be licensed when they are using yammer network where enteprise features are enabled.

Thank you @Larryngolog . I wasn't sure if you meant just the Yammer enterprise features. I have created a PR https://github.com/MicrosoftDocs/OfficeDocs-O365ITPro/pull/373 to make the necessary changes in the document for clarity.

Thank you.
Pozdrawiam
Paweł Wróbel

Od: Sriraman M S<EMAIL_ADDRESS>Wysłane: Friday, March 15, 2019 6:41:44 PM
Do: MicrosoftDocs/OfficeDocs-O365ITPro
DW: Pawel Wróbel; Mention
Temat: Re: [MicrosoftDocs/OfficeDocs-O365ITPro] License requirements for mixed user scenarios. (#367)
Thank you @Larryngologhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FLarryngolog&data=02|01|pwrobel%40microsoft.com|3b667eca10944ee0823b08d6a96d7de2|72f988bf86f141af91ab2d7cd011db47|1|0|636882685062774461&sdata=0U8KnE%2Foo3q%2BygRnWILJW99dYRPrF8kq0eMf%2BXEZZ%2FI%3D&reserved=0 . I wasn't sure if you meant just the Yammer enterprise features. I have created a PR #373https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2FOfficeDocs-O365ITPro%2Fpull%2F373&data=02|01|pwrobel%40microsoft.com|3b667eca10944ee0823b08d6a96d7de2|72f988bf86f141af91ab2d7cd011db47|1|0|636882685062784439&sdata=4uAIVVQLILuF58smv7CAhRGjpE9IOPPfa8UUz17HFGk%3D&reserved=0 to make the necessary changes in the document for clarity.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2FOfficeDocs-O365ITPro%2Fissues%2F367%23issuecomment-473380184&data=02|01|pwrobel%40microsoft.com|3b667eca10944ee0823b08d6a96d7de2|72f988bf86f141af91ab2d7cd011db47|1|0|636882685062789429&sdata=uKxwLwAC5ZVonC9Vh3iWTnylEQR9wV8LNlKRBX48L0s%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAR31RwmullfHJ2wu4e6gs6Gc7VjeaAaNks5vW9tXgaJpZM4bswPC&data=02|01|pwrobel%40microsoft.com|3b667eca10944ee0823b08d6a96d7de2|72f988bf86f141af91ab2d7cd011db47|1|0|636882685062794420&sdata=6xi7uaNmbftZRng8xn03YLDpiccoPJdbMsH%2BMtRDuxY%3D&reserved=0.

@Larryngolog - From our understanding, the issue has been resolved but it may take a few days for the merged content to appear in the article. If you feel it hasn't been resolved, please re-open this issue.
Thank you for your contribution to make the docs better! Much appreciated!

@officedocsbot close


Do not return user email unless you're admin

currently, any user can go to the teams/users tab and get user mails
We should limit mails view unless you're an admin
the API should not even give those results

UI changes pushed here: https://github.com/open-metadata/OpenMetadata/pull/15927
If no email data present it won't shows up

reopening, backend changes are still required

@pmbrull if you could share an example email that API returns I will push UI changes


Attempt to compress png wit cjxl results in error "Illegal instruction (core dumped)"

Describe the bug
When testing a set of a few thousand images, this ones fails to be converted by cjxl.
it does not seem to be an issue with the PNG file itself, as re-saving it with different programs or running it through oxipng does not change the outcome.
To Reproduce
Obtain the image file<PHONE_NUMBER>931244032_1.zip
Attempt to compress it with cjxl, neither lossless or lossy work.
Expected behavior
A JPEG-XL file of the image is created.
Environment

OS: Linux
Compiler version: gcc version 13.2.1 20230801 (GCC)
CPU type: x86_64
cjxl/djxl version string: JPEG XL encoder v0.10.1 5f67ebce [AVX2,SSE4,SSE2]

I can reproduce this with the sample provided. Here's my valgrind log:
valgrind.log
This was with JPEG XL encoder v0.10.0 6d041617 [AVX2].
(For some reason it says 0.10.0, even though it's the latest commit from git main.)

I could reproduce this in any combination of -d and -e I tried except -d 0 -e 1 because I assume fast lossless has a different code path.

I can also reproduce this with library users (e.g. ffmpeg), it's not just stock cjxl.

Should be fixed in https://github.com/libjxl/libjxl/pull/3361.

Fix was merged.


Align heads of column with mainstream DraCor wording

For the API 1.0 release of DraCor, we unified the wording for names/properties. To avoid misunderstandings, the Einakter table we are spitting out should be aligned to this wording:

normalizedYear → yearNormalized
created → yearWritten
printed → yearPrinted
premiered → datePremiered
has to be added: yearPremiered

I would also propose to shorten "number" to "num" here:

numberOfScenes → numOfScenes
numberOfCharacters → numOfCharacters

In mainstream DraCor, these properties are called numOfSegments and numOfSpeakers, in the Einakter database we should keep numOfScenes and numOfCharacters, as they are different information (there is not much variety to justify the use of "segments" instead of "scene" for one-act plays, and not all characters are speakers).
Also:

numberOfMaleCharacters → numOfCharactersMale
numberOfFemaleCharacters → numOfCharactersFemale
numberOfCharactersWithUnknownGender →numOfCharactersUnknown

There are two plays in data.yaml where created has the full date including month and day. Fir those yearWritten would be kind of a misnomer.

Thanks for spotting these, one was a mistake (created instead of premiered), the other one was trimmed to the year information only. Fixed in https://github.com/dracor-org/einakter/commit/1520fd14951d7318fba6308879899e84bc8cb12d.


Considering Metalayer whole as a Model how do you train it? Or do I need to use the output of Metalayer in some other model and use it?

❓ Questions & Help
Hi, I am trying to use metalyer to give me a global update for graphs. But I am stuck at how do you pass the data to it? I am considering here Metalayer as a whole as a standalone model.
from torch.nn import Sequential
from torch import nn
from torch_scatter import scatter_mean
from torch_geometric.nn import MetaLayer
class Edge_Model(torch.nn.Module):

def __init__(self, num_node_feat, num_edge_feat, num_global_feat, hiddens):
    super(Edge_Model, self).__init__()
    in_channels = ( 2 * num_node_feat + num_edge_feat )
    self.edge_mlp = Sequential(
        nn.Linear(in_channels, hiddens),
        nn.ReLU(),
        nn.Linear(hiddens, 2*hiddens),
        nn.ReLU(),
        nn.Linear(2*hiddens, hiddens))

def forward(self, src, dst, edge_attr, u, batch):
    out = torch.cat([src, dst, edge_attr, u[batch]], 1)
    return self.edge_mlp(out)

class Node_Model(torch.nn.Module):

def __init__(self, num_node_feat, num_edge_feat, num_global_feat, hiddens):
    super(Node_Model, self).__init__()
    in_channels = num_node_feat + num_edge_feat
    self.node_mlp_1 = Sequential(
        nn.Linear(in_channels, hiddens),
        nn.ReLU(),
        nn.Linear(hiddens, 2*hiddens),
        nn.ReLU(),
        nn.Linear(2*hiddens, 2*hiddens + num_node_feat))
    self.node_mlp_2 = Sequential(
        nn.Linear(2*hiddens + num_node_feat, 2*hiddens),
        nn.ReLU(),
        nn.Linear(2*hiddens, in_channels))

def forward(self, x, edge_index, edge_attr, u, batch):
    row, col = edge_index
    out = torch.cat([x[col], edge_attr], dim=1)
    out = self.node_mlp_1(out)
    out = scatter_mean(out, row, dim=0, dim_size=x.size(0))
    out = torch.cat([x, out], dim=1)
    return self.node_mlp_2(out)

class Global_Model(torch.nn.Module):

def __init__(self, num_edge_feat, num_node_feat, num_global_feat, hiddens):
    super(Global_Model, self).__init__()
    in_channels = num_edge_feat + num_node_feat
    self.gloabal_mlp = Sequential(
        nn.Linear(in_channels, 2*hiddens),
        nn.ReLU(),
        nn.Linear(2*hiddens, 3*hiddens),
        nn.ReLU(),
        nn.Linear(3*hiddens, num_global_feat))

def forward(self, x, edge_index, edge_attr, u, batch):
    out = torch.cat([u, scatter_mean(x, batch, dim=0)], dim=1)
    return self.gloabal_mlp(out)

def build_meta_layer(num_edge_feat, num_node_feat, num_global_feat, hiddens):
     return MetaLayer(Edge_Model(num_edge_feat, num_node_feat, num_global_feat, hiddens),
                 Node_Model(num_edge_feat, num_node_feat, num_global_feat, hiddens),
                 Global_Model(num_edge_feat, num_node_feat, num_global_feat, hiddens))

   model = build_meta_layer(20,20,5,30)
   optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

   model.train()
   for batch in data_loader:
      optimizer.zero_grad()
      x, edge_attr, u = model(x=batch['x'], edge_attr=batch['edge_attr'], u=batch['u'],
                        edge_index=batch['edge_index'], batch=batch['batch'])
   loss = F.nll_loss(u, batch['y'])
   loss.backward()
   optimizer.step()

This looks mostly correct to me. It seems that cat is failing since some of those tensors have only 1-dimensional tensors. You can verify that by print(batch).

Thanks for Prompt reply. Yes. The global vector u  is tensor having five values which I want to be updated for ML against my labels which are the same as the shape of u.

Yeah, but if you concatenate, simply run u.view(-1, 1) beforehand.

Thanks. I will try and update.

Hi rusty1s, It seems that the error persists even if I run u.view(-1,1) beforehand. I am attaching an image of my batched data.

Well, this is a different error, right? Try setting in_channels in the global model to in_channels = num_edge_feat + num_node_feat + num_global_feat.

Hi, rusty1s I see that. But the error is still arising from edge_mlp from edge_model. I tried implementing edge_model as function like in issue #535. It works for [src, dst, edge_attr] whenever I introduce u in torch.cat function it give me this error.
`class My_layer(nn.Module):
def __init__(self, num_edge_feat, num_node_feat, num_glob_feat):
    super(My_layer, self).__init__()
    in_chan = 2 * num_edge_feat + num_node_feat
    self.edge_mlp = Sequential(
        nn.Linear(in_chan, num_node_feat),
        nn.ReLU())

    def edge_model(src, dst, edge_attr, u, batch):
        edge_neigh = torch.cat([src, dst, edge_attr, u[batch]],1)
        return self.edge_mlp(edge_neigh)

    self.op = MetaLayer(edge_model)

def forward(self, x, edge_index, edge_attr, u, batch):
    return self.op(x, edge_index, edge_attr, batch)

class NET(nn.Module):
def __init__(self, num_edge_feat, num_node_feat, num_glob_feat):
    super(NET, self).__init__()
    self.metalyer = My_layer(num_edge_feat, num_node_feat, num_glob_feat)

def forward(self, data):
    x, edge_index, edge_attr, u, batch = data.x, data.edge_index, data.edge_attr, data.u, data.batch
    x, edge_attr, u = self.metalyer(x, edge_index, edge_attr, u, batch)
    return edge_attr

node_feat = dataset[0].x.shape[-1]
edge_feat = dataset[0].edge_attr.shape[-1]
glob_feat = dataset[0].u.shape[-1]
model = NET(node_feat, edge_feat, glob_feat)
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
model.train()
for batch in data_loader:
optimizer.zero_grad()
output = model(batch)
y = batch.y
loss = torch.nn.functional.nll_loss(output, y)
loss.backward()
optimizer.step()`

There is a type issue in the list of concat tensors. You can check this, e.g., by printing out the type print(xxx.dtype).

Hi, rusty1's are the updated edge_attr in the edge_model used in node_model? Like in graphnets where the aggregator function does that. Or meta-layer just outputs update edge_attr, x, and u.

Updated edge features will be used as edge features in the node model. We follow the GraphNet formulation here.

Hi rusty1s, Thanks for your help!


erro Unexpected end of input

npm install caniuse-db
npm ERR! Unexpected end of input at 1:180331
npm ERR! b/-/caniuse-db-1.0.30000647.tgz"},"_hasShrinkwrap":false},"1.0.300006
npm ERR!                                                                      ^
npm ERR!      /Users/shihao/.npm/_logs/2017-08-08T08_55_16_395Z-debug.log

This is probably not a problem with caniuse-db. There is likely additional logging output in that log.
Probably the .tgz file didn't finish downloading.

I can download any other packages except caniuse-db, maybe something is wrong with npm. I downgrade version of npm to 4.6.1. Fixed.


Add actively maintained SQLite driver for YOURLS.

This adds an actively maintained version of the SQLite driver.
I've kept the original version, in case anyone wishes to use it with an older YOURLS installation, as this version is not backwards compatible.

Thanks!


Single File errors on windows

While testing with bun run index.ts everything looks great with my most basic of apps, however when I run the command to buld a single file exe
bun build --compile --minify --sourcemap ./index.ts --outfile todoapp
the resulting exe (on Windows x64) fails to open and the following error is displayed:

Windows cannot access the specified device, path or file. You may not have the appropriate permissions to access the  item

My index.ts looks like this:
`import { Webview } from "webview-bun";

const html = `

Hello from bun v${Bun.version} !

         <button onclick="addInNode().then((r)=>alert(r))">
        Test
    </button>

`;

const webview = new Webview();

webview.setHTML(html);

console.log("Hello from Node.js !");

webview.bind("addInNode", ()=>{           // The first parameter is the Webview and the rest are user's.
    let r = parseInt("1") + parseInt("2");   // This will run in Node.js
    console.log(r);                            // This will run in Node.js
    return r;                                  // return the result to webview
});

webview.title="blah";

webview.run();`

Does anyone know what might be happening?

Problem was in my system security settings, not in this package.

closed


ControlledTreeEnvironment and drag & drop

I don't know if it's a bug or a misunderstanding.
Does drag and drop work in ControlledTreeEnvironment  mode?
I have no problem with UncontrolledTreeEnvironment, but after anothers tests with ControlledTreeEnvironment, the Drag&Drop do not work, and I couldn't find the answer in the documentation.
I reroduced the problem in codesandbox :
https://codesandbox.io/s/react-complex-controlledtreeenvironment-drag-ng6mme
Desktop (please complete the following information):

OS: Windows 11
Browser: Latest Chrome and Firefox
Version: latest

Thanks for this excellent lib ;)

Hi @PooLP! In a controlled tree environment, you will need to handle all state mutations yourself. This means, for drag and drop to work in a controlled environment, you need to implement the onDrop handler on the environment, and mutate the tree state passed through via items yourself. In an uncontrolled environment, this is not necessary as the environment does that for you.

ok, i understand. thanks.


C# Rewrite

Howdy! I randomnly stumbled across this project will doing some searching around leashing stuff and love it! I saw that one of the desired todos was a rewrite in C# and wondered if I could possibly help with that. Would love to play with OSC and have a decent amount of experience with C#/dotnet.

That'd be awesome! Unfortunately, I've been really busy as of late and I just haven't had time to work on projects like this. (See the OSCquery PR I haven't gotten to yet) If you end up giving it a go, feel free to reach out to me on Discord (zenithval) if you have any questions or want any insights on the Unity side.


Question

Excuse me, could you not make it...

...sneaking to activate the passive Parry? Just let the rule stop at perfect timing when the enemy about to hit shall we?
btw, your mod is awesome as add-on for vanilla dull shield enchantment!

Why?


[Request] Add CSV support in report sales.

This adds CSV to the sale report screen while preventing caching of the csv file.
Creates an CSV of orders and downloads the file. If no orders are found it will just redirect back to the sales page. Filename and array structure can be changed later if needed.
Is it worth adding a catch all if no to and from date is given? The button uses the queried dates but getting a complete history should be possible without any dates. In any case I defaulted it from a week ago when no to or from is given.
Author: James Bishop (Heihachi) @Tooq Inc

Awesome, will look at this soon.
Quick question, is the CSV in a particular format, i.e. for importing into an accounting package, or is it really just for reference purposes?
(not that they're's a standard as such as for accounting package imports, I'm more just wondering)

The format currently is the same as the layout of the sales report

"Order #",Date,Products,Shipping,Tax,Total
6,"2017-04-07 20:45:39",0,0.00,,1.00
5,"2017-04-15 20:45:39",0,0.00,,1.00
2,"2017-04-16 21:09:18",3,0.00,,3.00
1,"2017-04-16 20:45:39",1,0.00,,1.00

This  can easily be changed or a button to make account package friendly CSV.
I do know that it imports into Google Sheets easily.


Wrong syntax highlight for Structure

Hello. I found that using Structure instead of Record, the name was highlighted as an error. Structure is a synonym of Record, and seeing the syntax file, I believe this is just a mistake. I'll send a PR if it's acceptable.

Thanks for reporting. The syntax file is kind of a mess, but if you can figure it out a PR would be welcome.

Oh, thank you for the fix!


On launch of Landing Screen warning for closeness alert being turned off shows momentarily even though it has already been turned on

Only occurs on launch of app when launching the landing page, goes away after a short loading icon. Does not reoccur until app is launched again.
Bug 32 |   | 1.0.0 Build/release(35) | Android | Galaxy S10+ | 9/10/20 5:26 AM | Patrick Brennan

@mboskin This has been raised in another ticket. And fixed. Can you check it again please?

This has been added to the MS-Teams list of issues for ITS to retest.

Michael Boskin
Senior Consultant, NYSTEC
(518) 496-7667 – Mobile
mboskin<EMAIL_ADDRESS>www.nystec.comhttp://www.nystec.com/
From: Paul Negrutiu<EMAIL_ADDRESS>Sent: Wednesday, September 23, 2020 2:35 AM
To: project-vagabond/covid-green-app<EMAIL_ADDRESS>Cc: Michael Boskin<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [project-vagabond/covid-green-app] On launch of Landing Screen warning for closeness alert being turned off shows momentarily even though it has already been turned on (#408)
[External Email]
@mboskinhttps://github.com/mboskin This has been raised in another ticket. And fixed. Can you check it again please?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/project-vagabond/covid-green-app/issues/408#issuecomment-697163815, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQYJBUGR4AH6VN3K47LM4CDSHGJJBANCNFSM4RHI4KZQ.


io_uring can use unlimited memory, DoS the system: no backpressure on non-completing operations

This program allocates unlimited workqueue entries in the kernel and eventually OOMs the system. (Tested on kernel 5.10.13.)
io_uring needs a better backpressure strategy. Currently, io_uring's backpressure strategy is failing work submit with EBUSY when the completion backlog is non-empty. The problem with this approach is that you can submit an unlimited number of jobs that never complete. No completion means no completion-queue filling, and no completion-queue filling means no backpressure.
#include <liburing.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/eventfd.h>
#include <time.h>

int main() {
    struct io_uring ring;
    int queue_max = 16;
    if (io_uring_queue_init(queue_max, &ring, 16))
        abort();
    long sqe_nr = 0;
    char dummy_buf[128];
    int my_event_fd = eventfd(0, EFD_CLOEXEC);
    if (my_event_fd < 0)
        abort();
    for (;;) {
        struct io_uring_sqe* sqe = io_uring_get_sqe(&ring);
        if (!sqe)
            break;
        io_uring_prep_read(
            sqe, my_event_fd, dummy_buf, sizeof (dummy_buf), 0);
        int ret = io_uring_submit(&ring);
        if (ret < 0) {
            printf("io_uring_submit failed: %d %s\n", -ret,
                   strerror(-ret));
            break;
        }
        sqe_nr += ret;
        printf("io_uring_submit succeeded: %ld submitted so far\n", sqe_nr);
    }
    printf("done\n");
    return 0;
}

We can probably do something like this:
diff --git a/fs/io_uring.c b/fs/io_uring.c
index 7242cc48e97b..5223fdf1c3d3 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -1989,7 +1989,24 @@ static struct io_kiocb *io_get_fallback_req(struct io_ring_ctx *ctx)
 	if (!test_and_set_bit_lock(0, (unsigned long *) &ctx->fallback_req))
 		return req;

-	return NULL;
+	return ERR_PTR(-EAGAIN);
+}
+
+static bool io_may_alloc(struct io_ring_ctx *ctx, size_t to_alloc)
+{
+	struct io_rings *rings = ctx->rings;
+	long completions;
+
+	completions = ctx->cached_cq_tail + READ_ONCE(ctx->cached_cq_overflow);
+	/*
+	 * Somewhat arbitrary, but allow 8 times the CQ ring size. The user
+	 * rlimit accounting limits the number of rings and the size of them,
+	 * so impose a max pending limit as well.
+	 */
+	if (ctx->cached_sq_head - completions < 8 * rings->cq_ring_entries)
+		return true;
+
+	return false;
 }

 static struct io_kiocb *io_alloc_req(struct io_ring_ctx *ctx,
@@ -2001,6 +2018,9 @@ static struct io_kiocb *io_alloc_req(struct io_ring_ctx *ctx,
 		int ret;

 		sz = min_t(size_t, state->ios_left, ARRAY_SIZE(state->reqs));
+		if (unlikely(!io_may_alloc(ctx, sz)))
+			return ERR_PTR(-ENOSPC);
+
 		ret = kmem_cache_alloc_bulk(req_cachep, gfp, sz, state->reqs);

 		/*
@@ -6874,9 +6894,9 @@ static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr)
 			break;
 		}
 		req = io_alloc_req(ctx, &state);
-		if (unlikely(!req)) {
+		if (unlikely(IS_ERR(req))) {
 			if (!submitted)
-				submitted = -EAGAIN;
+				submitted = PTR_ERR(req);
 			break;
 		}
 		io_consume_sqe(ctx);
@@ -6899,7 +6919,7 @@ static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr)
 	}

 	if (unlikely(submitted != nr)) {
-		int ref_used = (submitted == -EAGAIN) ? 0 : submitted;
+		int ref_used = (submitted < 0) ? 0 : submitted;
 		struct io_uring_task *tctx = current->io_uring;
 		int unused = nr - ref_used;

which limits the total number of pending requests for the ring.

which limits the total number of pending requests for the ring.

Which probably also limits io_urings usability for applications that have a large amount of (valid) pending requests.
We also discovered this "issue", but where not sure if it is a new attack vector, or if it is simply the same class of "(malicious) application performs a large malloc() and touches every page of the returned memory causing an OOM situation". Is the io_uring resource acquisition any different? If not, why introduce an artificial limitation?

"(malicious) application performs a large malloc() and touches every page of the returned memory causing an OOM situation

These days, we at least try to prevent the scenario you're describing. A malicious application using malloc can be constrained in a variety of ways, e.g., a VSIZE limit or a memory control group.
Basically, our strategy seems incoherent here. We should either account both ring memory and kernel memory for outstanding objects as locked memory or leave both unaccounted and rely on CONFIG_MEMCG_KMEM for limiting the ability of users to make both large rings and large outstanding operation queues. It doesn't make a lot of sense to me for io_uring to count ring buffers against the locked memory size but allow applications to generate a zillion outstanding workqueue entries that don't count against the locked memory. TBH, I'd rather get rid of the locked accounting on rings.

I don't disagree with any of that. memcg accounting might be just the right solution, if combined with Pavel's patch to make allocs persistent over io_uring_enter() invocations. Without that, it'd be cost prohibitive, as req alloc+free is part of the hot path. CC @isilence

And if we do go that route, we could potentially get rid of rlimit memlock accounting for the rings themselves, just include them in the memcg as well. BPF recently went a similar route. Might make sense to retain rlimit memlock for registered buffers, though.

I don't disagree with any of that. memcg accounting might be just the right solution, if combined with Pavel's patch to make allocs persistent over io_uring_enter() invocations. Without that, it'd be cost prohibitive, as req alloc+free is part of the hot path. CC @isilence

Well, it reuses requests only when they're completed inline, so that leaves all the overhead on the async completion side. One atomic_sub or spinlocking for memcg, I guess? I did think to do recycling for async as well, but that's trickier in terms of synchronisation.

For non-inline completion, we could potentially utilize the already held completion_lock to stuff them into a local list that can get recycled from submission if we have none available in the submit cache.

Yeah, that what I had in mind for completions -- hack up io_req_complete(). Not nice part is that we need to do extra completion_lock during submission, but at least it's can be done loosily, e.g.
int submit_sqes() {
    if (READ_ONCE(ctx->batch) > 32) {
        spin_lock(compl_lock);
        // free/recycle
        spin_unlock();
    }
}

Or if we want to employ it better, to do something like double buffering of request caches.

Either double buffering, or just migrating from completion side to submission side when we have a suitable size (as in your example) would be good enough, I think.

On the task_work side, if we go the route of having our own list for that, then we can even recycle with an ammortized completion lock cost too. Ditto IOPOLL, that one is trivial. Don't care too much about the io-wq completion side, that's not truly a fast path.

Yeah, IOPOLL is already simple. You mean like in io_submit_flush_completions() do
but for task_work? Sounds good. I wonder what the number of our abusing of task_works,
e.g. mean QD in there.
Ok, I was planning to put back those patches at the end of the week, let's see how much we can go from there.

Most/all of this has been fixed up and queued up for 5.12.

Very closely related to this, could we document the behaviour for the man page, either the new or old (or both)? I'll volunteer to write a PR for the man page if I can understand the behaviour myself!
Let me try and elaborate the issue a bit...
Right now the man page tells us we can get

EAGAIN The kernel was unable to allocate memory for the request, or otherwise ran out of resources  to  handle  it. The application should wait for some completions and try again.

EBUSY  The application is attempting to overcommit the number of requests it  can  have  pending.  The  application should  wait  for  some completions and try again. May occur if the application tries to queue more requests than we have room for in the CQ ring.

The distinction between these two isn't very clear.
I think most people get that if the completion queue is full then it's reasonable to expect a failure like this, and the solution is just to process all the completions, clear the completion queue and try again.
The case that's really unclear though is if we can get either of these errors when the completion queue is empty. Of course that's exactly what this issue was about (that there was no back-pressure in this case). Presumably the new answer is yes, yes we can get one or the other of these errors even if the completion queue is empty. What are we to do in this case? Are we guaranteed that if we call io_uring_enter again with 0 to_submit and min_complete > 0 that we'll then be able to submit more? Or perhaps not just once but calling it repeatedly then we're eventually guaranteed to be able to submit more? Presumably this would only be true when we have enough pending operations on the uring that are not-blocking (e.g. not most socket ops).
And for guidance, should we assume there's different limits or costs to different operations? e.g. blocking things like IORING_OP_POLL_ADD cheaper than things like IORING_OP_OPENAT or IORING_OP_CONNECT?
I ask because of course if one maxes out the memory limits using blocking operations then we could get really stuck since waiting for operations to complete could take arbitrary time. So applications (or frameworks, runtime systems etc) might want to follow a policy of allowing X blocking ops (e.g. socket things) but keeping enough space left for short-term non-blocking things like disk operations. So if we can provide some guidance on this, we can help app/framework authors handle this robustly (e.g. doing their own accounting, or imposing their own limits). e.g. how would they estimate safe limits?
Lots of questions :-). I don't expect answers to everything, but if we can get a better idea then we can document it in the man page for everyone else.

The issue is fixed, let's close it.
@dcoutts, your message clearly got lost, sorry about that. Can you open a new issue, if you're still interested?

Thanks! Would you mind linking to the fix?

@dcolascione, fwiw, it's now restricted by a memory cgroup
https://git.kernel.dk/cgit/linux-block/commit/?h=for-5.14/io_uring&id=91f245d5d5de0802428a478802ec051f7de2f5d6


Fixed issue with boolean evaluation on command line value switch truthy

When trying to run helm install or helm upgrade with the  --set secret.enabled=true switch no secrets were being created. I used the same format for evaluation of truthy values as used in the configmap template and it works.

LGTM. Thank you for this fix.

You will need to re-run the scans for this PR as I just signed the CLA


Check Is Unable to Specify Release Type

For our use case, we want to do a get of a stemcell from Pivnet. This pipeline is only for LTS releases of our tile. This means that we only want to bump the stemcell when we need to for a CVE. So, when a new "Security Release" stemcell is published on PivNet we want to trigger our pipeline, but when a "Minor Release", for example, is published, we do not want the pipeline to trigger.
I would envision the resource definition looking something more like
resources:
- name: stemcells
  type: pivnet
  source:
    api_token: my-api-token
    product_slug: stemcells
    release_type: security

@mfine30 this makes sense. Ideally I'd prefer to see all products support semver, then we could solve this sort of problem by introducing regex that we would parse as semver e.g.:
resources:
- name: stemcell-1.9.x
  type: pivnet
  source:
    api_token: my-api-token
    product_slug: stemcells
    release_semver: 1.9.(.*)

However, given that not all products are semantically-versioned (stemcells being a great example) then I don't see a better way to achieve this goal than your suggestion.
I'll keep this issue open until there's some stories in the tracker backlog to cover this, and I'll link to them in here and close this issue at that time.
Thanks.

There is a story in the backlog to address this:
pivnet resource check should support optional source release_type
I'll close this issue now; if you have any thoughts or comments on that story (or if you feel it is insufficient) please free free to open a new issue.
Thanks,
Rob


Suggestions

I'm missing some features:
.large-text-center, .large-text-left, .large-text-right, .small aso…
This is very useful for making mobile sites where I often want text centered in columns instead of maybe right aligned in web view (see example below).
large-0, small-0. I know there is a class called show-for-* and hide-for-*, but it would be much easier to hide a whole column using small-0 or large-0 combined with the other pair (small-x, large-x).

+1 for small-0 (medium-0, large-0). The intended effect is obvious and it would be totally consistent with the syntax.


Fix some bugs.

Coverage increased (+2.6%) to 99.242% when pulling b7b9d5f2f500f37a22864480c01e7cf415fb2d55 on develop into f63b2682c71f45783f79a19b95a92e4e3a5b0b69 on master.


importer does not update texture after rotating

Issue description:
When rotating an Importer/exporter/external storage the texture stays the same as when it was first placed.
What happens:
ugly gaps in the cable texture
What you expected to happen:
connected cables
Steps to reproduce:

place an importer facing onto something it should connect to
rotate with wrench

...
Version (make sure you are on the latest version before reporting):

Minecraft:1.11.2
Forge:2315
Refined Storage:1.4.17

Does this issue occur on a server? [yes/no] yes

Works fine for me.

Just made a new instance and only installed JEI and RS. Could this be causes by a jvm parameter?
Video of it. https://gfycat.com/GenuineHopefulBetafish

BAD bug report. You make it seem like the texture doesn't rotate at all. Please be more clear next time.

Works fine in 1.6


New release?

Hi, we just found another issue that affects LanguageTool and that's fixed after 2.1.4 (#912). Are there any plans for a 2.1.5 release anytime soon?

Sure think, Daniel. I'll try to do it tonight, although the connection is a bit flaky (I'm on holidays).

Done!


Update postgresql_compatibility.md

Draft, fixes https://github.com/duckdb/duckdb-web/issues/4124  but hoping this will be undone in https://github.com/duckdb/duckdb/issues/15069

Thanks. Why is this draft though? I think this applies to v1.1 and we can undo it for v1.2 when the eventual fix for https://github.com/duckdb/duckdb/issues/15069 lands.

True, let's go then.


onBlur callback receives event as parameter

This follows the implementation of the onChange callback.
Relates to PR #54

Hi @woodb, this looks good and I agree with making the onBlur callback more consistent with the onChange callback. I've merged your change - thanks for the improvement!


Change PluginsManager to call methods only on active plugins

Fix for PluginsManager to call methods only on active plugins. Flag active_only is passed into get_plugins method in __run_method_on_plugins because after investigation it looks like there is no situation when this method should be called on inactive plugin.  Actions like that are handled by other methods like save_plugin_configuration or list_external_authentications.
I've also added missing tests for __run_method_on_plugins and __run_method_on_single_plugin to be sure that we have proper output from them because for now they are not tested directly - just by functions called from the upper level.

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[ ] The changes are tested
[ ] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

Task linked: SALEOR-2831 PluginsManager should call action only on active plugin

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


Open url with callback

Is it possible to send button with url (to open on click) and run callback when user click on button? I need to track clicks. May be some workaround for this task?

I don't think this is possible with current telegram apis, sorry


[FEATURE] Add GitHub Action to Check PR Sync with Base Branch

Is this a unique feature?

[X] I have checked "open" AND "closed" issues and this is not a duplicate

Is your feature request related to a problem/unavailable functionality? Please describe.
To avoid merge conflicts and ensure that contributors are working with the latest code before opening or updating a Pull Request (PR), we need a GitHub Action that checks whether the contributor has synced the latest changes from the base branch i.e. the main branch. If their branch is not up-to-date, the action should block the PR and notify the contributor to sync with the latest changes.
Benefits:

Reduces the likelihood of merge conflicts.
Ensures contributors are working with the most recent version of the codebase.
Automates the process of checking if PRs are up-to-date with the base branch.

Proposed Solution
Contributor can check the following :

Action triggers on PR events (opened and updated).
It checks if the PR branch has the latest commits from the base branch.
If not synced, it throws an error and tells the contributor to rebase or pull.
If synced, the action passes with a success message.

Screenshots
No response
Do you want to work on this issue?
No
If "yes" to above, please explain how you would technically implement this (issue will not be assigned if this is skipped)
No response

To implement a GitHub Action that checks if a pull request (PR) branch is synchronized with the main branch, I propose the following workflow setup. This action aims to reduce merge conflicts and ensure contributors work with the latest code, improving overall collaboration efficiency. Here are the steps and additional features for this solution:
Workflow Setup

Define Workflow Triggers:
The action should trigger on pull_request events, specifically for opened, synchronize, and reopened event types. This ensures the check runs whenever a PR is first created, updated, or reopened.

Create Workflow File:
Add a new YAML file in the repository named .github/workflows/check-pr-sync.yml.

Core Workflow Code:
Below is the code configuration for the action:

name: PR Sync Check with Base Branch

on:
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  verify-sync:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout PR branch code
        uses: actions/checkout@v3
        with:
          fetch-depth: 0  # Ensures full history for accurate comparison

      - name: Fetch base branch for comparison
        run: |
          BASE_BRANCH="main"
          git fetch origin $BASE_BRANCH

      - name: Verify PR branch is synced with base branch
        id: sync-check
        run: |
          git diff --exit-code origin/$BASE_BRANCH || exit 1

      - name: Notify if PR branch is out-of-sync
        if: failure()
        run: |
          echo "::error ::Your branch is not in sync with the latest changes on the $BASE_BRANCH branch. Please update your branch to avoid merge conflicts."
          exit 1

Additional Features

Flexible Base Branch: This workflow can easily support other branches (like develop) by modifying the BASE_BRANCH variable. This is particularly useful in projects where the main branch isn’t the default base for PRs.
Detailed Notifications: If the branch is out-of-sync, the workflow logs a detailed error, guiding the contributor to update their branch. This message can also be customized with links to documentation on rebasing and merging for new contributors.
Multi-Event Trigger: By including the reopened event trigger, the workflow automatically checks branches that were closed and then reopened, reducing the risk of outdated code in such cases.
Optional Slack or Email Notification: This action could be extended to send notifications to a team channel (e.g., Slack) or specific email addresses for additional awareness if a PR fails the sync check.

Explanation of Key Steps

Triggering Events: Ensures that every time a PR is opened, updated, or reopened, the action checks if it’s in sync.
Checking Out the PR Branch: The action checks out the PR branch code with full history, allowing a complete diff comparison.
Sync Verification: Compares the current branch with the latest base branch (usually main). If there’s a mismatch, it exits with an error.
Error Notification: The contributor receives a clear error message if their branch is outdated, with instructions to update.

Key Benefits

Enhanced Code Consistency: Ensures that every PR branch is working with the most recent code version, reducing potential conflicts.
Improved Contributor Experience: Contributors receive prompt notifications and instructions, helping them resolve issues quickly.
Automated Code Sync Checks: Eliminates the need for manual checks, making the review process more efficient and consistent.
Customizable: Easy to adapt for different branches, specific teams, or customized notifications.

This GitHub Action will help enforce sync checks, maintain code quality, and provide contributors with clear guidelines, ultimately reducing the time spent on merge conflict resolution.
@jvedsaqib Yes, I want to work on this issue. Kindly assign it to me with further info if you have some more guidelines/preferences in mind.
Thank you :)


Terminal don't refresh on keypress when scrollbar appear/dissappear

Expected behavior
when you typing and scrollbar appear terminal should adjust the number of characters
Actual behavior
wrapping is wrong
Steps to reproduce
create terminal with some output so it only have one line left for input and type more then one line of text

Fixed by using iframe as resizer when resizeObserver is not available

in version 1.14.0


[Hero]Telepath

Inteligence, mele, low starting armmor, low starting hp, low strengh and hp gain.
Q [Mental Cannon] [Phisical] [Ground target] Create projecktail that deal damage and push hited units away [~250], work on neutrals and heroes. Pierce evry unit that hit, around 600 range. Pushed units cannot pass unpassable terrain like clifs or trees, they are instantly stopped. If neutral unit hit unpassable terrain it dies. If hero did that it get dramaticly slowed movment speed and medium attack speed slow, also get additional damage that depends on distance pushed away[higher distance lower damage]. Ancients and bosses are treated like heroes. Effeckt also trigers if hited projecktail from W.

if pushed unit hit disruptor kinetick field or earthshaker wall is treated as it hit unpassable terrain, same for other similar spells.

W [Air Pull] [Ignore magic immunity] [Ground target] Create recktangle projecktail in place that spell was casted. Projecktail alvays move to caster with max speed, after 300 units moved projecktail disapire. Evry unit that get hit by it is moved with projecktail. Slows enemy and neutrals, incrise movment speed of allays. Caster also can be afected by this spell. Dont afect ilusions in any way. Have priority above evry movment from any source.

projecktail around 2 units long and 200 wide. Projecktail itself its only for programng purpouse and should not be visible, for indicateing spell effeckt should use custom animation. [caster don't turn to point that spell is used, excluding situation when point is outside range.(similarly invoker don't turn when casting sun strike)]

E [Brain Grab] [Pure] [Don't ignore magic immunity] [Enemy Hero Target only] [Incantation] Stuns and burn target mana. Damage depends on target inteligence and mana burned. Also grants true strike on target.

Damage = Base_value + Mana_burnn  [additional damage from mana burn only if any mana got burned in that moment]
Mana_burn = Base_mana_burn_value(Inteligencex + Max_manay%)

R [Psi crush] [Phisical] Rectangularish AoE in front of hero. Move evry enemy/neutral unit to center. Damage depends on units cought.

Damage = Base_value + Units_number*x.  should deal less damage per unit than earthshaker's ultimate.

Tree
lvl 10 + health / + spell range
lvl 15 + Spell amp / + Evasion [~35%]
lvl 20 + Air Pull widh / + stacks for Air Pull
lvl 25 Debuffs, stuns and roots have reduced duration on Telepath by x%  [~75% ,can be purged with silver edge] / Brain Grab also affeckt enemy around target [Burn mana and deal damage, don't stun secondary targets]
(i can write Lore and flavored spell discription)

#393


doc: Clarify description of SceneTree.create_timer()

Added the 'emit' and the 'signal' word to the 'create_timer()' method description, regarding the timer behavior.

Force pushed to do the suggested changes and make the commit message more explicit.


test/self/formats: add Y410 to the common test cases

Signed-off-by: U. Artie Eoff<EMAIL_ADDRESS>

LGTM


training with new classes

hi,
how can train the model to recognize new type of images ?

Please refer to #1 and #3 .

Thanks for reply @hizhangp
I have set of images but i don't know how to train the model with it?
could u plz tell me how to do it

Just change your images and labels into pascal_voc version.

I changed the images in VOC2007 folder and try to train it again
I got the following error
~/yolo_tensorflow$ python train.pyLoading gt_labels from: data/pascal_voc/cache/pascal_train_gt_labels.pkl
Appending horizontally-flipped training examples ...
Start training ...
OpenCV Error: Assertion failed (ssize.width > 0 && ssize.height > 0) in resize, file /tmp/binarydeb/ros-kinetic-opencv3-3.2.0/modules/imgproc/src/imgwarp.cpp, line 3492
Traceback (most recent call last):
File "train.py", line 164, in
main()
File "train.py", line 158, in main
solver.train()
File "train.py", line 68, in train
images, labels = self.data.get()
File "/home/abdulrahman/yolo_tensorflow/utils/pascal_voc.py", line 35, in get
images[count, :, :, :] = self.image_read(imname, flipped)
File "/home/abdulrahman/yolo_tensorflow/utils/pascal_voc.py", line 47, in image_read
image = cv2.resize(image, (self.image_size, self.image_size))
cv2.error: /tmp/binarydeb/ros-kinetic-opencv3-3.2.0/modules/imgproc/src/imgwarp.cpp:3492: error: (-215) ssize.width > 0 && ssize.height > 0 in function resize

Check your image.

How to check it, what do you mean ?

Some of your images are empty

I think you should check your image ...


Add bool to converted dtypes, fix typo

Adds conversion to fortrantype and ctype for 'bool' dtype (fixes #228)
Renames 'fortantype' to 'fortrantype'

@arjenve is this an OK solution?
It seems the documentation fails to build because of this problem, and I think this has been the case for a while (at least some previous edits I made to the documentation haven't shown up on the Amusecode.org website yet)...

I think documentation is rebuild is triggered manually ( @arjenve ?)

Ok to merge though? For me, this patch is necessary to build docs...

will merge, strangely enough the buildbot builds the doc ok, so I will keep an eye..

Thanks


Using colour variables from ShadowFox

Is there a practical way to do this?
Great work as usual BTW :)

@CaptaPraelium,
What do you think of a version with a color scheme more like this:

It's a little more ShadowFox-y with variables at the top

Here's a few more examples of what I'm thinking of switching to:

I think it looks good.... A little too colourful for my tastes, and the green doesn't match with the windoze blue theme... But that's subjective. Objectively, I think it looks great!
I guess this is a great example of why I made this thread :)

A little too colourful for my tastes

I've cut back on the colors a little bit since I posted the screenshots (both the number of links that are colored and removed the outlines).  Is that where you were thinking or would you prefer to see the header a dark color as opposed to the accent color?

green doesn't match with the windoze blue theme

That's fair.  I've been debating what to do with the primary color.  Might be best just to make it the default used by ShadowFox.  I've used the same variable names, but in the case above, they had different values so they override ShadowFox's.
If one was to have ShadowFox installed, and delete the variables in this theme, it would simply fallback to the colors set by ShadowFox.

That sounds great the way you have the variables working!
Regarding colour schemes, if I were you, I wouldn't pay toooo much attention to what capta wants ;)
By this I mean... I think the green header actually looks really stylish. I kinda think you should keep it.
But for my particular use-case, I want things as dark as possible without being too high-contrast. I use my PC in a very darkened area, often late at night, and I have eyes that are sensitive to overly high contrast... I think that if there is a scale of "Needs a dark theme 0-10', I am an 11. So, I personally would sacrifice the 'form' of the the coloured header, for the 'function' of keeping it grey...
That being said, I believe that form is a function in itself. (and that's why I like the blue because it matches with microsoft's choice of colour, even though IMO the green functions better) Beauty is important! So, you should do what you feel looks beautiful and express your own creativity :)

Regarding colour schemes, if I were you, I wouldn't pay toooo much attention to what capta wants

I don't know about that, you've been pretty helpful with styling choices in ShadowFox!  And beyond that, I'm not sure I always have the best stylistic opinions, so it's always good to hear other people's haha.
As for the header color, maybe a good compromise would be to keep it as is by default, but create a new variable for the header.  It would initially be set to something like:
--header-color: var(--primary-accent-color);

but then if anyone wanted to change it, all that would have to be done is alter it to something like
--header-color: var(--grey-90);

I am kind of preferring this look to what Mozilla-Dark currently is.  It has more simplicity and isn't quite so busy...it also goes with the FF theme better.

Hey that's a great idea! Best of both worlds :)

I think I'm getting fairly close to getting this version caught up the other one (Bugzilla should be done, SuMo and developer are almost there)...would you want to give it a test at some point before I send it off to userstyles.org?

Sure thing man anything you need!

Awesome, thanks! I'll ping ya here once I've uploaded a version to GitHub :)


Can not ping or run http server via ethernet when gPTP is enabled

Describe the bug
I have a small application which combines the gPTP example and the dumb_http_server example. I have merged both code and the respective prf.conf entries.
I can run gPTP or the http server but not both.
When gPTP is enabled (via CONFIG_NET_GPTP=y) then I can not ping the device and the http server does not respond. This is true with or without a gPTP grand master operating (AVnu gptp). With gPTP enabled I am able to sync using AVnu gptp.
When gPTP is disabled then I can both ping and the http server will respond to the client.
I have attempted to adjust thread priorities and the scheduler algorithm and this does not appear to change the symptoms.
Expected behavior
I would like to be able to run gPTP while running IPv4 communications
Impact
Prevents adoption of Zephyr
Screenshots or console output
N/A
Environment (please complete the following information):
This is on a NXP MIMRT1064-EVK board.
Ubuntu 19.10
zephyr git tag: v2.1.0-rc3
nxp_hal branch: master or v1.14-branch
zephr sdk: 0.10.3
Additional context
Note: Had to fix an infinite loop issue in nxp_hal to get gPTP to work on the nxp_hal master branch. The v1.14-branch of nxp_hal worked unmodified. Patch for nxp_hal master branch:
diff -r nxp/mcux/drivers/imx/fsl_enet.c nxp_master/mcux/drivers/imx/fsl_enet.c
9,11d8
< #include <logging/log.h>
< LOG_MODULE_REGISTER(enet_dbg, LOG_LEVEL_DBG);
<
2910,2914d2906
<         }
<
<         /* check to see if next buffer is the same as the last if so break */
<         if (handle->txBdDirtyTime[ringId] == curBuffDescrip) {
<             break;

Interesting issue. There should not be anything in networking stack that would prevent IP protocols from working if gPTP is enabled. I will try this with my TSN setup tomorrow when I have access to my test network.

Tested this in sam-e70 with echo-server and gptp, and did not see any issues with IP connectivity. I was not able to test the setup with frdm-k64f or mimxrt1050_evk because the console was not working and network interface was always down, dunno what is wrong there (this was with latest upstream).
I tested this scenario like this:
$ cd samples/net/sockets/echo_server
$ cmake -B build -DBOARD=sam_e70_xplained . -DCONFIG_WDT_DISABLE_AT_BOOT=y -DCONFIG_NET_GPTP=y -DCONFIG_NET_GPTP_STATISTICS=y
$ make -C build flash

Then from host terminal, I launched echo-client like this
$ cd net-tools
$ ./echo-client 2001:db8::1 -t
.......
Average round trip 29 ms
Sent 7 packets

Also ping works ok
$ ping 2001:db8::1
PING 2001:db8::1(2001:db8::1) 56 data bytes
64 bytes from 2001:db8::1: icmp_seq=1 ttl=64 time=0.304 ms
64 bytes from 2001:db8::1: icmp_seq=2 ttl=64 time=0.298 ms
64 bytes from 2001:db8::1: icmp_seq=3 ttl=64 time=0.299 ms
^C
--- 2001:db8::1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 34ms
rtt min/avg/max/mdev = 0.298/0.300/0.304/0.014 ms

Tested gPTP against OpenAVNU gPTP daemon and time sync worked just fine.
uart:~$ net gptp 1
Port id    : 1
Clock id   : fc:c2:3d:ff:fe:11:c1:47
Version    : 2
AS capable : yes
...
Statistics:
Sync messages received                 : 5333
Follow Up messages received            : 6030
Path Delay Request messages received   : 699
Path Delay Response messages received  : 697
Path Delay messages threshold exceeded : 0
Path Delay Follow Up messages received : 697
Announce messages received             : 698
ptp messages discarded                 : 0
Sync reception timeout                 : 698
Announce reception timeout             : 0
Path Delay Requests without a response : 368
Sync messages sent                     : 0
Follow Up messages sent                : 0
Path Delay Request messages sent       : 1065
Path Delay Response messages sent      : 699
Path Delay Response FUP messages sent  : 699
Announce messages sent                 : 699

@jukka thank you for testing, what you say it's eth_mcux issue and not a networking stack problem.

eth_mcux issue and not a networking stack problem.

Well, it certainly looks like that.

I've repeated portions of the test @jukkar ran and am seeing different behavior between IPv4 and IPv6. In short:
gPTP enabled: IPv6 works (both ping and echo), IPv4 fails (both ping and echo)
gPTP disabled: IPv6 works (both ping and echo), IPv4 works (both ping and echo)
I added
CONFIG_WDT_DISABLE_AT_BOOT=y
CONFIG_NET_GPTP=y
CONFIG_NET_GPTP_STATISTICS=y

to my prof.conf
and then ran
west build -p auto -b mimxrt1064_evk samples/net/sockets/echo_server

and flashed using NXP's crt_emu_redlink
My test setup is the NXP dev board connected directly to an ubuntu laptop via ethernet.

In my examples above, I had only IPv6 logs printed but I did test the IPv4 functionality too and there was no difference between them.

The issue appears to be due to IP accelerators on the NXP 1064 processor. Using gPTP is enabling additional 1588 hardware on the NXP processor. This appears to be enabling a hardware accelerator which will calculate and insert the IP header checksum. The hardware IP accelerator requires that the IPv4 header checksum from the software application be set to 0 otherwise bad IPv4 header values are showing up in wireshark. I have not found any documentation stating that the checksum accelerator is enabled when the 1588 hardware is enabled but this is the behavior that I am seeing.
I've been able to get gPTP, ping and http to work if I 0 the ipv4_hdr->chksum value in:
zephyr/subsys/net/ip/ipv4.c -> function net_ipv4_finalize

Zephyr supports checksum offloading for RX and TX network packets so if the Ethernet drivers sets ETHERNET_HW_TX_CHKSUM_OFFLOAD capability, then the IP stack will not calculate the checksum for TX packets. Unfortunately atm this setting applies to IPv4, TCP and UDP protocols so if NXP hw only calculates it for IPv4, then this setting cannot be used.

@bcdonovan please test pull #21269 it enables hw checksum on bot rx and tx.
I tested on i.mx 1050 rt, echo_server with -DCONFIG_NET_GPTP=y -DCONFIG_NET_GPTP_STATISTICS=y, pinging works on both ipv4 and ipv6.
Still having issues with K64F which uses the same driver when enabling gptp.

@jukkar @bcdonovan by checking the registers, checksum was disabled

k64f is slower, tx buffers are flooded, increasing Tx bufers number fixes the issue, i.MX has a much faster core.
 config ETH_MCUX_TX_BUFFERS
 	int "Number of MCUX TX buffers"
-	default 1
-	range 1 1
+	default 4
+	range 1 16

please test pull #21269 it enables hw checksum on both rx and tx.

So, I'm testing #21269, and as it is, it visibly regresses frdm_k64f. While there seems to be a way to "fix" it, I personally would have reservation about enabling acceleration features by default. Reason should be obvious: with software issues, we can debug and fix them, with hardware issues, debugging them is much more complicated and fixing are oftentimes not possible. Actually, even figuring out that hardware accel may be involved with some issue may take quite some time and pulled hair. (I'd say this ticket rather shows that, than not.)
And reading thru comments in this ticket, I don't see immediate connection between what's discussed here and #21269. I applying some guesswork, I may imagine the logic might be: "If there's a speculation (not backed by doc references so far, not backed by checking hardware state) that gPTP enables hardware accel, let's just enable it by default". But I wouldn't like to do guesswork, so @agansari, could you please explain in detail the relation of this issue and that patch?
And even assuming the above somehow mirrors the actual situation, I'd personally stay on the safe side, and: a) would make eth_mcux hw accel to be a Kconfig option; b) keep it off by default like it was before, and only enable it in case of gPTP is enabled.

@pfalcon after some code (fsl_enet), documentation investigation (i.mx 1050 and k64f ENET chapter) and configuration testing i found the following:

the issue is observed on Tx frames
the software culprit is ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
hardware wise, the definition above sets hardware in a new state as you guesstimate.

So, gPTP need an extended buffer descriptor to store 1588 timestamps, and this is okay; the issue we have is registers PINS and IINS are not used in software. Extended buffers aren't used in 'normal' mode, a legacy buffer descriptor is used and checksum is correctly passed to networking hardware.
Enabling overall hw accelerated ip+protocol checksum makes it work correctly, and I find enabling this for each buffer descriptor is just an overhead.
I advocate for enabling default hardware acceleration and will add my comment in #21269.
Reference: (i.mx1050/k64f) <IP_ADDRESS>/<IP_ADDRESS> Enhanced transmit buffer descriptor.
Also, we need >=2 Tx buffers in this scenario, gptp floods the driver and ARP can't be reached.

Re-opening as there are issues still with frdm-k64f


[DUOS-2068][risk=no] Move file type to consent group

Addresses
https://broadworkbench.atlassian.net/browse/DUOS-2068

Have you read Terra's Contributing Guide lately? If not, do that first.

Label PR with a Jira ticket number and include a link to the ticket
Label PR with a security risk modifier [no, low, medium, high]
PR describes scope of changes
Get a minimum of one thumbs worth of review, preferably two if enough team members are available
Get PO sign-off for all non-trivial UI or workflow changes
Verify all tests go green
Test this change deployed correctly and works on dev environment after deployment

I' a little confused on the implementation here. As I understand it, "Filetype" is an object with three properties, File Type, Functional Equivalence, and # of Participants. Looking at this UI, I still see the "Add New Filetype" button which, I believe, should be in the consent group box as well.

@rushtong required a decent amount of refactoring, but just got the full file type section moved to the consent group!


small issue

thank you for making this package also the link to the repo is wrong it goes to another repo

this the link for the package https://www.npmjs.com/package/remark-mark-highlight


Conditional element collect

This is the preliminary commit for issue #166.  The primary bits in the code consist of the collectNode which inherits the fromNode.  Both provide a fact that is not in working memory.
There are debatable code artifacts in this commit.
a.) I broke the Match class out of the context.js file, because I use it in the collect node for maintaining the set hash.

I am closing this pull request with a plan to reopen it with a smaller delta from the master branch.  I decided that there was refactor work included in the PR that should have been broken into separate PR requests.


Write instructions for disabling pytest-timeout

For pdb/ipdb usage pytest-timeout should be disabled.
py.test tests -p no:timeout -s is required
Document it in http://aiohttp.readthedocs.io/en/stable/contributing.html page.
Modify make vtest to use -p no:timeout feature.

Fixed by 6b14ce83


Load Helm chart icon

Is your feature request related to a problem? Please describe.
Helm charts can have an assigned icon. That icon is referenced in the Chart.yaml file in the Helm chart. The scope of the task is to load the icon URL from the Helm chart, map it to the Cyclops template and return it when the template is requested on the cyclops-ctrl.
Describe the solution you'd like
Add iconURL field to the template model and populate it in the mapHelmChart function with metadata.Icon

I would like to work on this issue
/assign

Hey @shubhamch71, sure thing! Let me know if you need any help


raise RuntimeError('Could not get the external IP')

Hello,
I tried to use find_an_save.py example in my code to occasionally produce a list of proxies. After calling the main function and getting the proxy file successfully few times, I get below error. I tried every work around I could think of without success, even exception handling and recalling the function in a new scope does not help. I do not understand asyncio-await routine so I am not able to play with it's related code.
 File "proxygetter.py", line 6, in <module>     proxyer.main()   File "/root/Desktop/Projects/forexfactory/proxyer.py", line 25, in main     loop.run_until_complete(tasks)   File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete     return future.result()   File "/usr/local/lib/python3.7/dist-packages/proxybroker/api.py", line 173, in find     ip = await self._resolver.get_real_ext_ip()   File "/usr/local/lib/python3.7/dist-packages/proxybroker/resolver.py", line 109, in get_real_ext_ip     raise RuntimeError('Could not get the external IP') RuntimeError: Could not get the external IP

So after proxybroker throws the RuntimeError, is it the case that asyncio does not exit the event loop? If that's the case you can checkout my answer to issue #127

Strangely, I can't reproduce the error now. I think It is somehow related to #25. Thank you @MikeZ77 I will try your solution when I am able to produce it again.


Disable the REPL test when no LLDB is found in the toolchain.

We have build bots that build swift but do not build lldb, this ensures that this test does not fail in that environment.
Example of such build bot:
https://ci.swift.org/job/oss-swift-incremental-RA-linux-ubuntu-16_04-long-test/6634/console

@swift-ci please test


Pinning mlflow to not pick the latest mlflow2.0 release

Signed-off-by: Sunish Sheth<EMAIL_ADDRESS>

@sunishsheth2009 thanks for the PR, looks good! Do we plan to update the example ML code in the stacks to use MLflow 2.0 once it's out?

@sunishsheth2009 https://github.com/databricks/mlops-stack/blob/main/dev-requirements.txt#L4

@mengxr Yes I thought about changing that: https://github.com/databricks/mlops-stack/blob/main/dev-requirements.txt#L4
but then realized that the code linked is not part of MLP. so it could download another version of MLFlow independent of the pipeline. So didn't change that. Let me know if I am missing something.
cc @vladimirk-db and @smurching

@sunishsheth2009 thanks for the PR, looks good! Do we plan to update the example ML code in the stacks to use MLflow 2.0 once it's out?

Yes we have a follow up task to update that repo with the new 2.0 changes. :)