PolylineCollection update instanceIndex is out of range

Browser: Chrome
Operating System: MacOS
Cesium version: 1.5.3
Hi, we have an app where we create and destroy a bunch of Polyline's. Basically the user cycles through different polylines, and every time they select a new one we delete the ones they were previously looking at and create the ones they're looking at now using.
The polylines also have a CallbackProperty on the positions property that updates the positions every frame.
We get an error from Cesium originating on this line:
https://github.com/AnalyticalGraphicsInc/cesium/blob/d26ccfea38dcf4623cf5da3faca141913c64cfe1/Source/Scene/PolylineCollection.js#L471
Quite reliably when we delete a set of polylines and then immediately render frames. If we remove the CallbackProperty the error does not occur.
Are we hitting some race condition bug where callback properties are setting a dirty flag on polylines that already have been deleted?
We're creating the polylines with viewer.entities.add and destroying them with viewer.entities.remove.

Hello @tinco, I believe we fixed this issue in a newer version of CesiumJS. Can you try updating to the latest release and see if you still experience the problem?

hi @hpinkos thanks for the quick reply! I just upgraded to Cesium 1.62, and the error definitely became less reproducible, it takes a couple tries before it breaks now.

Thanks for trying that out @tinco.  Could you put together a code example that reproduces the issue in Sandcastle?  That would be a big help for us tracking down the problem.

Hi, thanks for the examples. We've been trying to reproduce in Sandcastle, but haven't had any luck so far. It seems that disabling the positions callback fixes our problem, but disabling requestRenderMode also does.
My colleague is working on a bigger Sandcastle right now to see what else we need from our app to reproduce the problem.

Ok we made some progress, this Sandcastle is huge, but if you leave this running for a couple minutes you'll eventually get the instanceIndex is out of range error:
https://sandcastle.cesium.com/#[encoded data, 4624 characters]
It's a bit annoying that it takes a couple minutes, and that it's such a large slice of code, so we'll continue whittling away at it.
BTW the tileset used in that Sandcastle is property of my employer, please don't use it for any other purpose than researching this bug.

Thanks for taking the time to put this together @tinco
I'll try to make some time next week to look into this issue.

I just noticed that it reliably happens when I switch away from the tab for a couple minutes and then switch back. I have no idea what that means. I guess maybe chrome buffers the intervals and then runs a bunch in quick sequence and that makes it more likely for the bug to happen?

