Copy topicmeta when keyref used on topicref

Description
Today, when I define a key with <topicmeta> (including a title, link text, or anything else), and then I refer to that key from a topicref (<topicref keyref="sample"/>), none of the topicmeta is preserved on the reference -- only attributes are copied. In the Keyref writer, this is because it explicitly checks for topicref elements, and does not write out any sub-elements when the element ends. For other elements (such as link, keyword, etc) it checks for empty content, and then writes out any required text.
This update removes that "if topicref" test that skips all sub-element, processing. Then, if the element is topicref, and if there is no sub-element, and there is a topicmeta element with the key definition, it copies that topicmeta into the keyref element. This ensures we preserve link text and any other metadata.
There is also an additional tweak to the domToSax method. Currently, in all cases, when writing out <linktext> from the key definition, the @class value is changed from map/linktext to topic/linktext. This makes sense for all previously handled cases but breaks map processing; when the link text is written out inside of topicmeta the original class must be preserved. I've updated the method so that by default it keeps the current behavior (change classes), but when calling from the topicref context, we can turn off that swap and keep the original classes.
This is not a complete fix: it does not add topicmeta if the element with @keyref has other topicref children, AND it does not add or merge metadata if the element with @keyref has different metadata. Both of those should be possible, but with the streaming nature of this class I think it would require a lot more tests in startElement and/or endElement to ensure elements are added/merged in the right order. I didn't need any of that so focused here on the simple case.
Motivation and Context
I have external links defined using keys, for example:
<keydef keys="ditaot" href="https://www.dita-ot.org" scope="external" format="html">
  <topicmeta>
    <linktext>DITA Open Toolkit</linktext>
  </topicmeta>
</keydef>

I refer to that key in a relationship table:
<relcell><topicref keyref="ditaot"/></relcell>
When @keyref is resolved today, only the attributes are preserved -- so I get the correct link, but everything in topicmeta is discarded. As a result, all links added based on this relationship table appear using the link text https://www.dita-ot.org rather than the actual desired link text DITA Open Toolkit. With this fix, the link text is preserved inside the key reference, and the link is correct.
This also fixes #1439 using the sample provided in that report -- because the topicmeta is preserved, the link text is preserved to be used in whatever way needed for the TOC, so we now get consistent TOC behavior for links defined with a URI and for the same links used via keys.
How Has This Been Tested?
Test set here, based on #1439 and adding my relationship table case:
1439.zip
Also resulted in modifications to several existing unit / integration test cases that exhibited this behavior.
Type of Changes

Bug fix (non-breaking change which fixes an issue)

Checklist

My code follows the code style of this project.

https://github.com/dita-ot/dita-ot/wiki/Java-Coding-Conventions
https://github.com/dita-ot/dita-ot/wiki/XSLT-Coding-Conventions

I have updated the unit tests to reflect the changes in my code.

Could you rebase this onto develop and change the target branch on this PR?

Working on rebase to develop - I've got the code working, and the test case working, plus suggested switch away from using the topicmeta local name ... but for some reason it's failing with the key scope test case added for 3.3. Trying to get that worked out so this can be merged to develop.


Add export setting to specify whether the native libraries should be compressed for the gradle build

Fixes https://github.com/godotengine/godot/issues/78780

Thanks!


How to install qiime sourcetracker2 gibbs

Hi - I'm running qiime2-2020.6 and I was wondering if the qiime sourcetracker2 gibbs plugging is available for this version of qiime2. I looked over a tutorial (pasted below) and through the qiime2 resources, but I don't see any methods on how to install sourcetracker2 gibbs within the qiime2 environment. Any suggestions?
Thanks,
Stephanie
https://nbviewer.jupyter.org/github/cameronmartino/sourcetracker2/blob/q2plugin/ipynb/Sourcetracking-using-QIIME2.ipynb

Hi @srosales712 The installation instructions are on the main page of this repository. You can find them here: https://github.com/biota/sourcetracker2#installation

您好 - 我正在运行 qiime2-2020.6，我想知道下面 qiime sourcetracker2 gibbs 插件是否适用于 qiime2 的版本。我查看了教程（粘贴在）并浏览了 qiime2 资源，但我没有在 qiime2 看到任何相关如何操作环境中安装sourcetracker2 gibbs的方法。有什么建议么？
谢谢， 斯蒂芬妮
https://nbviewer.jupyter.org/github/cameronmartino/sourcetracker2/blob/q2plugin/ipynb/Sourcetracking-using-QIIME2.ipynb

Hello Professor, could you please provide me with a tutorial on how to install the sourcetarcker plug-in in qiime2?


Could not parse value from line '0-0:96.14.0(0001)'

Hi,
Just tested yesterday, all working fine except in HA (ESPHome).
Except I can't read the the 96.14.0 (tarif code = 1 for Day, 2 for night)
Got the same error for other data:
[13:07:29][D][P1Mini:266]: Could not parse value from line '/FLU5\253770234_A'
[13:07:29][D][P1Mini:266]: Could not parse value from line '0-0:96.1.4(50217)'
[13:07:29][D][P1Mini:266]: Could not parse value from line '0-0:96.1.1(3153414731313030313939343531)'
[13:07:29][D][P1Mini:266]: Could not parse value from line '0-0:1.0.0(241227130754W)'
I guess bescause data are not value but text ?
Even adding this line in my YAML:
- platform: p1_mini
  p1_mini_id: p1_mini_1
  obis_code: "96.14.0"
  name: "ESPHome_P1 Tarif"

Got in HA:
ESPHome_P1 Tarif -> Inconnu
How to use this data ?
Second question is about handling such data:
[13:07:33][D][P1Mini:266]: Could not parse value from line '0-0:98.1.0(13)(1-0:1.6.0)(1-0:1.6.0)(231201000000W)(231119174500W)(05.178kW)(240101000000W)(231210190000W)(06.057kW)(240201000000W)(240113191500W)(05.670kW)(240301000000W)(240204190000W)(05.078kW)(240401000000S)(240309160000W)(06.621kW)(240501000000S)(240412230000S)(03.783kW)(240601000000S)(240525210000S)(04.730kW)(240701000000S)(240623201500S)(05.022kW)(240801000000S)(240729210000S)(04.120kW)(240901000000S)(240811181500S)(05.364kW)(2410010
98.1.0 is the max current for the last 12 months...
Using 'ESPHome version 2024.12.2 compiled on Dec 27 2024, 12:55:46'
Best regards,
Roland

Hi, I'm leaving in Belgium ... it's a meter 'Siconia S211' from ORES.
Goal is to have a the information about the 'Tarif rate' used (day or night) and this value give me the right info.
Can you help me ?

How does the tarif information look in the message? I don't see it in your examples. There is "0-0:96.1.4", is that what you mean?

The info provided is like this (used in an old integration):
| replace('0001', 'Jour') | replace('0002', 'Nuit')

Ok, it is currently not possible to get this information, but I am considering adding a string sensor that could be used to match any line and send the result as text.
I am not making any promisses though...

Super, I can wait, don't worry :-)
Anyway, many thanks for this super job !

I have created a new branch "text_sensor" that you can try out: LINK
There you should be able to create a text sensor, like this:
text_sensor:
  - platform: p1_mini
    name: "Tarif rate"
    p1_mini_id: p1_mini_1
    identifier: "0-0:96.14.0(000"

This will give you the whole line as text. You could probably filter it like this:
    filters:
      - map:
        - 0-0:96.14.0(0001) -> Jour
        - 0-0:96.14.0(0002) -> Nuit

Try it out and let me know if it works!


refactor(docker): leverage docker multistage build

Pull Request Test Coverage Report for Build 276431841

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 79.195%

Totals

Change from base Build 276304226:
0.0%

Covered Lines:
91

Relevant Lines:
108

💛  - Coveralls


Enable pixi

Pixi is a useful package manager that contains the environments within the repository itself. Therefore there is no need to set up environments. We can simply pixi run -e test code . to open visual studio code. And we can pixi shell or pixi shell -e test to activate the current environment
Depending on optional dependencies or not, one will need to specify the environment (-e test).

As an addition to this PR, we could change CI to setup with pixi, which can be super fast and also with a caching mechanism.

As an addition to this PR, we could change CI to setup with pixi, which can be super fast and also with a caching mechanism.

sounds good to me


Error using<EMAIL_ADDRESS>

Hello,
running poetry blixbuild breaks and doesn't work with the latest version of poetry<EMAIL_ADDRESS>[tool.blix.data] section not found in /build/pyproject.toml, no data_files to process
__init__() missing 1 required positional argument: 'name'
error building image: error building stage: failed to execute command: waiting for process to exit: exit status 1

Cheers

Ah, the test updates poetry in the environment, but not the virtualenv where the test is ran

Released poeblix 0.4.0
https://pypi.org/project/poeblix/
https://github.com/spoorn/poeblix/releases/tag/0.4.0
Let me know if there are still issues

Works perfect, thanks!!

Hello,
I reopen this issue due to the recent update to v0.5.2, which seems that it's not supported for poetry 1.2.0b3
Using version ^0.5.2 for poeblix
Updating dependencies
Resolving dependencies...
Because no versions of poeblix match >0.5.2,<0.6.0
 and poeblix (0.5.2) depends on poetry (>=1.2.0rc1,<2.0), poeblix (>=0.5.2,<0.6.0) requires poetry (>=1.2.0rc1,<2.0).
So, because poetry-instance depends on both poetry (1.2.0b3) and poeblix (^0.5.2), version solving failed.
error building image: error building stage: failed to execute command: waiting for process to exit: exit status 1

Do you plan to support it?

@Caetan95 I believe 0.5.0 should work for 1.2.0b3, if you're still on that version of poetry, you could try pinning poeblix to that version

It seems to work, thanks!


Fix the API of glyph_dimensions to make webrender compile on Windows

See https://github.com/servo/webrender/issues/2645 - this fixes 2 of the 6 errors I get when compiling webrender on Windows.
I decided to use the same API that is used for Mac & Linux builds, with the extra exact parameter and returning an Error instead of an Option. Maybe it would be a good idea to change it back to Option instead of Err<()>, but then please change it in all 3 APIs.

The Windows PathfinderFontContext was missing the add_native_font function. I've simply copied + adapted the function from the Mac version + exported the necessary types (so that in webrender we can have a Into<PathfinderComPtr<IDWriteFontFace>> (similar to the current Mac interface).

@pcwalton I made the API more or less like the Mac version, I hope it's ok to do this.

Merged, sorry for the delay! Thanks!


AVIF option in the dropdown is unselectable.

Sorry for disturbing.
 I noticed this as well and fixed the issue in https://github.com/adamsilverstein/modern-images-wp/pull/34 after you opened this issue. Can you please give this another test with the latest version?

Thank you so much for your helping. It works now.


"AddRestEaseClient"  could register multiple interfaces for the same configuration?

