leader-line with Reveal while using section

Hi,
I'm currently working with Reveal which is based on HTML and I would like to add leader-line to my presentation. Everything works till I'm adding  to it.
For example with section:

For example without section:

Is there any simple solution for this issue?
HTML code:

JS code:
var startElement = document.getElementById('op2'),
endElement = document.getElementById('op1');
new LeaderLine(startElement, endElement, { color: 'red', size: 8 });

Hi @sharontabakman, thank you for the comment.
Since you didn't show actual code, this is an estimate.
You added the line before the target elements are rendered. That is, the position of those element are not known.
Then, you have to call position method when the target elements are rendered.
For example:
Reveal.addEventListener('slidechanged', function(event) {
  if (event.indexh === 5) { // An index of the section that has the line is 5.
    line.position();
  }
});

Hi anseki!
Thank you for responding me but using- line.position(); does not help.
here is my code:
`<!doctype html>

	<title>reveal.js</title>

	<link rel="stylesheet" href="../../css/reset.css">
	<link rel="stylesheet" href="../../css/reveal.css">
	<link rel="stylesheet" href="../../css/theme/black.css">

	<link rel="stylesheet" href="../../lib/css/monokai.css">
	<link rel="stylesheet" href="styling2.css">
	<link rel="stylesheet" href="../styling2.css">

	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

					work space

					work space

`
As I've mentioned before, the arrow appears on the top left of the window and does not display correctly.
For some reason when I remove the "section" from the code it works..
code without "section":
`<!doctype html>

	<title>reveal.js</title>

	<link rel="stylesheet" href="../../css/reset.css">
	<link rel="stylesheet" href="../../css/reveal.css">
	<link rel="stylesheet" href="../../css/theme/black.css">

	<link rel="stylesheet" href="../../lib/css/monokai.css">
	<link rel="stylesheet" href="styling2.css">
	<link rel="stylesheet" href="../styling2.css">

	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

				work space

				work space

`

There are some problems.

You have to use
 element for reveal.js. Otherwise reveal.js doesn't work.
See document: https://github.com/hakimel/reveal.js
Since you didn't define the variable line, you can't use that. You said that the position method doesn't help but you didn't call the method in the first place. You can't reference the line. You didn't define the variable x also. That is, your code didn't work regardless of LeaderLine.
Maybe you have to learn ECMAScript (JavaScript) first.
See document: https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript
I don't know why you use the fragmentshown.
Your HTML code also has some problems. For example,  element is missing.

Anyway, as I said, the position method solves this issue. For example:
https://jsfiddle.net/zu4mqgya/

Thank you for the help!! Your example helped me solve the issue between sections.

:smile:


read dynamic columns

What changes were proposed in this pull request?
Ability to read multiple columns from HBase with the unknown column name.
How was this patch tested?
It contains own test
Note
This PR is done to show what I've done to read dynamic columns. I don't think so this is a good way to do that but I think this will start a productive discussion. This PR is referred to https://github.com/hortonworks-spark/shc/issues/141
Limitation.

It supports only read, doesn't work for writes.
It blocks MapType for future (correct) usage
Doesn't check performance
Support only PrimitiveType serialization

Thanks for this PR, @btomala .
cc: @dongjoon-hyun @merlintang

I'll review this soon.

I'm closing my PR it doesn't make sense, I have another Idea how to do that. I made PR when I find the time.

Thanks for the efforts, @btomala !

@btomala I also require this feature. It has been on my waitlist for long. How can I help?

I rise PR here https://github.com/hortonworks-spark/shc/pull/207
This is what I currently use to solve that issue. Has the ability to handle timestamps for values also.


flit build packages different files into the sdist than python -m build

I have a package that is build using flit-core (actually via flit-scm). When running flit build it follows the documentation in that it packages all git tracked files in the repository. When doing the build via python -m build it instead gathers only the files in our modules subdir though I don't really ever specified that? (that i.e. doesn't include the tests, which I'd like to ship in the sdist as well).
The [tool.flit.sdist] include and exclude directives can be used to work around that but it seems odd that I'd need a different set of directives between different build frontends.
Is this behaviour to be expected for some reason or is this a bug?

It's expected for now, though I'd like to figure out a way out of it.
Flit was around before PEP 517 and the neat separation of frontends and backends. Back then, I saw sdists as just a way to publish a snapshot of the source code on PyPI, so only a package's maintainer would ever need to make them. In that context, relying on git (or another VCS) to decide which files to include made sense.
Other people took a different view, and making an sdist was standardised as a backend hook, so a frontend can ask the backend to make an sdist in any context. It didn't make sense for this backend operation to require either VCS tools (the git command) or VCS metadata (the .git folder). The compromise I chose was for the backend to make a 'minimal' sdist, with just the files needed to build a wheel, but for flit build to carry on using the VCS and making a larger sdist, like it always had, for publishing on PyPI.
That probably needs to change at some point, because people obviously expect that an sdist is an sdist. But it mostly works for what I do, so it's not a top priority for me. The VCS integration has been a source of complexity and bugs, so I'd be tempted to get rid of it and just let people use [tool.flit.sdist] to control what's included.

I see, thanks for the explanation. Do you think it makes sense to add a note about these behaviour differences to https://flit.readthedocs.io/en/latest/pyproject_toml.html#sdist-section?

Yes, I think a note there would be helpful.

Closed by #514


Check client_id < 23 bytes

Seems to be not strictly needed in protocol levels > 3 but we will enforce it to be most compatible


Bug report: Issue connect to SharePoint Online using PnP Core

Priority
(Medium) I'm annoyed but I'll live
Description
Hi,
I write here to search an help about this problem.
I've a c# console application that use PnP Core to connect to SharePoint Online.
From 9 september the authentication fails with message "AADSTS700016: Application with identifier '31359c7f-bd7e-475c-86db-fdb8c937548e' was not found in the directory".
I searched online one solution but I found only solutions for PnP Powershell.
My code is the same of the example in the guide https://pnp.github.io/pnpcore/using-the-sdk/readme.html (I updated the package reference today)
Thank you,
Fra
Steps to reproduce
Create a console application and follow the login guide https://pnp.github.io/pnpcore/using-the-sdk/readme.html
Expected results
Login withour errors
Actual results
AADSTS700016: Application with identifier '31359c7f-bd7e-475c-86db-fdb8c937548e' was not found in the directory 'Tecnologie D'Impresa srl'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You may have sent your authentication request to the wrong tenant.
Troubleshooting details
If you contact your administrator, send this info to them.
Copy info to clipboard
Request Id: 72b11044-7e2d-42b6-80fb-92a406563a00
Correlation Id: 7b34c02b-cd81-4b6f-b28c-8a99054c9643
Timestamp: 2024-09-16T12:45:38Z
Diagnostics
No response
CLI for Microsoft 365 version

nodejs version

Operating system (environment)
Windows
Shell
Other
cli doctor

Additional Info

@fra86435 thank you for letting us know.
Unfortunately, the PnP Core is a separate product not connected to CLI for Microsoft 365 so I would kindly suggest you to keep with the issue you created it that repo https://github.com/pnp/pnpcore/issues/1533  🙏.
From what I checked the issue you are having is most probably connected to the fact that the PnP Management Shell app was removed https://pnp.github.io/blog/post/changes-pnp-management-shell-registration/
In order to address this issue you will now need to create your own app registration for your case and sign in over this app.

I opened a bug on https://github.com/pnp/pnpcore/issues/1533 and I found a solution.
Thank you for the support!


Continue training saved model

I have the following file's from previous training:

checkpoint
model.ckpt.data-00000-of-00001
model.ckpt.index
model.ckpt.meta

How can I continue training the model with these files, so I can pick up on the progress saved in them.
The cli documentation is quite unclear on this.

@aDotInTheVoid
From what I have found personally, if you just start training again whilst those files exist within the same config (eg, saves/default/checkpoint), it will carry on. However it will start the sampling again from 00000.jpg so I'd recommend moving your old output images somewhere else if you want to keep them.
Running hypergan train again when I have those files will output the following lines:
[discriminator] Class loss is off.  Unsupervised learning mode activated.
[hypergan] |= Loading network from /home/ubuntu/foo/saves/default/model.ckpt
[hypergan] |= Loading checkpoint from /home/ubuntu/foo/saves/default

I'd keep an eye out for those to check it's doing what you expect. This is all on the latest alpha of 0.10 by the way, I'm not sure about how it functions in the version available on pip

Hi, in the recently released 0.10 the save path "saves/#{config}" will be checked for an existing file.  In case of an architecture change, hg performs optimistic loading(restores what it can).
Resuming sampling is forthcoming.


Refactor Simplifier

Reviewer checklist

[ ] Test coverage: stack test --coverage
[ ] Public API documentation: stack haddock
[ ] Style conformance: stylish-haskell

This can be merged as is, but I haven't yet removed all the cases of "every function in this module has the same four arguments". I tackle them later, but I wouldn't want to rob the rest of the team of the satisfaction of deleting hundreds of lines of code. :smile:
This will have many trivial merge conflicts, so lets merge the other open pull requests first.
The next things to do are:

Separate MonadSimplify from its concrete Simplifier instance.
Have all the actual simplifier functions run in MonadSimplify m instead of the specific Simplifier.
Factor a SimplifierT out of `Simplifier.


iOS Home Screen Web apps aren't detected as iOS Safari

Issue
Web apps pinned to the home screen and made web-app-capable with
<meta name="apple-mobile-web-app-capable" content="yes">
do not get detected as iOS Mobile Safari despite being almost identical. As such, no polyfills are delivered to the browser.
Mobile Safari's UA is reported as:
Mozilla/5.0 (iPad; CPU OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1
Whereas the home screen web app UA is:
Mozilla/5.0 (iPad; CPU OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13C75
The only ommissions are Version/9.0 and Safari/601.1, otherwise the strings are identical
Steps to reproduce

Create a simple web page
Add <meta name="apple-mobile-web-app-capable" content="yes"> into the  of the page
Load the web page in Mobile Safari
Pin the page to the homescreen with the Safari UI
Go to the home screen and open the web app you've just pinned
It will open fullscreen, but no polyfills will have been delievred

Proposed solution
I think an approach similar to the one used in #561 would suitably fix this issue.

Ah, this is pretty easy, by the looks of it.  We identify it as mobile safari uiwebview, so we just need to alias that to ios_saf.

@triblondon can you tell me if this is live on the polyfill.io service yet? We are still seeing this happen as of today. I can't tell when you guys release updates or how to tie that back to this repo.

@bdmac This is live.
The way to tie live back to the repo is to visit http://cdn.polyfill.io/__about and look at the appVersion key, the value of this key is linked to a milestone on Github.

A curl request with homescreen iPhone UA indicated an unknown device and resulted in unknown=ignore being invoked. I had to override that to unknown=polyfill to get this working. I tried this at the time of my previous comment so unless this went live literally in the last like hour then it isn't working properly still.

@bdmac This works for me
https://cdn.polyfill.io/v2/polyfill.js?features=Intl&ua=Mozilla/5.0 (iPad; CPU OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13C75

@JakeChampion this does not work for me:
curl 'https://cdn.polyfill.io/v2/polyfill.js?features=Intl.~locale.en,Intl.~locale.es,Intl.~locale.de,Intl.~locale.fr,Intl.~locale.it,Intl.~locale.pt,Intl.~locale.ru' -H 'Pragma: no-cache' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: en,en-US;q=0.8' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13D15' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Cache-Control: no-cache' -H 'Connection: keep-alive' --compressed

That is an exact request with the UA string passed from our app saved to my iPhone's homescreen and the result from that cURL request indicates UA detected: other/0.0.0 and goes on to say using policy unknown=ignore (the default).

Hmm, that UA works when sent via a query parameter:
https://cdn.polyfill.io/v2/polyfill.js?features=Intl.~locale.en,Intl.~locale.es,Intl.~locale.de,Intl.~locale.fr,Intl.~locale.it,Intl.~locale.pt,Intl.~locale.ru&ua=Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13D15
The curl command you sent also seems to work for me.

That's so odd. I wonder if it's something with fastly?
--
Brian McManus
CheckMate Co-Founder
On Feb 24, 2016, 12:11 PM -0800, Jake<EMAIL_ADDRESS>wrote:

Hmm, that UA works when sent via a query parameter:
https://cdn.polyfill.io/v2/polyfill.js?features=Intl.~locale.en,Intl.~locale.es,Intl.~locale.de,Intl.~locale.fr,Intl.~locale.it,Intl.~locale.pt,Intl.~locale.ru&ua=Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13D15(https://cdn.polyfill.io/v2/polyfill.js?features=Intl.~locale.en,Intl.~locale.es,Intl.~locale.de,Intl.~locale.fr,Intl.~locale.it,Intl.~locale.pt,Intl.~locale.ru&ua=Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13D15)
The curl command you sent also seems to work for me.
—
Reply to this email directly orview it on GitHub(https://github.com/Financial-Times/polyfill-service/issues/579#issuecomment-188436658).


Reproduce the race condition

#13
Please follow the instructions in the comment section below.

Could you merge this and then I will pull into my fork to try it out.
Have you used to follow the debug trail to see what the root cause might be? Any interesting evidence so far?


List items are not read as list on "Get an 8-digit number" screen with VoiceOver

List items are not read as list with VoiceOver.
The selected section in the screenshot is all read as one chunk together as normal text.
iOS 13.5.1 on iPhone 7

Closing this to combine all list issues in previously reported issue.
https://github.com/cds-snc/covid-shield-mobile/issues/268

Samsung Galaxy J3 Prime
Android version 7.0
Talkback doesn't identify them as a list. It reads each item at a time as normal text.


I should be able to follow the AuthPolicy guide without errors or issues

This issue is stale because it has been open for 60 days with no activity.


AVS SDK Android Issue

IMPORTANT: Before you create an issue, please take a look at our Issue Reporting Guide.
Briefly summarize your issue:
I am trying to run the AVS Sample app on android , i have compiled the avs sdk and trying to initiate and start the AVS through JNI layer.
What is the expected behavior?
AVS should initialize.
What behavior are you observing?
The only log i could manage to see in logcat was :
I/AVS1: config pat aj :/data/data/tv.cloudwalker.cwnxt.launcher/AlexaClientSDKConfig.json
? I/AVS1: at 353 RUnning ap with log level
? I/AVS1: at 360
? I/AVS1: at 371
? I/AVS1: config file loaded
? I/AVS1: at 389 config file loaded
? I/libOpenSLES: Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2)
? D/AudioTrack: Client defaulted notificationFrames to 1154 for frameCount 2308
? I/libOpenSLES: Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2)
? D/AudioTrack: Client defaulted notificationFrames to 1154 for frameCount 2308
? I/libOpenSLES: Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2)
? D/AudioTrack: Client defaulted notificationFrames to 1154 for frameCount 2308
? I/libOpenSLES: Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2)
? D/AudioTrack: Client defaulted notificationFrames to 1154 for frameCount 2308
? I/libOpenSLES: Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2)
? D/AudioTrack: Client defaulted notificationFrames to 1154 for frameCount 2308
? I/libOpenSLES: Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2)
? D/AudioTrack: Client defaulted notificationFrames to 1154 for frameCount 2308
? I/AVS1: Failed to create to SampleApplication!
Provide the steps to reproduce the issue, if applicable:
Tell us about your environment:

What version of the AVS Device SDK are you using?
  <x.y.z>

Tell us what hardware you're using:

[ ] Desktop / Laptop
[ ] Raspberry Pi
[x ] Other - tell us more: x86 emualtor for android

Tell us about your OS (Type & version):

[x ] Linux
[ ] MacOS
[ ] Raspbian Stretch
[ ] Raspbian Jessy
[ ] Other - tell us more:

Hi ajinkyaw,
It is not obvious to me what is going on here.  Can you provide your config file and DEBUG9 level log output in case it provides more info.
Thank you,
-SWH

Hi. @scotthea-amazon  thanks for reaching out.
Today itself i have solved the issue, by putting the logs and verifying.
Thanks.


Make curated list of collections per chain

Is your feature request related to a problem?
I'm always frustrated when I see a list of collections for RMRK in other chains
Describe the solution you would like
I would like to see a curated list for each chain or else the app should take last 5 created collections
Describe alternatives you have considered
~
Screeenshots

@vikiival currently there is no passionFeed query implemented https://app.gc.subsquid.io/beta/snekk/003/graphql
how do we show the curated list on all other chains?

👋 I already start on this one


chore(main): release sdk 7.2.9

:robot: I have created a release beep boop
7.2.9 (2024-12-16)
Bug Fixes

sdk: Fix Moonbeam foreign assets 🔧 (cf046df)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

sdk-v7.2.9
:sunflower:


Drop ArcAllocator and simplify templates

I renamed IntAllocator to just Allocator and moved the file to src/allocator.rs, which turns into a large diff, because the original src/allocator.rs trait was removed.

This need rebasing now, but also I'd like to look at deferring this until after my Dialect changes go in, since there may be additional conflict.

do you use any of this in that patch?


Opposite params

I'm trying to reference a collection but it seems to me that CollectionHelper is actually taking a DocumentReference.
https://github.com/39ro/admin-utils-firestore/blob/247b7c62b5f86d9b35cf90bfa0d42fd610c1592e/src/helpers.ts#L141-L142

Hi @renannery and thanks for reporting this issue. Version 0.1.6 include this fix.


fix(plugin-engines): enforce Node.js 16

Summary

fixes #425

Description
Contributing.md

added Node.js section with version 16 requirement.
Node.js Version enforcement via engines field in package.json

yarn does not respect specified Node.js version in engines.
installed https://github.com/devoto13/yarn-plugin-engines, suggested in https://github.com/yarnpkg/berry/issues/1177#issuecomment-916119870

Usually, the engines field in a package.json file indicates the version of Node.js on which the package works.
So it doesn't make sense to write the buildable version of the package in engines field.
That's why using yarn-plugin-engines doesn't seem appropriate.

This makes sense, thanks for the insight.


whenRepeated FilterCountPropertyName is not being populated with a value

NLog nuget v 5.1.2
My Logger rule:
<logger name="*" minlevel="Debug" maxLevel="Error" writeTo="cons,asyncConsole,asyncOracle,asyncDebugFile" >
      <filters defaultAction="Log">
        <whenRepeated layout="${event-properties:item=id}${event-properties:item=detail_error}${exception:innerFormat=Message}${event-properties:item=state_object}"
                      timeoutSeconds="2" action="Ignore" MaxFilterCacheSize="500"
                      FilterCountPropertyName="filtered" FilterCountMessageAppendFormat=" (Hits: {0})"/>
      </filters>
</logger>

Target using "filtered" (this is a test target, because I'm using asyncwrapper on my real console target, but I removed that to make sure it wasn't an async issue:
    <target name="cons" xsi:type="ColoredConsole"
            layout="[${level:uppercase=true:padding=-5}] ${date:format=HH\:mm\:ss}: ${event-properties:item=id:uppercase=true:padding=-12}|${callsite:methodName=true:includeNamespace=false:className=false}|${event-properties:item=detail_error}${event-properties:item=filtered}|${exception:format=ToString}">
    </target>

I've also tried using and do not get the number of filtered counts
layout="${mdlc:item=filtered}"
layout="${event-context:item=filtered}"

I've even tried layout=${all-event-properties}  which outputs every property I set, just doesnt show a key value pair for filtered.
My C# code to test this functionality:
_log.Debug("Hello Debug");
_log.Debug("Hello Debug");
_log.Debug("Hello Debug");
_log.Debug("Hello Debug");
_log.Debug("Hello Debug");
_log.Debug("Hello Debug");
Thread.Sleep(10000);
_log.Debug("Hello Debug");

The current nlog config correctly skips the duplicate log messages, the console output correctly shows:
[DEBUG] 13:58:44: |<Main>$|Hello Debug|
[DEBUG] 14:08:44: |<Main>$|Hello Debug|

but I'm expecting the log to look like:
[DEBUG] 13:58:44: |<Main>$|Hello Debug|
[DEBUG] 14:08:44: |<Main>$|Hello Debug (Hits: 4)|

I just went through the NLog source code and apparently the format string gets appended to the message. I tried using that in my target as a test:
<target name="cons" xsi:type="ColoredConsole"
        layout="${message}">
</target>

and the console output is:

Hello Debug
Hello Debug
so it's not being appended to the message either.

If you can reproduce the issue in an unit-test, with the following logging-rule, then it would be great (Notice I have simplified the filter-layout, since I think that is your issue):
<logger name="*" minlevel="Debug" maxLevel="Error" writeTo="cons,asyncConsole,asyncOracle,asyncDebugFile" >
      <filters defaultAction="Log">
            <whenRepeated layout="${message}"
                  timeoutSeconds="2" action="Ignore" MaxFilterCacheSize="500"
                  FilterCountPropertyName="filtered" FilterCountMessageAppendFormat=" (Hits: {0})"
      </filters>
</logger>

Closing issue as resolved, due to inactivity.


Prompt when putting critical customers into LS

When putting a cluster into LS that is owned by a critical customer, the following prompt will show first:
WARNING: This cluster is owned by a critical customer. Make sure that an SL has been sent and proactive case opened with the customer. Only continue if there has been no customer response for 24 hours.

See: https://source.redhat.com/groups/public/sre/wiki/defining_limited_support_process_for_osdrosa_for_critical_customers
Continue? (y/N):

Details in OSD-23920

/hold
/lgtm

/unhold
/lgtm

/lgtm


Getting [WARN] Unable to determine Package-URL identifiers

Hi,
I've ran the dependency check as part of a CI/CD pipeline, but getting a WARN message, the output shows the below
[WARN] Unable to determine Package-URL identifiers for 52 dependencies
In the Dependency Check Report, is it show 52 dependencies with a CVE count and Evidence count as 0, do I have an issue running the scan or is there no vulnerabilities detected?
Thanks

There is an issue with the scan.  Any chance you can provide some more information?  How are you running ODC in the pipeline?
--Jeremy

looks same kind of problem here
I ran the scan with the following commands
./dependency-check.sh --enableExperimental --enableRetired --project test --scan /home/subhashdasyam/Desktop/dependency-check/bin/lessonsInWebSecurity-master/

./dependency-check.sh --project test --scan /home/subhashdasyam/Desktop/dependency-check/bin/lessonsInWebSecurity-master/

both output's are
[INFO] Analysis Started
[INFO] Finished Archive Analyzer (0 seconds)
[INFO] Finished File Name Analyzer (0 seconds)
[INFO] Finished Dependency Merging Analyzer (0 seconds)
[INFO] Finished Version Filter Analyzer (0 seconds)
[INFO] Finished Hint Analyzer (0 seconds)
[INFO] Created CPE Index (1 seconds)
[INFO] Finished CPE Analyzer (1 seconds)
[INFO] Finished False Positive Analyzer (0 seconds)
[INFO] Finished NVD CVE Analyzer (0 seconds)
[INFO] Finished RetireJS Analyzer (2 seconds)
[WARN] Unable to determine Package-URL identifiers for 487 dependencies
[INFO] Finished Sonatype OSS Index Analyzer (0 seconds)
[INFO] Finished Vulnerability Suppression Analyzer (0 seconds)
[INFO] Finished Dependency Bundling Analyzer (0 seconds)
[INFO] Analysis Complete (4 seconds)

@subhashdasyam the issue with your repo is that there is no package-lock.json.  If you try to run npm audit you get the following:
$ npm audit
npm ERR! code EAUDITNOLOCK
npm ERR! audit Neither npm-shrinkwrap.json nor package-lock.json found: Cannot audit a project without a lockfile
npm ERR! audit Try creating one first with: npm i --package-lock-only

npm ERR!      /Users/home/.npm/_logs/2020-01-05T12_33_01_182Z-debug.log

If you then run the following:
$ npm install --package-lock
npm notice created a lockfile as package-lock.json. You should commit this file.
audited 89 packages in 0.66s
found 26 vulnerabilities (13 low, 5 moderate, 7 high, 1 critical)
  run `npm audit fix` to fix them, or `npm audit` for details

You get a package-lock.json file created. You can then run:
$ dependency-check.sh -s . -o .
[INFO] Checking for updates
[INFO] Skipping NVD check since last check was within 4 hours.
[INFO] Skipping RetireJS update since last update was within 24 hours.
[INFO] Check for updates complete (101 ms)
[INFO]

Dependency-Check is an open source tool performing a best effort analysis of 3rd party dependencies; false positives and false negatives may exist in the analysis performed by the tool. Use of the tool and the reporting provided constitutes acceptance for use in an AS IS condition, and there are NO warranties, implied or otherwise, with regard to the analysis or its use. Any use of the tool and the reporting provided is at the user’s risk. In no event shall the copyright holder or OWASP be held liable for any damages whatsoever arising out of or in connection with the use of this tool, the analysis performed, or the resulting report.

[INFO] Analysis Started
[INFO] Finished Archive Analyzer (0 seconds)
[INFO] Finished File Name Analyzer (0 seconds)
[INFO] Finished Node.js Package Analyzer (0 seconds)
[INFO] Finished Dependency Merging Analyzer (0 seconds)
[INFO] Finished Version Filter Analyzer (0 seconds)
[INFO] Finished Hint Analyzer (0 seconds)
[INFO] Created CPE Index (2 seconds)
[INFO] Finished CPE Analyzer (2 seconds)
[INFO] Finished False Positive Analyzer (0 seconds)
[INFO] Finished NVD CVE Analyzer (0 seconds)
[INFO] Finished Node Audit Analyzer (0 seconds)
[INFO] Finished RetireJS Analyzer (1 seconds)
[INFO] Finished Sonatype OSS Index Analyzer (0 seconds)
[INFO] Finished Vulnerability Suppression Analyzer (0 seconds)
[INFO] Finished Dependency Bundling Analyzer (0 seconds)
[INFO] Analysis Complete (4 seconds)

You will then see the dependency-check report contains 34 identified vulnerabilities - because some entries are reported by OSS-Index that npm audit does not have in its database.

@pgrantuk - I am assuming that your issue is similar and that no package-lock.json file exists. With the lock file we can use the npm audit APIs to find the vulnerable packages. The 5.3.0 will resolve issues with error reporting around having a package.json without a package-lock.json.

Thanks @jeremylong I've just checked and we don't have a package-lock.json file, we're using yarn so have a yarn.lock file instead. Will this work once the 5.3.0 or will I still need a package-lock,json?

Yarn is not yet supported. It is on the roadmap. However, I believe you can use snyp to generate the package-lock.json.


Allow const variable declaration and usage

Useful for a few things - in my use-case, sharing a "number of lights" variable between array declaration, and array iteration in the shader function.

I've chosen to output literal constant values, rather than const declarations, in order to avoid problems like (for example) "declaring a const field inside a struct", which is valid in C# but not in HLSL.

Looks good to me -- I will use this for the same thing when it gets merged. It just needs a rebase after the other changes.

Rebased.


runtime: mheap.busyList use unproper len when return list from h.busy

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
1.7.4
What operating system and processor architecture are you using (go env)?
linux amd64
The definition of mheap.busyList locate in mheap.go:943 as followed:
func (h *mheap) busyList(npages uintptr) *mSpanList {
if npages < uintptr(len(h.free)) {
return &h.busy[npages]
}
return &h.busylarge
}
When check if it can return the busy list using "len(free)", I think it's not proper.
Although the current version of Go set the same lenght of h.free and h.busy, it's different.
The same puzzle occurs at the definition of mheap.alloc_m @ mheap.go:592:
if large {
memstats.heap_objects++
atomic.Xadd64(&memstats.heap_live, int64(npage<<_PageShift))
// Swept spans are at the end of lists.
if s.npages < uintptr(len(h.free)) {
h.busy[s.npages].insertBack(s)
} else {
h.busylarge.insertBack(s)
}
}
So it's a mistake, or it's some design.

CC @aclements @RLH

This is a little obtuse, but I wouldn't call it a bug. The free and busy lists must have the same length since we move short spans back and forth between these two lists.
It would be perfectly reasonable to change both of these to len(h.busy).

Yes, this is not a bug. It's better for reading.


Add step by step guide and information on specific custom actions

Before merging, probably have CX take a pass?


Bad header line: parse failed

brew cask install font-hack

Error: Cask 'font-hack' definition is invalid: Bad header line: parse failed

This error is not a bug, it's caused by an update to how homebrew-cask works. Details can be found here.
To fix the issue, please run:
brew update; brew cleanup; brew cask cleanup
brew uninstall --force brew-cask; brew update

If you are still having problems, open an issue with the appropriate template


Fix flaky CypherProceduresClusterRoutingTest

To stabilize the test, added db.clearQueryCaches() before assertions,
and improved assertEventually(..) with a try catch which doesn't fail in case of procedure/function not found exception:
https://github.com/neo4j-contrib/neo4j-apoc-procedures/actions/runs/8021701219/job/21914372905?pr=3957#step:6:1371

LGTM


Scenario 4 topic management:  Add ptopic - Scenario 4.1: Edit Topic

Scenario 4:
Entry point: Topic management button from admin channel
User Story
As an admin
I want to add a new proposal topic
So that users can submit proposals under relevant topics
Acceptance criteria
OK
Given a valid topic name and topic details (link to MIP or MinaResearch as data support)
When the topic management button is executed
Then the add new topic button is activated and executed, a new proposal topic is created
KO
Given an invalid, missing or duplicate topic name
When the add new topic button is executed
Then the system returns an error message indicating the issue

Scenario 4.1:
Entry point: Topic management button from admin channel, select topic from drop down list and edit button
User Story
As an admin
I want to edit a topic
So that users can submit proposals under relevant topics
Acceptance criteria
OK
Given a valid topic name selected from the list
When the Edit topic button is executed
Then the topic modal is shown and able to be edited
OK
Given a duplicate topic name or no changes
When the Edit topic button is executed and the modal edited
Then the system returns a message indicating the update (no errors are considered at this point)

User type: Admin / Admin discord channel

Scenario 4:
I created a topic called "topic1" and received a confirmation:
✅ Topic 'topic1' created successfully

I then tried to create another topic called "topic1" and received an error:
🚫 An error occurred while creating the topic 'topic1': Validation error

Proof:
https://github.com/user-attachments/assets/9701bf9d-a7b8-4150-a50a-2ae25d2dd20b
Comments:

Unify error messages - (it's also mentioned in the other scenario) Please review if we could unify the structure of error messages because it might confuse users, especially since some of these errors don't show too many details for users to understand what happened

Scenario 4.1:
I tried to edit a topic called "topic1" and received a confirmation unrelated to whether I changed something or not in the edit pop-up modal (which is a correct behavior):
✅ Topic 'topic1' updated successfully

Proof:
https://github.com/user-attachments/assets/0268581b-33fe-4609-b36b-e2992d18db83

ACK, thank you. Also wrote on Discord.

@iluxonchik
Rename button to : Edit Discussion topic


more functional t.match

I know I'm late to the t.match party (and it's probably too late to do this without breaking changes), but I found myself doing something like the following pretty frequently:
const getVal = partialRight(t.match,
  t.Str, v => 'something',
  t.Num, v => 'something else',
  // ...
);
/* ... */
const val = getVal(v)

wouldn't be just better to have the value as last parameter of t.match?
(even better: support both, but not sure how...)
Speaking of t.match, aren't optional guards kind of redundant considering we have t.subtype?
BTW: thanks for continuous support and adding new features :beers:

Hi @giogonzo !

wouldn't be just better to have the value as last parameter of t.match?

The value in first position just reads better IMHO
const s = t.match(value,
  t.String, () => 'a string',
  t.Number, () => 'a number'
);

// against
const s = t.match(
  t.String, () => 'a string',
  t.Number, () => 'a number',
  value
);

(even better: support both, but not sure how...)

Maybe I could add a partial prop to match:
t.match.partial = (...cases) => (v) => t.match(v, ...cases);

So you can write
const matcher = t.match.partial(
  t.String, () => 'a string',
  t.Number, () => 'a number'
);

matcher(1); // => 'a number'

Speaking of t.match, aren't optional guards kind of redundant considering we have t.subtype?

Probably yes, but it's more general: without them I should write in the docs: "You must define subtypes in order to implement guards", while now is just an option
/cc @jgoux

The value in first position just reads better IMHO

Sure, when used like that..

Maybe I could add a partial prop to match:

That would be perfect for my use case

Probably yes, but it's more general: without them I should write in the docs: "You must define subtypes in order to implement guards", while now is just an option

Understandable. It's just me feeling better when there's only one way of doing something
Anyway, all of the above is super minor and adds nothing really new so feel free to close this. Thanks for getting back!


Ensure multiple --file arguments are respected

I didn't touch the C++ code, so I don't assume that the Windows failures are related to my change.

Nope, the failures are not related to your changes :) it’s fixed in one of the PRs.


feat: implement { length } attribute metadata

Closes: https://github.com/metarhia/metasql/issues/57

Landed in https://github.com/metarhia/metasql/commit/d2114025e61fdf8fb3a2d7b8277dc326a11a1447


suggest: please make the whole line of outline can be click

now have to click on the text.
i hope the whole line of the outline can be click
thanks

Duplicate issue #53 .


Add caching logic similar to now-cli's

In the current now-cli we have a logic to store the user details (username, email etc) with a TTL of 8h.
I didn't copy it over when copying the login/deployment code over because I want to improve it. I'd want ~/.now/cache.json, that'd be used specifically to store stuff like that. Specially because username, for example, is not a configuration option – it depends on the API token.
@rauchg @nkzawa ~/.now/cache.json sounds great? Also cc @leo, since we would share such file with Now Desktop 👌
Assigning myself since I'd like to implement it and I implemented the current logic on now-cli, so it'll be trivial to do it here.

This issue was moved to zeit/now-cli#783


remove-empty-id-when-setting-object-attrs

use case
british libraries has an "id" column on their csv's that isn't always filled in. as is, the code will error out at the line below if a blank id field is present in attrs
object.attributes = attrs

expected behavior

remove id when attrs[id] is not present so it does not throw errors

approval is contingent upon passing specs though


[Clarification] Setting up environment

As a new developer, its not clear that a new bot needs to be created for local dev and testing from readme.

closing


Set CSS modules mode depending on file type

Summary
Set CSS modules mode to icss if a style file is not a module, local otherwise. It allows using ICSS features such as :import and :export without using further CSS Module functionality. ICSS features were applied by default to all files before css-loader@v4, but it's been changed in the next versions. (Please refer to css-loader example)

@tomdracz or @talyuk, can you submit a PR with auto: true?

Updated to use auto: true in this PR


Flow view with default route it is not loaded in hybrid application

Describe the bug
Flow view with default route it is not loaded in hybrid application.
Slack thread
From @caalador:

I can see hilla generating into file-routes.ts the line createRoute("", Layout0) which I expect overrides the flow "" route as it's a match on the client router

Expected-behavior
View should be loaded and rendered
Reproduction
Create new Start project, add new Custom View with single button, download it as hybrid application.
System Info
Hilla: 24.4.1
Flow: 24.4.2
Vaadin: 24.4.3
Copilot: 24.4.3
Copilot IDE Plugin: 1.0.9-intellij
Java: Oracle Corporation 22.0.1
Java Hotswap: false
Frontend Hotswap: Enabled, using Vite
OS: aarch64 Mac OS X 14.5
Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36

Fixed in #2572, released in 24.4.4


.gitignore missing from all branches

All branches now have a gitignore file. The standard C++ template was used. Will need to be customised to ensure all unnecessary files are ignored during development.


[kmac] Design sign-off for M2.5

Description
This tracks open design tasks for M2.5.
See effort estimation docs for details.
CC @ballifatih @cindychip

KMAC D2.5 sign-off is complete, so I am closing this issue.


[actions] Update quicktest workflow to new docker setup

Add env var for FINN_ROOT to quicktest workflow

Update quicktest workflow to match new Docker setup


Better error messages when checking input

If there's a non-existant input file passed to geodiff, it will complain e.g. like this:
Missing input files in GEODIFF_createChangeset

It would be good if geodiff would also print the filename that caused the issue, this would save some debugging time :-)
This applies not just to createChangeset call, but also various others API calls.

Addressed in 0.8.x branch.
TODO: port to master + fix also for new APIs


See what happens if packaging~=17.0 in setup.py AND docs/*/requirements.txt

This is a little experiment to see what happens if packaging~=17.0 in setup.py AND docs/*/requirements.txt.

Do the Travis tests pass?
If we merge this into master, do the docs build on ReadTheDocs?

If both of the above work, then do another pull request where we change it to packaging~=18.0.

Codecov Report

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

@@           Coverage Diff           @@
##           master    #2572   +/-   ##
=======================================
  Coverage   93.74%   93.74%
=======================================
  Files          45       45
  Lines        2638     2638
=======================================
  Hits         2473     2473
  Misses        165      165

For the record, all the tests passed in Travis, so I'll merge this PR and see if master builds properly on ReadTheDocs...

The server docs build "passed" on ReadTheDocs.
The root docs build "passed" on ReadTheDocs.
The contributing docs build "passed" on ReadTheDocs.

Therefore I will create a new pull request to do the same but with 17.0 changed to 18.0.


Prepare 2.0.0 release

Make Zally 2.0.0 release
Tasks

[x] Create release draft on GH
[x] Publish artefacts to Maven Central
[ ] Build CLI and add to the release
[ ] Update README on how to make releases
[ ] Add release notes and publish release

Closes #964


If there are only 2 servants on the field, the macro will get stuck.

So I have my macro setup like this.
a1b1c1d1e1f1g1h1i1456
Every turn, it will try to spam a skill on character 1 and use NP if available. I've set it up like this because NPSPAM does not work with auto skill on. And I find that if all 4/6 of my party dies, and if there is not 3 characters on screen the macro gets stuck showing the "servant info." screen.
Is there any easy way to set it up so it spams skills and NP as well? I don't care about the skill being used on the 1st character it's to prevent it from getting stuck as mentioned in the notes.

Which servant info screen?
Please post a screenshot, just for clarification.


[DDW-1108] Fix middle ellipsis for addresses - CSS Only version

(this is another version of this pr).

Closing unmerged in favor of https://github.com/input-output-hk/daedalus/pull/1746


Mass edit control

closes #1392
Composes Table with a List component which handles group rendering, mass edit control rendering, and related checked state logic.
Some basic tests added for:

MassEditControl
ListGroup
TableCell

You will see propType warning(s) on NodeBalancers list right now, which is expected and to be addressed in #1411

Coverage increased (+0.2%) to 83.488% when pulling b4234d6443a99e29ae138fdbfcc894b743a237e6 on mparke:mass-edit-control into 12859b849cf0a5a631092586bfa317ad501c700e on linode:master.

Coverage increased (+0.2%) to 83.488% when pulling b4234d6443a99e29ae138fdbfcc894b743a237e6 on mparke:mass-edit-control into 12859b849cf0a5a631092586bfa317ad501c700e on linode:master.

Going to break out rendering of groups and header controls as best possible based on in-person discussion

updated to address feedback.
Header, Header Controls ( Mass edit ), and wrapping elements broken down. Primary logic located in MassEditControl.
Please note that column configurations have largely not changed, except for handling checkbox column changes, which is now done by passing an onToggleSelect to the <Table itself.

Coverage increased (+0.3%) to 83.539% when pulling f262546a87fffe8803e1b7dd05a4090fa14fdb44 on mparke:mass-edit-control into e1efc9930a0f89ccbc90cebaef51e0f30d36e359 on linode:master.

Coverage increased (+0.3%) to 83.539% when pulling f262546a87fffe8803e1b7dd05a4090fa14fdb44 on mparke:mass-edit-control into e1efc9930a0f89ccbc90cebaef51e0f30d36e359 on linode:master.

Coverage increased (+0.3%) to 83.544% when pulling 45acf330e88234072e2e6ebccdcee75a0674c14f on mparke:mass-edit-control into e1efc9930a0f89ccbc90cebaef51e0f30d36e359 on linode:master.

Coverage increased (+0.3%) to 83.544% when pulling 659746c6cb924860b6e3a9ed37d64894452849b8 on mparke:mass-edit-control into e1efc9930a0f89ccbc90cebaef51e0f30d36e359 on linode:master.

Coverage increased (+0.3%) to 83.544% when pulling 659746c6cb924860b6e3a9ed37d64894452849b8 on mparke:mass-edit-control into e1efc9930a0f89ccbc90cebaef51e0f30d36e359 on linode:master.


Add tests from Diffblue Deeptest

Existing Coverage: 34.65%
Coverage Increase: 25.20%
New total coverage: 59.85%
Total tests: 379
Validated tests: 44
Potentially could create a second commit to organise their tests into a logical structure?

Potentially could create a second commit to organise their tests into a logical structure?

What do you mean?

@peterschrammel - the existing tests for this project do not sit in a traditional maven structure. I could create a commit that merges them into a correctly formatted structure, which will align with the tests that we are adding.
e.g.
The exiting stucture is disunity/disunity-core/src/test/java/info/ata4/test/  (Two 'test' folders)
https://github.com/Diffblue-benchmarks/disunity/tree/master/disunity-core/src/test/java/info/ata4/test

Please re-review looing only for the exceptional tests

I guess you meant looking ;)


Config file required, even when passing all relevant arguments via command line

we should also support having a config file in the same directory as sail

second detail closed in 8c8496800b4348932673b340c24a8022d1a084d0


Concurrent Deferred Reference Counting may be useful

I found some paper which optimizes concurrent binary search tree (Natarajan-Mittal tree) by using Concurrent Memory Reclamation
and Automatic Reference Counting.
Wish it be useful to this library
https://github.com/cmuparlay/concurrent_deferred_rc
Daniel Anderson, Guy E. Blelloch, Yuanhao Wei: Turning manual concurrent memory reclamation into automatic reference counting.
https://www.youtube.com/watch?v=40nJlQCgf8I&list=PLyrlk8Xaylp4aGsN5wVcECG736A2JeMon&index=64

Thanks a lot for the information! I'll definitely look into this and see if there is anything helpful for this library.

Briefly looked into the interfaces and the video, and it seems to me that scc::ebr provides most functionality that concurrent_deferred_rc offers, e.g., scc::ebr::Arc is an EBR-backed ARC, zero -> one reference counting is correctly prevented (though, very differently), and scc::ebr::Ptr can be also marked (tagged). I guess there are two functional features that will come in handy in various parts of the library.
Hyaline
I am already aware of it, but was quite reluctant to implement this because of two reasons. 1. The use of CAS, 2. The use of a global list. I didn't measure the performance of any Hyaline implementations, but I surmise that the overhead of entering a protected region won't be as low as EBR due to the reasons. Note that, the overhead of a scc::ebr::Barrier (and Guard in crossbeam_epoch as well) is only about a couple of nanoseconds on my M1 laptop, and I strongly doubt that the CAS and scanning of the global list can be performed within ~ten nanoseconds on the same machine.
However, I still highly value their idea of deterministic garbage collection, and there must be use cases especially under circumstances where many threads are seldom used. So, I'll implement it in the foreseeable future, but as a separate module, not as a replacement of EBR (maybe generalize both as in [concurrent_deferred_rc](https://github.com/cmuparlay/concurrent_deferred_rc)? not sure).
Weak pointer
Yes, it's missing in this library, just because I didn't have enough time.

Sorry, I think I won't be able to spend my time on this.
Some notes.
Hyaline
https://crates.io/crates/seize/0.2.5 can be considered, but I doubt that it's fast enough.
Weak pointer
ebr::Ptr can act as a weak pointer, though it's !Send and !Sync.


Rename variable "validity" to more descriptive name, such as "block_statuses"

Some parts of the code have this variable validity which stores a dictionary of block ids, and their statuses. The word validity is somewhat nebulous once one knows what it actually holds.
See https://github.com/bigchaindb/bigchaindb/blob/master/bigchaindb/core.py#L215 for instance.

@sbellem can I take this up?

Yes!

@sbellem have submitted a PR. Sorry for the delay, got caught up. Thank you


mime lookup for application/json returns false

Passing "application/json" to the mime.lookup returns false. I am assuming this is a bug and that passing a valid mime-type to mime.lookup should return that same mime-type. Also, the README says this behaves similarly to the mime module which handles this type the way I would expect. Examples below.
Using mime-types
12:33 $ node
> const mime = require('mime-types')
> mime.lookup('application/json')
false
> mime.lookup('json')
'application/json'
>

Using mime
12:38 $ node
> const mime = require('mime')
> mime.lookup('application/json')
'application/json'
> mime.lookup('json')
'application/json'
>

If this is the intended behavior, then it should probably be mentioned as a difference between this and the mime package (along with the other differences called out) in the README.
Happy to help out with a PR if this is indeed a bug and not the intended behavior

You're encountering a bug in mime itself. You see, you're passing in application/json and that module incorrectly thing you're looking for the file json and then incorrectly things the file extension for that is json. You can see it's not echoing the type if you do
 node
> const mime = require('mime')
> mime.lookup('text/plain')
'application/octet-stream'
>

This is the bug: https://github.com/broofa/node-mime/issues/113

And this module fixed the bug (which is one of the purposes of this module: incorporate bug fixes that mime is not fixing :) ).

I updated the blurb in the README to note that there are bug fixes to the .lookup method compared to the mime module.

Thank you for clarifying, I misunderstood the use case for the lookup function initially.


Don't override models set in initialized config source

@booxter IMO we should get rid of --model-path for config init altogether
I dont think anyone would find value in blanket overriding all default models with a given model that should be used for all the various purposes
Currently we specify different default models for chat/generate/train because those models are best suited for those purposes
If users want to override them they should do so in the config, or if it must be done via flags there should be individual flags for each model to be overridden
thoughts?
cc @cdoern


DNS failures wrongly detected as non-retriable

What happened:
According to @vpnachev: DNS issues are detected as non-retriable errors. The DNS controller on the other hand does not respect shoot.tatus.lastOperation.state=Failed and updates the DNS records after a while, but the shoot will be in failed state as long as somebody manually retry the operation.
What you expected to happen:
Retry operation until it finishes or hits a time limit.

ref: https://github.com/gardener/gardener/pull/3662#issuecomment-791295281
Thanks @ialidzhikov for pointing this out.

/close in favor of https://github.com/gardener/external-dns-management/issues/161

/reopen

@ialidzhikov From the description, this issue is about the DNS controller not adhering to the extension contracts. It was moved to the external-dns-management repo. Can you please close this issue again and open a separate one for tracking the "rate limit error code" topic?
(Actually, I'm confused about your title - didn't we agree that it's NOT wrong to detect them as non-retryable?)

Can you please close this issue again and open a separate one for tracking the "rate limit error code" topic?

I updated the description of the current issue. No "DNS" in it now, pure "rate limit exceeded".

(Actually, I'm confused about your title - didn't we agree that it's NOT wrong to detect them as non-retryable?)

I am tired of this discussion. These errors were retriable since the beginning for probably almost more than 3 years. I cannot understand what changed now. Is it normal to you that we set the Shoot to Failed and stop retrying when a rate limit error occurs? It is not the expected behaviour to me. In most of the cases rate limit exceeded errors are transient ones. Cloud providers have request throttling mechanisms where the allowed request quota is likely to recover in seconds/minutes - for example token bucket algorithm for AWS.


Avoid rewriting files with identical contents

I think sbt handles this reasonably (by hashing file contents), but it appears that maven pays more attention to file modification times.  It slows down things enough already that guardrail runs each time a build is run, but having to recompile files that haven't changed just adds insult to injury.

Running guardrail for the first time should have roughly the same performance (an extra stat() per file, which will fail since the file doesn't exist).
Running guardrail when files need to be updated will be either roughly the same or a bit slower, depending: a) if the file sizes are different, it's just a stat() plus integer comparison extra, so roughly the same; b) if the file sizes are the same, it has to read the existing file off disk and compare, so things will be a bit slower.
Running guardrail when files exist already and don't need to be updated should be slightly faster (an extra stat() and integer comparison, as well as reading the existing file off disk to compare, but no write of the file).

Of course, guardrail still has to do all the work to render the new files' contents to memory no matter what; in general that should be the dominating time factor.  There's only one case that ends up being worst (where "worst" is probably a few hundreds of nanoseconds per file extra), which should be the very, very, very uncommon case (as it requires the files to be different, but also the same size).
Contributing to Twilio

All third-party contributors acknowledge that any contributions they provide will be made under the same open-source license that the open-source project is provided under.

[x] I acknowledge that all my contributions will be made under the project's license.

Didn't consider the implication here. Even if the files are not rewritten, they still needed to be returned to plugins to ensure they're passed to scalac. (Related: https://github.com/twilio/sbt-guardrail/issues/26 )


[fix]: update libs and remove aqua from examples

Updated requirments.txt and change import  QuantumInstance from aqua to utils

Qiskit Aqua is till in the tests, so the checks fail trying to merge this.

Qiskit Aqua is till in the tests, so the checks fail trying to merge this.

Ok, I see, I will fix

@GroenteLepel Hi, will you approve?

Sorry for the late reply. This is strange, because the error that is being generated is an aqua.AquaError(). If it works on your side than I’ll just merge this and accept that my tests are jus not written for this kind of migration.

My bad, I find an error, sorry, will return with new fix

@GroenteLepel Hello,
I tried to get rid of qiskit aqua completely:

abstract classes QuantumAlgorithm and _QSVM_ABC - I didn't find them in the new version of qiskit - I just copied them from qiskit.aqua and created special files for them
the get_subsystems_counts function - also not found in the latest version of qiskit. Solution: created a utils file and copied get_subsystems_counts from qiskit.aqua

Thank you for this, very good.

Thank you for your library and for your excellent scientific work - I am doing my master's work in this field and it helps me a lot


Enabling CMEK for GCP to encrypt FREEIPA disk

This change enables GCP CMEK for for resource encryption. In this change we have introduced a new parameter encryption-key which accept the GCP key resource path and encrypts the FREEIPA disk using this encryption key.
See the design doc for more details.
Changes include:

Adding new param encryption_key to gcp-create-environment
GCP CMEK Key validation using regex and storing encryption-key in enviroment-parameters table.
Using GCP CMEK key to encrypt FREEIPA Disk by setting keyEncryptionMethod to KMS. If KeyEncryotionMethod is set to KMS then GcpDiskResourceBuilder verifies this and uses key present in VOLUME_ENCRYPTION_KEY_ID using CustomGcpDiskEncryptionService to encrypt the vm disk.

Sample Payload : link
Testing

Relevant unit tests have been added.
Tested locally using postman by creating environment using encryption key and without encryption key. The behaviour of disk allocation is as expected. Sample encrypted disk(here)

TODOs:

Key validation before encrypting to see if key and resource are co-located and key is present in key ring.

@doktoric @lajosrodek Any feedback will be appreciated. I am going to test this in the private stack and get it merged for 2.48 for QE testing.


update text_chi

did you just improve the entire chinese translation?? thank you! I will proof read it somehow and have it in the next update, hopefully
你刚刚改进了整个中文翻译吗？谢谢你！我会以某种方式校对它并在下一次更新中包含它，希望

did you just improve the entire chinese translation?? thank you! I will proof read it somehow and have it in the next update, hopefully
你刚刚改进了整个中文翻译吗？谢谢你！我会以某种方式校对它并在下一次更新中包含它，希望

except 38-pearlcatpebbles.txt and 40-pearlcatpebbles.txt ( or something else，maybe later

Sorry this update is taking so long, there is a lot to do, but it should be nearly done now
Some new dialogue has been added + some old stuff has been tweaked


adoc links point to the raw format which is illegible; point to the repo instead

The provided links to the getting-started-macros repo point to the raw format which is unformatted plain text. Link like this instead:
https://github.com/spring-guides/getting-started-macros/blob/master/prereq_editor_jdk_buildtools.adoc

↑ that would provide a →formatted view.

Perhaps on GitHub, but not on spring.io.

The link I proposed should work from any site.

Didn't work. I tried to make that tweak, in case things had changed (https://github.com/spring-guides/gs-spring-boot-docker/commit/fdb2bddb124ab0d195e9574d45d322ce87516924).
A) The fragment is located elsewhere, hence github's security policies won't render it here, still leaving you with a link.

B) It failed to render itself as expected.

So I reverted it to as it was before.


Manual YAML based kArmor installation

This PR solves issue #498

@sayantani11, thank you for the PR.
Can we also add an example way to use the YAML?
kubectl apply -f <yaml-file>.
Also we can add a note saying,

Yaml based deployment allows the user to look into the detailed installation parameters and possibly tweak it before installation.

@daemon1024 , @nam-jaehyun , There is a deployment for docker/generic ... I am not sure how to use those. Lets discuss this in our next community call.

"docker" -> KubeArmor deployment for docker (~v18.09) based self-managed k8s env.
"generic" -> KubeArmor deployment for containerd based and docker (v18.09~) based self-managed k8s env.


issue with new network policy using IP address

I used your 4th example(DENY all traffic from other namespaces)
I created 2 namespace (test1 and test2) and deploy one test services on first namespace,
kubectl run -ti --rm --namespace=test1 --image ubuntu bash -- bash
apt-get update
apt-get --assume-yes install httpie
http http://test-service
and observed it to respond with a 200, indicating that it could connect. This is a good baseline.
now create 2nd namespace test2 and and test it
kubectl run -ti --namespace=test2 --rm --image ubuntu bash -- bash
apt-get update
apt-get --assume-yes install httpie
http http://test-service
and observed a connection error. This is good as it shows that the service discovery didn't work between the new namespaces.
But then tested the IP directly:
http http://<IP_ADDRESS>
and it worked. Not good. It's my understanding that the network policy should prevent connections from pods in different namespaces.
how can we overcome above issue?

@naveeng68 when you're on different namespaces you can't just query http://test-service. It will resolve to the test-service in the current namespace.
Try http://test-service.test1 from test2 namespace and try http://test-service.test2 from test1 namespace. This should solve your problem. (If it does, please close this issue.)

Yes a service name will only work within a namespace and what is currently setup blocks this from other namespaces. But the problem is that when I lookup the clusterIP and then try from a pod in a different namespace, it works. This shouldn't be allowed. please check above example. hostname is fine but by IP address has resolved (it should not),

@naveeng68 I just tried this and it enforces the cross-namespasce policy just fine for both hostname and IP address.
I think your cluster might not have network policy enabled. (When there's no networking plugin enabled to enforce the policy, the policy will be silently ignored.)

could you please let me know how we enable network policy in cluster, If it is not enable then. how its working with host(I am getting issue flu with IP address)

https://github.com/ahmetb/kubernetes-networkpolicy-tutorial/blob/master/00-create-cluster.md

I am using AWS, So please let me know how to enable network policy in cluster AWS.


fix(versions): update Activiti/activiti-cloud-full-chart-security versions

UpdateBot pushed helm dependency: activiti-cloud-full-example to: 7.1.451

UpdateBot commands:
updatebot push-version --kind helm activiti-cloud-full-example 7.1.451


Make all wallet commands load wallet

Let's add a Wallet struct that can only be constructed by loading the wallet:
struct Wallet {
  foo: (),
}

impl Wallet {
  fn new(options: &Options) -> Result<Self> {
    options.bitcoin_rpc_client_for_wallet_command(false)?;

    Ok(Self)
  }
}


ResourceSaver cant trigger EditorPlugin "resource_save" signal

Godot version: 3.1
In EditorPlugin:
func _enter_tree():
	connect("resource_saved", self, "resource_save")

func resource_save(_source):
	if _source is PackedScene:
		print("PackedScene Saved")
	else:
		print("Something saved")

In another tool:
func save():
	print("save")
	var p_scene = PackedScene.new()
	var result = p_scene.pack(scene)
	if result == OK:
		var path = scene.filename
		ResourceSaver.save(path, p_scene)
		scene.property_list_changed_notify()
		p_scene.emit_signal("changed")
		print("save succeed")

I found that call the save function cannot trigger the "resource_save" function, thought I use the resource.changed, or that signal just work on editor internal save process?

I think you used the wrong signal, or maybe it was renamed since. The signal name is resource_saved, not resource_save.
There are signals like this one in the EditorPlugin API which seem to have been added to sustain much more specific use cases than we could think. resource_saved seems to be emitted only when an action of the editor is saving a resource. And when it does not happen, sometimes specific editor plugins call it manually to make things "work", like in AnimationPlayerEditor::_animation_save_in_path.
So indeed, calling ResourceSaver::save() does not necessarily trigger that signal. It could be added consider within a #ifdef TOOLS_ENABLED macro (since it's editor-only), but then it brings the question why it was not just done this way before, maybe there is a design reason. Otherwise plugins would need a way to be able to emit that signal somehow when they save something in the editor.


Game.resize not working properly (Phaser 3.2)

I have updated the code here to use the master branch version to test game.resize() function here
The canvas is resized, but it seem phaser stage is not (you can see it by playing with the browser dimensions as my text is always centered in the browser window)
In canvas mode, i see the background-color get resized, but not in WebGL. Both modes show that the Phaser stage is not resized correctly.
Here is my setup code.
Thanks a bunch for your work!

Can you post your code for the Menu scene as well please.

Here is the menu script code

This is working properly in 3.4. I've updated the example to show how to use it properly with a window event + tile sprite: http://labs.phaser.io/view.html?src=src\game%20config\game%20resize.js

Yes it does!
Thanks a bunch Rich!

@photonstorm as of 3.19 I'm seeing "TypeError: game.resize is not a function"
Core example is broken https://phaser.io/examples/v3/view/game-config/game-resize#


Creating an NFT with Solmate guide would lock funds in contract

Error in guide: https://onbjerg.github.io/foundry-book/tutorials/solmate-nft.html
Withdraw function uses OpenZeppelin PullPayment but mint function doesn't transfer funds to escrow
Funds would be locked in contract.
Guide should include test to check funds can be withdrawn.
Guide doesn't compile as Nft used for both contract and test contract.

Addressed the compiling issues in #137

Thanks @dmfxyz for fixing the tutorial.  Didn't want someone to copypasta and end up with locked funds.


SCIM Me PUT throws 500

SCIM2 put for tenants gave 500 without any backend logs
Environement : Tenant mode in Windows 2016 and Secondary Userstore MSSQL

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Enable WriteCore feature for dataprotection

We need to enable WriteCore feature to dataprotection. Therefore add use-write-core: true and do a regen.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.ResourceManager.DataProtectionBackup


I am getting some npm error posting here please check

npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "ins
tall"
npm ERR! node v4.3.1
npm ERR! npm  v2.14.12
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>postinstall: jspm install && npm run webdriver-manager-update
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'jspm install && npm run webdriver-manager-update'.
npm ERR! This is most likely a problem with the vanilla-es6-jspm package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     jspm install && npm run webdriver-manager-update
npm ERR! You can get their info via:
npm ERR!     npm owner ls vanilla-es6-jspm
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     D:\ES6\vanilla-es6-jspm\npm-debug.log

Can you try running ./node_modules/.bin/jspm install && npm run webdriver-manager-update at the root of the project ?
I spotted a little problem on install on node v4 with phantomjs that I fixed on https://github.com/topheman/vanilla-es6-jspm/commit/880f97adadfad4e38f4f0702cd38b26f446aad76 - please git pull the latest version of the master branch and make a fresh install.
If the bug stays, please provide the whole log. I tried a fresh install with node v4 on my laptop that works and the tests are green.


Feat: split a sample into two when resolving spirals

Frequently, a spiral scan identifies two equally viable but distinct regions of interest.  It would be nice if resolve_spirals could accept a comma-separated list of "good" points, which would be used to:

copy.deepcopy the sample object to a new sample in the bar for each number
set the matched location for each copy to the corresponding spiral search position
Copy all acquisitions from the sample to its duplicate (may happen automatically)

Thanks to Lucas and Julia who came up with this idea.

a pull request for this would be welcome - it's been something I've wanted for a while

This is actually for the rsoxs reposition, not this one.  This package does not include resolve_spirals.  Can you open the issue there instead?


[RFC] Use Update Driven Refresh for Pods

Problem
Currently only full refresh is supported for container providers (Kubernetes/Openshift), with sufficiently large environments this refresh can take over 2 hours.  This is long enough that pods/containers can be created and deleted while a refresh is running causing them to be completely missed by ManageIQ.
Without a record of all pods which were created policy actions cannot be run and metrics cannot be collected for chargeback.
Proposed Solution
Kubernetes supports a stream update mechanism /watch which delivers changes to a registered client.  There is an example in the kubeclient repo: https://github.com/abonas/kubeclient#receive-entity-updates
We propose adding a new worker (InventoryCollectorWorker) which registers for these WatchStreams  specifically for pods and sends ManagerRefresh::Target targets with the payload to the RefreshWorker for parsing and saving.  Since all updates are persisted in the queue and will be handled by the refresh worker no pod will be missed.
In addition to maintaining a record of all pods which were created&deleted we can collect metrics on recently disconnected pods ensuring we have metrics for these short lived containers.
PRs

[ ] https://github.com/ManageIQ/manageiq/pull/16198 - This adds the base worker class for an InventoryCollectorWorker
[ ] https://github.com/ManageIQ/manageiq-providers-kubernetes/pull/129 - This contains the worker mixin which actually subscribes to the watches and sends the targets
[ ] https://github.com/ManageIQ/manageiq-providers-openshift/pull/52 - Just adds the Openshift worker based on the Kubernetes mixin
[ ] https://github.com/ManageIQ/manageiq-providers-kubernetes/pull/135 - Adds support for targeted pod refresh
[ ] https://github.com/ManageIQ/manageiq-providers-openshift/pull/54 - Openshift equivalent

cc @Ladas @simon3z @cben

Other PRs:
EmsRefresh.queue_refresh(target)
The current performance is horrible, we need at least some perf improvement to survive 4.6

[ ] https://github.com/ManageIQ/manageiq-schema/pull/101 add jsonb column
[ ] uses jsonb column instead of args

What is the main benefit of jsonb? In any other implementation, what we do is e.g.
Having 1000 targets in our MiqQueue refresh record, to add another target, we need to fetch those 1000 targets, we add 1 more with O(n) scan for uniquenes, we send 1001 targets back to server (if it was unique)
Instead, using jsonb, we do not fetch any target. We use jsonb Hash, where we index targets by some unique key, we send 1 target to server, which will create or overwrite existing target. In ideal world, this would be O(C), but seems like postgre still does O(n) to acess the hash key on the DB side, nevertheless O(n) on the db side is  like 20x faster.
Comparission:

Two questions @Ladas

Did you remove the logs the full args after MiqQueue.put? https://github.com/ManageIQ/manageiq/blob/master/app/models/miq_queue.rb#L144 this can have an impact on the time+memory
Can you test with just the targets in the args and the payload in :data ?

Did you remove the logs the full args after MiqQueue.put?

@agrare did you just say put the gook into data instead of args?

we need to fetch those 1000 targets

When you say fetching the targets, do you mean it literally goes and queries the remote tables?  Or do you just mean it brings back the args string column.  I'm shocked that pulling back a reasonably sized string column (1000 records at most is what, 30kb string?) would be so expensive.  Or is it the deserialization of that that takes so long?

Did you remove the logs the full args after MiqQueue.put?

@agrare did you just say put the gook into data instead of args?

Well those numbers are with logging all of the arguments so I think we should test perf without logging all the gook, then also test without the gook in the args

@Ladas can you also add the change to not | when building the targets?
targets = msg.nil? ? targets : (msg.args[0] | targets)
to use .concat ?

@Ladas I think there is another benchmark we need, currently you have MiqQueue with no modifications, and a completely new json column.  We need to benchmark what MiqQueue with some tweaks to see if we can get it to be "good enough".

@agrare removed logging had no effect

thousand Timings {:make_target=>1.8858156204223633, :queue_refresh=>654.7350327968597, :all=>656.655668258667}
thousand Timings {:make_target=>2.7041256427764893, :queue_refresh=>2265.563955307007, :all=>2268.306896686554}

@Fryguy @agrare @kbrock  this is the benchmark https://gist.github.com/Ladas/ae5e723080108a9cc953fff249918692
It has a real world Pod payload. Times with not havingthe payload, just ids were like half better. So half of the time is fetching, deserializing, uniq, serializing, storing of the big payload. But with small payload, these are still costy.

@agrare @Fryguy talking to @kbrock  that we could be able to leverage the existing data column, doing
update table
set data = array_to_string(string_to_array(data) || #{new_data})
where id = #{id}

But we would probably loose the unique check (data itself are not unique, only uuid and we want last state), so we would be storing 3-5 times more data.

so the play sql is:
select '[' || array_to_string(array_agg(a order by a), ',') || ']' as "data"
from (select distinct
            unnest(string_to_array(regexp_replace('[6,1,2,3]','\[|\]','','g'),',') ||
            ARRAY['2','3','4','5']) as a) s;
     data
---------------
 [1,2,3,4,5,6]

which would translate to:
MiqQueue.exec("update #{table_name}
  set data = (
select '[' || array_to_string(array_agg(a order by a), ',') || ']'
from (select distinct
            unnest(string_to_array(regexp_replace(data,'\[|\]','','g'),',') ||
            ARRAY[?]) as a) s)
where id = ?", new_data, rec.id)

But the data doesn't look like a simple array. Think it is out

But we would probably loose the unique check (data itself are not unique, only uuid and we want last state), so we would be storing 3-5 times more data.

I don't think the size matters...I mentioned a similar approach in gitter where we could just append the value, and then uniq later on when we pick up the message in EmsRefresh.refresh.

select '[' || array_to_string(array_agg(a order by a), ',') || ']' as "data"

Is data a SQL array?

@Fryguy data is currently a string column in miqqueue. But we are storing a json array in it.
So it converted a json array of "ids" into a pg array, appended them, and then the results into pg rows, which were then made unique and converted back into a json array.
But it is more of a prototype to see what could be done.
Once we look at having a full fledged json blob in there, that kinda thows everything out.
Those blobs are really big. Seems like we're doing something wrong here

@Fryguy I also had a simple one that punted on the whole unique constraint. but it also assumed just passing an array of simple ids, and not big json datastructures.
update miq_queue
set data = replace(data, ']', ? || ']')
where id = ?
-- ["25,26,27,28", 55]

None of those will work because data is not a column

I've not up to the details yet, but I have 2 basic questions.

What is exact goal of stuffing lots of data into 1 MiqQueue row?

Correctness-wise, could we 1 refresh row for each pod datum? @Ladas, you mentioned somewhere that combining data helps you with correct links?
I'm curious, performance-wise, what would be most painful if we did 1 refresh row for each pod datum?  Is it about merging multiple states of same pod?  (Those do come quickly when watching.)  Is it about persistor batching?  Would MiqQueue size blow up?

BTW, does MiqQueue allow "receiver-side batching", i.e. give me all (or up to N) rows of the kinds I'm looking for?

Can we limit the combining to small number say at most 50 pods per refresh, and then open a new MiqQueue row?

Why go through MiqQueue at all?  It feels like this gives us a form of collector/persistor split — except MiqQueue is not a good enough transport for such split!

Can we persist in the watching process?  Sounds scary, races with main refresh worker...
What if we move watching to a thread in refresh worker, and use some in-memory queue?

I don't think correctness risks (e.g. what if worker dies and loses in-memory queue) are automatic deal-breakers.  It can be acceptable to have a "fast approximation" that's sometimes corrected by next full refresh.

@Fryguy data is correct in the pseudo code :-) We are talking about msg_data column
@kbrock @Fryguy so yeah, maybe just doing concat and unique check later is the way to go. It's at least the closest solution to '5.0 sending all of it through queue', without any processing of the whole state.
@cben unless I am mistaken, we are kinda stuck with this approach for 4.6.
ad 1) Doing multiple rows would mean more changes before the end of release, so I was focusing on squeezing the most performance from the current way and changing as little lines as I can. :-) The fact should be we are throwing away all of this for 5.0 and start using normal queue.
ad 2) Yes, but I think, I can't do anything else, unless I am able to run refresh workers in parallel, which I am not. So the refresh worker takes the full refreshes from a queue, the easiest way is to send also targets there.
So this is all based on current time we have, we should do the least changes possible to make this all work and focus on fixing remaining metrics related bugs. Right?

Let me try the simple array concat, with no previous data analysis, maybe in a new column. That should be the closest to what we will do with a new queue. (well closest would be a new row per target, but that is too much of a workflow change this late in a release cycle, I think)

Yeah, I see...
OK, another idea, just in case it helps: consider buffering before writing
the MiqQueue row in the first place.
(buffer should be time-limited, flush if first datum is older than some
threshold — given that watch API blocks with no timeout waiting for new
data, I think this requires separate watching thread | queue-writing thread)

BTW, how does this interact with events constantly queuing a full refresh
(if not already queued IIUC)?
While a full refresh runs, targetted refreshes will get queued but will not
be persisted.
Sounds OK, but might be even better to change all pod events (except pod
deleted?) to not queue the full refresh.
2017-10-23 11:36 GMT+03:00 Beni Cherniavsky-Paskin <
<EMAIL_ADDRESS>
Yeah, I see...
OK, another idea, just in case it helps: consider buffering before writing
the MiqQueue row in the first place.
(buffer should be time-limited, flush if first datum is older than some
threshold — given that watch API blocks with no timeout waiting for new
data, I think this requires separate watching thread | queue-writing thread)

@cben  yeah, we should probably clean the pod events, since watch will take over. Not sure I understand you first question

@Fryguy @kbrock @agrare @cben ok, so using new column array_data, type array[]
doing query (few nested jsons I could probably cleanup)
"    UPDATE miq_queue\n    SET array_data = array_data || ARRAY['[\"ManagerRefresh::Target\",{\"manager_id\":4,\"association\":\"container_groups\",\"manager_ref\":\"11bfe9da-b4cf-11e7-8a08-001a4a162711-1000\",\"event_id\":null,\"options\":\"{\\\"payload\\\":{\\\"kind\\\":\\\"Pod\\\",\\\"apiVersion\\\":\\\"v1\\\",\\\"metadata\\\":{\\\"name\\\":\\\"stress6-1-trz0g\\\",\\\"generateName\\\":\\\"stress6-1-\\\",\\\"namespace\\\":\\\"vcr-tests\\\",\\\"selfLink\\\":\\\"/api/v1/namespaces/vcr-tests/pods/stress6-1-trz0g\\\",\\\"uid\\\":\\\"11bfe9da-b4cf-11e7-8a08-001a4a162711-1000\\\",\\\"resourceVersion\\\":\\\"1809029\\\",\\\"creationTimestamp\\\":\\\"2017-10-19T13:11:50Z\\\",\\\"labels\\\":{\\\"deployment\\\":\\\"stress6-1\\\",\\\"deploymentconfig\\\":\\\"stress6\\\",\\\"run\\\":\\\"stress6\\\"},\\\"annotations\\\":{\\\"kubernetes.io/created-by\\\":\\\"{\\\\\\\"kind\\\\\\\":\\\\\\\"SerializedReference\\\\\\\",\\\\\\\"apiVersion\\\\\\\":\\\\\\\"v1\\\\\\\",\\\\\\\"reference\\\\\\\":{\\\\\\\"kind\\\\\\\":\\\\\\\"ReplicationController\\\\\\\",\\\\\\\"namespace\\\\\\\":\\\\\\\"vcr-tests\\\\\\\",\\\\\\\"name\\\\\\\":\\\\\\\"stress6-1\\\\\\\",\\\\\\\"uid\\\\\\\":\\\\\\\"0aab42e9-b4ce-11e7-8a08-001a4a162711\\\\\\\",\\\\\\\"apiVersion\\\\\\\":\\\\\\\"v1\\\\\\\",\\\\\\\"resourceVersion\\\\\\\":\\\\\\\"1809022\\\\\\\"}}\\\\n\\\",\\\"openshift.io/deployment-config.latest-version\\\":\\\"1\\\",\\\"openshift.io/deployment-config.name\\\":\\\"stress6\\\",\\\"openshift.io/deployment.name\\\":\\\"stress6-1\\\",\\\"openshift.io/scc\\\":\\\"restricted\\\"},\\\"ownerReferences\\\":[{\\\"apiVersion\\\":\\\"v1\\\",\\\"kind\\\":\\\"ReplicationController\\\",\\\"name\\\":\\\"stress6-1\\\",\\\"uid\\\":\\\"0aab42e9-b4ce-11e7-8a08-001a4a162711\\\",\\\"controller\\\":true,\\\"blockOwnerDeletion\\\":true}]},\\\"spec\\\":{\\\"volumes\\\":[{\\\"name\\\":\\\"default-token-78s93\\\",\\\"secret\\\":{\\\"secretName\\\":\\\"default-token-78s93\\\",\\\"defaultMode\\\":420}}],\\\"containers\\\":[{\\\"name\\\":\\\"stress6\\\",\\\"image\\\":\\\"docker.io/fsimonce/stress-test\\\",\\\"resources\\\":{},\\\"volumeMounts\\\":[{\\\"name\\\":\\\"default-token-78s93\\\",\\\"readOnly\\\":true,\\\"mountPath\\\":\\\"/var/run/secrets/kubernetes.io/serviceaccount\\\"}],\\\"terminationMessagePath\\\":\\\"/dev/termination-log\\\",\\\"terminationMessagePolicy\\\":\\\"File\\\",\\\"imagePullPolicy\\\":\\\"Always\\\",\\\"securityContext\\\":{\\\"capabilities\\\":{\\\"drop\\\":[\\\"KILL\\\",\\\"MKNOD\\\",\\\"SETGID\\\",\\\"SETUID\\\",\\\"SYS_CHROOT\\\"]},\\\"privileged\\\":false,\\\"seLinuxOptions\\\":{\\\"level\\\":\\\"s0:c11,c10\\\"},\\\"runAsUser\\\":1000130000}}],\\\"restartPolicy\\\":\\\"Always\\\",\\\"terminationGracePeriodSeconds\\\":30,\\\"dnsPolicy\\\":\\\"ClusterFirst\\\",\\\"serviceAccountName\\\":\\\"default\\\",\\\"serviceAccount\\\":\\\"default\\\",\\\"nodeName\\\":\\\"ladislav-ocp-3.6-infra<IP_ADDRESS>.18.nip.io\\\",\\\"securityContext\\\":{\\\"seLinuxOptions\\\":{\\\"level\\\":\\\"s0:c11,c10\\\"},\\\"fsGroup\\\":1000130000},\\\"imagePullSecrets\\\":[{\\\"name\\\":\\\"default-dockercfg-l2ng9\\\"}],\\\"schedulerName\\\":\\\"default-scheduler\\\"},\\\"status\\\":{\\\"phase\\\":\\\"Pending\\\",\\\"conditions\\\":[{\\\"type\\\":\\\"Initialized\\\",\\\"status\\\":\\\"True\\\",\\\"lastProbeTime\\\":null,\\\"lastTransitionTime\\\":\\\"2017-10-19T13:11:50Z\\\"},{\\\"type\\\":\\\"Ready\\\",\\\"status\\\":\\\"False\\\",\\\"lastProbeTime\\\":null,\\\"lastTransitionTime\\\":\\\"2017-10-19T13:11:50Z\\\",\\\"reason\\\":\\\"ContainersNotReady\\\",\\\"message\\\":\\\"containers with unready status: [stress6]\\\"},{\\\"type\\\":\\\"PodScheduled\\\",\\\"status\\\":\\\"True\\\",\\\"lastProbeTime\\\":null,\\\"lastTransitionTime\\\":\\\"2017-10-19T13:11:50Z\\\"}],\\\"hostIP\\\":\\\"<IP_ADDRESS>\\\",\\\"startTime\\\":\\\"2017-10-19T13:11:50Z\\\",\\\"containerStatuses\\\":[{\\\"name\\\":\\\"stress6\\\",\\\"state\\\":{\\\"waiting\\\":{\\\"reason\\\":\\\"ContainerCreating\\\"}},\\\"lastState\\\":{},\\\"ready\\\":false,\\\"restartCount\\\":0,\\\"image\\\":\\\"docker.io/fsimonce/stress-test\\\",\\\"imageID\\\":\\\"\\\"}],\\\"qosClass\\\":\\\"BestEffort\\\"}}}\"}]'::text], \"updated_on\" = '2017-10-23 09:21:37.785549'\n    WHERE miq_queue.id = 63645\n"

so the whole 1 target is 1 string and we keep flat array of them, with just pure concat of new ones, these are the times:

thousand Timings {:make_target=>1.1146678924560547, :select_queue_item=>2.2333269119262695, :update_queue_item=>18.631027460098267, :all=>22.02141499519348}
thousand Timings {:make_target=>0.8715486526489258, :select_queue_item=>1.7542634010314941, :update_queue_item=>42.50348210334778, :all=>45.164586544036865}
thousand Timings {:make_target=>0.8070909976959229, :select_queue_item=>1.647190809249878, :update_queue_item=>67.53821349143982, :all=>70.02637982368469}

@Fryguy @kbrock do you want me to try also using the existing t.binary   "msg_data" column? I think we should use native array or hash, to avoid casting all the time. But if we would like to avoid the DB change, I can try it

@kbrock hm, I think the binary column will not work. I can't use the regexp to feed string to array, since there are nested encoded arrays and hashes inside.

Hey @cben

Why go through MiqQueue at all? It feels like this gives us a form of collector/persistor split — except MiqQueue is not a good enough transport for such split!

Can we persist in the watching process? Sounds scary, races with main refresh worker...

We definitely cannot do this because it could cause duplicate records for the same pod to be created, this is why @Ladas did so much work with unique indexes and atomic create/or update strategies

What if we move watching to a thread in refresh worker, and use some in-memory queue?

I thought about this at first but the issue was we restart the RefreshWorker every N.hours so we would get that initial list of all pods every time which if we take the case where a refresh is ~N.hours anyway you're doing twice as many full refreshes of pods than we used to be doing.

BTW, how does this interact with events constantly queuing a full refresh
(if not already queued IIUC)?

We unique the targets in a refresh queue record so a refresh for the same provider queued over and over doesn't mean it will run that many times.

While a full refresh runs, targetted refreshes will get queued but will not
be persisted.

Usually if there is a full target in the list we drop all other targets, @Ladas will have to override this for container providers to still persist the targets before doing the full refresh

Sounds OK, but might be even better to change all pod events (except pod
deleted?) to not queue the full refresh.

Unless we make this mandatory we'd still have to keep the refresh queue logic for pod events, but I do like the idea of trying to keep pods from queueing a full if we have this on.  We could add something that checks the settings if this were enabled (might not work if their ems_inventory and events roles were on different appliances with different settings...)

I don't understand

cramming a TON of data directly into an MiqQueue object  (and in args instead of msg_data)
slamming the MiqQueue with 1-by-1 updates

So, with just changing the code to concat the targets instead of doing a set-union (|), using data instead, and using batches of 100, I can insert 5000 records without a payload in 1.11s  (linear insertion rate of 0.01s / 100 records).
The MiqQueue was never meant for large payloads, and typically large payloads are stored elsewhere such as the BinaryBlob table  So, for the payload, instead of storing it directly in the MiqQueue entry, I created a BinaryBlob entry and just stored the BinaryBlob id in the ManagerRefresh::Target.  With the same code changes above, I can insert 5000 records in 29.296181s (linear insertion rate of 0.5s-0.6s / 100 records).
Now, I think this can be improved even further by storing the entire batch as a single BinaryBlob entry (thus 100x less BinaryBlobs), and also storing a new object type in the data...something like a ["ManagerRefresh::TargetBatch", binary_blob_id] pair, which would be 100x less things in the args/data.

Aside, when I stored the BinaryBlob id in args instead of data I saw a really weird pattern.  Creating the BinaryBlob and not storing it in the payload is linear (takes about 30s for 5000 records), but storing the BinaryBlob id in the ManagerRefresh::Target is non-linear.  I can't understand this at all, and even stranger is if I hardcode a number (even a number in trillions like on a region), it's non-linear.

I just noticed that logging still happens for data, but that's an easy .except(:data) in the log message...didn't seem to affect timings, but could affect log sizes.

@Fryguy
cramming a TON of data directly into the MiqQueue object (and in args instead of msg_data) both require fetching the data and doing concat in ruby, doing that operation on the DB side is much more effective.
slamming the MiqQueue with 1-by-1 updates that is a collector optimization, so by 1 is the worst case. If a collector can do batches, the numbers for all approaches will be better. Our core target scheduling can't do batches, that is: 'process event and queue refresh from automate', where we can have many workers doing queue 1 target.

@Fryguy Not sure if i understand the linear rise vs. non linear you see. If we do msg.data.concat(targets), the processing time should always rise with targets size, because we are  fetching and building larger objects. (it rises also when doing DB based concat, it's just faster). The (msg.args[0] | targets) was even worse, since it | operator does also unique check.

@Fryguy so could you send a PR with the changes you have locally?
With the diff you have, only problem is deliver https://github.com/Ladas/manageiq/blob/6f4c0d80c0f3f7904224bd9342c1f075ab1b2c51/app/models/miq_queue.rb#L422, since the data is always as second arg (args is always [[]], so the push will result in [[], data] ). So we might need to change the refresh interface to expect targets as second arg? Not sure if we can change it to be 1st args, if 1st arg is []
Or if the binary_blob way is better, I would like to see that too. :-) I am fine with any change that will make this usable for 4.6 :-)

All PRs have been merged, thanks guys!


Calls to Adobe Privacy Service APIs fail

Expected Behaviour
Calls to https://platform.adobe.io/data/privacy/gdpr should return a set of jobs
 jobs:
   [{jobId: 'xxxx-xxxx-xxxx-xxxx-xxxx', statusCode: 4},
     {jobId: 'yyyy-yyyy-yyyy-yyyy-yyyy', statusCode: 4}]

Actual Behaviour
Calls to https://platform.adobe.io/data/privacy/gdpr fail with:
{
    "errors": {
        "errorCode": 401,
        "title": "Invalid Token",
        "detail": "Expecting bearer token with this request",
        "errorType": "uri=/data/privacy/gdpr"
    },
    "totalRecords": 0
}

Reproduce Scenario (including but not limited to)
Steps to Reproduce
Platform and Version
$ node --version
v10.15.0

Sample Code that illustrates the problem
Running this code:
(async () => {
    const adobeFetch = require('@adobe/fetch').config({auth:{
        clientId: 'foo',
        clientSecret: 'foo',
        technicalAccountId: 'foo',
        orgId: 'foo',
        privateKey: 'foo',
        metaScopes: ['ent_gdpr_sdk']
    }});
   const response = await adobeFetch('https://platform.adobe.io/data/privacy/gdpr');
   console.log(await response.json());
})()

Results in:
{ errors:
   { errorCode: 401,
     title: 'Invalid Token',
     detail: 'Expecting bearer token with this request',
     errorType: 'uri=/data/privacy/gdpr' },
  totalRecords: 0 }

Logs taken while reproducing problem

Hi Vic, thank you very much for bringing this issue to our attention and also providing a PR.
I will verify internally if the "Bearer" is required to be capitalized. I understand your code works with this correction?
Btw, I think our Privacy APIs endpoint is now /data/core/privacy (https://www.adobe.io/apis/experiencecloud/gdpr/docs/alldocs.html#!api-specification/markdown/narrative/tutorials/privacy_service_tutorial/privacy_service_api_tutorial.md)

Hi @ittaibaratz, you’re welcome! My code works with the update shown in this PR.

PR merged, thank you for your contribution.


add non-dom tests

add non-dom tests so that we do not need to restart the whole electron setup from zero, which is pretty time consuming

here is branch that i've started working on - https://github.com/dat-land/dat-desktop/tree/add/unit-tests

oops, mistakenly closed it

Tests are now in the unit tests folder. Create new issue if necessary.


Not working any longer... MM is black

Hi,
i updated my MM to the actual version and did also apt-get update && apt-get upgrade.
Very sad that this is not maintained any longer... i liked it.
WIth the MM-SystemStats the whole mirror is not loading any longer. Is there a possibilty to fix that?
/home/pi/.pm2/logs/mm-error.log last 15 lines: 0|mm       |     at require (internal/modules/cjs/helpers.js:88:18) 0|mm       |     at Object.<anonymous> (/home/pi/MagicMirror/modules/MMM-SystemS                                                                                tats/node_helper.js:13:15) 0|mm       |     at Module._compile (internal/modules/cjs/loader.js:1078:30) 0|mm       |     at Object.Module._extensions..js (internal/modules/cjs/loader.j                                                                                s:1108:10) { 0|mm       |   code: 'MODULE_NOT_FOUND', 0|mm       |   requireStack: [ 0|mm       |     '/home/pi/MagicMirror/modules/MMM-SystemStats/node_helper.js', 0|mm       |     '/home/pi/MagicMirror/js/app.js', 0|mm       |     '/home/pi/MagicMirror/js/electron.js', 0|mm       |     '/home/pi/MagicMirror/node_modules/electron/dist/resources/defa                                                                                ult_app.asar/main.js', 0|mm       |     undefined 0|mm       |   ] 0|mm       | } 0|mm       | [04.10.2021 13:13.47.982] [ERROR] MagicMirror will not quit, but it                                                                                might be a good idea to check why this happened. Maybe no internet connection? 0|mm       | [04.10.2021 13:13.47.982] [ERROR] If you think this really is an is                                                                                sue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/iss                                                                                ues
I also tried to reninstall:
`pi@MagicMirror:~/MagicMirror/modules $ git clone https://github.com/BenRoe/MMM-SystemStats
Klone nach 'MMM-SystemStats' ...
remote: Enumerating objects: 234, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 234 (delta 0), reused 1 (delta 0), pack-reused 231
Empfange Objekte: 100% (234/234), 88.04 KiB | 370.00 KiB/s, Fertig.
Löse Unterschiede auf: 100% (125/125), Fertig.
pi@MagicMirror:~/MagicMirror/modules $ cd MMM-SystemStats/ && npm install
npm notice created a lockfile as package-lock.json. You should commit this file.
added 1 package from 1 contributor and audited 1 package in 1.104s
found 0 vulnerabilities
pi@MagicMirror:~/MagicMirror/modules/MMM-SystemStats $ git pull
Bereits aktuell.
`
My config:
    {       module: 'MMM-SystemStats',       position: 'bottom_right',       config: {         updateInterval: 60000,         view: 'textAndIcon'       }     },
Any Ideas?

Solution:
https://forum.magicmirror.builders/topic/15664/updated-to-2-17-but-mm-not-launching/9
@oberfragger it says module not found
we deleted a bunch of older libraries because one was discontinued (deprecated) due to a security problem not going to be fixed
many mm modules used them but didn’t document the usage. oops
I don’t see the name of the library
but looking at the node_helper.js shows
require('request')
which is the trouble lib
u can add it back for this module , do
npm init -y
npm install request -- save
``|


Use bitflags 1.X

Also removes the reexported flags from the crate root, since they're now
assoc. consts and it would be a bit weird to reexport those.
(breaking change)

Sounds good to me, thanks!


Simple optimization and PHPDoc type fixes in yii\helpers\BaseArrayHelper

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
❌

Fixed issues

Thanks.


Add request method

I've added a method request which is a fetch-like API with support for middlewares and a configured endpoint. Use it if you don't want to use the BREAD/CRUD methods.
import fetch from "isomorphic-fetch";
import fetchPlus from "fetch-plus";
import plusJson from "fetch-plus-json";

const api = fetchPlus.connectEndpoint("http://jsonplaceholder.typicode.com");

// Add JSON headers and response transformer.
api.addMiddleware(plusJson());

// PUT http://jsonplaceholder.typicode.com/posts/1
api.request("posts/1", {
  method: "PUT",
  body: {title: 'foo', body: 'bar', userId: 4}
}).then((response) => console.log(response));

Hi,
How do you set 'headers' with api.request?
Thanks.

api.request("posts/1", {
  method: "PUT",
  body: {foo: "bar"},
  headers: {Authorization: "Bearer token"}
}).then((response) => console.log(response));