Thanks @tinco . I am able to reproduce this. Were you able to get the same issue using any of the tilesets already on Cesium ion (like this photogrammetry one https://sandcastle.cesium.com/index.html?src=3D Tiles Photogrammetry.html) ? That way you won't have to have a public link to your dataset if you can't share it.

No worries @OmarShehata, the data is not really secret or anything. Good to hear you were able to reproduce, did you also trigger it by switching tabs? In our real app there was some sequence of actions that would reliably trigger the exception without switching tabs. I think I'll spend some time this week or the week after improving the sandcastle or maybe digging through the source to find the source of the race condition.

@tinco yes I was able to trigger it by switching tabs (didn't try leaving it long enough without switching).
I have run into a similar behavior where a CesiumJS app will crash if the tab is switched away for too long (although only on Linux, and I haven't been able to consistently reproduce), so creating and digging into a reproducible example here is definitely helpful!

@tinco sorry for the delay on this.  We've been able to reproduce the issue but haven't tracked down exactly what is causing the error yet.  We'll keep you posted when we have updates.  Thanks

@tinco I'm pretty positive that requestRenderMode combined with viewer.flyTo is the primary culprit here but haven't been able to track down exactly how. If I change your example to the below, the problem goes away:
setInterval(async () => {
  testCase.drawElement(element)
  viewer.scene.requestRender();
  await delay(1000)
  testCase.selectPart(element.parts[0], 'first part')
  viewer.scene.requestRender();
  await delay(1000)
  testCase.selectComponentPart(element.parts[0].componentParts[0], 'first component part')
  viewer.scene.requestRender();
  await delay(1000)
  testCase.selectComponentPart(element.parts[0].componentParts[1], 'second component part')
  viewer.scene.requestRender();
  await delay(1000)
  testCase.selectPart(element.parts[1], 'second part')
  viewer.scene.requestRender();
}, 5000)

In fact, it seems only a single requestRender call may actually be needed.  The below change fixes your demo (as far as I cantell).
    setInterval(async () => {
      testCase.drawElement(element)
      viewer.scene.requestRender();
      await delay(1000)
      testCase.selectPart(element.parts[0], 'first part')
      await delay(1000)
      testCase.selectComponentPart(element.parts[0].componentParts[0], 'first component part')
      await delay(1000)
      testCase.selectComponentPart(element.parts[0].componentParts[1], 'second component part')
      await delay(1000)
      testCase.selectPart(element.parts[1], 'second part')
    }, 5000)

The intent of the above change is to continue to use requestRenderMode, but also inform Cesium after the scene changes so that it will render a single frame and performany bookeeping that the Entity API needs to do.
The general idea of requestRender mode is that you call scene.requestRender whenever you change anything about the scene manually.  Whileit works without calls to scene.requestRender most of the time, in this case the use of flyTo is triggering some code that I think is out of sync with the scene.  I'm going to continue to look into this and see if there's something we can do at the Cesium level that makes sense to fix it, but I recommend you add a scene.requrestRender call anytime to change the scene anyway.
Can you test this change to see if the problem goes away?  If so, can you then test that change in your real application and report back?
Thanks.

Thank you @mramato, so your fix is to reduce the amount of request renders, so the scene has some time to naturally go through the rendering? I get that might fix the problem in the test demo, but I don't think that's a feasible fix for us. I make the calls to requestRender because I can't be sure there is other movement going on that will eventually trigger the render. Sometimes the camera doesn't have the move, and cesium is done loading the highest quality, and all the selectComponentPart does is update a color or something (through a callbackproperty), and it won't show up unless we do the requestRender.
I get the code paths intermingling here are pretty complex, but why is calling requestRender different than just having cesium continuously render? If flyTo was able to go out of sync with render calls, would that problem not be even bigger if requestRenderMode was off?
By the way, I also get this error when flyTo is not active, I think it's purely an interaction between viewer.entities.remove, callbackProperty and scene.requestRender.

Here's a reduced test case I got over email. I'm able to pretty consistently reproduce this now, crashes almost immediately when switching out to another tab and back.


System tests

pricing @ngrinkevich
scale (in progress) @lukasz-zimnoch
grants @dimpar

Duplicate of https://github.com/keep-network/keep-core/issues/1556, closing.


Add test for struct packed array

Depends on: https://github.com/antmicro/verilator/pull/107

Test added in  #331


Switch codecov secret

This project used to use codecov to collect and show unit test coverage.
https://github.com/datafusion-contrib/datafusion-orc/blob/40b2a3ec2bbb867ffbd6b7e800db7ac14839ddfe/.github/workflows/ci.yml#L129-L136
To make it work in this repository, we need to switch repo in codecov as well. The codecov app is installed to this repo, but I can't generate a secret in codecov. Maybe this is because of some message delay, I'd check again tomorrow.

I've set the token from the previous repo into this one.


Reference to Sequelize

It's possible pass the reference to Sequelize in the sequelize storage constructor instead of doing this?
https://github.com/sequelize/umzug/blob/master/lib/storages/sequelize.js#L8
var Sequelize = require(resolve('sequelize', { basedir: process.cwd() }));

I'm working on a framework that depends on this library, but the applications using the framework doesn't depends directly on sequelize.
https://github.com/axelhzf/barbakoa/blob/master/app/server/migrations.js
Does this make sense?

Hi :) I didn't yet look into any code but you could also pass a a model rather than the credentials. Would that help?
On Tue, Feb 17, 2015 at 12:37 AM, Axel Hernández Ferrera
<EMAIL_ADDRESS>wrote:

It's possible pass the reference to Sequelize in the sequelize storage constructor instead of doing this?
https://github.com/sequelize/umzug/blob/master/lib/storages/sequelize.js#L8
var Sequelize = require(resolve('sequelize', { basedir: process.cwd() }));

I'm working on a framework that depends on this library, but the applications using the framework doesn't depends directly on sequelize.
https://github.com/axelhzf/barbakoa/blob/master/app/server/migrations.js
Does this make sense?
Reply to this email directly or view it on GitHub:
https://github.com/sequelize/umzug/issues/20

No, the problem is the line
var Sequelize = require(resolve('sequelize', { basedir: process.cwd() }));

is executed no matter what options are being passed and it throws an Error
[Error: Cannot find module 'sequelize' from '....']

A possible solution would be get the Sequelize reference in the constructor
module.exports = redefine.Class({
  constructor: function (options) {
    this.Sequelize = options.Sequelize || require(resolve('sequelize', { basedir: process.cwd() }));

    ...

  }
})

Ah I see. Would be fine for me. Want to provide a PR?


docs/installing/cloud/azure.md: fixed chrony config and terminology.

Following feedback received from a very considerate reader, this PR fixes a number of issues with the chrony example configuration. Also, terminology and description around rtc and PTP clock sources were updated following the feedback.

One more update. Tested the config, works as intended.

Changes:

chrony.conf now is generated via ignition and bind-mounted into the container
added log dir at /opt/chrony/logs


[MySQL R41-3] system error: 10060

I don't know anything, i'll just leave it there.
(With version R41-2 all works perfectly, idk why. These are errors when starting server with R41-3)

[21:04:18] [ERROR] CConnection::CConnection - establishing connection to MySQL database failed: #2013 'Lost connection to MySQL server at 'reading authorization packet', system error: 10060'
[21:04:19] [ERROR] CConnection::CConnection - establishing connection to MySQL database failed: #2013 'Lost connection to MySQL server at 'reading authorization packet', system error: 10060'
[21:04:20] [ERROR] CConnection::CConnection - establishing connection to MySQL database failed: #2013 'Lost connection to MySQL server at 'reading authorization packet', system error: 10060'
[21:04:21] [ERROR] CConnection::CConnection - establishing connection to MySQL database failed: #2013 'Lost connection to MySQL server at 'reading authorization packet', system error: 10060'

Are you on Windows or on Linux (distribution name + version please)? Do you use the static version?

I'm experiencing the same problem on windows.. I reverted back to R41-2

I apologize in advance for my English.
Met with the same problem as the author.
System: Windows 8.1
Plug-in version: R41-3
On the R41-2 version, there is no error.

Which version is your MySQL server?

Ver 14.14 Distrib 5.5.53, for Win32 (AMD64)
This?
Now I'll try to put a newer version and write about what happened

The problem is observed on all versions, starting with 5.5 and ending with 5.7. Other versions so far there is no way to check if there is any need at all.

I can't reproduce this issue on a clean SA-MP server with R41-3 and a fresh MySQL 5.5.57 server.
Try deleting all plugin-related files (mysql.dll, libmariadb.dll, libmysql.dll (if there is one), a_mysql.inc), re-download R41-3, place it into your SA-MP server folder and recompile your script.

https://www.youtube.com/watch?v=Y-vv9FMh9RE&feature=youtu.be
I am ready to help in every way to solve this problem. Just tell me what to do.

Can you try to replace your current libmariadb.dll with that one from the R41-2 package?

It worked. The error has disappeared.

Can you try out this build please?

Working

Okay, I'll bump the version and release this as R41-4. Thanks for your help!


Other Executable Formats

I was wondering if there is any stivale compatible loaders that have support for other executable format aside from elf, like PE or MachO. It would be quite neat!

The Stivale specs only support ELF for now, as it's the simplest and most ubiquitous format (so Limine, Sabaton and TomatBoot can only load ELF stivale kernels).

In order to have a stivale2 compliant kernel, one must have a kernel executable in the elf64 or elf32 format and have a .stivale2hdr section (described below). Other executable formats are not supported.

ELF is pretty much universal nowadays, and the only modern compiler that doesn't target it is MSVC. If you really want to use Visual Studio for developing stivale-compliant kernels, you can still use VS's native Clang integration.

I was trying to create a darwin style kernel, so MachO is a must. I just asked here because I have used stivale bootloaders in the past and really like how simple the spec is.

You can still make an ELF kernel which uses Mach-O to load userspace executables (for example you can still load a.out or COFF executables on ELF linux).
If you really want a Mach-O kernel, you can add support to Limine for the format: while harder than using ELF, it's still considerably easier than writing your own full bootloader.

Idk we'll work on it now ig

Idk we'll work on it now ig

Yeah qob work on it to get a prize :meme:

Ok guys, thanks for the help. I'll start working on a pull request for MachO limine support!


"Node placement" Property test fail.

https://github.com/enso-org/enso/actions/runs/9078113480/job/24944430366#step:7:993
src/components/ComponentBrowser/__tests__/placement.test.ts > Previous node dictated placement > prop testing (with seed=1150301103)

Can’t repro on the latest develop, so it was probably fixed by my changes in #9916


[SchemaRegistry] Ref doc doesn't show up correctly in the doc tree on the review smoke test branch

[x] Check the doc wiki to see the doc process
[x] Apply the same update to SchemaRegsitry doc as the PR: https://github.com/MicrosoftDocs/azure-docs-sdk-python/pull/815/files

fix PR merged: https://github.com/MicrosoftDocs/azure-docs-sdk-python/pull/820


Blog: Rule options changelog improvements

Hello. I think, it would be cool to write new/deprecated options for rules in separated section like 'New rules', but 'New options'. For example, in 3.3.0 release added option props for rule no-self-assign, but it's hard to track this changes in whole log.

It would be cool, but the blog post is done completely by hand and it's hard to identify all new options in each release.

Doesn't seem like we can do this (at least not for now, maybe in the future we find a way to automate it), so closing this. Thanks for the suggestion, @wKich!


Document Roslyn Diagnostics Security Analyzers

Real mail from a customer today:

One of our security requirements is to run static analysis on our product’s code. The code analysis tool in VS 2015 can’t analyze .net core projects. What would be the best tool for this? We are currently using .net core 1.1

Our docs need to answer this question. This is our guidance: https://blogs.msdn.microsoft.com/secdevblog/2016/03/30/roslyn-diagnostics-security-analyzers-overview/

@BillWagner @mairaw The Roslyn area hasn't been composed yet (and it was likely pulled from the TOC back when these empty topics were set aside until written).
https://github.com/dotnet/docs/blob/master/docs/csharp/roslyn/index.md
How do you wish to proceed? Should I craft an index page, add an analyzers topic in this area, and get the the two on the TOC?

I don't think this should go to the C# area. This should be a more generic topic about .NET and code analysis no?

I thought that it might be ok because the index currently lists "links to samples on the roslyn-analyzers repository;" however, yeah, that does just say "link to samples."
If it's a more generic topic on .NET and code analysis, would it be for the .NET Core Guide then?

I think there are a couple sections that relate to Roslyn Analyzers. @richlander writes above about an issue that can be solved by installing and using an existing roslyn based analyzer.
The section @GuardRex mentions will be an introduction to building your own analyzer.  I expect that the audience for using existing analyzers is much greater than for building them.
You can run analyzers from Visual Studio, or as part of a command line build. The analyzers Microsoft builds and ships should be findable in both of those areas. That suggests the Visual Studio docs, and .NET docs where we discuss the build process.
Building analyzers will be under the C# section.

and .NET docs where we discuss the build process.

Under https://docs.microsoft.com/dotnet/core/tools/ and linked into in the dotnet-build command topic?

the Visual Studio docs

... and a VS approach over in the VS docs? (If so, do we need an issue in https://github.com/MicrosoftDocs/visualstudio-docs/issues to cover the VS-side?)

Let's focus on the issue that @richlander opened here. This one is about running analyzers on .NET code, right? I'd expect to find that in the platform guide.

Cool ... a free topic under docs/standard/ + mentioned/linked in the index there + mentioned/linked from the dotnet build topic in its See also section.
I'll come back here and float the title and outline before I start.

@mairaw I won't get to this by Monday night, so I'm unassigning now.

I updated the milestone to Q3. I'll handle this as part of the Roslyn API conceptual documentation.

It's probably not a P0, but the PR is already there.


[Rasheed]Path to build full stack dapp on celo with c++ webassembly and reactjs

Thanks for submitting this tutorial for Celo Sage
Before you hit "Create Pull Request", make sure you have read the Tutorial Contribution Guidelines and reviewed the Sample Tutorial Structure.
Please confirm the following before submitting your tutorial for review -

[x] My tutorial follows the Tutorial Contribution Guidelines.
[x] The title of the Pull Request matches the title of my tutorial.
[x] I've followed the tutorial template structure.
[x] I've proofread the tutorial for spelling and grammar mistakes.
[x] I've thoroughly explained the code, with inline code comments and text explanations.
[x] I've run a linter & prettifier to format my code blocks.
[x] I've run the tutorial to test it and the code works.

NOTE: We cannot review your Pull Request if it does not meet the standard outlined above.
Reviewers - @joenyzio & @viral-sangani

Thanks all error fixed!


[Request] Contribute utility function(s) for converting highlighted html to line-oriented html

Is your request related to a specific problem you're having?
I needed to color individual lines based on the result of a diff, and this is difficult to do since span-elements may span several lines.
The solution you'd prefer / feature you'd like to see added...
I'd like a utility function for post-processing the highlighted html into a line-oriented html structure.
Any alternative solutions you considered...
Tried existing solution that failed in newest version. Also tried marking the html, but that's not allowed anymore.
Additional context...
Just to make it clear, I've implemented what I need and would like to contribute rather than host it myself (it's so small).
The lineify function below (with the help of lineifyHelper) replaces the highlighted html structure with a corresponding one, but where the top-level span-elements represents a single line of text/code. The previous contents has effectively been split up so the same kind of span-elements contain the same text/code, but the structure is line-oriented. This makes it easy to give specific lines a different look and feel (see the markLines argument) or add line numbers.
This code could be wrapped in a small module that can be used for post-processing. I'd like to avoid having to host this myself, therefore I'd like you to consider it.
function lineify(element, markLines) {
   if (typeof(element) == "string") {
      element = document.getElementById(element);
   }
   if (! element.classList.contains(highlightjsClass)) {
      element = element.querySelector(highlightjsSelector);
   }
   let lineNodes = [ createLineNode() ];
   lineifyHelper(element, [], lineNodes);
   // remove children
   while (element.firstChild) {
      element.removeChild(element.lastChild);
   }
   // add new line nodes
   for (let lineNode of lineNodes) {
      element.appendChild(lineNode);
   }
   // mark lines
   if (markLines) {
      for (let markLine of markLines) {
         lineNodes[markLine].classList.add("marked")
      }
   }
}

function lineifyHelper(element, elementStack, lineNodes) {
   let children = Array.from(element.childNodes)
   while (children.length > 0) {
      let child = children.shift();
      if (child.nodeType === Node.ELEMENT_NODE) {
         // element
         let childCopy = copyElementAndAttributes(child);
         appendChildCopyHelper(childCopy, elementStack, lineNodes);
         elementStack.push(childCopy)
         lineifyHelper(child, elementStack, lineNodes);
         elementStack.pop();
      } else if (child.nodeType === Node.TEXT_NODE) {
         // text
         let pos = child.data.indexOf("\n");
         if (pos < 0) {
             let childCopy = document.createTextNode(child.data);
             appendChildCopyHelper(childCopy, elementStack, lineNodes);
         } else {
            // append final text node
            let childCopy = document.createTextNode(child.data.substring(0, pos + 1));
            appendChildCopyHelper(childCopy, elementStack, lineNodes);
            // add new empty line node, that collects subsequent elements
            let lineNode = createLineNode();
            lineNodes.push(lineNode);
            // create new element stack representing start of new line
            for (let i = 0; i < elementStack.length; i++) {
               let elementCopy = copyElementAndAttributes(elementStack[i]);
               if (i === 0) {
                  lineNode.appendChild(elementCopy);
               } else {
                  elementStack[i - 1].appendChild(elementCopy)
               }
               elementStack[i] = elementCopy;
            }
            // enqueue rest of text node
            if (pos + 1 < child.data.length) {
               children.unshift(document.createTextNode(child.data.substring(pos + 1)));
            }
         }
      }
   }
}

function createLineNode() {
   let lineNode = document.createElement("span");
   lineNode.setAttribute("class", "code-line")
   return lineNode;
}

function appendChildCopyHelper(copy, elementStack, lineNodes) {
   let arr = (elementStack.length > 0 ? elementStack : lineNodes);
   arr[arr.length - 1].appendChild(copy);
}

function copyElementAndAttributes(element) {
   let copy = document.createElement(element.nodeName);
   for (var attr of element.attributes) {
      copy.setAttribute(attr.nodeName, attr.nodeValue);
   }
   return copy;
}

Have you tried the plugin API:
hljs.addPlugin({
  'after:highlightElement': ({ el, result }) => {
    el.innerHTML = lineify(el, [1, 4]);
  }
});

The issue is not about helping me, I am using the code in my files by including calls to highlightjs before calling lineify, it's about contributing the code so others may use it. E.g. a utility module hosted @ highlights.

Ah, okay.

I needed to color individual lines based on the result of a diff,

I'm sure you're aware we can already highlight diff or patch files - without any hoops if they are actually annotated as much...?  But that's really a digression.

I'm not sure about random "utility" scripts (that's a very, very wide hole - really your code could be used with any HTML snippet, it's not specific to us) - though we could probably figure out a place where we might link to such utilities...
I'd be more interested in seeing if this couldn't be made into a proper plugin... and in that case I believe we'd be happy to host the repository I think - if you were willing to maintain it.

This is a pretty custom solution used for reading exam submissions. The students start from a template and when reading their submission it's nice to see which lines they changed. A generated diff isn't suitable.
The code will technically work for "any" HTML, but the results won't be of practical use unless the HTML is limited to span-like elements, like what highlightjs generates. If highlightjs suddenly changes to a different generation strategy, it might stop working. That's why I think it makes sense to include it in a utility module.
It shouldn't be hard to turn it into a proper plugin, I agree. Do you have a plugin (repo) template, that I can clone and use as a starting point? That'll make it easier for both you and me.

Nope, sadly, I don't think we have any official plugins yet. :)  I'd suggest rollup for building both ESM and CJS bundles.  You could look at https://github.com/highlightjs/vue-plugin just for the rollup building stuff, but it's not a plugin in the same sense as what I'm talking about.  And I don't think you'd want us as a dependency (since that's already causing problems for the Vue plugin).
All you need to do is export your class or function that is a plugin so someone could call addPlugin and pass it.
Then it's worth discussing how someone could control it per element (which seems to be what you'd want to do here).  I don't think that has received much thought in the past vs plugins of a more "global" nature - ie behaving the same everywhere.  I'd suggest you embed the configuration in the HTML itself, but I'd be open to a discussion about the possibility of pass-thru of options when calling the API functions themselves.  Though at that point it's worth asking whether a wrapper vs plugin might not be better.

I will look at rollup, at least I now have it working as a class with options, e.g. for prefixing each line with the line number. And you're right that using it as a plugin has issues. The general lineify-part works as a plugin, but the part that highlights specific lines needs to be configured per element, and that's a problem. I'll have to think about how to provide element-specific arguments.

but the part that highlights specific lines needs to be configured per element, and that's a problem.

Right, that's what I was getting at.  I see 3 ways forward there:

wrap us highlightElementWithLineThingies(el, {...})
use HTML
 for passing options
we take options and pass them to plugins highlightElement(el, opts)

I imagine option 2 would actually work for a lot of use cases.  Number one seems ugly but I'd have to think thru the ramifications of the latter.  Right now highlightElements has no options to speak of at all.

I'm a bit leaning towards #2... we don't allow someone to specify language as an option to highlightElement... it's assumed that everything needed to do the highlighting can be fetched from the element itself.

I think I can solve my case by taking a callback argument in the plugin constructor, that will be called for each line in each code block. The code block would need some key attribute i.e. solution 2, so the callback can look up which lines should be styled or marked somehow. The callback could also add line numbers in whatever way it seems fit. I can also support some specific attributes in the code block, like you suggest, for common use cases (like adding line numbers).

It worked pretty well as outlined. I added a code-block-key attribute and apply the callback to the highlighted element and the array of line elements (span). The callback may modify the line elements before they're added to the element. Hence, option 2 works for my use case.

So what's it look like?

Here's the callback:
function lineifyCallback(element, lineElements, diffLines) {
   let key = element.getAttribute("code-block-key");
   let lineNums = diffLines[key];
   for (let i = 0; i < lineElements.length; i++) {
      let lineElement = lineElements[i];
      lineElement.insertBefore(this.createLineNumSpan(i + 1), lineElement.firstChild);
   }
   for (let lineNum of lineNums) {
      lineElements[lineNum].classList.add("marked");
   }
}

And here's the code registering the plugin and running highlightjs:
		let diffLines = {
			VaccineTrial_java: [2,3,4,7,8,9,10,20,21,26,28,29,30,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,72,73,74,75,76,77,89,90,91,92,93],
			VaccineTrialVolunteer_java: [3,4,5,8,9,13,18,24,25,26,34],
			UniversityHandbook_java: [38,39,40,41,42,55,56,57,58,59],
			UniversityHandbookUtils_java: [7,20,30,48,49,50,51,52,53,54],
		};
		hljs.addPlugin(new LineifyPlugin(lineifyCallback, diffLines));
		hljs.highlightAll();

And here's a screenshot (left: submission with student additions to the template emphasised, right: junit test reports):

https://github.com/hallvard/highlightjs-lineify
I've tried highlightjs-lineify.min.js file in dist instead of the original one in my project and it seems to work.

What's stopping you from putting the data inside the HTML itself instead of just the key?

Nothing, really. This way it was a smaller change to the page generator.
I've protyped logic for allowing any html attribute looking like xyzLines="2, 5, ..." to add xyz as class to corresponding line span elements. Then css can do the styling.

 for (let i = 0; i < lineElements.length; i++) {
      let lineElement = lineElements[i];
      lineElement.insertBefore(this.createLineNumSpan(i + 1), lineElement.firstChild);
   }

What is the loop doing?

The lineElements are span elements representing lines, wrapping restructured elements from highlightjs. The loop inserts line number elements first in each line element's child list. An example of what someone would like to do. This could be a build-in feature, e.g. an attribute on the code element that is picked up by the plugin.

Looks interesting.  Whenever you think you have something ready and generally useful feel free to add it to our Wiki: https://github.com/highlightjs/highlight.js/wiki/Useful-Plugins
For now we've decided it's best to use the wiki to maintain a list of plugins rather than host these repos here directly.  We'll have to gradually bump it's prominence a bit as it isn't something we've taken advantage much in the past.

I almost wonder if you should perhaps consider the idea of being a "data plugin" though... limiting yourself to merely attaching the line data to either the element (or just the result object literal)... and then letting someone write a second plugin (using the official API) that could take advantage of the data you add in it's own after:highlightElement hook... just an idea though.  It might make your plugin slightly simpler and decouple it from how exactly people wanted to use it.
The callback approach might be simpler for implementors though.  Sadly we don't have a lot of great patterns built up around the use of plugins yet.

Now I've implemented both the callback approach, which is very general, and some specific behaviour for adding line numbers using a format string and adding class names to elements. You're right we could just leave it to others to operate on the result, but after reading about how highlightjs never would support line numbers, I though it would be nice to at least support that. And I needed the class name feature myself, so ended up with those two.
Concerning "chaining" plugins: Is the order of calling plugins well-defined, so you can ensure the lineify plugin is run before any other that relies on the restructured html?
I'll add an entry to the wiki. I've improved the README slightly, one thing missing is how to include/import it. Currently, it isn't published anywhere, so you must either refer to it using a gitcontent url or save it to a local file, like I guess some do for highlightjs. I've no experience publishing, but I guess npm has a task for it.

Is the order of calling plugins well-defined, so you can ensure the lineify plugin is run before any other that relies on the restructured html?

Installing plugins in the proper order is the duty of the implementer.  Callbacks hooks are executed against plugins in the order that the plugins were added... is someone wanting to build on your plugin would need to install it before their own.

I've no experience publishing, but I guess npm has a task for it.

It's not super hard to publish an npm package once you have an account... there are docs/tutorials for it if you look.


Fix fallback backend so that it works for an array key

When multiple keys are passed to translate() as an array the following code in [i18n.rb] (https://github.com/svenfuchs/i18n/blob/master/lib/i18n.rb#L155-L159) will loop through the keys to apply the fallback translation on each one of them. It re-uses the same options while doing so. The current code only works for the first key because subsequent translation fails due to polluted options[:fallback].
        if key.is_a?(Array)
          key.map { |k| backend.translate(locale, k, options) }
        else
          backend.translate(locale, key, options)
        end

This PR fixes the issue by creating a new options object when calling super so that original options is not modified.

Close this as the official PR is here: https://github.com/svenfuchs/i18n/pull/321


Access lists result in 401 Authorization Required

When I use the access list with a username and password, assigned to a proxy host, I get:
401 Authorization Required
To Reproduce
Steps to reproduce the behavior:

Create a new access list
Add a username and password
Assign the access list to a proxy host
Navigate to the proxy host url
Enter the username and password in the challenge

It won't authenticate and will re-display the challenge.
Expected behavior
When I enter the username and password it should display the site attached that proxy host
Operating System

Using on Ubuntu 18.04 host in a docker container as part of hassio (Home Assistant)

Additional context
Using chrome latest, also tried on edge latest. Using the home assistant hassio addon of this library, basically just pulls your docker image for management through the HassIO addon store: https://github.com/hassio-addons/addon-nginx-proxy-manager

To me it still exists! I'm running everything on Home Asssitant as addons. I restarted the addon after changing the access list and proxy settings to use the ACL. Every time I try to load the page, the login window pops back up and the log says 401 even though the username and password are corect.

@FlyingPersian The issue is probably with the Authorization headers.

I've got into the trap with it, setting the Access List for NPM, which itself uses the Autorization headers to let user in.
It would be great if this behavior (for NPM login) would be fixed.


Issue #221: Added note about webhook

@inoxx03 @cmoulliard mind taking a look?

Merged: https://github.com/openshiftio/appdev-documentation/commit/c7a5df104f685bc86d69eee7a6a226e8e50e8777


Batch library generation

Started batch library generation. Based on the local compound DB annotations.
I needed a real MSn tree builder for this. It generates the MSn trees first, then creates all chromatograms on MS1 and links the MSn tree to it.
Reuses the SpectralDBEntry to write json or msp format libraries.

TODO
Add metadata

[x] like instrument and instrument type trough parameters: instrument, type, sample type, PI, data collector

sorry, even more findings:
the ranges in the msp and json are written like this: [271.2795373328638..272.97661129192215] can this be parsed in the end?
in the json: two fields called "FRAGMENTATION_METHOD"
one says "FRAGMENTATION_METHOD":20.0, the other one says "Fragmenation_method":"CID"
in the json: "IONMODE":"false", i guess the same error as in the msp parsing
where are you currently taking the ccs information from? also from the comp db file? it should be possible to also use the measured one (imo)

This is the error that pops up when columns were selected in CsvMatch that are not in the table.
The problem is that we are importing the library for each RawDataFile (each task).
How about I change the task

to run 1 task on all data files
import the lib
parallel stream over all rows in all RawDataFile

For CCS we still need to add this information. I guess we would use the feature information for that right?

I now renamed everything to MZmine json.
GNPS json has changed and we also add way more details. Also I want it more harmonized from the names.
In a separate PR I will create a new GNPS json parser.

fine with me when the ccs is added either from the database or the measured ccs for the library entry

Thanks!


fix: add devlakeComponent as selector label

Closes #237

Thanks for the contribution, seems like the Deployment Test had failed, would you like to take a look?
@matrixji I just assigned you as a reviewer of the PR, it would be great if you could take a look at the PR, or let me know if you are not available. Thanks.

Hi @klesh,
I wonder why mysql-external worked but -builtin didn't. Can you see more log output than "Error: INSTALLATION FAILED: context deadline exceeded"?

@rbraeunlich Seems like a Github Action problem, I retried it and it passed

@klesh looks like the mysql-builtin test is pretty close to the time limit. The step took 9m20s and the time limit is 10m. Maybe you gotta increase the timeout there to avoid flakyness.

it seems the grafana container starting failed due to MySQL is not ready, and this PR looks good to me.

/lgtm


Support more Haskell number types

Since Elm has only two number types everything would map to an Int or Float. Which are also limited to what JS can represent.
Any reason more types aren't supported already? Or just no need for it yet?

Which ones are you thinking of? We haven't needed any more yet, but I think it seems good to support anything that's reasonably close to the Elm types.
So Integer would perhaps be an exception unless there's a de facto standard bigint package for Elm.

As I was working on some stuff with hasql and cryptonite I derived instances for Int32 and Word32.
So Int8, Int16, Int32 and Int64 seem fine since they're all similar to the already present Int.
Word8,Word16, Word32 and Word64 could map to Int as well, with Word64 having the same caveat as Int(64), losing some precision at large numbers.
And Haskell Float to Elm Float

I've never had the need for bigint in Elm so don't know much about packages related to it. I'd say limiting the scope of instances to core is reasonable as well.


Fixed Bug

Fixed the name resizing bug that would cut off people's names.

Did you test this? It created null reference exceptions when I first wrote it (which doesn't make sense because double isn't nullable and should declare to 0). I set the param explicitly to false so I could come back to this later, but ultimately forgot.

I had tested this and didn't find any issues with it. Maybe something changed on the backend between then and now.


Add New Plugin: Limit Custom Keyword Length (Min & Max Characters)

Limit Custom Keyword Length (Min & Max Characters) - This plugin limits the minimum and maximum number of characters for custom keyword.

thank you hope this useful for future versions


Reproducing numbers for WIKISQL dataset

Hi
Thank you for releasing the pre-trained models for wikisql. I am trying to test the pre-trained model tapas_wikisql_sqa_masklm_large.zip. Using default hyper-parameter values given in readme and colab notebook, I am very low (approx 3%) denotation accuracy. As I read in other issues: you have talked about weird biases, how can we get away with it and get numbers similar to what is reported in the paper for wikisql dataset.? Do i need to update some other hyper-parameters for running the code/model on wikisql dataset. Some help in this regard will be much appreciated.

Thanks!
Can you share the commands you ran?
I understand you are evaluating the wikisql model on the wikisql data.
That should give you exactly the results we are reporting in the README (88.62% denotation accuracy).

Hey it seems I had set task to WIKISQL. I replaced it with WIKISQL_SUPERVISED and it worked. Thanks

@vishwajeetkumar93, are you able to share your command? I'm trying to do the same, but getting very low accuracies. I'm using the WIKISQL as I'm looking for the weakly supervised performance on tapas_wikisql_sqa_masklm_small_reset. Unless I'm misunderstanding what WIKISQL does?

Hi Amin
Please use WIKISQL_SUPERVISED as value for task hyperparameter.
On Wed, Oct 7, 2020 at 7:25 AM Amin Fardi<EMAIL_ADDRESS>wrote:

@vishwajeetkumar93 https://github.com/vishwajeetkumar93, are you able
to share your command? I'm trying to do the same, but getting very low
accuracies. I'm using the WIKISQL as I'm looking for the weakly supervised
performance on tapas_wikisql_sqa_masklm_small_reset. Unless I'm
misunderstanding what WIKISQL does?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/google-research/tapas/issues/65#issuecomment-704646093,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZCJTPA2BI7CLAJ7DTJ65DSJPDAPANCNFSM4RTF5CBQ
.

@vishwajeetkumar93, I used WIKISQL_SUPERVISED  but I'm still unable to reproduce the README numbers:
`tf.data.TFRecordDataset(path)`
I1010 04:55:43.283555<PHONE_NUMBER>38016 calc_metrics_utils.py:414] denotation_accuracy=0.749673
dev denotation accuracy: 0.7497
I1010 04:55:43.428153<PHONE_NUMBER>38016 run_task_main.py:152] dev denotation accuracy: 0.7497
I1010 04:56:35.534448<PHONE_NUMBER>38016 calc_metrics_utils.py:414] denotation_accuracy=0.736554
test denotation accuracy: 0.7366
I1010 04:56:35.813148<PHONE_NUMBER>38016 run_task_main.py:152] test denotation accuracy: 0.7366