Hi,
Is there a way that AddRestEaseClient  could register multiple interfaces, something like:
.AddRestEaseClientMultiple()
    .Add<IAdminClient>()
    .Add<IStorePublic>()
   // all having the same configuration
    .Close()  // now returns to IHttpClientBuilder
.ConfigureHttpClient((service, client) => client.BaseAddress = Program.basePath)
.AddHttpMessageHandler<BaseAddressAuthorizationMessageHandler>();

Thank you for your time

Which method would the params such as baseAddress, configurer and requestModifier be passed to?

Which method would the params such as baseAddress, configurer and requestModifier be passed to?

Sorry for the delay,. I think I didn't quite explain correctly.
I usually create several clients like UserClient , ProfileClient and so on, and those clients share a common configuration settings like baseAddress  and some common HttpMessageHandlers.
So there is no way to pass multiple clients registration that will share some common configuration?
I don't think you should create a new API for this,  I thought there was something  out of docs for this sugar, but thanks.

There isn't currently. It wouldn't be hard to add something I think: you'd probably want to turn the API around a bit and call:
services.AddHttpClient(...).AddRestEaseClient<T1>().AddRestEaseClient<T2>()...;

You wouldn't be able to pass in a baseAddress or HttpMessageHandler to AddRestEaseClient of course: those need to be registered with the HttpClient, so you'd need to configure them there.

ok,  I see your point. Thank you again.

Reopening, as I think this is probably something worth implementing.

I'm new to this library but I've created a factory class where I pass in the IApi type I need and then return the RestClient.For<T>(...) and handle all of my logic e.g. adding the Bearer token etc. so I can keep my code DRY. The solution above would really help with that, unless there's another way already to globally add adding headers?

This issue won't be relevant to you if you're configuring a RestEase interface after constructing it, before returning it. It's just about if you're using HttpClientFactory and IServiceProvider.
If you've got other questions, please open another issue. Thanks!


Screen Width

Screen width is initialized as 600, it should be 650+.

Yes you are right, Thank you.


Generate SBOMs for Egeria (all repos)

Is there an existing issue for this?

[X] I have searched the existing issues

Please describe the new behavior that that will improve Egeria
SBOMs (Software Bill of Materials) can include information about

packages
licenses
vulnarabilities

as part of the information on the software supply chain. See https://en.wikipedia.org/wiki/Software_supply_chain
SBOMs should be associated with each deliverable - for example maven artifact, distribution, container. They also must be signed
The two main formats are:

SPDX
CycloneDX

Tooling is available for a variety of languages, though it is still very much work in progress.
Organizations are increasingly focussing on software supply chain, so we need to look at what some (small) steps are that we can take in Egeria to make this easier.
Creation of SBOMs has been one suggestion - this may involve either build-time creation through a maven/gradle plugin, or use of external tools.
Alternatives
No response
Any Further Information?
No response
Would you be prepared to be assigned this issue to work on?

[X] I can work on this

Observation: Sonatype Life (which scans our code) can generate CycloneDX SBOMs with vulnarability information. See https://lift.sonatype.com/results/github.com/odpi/egeria/01G5PTAEMBCH6PTJ4F8GFTVQAV?tab=dependencies

See also https://github.blog/2023-03-28-introducing-self-service-sboms/ & referenced actions


Change Dockerfile to run jre8 instead of alpine

I'd like to review this PR after @mst-ableton, please!

@dgl-ableton can you fix the hadolint errors in CI? You'll need to pin the apt dependencies.

@ablbot autosquash

@nre-ableton you're up!


Why no slots in layouts?

Hey!
With our current project, me and the team was wondering what was the reasoning behind the decision to not support slots in layouts?
We ran into it when we realized that a CSS grid layout would work best for our responsive view, since each page knows what kind of sidebar or extra content is required in this specific case. For that the structure would need to be like this:
html
  head
    ...
  body
    my-header
    nuxt
      #content
        slot
      #sidebar
        slot(name="sidebar")
      #extra
        slot(name="extra")
    my-footer

Right now the two options we see are using a separate layout component or somehow coordinating sidebar and extra components to make their own requests according to current route, but both feel at odds with overall simplicity Nuxt aims for.

Why not Dynamic Components?
https://vuejs.org/v2/guide/components.html#Dynamic-Components

@awronski Dynamic Components are cool, but they're also very much over-engineering for current use-case. We just want to compose content and only a few of our pages have a separate component in the sidebar slot.

Hi,
The <nuxt> component includes a <router-view> tag so that's why we cannot use slots.
Nested routes can be a solution in your case.


Updated some things and added some aliases

Many aliases introduce chaos in code. That's not needed.

That's understandable, the sendMessage for the Friend structure still seems nice.


Code breaks minification

Hi,
Expected behaviour
I use gulp to minify (uglify) my code, including yours as a bower component. The uglify process errors out because of:
SyntaxError: Unexpected token name «$», expected punc «)»]

The line it is referring to is probably this:
replace:function(b){b&&(a.isArray(b)||(b=[b]),this.clear(),this.push.apply(this,b)$.isFunction()},clear:

See the random $.isFunction().
Datepicker version used
The latest master, because my bower.json is "bootstrap-datepicker": "*"
https://github.com/eternicode/bootstrap-datepicker/commit/6788e92fc9d277a93c7be5e11236c0ec583af679

https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.3/js/bootstrap-datepicker.min.js
I have the same problem,  Uncaught SyntaxError: Unexpected identifier

Indeed, just verified it with setting an explicit bower version: 1.6.3 breaks the minification, while 1.6.2 works.

I don't know what went wrong, but deleted the minified js file and regenerated it. This fixed the issue. New dist files were generated on master and v1.6.4 was pushed with the correct minified file!
Thanks for reporting @Lambik

Thanks for the quick fix!


Apache License 2.0

Added here already: https://github.com/projectNEWM/newm-mobile/pull/37

Added here now into the new README: #37

Awesome, will go ahead and close this PR


Default exported class is not picked up correctly

First of all thanks for the great tool! It is really providing a lot of value when cleaning up old code.
I found a bug when exporting classes in the default export:
// a.js
export default class User extends Person {
  walk() {
    console.log("I'm walking");
  }
}

// b.js
import User from './a';

new User().walk();

shrimpit! Output:
 Shrimpit!

 > Files tree

{ '.': null,
  'a.js': { exports: [ 'walk', '/' ], imports: [] },
  'b.js': { exports: [], imports: [ '/' ] } }

 > Unused exports

[ 'walk' ]

Expectation: It should not traverse the members of the class declaration, it should simply check whether the "Default" export of a.js is used anywhere.

Default exports might be broken in general, I see a similar issue for functions:
// a.js
export default function A() {

}

// b.js
function B() {

}

export default B;

// c.js
function C() {

}

export default C;

// d.js
import A from './a';
import B from './b';

A();
B();

shrimpit! output:
 Shrimpit!

 > Files tree

{ '.': null,
  'a.js': { exports: [ 'A' ], imports: [] },
  'b.js': { exports: [ '/' ], imports: [] },
  'c.js': { exports: [], imports: [ '/' ] },
  'd.js': { exports: [ '/' ], imports: [] } }

 > Unused exports

[ 'A' ]

As you can see the B default export is picked up correctly, A however is marked as unused. Even worse, D is not marked as unused, because it appears to be stored as the same import/export path as the default export of B.

The new version of shrimpit (0.17.0) introduced new behavior, however it still outputs exports that are actually used. Consider the following example:
// a.js
export default function a() { }

// b.js
export default class B extends React.Component {
  componentDidMount() { }
  render() { return null; }
}

// c.js
import a from './a';
import B from './b';

shrimpit output:
 Shrimpit!

 > Unused exports

[ { name: 'a', location: 'a.js' },
  { name: 'B', location: 'b.js' },
  { name: 'default (unamed)', location: 'b.js' } ]

Expected output:
'a' should be fine because it is imported in c.
Also b should be fine because it is also imported in c.
I'm also not sure why B turns up twice in the output, once as B and once as default (unamed)

@peterjuras the latest release should have fixed the aforementioned issue 🤞, feel free to reopen it if this is not the case (I've moved that comment here as I've initially attached it to the other closed issue 😄)!

Sadly it appears that version 0.18.1 still did not fix the bug :/
This is the new shrimpit output for my last example. I would expect both a and b to not show up because they are imported in c.js
shrimpit output:
Shrimpit!

 > Unused exports

[ { location: 'a.js', name: 'a', unnamedDefault: true },
  { location: 'b.js', name: 'B', unnamedDefault: true } ]

OK, I'll have a look at it again (I thought it was passing yesterday...) 👍.

Thank you for looking into this. Your module is a game changer when it comes to cleaning up old source code! 🙏

@peterjuras Can you please give https://github.com/yamafaktory/shrimpit/releases/tag/v0.18.2 a try? Thanks!

Thanks, this solved some issues. Now the next issue that I encountered is the following:
// b.js
export default class B {
  test = () => {};
}

import B from "./b";

Shrimpit output:
 Shrimpit!

 > Unused exports

[ { location: 'b.js', name: '/', unnamedDefault: false } ]

What is interesting here is that the class property introduces this behavior. If test is written like this:
test() { }

no unused export is shown. Do you know where the problem could lie?

@peterjuras I've released a new version with a fix https://github.com/yamafaktory/shrimpit/commit/396d16ad913e1ab84666ba37904e8a22a8f6d09c.
Please give it another try and let me know! If this fine, please close the issue. If you encounter another bug, please open a new issue (will be easier to track everything in different threads), thanks a lot 👍.

Thanks this issue is solved. I encountered a new one, but as you suggested I'll open up a new issue.


Skeleton updates

This PR brings the package up to date with the skeleton v0.2.0.
Note that there is a rather large amount of ambiguities related to wrapping number types like this, which I did not yet solve here. (similar to LabelledNumbers.jl)
There are also a couple type piracies that should be resolved.
As a comment for future reference: it might be easier to define GradedAxis along the following lines:
struct GradedUnitRange{Label,T,BlockLasts,GBU<:AbstractGradedBlockUnitRange{T,BlockLasts}} <: AbstractGradedBlockUnitRange{T,BlockLasts}
  blockunitrange::GBU
  labels::Label
end

This avoids the need of having the labels being integers etc, thus circumventing the invalidations/ambiguities.

As a comment for future reference: it might be easier to define GradedAxis along the following lines:

We can try that again, that is closer to the original design from a while ago but I moved to the latest design with the hope that we could take advantage of more generic range code in Base and BlockArrays, while preserving the sector information to use it when it is needed. I think it is still up for debate if the tradeoffs of that design are worth it, but what I like about the current design is that when you index into a GradedUnitRange, i.e. g[2], it outputs the range value along with information about the sector. That is consistent with the fact that we want slices like g[Block.(2:3)], g[2:5], g[Block(2)], etc. to preserve the sector information.


Fixed #33517 -- Prevented second lookup from returning fractional seconds on PostgreSQL.

Not sure if the tests are written properly (the need for a new class and the usage of psycopg2.extras). But the test correctly detects the error before the fix.

@felixxm Done


Great Bugs!

you scan frame seems useless, and scan area is full screen scope!

Hi, yes I know. The provided overlay which contain the scan frame is just a demonstration one, it not aims to restrict the scan area (at least for the moment). To do so you will have to work with the QRCodeReader object and create your own custom view.


Calling WorkspaceEdit.createFile(uri, { ignoreIfExists: true }) twice discards future edits

WorkspaceEdit's create function has an ignoreIfExists option for convenience to avoid us having to check if files exist. However, if you call it more than once, the edits made after the second call are discarded.
The following code:
changes.createFile(uri, { ignoreIfExists: true });
changes.replace(uri, new vs.Range(new vs.Position(0, 0), new vs.Position(0, 0)), "ONE");
changes.replace(uri, new vs.Range(new vs.Position(0, 0), new vs.Position(0, 0)), "TWO");
changes.createFile(uri, { ignoreIfExists: true });
changes.replace(uri, new vs.Range(new vs.Position(0, 0), new vs.Position(0, 0)), "THREE");
changes.replace(uri, new vs.Range(new vs.Position(0, 0), new vs.Position(0, 0)), "FOUR");

Results on ONETWO being inserted at the start of the document. The code executes without error (it hits the last line), the edits are just discarded.
This means we have to keep track of whether we've called it before when looping through edits from our language server - I don't think this is intended (it would be slightly more understandable if the first edits were lost, since the create call maybe was resetting the file, but this is very confusing).

@DanTup For me the document shows THREEFOURONETWO

Ugh, wha? :(
Here's my full code (I'm calling this from a command from the palette):
private async organizeImports(document: vs.TextDocument): Promise<void> {
	document = document || this.getActiveDoc();
	const uri = document.uri;
	const changes = new vs.WorkspaceEdit();
	changes.createFile(uri, { ignoreIfExists: true });
	changes.replace(uri, new vs.Range(new vs.Position(0, 0), new vs.Position(0, 0)), "ONE");
	changes.replace(uri, new vs.Range(new vs.Position(0, 0), new vs.Position(0, 0)), "TWO");
	changes.createFile(uri, { ignoreIfExists: true });
	changes.replace(uri, new vs.Range(new vs.Position(0, 0), new vs.Position(0, 0)), "THREE");
	changes.replace(uri, new vs.Range(new vs.Position(0, 0), new vs.Position(0, 0)), "FOUR");
	await vs.workspace.applyEdit(changes);
}

Here's what my doc looks like afterwards:

Seeing same behaviour in latest Insiders too. Is your code any different to mine?

Oh also:

For me the document shows THREEFOURONETWO

That does not seem right - it should be ONETWOTHREEFOUR, right? The edit is atomic and the positions were all the same? Maybe you had two separate edits somehow?

Below is my snippet. It matters if the file already exists the very first time or not. Also, there is an error being printed. @DanTup don't you see that error?
ERR Error: file:///Users/jrieken/Code/_samples/ConsoleAppDnx/test.fsx.txt has changed in the meantime
    at BulkEdit.<anonymous> (bulkEditService.js:409)
    at step (bulkEditService.js:50)
    at Object.next (bulkEditService.js:31)
    at fulfilled (bulkEditService.js:22)
    at <anonymous>

 let { document } = vscode.window.activeTextEditor;

        let edit = new vscode.WorkspaceEdit();
        let uri = document.uri.with({ path: document.uri.path + '.txt' });
        // let uri = document.uri;

        edit.createFile(uri, { ignoreIfExists: true });
        edit.replace(uri, new vscode.Range(new vscode.Position(0, 0), new vscode.Position(0, 0)), "ONE");
        edit.replace(uri, new vscode.Range(new vscode.Position(0, 0), new vscode.Position(0, 0)), "TWO");
        edit.createFile(uri, { ignoreIfExists: true });
        edit.replace(uri, new vscode.Range(new vscode.Position(0, 0), new vscode.Position(0, 0)), "THREE");
        edit.replace(uri, new vscode.Range(new vscode.Position(0, 0), new vscode.Position(0, 0)), "FOUR");

        vscode.workspace.applyEdit(edit);

You're right, the behaviour differs if the file exists or not - but I think both are broken:

If the file already exists, the 3rd/4th edit are ignored - we're passing ignoreIfExists which suggests the create should be a no-op, so it doesn't seem right that edits are discarded
If the file does not exist, the file ends up saying THREEFOURONETWO but ONETWOTHREEFOUR is expected

I do not see the error you get, however if I try to close the unsaved file with the dev tools open, it does seem to pause on a rejected promise (though doesn't write to the console). I think that maybe normal (the ext. dev host doesn't show the save prompt).

What are your save settings? Auto save, save on focus out?

Just all defaults in dev host (no auto saving).
Weirdly, I am now seeing "Error: file:///Users/dantup/Desktop/Dart%20Sample/test/main.dart has changed in the meantime" when this code runs. I tried several times earlier and didn't see it :-/ Probably that's related to the issue then.
As for the other thing (breaking on promise reject when closing the window), that seems unrelated to the creation of the file since it happens even when modifying any file in the dev host and hitting Ctrl+W to close it. It may be normal, I guess rejected promises are treated like unhandled exceptions and break by default.
Looks like this (if you think it is an issue, I can open a new issue for it to avoid confusing this one):

deleteFile has the same behavior even if set ignoreIfNotExists to true,
createFile use overwrite does the same.
I am using vscode 1.39.1


Modified the lint-all code to check for newlines at the end of files

PR for the Issue #536
I added the code to check for newlines at the end of the files.
Please check the commit and let me know if anything has to be changed :)
Thanks