Were you able to reproduce the accuracies exactly?


CLOUD-576 renamed a few things

@doktoric

Jenkins build failed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1110/

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1111/

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1112/


customcommands: draft API proposal / specification

This draft pull request proposes an API to manage custom commands.
It serves as a place to discuss thoughts, ideas, and questions from the community.
For ease of viewing the markdown file, please follow this link.
If you have direct feedback, feel free to use the "review" feature and leave a comment (or, if you're a maintainer, request changes as you deem necessary).
For general questions, just leave a general comment. For just voting, please use reactions, as the "+1"/"-1" comments tend to drown actual conversations, as they are rather spammy.

I'm aware this isn't fully done yet — just wanted to leave these comments before I forget :-) Feel free to address whenever ready.

Thanks for the feedback, I appreciate it! I prefer small commits over a huge chunk either way, that way it is easier for all involved to review and address feedback.

I'll be closing this PR for the time being as to not fill the list with
junk. I'll reopen it when I have the time to work on it again and
refined my Go skills a bit more — this is not to say it won't happen,
but as explained in my initial comment we want to get it right the first
time and not rush it.
The proposal itself could also use some refining, so I'll be working on
that with a higher priority than implementing the API itself — there's
still some things I am yet to learn about the framework(s) we use, so I
am going to take my time with this.
If you have any resources on hand that could help me with this, please
do share them with me.