Automated message from Dropbox CLA bot
@varshit97, it looks like you've already signed the Dropbox CLA. Thanks!

It would work to use the line variable after the end of the loop, but that's perhaps poor coding style.  Posted one more comment on style.
Regardless, you should squash the commits and force-push the updated 1-commit branch -- this is a single logical change to the codebase.

@timabbott Would there be any case like, a file having a single line and due to the continue in the loop the lastLine variable remains empty? In such a case that line should be at the starting of the loop.

Yes, a single-line file is a possibility.
What I was suggesting would work but is questionable style is something of this shape:
for line in ...:
    # do stuff
if '\n' not in line:
    # report error

Where we use the line loop variable after the loop has finished.
On the front of squashing commits, for smaller changes like this, I'd actually prefer you squash commits every time you make tweaks to it; since my review process is going to be checking that the updated code is correct, not looking at the final bugfix commit to the previous commit.  Does that make sense?

@timabbott That makes absolute sense. Will do from now on :)

Cool, thanks for doing this @varshit97, merged!  I made a small tweak to the commit message to use an action verb "Extend lint-all", rather than the past tense "Modified".

@timabbott Thanks :). Looking forward to working with you :D

@varshit97 just an FYI on a useful trick with GitHub (and most bug trackers really) -- when you fix a bug in a commit, you can put "Fixes #536." in the commit message, and then when we merge the commit to master, it'll automatically close the original bug report.  Note it needs to be in an actual commit, not the overall pull request description, for this to work.

@timabbott Oh nice. Didn't know this. Thanks for the suggestion. :D


Workaround Windows System Keyboard caused by Unity bug

Overview
On HoloLens devices, the touchscreen keyboard cannot be re-opened after it has been closed once. This is caused by a bug in Unity's UWP implementation of their TouchScreenKeyboard. The Unity bug tracking the issue is tracked here.
This change implements a workaround by providing a MixedRealityKeyboard class that will directly call Windows InputPane.Show() and InputPane.Hide() methods. Thank you to Adam Mollis for the code :-)
MixedRealityKeyboard is marked as experimental, because this is a temporary workaround meant to go away once the Unity bug is fixed. After that bug is fixed we will just use TouchScreenKeyboard.Open() directly.
Changes

Fixes: #4373
Add MixedRealityKeyboard under Experimental as a workaround
Update OpenSystemKeyboard to call TouchScreenKeyboard.Open if not running on UWP, otherwise use MixedRealityKeyboard.
Also fix a bug where 'toggle profile' button was not working by adding a new class that was deleted. See #4738 for details. Fixes: #4738

Verification

Tested in Editor (nothing happens)
Tested on HoloLens 2

/azp run mrtk_pr

This workaround does not work on HoloLens 1.

@julenka I am trying this with MixedReality headset on desktop and even though the UWP specific code is executed inputPane.Hiding and inputPane.Showing do not seem to be executed. Do you know why?

@Alexees do you know which OS build you're running? I believe there was a bug with those events that was fixed in 18362.


Data: project addition by Naina047

Add a new project to the list
I want to add the (portfolio format) Project to your website @priyankarpal
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSoC'23 contributor
[X] I want to work on this issue

Completed. Thanks for your contributions 🎉 ❤


Onboard SecOps to the Security Dashboards that have SSO ready

Describe the Issue
Once BC Gov Compliance Staff are comfortable in the cloud security dashboard environments (currently AWS focused but more later), we wish to create a welcoming user experience for our OCIO Compliance Users.
Additional Context

Julian to let SecOps know Friday Oct 14 that we are lining up to provide them a good experience

Acceptance Criteria

Familiarize yourself with the basic dashboards and capabilities that currently are accessible via SSO (so unfortunately CSPM will need to wait, whereas QuickSight CSPM Summary and SIEM may be viable options) so that you are able to answer basic questions by new Compliance Users
Get the list of people to onboard from Julian (this will include Nick C as well)
Book a 1hr onboarding session with the users, the heads of SecOps (Julian will provide info) and Julian

.
.
.
.
.
.
.
.
.
Extra Template Info
Definition of Ready
These set of conditions will need to be met in order to bring a ticket into the sprint and start work. Protects the team from unclear requirements.
Issues (Task/Story/Spike) aligned to an EPIC and linked appropriately.
Assigned to the appropriate CPF MEMBER (and is not left blank in ZenHub) at the start of sprint (1st day of the sprint)
Acceptance has been defined for the issue and has been reviewed with CPF team and approved by the necessary approver.
Has been sized and estimated by the delivery team.
Detailed breakdown of the steps required to complete the story in the additional context
Any additional specifications have been documented, reviewed with CPF and approved by the necessary approver.
Acceptance Criteria
A set of pre-defined requirement that need to be met in order to mark the user story as “done”.
It should be testable with no room for interpretation
It should be either “pass” or “fail”
It should be clear enough for business stake holders to understand
As part of the user story, it should be written from the user perspective
A well written acceptance criteria is great for

managing expectations
defining scope
reducing ambiguity
establishing testing criteria for QA
Given (Pre-condition)
When (Action)
Then (Outcome)