LogBatch static methods

Non-static method Spatie\Activitylog\LogBatch::startBatch() cannot be called statically

public function startBatch(): void
{
    if (! $this->isOpen()) {
        $this->uuid = $this->generateUuid();
    }

    $this->transactions++;
}

docs is not updated?

https://github.com/spatie/laravel-activitylog/blob/main/src/Facades/LogBatch.php


seems to be it works mistakenly?

seems to be it works mistakenly?
pls see example
from caimcaim import CAIMD

import numpy as np

caim = CAIMD()

#y = np.array([ 1,1,1,1,1,     0,0,0,0,0,             1,1,1,1,1])

#y = np.array([ 1,0,1,0,1,     0,0,0,0,0,             1,1,1,1,1])

y =   np.array([   0, 1, 0, 1, 0,   1, 0    ,        1,  1, 1, 1, 1 ,   1,1,1,1,1, ])

od =  np.array([   11,12,13,14,15, 16, 17,       31,32,33,34,35 ,  1,2,3,4,5,  ])

od2 = od.reshape(-1, 1)

data_fit = caim.fit(od2, y)

d = caim.transform( od2)

#print(d)

print('splits = ' , caim.split_scheme)

od[ (2.0 <=  od) & (6 > od )  & (y == 1)]

new_d = [ 4, 13, 33]

disc  = np.ravel( caim.transform( (np.array(  new_d    ) ).reshape(-1, 1)  )  )

print(' new data = ' , new_d)

print('dicretized =' , disc)

q=0

'''

splits =  {0: [1, 17, 36]}

new data =  [4, 13, 33]

dicretized = [0 0 1]

expected:

splits =  {0: [1, 5,  17, 36]}

new data =  [4, 13, 33]

dicretized = [0 1 2]

'''

may be it the problem described here
https://www.researchgate.net/publication/266969212_ur-CAIM_improved_CAIM_discretization_for_unbalanced_and_balanced_data
ur-CAIM: improved CAIM discretization for unbalanced and balanced data
can you update code?

by the way code is accessible from  Research->Data Mining Tool
https://cioslab.vcu.edu/index.html
but link is broken

this link is broken as well
https://waikato.github.io/weka-wiki/packages/unofficial/

you also can see this paper
https://www.researchgate.net/publication/232633984_A_Survey_of_Discretization_Techniques_Taxonomy_and_Empirical_Analysis_in_Supervised_Learning
A Survey of Discretization Techniques: Taxonomy and Empirical Analysis in Supervised Learning
Finally,
we may note that CAIM is one of the simplest discretizers
and its effectiveness has also been shown
in this study.


Users posts

For this milestone we created

models with associations for user and posts
controlers and views for the above models
RSpec/Capybara tests
authentication with Devise gem

Test fixed.


Add a directory iterator option to allow to work easily with autoencoders (issue #4260)

This patch adds a new class_mode to keras.preprocessing.image.ImageDataGenerator.flow_from_directory method.
This new class_mode is 'identical' and it allows to generate minibatches where the target values are identical to input values. It makes working with autoencoders trivial. This issue has been described in #4260. The patch also contains tests that ensure that the input images are not the same numpy array as target images.

I like input as keyword, I will make this change.
About the copy, I think that not doing it can lead to pretty subtle bug to find in the code. I can imagine a usecase where someone uses flow_from_directory to read images from the disk, makes operations on the image and try to compare the original one and modified one. If the copy is not made, the changes made to the image will also affect the original.

LGTM

While there is a class_model=input for autoencoder in flow_from_directory method, I am using
flow method, because in my case the training data are only part of a directory. My code snippet is
        DataGen = ImageDataGenerator(featurewise_center=True,                                       featurewise_std_normalization=True,                                      samplewise_center = False,                                      samplewise_std_normalizatio = False)         DataGen.fit(CurData)         self.autoencoder.fit_generator(DataGen.flow(CurData, CurData, batch_size=CurBatchSize),                                         steps_per_epoch=len(CurData)/CurBatchSize,                                         epochs=CurEpoch,                                        callbacks=CurCallbacks)
Could model=input option be also added to flow method? Or has flow method been suitable for autoencoder already without need to specify anything extra?
Thanks!


Cannot reset password if no previous session

Affected Version
Silverstripe 4.5.1
Description
We moderate member signups and therefore do not give them a login until approved. When a login is approved, we create a member and send a password reset link. Upon clicking the link we observe the following error:

[Warning] session_regenerate_id(): Cannot regenerate session id - session is not active

Line 652 in /var/www/html/vendor/silverstripe/framework/src/Control/Session.php
Source
643
644     /**
645      * Regenerate session id
646      *
647      * @internal This is for internal use only. Isn't a part of public API.
648      */
649     public function regenerateSessionId()
650     {
651         if (!headers_sent()) {
652             session_regenerate_id(true);
653         }
654     }
655 }