Definition of Done
These set of conditions are met for work to be considered as complete on an issue.
All acceptance criteria(s) have been validated.
All the necessary documentation for the issue has been uploaded to Teams.
Functionality has been tested when applicable.
Functionality has been demonstrated to the relevant stakeholders (where applicable).
Story has been scheduled for a Sprint Demo/community update and impacted teams invited to the Demo.
Stories accepted by PO and documented for potential sharing with impacted users.

Documented = Captured in Community Update (CU) deck
Release notes = aspirational goal of providing a bulleted list of features and changes that our users can touch. Was going to store them in our Cloud Pathfinder repo. Can also display to users in the CU

Is the list of invitee for first 1 hour session as follows ?
Nick C., Chris C., Alex L., Austin H., Quinn H.

Prabhu M. will have walkthrough for SecOPS next Monday (Oct 31st).


Logout on back pressed

Closes #114

Summary

Logs the user out when the back button is pressed
Added a confirmation Toast before logging out (user has to press back twice)

I'm not the biggest fan of logging out at all when pressing back. (Even if we confirm it with the user) Most apps just return to the home screen.

@bojotamara This implementation only logs the user out when they are on the mood history screen. The back presses on the other fragments/activities still have the same functionality.

@WJXHenry By home screen, I meant like exit the app but don't log out. Pressing back on most apps just exits the app

@bojotamara Oh I see what you mean now. I'll change it to have the back button exit the app without logging out in the mood history fragment


moving node using drag drop plugin

I listen to move_node.jstree event and when i move node using drag drop the event is not fired every time i move a node.
It fires for about 80% of moved nodes and 20% of the moves doesn't fire the event

Sorry, but this is not possible, there is nothing I can do without a demo. Also keep in mind multitree drops will result in copy_node.jstree being fired. If you provide a demo I will reopen the issue.
Best regards,
Ivan


[CELEBORN-1525] Bump Ratis version from 3.1.0 to 3.1.1

What changes were proposed in this pull request?
Bump Ratis version from 3.1.0 to 3.1.1 including:

Remove address2String and use setAddress(ratisAddr) with the release of https://github.com/apache/ratis/pull/1125.
Support raft.grpc.message.size.max must be 1m larger than raft.server.log.appender.buffer.byte-limit for https://github.com/apache/ratis/pull/1132.

Why are the changes needed?
Bump Ratis version from 3.1.0 to 3.1.1. Ratis has released v3.1.1, of which release note refers to 3.1.1. The 3.1.1 version is a minor release with multiple improvements and bugfixes including [RATIS-2116] Fix the issue where RaftServerImpl.appendEntries may be blocked indefinitely, [RATIS-2131] Configuring Ratis fails when hostname is used, and is an IPv6 host. See the changes between 3.1.0 and 3.1.1 releases.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
CI.

In description, diff of changes between the two versions, would be https://github.com/apache/ratis/compare/release-3.1.0...release-3.1.1 ?
Our changes look good to me.

@mridulm, Ratis 3.1.1 version will release this week. Therefore, I converted this pull request to draft. Meanwhile, I used Ratis v3.1.1-rc3 version to test this bumping firstly.

The test failures look related to RATIS-2135

The test failures look related to RATIS-2135

@mridulm, I have supported that raft.grpc.message.size.max must be 1m larger than raft.server.log.appender.buffer.byte-limit for RATIS-2135. PTAL.

Merged to master.
Thanks for fixing it @SteNicholas !
Thanks for reviews @cxzl25 , @szetszwo :-)


S3 Endpoint URL does not with localstack

Hi, we are using Aws SDK Kotlin to handle the AWS operations in our project,  but update to the latest AWS SDK Kotlin 0.35-beta, we will face the endpoint url setting as pathstyle or host style, but either use current http://localhost:4566  or http://s3.localhost.localstack.cloud:4566,  when running my tests locally I got exception like this.
ws.sdk.kotlin.services.s3.model.S3Exception: Failed to parse response as 'restXml' error
	at aws.sdk.kotlin.services.s3.serde.HeadBucketOperationDeserializerKt.throwHeadBucketError(HeadBucketOperationDeserializer.kt:46)
	at aws.sdk.kotlin.services.s3.serde.HeadBucketOperationDeserializerKt.access$throwHeadBucketError(HeadBucketOperationDeserializer.kt:1)
	at aws.sdk.kotlin.services.s3.serde.HeadBucketOperationDeserializer.deserialize(HeadBucketOperationDeserializer.kt:24)
	at aws.smithy.kotlin.runtime.http.operation.SdkOperationExecutionKt$decorate$3.invoke(SdkOperationExecution.kt:192)
	at aws.smithy.kotlin.runtime.http.operation.SdkOperationExecutionKt$decorate$3.invoke(SdkOperationExecution.kt:192)
...

Before storing files into S3, we use a headbucket to check the existence of bucket name, if it is not existed, created one, but the headbucket code caused the  exception.
suspend fun S3Client.bucketExists(s3bucket: String) = try {
    headBucket(HeadBucketRequest { bucket = s3bucket })
    true
} catch (e: Exception) {
    false
}

Any S3Client function will raise an exception, and I can not see any log from the localstack console(I am using a LocalStack v3 from Docker).
Originally posted by @hantsy in https://github.com/awslabs/aws-sdk-kotlin/discussions/1121

Hi, I'm not able to replicate this using the latest version of the SDK and LocalStack. I can make S3 requests to my local stack such as ListBuckets and CreateBucket, and then use HeadBucket to determine if a bucket exists or not. Using your code for inspiration, my replication attempt works fine.
Here is my small sample. I used endpointUrl and forcePathStyle always set to true. I tried both endpoint URL options, http://localhost:4566 and http://s3.localhost.localstack.cloud:4566/, they both worked for me.
    val client = S3Client.fromEnvironment {
        credentialsProvider = StaticCredentialsProvider(credentials = Credentials("foo", "bar", "baz"))
        endpointUrl = Url.parse("http://localhost:4566")
        forcePathStyle = true
        region = "us-east-1"
    }

    try {
        client.headBucket {
            bucket = "non-existent-bucket"
        }
    } catch (e: Exception) {
        println("Bucket does not exist")
    }

    println(client.listBuckets{})

I modified this code to also create a bucket, and verified that the HeadBucket operation was successful.
Can you please try my simplistic example to see if it works for you? That would help narrow down the root cause of your issues. Also, double check to make sure your versions are all set to the latest (LocalStack latest, SDK 0.35.0-beta).

I also tried to use endpointUrl and forcePathStyle in my codes.
    @Bean
    fun awsS3Client(awsCredentialsProvider: CredentialsProvider, properties: AwsProperties): S3Client {
        return S3Client {
            credentialsProvider = awsCredentialsProvider
            region = properties.region
//            endpointProvider = properties.endpoint?.let { url ->
//                S3EndpointProvider { Endpoint(url) }
//            } ?: DefaultS3EndpointProvider()
            endpointUrl= properties.endpoint?.let { Url.parse(it) }
            forcePathStyle = !properties.endpoint.isNullOrBlank()
            logMode = LogMode.LogRequestWithBody
        }
    }

It seems the credentialsProvider is a little different.
https://github.com/hantsy/aws-sdk-kotlin-spring-example/blob/master/src/main/kotlin/com/example/demo/internal/AwsConfig.kt#L23-L34

    fun awsCredentialsProvider(properties: AwsProperties): CredentialsProvider {
        val chain = CredentialsProviderChain(
            EnvironmentCredentialsProvider(),
            StaticCredentialsProvider(
                Credentials(
                    secretAccessKey = properties.secretAccessKey,
                    accessKeyId = properties.accessKeyId
                )
            )
        )

        return CachedCredentialsProvider(chain)
    }

@lauzadis I add Github action workflow file, it build successfully on Github action.
I really it is my fault. On my local machine, I was always using a VPN proxy client, but not sure now the Proxy settings affect the AWS S3 Client connection.


"gyp ERR! This is a bug in node-gyp."

I got this error while running a yarn build, the output says it's a bug in node-gyp.
Another issue is that it exited with a 0 error code, I suppose that's an issue with yarn and not here? So the rest of my build script continued instead of failing.

Node Version: v10.10.0, yarn 1.9.4
Platform: 4.9.0-7-amd64 #1 SMP Debian 4.9.110-1 (2018-07-05) x86_64 GNU/Linux
Compiler:
Using built-in specs.
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 6.3.0-18+deb9u1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)

Verbose output (from npm or node-gyp):

yarn install v1.9.4
[1/4] Resolving packages...
[2/4] Fetching packages...
[------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 0/216
(node:10986) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
error .../node_modules/sharp: Command failed.
Exit code: 7
Command: node-gyp rebuild
Arguments:
Directory: .../node_modules/sharp
Output:
gyp info it worked if it ends with ok
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| linux | x64
gyp ERR!  System Linux 4.9.0-7-amd64
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd .../node_modules/sharp
gyp ERR! node -v v10.10.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! This is a bug in `node-gyp`.
gyp ERR! Try to update node-gyp and file an Issue if it does not help:
gyp ERR!     <https://github.com/nodejs/node-gyp/issues>
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

What about the exit code being 0 in the failure case?

Got the identical error on npm install. Makes no sense. This needs to be resolved.

Getting the same error

Can someone explain to me why this got closed? I'm having a similar issue and I can definitely say it's not a memory issue.

Are you using<EMAIL_ADDRESS>like the original post?

@cclauss yup!

Could you please retry with something a bit more modern?
https://github.com/nodejs/node-gyp/releases

@cclauss I would if I could. I found a workaround to the issue by getting an older version of node. node 10 specifically.


Fix links in the documentation

Codecov Report
Patch coverage: 80.81% and project coverage change: +0.22 :tada:

Comparison is base (b1867a2) 88.76% compared to head (f85a718) 88.98%.

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

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #32      +/-   ##
==========================================
+ Coverage   88.76%   88.98%   +0.22%
==========================================
  Files          12       12
  Lines        1353     1353
==========================================
+ Hits         1201     1204       +3
+ Misses        152      149       -3

Impacted Files
Coverage Δ

pandas_streaming/data/__init__.py
100.00% <ø> (ø)

pandas_streaming/exc/__init__.py
0.00% <0.00%> (ø)

pandas_streaming/exc/exc_streaming.py
0.00% <0.00%> (ø)

pandas_streaming/df/dataframe_helpers.py
70.79% <38.09%> (ø)

pandas_streaming/df/dataframe_io_helpers.py
88.13% <71.42%> (ø)

pandas_streaming/df/connex_split.py
87.14% <77.77%> (ø)

pandas_streaming/df/dataframe.py
94.04% <90.12%> (ø)

pandas_streaming/__init__.py
100.00% <100.00%> (ø)

pandas_streaming/data/dummy.py
100.00% <100.00%> (ø)

pandas_streaming/df/__init__.py
100.00% <100.00%> (ø)

... and 2 more

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Internal Command Call

Is there a way to call commands from the index.js(mainfile of the bot project)? ( I was not able to get it done via the client's dispatcher for some reason, probably bad method calls as it was giving me an undefined reference)

client.registry.commands.get('some-command-name').run(someMsg, someArgs);


Kotlin gradle delegation

I have something like this:
fun doSomething(specifyInput: Base.() -> Unit) {
    val spec = BaseImpl()
    spec.apply {
        specifyInput()
        validate()
    }

interface Base {
    var a: String?
    var b: String?
}

class BaseImpl(override var a: String?, override var b: String?) : Base {
    constructor() : this(null, null)
fun validate() {
        if (a == null) throw ExceptionForA()
        if (b == null) throw ExceptionForB()
    }
}

This is gradle task.
class A : DefaultTask(), Base by BaseImpl()

@TaskAction
fun doSomething() {
    doSomething {
    }
}

This is my test:
val buildFile = File(testProjectDir, "build.gradle.kts")
        buildFile.createNewFile()
        buildFile.writeText("""
                tasks.register("task", A::class.java) {
                    a = "something"
                }
            """.trimIndent())
        val result = testProjectDir.executeAndFailGradleRunner("task")

        assertThat(result.output).contains("ExceptionForB")

Do you know what I need to do that the test passed?
I tried with this:
open class DownloadTask (override var url: URL?, override var target: File?) : DefaultTask(), DownloadSpec by DownloadSpecImpl(url, target)

but I got the error: the construtor should be annotated with @Inject
Thank you in advance.

I can't quite tell what you're trying to do. I would start small and avoid the complications of so many classes.  I would also take a look at managed properties instead of using constructor injection: https://docs.gradle.org/current/userguide/custom_gradle_types.html#managed_properties
You might be able to get more help on Slack or the forums.

Thank you for advice.


Facing an error while debugging.

Execution failed for task ':app:compileDebugJavaWithJavac'.
java.lang.IllegalAccessError: class org.gradle.internal.compiler.java.ClassNameCollector (in unnamed module @0x561e2208) cannot access class com.sun.tools.javac.code.Symbol$TypeSymbol (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.code to unnamed module @0x561e2208

@devbathani
It seems the gradle version you are using isn't yet compatible and hence throwing the error. Try downgrading the gradle version which hopefully should resolve your issue.
See these similar issues: gradle/gradle#15538. gradle/gradle#16641 (comment)
Also, this doesn't seem to be framework issue, but maybe coming from gradle, so if you still face any issue, please file it here: https://github.com/gradle/gradle/issues or ask support questions on StackOverflow.
Closing from here.

Thanks for helping me out
On Tue, Jul 6, 2021, 13:48 darshankawar @.***> wrote:

Closed #85915 https://github.com/flutter/flutter/issues/85915.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/85915#event-4981667491, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ASI725SMRJLZW2W7RIEPKYLTWK34NANCNFSM473BFRXA
.


stdout breaks up rendered cells

I'm seeing some unexpected breaks in the rendered code cells (in HTML and PDF). Here's what's in my .jmd file:
```julia; results="hidden"
println("hello")
println()
2+2
```

And when rendered it looks like:

So even if the results are set to "hidden" the stdout output still causes the cell to be broken up.

I found the hold=true chunk option, which resolves this issue (or at least works around it). Still a little unexpected because I'd expect output to have no effect if the results="hidden" option is set.


Use correct header in plugin description.

Minor text tweak. The plugin description states "Parses 'Requires Plugin' header", which is not the correct header. This changes the text to be "Parses 'Requires Plugins' header".

Thanks.


Step 4: Instead of "Service Bus queue", "Service Bus Topic" is shown

In "Route to a Service Bus queue"
Step 4 "Fill in the fields"
Tutorial shows these fields:
Endpoint Name
Service Bus Namespace
Service Bus queue
The Azure page shows:
Endpoint name
Service bus namespace
Service Bus Topic
Instead of "Service Bus queue", "Service Bus Topic" is shown. How to proceed?

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

ID: f233412c-4242-e9a6-e09d-c5b07775dd00
Version Independent ID: 3a940d2c-77bb-b8ff-8864-9fc6ef16c122
Content: Configure message routing for Azure IoT Hub using the Azure CLI and the Azure portal
Content Source: articles/iot-hub/tutorial-routing.md
Service: iot-hub
GitHub Login: @robinsh
Microsoft Alias: robinsh

@pmossel Hope you have self resolved the issue and hence closed it. Thanks for the update. If there are further / any questions regarding this matter or feedback on the referred Azure documentation, please do let us know and we will gladly continue the discussion.


Android App Crash after some time

Your Environment

Plugin version: 0.4.1

Platform: Android

OS version: Android 6.0 Marshmallow

Device manufacturer and model: Sony Xperia E5

React Native version: 0.47

Plugin configuration options: {
desiredAccuracy: 10,
stationaryRadius: 50,
distanceFilter: 50,
notificationTitle: 'Title',
notificationText: 'Text',
debug: false,
startOnBoot: false,
stopOnTerminate: false,
locationProvider: BackgroundGeolocation.ACTIVITY_PROVIDER,
interval: 5000,
fastestInterval: 5000,
activitiesInterval: 5000,
stopOnStillActivity: false,
}

Link to your project: N/A

Context
After some time of the app running background or foreground the app stops and close
Expected Behavior
The app keeps running and working foreground and background
Actual Behavior
The App crash with fatal Exception:
java.util.concurrent.RejectedExecutionException: Task android.os.AsyncTask
Context
I'm trying to send the user location each 5 seconds.

This happens for me too. Here is the complete logs
E/AndroidRuntime( 5365): java.util.concurrent.RejectedExecutionException: Task android.os.AsyncTask$3@52baff80 rejected from java.util.concurrent.ThreadPoolExecutor@527ed978[Running, pool size = 9, active threads = 9, queued tasks = 128, completed tasks = 40]
E/AndroidRuntime( 5365): 	at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2011)
E/AndroidRuntime( 5365): 	at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:793)
E/AndroidRuntime( 5365): 	at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1339)
E/AndroidRuntime( 5365): 	at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:590)
E/AndroidRuntime( 5365): 	at com.marianhello.bgloc.LocationService.postLocation(LocationService.java:499)
E/AndroidRuntime( 5365): 	at com.marianhello.bgloc.LocationService.handleLocation(LocationService.java:402)
E/AndroidRuntime( 5365): 	at com.marianhello.bgloc.AbstractLocationProvider.handleLocation(AbstractLocationProvider.java:85)
E/AndroidRuntime( 5365): 	at com.marianhello.bgloc.ActivityRecognitionLocationProvider.onLocationChanged(ActivityRecognitionLocationProvider.java:108)
E/AndroidRuntime( 5365): 	at com.google.android.gms.internal.zzcfj.zzu(Unknown Source)
E/AndroidRuntime( 5365): 	at com.google.android.gms.common.api.internal.zzci.zzb(Unknown Source)
E/AndroidRuntime( 5365): 	at com.google.android.gms.common.api.internal.zzcj.handleMessage(Unknown Source)
E/AndroidRuntime( 5365): 	at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 5365): 	at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 5365): 	at android.app.ActivityThread.main(ActivityThread.java:5001)
E/AndroidRuntime( 5365): 	at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 5365): 	at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 5365): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
E/AndroidRuntime( 5365): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
E/AndroidRuntime( 5365): 	at dalvik.system.NativeStart.main(Native Method

Thank you for the logs. I'll take look at it.
On Sun, Feb 11, 2018, 18:42 Rohith Ramachandran<EMAIL_ADDRESS>wrote:

This happens for me too. Here is the complete logs
E/AndroidRuntime( 5365): java.util.concurrent.RejectedExecutionException: Task android.os.AsyncTask$3@52baff80 rejected from java.util.concurrent.ThreadPoolExecutor@527ed978[Running, pool size = 9, active threads = 9, queued tasks = 128, completed tasks = 40]
E/AndroidRuntime( 5365): 	at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2011)
E/AndroidRuntime( 5365): 	at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:793)
E/AndroidRuntime( 5365): 	at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1339)
E/AndroidRuntime( 5365): 	at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:590)
E/AndroidRuntime( 5365): 	at com.marianhello.bgloc.LocationService.postLocation(LocationService.java:499)
E/AndroidRuntime( 5365): 	at com.marianhello.bgloc.LocationService.handleLocation(LocationService.java:402)
E/AndroidRuntime( 5365): 	at com.marianhello.bgloc.AbstractLocationProvider.handleLocation(AbstractLocationProvider.java:85)
E/AndroidRuntime( 5365): 	at com.marianhello.bgloc.ActivityRecognitionLocationProvider.onLocationChanged(ActivityRecognitionLocationProvider.java:108)
E/AndroidRuntime( 5365): 	at com.google.android.gms.internal.zzcfj.zzu(Unknown Source)
E/AndroidRuntime( 5365): 	at com.google.android.gms.common.api.internal.zzci.zzb(Unknown Source)
E/AndroidRuntime( 5365): 	at com.google.android.gms.common.api.internal.zzcj.handleMessage(Unknown Source)
E/AndroidRuntime( 5365): 	at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 5365): 	at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 5365): 	at android.app.ActivityThread.main(ActivityThread.java:5001)
E/AndroidRuntime( 5365): 	at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 5365): 	at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 5365): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
E/AndroidRuntime( 5365): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
E/AndroidRuntime( 5365): 	at dalvik.system.NativeStart.main(Native Method
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mauron85/react-native-background-geolocation/issues/149#issuecomment-364770977,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAV8Gnlw8T1SleEAtYihSFAW3bJrRrs9ks5tTyZ_gaJpZM4Rj2tp
.

Probably duplicate of https://github.com/mauron85/react-native-background-geolocation/issues/68.
Maybe too many parallel active AsyncTasks.

AsyncTask.THREAD_POOL_EXECUTOR cannot queue more that 128 tasks at a time. So if we submit more than that, an exception will be thrown.

<EMAIL_ADDRESS>In case server responses take significant time (eg. slow connection), queue limit is reached resulting to app crash with
RejectedExecutionException.

Thanks for the answer @mauron85! Yep I've already solved this some days ago. I think is server response problem,
To solve this I did 2 changes to my code:

First I noticed that my configuration was pretty messed up and I let the url option as in the example (-_-')
Also I noticed that I was calling BackgroundGeolocation.start() before my listeners where mounted.

After these changes, everything works as expected. Awesome Plugin by the way

Using the configuration below. Also, After 15-20 mins on Android POCO F1 App closes automatic from the background. Posting the location at every 30 seconds.
desiredAccuracy: BackgroundGeolocation.LOW_ACCURACY, //Desired accuracy in meters. Possible values [HIGH_ACCURACY, MEDIUM_ACCURACY, LOW_ACCURACY, PASSIVE_ACCURACY]. Accuracy has direct effect on power drain. Lower accuracy = lower power drain.
stationaryRadius: 5, //Stationary radius in meters. When stopped, the minimum distance the device must move beyond the stationary location for aggressive background-tracking to engage.
distanceFilter: 10, // 10, meter , The minimum distance (measured in meters) a device must move horizontally before an update event is generated.
notificationTitle: 'KX Trucker',
notificationText: 'Tracking your journey',
notificationsEnabled: true,
debug: false,
notificationIconSmall: "",
notificationIconLarge: "",
startOnBoot: false, //Start background service on device boot.
startForeground: true, //Android only, Allow location sync service to run in foreground state. Foreground state also requires a notification to be presented to the user.
stopOnTerminate: isAndroid ? false : true, //Enable this in order to force a stop() when the application terminated (e.g. on iOS, double-tap home button, swipe away the app).
locationProvider: BackgroundGeolocation.DISTANCE_FILTER_PROVIDER,
interval: 29000, // android only, The minimum time interval between location updates in milliseconds.
fastestInterval: 29000, //android only, Fastest rate in milliseconds at which your app can handle location updates.
activitiesInterval: 29000, //android only,Rate in milliseconds at which activity recognition occurs. Larger values will result in fewer activity detections while improving battery life.
stopOnStillActivity: false,
notificationIconColor: "Red",
enableHighAccuracy: true,
pauseLocationUpdates: false,
saveBatteryOnBackground: false,
maxLocations: 10000,
//Will uncomment later below 3 linew, If our B.E support locations array sent to server at once
syncThreshold: 100, //Specifies how many previously failed locations will be sent to server at once
// syncUrl: '',
syncUrl: "",
url: '',
// customize post properties
postTemplate: { "speed": "@speed", "time": "@time", "locationProvider": "@locationProvider", "longitude": "@longitude", "radius": "@radius", "bearing": "@bearing", "accuracy": "@accuracy", "provider": "@Provider", "latitude": "@latitude", "altitude": "@altitude" }


Path change made in latest release may break downstream deployments

I'm finding since the release of PR #16 deployments of maximo products BAS, MAS, and on occasion SLS fail, also the module cp-catalogs. itself seems to be hit and miss on actually being able to be deployed.  I believe the change in the path that was made with this latest release is causing an issue during deployment of other modules that have a dependency.

PR #16  is to fix the following issues (14 & 15) for CPD installation. FYI, This has been discussed with Sean and Andrew in Office hours calls, and changes are reviewed by Andrew. In case if there is a conflict in image registry path between cloud paks we have to split/separate this catalog source module.
https://github.com/cloud-native-toolkit/terraform-gitops-cp-catalogs/issues/14
https://github.com/cloud-native-toolkit/terraform-gitops-cp-catalogs/issues/15

I can tell you multiple MAS installs have failed since the release with catalog source issues. After pinning to the previous release, installs did not have the issue or errors.


abstract instead of NotImplementedError

Many methods use "abstract" instead of raising NotImplementError when they are
destined to be implemented by a child class.

Fun fact, upon research.  I end up in
http://norvig.com/python-iaq.html
finding an explanation for this.

Still, I think that, to avoid confusion, it should be fixed to either
abstract() as in the FAQ or just RaiseNotImplementedError.

Otherwise, it will raise NameError which is confusing (and abstract could
potentially be defined globally)

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 11 Oct 2011 at 6:13

I think "raise NotImplementedError" is the simplest, most Pythonic way to go. Another reasonable approach is the abc (abstract base class) module, but I think that's overkill here.


Results do not match Lumerical

This issue tracks efforts to resolve the discrepancy between the MEEP solver and Lumerical

I've been improving the visualization tools, and this is what I am getting for the index distribution @joamatab
Legend:
Red -- n=1.44 (nSiO2)
Green -- n=1.446 (ncoreFiber)
Blue -- n = 3.48 (nSi)
I'll tidy up the plotting tool, then work on updating the simulation geometry.

looks great Simon
Something that concerns me is that the fiber angle does not affect the spectrum shape
I swept more wavelengths and start to see the transmission peak

Good to know.
I am taking some time to look at this today, but from the further updated visualization we may also be having port issues (source is black, gray is monitors -- looks like the fiber mode won't be solved for properly).
I'll push what I have on dev, but still want to add directionality arrows to the ports and movie options to help troubleshoot

See related issue in
https://github.com/NanoComp/meep/issues/1838

Animations generated outside of the simulation run take forever, so I am building this functionality in the source code for troubleshooting. See NanoComp/meep/pull/1867

I have narrowed the issue down to how the fiber port mode is being resolved. Need to investigate whether it is an index contrast issue (double check fiber index or port size, although I've already made the port as large as Lumerical's) or bad k-vector selection (since it is an oblique waveguide).
See e.g. waveguide port nicely localized:

Whereas fiber port:

By ensuring that the fiber monitors is monitoring the suitable mode:

We are able to get order-of-magnitude agreement with Lumerical:

There may be more work to be done to get an exact match, but this is probably just ensuring an identical simulation/materials/etc.


Update page weights for content/en/docs/reference/kubernetes-api/auth…

…entication-resources/
contributes to https://github.com/kubernetes/website/issues/35093
@reylejano @natalisucks @bradtopol
Updates the page weights in this section to be using 10s instead of single digits (1,2...)

@a-mccarthy, could you mention in the PR description about why this update to an auto-generated page is OK?

whoops! didn't realize this was an autogenerated pages. We'll open a separate issue to handle that. Thanks @sftim!


Increase E2E tests timeout

Changes

Duplicates the timeout seconds threshold for E2E test.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.6%) to 92.563%

Files with Coverage Reduction
New Missed Lines
%

src/routes/transactions/entities/tests/human-description.builder.ts
3
60.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.6%

Covered Lines:
7252

Relevant Lines:
7535

💛  - Coveralls


feat(#371): Update 'jeo-maven-plugin' Dependency 0.5.4

In this PR I updated jeo-maven-plguin up to 0.5.4 version and identified one more problem (added a new issue for it.)
Closes: #371.
History:

feat(#371): add info to several README files that describe how to run 'normaliser'
feat(#371): add markers where we will need to fix 'toXmir' transformation
feat(#371): add one more puzzle
feat(#371): update 'jeo-maven-maven' version 0.5.4
feat(#371): fix the bug with 'Constructor' transformation to xmir

PR-Codex overview
The focus of this PR is to update the jeo-maven-plugin version to 0.5.4 across multiple modules and improve attribute handling in various classes.
Detailed summary

Updated jeo-maven-plugin version to 0.5.4 in multiple pom.xml files
Improved attribute handling in classes like Invocation, DynamicInvocation, Field, Constructor, StaticInvocation, InterfaceInvocation, and Super

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

@rultor merge

@rultor merge

@volodya-lombrozo OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@volodya-lombrozo Done! FYI, the full log is here (took me 8min)

@volodya-lombrozo Thank you for your contribution! Your efforts have earned you +5 points: +25 as a base reward, with deductions of -15 for the absence of code review and -5 for having only 2 comments. While we appreciate your work, remember that code reviews and meaningful comments are crucial for maintaining code quality. Please continue to submit your contributions, focusing on these areas for improvement. Your current balance stands at +191.


Details for the argument type is not clear

Environment info

NooBaa Version: standalone noobaa
Platform: noobaa-core-5.15.0-20240131.el9.x86_64

Actual behavior
[root@ramyamc-12 noobaa-core]# node /usr/local/noobaa-core/src/cmd/manage_nsfs account add --name 12 --email 2>/dev/null
{
"error": {
"code": "InvalidArgumentType",
"message": "Invalid argument type",
"detail": "type of option email should be string, received: true (type boolean)"
}
}
[root@ramyamc-12 noobaa-core]# node /usr/local/noobaa-core/src/cmd/manage_nsfs account add --name 2>/dev/null
{
"error": {
"code": "InvalidArgumentType",
"message": "Invalid argument type",
"detail": "type of option name should be string, number, received: true (type boolean)"
}
}
[root@ramyamc-12 noobaa-core]#
Expected behavior

"type of option name should be string, number, received: true (type boolean)"
This should be rephrased  it confusing to the customer

Steps to reproduce

More information - Screenshots / Logs / Other output

Hi @ramya-c3,

In this case: node /usr/local/noobaa-core/src/cmd/manage_nsfs account add --name 12 --email 2>/dev/null
The message is about the email argument, it is --email without value (hence it is boolean, like --show-secrets).
In the case: node /usr/local/noobaa-core/src/cmd/manage_nsfs account add --name 2>/dev/null
The message is about the name argument, it is --name without value (hence it is boolean, like --show-secrets).

How would you like it to be changed?
Please send what you're suggesting.

@ramya-c3 closed this issue, removing the request validation label


Refactor Filtering Logic

This was originally a branch to make the maximum bonus for the filtering logic RuneSet-aware (fixing #198).  Once I got into the logic for cleanMinimum, I realized that it needed fixed.  It seems to have included the RuneSet bonus twice and was missing Guild, Shrine, and Leader effects.  I rewrote (and documented) the existing approach to correctly incorporate these effects (plus the set-aware maximum bonuses).

closed #198


Local mathjax

It possible to put mathjax and mathjax-scripts.js locally in distribution of Markdown-Edit to keep formulas rendered without internet connection?

I'm not entirely sure it's just one script. MathJax can download other resources as it needs them. You can modify the HTML template to point to a local one and see how that works.

Just looked at the MathJax distribution. It's 38MB zipped. That's more the entire MDE distribution. I'm going to have to pass on this one.

I did some more research and discovered Katex. Probably not as robust as MathJax but can be embedded locally. Any thoughts about this? Does Katex work well enough?

Looks like KaTex is lighter and faster, but with some missing features. Comparison.

Bummer. Looks like Katex has some IE issues as well.
I downloaded and extracted the MathJax scripts.
It took 6 minutes to unzip the files. (32,000 files and 1,900 folders)
That would make for one long install.


Add MemoryAddress API

Rolldown is using Spans as unique identifiers for AST nodes.
As I've said I think Span is the wrong tool for this job - Spans by their nature just aren't unique.
We have been discussing adding AstNodeId to all AST nodes, which would be a unique ID, but we've not reached a decision whether to do that or not yet.
There is one other unique identifier available to us - the address of structs in memory. Our bump allocator does not reuse freed memory, and it's guaranteed that the contents of a Box never moves in memory. So if T is in a Box<T>, the memory address of T is guaranteed to be stable and unique for as long as the allocator containing the AST is "live".
Add an API like this:
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Debug)]
struct MemoryAddress(usize);

impl<'a, T> oxc_allocator::Box<'a, T> {
  fn addr(&self) -> MemoryAddress {
    MemoryAddress(&**self as *const T as usize)
  }
}

I know that on face of it, this looks "hacky", but I feel it's completely legitimate. Our choice of using an arena allocator gives us certain extra powers and guarantees - why not take advantage of them?
Memory address of a &T is also stable, as long as the T is in a Box<T> in arena. But to avoid mistakes (e.g. &T refers to a T on the stack, not in arena), I think better to only implement for Box.

PR for this: #4810
As well as Rolldown's use case, it's also needed for #4767.

@rzvxa has suggested adding a lifetime: Address<'a> to indicate it's only guaranteed to be unique as long as the allocator lives.
In my opinion this is a good idea, though it's not required for safety. But maybe that'd make life difficult for Rolldown. Can you advise @hyf0?


Resolves #890: Fixing ArrayIndexOutOfBound from UseNextVersionsMojo and UseNextReleasesMojo in case of no newer versions/releases

Fixes an ArrayOutOfBound introduced by me in #813

@slawekjaranowski please review

@ajarmoniuk You also mention #889 in this PR ... I'm getting a little lost which PR resolve which issue

Yes, sorry about that. It's supposed to be #890


NullPointerException when response is empty

Version 0.18
java.lang.NullPointerException: Attempt to invoke interface method 'int java.lang.CharSequence.length()' on a null object reference
at org.dmfs.rfc3986.encoding.FormEncoded.encoded(FormEncoded.java:140)
at org.dmfs.rfc3986.encoding.FormEncoded.toString(FormEncoded.java:127)
at org.dmfs.rfc3986.encoding.FormEncoded.length(FormEncoded.java:84)
at java.lang.StringBuilder.append(StringBuilder.java:288)
at org.dmfs.rfc3986.encoding.XWwwFormUrlEncoded.toString(XWwwFormUrlEncoded.java:119)
at org.dmfs.httpessentials.entities.TextRequestEntity.lambda$new$0(TextRequestEntity.java:40)
at org.dmfs.httpessentials.entities.-$$Lambda$TextRequestEntity$Z-7MUgUWXmaK6a4JNCeTn-SC_P4.value(lambda)
at org.dmfs.httpessentials.entities.BinaryRequestEntity.contentLength(BinaryRequestEntity.java:60)
at org.dmfs.httpessentials.entities.DelegatingRequestEntity.contentLength(DelegatingRequestEntity.java:54)
at org.dmfs.httpessentials.entities.DelegatingRequestEntity.contentLength(DelegatingRequestEntity.java:54)
at org.dmfs.httpessentials.okhttp.OkHttpRequestBody.contentLength(OkHttpRequestBody.java:49)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:58)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at com.unitedinternet.portal.android.lib.rest.RequestsInterceptor.processHeaders(RequestsInterceptor.java:60)
at com.unitedinternet.portal.android.lib.rest.RequestsInterceptor.intercept(RequestsInterceptor.java:50)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:254)
at okhttp3.RealCall.execute(RealCall.java:92)
at org.dmfs.httpessentials.okhttp.PlainOkHttpExecutor.execute(PlainOkHttpExecutor.java:66)
at org.dmfs.httpessentials.executors.useragent.Branded.execute(Branded.java:53)
at org.dmfs.oauth2.client.BasicOAuth2AuthorizationProvider.accessToken(BasicOAuth2AuthorizationProvider.java:55)
at org.dmfs.oauth2.client.BasicOAuth2Client.accessToken(BasicOAuth2Client.java:71)
at org.dmfs.oauth2.client.grants.TokenRefreshGrant.accessToken(TokenRefreshGrant.java:61)

Thanks for the report. Please tell me, what exactly means "empty response"? Are we talking about a valid HTTP response or an invalid one? I.e., does it contain a status line and any headers? What's the response code?

It was just a guess that the response was empty. I have only the stacktrace from bug monitoring tool.

Also I want to add that it's fairly common exception: 168k events with 717 users in the last version of our app.

From looking at the stack trace I guess there was a null refresh token. That might have been caused by the empty responses.

any progress on that?

I have created pull request, but to make it working the library dmfs.uri-toolkit should be released and new version used here


[WIP] firefox-send: init at 3.0.12

Motivation for this change
I think it would be nice to propose self-hosted Firefox Send.
This is currently a draft because:

[ ] npm run build fails to execute because it can't find webcrypto-core probably because Send uses a webcrypto-liner fork or that webcrypto-liner is specified using the github syntax in package.json?
[ ] No nixos service yet

I currently have no idea on how to fix the webcrypto-core issue and am looking for help ^^
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Well, since Mozilla decided to shutdown Firefox send, I think we can safely and officially close this PR.


Question: Can We have nested grid items inside a gridlayout?

I want to create a Grid layout with nested Grid items. eg:
<grid-layout>
    <grid-item>
          <grid-item>
          </grid-item>
   </grid-item>
</grid-layout>

Can Items be nested inside one another! If so, how to design the layout object?

You can't nest grid items.


how to post data from datagrid to server

Hello Muchiachio, first of all, I would like to thank you for the excellent work. Congratulations!
I'm from Brazil, I've been following and using some of his works.
Well, I would like to know how I do to post the network data, use Asp Net Core because when I send to the client or even it is not for server.
Example
1- Sending data to the client

2 - Result

3 - Sending data to the server

Grid data is lost on back to the server
Sorry for the bad English (Google translator).
Thank you

Grid data is lost because simple <td> tag's are not posted back from inside the form.
You would have to render raw html inputs and disabled encoding with .Encoded(false) for them to be posted back to the server. You can find html cell content examples here.

thank you. I will try this.


gate-bandit-integration-* not failing when they should

Bandit has an integration tox job which checks against other projects whether a bandit patch potentially breaks them.  I noticed its not working as of late.
When errors occur, they are ignored.  Either the exit code is not preserved or something else is happening.  The job always shows success.
For example (gate-bandit-integration-keystone):
2016-02-17 19:15:01.574 | + pushd ../keystone
2016-02-17 19:15:01.574 | /home/jenkins/workspace/gate-bandit-integration-keystone/openstack/keystone /home/jenkins/workspace/gate-bandit-integration-keystone/openstack/bandit
2016-02-17 19:15:01.574 | + set +e
2016-02-17 19:15:01.574 | + tox -e bandit --notest
2016-02-17 19:15:01.663 | ERROR: unknown environment 'bandit'
2016-02-17 19:15:01.670 | + .tox/bandit/bin/pip install --force-reinstall -U /home/jenkins/workspace/gate-bandit-integration-keystone/openstack/bandit
2016-02-17 19:15:01.671 | scripts/integration-test.sh: line 48: .tox/bandit/bin/pip: No such file or directory
2016-02-17 19:15:01.671 | + tox -e bandit
2016-02-17 19:15:01.795 | ERROR: unknown environment 'bandit'
2016-02-17 19:15:01.802 | + popd
2016-02-17 19:15:01.802 | /home/jenkins/workspace/gate-bandit-integration-keystone/openstack/bandit
2016-02-17 19:15:01.802 | + [[ 0 -eq 1 ]]
2016-02-17 19:15:01.803 | ___________________________________ summary ____________________________________
2016-02-17 19:15:01.803 |   integration: commands succeeded
2016-02-17 19:15:01.803 |   congratulations :)
gate-bandit-integration-oslo.vmware:
2016-02-17 19:15:20.354 | >> Issue: [B309:blacklist] Use of HTTPSConnection does not provide security, see https://wiki.openstack.org/wiki/OSSN/OSSN-0033
2016-02-17 19:15:20.354 |    Severity: Medium   Confidence: High
2016-02-17 19:15:20.354 |    Location: oslo_vmware/objects/datastore.py:313
2016-02-17 19:15:20.354 | 311	                conn = httplib.HTTPConnection(self._server)
2016-02-17 19:15:20.354 | 312	            elif self._scheme == 'https':
2016-02-17 19:15:20.354 | 313	                conn = httplib.HTTPSConnection(self._server)
2016-02-17 19:15:20.354 | 314	            else:
2016-02-17 19:15:20.354 | 315	                excep_msg = _("Invalid scheme: %s.") % self._scheme
2016-02-17 19:15:20.354 |
2016-02-17 19:15:20.355 | --------------------------------------------------
2016-02-17 19:15:20.355 | >> Issue: [B112:os_path_join_traversal] Check variables used with os.path.join are trusted or sanitised.
2016-02-17 19:15:20.355 |    Severity: Low   Confidence: Low
2016-02-17 19:15:20.355 |    Location: oslo_vmware/pbm.py:196
2016-02-17 19:15:20.355 | 194	        major_minor = '%s.%s' % (major_minor, ver[1])
2016-02-17 19:15:20.355 | 195	    curr_dir = os.path.abspath(os.path.dirname(file))
2016-02-17 19:15:20.355 | 196	    pbm_service_wsdl = os.path.join(curr_dir, 'wsdl', major_minor,
2016-02-17 19:15:20.355 | 197	                                    'pbmService.wsdl')
2016-02-17 19:15:20.355 | 198	    if not os.path.exists(pbm_service_wsdl):
2016-02-17 19:15:20.355 | 199	        LOG.warning(_LW("PBM WSDL file %s not found."), pbm_service_wsdl)
2016-02-17 19:15:20.356 |
2016-02-17 19:15:20.356 | --------------------------------------------------
2016-02-17 19:15:20.374 | ERROR: InvocationError: '/home/jenkins/workspace/gate-bandit-integration-oslo.vmware/openstack/oslo.vmware/.tox/bandit/bin/bandit -r oslo_vmware -n 5'
2016-02-17 19:15:20.374 | ___________________________________ summary ____________________________________
2016-02-17 19:15:20.374 | ERROR:   bandit: commands failed
2016-02-17 19:15:20.382 | + popd
2016-02-17 19:15:20.382 | /home/jenkins/workspace/gate-bandit-integration-oslo.vmware/openstack/bandit
2016-02-17 19:15:20.382 | + [[ 0 -eq 1 ]]
2016-02-17 19:15:20.382 | ___________________________________ summary ____________________________________
2016-02-17 19:15:20.382 |   integration: commands succeeded
2016-02-17 19:15:20.382 |   congratulations :)

Launchpad bug to Github issue import error


Actually compress when zipping files

The actual change is actually only this line: https://github.com/ahankinson/pybagit/compare/master...WoLpH:master?w=1#diff-134f0c507f656409c8d743b69b9aec63R536
The rest are just some pep8/code style changes.

Looks good. Thanks!

Awesome, thanks :)
PS: Can you also push out a new Pypi release?

Working on that right now. Should be up in a few minutes.

It's live now.
https://pypi.python.org/pypi/pybagit/1.5.2

Great, thank you very much.
I'll might make some more changes soon (I would like to be able to add and hash files one at a time)

Perfect. I'll make sure to review and merge your changes promptly.


SICD sidelobe control and SICD-to-SIDD

This PR adds functions, classes, and utility programs that make it easy to convert SICD files to SIDD files.  The utility program called “sicd_sidelobe_control.py” will apply and/or remove a spectral taper widow to a SICD file.  The utility program called “sicd_to_sidd.py” will convert a SICD file to a SIDD file.  Command line arguments allow the user to specify the spectral taper window, the remap function, the projection interpolation function, and the SIDD version (1, 2, or 3).  In support of these utility programs, the module “spectral_taper.py” was added to the “processing/sicd” sub-package.
In addition, some of the SIDD metadata parameters were calculated incorrectly.  These problems have been fixed.
All new modules have 100% unit-test coverage and work in python versions 3.6, 3.7, 3.8, 3.9, and 3.10.

Good morning @Darder, do we have a timeline estimation for this PR?


HTTP 500 on non-existent paths unless in debug mode

Problem
Hello,
I have a problem with Pagekit.
Whenever I navigate to a non-existing file/directory on my website, instead of getting a proper HTTP 404, I get an HTTP 500 answer,
This leads to a good amount of issues with the Google Search Console and the Google index, which will not remove old sites from its cache.
This only happens in productive mode, in debug mode, I get a proper HTTP 404 with the following errors:
Sorry, the page you are looking for could not be found.

2/2
NotFoundException in RouterListener.php line 66:
No route found for "GET /notavalidfile"

1. in RouterListener.php line 66
2. at RouterListener->onRequest(object(RequestEvent), object(Request))
3. at call_user_func_array(array(object(RouterListener), 'onRequest'), array(object(RequestEvent), object(Request))) in EventDispatcher.php line 123
4. at EventDispatcher->trigger(object(RequestEvent), array(object(RequestEvent), object(Request))) in HttpKernel.php line 72
5. at HttpKernel->handle(object(Request)) in Application.php line 67
6. at Application->run() in app.php line 24
7. at require_once('/var/www/html/app/system/app.php') in index.php line 42

1/2
ResourceNotFoundException in f00cfc81075698cf2bcd2483f0d984a716d24dd9.matcher.cache line 1998:

1. in f00cfc81075698cf2bcd2483f0d984a716d24dd9.matcher.cache line 1998
2. at UrlMatcherf00cfc81075698cf2bcd2483f0d984a716d24dd9->match('/notavalidfile') in Router.php line 269
3. at Router->match('/notavalidfile') in RouterListener.php line 47
4. at RouterListener->onRequest(object(RequestEvent), object(Request))
5. at call_user_func_array(array(object(RouterListener), 'onRequest'), array(object(RequestEvent), object(Request))) in EventDispatcher.php line 123
6. at EventDispatcher->trigger(object(RequestEvent), array(object(RequestEvent), object(Request))) in HttpKernel.php line 72
7. at HttpKernel->handle(object(Request)) in Application.php line 67
8. at Application->run() in app.php line 24
9. at require_once('/var/www/html/app/system/app.php') in index.php line 42

In productive mode, I only get a generic "Whoops, looks like something went wrong." error.

Thank you for taking your time.
Technical Details

Pagekit version: 1.0.16
Webserver: nginx/1.14.2
Database: 5.5.5-10.3.14-MariaDB-1
PHP Version: 7.3.4-2

I have updated this issue with more up to date information.
This issue is still present in Pagekit 1.0.16

Same issue here, debugging it now.
There's an error message hidden underneath it:

Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time

And it's coming from the Session component
app/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php:L322

Ah, it turns out it passes that event twice, resulting in the error.
This fix will resolve that issue:
            if (session_status() == PHP_SESSION_NONE && !isset($app['session.options']['cookie_path'])) {
                $app['session.storage']->setOptions(['cookie_path' => $request->getBasePath() ?: '/']);
            }

I've added a pull request to fix this issue: #933


Wasmplugin controller: new approach using Kuadrant Topology (DAG)

What
Dedicated WASMPlugin controller
Description about the new approach using Kuadrant Topology.
Main object type
The type of object being reconciled is the Gateway. There is one-to-one mapping of gateway and wasmplugin. Another approach would be the type of object being reconciled being the WASMPlugin. Then it would be needed one way to get the gateway name from {name, namespace} of the wasmplugin. The event mappers would be more complex. Worth exploring anyway.
Watched resources and event mappers
The controller watches all resources that affect the configuration (spec) of the wasmplugin. I.e. HTTPRoutes, Gateways and RateLimitPolicies. On events of those resources, the event mapper implemented walks the Gateway API topology, via targetRef and parentRefs up to the peak of the topology, as far as kuadrant is concerned today, i.e. the Gateway. In other words, if you change a rate limit policy, it will generate events on all gateways. If you change a httproute, it will generate events on all gateways involved. Interesting to note that if you change the parentRef of a HTTProute, it will generate events on the gateways that were targeted and also on the new gateways currently being targeted. That allows doing cleaning for those gateways where a RLP is no longer affecting.
The Kuadrant Topology
On gateway reconciliation event,  the controller builds what it is named "The Kuadrant Topology". It reads all HTTPRoutes targeting the given gateway as well as ALL rate limit policies in the cluster. With all that info, it builds a set of indexes that can be queried to provide information to build the wasmplugin. Interesting to note here that a field indexer is being added to the manager to index all httproute parenting a gateway. Basically you can use this manager index (not the kuadrant topology index), to query "give me all the HTTPRoutes parenting Gateway A".
The implementation assumes "cheap" operations of reading ALL the ratelimitpolicies and all routes parenting a given gateway. That assumption comes from the controller runtime k8s client that holds a cache. At least for list and get operations. That cache is being kept up to date  in the background when there are updates/deletes in the objects triggered by kuadrant controllers or any other third party controllers or any other k8s API server user.
TODO: Integration tests:

[x] Bring some tests from ratelimitpolicy_controller_test.go to rate_limiting_wasmplugin_controller_test.go
[x] No routes targeting the gateway
[ ] No routes selected from the HTTPRoute
[ ] HTTPRoute moves from one gateway to another.
[ ] RLP changes target from one route to another
[ ] RLP A targeting Gateway, 1 free route.  New RLP B targeting existing Route. The Wasmplugin should change. The RLP A should not add configuration to the WASMPlugin
[ ] New httproute without RLP: wasmplugin should change

Relates to https://github.com/Kuadrant/architecture/issues/29

Sharing here a few thoughts to continue the conversation online:

How to decouple the DAG (aka “Kuadrant Topology”, and more internally “GWAPI Topology” there) from our specific kinds of policies, and make it generic enough for any kind of GWAPI policy – i.e. potentially targeting other kinds of network resource.

How do we share the cached topology across reconciliation events? Alternatively, how do we test controller-runtime is not rebuilding it at every reconciliation event?

Related to above, how do we respond to events that only update the topology without necessarily requiring any recomputing of the effective policy? Only to update the status of routes protected vs out of scope, for example.

WIP (not finished yet)

How to decouple the DAG (aka “Kuadrant Topology”, and more internally “GWAPI Topology” there) from our specific kinds of policies, and make it generic enough for any kind of GWAPI policy – i.e. potentially targeting other kinds of network resource.

Sure. That is the next logical step forward. The "Gateway API policy Topology". The topology only needs to know about the targetRef field.

How do we share the cached topology across reconciliation events? Alternatively, how do we test controller-runtime is not rebuilding it at every reconciliation event?

I have been working on this. TL;DR is fortunately yes, the resources are cached across reconciliation events and, even more, across controllers using the same manager. But we must be careful, as this could not be true if we change things here.

The topology is built from resources read using the Client k8s client instead of APIReader client
The client is shared across controllers
The Client client is built using default options.

To be clear, the topology is not cached, the resources used to build the topology (a set of indexes) are cached. The topology needs to be rebuild (the indexes are re-created) on each reconciliation event. I consider this procedure lightweight as long as the resources are cached and no I/O is involved.
It's very clear from controller-runtime doc that for "get" and "list" methods the interface implementation uses a cache. This, however, for the default options when building the client. The kuadrant operator uses (so far) the default options when building the client, via the manager:
https://github.com/Kuadrant/kuadrant-operator/blob/main/main.go#L127-L140
	options := ctrl.Options{
		Scheme:                 scheme,
		Metrics:                metricsserver.Options{BindAddress: metricsAddr},
		WebhookServer:          webhook.NewServer(webhook.Options{Port: 9443}),
		HealthProbeBindAddress: probeAddr,
		LeaderElection:         enableLeaderElection,
		LeaderElectionID:       "f139389e.kuadrant.io",
	}

	mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), options)
	if err != nil {
		setupLog.Error(err, "unable to start manager")
		os.Exit(1)
	}