Followed by a message saying we need to log in to change password.
Steps to Reproduce

Create member
Generate login token $token = $member->generateAutologinTokenAndStoreHash()
Get password reset link Security::getPasswordResetLink($member, $token)
Email to end user
End user clicks link; error occurs

potentially a duplicate of https://github.com/silverstripe/silverstripe-framework/pull/9499?

Yep, that looks like the same issue, cheers!


Allow uql unquoting null nodes if possible

When I define a variadic macro, that also can take zero variadic arguments something like following isn't enough:
(def x (macro intern (...)
  (qq a (uql (get-varargs-list (arg-count mc))))))

I also have to define another version for zero arguments ( or could check explicitely if it is a null node, which mostly is even more complicated)
(def x (macro intern (void)
  (qq a)))

On Thu, Sep 22, 2016 at 04:22:31AM -0700, Fabio Krapohl wrote:

When I define a variadic macro, that also can take zero variadic
arguments something like following isn't enough:
(def x (macro intern (...)
(qq a (uql (get-varargs-list (arg-count mc))))))
I also have to define another version for zero arguments ( or could
check explicitely if it is a null node, which mostly is even more
complicated)
(def x (macro intern (void)
(qq a)))

I'm not sure this is a good idea, mainly because unquoting a null
node, putting aside the case above, almost always means something has
gone wrong.  If this were changed, then the common case would require
the author to determine from the macro expansion that the node was
null and expanded to nothing, which could make debugging tricky in
some cases.  It would be possible instead for an 'empty' node, one
with a null token and a null list node, to expand to nothing, and for
get-varargs-list to return such a node when no arguments have been
passed to the macro: does that sound OK?

So you want to change uql, so it takes a list node instead of the first node of a list, and some new kind of node will be added, that is neither a list-node nor a symbol, representing an empty list?

On Mon, Oct 10, 2016 at 04:57:15PM -0700, Fabio Krapohl wrote:

So you want to change uql, so it takes a list node instead of the
first node of a list, and some new kind of node will be added, that
is neither a list-node nor a symbol, representing an empty list?

I think that changing uql such that it expands to the list node is
probably a good idea, but that would happen under #121, rather than
this issue.  For this issue, what I'm proposing is that:
(def x (macro intern (void)
  (def empty-node (var auto \ (make-node)))
  (qq a (uql x))))

would expand to:
(a)

because uql would see that empty-node had both a null token-str and a
null list-node, and expand it to nothing.  Along with that,
get-varargs-list would return such a node if no varargs were present.

Yes, this seems a good idea

Thanks, this should be fixed now.


Ensure that ABS OAuth cards are not sent by the community adapters

This PR addresses https://github.com/microsoft/botbuilder-js/issues/1806
OAuth prompts are not supported in the community adapters so they must not send OAuth cards. Instead, they must send sign-in cards.

Is this not supported at all? It looks like OAuth is working in the JS Community Adapters, when you link it to ABS. https://github.com/BotBuilderCommunity/botbuilder-community-js/pull/149
It is still a work in progress, since I was waiting for some OAuth changes in core, however it looks like it is possible. Why block this use in core, instead of blocking it in the adapter?

Pull Request Test Coverage Report for Build 109829

4 of 6 (66.67%)  changed or added relevant lines in 1 file are covered.
9 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.2%) to 83.798%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libraries/botbuilder-dialogs/src/prompts/oauthPrompt.ts
4
6
66.67%

Files with Coverage Reduction
New Missed Lines
%

libraries/botframework-streaming/src/webSocket/webSocketTransport.ts
2
80.65%

libraries/botframework-streaming/src/webSocket/webSocketServer.ts
7
66.67%

Totals

Change from base Build 109645:
-0.2%

Covered Lines:
9213

Relevant Lines:
10595

💛  - Coveralls


after install.bat relations are not working,

Things  must  be installed in c:\scripts for the moment.

Fixed


Component:  Assert.push

This prints a message to the console stating that this function is now
deprecated, and pushResult is preferred.
Fixes #986

Thanks for the initiative @rdugue! However, our current plan is to wait until our new warnings API has landed (see #918) and reuse the original PR I had made to close the issue (see #992).

Wooops, should have read further.  I'll go ahead and close this then.


fix: typo in 10_install_ubuntu.md

fixing one little typo in 10_install_ubuntu.md
Testing Instructions
no testing requiered

@JGrotex , in the future please complete the PR template rather than removing it. You can put N/A next to the PR checklist items that you don't check due to not applicable as in this PR. THX!


Reference OTA Provider flexible image selection configuration logic (more than 1 version)

Problem
The OTA provider reference application currently provides only one image for OTA-download. This should be augmented with the ability for the OTA-provider to lookup a list of available ota-images and make a selection based on the QueryImage request parameters.
Proposed Solution
Section <IP_ADDRESS>, “Availability of Software Images"
Section <IP_ADDRESS>.2, “Conceptual algorithm for matching OTA Software Images applicable to a query"
The OTA-Provider will implement a solution based on the above sections of the spec.

The OTA provider will be provided with a list of software images following the DeviceSoftwareVersionModel Schema. This will be in the form of a simple CSV/JSON file (this can be replaced with a DCL server connection in the future).
The OTA provider will process the QueryImage parameters (VendorID, ProductID, and SoftwareVersion)and make a decision which OTA image is best suited from the available list (Section <IP_ADDRESS>.2).
The selected OTA file will be sent to the OTA-requestor over the BDX protocol. If no relevant image is found, a "NotAvailable" status will be sent as a response to the QueryImage request.

Assigning to @hrajendran-samsung

@selissia @carol-apple If this implementation sounds good, I can go ahead with it.

This has been addressed by https://github.com/project-chip/connectedhomeip/pull/13890


Add Breadth-First Search (BFS) – Iterative and Recursive Implementation.

I want to add Breadth-First Search (BFS) – Iterative and Recursive Implementation in java, C++ and python.
Please assign me this isuue.

@Aishjahan This algorithm has not been implemented in C and Python, so would you like to work on these two languages?

Yeah sure, I'll be happy to work on it.

Assigned!
@Aishjahan : C & Python


Sep 15 - GitHub and the Power of Innersourcing

Event Information

Category
Details

Reactor Topic
DevOps and Dev Tools

Monthly Topic (if applicable)
Skill Up September

Weekly Topic (if applicable)
DevOps

Stream Topic
I think we will talk about the services/tools that GitHub offers to innersource and the importance/benefits of innersourcing.

Stream Date
September 15, 2020

Stream Time
4pm PT

Stream Duration
60 minutes

Title
How to Use GitHub for Better Project Collaboration

Description
GitHub has long served as one of the most popular collaboration tools for developers. Even so, developing software in collaboration with others can get complicated and confusing. In this session, you will learn some interesting, perhaps lesser-known, GutHub features (like InnerSourcing) and how they can integrate with Azure DevOps tools. Join Sarah Guthals, co-author of GitHub For Dummies, to explore the GitHub toolset and begin leveraging it for your own development and collaboration needs.

Speaker
@sguthals

Moderator

SharePoint ID
7858

Additional Resources:

Event Checklist
10 Weeks Prior

[x] Reactor Content Team (RCT) or Speaker opens a new issue for an upcoming stream filling in the Event Information table. Both RCT and Speaker are marked as assignees.
[x] RCT and Speaker discuss details of the event in the comments of this issue. RCT adds a confirmed-event label and global-twitch-event tag to the issue and adds event to the Global Live Streams project. Issue will appear in the Upcoming Streams column
[x] Speaker adds a ready-for-marketing-edit label so the RCT can review title and description

8 Weeks Prior

[x] RCT does a review of title and description and removes the ready-for-marketing-edit label
[x] RCT moves the issue to the Ready for SharePoint column
[x] RCT informs the Reactor Marketing Team of the new event information
[ ] RCT provides speaker with assets (e.g. slides, overlays) and the survey data for the event
[x] RCT moves the issue to the MONTH Streams Prep column (according to the month it will be streamed in)

2 Weeks Prior (Done in /microsoft/Reactors)

[ ] Speaker opens a PR with the new content for the stream on the customer-facing Reactor repository and adds the content-development and global-twitch-event tag to the PR.
[ ] Speaker adds to the same PR a modification to the Streaming README to include their stream information.
[ ] Speaker adds the RCT assigned to the issue as the reviewer when it is ready for review/merge
[ ] RCT reviews, approves, and merges the changes

1 Week Prior

[ ] Speaker and Moderator test setup for streaming (instructions coming soon)
[ ] RCT checks in with the speaker and moves the issue to the Ready to Stream column

During and After Stream

[ ] Speaker and Moderator run the stream
[ ] RCT submits recording to be uploaded to the Reactor YouTube and to be made available on LearnTV
[ ] RCT moves issue to the Stream Complete column

Resources:
https://azure.microsoft.com/en-us/solutions/devops/?2000709=&OCID=AID2000709_SEM_XqjyCAAAAE3ddTAk:20200623023617:s&msclkid=deea50c4fe3517c142190e354eeb5259&ef_id=XqjyCAAAAE3ddTAk:20200623023617:s#tools
https://resources.github.com/whitepapers/introduction-to-innersource/
Integrating Azure and GitHub

@KimberlyBolton1 - Also ready for edits here.

Hey @sguthals, on this one I wasn't entirely sure if the focus was on a variety of GitHub features or just those that are collaboration-specific. I tried to bridge the gap in my edit, but take a look and let me know if I went off base. Also, I wasn't sure which of these 2 titles was more apt (collaboration-specific or a broader stance). Your thoughts?
Option A: How to Use GitHub for Better Project Collaboration
Option B: Harnessing the Power of GitHub
GitHub has long served as one of the most popular collaboration tools for developers. Even so, developing software in collaboration with others can get complicated and confusing.  In this session, you will learn some interesting, perhaps lesser-known, GutHub features (like InnerSourcing) and how they can integrate with Azure DevOps tools. Join Sarah Guthals, co-author of GitHub For Dummies, to explore the GitHub toolset and begin leveraging it for your own development and collaboration needs.

@KimberlyBolton1 - LGTM!

Sorry, didn't realize there was an option....my brain skipped over B!!
I think I like A: How to Use GitHub for Better Project Collaboration
@KimberlyBolton1 - thanks!

Great! @mebaumb abstract final and moved to Ready for Sharepoint.

Event published on SharePoint/meetup, added to ch9 calendar, stream reminder sent, and moved to correct stream column.

@mebaumb - if the Sept 17 one gets moved to sept 15 9-11am then I would like to cancel this one.

This event was cancelled!


Support for custom tokens in format

This pull request provides the ability to render custom data to the progress bar.
In options you define extra tokens and their default value. When updating you can then optionally set the values for the tokens.
I'm using this to be able to show transfer speed in my progress info. Let me know if you want any changes.

Hi Tobias,
thanks for your contribution! adding custom values/placeholders is a great enhancement :)
before merging, the following changes should be applied:

Variable Naming: this.custom is a "bad" name for variables - i would prefer to change it to this.payload as this is a more convinient naming scheme for such kind of additional data
Example: please do not alter the basic example. add a new example function called Example5 :)

best regards, Andi

Hi @AndiDittrich, please review my PR now. I have renamed to payload, reverted Example 1 and added Example 5.

Hi @tobiasps,
i've changed the initialization of the payload data in 83c7e73f151c30bcc51db4ca6992c37b3d594a95

Within the constructor, this.payload is initialized as empty object
Within the start() method, the initial payload data can be passed as 3rd argument

These changes allows users to re-use the bar with different intial values as desired.
br, Andi


Upload wheels to PyPI

Wheels (.whl) for this package are currently missing from PyPI. Could wheels be uploaded for the current and future releases?
Read more about the advantages of wheels to understand why generating wheel distributions are important.
To create a wheel along with source distribution:
(venv) $ pip install --upgrade pip setuptools wheel
(venv) $ python setup.py sdist bdist_wheel

# See dist/*.whl

To upload wheels:
(venv) $ pip install twine
(venv) $ twine upload dist/*

@myint I'd like to automate the integration with PyPI, but I wanted to check with you what's your preferred approach.  I could reuse a workflow I have in another project that I maintain, you wouldn't need to give me permission to release the package to PyPI, but only add a secret to this repo so I can reference it from the GH workflow. Are you ok with that? Or would you rather keep releasing it manually?

I've just gone ahead and given you PyPI permissions.

@myint thank you! Unfortunately I don't have permissions to add a secret to the repo, so automation won't be an option for now, but I can definitely push it manually as needed :)

Try now.

@myint that should work now, thank you very much!

Confirmed it works here: https://github.com/PyCQA/autoflake/runs/8053824994?check_suite_focus=true
Next release should go out automatically \o/


Using aka with equal(...) means the aka message is lost.

If I do:
1 aka "The number 1" must equal(1)

Then the message passed to the aka method is lost, however it works if I do:
1 aka "The number 1" mustEqual(1)

Then everything is fine.

Closing to cleanup my own list of issues.


[Action][Node] Bump npm package version

Acceptance Criteria

[x] Create reusable action

Name: Bump Semantic Version
Description: Bump semantic version based on the most recent version extracted from Git tags
Input

type - optional Type of version number in semantic version to bump, one of [major, minor, patch] (default: patch)
prerelease - optional Whether to bump version as a pre-release (default: true)
prerelease-id - optional Pre-release version suffix i.e. x.y.z-rc.n (default: rc)
tag-prefix - optional Git tag prefix to match for the most recent version (default: <empty string>)
fallback-version - optional Fallback version to use if no tags found (default: 0.0.0)

Output

version - The bump semantic version

[x] Retrieve latest version from git tags with command

git describe --tags --abbrev=0 --first-parent --always <commit>
git describe --tags --abbrev=0 --first-parent --always --match="<prefix>**" <commit>

[x] Bump version number as specified with type and prerelease

Unable to find tag when uses actions/checkout with default config

Pre-release version should bump upon the latest non-prerelease version then find the prerelease version of the same major/minor/patch

Pre-release version should bump upon the latest non-prerelease version then find the prerelease version of the same major/minor/patch


How do I use VIM-PLUG? Where do I put it? (I'm on Windows 10 and my main VIM folder is at C:/Program Files/Vim and I use Ubuntu to use Linux on Windows Terminal)

Explain the problem here ...
I don't know how to use this. I try to put it in my autoload file in my main vim folder but yet, when I use :PlugInstall it ends up with E492: Not an editor command: PlugInstall

Type:

[ ] Bug
[ ] Enhancement
[ ] Feature Request
[x] Question

OS:

[ ] All/Other
[½ ] Linux (I use WSL for Windows)
[ ] macOS
[X] Windows

Vim:

[X] Terminal Vim
[X] GVim
[ ] Neovim

You should follow the instructions in https://github.com/junegunn/vim-plug?tab=readme-ov-file#installation

I asked for help


Cleanup data on some new imported tables: tbl_SystemInformation, tbl_ActiveProcesses_OS

tbl_SystemInformation
remove : from Property col
tbl_ActiveProcesses_OS
Mem Usage is text with "," and "K". For easier sorting or math work on memory used, remove those, divide by 1024 to get MB and store as a decimal in MemUsageMB.

Associated with:  6c407717f5a2a31605055fc24c6bdd7c56e29efb


Integrating SBOM and Attestations with Backstage through a Chainloop Extension

Proposal: Integrating SBOM and Attestations with Backstage through a Chainloop Extension
Context:
I recently developed a version matrix plugin for Backstage that presents package listings for different package managers. Initially, the implementation was focused on Composer, where I manually sourced package data and displayed it in Backstage. During the process, I discovered that Chainloop, along with Syft, could serve as an excellent resource for gathering Software Bill of Materials (SBOM) and other attestation data, which would be far more scalable and reliable than building a package listing system from scratch. This led me to explore the potential of integrating Chainloop with Backstage to offer SBOM version tracking.
Proposal:
I propose building a Chainloop extension that integrates SBOM and attestation data with Backstage, initially focusing on SBOM version listings. The architecture for this integration involves decoupling the systems through a message queue to facilitate robust communication between Chainloop's FanOut mechanism and Backstage's backend.
Architecture Overview:
graph TD
    %% Chainloop FanOut process
    subgraph Chainloop
        A1[Chainloop receives SBOM Data] --> A2[Chainloop FanOut Extension]
        A2 --> A3[FanOut Task triggered]
        A3 --> A4[Prepare Message for Queue]
        A4 --> MQ1[Message Queue]
    end

    %% Message Queue decoupling the system
    MQ1[(Message Queue - NATS/Kafka/SQS)]

    %% Backstage Backend Plugin with detailed tasks
    subgraph Backstage Backend Plugin
        MQ1 --> B1[Scheduled Task]
        B1 --> B2[Pull Message from Queue]
        B2 --> B3[Parse SBOM Data from Message]
        B3 --> B4[Match SBOM to Backstage Entity]
        B4 --> B5[Process SBOM Packages]
        B5 --> B6[Store Processed Data in PostgreSQL DB]
    end

    %% PostgreSQL Database storing the processed data
    B6 --> DB1[(PostgreSQL Database)]

    %% Backstage User interaction with processed data
    subgraph Backstage User Interaction
        U1[Backstage User] --> UI1[Backstage Frontend - View Entity Page]
        UI1 --> UI2[Request SBOM Package Data]
        UI2 --> DB1
        DB1 --> UI3[Render SBOM Package Details on UI]
    end

Detailed Flow:

Chainloop FanOut: Chainloop receives SBOM data, which is processed through a custom FanOut extension. The extension prepares the SBOM data and pushes it to a message queue (e.g., NATS, Kafka, SQS, etc.).

Message Queue: A message queue decouples Chainloop and Backstage, ensuring reliability and flexibility in communication.

Backstage Backend Plugin:

A scheduled task in Backstage pulls messages from the queue.
The plugin parses the SBOM data from the message and matches it to the relevant entity in Backstage.
The SBOM package data is then processed and stored in a PostgreSQL database.

Backstage User Interaction:

Users interact with the processed SBOM data via Backstage’s frontend, where they can view version listings and package details related to the specific Backstage entity.

Open Questions for Discussion:
1. Message Queue Integration: I opted for a message queue between Chainloop and Backstage to decouple the systems and allow flexibility in the underlying infrastructure (e.g., supporting NATS, Kafka, SQS, etc.). However, I'm open to feedback—do you see this as the best approach, or would a more direct integration (e.g., HTTP-based or WebSocket) be preferable in this case? I’m particularly interested in understanding any trade-offs in terms of performance, complexity, or maintainability.
2. FanOut Process: Should the FanOut process be the preferred extension mechanism for handling this data in Chainloop, or is there another Chainloop component that could provide a more efficient or streamlined method for pushing SBOM data?
3. Backstage Backend Module Structure: Given that I plan to use multiple message queue systems (NATS, Kafka, etc.) based on user needs, should this be handled in a modular fashion within the Backstage plugin, or would a more uniform approach with configurable options be easier to maintain?
Reason for Proposal:
As I mentioned earlier, I initially built a version matrix plugin for Backstage that provides listings of package versions for Composer. Realizing that tools like Syft and Chainloop can automate and centralize SBOM generation and attestation, I want to leverage Chainloop’s existing capabilities instead of manually building a version tracking system from scratch. This integration would provide a scalable solution for organizations using Chainloop and Backstage, starting with SBOM listings and potentially expanding to other types of attestations in the future.
I believe this proposal could greatly enhance both Chainloop's extensibility and Backstage's capability to display SBOM and attestation data, providing developers with more transparency and traceability in their software supply chains.
Looking forward to your feedback and suggestions on this integration approach!

hi @ImperiumTakp
First of all, thank you so much for taking the time to craft such a detailed feature request.
From the functional point of view, your request makes sense overall. We have questions, though, that might impact the implementation.

Backstage Backend Module

Do you envision this plugin to be proprietary or general-purpose and open source?
We are open to both, but knowing which one might have an impact on how we should communicate with it. For example, if the plugin was OSS, we could start with a backstage fanout + backstage plugin using HTTP as the first step. But if it's proprietary, a general-purpose NATS integration might make sense.

Message Queue: A message queue decouples Chainloop and Backstage, ensuring reliability and flexibility in communication.

We have discussed in the past how a fanout integration for an event bus could be useful (https://github.com/chainloop-dev/chainloop/issues/419), but we always think about the fanout plugin pushing to a topic in an event bus running somewhere else.
It's not clear to me if you are proposing Chainloop should run a NATS stream instance as well or instead, it should be running next to backstage.

initially focusing on SBOM version listings.

I'd love to understand more about what you mean by version listing. That way, we can decide what kind of data must be sent over the stream, i.e., attestation info, SBOM, or both.
These are some of the questions that got raised during an internal chat with the team, we got very excited of your proposal so we'd like to discuss it further.
Would you be able to join our Slack community and maybe we can chat there?
Thanks again!

hi @ImperiumTakp
First of all, thank you so much for taking the time to craft such a detailed feature request.
From the functional point of view, your request makes sense overall. We have questions, though, that might impact the implementation.

Backstage Backend Module

Do you envision this plugin to be proprietary or general-purpose and open source?
We are open to both, but knowing which one might have an impact on how we should communicate with it. For example, if the plugin was OSS, we could start with a backstage fanout + backstage plugin using HTTP as the first step. But if it's proprietary, a general-purpose NATS integration might make sense.

Message Queue: A message queue decouples Chainloop and Backstage, ensuring reliability and flexibility in communication.

We have discussed in the past how a fanout integration for an event bus could be useful (#419), but we always think about the fanout plugin pushing to a topic in an event bus running somewhere else.
It's not clear to me if you are proposing Chainloop should run a NATS stream instance as well or instead, it should be running next to backstage.

initially focusing on SBOM version listings.

I'd love to understand more about what you mean by version listing. That way, we can decide what kind of data must be sent over the stream, i.e., attestation info, SBOM, or both.
These are some of the questions that got raised during an internal chat with the team, we got very excited of your proposal so we'd like to discuss it further.
Would you be able to join our Slack community and maybe we can chat there?
Thanks again!

Hi @migmartri
A bit of background
As you can see in the screenshot, this plugin provides an overview of PHP dependencies across different systems (it’s for Composer, specifically). The idea is to track package versions per system, and since SBOM data relates to this, I thought it made sense to use SBOMs generated during the CI process as the "source of truth" for this info. How we get that data into Backstage is really just a technical detail, but it feels like a natural fit with Chainloop.
Clarifying a few things:
1. Backstage Backend Module: Open Source
Yes, I envision the plugin being open-source and general-purpose. Backstage has a solid plugin ecosystem (check Backstage Plugins), and I think this would be a great addition for anyone using Chainloop and Backstage together. It would be super useful for anyone already running Backstage, and they could integrate Chainloop seamlessly if they decided to.
2. Message Queue or Another Way?
I suggested a message queue because Backstage typically pulls data while Chainloop pushes it, so a queue seemed like a good bridge. That said, I’m totally open to simpler options like using HTTP for the MVP. The main goal is to make sure Backstage can process and own the SBOM data, keeping things smooth and self-contained.
3. SBOM Version Listings
When I talk about “SBOM version listings,” I mean using Chainloop to track which package versions are included in the SBOM for each system. In the current version matrix plugin (screenshot above), we track dependency versions per system. Ideally, Chainloop would push the SBOM info, and then Backstage would pull that data to display the package versions in a similar matrix. The initial focus is on showing versions, but there’s definitely room to expand to attestation data or other SBOM details down the line.

I'll definitely join the Slack! My plan for the next step is to create a public Backstage setup with the work-in-progress Chainloop plugin. Looking forward to collaborating more!

Hi @ImperiumTakp, thanks again for taking the time to elaborate on those points, please see inline.

The idea is to track package versions per system, and since SBOM data relates to this, I thought it made sense to use SBOMs generated during the CI process as the "source of truth" for this info. How we get that data into Backstage is really just a technical detail, but it feels like a natural fit with Chainloop.

I agree; it looks like a great fit. Let's do it :)

Backstage Backend Module: Open Source

Perfect!
The reason I am asking is that, in fact, down in our backlog of things, creating an Open Source integration for backstage was in our pipeline, so we will be happy to collaborate with you. Potentially on the frontend and backend side :)
Originally, though, we were thinking of adding it as part of the https://github.com/chainloop-dev GitHub organization. That way

People who use Chainloop can discover this plugin easily
We can set the same development guidance/automation we set at the Chainloop Project itself. i.e Proper OSS compliance requirements, branch protection, static analysis, release process, signed commits, ...)

Would you be open to hosting this plugin code under https://github.com/chainloop-dev org? Of course, we will add a permissive Apache License, you will core contributor of the repo, etc.

Message Queue or Another Way?

I agree that an event bus is a scalable and extensible way of connecting both projects, but I am worried that it will add an additional dependency that somebody will need to deploy. From experience, we've got some feedback that Chainloop is already a complex setup, so adding an event bus just for this does not seem like an option in the short term.
Using an event bus opens other challenges, such as authentication, reachability, and so on. So, for the initial implementation, I'd suggest that we stick to POST API calls, similar to what we do for DependencyTrack unless you think there will be a big bottleneck. Note that eventually, on the Chainloop side, we are going to add more resiliency and control on the fanout interface so that we can be more gentle with the backstage endpoint :) https://github.com/chainloop-dev/chainloop/issues/39

SBOM Version Listings

Perfect, thanks for the info. I think that sending SBOM data + Attestation info would do the trick. Attestation info contains more metadata that could be useful down the line.
I can also see that you are already in Slack, welcome! Let me know if you want to have a quick chat with our team so we can put a face to a name and flesh out a plan, what do you think? :)
Thanks again,
Miguel

I've created a repo https://github.com/chainloop-dev/backstage-plugin

I'll definitely join the Slack! My plan for the next step is to create a public Backstage setup with the work-in-progress Chainloop plugin. Looking forward to collaborating more!

https://chainloop-community.slack.com/archives/C076SP4SCTD/p1726681561106329
I'd love to have a chat about this feature request @ImperiumTakp


EPIC: Palomabot Telegram Bot Commands Feature set

Create EPIC with Feature set for Telegram Bot Commans for Palomabot. For example, some basic admin commands:

Link Wallet
Palomabot status
Start a Bot
Stop a Bot
List Bots

Anything else?

Done. https://www.notion.so/volumefi/EPIC-07-28-23-Palomabot-Telegram-Bot-Commands-Features-7609ce4331664b16828006272cb3c98d


Construct SWH tree, support patch, Debian repo indexing script

This PR adds the followings:

given an OmniBOR gitoid, bomsh can construct the Merkle tree. Also for the tree nodes, if it is source file, and it exists somewhere (either in local directory or SoftwareHeritage archive), then bomsh is able to download it and create a symlink to the source file, so that user can easily inspect the source code, especially for the source files with CVEs detected.
added support of GNU patch command. It creates dependency between the patched files and the patch file.
a new bomsh_index_debrepo.py script to index all source packages for Debian/Ubuntu mirror repo. Such an index DB will be useful for future OmniBOR use cases.
miscellaneous fixes.


replay of vkcube with 1.3 instance provokes VMA crash on 1.2 driver

[gfxrecon] INFO - Replay adjusted the vkEnumeratePhysicalDevices array count: capture count = 2, replay count = 1
[gfxrecon] INFO - Replay adjusted the vkEnumeratePhysicalDevices array count: capture count = 2, replay count = 1
[gfxrecon] INFO - Replay adjusted the vkGetPhysicalDeviceQueueFamilyProperties array count: capture count = 4, replay count = 3
[gfxrecon] WARNING - The replay device differs from the original capture device; replay may fail due to device incompatibilities:
[gfxrecon] WARNING -   Capture device info:    [vendorID = 0x10de, deviceId = 0x249d, deviceName = NVIDIA GeForce RTX 3070 Laptop GPU]
[gfxrecon] WARNING -   Replay device info:    [vendorID = 0x10de, deviceId = 0x1f07, deviceName = GeForce RTX 2070]
ERROR: ----stderr---------------------------------------------------
Assertion failed: m_VulkanFunctions.vkGetDeviceBufferMemoryRequirements != nullptr, file D:\j\workspace\manual-gfxreconstruct\gfxreconstruct\external\VulkanMemoryAllocator\include\vk_mem_alloc.h, line 14652

I suspect we initialize VMA with the recorded capture apiVersion and not the replay created instance API version.

Not sure if this is really a P1 or 1.0 release issue.  I suspect this only happens if someone captures on 1.3 and replays on 1.2, which should be somewhat uncommon.  But we might start getting complaints about this shortly if it's more common than I thought, so leaving elevated for now.

I think we should check whether or not  the device VkPhysicalDeviceProperties::apiVersion support the capture apiVersion during replaying. If it doesn't support, we could just print a warning log. Maybe we could add an option to set apiVersion for replay.

To reproduce, run a Jenkins manual-gfxreconstruct job, with:

TEST_SUITE: 883.json
BUILD_MODE: Debug
BITS: 32 or 64, as desired
NODE: sansalvacion

FYI, I also added this test case to gerrit-suite.json so it'll get some testing to make sure we don't regress.


Boba Gateway - Bug Transfer All Funds  (Rinkeby)

When you want to transfer all of your funds and press the "use all" button, it does not include the fee that the users needs to pay to the network. But at the moment the users can still press approve in metamask. This will lead to a failed transaction. But the Boba gateway will show you a green indication that the transaction was succesfully submitted. This needs a quick fix, because the users still has to pay for the failed transaction. And they have no clue what just happend, because the gateway shows that the transaction was sumbbited correctly.

Great catch

Was temporarily fixed by removing the option to 'use all'. Will be truly fixed post Sept. 20.


Missing event type for EventGrid

Refer to Event types
The eventual success and failure of a resource action will be reported by:
Microsoft.Resources.ResourceActionSuccess, or
Microsoft.Resources.ResourceActionFailure
However, my use-case is to monitor and react to an action that has been Started on a resource (example: VM restart).
The end result event (example: VM restart success) is usually delayed (in the order of few minutes), so this does not serve my purpose.
I would like to request that the following event type be added:
Microsoft.Resources.ResourceActionStarted
Thanks,
Sourabh

@sopatwar  Thanks for reporting this issue. We are marking this as feature request and will pass it to the product team. Please feel free to contact Event Grid team using<EMAIL_ADDRESS>

Thansk @sopatwar - I've added it to our tracking and tagged Azure Resource Manager which would own implementation of this.

Can someone from Azure ARM team take a look here?

Thanks @ahamad-MS. I have assigned this issue to @snaheth  who is part of the ARM team.


Add support for building bloom filters in batch jobs for offline segments

We're noticing that building bloom filters takes a considerable amount of time when loading segments on offline Pinot servers, specifically in rebalancing and replacing servers. We'd ideally like to perform this in our Spark offline pipeline instead similar to createInvertedIndexDuringSegmentGeneration.

Do you have any profiles you could share? We shouldn't rule out making it much faster to build bloom filters.


Upgrade gradle-enterprise-conventions-plugin to 0.9.0

In the past, gradle-enterprise-conventions-plugins read env variable GRADLE_CACHE_REMOTE_URL, expecting the value with format https://domain.com/cache/.
In https://github.com/gradle/gradle/pull/28132, we upgraded the plugin and changed the value of GRADLE_CACHE_REMOTE_URL to format https://domain.com/. However, this broken the promotion build because Relese pipeline still passes the old value GRADLE_CACHE_REMOTE_URL=https://domain.com/cache/
Now we have renamed the property name in https://github.com/gradle/gradle-org-conventions-plugin/pull/25 so the old value in Release pipeline won't break the build.

I've triggered the following builds for you. Click here to see all build failures.

PullRequestFeedback build

The merge queue build has started. Click here to see all failures if any.


22 add join

@mjovanc wrote most of this. The concept is adding the ability to join tables together.

Wow great job Chase! Thanks for finishing this.


Can't update the presentationHint of a Source during a debug session

Start debugging with the node2 or chrome debugger
Right click on a stack frame, "toggle skipping this file"
The debug adapter will now send the opposite presentation hint for the stackFrame.source (if it was not skipped, it will now send "deemphasize". If it was skipped, it will stop sending "deemphasize")
But the stack frame view is not updated - it still appears with the original presentationHint

Looking at the code, it seems like the Source is cached by id, and the presentationHint is never updated, even if the debug adapter sends a Source with a different presentationHint. This must have changed at some point.

After toggling a stackframe for the first time it correctly updates to a dimmed presentation.
But toggling the stackframe again doesn't result in the original presentation.

Strange, because I take the priority of the incoming source object.

@weinand good catch. This was not working because I was merging whatever was coming in with what I already had. And when you toggle back the source to be shown it does not have any presentationHint since it is back to normal. However with my merge stragety the old presentationHint would not get updaed. Now I always override the presentationHint with whatever I get from the adapter

I assume this is now correct after invoking the action:

Yeah, but after you invoke it again module.js should no longer be dimmed

@isidorn yeah that is what I saw


401 no matter what I do, I can get it to work with curl

I cannot get the API to connect to my kanboard. Everything I've tried leads me to a 401, except using curl.
Curl only works if I use X-API-Auth. I don't know how to use custom headers with python API.
Please help me. I'll provide any info needed

I was able to get it figured out, well a friend helped me. There's an optional 4th parameter that seems to be missing any documentation that lets you set the header type.

Note that I've also had trouble making it work just following the doc; what I ended up was something like this:
kc = kanboard.Client(...)
kc.execute(
    method='createTask',
    project_id=1,
    title="hello",
    description="world",
)

and using method names and arguments from the API documentation, eg. this page for createTask: https://docs.kanboard.org/v1/api/task_procedures/#createtask
I suspect the doc could be improved, but knowing that this is a low-maintenance project I don't expect author to fix it; maybe if someone came up with concrete MR.


val3_driver: remove magic numbers

The current staubli_val3_driver VAL3 sources contain quite a few magic numbers (here, here and here for example).
Ideally, these are replaced by proper constants with semantically meaningful names, so as to avoid confusion and potential (future) errors.
Especially those related to simple_message protocol aspects are good candidates for refactoring, as they already have defined names and should be easy to replace. See Defined Constants in Message Structures of the ROS-Industrial Simple Message Protocol (candidate REP) and simple_message/simple_message.h for this.

#8 will improve the situation, but there will still be a few left (such as in fetchStatus fi).


Regex error

I tried to use the component and found an error at this line.
Fixing the regex pattern help build complete but please verify the function validity

@k2w2yut Can you expand on which error you found?
The regex seems to be work fine as is. The job of the regex is to convert next bracketed dynamic routes to express ones (using :).
For example:

With your change it breaks:

It just simply syntax error when I try to deploy the code.
Disclaimer: I'm not a front-end dev, only taking care of bringing project up to AWS environment.

@k2w2yut You will need at least node 10.x.x for this to work. Otherwise it might be available in earlier versions by using --harmony-regexp-named-captures. See https://github.com/nodejs/node/issues/19760

I see thank you to point that out

@k2w2yut You will need at least node 10.x.x for this to work. Otherwise it might be available in earlier versions by using --harmony-regexp-named-captures. See nodejs/node#19760

I see, thank you for point that out


Resolve resize issue under Qt 6 environment.

Qt 6 assume that Qt::WindowMinMaxButtonsHint depend on Qt::WindowSystemMenuHint. And hard-code this in its source code. Source code reference: https://github.com/qt/qtbase/blob/6.4.2/src/plugins/platforms/windows/qwindowswindow.cpp#L833
However, if Qt::WindowSystemMenuHint added, an extra window style called WS_SYSMENU will be added for this frameless window. Due to Windows implementation, if WS_SYSMENU existed, any resize operations of this window will fail, even QWidget::nativeEvent() was still running.
I have tried QWidget::setWindowFlag(Qt::WindowSystemMenuHint, false); but it doesn't work. Obviously, we can remove Qt::WindowMinMaxButtonsHint to solve this issue. But we can not click icon on taskbar to minimize this window if removing it. This breaks the experience of this app, then I gave this up.
So this is the final solution. I use native Win32 API to forced remove this annoying flag.

Another solution is... simply remove Qt::WindowMinMaxButtonsHint from window flags list, but then Winkey+Up / Winkey+Down will likely no longer works, and user will also no longer be able to minimize the window by clicking the taskbar icon.

I updated the master branch code with this as a workaround change before the real fix comes out.

that's all what i have done.
hope you can check it out, especially code format and memory issue.
the references of this implementation already has been written in code file.


Enduro js Deployment Node.js hosting

Hi,
I currently have used Enduro js for a client, to quicly create a website for them.
Now I am trying to deploy my project onto a Node.js hosting, but I am getting stuck.
The control panel requires some information, which I do not know what to enter.
The field "application root" is the folder in which I put the project in.
I do not know what to put in the field "Application Startup File".
Help would be much appreciated!
Thanks for your help in regard.
Update
I know understand that in a normal Node.sjs project, the "Application Startup File" would be either a server.js or index.js file. I tried to enter "app/app.js" inside this field, but it wont work.
The hosting I am using, makes use of Phusion Passenger for Node.js apps. It includes the following settings:
DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION BEGIN
PassengerAppRoot "/home/balloons/node-app"  ==> directory of project
PassengerBaseURI "/node"  ==> URL
PassengerNodejs "/home/balloons/nodevenv/node-app/11/bin/node" ==> Node install
PassengerAppType node
PassengerStartupFile app.js
DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION END
I am a bit lost at this point. It is really important for my client that they have the admin functionallities. When using the static files, it does work, but then I don't have any admin functionallities.

I eventually managed to get it working.
It involved running enduro on a higher port, say 8000, via enduro start --port=8000.
Next, I had to change my .htaccess file, to redirect from port 8000 to port 80.
RewriteEngine On
RewriteRule ^$ http://:/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://:/$1 [P,L]


Ability to install sbomqs using yum or apt-get

Add ability to install and use sbomqs via apt-get and yum.

/assign


Disable "Next Conflict" icon on the last conflict

When clicking "Next Conflict" (Down arrow icon):

Instead of showing this message:

Just disable the button, or auto cycle to the first one...

I believe we mainly do this today, as it would be more expensive to figure that out ahead of time.


Run Above/Below Cells should be disabled while debugging inside of cell

Environment data
VS Code Environment:
Version: 1.72.0-insider
Commit: b9f7f85e90b4d51b38fcbf4232801ab04bd659cb
Date: 2022-09-23T08:15:07.186Z
Electron: 19.0.17
Chromium: 102.0.5005.167
Node.js: 16.14.2
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 21.6.0
Sandboxed: Yes
VS Code Extensions
Jupyter Extension: v2022.9.1002681037 Pre-Release
Python Extension: v2022.15.12631011 Pre-Release
Azure Machine Learning - Remote: v0.19.2022092309 Pre-Release
Azure Data Lake Tools: v0.2.15
Python Environment
Conda: 4.13.0
Python: 3.9.13
Type of virtual environment: Conda + IPyKernel
.net Environment
.net: 6.0.401
Operating System
macOS Monterrey 12.6
Macbook Air (M1, 2020)
Expected behaviour
Disable the run above/below cells during debugging so users don't get confused by 'run' like icons.
Actual behaviour
When a user is debugging a cell in a Jupyter Notebook the arrows to run above and below cells are still enabled and the user can easily confused them as step-next or continue buttons (being part of the debug cell.
Additionally if the user clicks on the run above/below buttons the action is 'queued' and executed after the debugging of the cell is over, which is an 'unexpected' annoyance.
Steps to reproduce:

Create a notebook with multiple cells
Debug code on one of the cell in the middle
Press the run below button during the debugging of the cell

Buttons available and confusing

Once the debug of the cell is over the Run Above/Below action executes restarting other cells

Hm, I actually can't really do this perfectly since "debugging a notebook" is an extension concept, but the buttons are managed by core. I could disable them when paused in some cell in the notebook but then they would blink as you step. Maybe if you pause in the notebook, they get disabled until that debug session ends? I can explore later.

Yes just being disabled until the debug session finishes would be already an improvement, maybe a bit confusing but at least the user won't end up re-running the full notebook by mistake.

I think I accidentally created this issue here instead of in https://github.com/microsoft/vscode-jupyter/
Can someone please move it there if it is the right place for this one to be. Thanks


Update the stale markComment message

This is a first draft including what I would like to add to the bot message after reading feedback.
/cc: @lee-dohm @rsese for 💭s about the wording and contents.

/cc: @50Wliu

I think the changes made are good 👍 Thank you @lee-dohm and @50Wliu for reviewing 🙇

Sounds like everyone is generally 👍 on this change, so I'm going to merge it. Thanks for taking this on @Ben3eeE :bow:


Provisioning generic driver to centos with zsh fails

During creating generic machine it raise error if target user has zsh as default shell.
Command:
docker-machine --debug create \
  --driver generic \
  --generic-ssh-user=root  \
  --generic-ip-address={my_ip_arrd} \
  --generic-ssh-key ~/.ssh/id_rsa \
  {machine_name}

Error happen after internal executing of next command:
sudo -E yum -y update -x docker-*
zsh: no matches found: docker-*

With bash it works as expected, but with zsh this command fails.
I've tried execute this command from console (zsh) and got same error.
But same command with escaped package expression work as expected with both shells:
# sudo -E yum -y update -x 'docker-*'
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.maxus.pro
 * epel: mirror.bacloud.com
 * extras: mirror.maxus.pro
 * updates: mirror.maxus.pro
No packages marked for update

Seems need to fix here:
libmachine/provision/redhat.go:155
Versions:
Host machine:

Ubuntu 16.04.3 LTS
docker-machine version 0.13.0, build 9ba6da9
Docker version 17.05.0-ce, build 89658be

Target machine:

centos-release-7-4.1708.el7.centos.x86_64
zsh 5.0.2 (x86_64-redhat-linux-gnu)
Docker version 17.05.0-ce, build 89658be

You can also disable the zsh nomatch-option in /etc/zshenv:
setopt +o nomatch