I have tested the cache using the k8s auditing policy together with kind tool. https://kind.sigs.k8s.io/docs/user/auditing/
I have updated the kind configuration file to add APIServer logging based on audit policy
diff --git a/utils/kind-cluster.yaml b/utils/kind-cluster.yaml
index 4697238..4caa8f1 100644
--- a/utils/kind-cluster.yaml
+++ b/utils/kind-cluster.yaml
@@ -4,3 +4,28 @@ apiVersion: kind.x-k8s.io/v1alpha4
 nodes:
 - role: control-plane
   image: kindest/node:v1.27.3
+  kubeadmConfigPatches:
+  - |
+    kind: ClusterConfiguration
+    apiServer:
+      # enable auditing flags on the API server
+      extraArgs:
+        audit-log-path: /var/log/kubernetes/kube-apiserver-audit.log
+        audit-policy-file: /etc/kubernetes/policies/audit-policy.yaml
+      # mount new files / directories on the control plane
+      extraVolumes:
+        - name: audit-policies
+          hostPath: /etc/kubernetes/policies
+          mountPath: /etc/kubernetes/policies
+          readOnly: true
+          pathType: "DirectoryOrCreate"
+        - name: "audit-logs"
+          hostPath: "/var/log/kubernetes"
+          mountPath: "/var/log/kubernetes"
+          readOnly: false
+          pathType: DirectoryOrCreate
+  # mount the local file on the control plane
+  extraMounts:
+  - hostPath: utils/audit-policy.yaml
+    containerPath: /etc/kubernetes/policies/audit-policy.yaml
+    readOnly: true

And then created the audit policy to log only metadata about request for HTTPRoutes, Gateways and kuadrant policies. I also added one more filter to be the user being the kuadrant operator service account. This way the kubectl and k9s requests are not being logged.
cat <<EOF > utils/audit-policy.yaml
---
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadata
  users:
    - "system:serviceaccount:kuadrant-system:kuadrant-operator-controller-manager"
  resources:
    - group: "gateway.networking.k8s.io"
      resources:
        - httproutes
        - gateways
    - group: "kuadrant.io"
      resources:
        - ratelimitpolicies
        - authpolicies
EOF

Then, follow the guide for Simple Rate Limiting for Application Developers

superseded by #447


Merge liberty into mitaka

@zancas
This brings the mitaka branch up-to-date with liberty.

@zancas: I tested on my local mitaka stack with a BIG-IP 12.1.1