fix theme selector on settings

#227

As you say, the function getElementPrice is wrong.
We should fix this function. https://github.com/jkroepke/2Moons/issues/241


Add Ethernet MAC support

Changes required for ESP32 Ethernet support.
See https://github.com/zephyrproject-rtos/zephyr/pull/50141

Can someone with write access merge this?

Only those with write access to this repository can merge pull requests.


100% Compliance Note

If a file gets a perfect score on the NCEI checks, could the checker print something out that says archive ready? (Preferably with confetti and the like...)

I don't think compliance checker plugins can change the way the main compliance checker executes. There's nothing communicated to the plugin from the main compliance checker about it's total score or even a hook for printing when it's complete.
@daf ideas?

Not plugin specific, but application-wide, the compliance checker does exit with a code (or, is supposed to) depending on if it has errors or not.  So you could always wrap the runner in a bash script or similar and add appropriate fanfare.


Add createdBy to event db table

Motivation and Context

Updating the event entity to have the new createdBy column
What has changed

Updating the event entity to have the new createdBy column

How to test?

Run with other branches on PR

Links

Trello

 Audit trail: everything in the RM events table should have a "created by" and a "last updated by" (8)


Remove deprecated method (Host.host_discovery_types) now that it is no longer used

Last caller was removed here: https://github.com/ManageIQ/manageiq-ui-classic/pull/5963

✂ ✂ ✂


Support custom global header text

We want to be able to override the "GOV.UK" in the top left of the header with
"GOV.UK (Draft)" or similar to clearly signal when a user (eg a content editor)
is looking at Draft GOV.UK.

Rebased onto master. The Travis build can take quite a long time before starting. /cc @dsingleton @edds

:fireworks:


Pipe Capacity | Documentation and Calculations

Objective: Calculate pipe size or capacity.

[ ] Complete all basic tests. Write all other tests to ensure results stay consistent when any other changes

[ ] gitbash for running all tests?

Technical:

[ ] Documentation? Utilize repgen?
API -RP-1111

[ ] external pressure design not working right?

DNV-OS-F101

[ ] Tests for Lakach project?
[ ]

Documents:

https://github.com/vamseeachanta/digitalmodel/blob/d9db55b66174a57ef601b485f929a87fcba198d6/docs/leg_apirp2rd/Ref
More to be added as need arises.
TBA

Calculations:

https://github.com/vamseeachanta/digitalmodel/blob/d9db55b66174a57ef601b485f929a87fcba198d6/src/digitalmodel/custom/pipecapacity/custom/PipeCapacity.py
TBA


Unable to use in browser (Uncaught ReferenceError)

The last version that has no problem is 1.1.0 (https://cdn.rawgit.com/download/ulog/1.1.0/ulog.min.js)
With all versions after that (355d8a94ae6f91497caabb261ec76b287a38e295 and up) I get:
Uncaught ReferenceError: module is not defined

Please stay on 1.1.0 for the time being
I am working on 2.0 but it has some issues as you found

Well, I've already started to use v2..
Are there some really critical issues?

@johnd0e
Not that I am aware of, no.
But...
It really is a WIP and there will be some breaking changes.

I am making the API compatible with anylogger
I am removing the logging methods from the ulog function
I am removing the ability to create unnamed loggers
I am removing time, timeEnd etc and other 'dummy' methods that were only there to make ulog a polyfill for the console... I don't think that functionality is needed in core anymore in 2019. There will probably be some separate entry point that adds these methods back in for those people that really need it
I am adding advanced configuration options
I am removing the option to configure from the URL (?log=debug) because I find that localStorage is much better and does not cause side effects (of a changed URL)

I am removing the logging methods from the ulog function

Now it's possible to call ulog.log(...) directly, but in next update we will need to use var log = ulog('my'); log.log(...)
Right?

I am removing the ability to create unnamed loggers

I am not aware of what you mean. Was it ever documented?

I am removing the option to configure from the URL

Is it necessary to remove this part?
localStorage has some advantage, but in some cases URL query is more convenient.
For example:

It's easier to share URL (especially when asking someone to check work in his environment)
It's possible to make bookmarks for different logging settings
It's convenient for some one-time setup - check and forget.
Using localStorage I would also need to reset that setup, otherwise it will persist.
BTW, consider using sessionStorage as well.

Now it's possible to call ulog.log(...) directly, but in next update we will need to use var log = ulog('my'); log.log(...)
Right?

Yes, that's right. All new features work for named loggers. Especially the new settings feature I am working on allows you to specify settings for classes of loggers and having this static logger makes that harder.

I am not aware of what you mean. Was it ever documented?
No I don't think it was documented but you could pass empty string and get a logger with empty string as the name

Is it necessary to remove this part?
Well... no. I can be convinced otherwise  :)
The reason I was thinking about removing it was that from my experience, changing the URL sometimes has side-effects on the website itself and also the setting gets lost every time you click a link or button. But the points you mention are very valid... I need to think about it some more...

BTW, consider using sessionStorage as well.
Yeah might be a good idea...
Personally I like it that it persists though... Because in practice I set the logging to the level I like and just keep it there. But maybe ulog can simply read from both locations...

Thanks for this great feedback!

changing the URL sometimes has side-effects on the website itself and also the setting gets lost every time you click a link or button

Yes, it has limitations, and can serve as supplementary way only.
Some thoughts:

to lower side-effects ulog could rely on #hash-part (instead of ?query=).
it could restore own url-part on window.onhashchange (or other technique)
it could just be used to import settings to sessionStorage.

But maybe ulog can simply read from both locations...

It would be convenient.
Perhaps some timestamp is necessary to find which of locations to use.

Personally I like it that it persists though...

Sure, it is good too. I like ulog for it's flexibility.

Thanks for this great feedback!

Thank you for great logger)

Perhaps some timestamp is necessary to find which of locations to use.

For most cases sessionStorage should have priority, but we need some simple way to switch back to localStorage.
May be we can just empty it in console, or via url query.
BTW, to keep ulog tiny, all 'extra' features could come into some sub-module.

I currently came up with this function to read settings from the environment on the browser:
ulog.env = function(n, m){
  var result
  n = name(n)
  result = (m = location.search.match('[?&]'+n+'(=([^&]*))?&?')) && m[2]
  try {result = result || sesssionStorage.getItem(n)} catch(e) {/* ignore */}
  try {result = result || localStorage.getItem(n)} catch(e) {/* ignore */}
  return result
}

This code checks the URL, sessionStorage and localStorage, in that order. URL beats sessionStorage beats localStorage.

`name()` is a simple function that converts from setting name (e.g.: `'level'`) to platform-specific name (e.g. 'LOG' for Node JS and 'log' for browsers):

```js
// convert option name to platform style
function name(n){
  return n == 'level' ? 'log' : n == 'debug' ? 'debug' : 'log_' + n
}

It is part of a much more advanced settings mechanism I am building for ulog v2. You will be able to configure log levels for individual loggers easily using any of these 3 mechanisms.
Thanks for your feedback here. It is enormously motivating to see people actually using the code I wrote :)

BTW, to keep ulog tiny, all 'extra' features could come into some sub-module.

Yeah, I've been thinking about this.
Particularly, I am adding some much more advanced formatting and output options. But it takes up valuable space...
I was thinking, maybe I can load the code for the formatters only when you have set the setting to some non-empty value. In pseudo-code:
if (ulog.get('format')) {
  ulog.load('formats.js')
  // do formatting stuff here
}

The problem is I end up building a script loader if I am not careful. I need a simple yet powerful way to load scripts on the fly. Also it is a bit problematic that script loading is async, whereas all other ulog functions are sync currently... Probably I will release a version of ulog that is simply a bigger bundle first and only when everything is working fine will I look into making the loading dynamic.
Do appreciate your input! Keep it coming 👍

May be better keep things simpler, and leave loading part completely on user code.
He can load extra formatter in the same way as he loads ulog itself.

Why won't you remove from the readme the below section which is obviously not working for 2.0?

Script tag
If you want, you can import ulog with a script tag:

@youk
Because that part of the README is actually auto-generated.
What I did wrong was publish a beta way to early... so users get confused. Sorry, my bad.
I am closing this issue. Everything that was said here has been taken into consideration for v2:

Configure from URL will work (will be equivalent to using program arguments in Node JS)
Configure from localStorage will work (will be equivalent to using env vars in Node JS)
Script include will work without errors
Will support 'mods' to add functionality by requiring a small module and adding it to ulog
Will not support lazy loading for the time being, but this will remain a wish for me and will get implemented when I find a good way to do it

@youk @johnd0e
Thank you guys for your support and feedback! Love you!

Thank you.


Error thrown when using act in unmounted component

Hello!
I'm hitting an issue in some jest+enzyme tests I'm running.
It looks like if a component instance is unmounted, this line will throw an error when wrapping an action with act(…):
https://github.com/cfaester/enzyme-adapter-react-18/blob/main/src/ReactEighteenAdapter.ts#L475
The error in question:
TypeError: Cannot read properties of null (reading '_reactInternals')

      86 |     await act(() => {
    > 87 |       wrapper = mount(
         |                      ^
      […]

      at node_modules/@cfaester/enzyme-adapter-react-18/dist/ReactEighteenAdapter.js:392:121
      at act (node_modules/react/cjs/react.development.js:2512:16)
      at Object.getNode (node_modules/@cfaester/enzyme-adapter-react-18/dist/ReactEighteenAdapter.js:388:17)
      at new ReactWrapper (node_modules/enzyme/src/ReactWrapper.js:117:44)
      at mount (node_modules/enzyme/src/mount.js:10:10)
      […]
      at act (node_modules/react/cjs/react.development.js:2512:16)

Supposedly, this should be something like return null instead?
Otherwise, in the line below instance._reactInternals will be executed and will throw an error if instance is null or undefined, making the previous check for !instance useless.

@MonkeyDo I'm facing the same issue. Did you find a solution for that?

@raualvron Yes, I did in the end. The trick was to make sure that the mounted component is unmounted and cleared after each test.
I opted for reusing a wrapper variable and calling wrapper.unmount() in afterEach then setting the wrapper variable to undefined in beforeEach. See for example:
https://github.com/metabrainz/listenbrainz-server/blob/51ddbf37c6e7351f34c5b66dd35fce74322933a4/frontend/js/tests/recommendations/Recommendations.test.tsx#L72-L88
The other option is to call wrapper.unmount() at the end of each test like so: https://github.com/metabrainz/listenbrainz-server/blob/51ddbf37c6e7351f34c5b66dd35fce74322933a4/frontend/js/tests/listens/ListenFeedbackComponent.test.tsx#L73

I think this is instead related to https://github.com/cfaester/enzyme-adapter-react-18/pull/6

@MonkeyDo @raualvron Hey guys. 0.7.0 will be landing on npm in a few minutes. Would you be kind to check if that fixed your issues?

Thanks for the tip!
Testing the new version, I echo the comment here: I am not seeing the _reactInternals  issue anymore, so that issue is solved, thanks a lot !
However I am seeing some new test failures, all of them related to the absence of a mounted wrapper where one is expected (and of course I'm happy to open a separate issue for this):
Method “instance” is meant to be run on 1 node. 0 found instead.

      638 |         context: GlobalContextMock,
      639 |       });
    > 640 |       const instance = wrapper.instance();

      at ReactWrapper.single (node_modules/enzyme/src/ReactWrapper.js:1168:13)
      at ReactWrapper.instance (node_modules/enzyme/src/ReactWrapper.js:242:17)

For reference, here's the line above where i just mount the component:
it("sets URL parameters", () => {
      const wrapper = mount<UserEntityChart>(<UserEntityChart {...props} />, {
        context: GlobalContextMock,
      });
      const instance = wrapper.instance(); // <- this is throwing an error

https://github.com/metabrainz/listenbrainz-server/blob/929ca864012018d178b61dbcc1dad8873c4297b5/frontend/js/tests/stats/UserEntityChart.test.tsx#L759-L763
Upon closer inspection, the failures are consistent and consistently in the same test files.
The one mentioned above uses describe.each, so I suspect it could be related somehow to how the tests are run or the order thereof.
describe.each([
  ["User Stats", userProps],
  ["Sitewide Stats", sitewideProps],
])("%s", (name, props) => {

https://github.com/metabrainz/listenbrainz-server/blob/929ca864012018d178b61dbcc1dad8873c4297b5/frontend/js/tests/stats/UserEntityChart.test.tsx#L53-L56

@MonkeyDo Oh that is an interesting error! Your class should definitely have an instance you can assert on.
Great follow-up too, I'll see if I can get around to testing your project this week.


Proposal: Insert font-display:swap for Google Fonts CSS inlining

Lighthouse and other tools complain about google fonts not supporting font-display:swap.
I've recently implemented a script which rewrites the inlined Font css, adding the font-display:swap to the style rules, if it is inlined. This gives immense improvement on webpagetest.org and Lighthouse.
As we inline the CSS we also have the possibility to rewrite the css when it is stored in the cache.
I'd imagine having a content callback on the cache item (next to the header callback) and replacing the value with the rewritten CSS.
The font-display value should be configurable on the filter or even on the link tag to make the configuration granular.
Warning: This will give an inconsistent user experience, first request will be with FOIT, next requests will be with FOUT, as we cannot rewrite external stylesheets
Thoughts?

This could also be applied to local fonts if changing the stylesheets is not easy.
Looking at the profile trace and doing it by script immediately after the style loads seems to have a relatively little impact.

Hi @keesspoelstra
Well, you can use <link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" now.

@Lofesa it is lost when inlininig fonts.

@tomasdev  I see, the inline option relies in a third party library ( in the code tree third_party/css_parser/ ) that don´t take account of the display attribute in the css for fonts. I think this library don´t know nothing about font-display.


Write up everything on close form probs

[x] Build function that generates spanning trees of a Markov chain rooted at (0,0)
[x] Generate tikz-code for these spanning trees via python
[x] Found closed-form formula
[x] Write up every possible information on spanning trees of Markov chain

Looks good to me @11michalis11, let's merge this :+1:


parser's end being triggered before last record

Hi, I'm experiencing the same issue as issue#59. below is my sample code and questions if you can kindly have a look. Thanks
let parser = parse({
    delimiter,
    columns,
    cast: true,
    cast_date: true
  });
//---open the file to read records and process
createReadStream(fileAddress).pipe(parser);
parser.on("readable", async function() {
      //Q1
      let record;
      while ((record = parser.read())) //Q2
      {
      //some async function here (enriching data with data fetched from database)
      await enrichData(record);
      }
})
parser.on("end", async function() {
     //---if my file is one or two records it reaches "end" before the records are processed
})

Question 1: Is the end event called as soon as the last record is called? i.e. where I have marked in the code with Q1. Or does it wait for the function to finish and then triggers "end"?
Question 2: I have copied while((record = parser.read()) from your example, however don't understand the logic here! Is it ever possible that one readable event goes through this while more than once?
Thanks

Question 1: the "end" events behavior is documented on the Node.js website
Question 2: yes, it is possible for parser.read to return multiple chunks inside a 'readable' event, can't remember exactly how but maybe the highWaterMark option which affect the behavior of the buffer.

Relative to q1, end shall be called after Q2 for a synchronous function. Never tried for an async function passed to on but you could use stream-transform for this. Once again, this is a Node.js behavior.

@wdavidw Thanks for the reply.
You said "Relative to q1, end shall be called after Q2 for a synchronous function", so basically as soon as the last parser.read() is called the "end" will be triggered. Does this mean that the "End" event is always triggered before the last record is processed?
Is there any other event or way that can guarantee all records have gone through the "readable" function before it gets triggered?

For anyone else out there, who might be having this same issue. I fixed the problem by wrapping the "readable" function inside a promise and when it reaches "End" I check if all promises are resolved.
let promiseArray = [];
let parser = parse({
    delimiter,
    columns,
    cast: true,
    cast_date: true
  });
//---open the file to read records and process
createReadStream(fileAddress).pipe(parser);
parser.on("readable", async function() {
promiseArray.push(new Promise((resolve,reject) => {
      let record;
      while ((record = parser.read()))
      {
      //some async function here (enriching data with data fetched from database)
      await enrichData(record);
      }
resolve(true);}));
})
parser.on("end", async function() {
await Promise.all(promiseArray);
     //---after all promises are resolved we can be sure that all records are consumed in "readable" event
})

This is not specific to the parser and more of a JS question. For the records, here's my recommendation:
createReadStream(source)
.pipe(parse({
  ...options
}));
.pipe(transform(function(record, callback){
  enrichData(record).then(callback)
}))
.on("end", function() {
     console.log('End is called once all records are enriched')
})


Question about TagHelpers.

having a model like : SomethingViewModel as
public class SomethingViewModel {
    public class IEnumerable<Something> Somethings { get; set; }
}

where Something is:
public class Something {
    public string Name { get; set; }
}

Can I make a taghelper that in the cshtml works like this? :
<repeat collection="Somethings">
    <p>@Name</p>
</repeat>

so the context inside the repeat taghelper became something different than the context outside of it ? or should I use a partial for this kind of scenarios?
Thanks!.

@Bartmax tag helpers cannot change ModelType within the targeted element. You could have the <repeat> tag helper place a Something in a well-known slot in ViewData. But @Name would need to be @ViewData["Well-Known"].Name and nested tag helpers would still be using the view's Model and ModelType. All-in-all, a partial seems the better choice.

Thank you @dougbu ! I wasn't sure and yes partial feel better then!


Interesting Emerald Goat

Hotspot Name
Interesting Emerald Goat
Hotspot b58 Address
11X5oF82guvpYYM54pd8BghAkYz4RE3HtsosgDAhDk5mi7FU5ju
Discord Handle
No response
Hotspot Manufacturer
Bobcat
Removal Reason
I don't know why it's blacklisted, I put it in the real place from the beginning
Modifications
No
Extra forwarders
No
Extra antennas
No
Additional Information

We have taken into account this removal request in the next iteration of the denylist. It may take some time before it's processed. This is an automated comment due to the volume of addition and removal requests. A future tool is in the works to provide more insight into the analysis approach made by the Helium team and community members that maintain this list.


Demonstration of Implicit Typing and Alias

:white_check_mark: Build ExtendedXmlSerializer <IP_ADDRESS>-vtsnyjyk completed (commit https://github.com/ExtendedXmlSerializer/home/commit/7afc200a3c by @Mike-E-angelo)
Install it by running the following command in Package Manager Console:
Install-Package ExtendedXmlSerializer -Version <IP_ADDRESS>-vtsnyjyk -Source https://ci.appveyor.com/nuget/extendedxmlserializer-preview

Problems with the above command? You may be running into this known issue here:
https://github.com/NuGet/Home/issues/7189


Channelz monitoring API for collector

Add an API to collector to observe grpc status.
#7375
Channelz metric query api

ServerTransport socket status
http://$PINPOINT_COLLECTOR/channelz/html/findSocket?remoteAddress=<IP_ADDRESS>&localPort=9993
remoteAddress : Agent IP
localPort : Listen port of collector

@emeroad
Hello, I have a question.
You added API data sheet but I don't know how to read(analyze) it.
Is there example how to analyze API data sheet? Should I know gRPC to understand API data sheet?
I want to know how to apply it on code.

Yes, you need to know the inside of the grpc.
Please refer to this URL.
https://grpc.io/blog/a-short-introduction-to-channelz/


Include current python-irodsclient in dev build configuration

Two years after python-irodsclient became usable, we are still using an iCommands interface to iRODs. The python-irodsclient used in iPlant is now usable and the python-irodsclient methods work roughly twice as fast as using iCommands wrappers.
We should include the current python-irodsclient in the build and gradually migrate to using it where practical.
Not absolutely everything can be handled through python-irodsclient, but the things that can be handled are better handled by it. Using iCommands requires substantial operating system overhead to fork commands that is not required by python-irodsclient.

The python-irodsclient used in iPlant is now usable

We've been using the older iPlant python-irodsclient in our stack for quite some time for various aspects of the project. The version we've referenced has been in play since Sept 17, 2014
iPlant has since become CyVerse and the development of the python-irodsclient has been removed from the CyVerse side and handed back over to the iRODS team at: https://github.com/irods/python-irodsclient/
I've looked into updating the version we point to and have hit some errors along the way. Will need to consult with others regarding what's been found with the hopes of having a resolution to the updated pointer by the 1.9.0 AGU release.

@alvacouch @mjstealey I had consulted with Antoine in iRODS team who is in charge of python irods client when I brought in python irods client into HydroShare and he advised me to use that older version from iplant rather than the iRODS team version due to many upcoming changes being involved in which could result in API changes along the way. In fact, I only used python irods client for listing files and folders for iRODS file browser. Antoine also advised me not to use python iRODS client for file transfer since parallel transfer is not supported in python iRODS client. In short, Antoine approved the way we are doing right now, i.e., use python irods client for iRODS file browser without involving any file transfer operations, but use icommands for all file related operations which supports parallel file transfer, hence has fast performance. Unless there are specific reasons we need to change the current implementation, I think we don't need to change what we are currently doing.

@phuongdm Please close or comment.

Not sure about this issue, need confirm from @hyi or @alvacouch

@hyi is this still relevant or can it be closed?

Already addressed. Closing.


[TwigComponent] Document about unwanted behavior with ExposeInTemplate and computed methods

Q
A

Bug fix?
no

New feature?
no

Issues
Fix #...

License
MIT

As spotted when working on my application, the following code triggers two times the methods transactions() because of the presence of #[ExposeInTemplate] (because before I used transactions instead of computed.transactions):
	#[ExposeInTemplate]
    public function transactions(): array
    {
        // SQL query to database
    }

{{ computed.transactions|length }}

When I remove #[ExposeInTemplate], then only one SQL query is made.

Nothing illogical to me, but a mention in documentation won't hurt and clarify this case. 👍
Could you maybe use a  "tip" block  instead of a "warning" one here ?


Alpine binary for each release

I saw the instructions for building my own alpine release but it think it might more useful to just include an alpine compatible binary with your releases (as you do for OSX and Linux) especially since Docker is using Alpine as their base image now.

Good thought! If you feel up to it, go ahead and PR some documentation to our release notes. Ill be more than happy to if you don't have the time, though. :)

The linux binary works fine for me in Alpine, but I'm only using the "env" backend...

The Linux executable is totally static, and it should run just fine on Alpine (it is for me).
Also, its good to

@ooesili

The Linux executable is totally static..
Any references? For all confd versions?

The linux executable is not static. See the release checklist on how we build the compiled versions, which relies on this build script.

@bacongobbler Hmm. I don't exactly know how the Go linker works, or under what conditions it decides to static/dynamically link the binaries, but the newest release is static:
$ curl -Lo confd https://github.com/kelseyhightower/confd/releases/download/v0.12.0-alpha3/confd-0.12.0-alpha3-linux-amd64
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   625    0   625    0     0   1252      0 --:--:-- --:--:-- --:--:--  1252
100 20.1M  100 20.1M    0     0   690k      0  0:00:29  0:00:29 --:--:--  567k
$ chmod +x confd
$ ldd confd
        not a dynamic executable

I can also use the Dockerfile that I wrote above to run that release:
$ cat Dockerfile
FROM scratch

ADD confd /confd
ENTRYPOINT ["/confd"]
$ docker build -t ooesili/confd .
Sending build context to Docker daemon 21.15 MB
Step 1 : FROM scratch
 --->
Step 2 : ADD confd /confd
 ---> 7c13815b32d9
Removing intermediate container 267b5e538250
Step 3 : ENTRYPOINT /confd
 ---> Running in 1aa61adc2763
 ---><PHONE_NUMBER>dd
Removing intermediate container 1aa61adc2763
Successfully built<PHONE_NUMBER>dd
$ docker run -ti --rm ooesili/confd -version
confd 0.12.0-dev


Feature request: samba and NFS support

Currently only way to play movies from your NAS over samba/NFS is with VLCplayer. It would allow developers to not have to depend on libvlc for google TV etc. This would be a great addition that then competes fairly with VLCplayer.
Take a look how vlcplayer does it on google TV. Users can browse files on samba/NFS then select a file/movie to play.

I vote for this feature


feat: add stat function

The function encapsulates the heavy lifting done by benchstat, tried to use as little as possible from it, using default configurations + focusing on the simple scenario of comparing 2 benchmark run sets (benchstat is way more general/flexible).
Trying to capture a simple version of this:
benchstat old.txt new.txt
name        old time/op    new time/op    delta
GobEncode     13.6ms ± 1%    11.8ms ± 1%  -13.31%  (p=0.016 n=4+5)
JSONEncode    32.1ms ± 1%    31.8ms ± 1%     ~     (p=0.286 n=4+5)

name        old speed      new speed      delta
GobEncode   56.4MB/s ± 1%  65.1MB/s ± 1%  +15.36%  (p=0.016 n=4+5)
JSONEncode  60.4MB/s ± 1%  61.1MB/s ± 2%     ~     (p=0.286 n=4+5)

We can use the delta to compare and fail if it misses the target for a given specific metric (time/space/speed/etc).
After this building block we should be able to finish the tool, we can run benchs, get results, and call this function to provide statistics.

I don't if make sense, but I had to add the command output to the CmdError.Error() in order to understand why my tests were failing:
    benchcheck_test.go:173: unexpected error[fail to run: /usr/local/go/bin/go test -bench=. ./... on dir<EMAIL_ADDRESS>exit status 1 (output --- FAIL: TestEncodeFromCSV (0.00s)
            geohash_test.go:87: open /src/github.com/NeowayLabs/gis/encoding/geohash/_testdata/geohash.csv: no such file or directory
        FAIL
        exit status 1

diff --git a/benchcheck.go b/benchcheck.go
index 2b3bc00..279f10f 100644
--- a/benchcheck.go
+++ b/benchcheck.go
@@ -48,10 +48,11 @@ type CmdError struct {
 // Error returns the string representation of the error.
 func (c *CmdError) Error() string {
        return fmt.Sprintf(
-               "fail to run: %v on dir %s: %v",
+               "fail to run: %v on dir %s: %v (output %s)",
                c.Cmd,
                c.Cmd.Dir,
                c.Err,
+               c.Output,
        )
 }

I don't know if makes sense, but I had to add the command output to the CmdError.Error() in order to understand why my tests were failing:
    benchcheck_test.go:173: unexpected error[fail to run: /usr/local/go/bin/go test -bench=. ./... on dir<EMAIL_ADDRESS>exit status 1 (output --- FAIL: TestEncodeFromCSV (0.00s)
            geohash_test.go:87: open /src/github.com/NeowayLabs/gis/encoding/geohash/_testdata/geohash.csv: no such file or directory
        FAIL
        exit status 1

diff --git a/benchcheck.go b/benchcheck.go
index 2b3bc00..279f10f 100644
--- a/benchcheck.go
+++ b/benchcheck.go
@@ -48,10 +48,11 @@ type CmdError struct {
 // Error returns the string representation of the error.
 func (c *CmdError) Error() string {
        return fmt.Sprintf(
-               "fail to run: %v on dir %s: %v",
+               "fail to run: %v on dir %s: %v (output %s)",
                c.Cmd,
                c.Cmd.Dir,
                c.Err,
+               c.Output,
        )
 }

I usually don't like adding because the output can be quite big and doesn't compose well with other errors in a call chain. What we could do here is to use errors.As on the tests to print the debug information when it fails, including the output (that was my original idea and why we have a CmdError, but I was not doing that on the tests, sorry for that).

@i4ki for showing the cmd output of errors n tests, what about something like this ?
https://github.com/madlambda/benchcheck/pull/8
Example of how the error looks now:
https://github.com/madlambda/benchcheck/runs/6247375851?check_suite_focus=true#step:5:9

cool! I like this way as well.

old:
goos: linux
goarch: amd64
cpu: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
BenchmarkEncode-12         	11406358	       100.2 ns/op
BenchmarkStripe-12<PHONE_NUMBER>	         0.2726 ns/op
BenchmarkInterleaves-12    	303347204	         3.969 ns/op
PASS

new:
goos: linux
goarch: amd64
cpu: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
BenchmarkEncode-12              	18098190	        61.79 ns/op
BenchmarkEncodeFixedPoint-12    	30849720	        35.11 ns/op
BenchmarkDecode-12              	70118866	        16.54 ns/op
BenchmarkStripe-12<PHONE_NUMBER>	         0.2554 ns/op
BenchmarkInterleaves-12         	303250658	         3.949 ns/op
PASS
ok<EMAIL_ADDRESS>5.380s

results from my old geohash library (first commit versus optimized in the master).
just sharing maybe to use as testcase.


[TreeView] Don't move focus when pressing a modifier key + letter

Fixes #20243
This PR prevents the "focus by first character" functionality from running when the user has pressed a combination of a modifier key (Ctrl, Cmd or Shift) + letter. It fixes the bug where the focus was changing when copying an item's text with Ctrl + C.

[x] I have followed (at least) the PR section of the contributing guide.

@m4theushw Well done 👌


Clarify docs and improve pool API thread-safety guarantees if possible

I suspect working with pool for specific pool can be thread-safe (even with VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT set but without actual synchronization) relative to working with other pools and general API. E.g. I allocate pool with maxBlockCount == minBlockCount for each specific worker thread and use it in conjunction with dedicated (per thread) VkQueue. Can it be "isolated" from other stuff if I do not use any "global" API functions (like statistics)? Is it currently true or is it close to true and only requires minor changes in vk_mem_alloc.h code?

I am sorry, but with VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT flag, using VMA functions is not thread-safe, and using separate custom pools is not exception. Pools are not completely separate. They need to synchronize, for example, to update global statistics about the number of memory blocks, allocations, or bytes used.
Is the performance overhead of thread synchronization really a problem for you that you measured? I doubt it could be a problem considering that GPU memory allocations are heavy operations that should not be performed too often.

This is not a problem in particular case, but what I talking about is a possible improvement: I think global statistics on separate pool can be sacrificed in favor of thread individual thread safety of using separate memory pool.
I always can make multiple allocators with unique thread affinity, but overhead may be much greater then in hypotetical case, when thread safety guaranteed by library for separate pools.


Fix: sg_uninit_pipeline / sg_init_pipeline pair does not work reliably in OpenGL

The following pattern will result in sokol_gfx failing to apply its changes to OpenGL state:
sg_uninit_pipeline(pip);

// <... any amount of code, *except* sg_apply_pipeline ...>

sg_init_pipeline(pip, &(sg_pipeline_desc){...});
sg_apply_pipeline(pip); // BUG: actually a no-op, and leaves state unchanged

It only happens if both of the following conditions hold:

The uninited pipeline was the last-applied pipeline.
No other call to sg_apply_pipeline was made in-between.

Problem
The problem is that the following branch will be false in _sg_gl_apply_pipeline (due to pipeline ID reuse), short-circuiting the entirety of the function; thus, the new pipeline will not actually be applied:
if ((_sg.gl.cache.cur_pipeline != pip) || (_sg.gl.cache.cur_pipeline_id.id != pip->slot.id)) {

Fix
The fix is to reset the cached pipeline ID if the pipeline being uninitialized is currently applied. See attached commit.
Workaround
(included just in case somebody needs a quick & dirty fix)
Add a sg_reset_state_cache(); call between sg_uninit_pipeline(...) and sg_init_pipeline(...). Since this invalidates the entire cache, the next pipeline application will be applied correctly, regardless of ID.

Good catch, it's likely that a similar problem can also happen with the other resource types, I'll need to put aside time for going through all the backends.

Good catch, it's likely that a similar problem can also happen with the other resource types, I'll need to put aside time for going through all the backends.

I had a quick check of other GL resource types, and they seemed fine. E.g. the shader is invalidated here: https://github.com/floooh/sokol/blob/master/sokol_gfx.h#L6525
But it is quite possible that I missed something. I also didn't check other backends.

Ok merged, many thanks :)


Theme: allow selective theme definitions

Currently (2c4bbfa), it's all or nothing when it comes to theming, except with config.themes.background.
This PR extends that selective defaulting to all the options.
This also zips the outputs, ensuring there's always a Color for every entry (useful for Debug).
In summary, it lets you change the color for that one thing without needing to set colors for all things.

Nifty! I'm usually not a fan of macros, in favor of readability, but this is pretty straightforward. Maybe I'm missing something, but what's the purpose of the zip function? It seems redundant since the getters for each color already return the default Color if that color is None.
Each color can be none if either no custom theme was specified, or if it wasn't specified in the config. Either way, it's covered by the getter?

It's clearer when you mix-in #77 to see the active theme information.
Instead of None-s all over when you skip definitions in your config file.
I know, it's a little redundant to have method calls that return values or defaults and still have a zip method
Here's how it's laid out in my mind.

If there is no theme section in the config file, serde uses <Theme as Default>::default() which as expected, returns "defined" defaults.
If an entry is missing, serde reads this as None for not being defined.
zip() creates a fully defined instance of the Theme struct based on items from the config or the defaults.
We could end here, and there would be no issue but we also need to keep those helper methods because the colors are Option-s and we would still need to unwrap.

A resolution to this might be using a private struct for the Option<Color> entries from the config theme definitions and a public one with just the Color-s pre-zipped with the defaults.
I just thought I'd get this in to get some feedback.

Ahh, that makes sense. I'm not really sure how necessary #77 is as it doesn't tell you anything that the theme in config isn't already defined as. We've already validated that the theme is built correctly before pushing this out.
SHOW_DEBUG and DEBUG_MOUSE are useful to reference at runtime while developing, but #77 really wont be. I'd prefer to drop #77 and remove Debug and zip as it doesn't really have any value without #77.

Closed #77!

Thanks! I'll get the merged and back-merged into the candlestick PR once that is all finalized.


[$500] Member count is not immediately when adding using mentioning the email

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.3.95-5
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @quinthar
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1699163083642489
Action Performed:

Open app
Go to a room created
Invite a member using mentioning the email
Click on the header and observe the member count

Expected Result:
Members count should update immediately
Actual Result:
Members count does not update immediately and updates after a page refresh
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/38435837/e564eb20-a844-4448-8788-c2071e8afcfc

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01acde2e6a288c1533
Upwork Job ID:<PHONE_NUMBER>034038784
Last Price Increase: 2023-11-05

Contact Me! I can solve this problem.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Members count in details page does not update immediately after inviting a user through @ mention, need to refresh.
What is the root cause of that problem?
After digging into the issue a bit, I realized there's only one place in the entire app that calls inviteToRoom, which is on the RoomInvitePage. From the attached video, the invitation seems to be performed after an at-mention is submitted, I checked the Report.addAction function and its dependencies, and I don't see the invitation being explicitly sent from the frontend, which leads me to think the action is being performed in the backend while submitting a comment and the frontend cached data (assuming your frontend data is cached using react-native-onyx) is not getting invalidated correctly
https://github.com/Expensify/App/blob/main/src/pages/ReportDetailsPage.js#L77 this is the line of code that gets the participantIds, it is memoized.
Solution 1
My first attempt would be to remove this memoization, since the function is fairly simple and removing memoization will not have an effect on the performance of the page.
Solution 3
second attempt would be to try to understand the data returned from the backend and learn how onyx works in order to update the data dynamically.
Solution 3
third, when submitting the comment, identify if the comment contains an @ mention, and if the email being mentioned is already a member of the group, if not, issue a refetch of the reports data. (this is the least favorable method)
Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~012f56e887fe323f15

@narefyev91 @m-natarajan  Is this still reproducible ?  I am not able to reproduce this issue on  staging or local dev.

Could not reproduce on latest main
https://github.com/Expensify/App/assets/28352309/f703a649-a862-443c-b204-c7bc0f91a075

Still not able to reproduce on latest main (using staging server - option on - in user profile)
https://github.com/Expensify/App/assets/28352309/9378d0d2-a0cd-4aca-b954-c0777faa53a7

I can't repro this either - should we close?

I can't repro this either - should we close?

I think so


Documentation for managing DOM manually

This is just a tracking issue for the docs and changes to framework that make it simpler to manage the DOM manually in Volt. @ryanstout is already working on this. The changes (and documentation) will make it simpler to use things like external JS libraries that are not included in Opal/Volt by default (e.g. JQuery UI).

This has been added.  Thanks!


StackOverflowError in MetricAgeOffIterator

If data is present/ingested that should be aged off, you can get a SOE during compaction or at scan time due to the recursive call chain in the MetricAgeOffIterator:
seekPastAgedOffMetricData(line 161)
seekIfNecessary(line 87)
seek(line 180)

This occurred due to an error on the client where it was sending data at second precision instead of millisecond precision thus creating very old data. I wonder if the solution here is to drop data if it's date/time is before the configured age-off setting for the metric.

Maybe in this case, an interval drop rule would be more successful via it discretizes the time interval of the segment at a specific granularity to generate a table of set time points.


Drop hardcoded port tcp/2376 from OpenStack driver

I was reading https://github.com/docker/machine/issues/2820 and definitely this hardcode must be removed from driver/openstack:
https://github.com/docker/machine/blob/master/drivers/openstack/openstack.go#L291
Though, not clear yet from where to load the variable. It depends on Machine's roadmap.

@dgageot can you please add label OpenStack

Done

https://github.com/docker/machine/issues/3361


Samba Backup stopped working

Samba backup was working just fine, then in July is stopped backing up. Can't tell why. I literally de/reinstalled it and get the same result. Here's the YAML:
`host: <IP_ADDRESS>
share: MosquitoShare
target_dir: snapshots
username: jim
password: jrs243795
keep_local: "5"
keep_remote: "10"
trigger_time: "00:23"
trigger_days:

Mon
Tue
Wed
Thu
Fri
Sat
Sun
exclude_addons: []
exclude_folders: []
log_level: debug
`

Here's the log. (I set the log level to debug):

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/00-banner.sh
Add-on: Samba Backup
Create backups and store them on a Samba share
Add-on version: 5.1.2
You are running the latest version of this add-on.
System: Home Assistant OS 9.0  (aarch64 / raspberrypi4-64)
Home Assistant Core: 2022.9.7
Home Assistant Supervisor: 2022.09.1
Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.
cont-init: info: /etc/cont-init.d/00-banner.sh exited 0
cont-init: info: running /etc/cont-init.d/01-log-level.sh
Log level is set to DEBUG
cont-init: info: /etc/cont-init.d/01-log-level.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[22-09-30 20:56:31] INFO: ---------------------------------------------------
[22-09-30 20:56:31] INFO: Host/Share: <IP_ADDRESS>/MosquitoShare
[22-09-30 20:56:31] INFO: Target directory: snapshots
[22-09-30 20:56:31] INFO: Keep local/remote: 5/10
[22-09-30 20:56:31] INFO: Trigger time: 00:23
[22-09-30 20:56:31] INFO: Trigger days: Mon Tue Wed Thu Fri Sat Sun
[22-09-30 20:56:31] INFO: ---------------------------------------------------
[22-09-30 20:56:31] DEBUG: Backups local: 20
[22-09-30 20:56:31] DEBUG: Backups remote: 20
[22-09-30 20:56:31] DEBUG: Total backups succeeded: 451
[22-09-30 20:56:31] DEBUG: Total backups failed: 17
[22-09-30 20:56:31] DEBUG: Last backup: 2022-08-18 03:24
[22-09-30 20:56:32] DEBUG: Posting sensor data to API at /core/api/states/sensor.samba_backup
[22-09-30 20:56:32] DEBUG: API Status: 200
[22-09-30 20:56:32] DEBUG: API Response: {"entity_id":"sensor.samba_backup","state":"IDLE","attributes":{"friendly_name":"Samba Backup","backups_local":"20","backups_remote":"20","total_backups_succeeded":"451","total_backups_failed":"17","last_backup":"2022-08-18 03:24"},"last_changed":"2022-09-30T07:23:23.191380+00:00","last_updated":"2022-09-30T07:23:23.191380+00:00","context":{"id":"01GE6MEJNQMX5YJ9V86EAAR8KG","parent_id":null,"user_id":"c505b8ebe78244ee92fe2eb1e4dbf7a3"}}
[22-09-30 20:56:32] DEBUG: putting file samba-tmp123 as \snapshots\samba-tmp123 (0.0 kb/s) (average 0.0 kb/s)
[22-09-30 20:56:32] INFO: Samba Backup started successfully
[22-09-30 20:56:32] DEBUG: Starting stdin listener ...
[22-09-30 20:56:32] DEBUG: Starting main loop ...
[22-10-01 00:23:35] INFO: Backup running ...
[22-10-01 00:23:35] DEBUG: Posting sensor data to API at /core/api/states/sensor.samba_backup
[22-10-01 00:23:35] DEBUG: API Status: 200
[22-10-01 00:23:35] DEBUG: API Response: {"entity_id":"sensor.samba_backup","state":"RUNNING","attributes":{"friendly_name":"Samba Backup","backups_local":"20","backups_remote":"20","total_backups_succeeded":"451","total_backups_failed":"17","last_backup":"2022-08-18 03:24"},"last_changed":"2022-10-01T04:23:35.408477+00:00","last_updated":"2022-10-01T04:23:35.408477+00:00","context":{"id":"01GE8WJ2QGK6B7SM8FNZNS5TM0","parent_id":null,"user_id":"c505b8ebe78244ee92fe2eb1e4dbf7a3"}}
[22-10-01 00:23:35] INFO: Creating backup "Samba Backup 2022-10-01 00:23"
parse error: Invalid numeric literal at line 1, column 5
[22-10-01 03:23:36] DEBUG: Posting sensor data to API at /core/api/states/sensor.samba_backup
[22-10-01 03:23:36] DEBUG: API Status: 200
[22-10-01 03:23:36] DEBUG: API Response: {"entity_id":"sensor.samba_backup","state":"FAILED","attributes":{"friendly_name":"Samba Backup","backups_local":"21","backups_remote":"20","total_backups_succeeded":"451","total_backups_failed":"18","last_backup":"2022-08-18 03:24"},"last_changed":"2022-10-01T07:23:36.256115+00:00","last_updated":"2022-10-01T07:23:36.256115+00:00","context":{"id":"01GE96VPE091ERV0WSDRFYS4BV","parent_id":null,"user_id":"c505b8ebe78244ee92fe2eb1e4dbf7a3"}}
[22-10-01 03:23:46] DEBUG: Posting sensor data to API at /core/api/states/sensor.samba_backup
[22-10-01 03:23:46] DEBUG: API Status: 200
[22-10-01 03:23:46] DEBUG: API Response: {"entity_id":"sensor.samba_backup","state":"IDLE","attributes":{"friendly_name":"Samba Backup","backups_local":"21","backups_remote":"20","total_backups_succeeded":"451","total_backups_failed":"18","last_backup":"2022-08-18 03:24"},"last_changed":"2022-10-01T07:23:46.509707+00:00","last_updated":"2022-10-01T07:23:46.509707+00:00","context":{"id":"01GE96W0EDFHRWYY35JDXFW7RN","parent_id":null,"user_id":"c505b8ebe78244ee92fe2eb1e4dbf7a3"}}
[22-10-01 03:23:46] INFO: Backup finished

This is a duplicate of #65 and #74. You have to make sure that the backup finishes in less than 3 hours. Please check out the mentioned issues for more details.
I'm closing this issue since it is already tracked in this project.


Disable build tests when install bpftrace.

Disable build tests when install bpftrace to address this error
CMake Error at
/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146
(message):
  Please install the bcc library package, which is required.  Depending
on
  your distro, it may be called bpfcclib or bcclib (Ubuntu), bcc-devel
  (Fedora), or something else.  If unavailable, install bcc from source
  (github.com/iovisor/bcc).  (missing: LIBBCC_LIBRARIES
LIBBCC_INCLUDE_DIRS)
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393
(_FPHSA_FAILURE_MESSAGE)
  cmake/FindLibBcc.cmake:72 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:86 (find_package)

Checklist

[x] Language changes are updated in docs/reference_guide.md
[x] User-visible and non-trivial changes updated in CHANGELOG.md
[x] The new behaviour is covered by tests

@danobi would you like to take a look this minor changes?

I'm a bit confused, how does this fix the error you see? We need bcc for a lot of code loading and uprobe/elf handling, without it it just won't work. Disabling tests shouldn't remove that dependency

Yeah, I'm not sure how disabling testing fixing the missing bcc dependency.
BTW, probably update all the other cmake call sites in that doc too to have -DBUILD_TESTING=OFF to make it consistent.

@fbs @danobi sry, I paste wrong error, error is missing GTEST

If gtest is missing you should install the libs or run with VENDOR_GTEST=1, not building tests is not recommended


Error with phonegap build while compiling for ios

Description
Hi, trying to compile on phone gap build after upgrading to CLI 9.0.0 and ios cordova 5.0.1, the compilation crash for ios. But works for Android.

Repro Steps
Please list the steps used to reproduce your issue.

Connect to phonegap build
Try to compile for ios

Details
"plugman-151 install --platform ios --project /project --plugin cordova-plugin-appcenter-push --nohooks=.": Fetching plugin "cordova-plugin-appcenter-push" via npm
Installing "cordova-plugin-appcenter-push" at "0.4.0" for ios
Fetching plugin<EMAIL_ADDRESS>via npm
Installing "cordova-plugin-appcenter-shared" at "0.4.0" for ios
"framework" tag with type "podspec" is deprecated and will be removed. Please use the "podspec" tag.
Running command: pod install --verbose
Failed to install 'cordova-plugin-appcenter-shared': Error: pod: Command failed with exit code 1
    at ChildProcess.whenDone (/private/project/cordova/node_modules/cordova-common/src/superspawn.js:135:23)
    at ChildProcess.emit (events.js:182:13)
    at maybeClose (internal/child_process.js:962:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
Failed to install 'cordova-plugin-appcenter-push': Error: pod: Command failed with exit code 1
    at ChildProcess.whenDone (/private/project/cordova/node_modules/cordova-common/src/superspawn.js:135:23)
    at ChildProcess.emit (events.js:182:13)
    at maybeClose (internal/child_process.js:962:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
pod: Command failed with exit code 1

Which SDK version are you using?

0.4.0 (shared)

Which OS version did you experience the issue on?

iOS

What version of Cordova, Cordova platforms, Cocoapods, and Ruby are you using?

Cordova 9.0.0 - cordova ios 5.0.1

What device version did you see this error on?  Were you using a simulator or a physical device?

Iphone 8

What third party plugins are you using?

com.telerik.plugins.nativepagetransitions 0.6.5 "Native Page Transitions"
cordova-background-geolocation 3.2.1 "BackgroundGeolocation"
cordova-plugin-actionsheet 2.3.3 "ActionSheet"
cordova-plugin-appcenter-analytics 0.4.0 "App Center Analytics for Cordova"
cordova-plugin-appcenter-crashes 0.4.0 "App Center Crashes for Cordova"
cordova-plugin-appcenter-push 0.4.0 "App Center Push for Cordova"
cordova-plugin-appcenter-shared 0.4.0 "App Center shared code for Cordova"
cordova-plugin-background-fetch 5.6.0 "CDVBackgroundFetch"
cordova-plugin-badge 0.8.8 "Badge"
cordova-plugin-cocoalumberjack 0.0.4 "CocoaLumberjack"
cordova-plugin-device 2.0.3 "Device"
cordova-plugin-dialogs 2.0.2 "Notification"
cordova-plugin-file 6.0.2 "File"
cordova-plugin-file-transfer 1.7.1 "File Transfer"
cordova-plugin-globalization 1.11.0 "Globalization"
cordova-plugin-googlemaps 2.6.2 "cordova-plugin-googlemaps"
cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard"
cordova-plugin-ios-disableshaketoedit 1.0.0 "iOS Disable Shake to Edit"
cordova-plugin-local-notification 0.9.0-beta.3 "LocalNotification"
cordova-plugin-splashscreen 5.0.3 "Splashscreen"
cordova-plugin-statusbar 2.4.3 "StatusBar"
cordova-plugin-whitelist 1.3.4 "Whitelist"
cordova-plugin-zip 3.1.0 "cordova-plugin-zip"
uk.co.workingedge.phonegap.plugin.launchnavigator 5.0.4 "Launch Navigator"

Hi there @Perh0rd ! As we already mentioned in the previous issue, this is not reproduced on our side. In order to tell you what happened, we need to see either the produced Podfile or the output from pod install, as this is clearly what failed the installation.

Hi, we haven't heard from you in a while so I'm closing this issue. Please reopen/comment if you have more questions or run into this again.

Hi,
We cannot reproduce the pod install it's located on phonegap build into the cloud.

Hi @Perh0rd, we are not able to reproduce this locally so without any additional info I'm afraid we can't help much.

Make an agreement with phone to make this work?

@Perh0rd What I mean is we need more logs than you are getting from phonegap. Is there a way to get more detailed logs related to iOS (Some setting in phonegap or so - I'm not quite familiar with this system), so that we could see what happens at pod install stage?
I'm afraid a screen session won't help much in this case - we won't see anything new there.

I will also repeat here that's it's crucial that phonegap uses the lates cordova-ios (5 and higher) and cli (9 and higher). Otherwise it will fail with this message for sure.

Hi, phonegap uses the last cli and ios version.
I will give you the detail of the log on next build I'm getting ready to put some code in production, I'm busy, But I'll come back here with more detail.
Thank you for your investigation.

No problem @Perh0rd, I will wait for your details, hope we will be able to get the issue resolved.

I got the same error locally. Running pod install manually yields:
custoMac:cordova vbraun$ cd platforms/ios/
custoMac:ios vbraun$ pod install
Analyzing dependencies
[!] CocoaPods could not find compatible versions for pod "AppCenter":
  In Podfile:
    AppCenter (~> 2.5.0)

None of your spec sources contain a spec satisfying the dependency: `AppCenter (~> 2.5.0)`.

You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.

Note: as of CocoaPods 1.0, `pod repo update` does not happen on `pod install` by default.

Manually running pod repo update slooooowly downloads 300MiB of cocoapods. After that the cordova-plugin-appcenter-.* install works.


Allow dynamic callback_url and client_class class attributes

This is an old PR that have never been merged into base repository due to staling, requested here from an user.

Callback urls require being absolute, which is pretty cumbersome especially when dealing with different environments (dev/staging/production for instance). Being able to provide dynamic callbacks url hence allows for things like this:
class GitHubLogin(SocialLoginView):
    adapter_class = github_views.GitHubOAuth2Adapter
    client_class = OAuth2Client

    # use the same callback url as defined in your GitHub app, this url must be
    # absolute
    def get_callback_url(self):
        return self.request.build_absolute_uri(reverse('github_callback'))

urlpatterns = [
    ...,
    path('auth/github/', GitHubLogin.as_view()),
    path('auth/github/callback/', github_callback, name='github_callback')
]

Which really comes in handy in multiple environments.
I also changed client_class the same way for code homogeneity concerns (even though I did not have to use it in my own projects).
The "basic way" of declaring these will of course still work:
class GitHubLogin(SocialLoginView):
    adapter_class = github_views.GitHubOAuth2Adapter
    client_class = OAuth2Client
    callback_url = 'http://localhost:8000/auth/github/callback/'

I just did something very similar to this approach, but only for the callback_url and through the adapter_class get_callback_url method already defined. Ended up with something like this
class GithubLoginAdapter(GitHubOAuth2Adapter):
    def get_callback_url(self, request, app):
        return request.build_absolute_uri(reverse("github_callback"))

class GithubLogin(SocialLoginView):
    serializer_class = GithubLoginSerializer # Here I call `adapter.get_callback_url(request, app)`
    adapter_class = GithubLoginAdapter
    client_class = OAuth2Client

I think both approaches would work and it would be great to have something like this.

Is there any way to add callback url for the Facebook?

+1 for the requirement. The callback url should be defined based on request as well. So, If I am testing from local frontend then the deployed api would be able to configure callback_url based on origin of request.


GNU errors to appear in problems

It'd be cool, that when running commands in pase, if standard error has lines that match the standard GNU Errors format then they should show up in the problems tab like it does for ILE compiles.
https://www.gnu.org/prep/standards/html_node/Errors.html
[  3%] Building C object tests/unit/CMakeFiles/sentry_fuzz_json.dir/__/__/src/path/sentry_path_unix.c.o
In file included from /home/calvin/reporting/sentry-native/src/sentry_path.h:6:0,
                 from /home/calvin/reporting/sentry-native/src/path/sentry_path_unix.c:3:
/QOpenSys/pkgs/include/stdio.h:5:2: warning: #include_next is a GCC extension
 #include_next <stdio.h>
  ^~~~~~~~~~~~
In file included from /home/calvin/reporting/sentry-native/src/path/sentry_path_unix.c:14:0:
/QOpenSys/pkgs/include/sys/file.h:6:2: warning: #include_next is a GCC extension
 #include_next <sys/file.h>
  ^~~~~~~~~~~~
/home/calvin/reporting/sentry-native/src/path/sentry_path_unix.c: In function 'sentry__path_remove':
/home/calvin/reporting/sentry-native/src/path/sentry_path_unix.c:300:15: warning: the comparison will always evaluate as 'true' for the address of 'status' will never be NULL [-Waddress]
         if (Y != 0) {                                                          \
               ^
/home/calvin/reporting/sentry-native/src/path/sentry_path_unix.c:310:9: note: in expansion of macro 'EINTR_RETRY'
         EINTR_RETRY(unlink(path->path), &status);
         ^~~~~~~~~~~
/home/calvin/reporting/sentry-native/src/path/sentry_path_unix.c:300:15: warning: the comparison will always evaluate as 'true' for the address of 'status' will never be NULL [-Waddress]
         if (Y != 0) {                                                          \
               ^
/home/calvin/reporting/sentry-native/src/path/sentry_path_unix.c:315:9: note: in expansion of macro 'EINTR_RETRY'
         EINTR_RETRY(rmdir(path->path), &status);
         ^~~~~~~~~~~
/home/calvin/reporting/sentry-native/src/path/sentry_path_unix.c: At top level:
cc1: warning: unrecognized command line option '-Wno-gnu-include-next'

Only looks for lines with more than 3 colons
Note the warning and note values. Need to find a concrete list of those possible values.

error is also possible.

https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format


Make ethereum/solidity CI use EDR stack traces tests instead of Hardhat

The ethereum/solidity repo's CI uses the Hardhat repository to run our stack traces tests with their nightly build. After we finish this migration, we are going to delete those tests from the Hardhat repo, but before doing that we should make sure that they adapted their CI to use EDR's stack traces tests.

Should be closed by https://github.com/ethereum/solidity/pull/15461

There is a follow-up task: https://github.com/ethereum/solidity/pull/15461#pullrequestreview-2341600997


fix: removed emotion from app-preact

Removed preact-emotion from app-preact template due to emotions dropping of support for preact.
This allows the template app-preact to run again, although now it is missing a css-in-js library which I believe is very helpful to have in such a template, I will experiment and try to add another one in the future.
This solves a part of #19

+1 for merging this and then figuring out a CSS story in a separate PR.
For that work, I've used https://github.com/lukejacksonn/csz in the past with preact and it's worked great.  i'd recommend trying that out, it works a lot like emotion but doesn't need webpack, etc.

Released as v2.0.1 https://github.com/pikapkg/init/releases/tag/v2.0.1


Not able to create react native module with older version of react native

I want to create react native module with RN 0.70.2 but it always creates with latest version of RN

@brodybits  @frostney - Please let me know If you have any suggestion on this.

I have already documented how to select which React Native version to use.
In case of any further issues a minimal reproduction is needed. But I may
need several months to investigate due to some other commitments.
Message ID: <brodybits/create-react-native-module/issues/490/1559027873@

github.com>

@brodybits : Where is this documented?


Comment handling in select statement history

does work first time

but comments cannot be brought back after that:

same with comment before the comma

same or similar behaviour
It seems that newlines are not preserved in the history (but are meaningful in combination with comments)

Wrong place, moved to dderl


Add termination options to cooler balance

e.g. --on-fail: error, quiet, store, store-nan, retry with higher tolerance
Divergence and slow convergence cases should probably be treated differently. Most important is to allow for a quiet mode that doesn't raise an exception.

Proposed options are now:

final - store the final bias array, regardless of state
nan - store a bias array of NaNs
abort - fail gracefully; nothing gets stored; exit code 0.

And later revised to, hopefully more obvious:

store_final
store_nan
discard
error


remove build binaries in workflow and add codecov badge

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind bug
/kind documentation
/kind enhancement
/kind good-first-issue
/kind feature
/kind question
/kind design
/sig ai
/sig iot
/sig network
/sig storage
/sig storage

/kind enhancement
What this PR does / why we need it:

add codecov badge
remove build binaries step in workflow because e2e-tests step has already included this work.

Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

Does this PR introduce a user-facing change?

other Note

/lgtm


Axis labels

Addresses #9 by providing: --xlabel and --ylabel options for dosplot; --ylabel and --dos-label for bandplot.
--dos-label looks a bit cramped right next to the legend there, so I'm happy to leave None as the default. This seems most useful with --total-only, if only there was a way to disable the legend.

Thanks again for this @ajjackson.
One note is that I think dos_label should be on the x-axis for the combined band structure and DOS plots?

Fixed! "Arb. units" looks bad though, it collides with the special point labels. It also looks silly when scaled down, so not sure what to do other than use "DOS" instead.

Happy for the default to be DOS tbh.


Global insertion overwrites local variable values

Describe the bug
When using the global replacement feature, it also affects variables of the same name that are declared locally. I'm guessing something in inline_globals.rs needs to check the scope. I had a look around the code but I'm not sure where to get the scope information necessary to achieve this. Do I have to track it myself or is there already scope tracking available somewhere that can be reused?
Input code
var __DEBUG__ = "hi";
console.log(__DEBUG__);

Config
{
  "jsc": {
    "transform": {
      "optimizer": {
	"globals": {
          "vars": {
            "__DEBUG__": "true"
          }
        }
      }
    }
  }
}

Expected behavior
__DEBUG__ should not be replaced with the global value in this example because there is a local variable declaration already.
Version
The version of @swc/core: 1.2.40

I ended up building a DeclCollector pass that can be run prior to the inline_globals pass, which collects all declarations into a hash map that can then be checked to see if a referenced identifier points to an existing declaration or not. It must be done in a separate pass because of the possibility of variable hoisting (declarations don't have to be before their use). Let me know if there is a better way of doing this that I'm just unaware of. 😄


Implement a websocket transfer the players within the same game from one page to another.

Duplicate task: https://github.com/sopra-fs23-group-05/Server/issues/208


Update path for web open_file

The file in web folder name is open_file.dart not open_file_safe.dart

can we merge this?


Add 'configurable' capability

Resolves #123

Thanks for this! Wanna update the docs too? :)

oh yes, I forgot the docs

please update from the master branch and then I can merge this.


fix: pageduty custom_details in payload

This change fixes the custom_details value in PagerDuty V2 API payloads.
Fixes #2477
Fixes #3218
Alertmanager PagerDuty configuration allows users to define details under pagerduty_configs:
[ details: { <string>: <tmpl_string>, ... } | default = {
  firing:       '{{ template "pagerduty.default.instances" .Alerts.Firing }}'
  resolved:     '{{ template "pagerduty.default.instances" .Alerts.Resolved }}'
  num_firing:   '{{ .Alerts.Firing | len }}'
  num_resolved: '{{ .Alerts.Resolved | len }}'
} ]

The internal Alertmanager configuration structure is defined as:
// PagerdutyConfig configures notifications via PagerDuty.
type PagerdutyConfig struct {
...
	Details        map[string]string `yaml:"details,omitempty" json:"details,omitempty"`
}

And the PagerDuty payload is defined as:
type pagerDutyPayload struct {
...
	CustomDetails map[string]string `json:"custom_details,omitempty"`

The current flow of configuration parsing and encoding is:

pagerduty_configs[].details are read from configuration as map[string]string
The details map values are parsed as text templates
The result is passed as custom_details, part of the JSON payload sent to PagerDuty API V2

Here is an example payload using .Alerts.Firing, which returns a list of currently firing alert objects in this group. Documented here: https://prometheus.io/docs/alerting/latest/notifications/#data This results in a payload like below:
{
  "client": "Alertmanager",
...
  "custom_details": {
    "firing": "Labels:
 - alertname = Server_Down
...
Annotations:
 - summary = Server is down
...
"
    }
}

Using map[string]string in payloads cause the rendered YAML templates to be encoded as JSON strings. This is undesirable in most cases as the end-user might expect a nested JSON object which is machine readable/parsable by it's fields.
This change:

adds logic to unmarshall details values as YAML with fallback to string
uses map[string]interface{} to encode custom_details to JSON
requires gopkg.in/yaml.v3, see https://github.com/go-yaml/yaml/issues/591
does not change existing yaml.v2 dependency, see https://github.com/prometheus/alertmanager/pull/3322

I don't think it is intentional that the default template is valid YAML, it's just meant to be plain text. I'd even argue it's meant to be Markdown. If I understand the use case, you would like to be able to add structured objects (with nesting) to the custom_details field?

Correct, our teams prefer that so they can add logic on PagerDuty side depending on the field values.
I tried to keep the logic generic so it would resolve the 2 referenced issues as well.

Have you considered changing Details in the configuration file from map[string]string to map[string]interface{}?
// PagerdutyConfig configures notifications via PagerDuty.
type PagerdutyConfig struct {
...
	Details        map[string]interface{} `yaml:"details,omitempty" json:"details,omitempty"`
}

Would this avoid having to embed YAML inside existing YAML? I haven't checked if this will affect existing configurations, but  it would be good to understand if this is a better option.

Have you considered changing Details in the configuration file from map[string]string to map[string]interface{}?

That was the initial approach I though about. It will create a free style format and would require checking the interfaces one by one as they can be either maps or templated strings. I'm open to experiment with it.


Ftarget.txt is incorrect

When I use libtiff to have a try,I set location manually and as the rule.But I found the Ftarget.txt is incorrect,because I choose an alone function,but it's always main.I don't know why.

The problem is that AFLGo's LLVM-pass cannot identify the basic block corresponding to the specified program location (and therefore the function containing that basic block). This can have two reasons:

the format how you specify the target is incorrect (e.g., "file.c:123" would be correct)
LLVM may not carry line number information for all instructions.
LLVM encodes the location (file / line number) corresponding to an instruction in a basic block. We access the location information of an instruction via getDebugLoc (https://github.com/aflgo/aflgo/blob/master/llvm_mode/afl-llvm-pass.so.cc#L288). It seems not all instruction carry such debug information.


Yaml syntax highlighting

First of all I commend you for taking the time to write and maintain this package & am very grateful for the effort.
Now, the issue: before updating to v. 0.0.12, I had no YAML syntax highlighting whatsoever. After the update, I have this:

For comparison, under GMF, I have this:

I'm running Atom 1.0.19 on Ubuntu 15.04

Hi @baurigae, thank you, and you're welcome.
About your issue, this explains one of the peculiarities I found in language-gfm. It allowed --- as a delimiter for something, if I remember correctly. Do you per change know where this markup comes from? Where I can find some documentation on it?
For now, I would suggest you use fenced code blocks. Github has some trouble displaying Markdown in Markdown, so I'll try describe it. Fenced code blocks use three backticks (again, can't use markdown to write markdown) or ~~~ as delimiters (before and after) and you specify a language by adding it to the first: for example ~~~markdown
The example below shows the markdown for your yaml, but ignore the backslashes. I had to put them in to display the backticks.
/```yaml
layout: post
title: Title
tags: [one,two,testing]
image:
  credit:
  etc: "..."
/```

Let me know if this works out for you.

And thanks for being the first unofficial user! : )

I was thinking about the same issue -- jekyll, and pandoc, use yaml to encode some metadata. Maybe the syntax for fenced code blocks can be adapted to include the language.yaml grammar?

The issue is that --- is considered a horizontal-rule and (in the same sense as with setext headers) I'm unable to detect what comes after. So any implementation will be a bit sketchy.
There is something in language-gfm that intends to support this, but I'd need some examples to test that it doesn't interfere with anything else. If you can provide those, I'll take a jab at it.
  {
    'begin': '\\A---$'
    'end': '^(---|\\.\\.\\.)$'
    'captures':
      '0':
        'name': 'comment.hr.gfm'
    'name': 'front-matter.yaml.gfm'
    'patterns': [
      {
        'include': 'source.yaml'
      }
    ]
  }

Also, it mentions front-matter, any idea what that refers to?

Yes, the front-matter is the bit of YAML at the top of the document. Actually, maybe that can help: the front-matter is supposed to start on the very first line.
Here are to examples:
---
front: matter
...

This is a paragraph

---

then another one

and
---
front: matter
---

This is a paragraph

---

then another one

---

and a third

Ok thanks. I'm really unfamiliar with YAML. Could you Google me some official documentation/specs on this? True, I'm a little lazy, but you probably better know what I need, than I do.

Here's jekyll -- http://jekyllrb.com/docs/frontmatter/
and pandoc -- http://pandoc.org/README.html#epub-metadata

Thanks, I'll look into it.

Support for yaml-front-matter added to master-branch. I'll release an update later this weekend.

Sorry for the very late reply - well all I have to say at this point is thanks very much for fixing this!

@baurigae Not a problem. Good to know that your problem is solved.
@tpoisot Can you confirm this for your documents too?

Yes, working great. :+1:


Vim 8.0.1129 fails to compile: make[1]: *** No rule to make target 'terminal.c', needed by 'objects/terminal.o'.  Stop.

Hi,
On Arch Linux and Gentoo Linux Vim fails to compile with the error:
make[1]: *** No rule to make target 'terminal.c', needed by 'objects/terminal.o'.  Stop.

full log is here. Vim 8.0.1127 built fine, however.
Thanks for your time

https://github.com/vim/vim/commit/37c64c78fd87e086b5a945ad7032787c274e2dcb#diff-f83301fc7928a73575f006ec59a872b6
It seems like terminal.c has disappeared in v8.0.1129

Concur with yowcow.

So how do I get Vim to build?

this was just fixed.

Oh good.

BTW: in the meantime you could have done something like this.
checkout terminal.c from the previous commit (do that in the src directory):
git show v8.0.1128\:src/terminal.c > terminal.c
You could even put that in your Makefile (I did so to fix this termporary):
diff --git a/src/Makefile b/src/Makefile
index db9e72508..abf4d257c 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1523,6 +1523,9 @@ DEST_MAN_RU_U = $(DEST_MAN_TOP)/ru.UTF-8$(MAN1DIR)

 TAGS_INCL = *.h

+terminal.c:
+       git show v8.0.1128\:src/terminal.c > terminal.c
+
 BASIC_SRC = \
        arabic.c \
        blowfish.c \

I build Vim from the source tarballs so this solution wouldn't be quite so easy to implement, I'd have to tweak my ebuilds and PKGBUILDs quite a bit.


Process GENOMAD (1) terminated with an error exit status (2)

Hi everyone!
I encountered this error:
ERROR ~ Error executing process > 'GENOMAD (1)'
Caused by:
Process GENOMAD (1) terminated with an error exit status (2)
Command executed:
genomad end-to-end         --threads 1         5kb_contigs.fasta         genomad_out         /mnt/hdd3/andre/tools/mobilome-annotation-pipeline/genomad_db
This was the command i ran:
nextflow run ebi-metagenomics/mobilome-annotation-pipeline -r v2.0.1 --assembly ../17A_pilon.fasta --user_genes true --prot_gff metannotator_results/17A/functional_annotation/merged_gff/17A_annotations.gff --virify true --vir_gff results_virify/17A_pilon/08-final/gff/17A_pilon_virify.gff --vir_checkv results_virify/17A_pilon/07-checkv/*quality_summary.tsv --outdir mobilome_results --skip_crispr true --skip_amr true -profile docker --genomad_db /mnt/hdd3/andre/tools/mobilome-annotation-pipeline/genomad_db
It seems that it doesn't recognize the db, so i tried to install genomad locally and run it on the db that i've manually downloaded and extracted, and it works.
Thank you for making all these great tools and for the help

Hi @Andrewab9,
Apologies for the delay in our response. If you still have the .nextflow.log file could you please attach it to the ticket?.
Cheers

Hi @Andrewab9,
Apologies for the delay in our response. If you still have the .nextflow.log file could you please attach it to the ticket?.
Cheers

Hi mberacochea, thank you for your reply.
I've managed to modify some of the files to run genomad but this time it gives me the following error:
ERROR ~ Error executing process > 'DIAMOND (1)'
Caused by:
Path value cannot be empty
Tip: you can try to figure out what's wrong by changing to the process work dir and showing the script file named .command.sh
-- Check '.nextflow.log' file for details
.nextflow.log
Attached you can find the log.
This is the command i ran: nextflow run main.nf --assembly ../../s_aureus/fasta_pilon_2_run/17A_pilon.fasta --user_genes true --prot_gff /mnt/hdd3/andre/s_aureus/fasta_pilon_2_run/metannotator/metannotator_results/17A/functional_annotation/merged_gff/17A_annotations.gff --virify true --vir_gff ../../s_aureus/fasta_pilon_2_run/metannotator/results_virify/17A_pilon/08-final/gff/17A_pilon_virify.gff --vir_checkv ../../s_aureus/fasta_pilon_2_run/metannotator/results_virify/17A_pilon/07-checkv/*quality_summary.tsv --outdir ../../s_aureus/fasta_pilon_2_run/metannotator/17A_mobilome_2 --skip_crispr true --skip_amr true -profile docker --icefinder_sif singularity/icefinder-v1.0-local.sif

Hi @Andrewab9,
Apologies for the delay in our response. If you still have the .nextflow.log file could you please attach it to the ticket?.
Cheers

Hi @mberacochea, thank you for your reply.
I've managed to modify some of the files to run genomad but this time it gives me the following error:
ERROR ~ Error executing process > 'DIAMOND (1)'
Caused by:
Path value cannot be empty
Tip: you can try to figure out what's wrong by changing to the process work dir and showing the script file named .command.sh
-- Check '.nextflow.log' file for details
.nextflow.log
Attached you can find the log.
This is the command i ran: nextflow run main.nf --assembly ../../s_aureus/fasta_pilon_2_run/17A_pilon.fasta --user_genes true --prot_gff /mnt/hdd3/andre/s_aureus/fasta_pilon_2_run/metannotator/metannotator_results/17A/functional_annotation/merged_gff/17A_annotations.gff --virify true --vir_gff ../../s_aureus/fasta_pilon_2_run/metannotator/results_virify/17A_pilon/08-final/gff/17A_pilon_virify.gff --vir_checkv ../../s_aureus/fasta_pilon_2_run/metannotator/results_virify/17A_pilon/07-checkv/*quality_summary.tsv --outdir ../../s_aureus/fasta_pilon_2_run/metannotator/17A_mobilome_2 --skip_crispr true --skip_amr true -profile docker --icefinder_sif singularity/icefinder-v1.0-local.sif

You are missing one parameter, mobileog_db which should be downloaded and formatted -> https://github.com/EBI-Metagenomics/mobilome-annotation-pipeline?tab=readme-ov-file#install-and-dependencies


Botframework redux es6

sample demonstrating how BotFramework can be usefully combined with other JavaScript frameworks

https://haoluo12.visualstudio.com/botbuilder-redux a middleware for full Redux integration with botbuilder v4
https://haoluo12.visualstudio.com/botbuilder-redux-common has a sample that I got Redux Dev Tools working with the state


Issue while setting Text in TextBox with mixed languages content

Thank you for your great efforts on this, really appreciate it!
Describe the bug
I am trying to automate some actions in the Windows Command Prompt window (cmd.exe) and faced an issue while setting text that contains mixed languages. The control that I am trying to automate does not support Value pattern (see pics from the FlaUI Inspect) and looking into the code I see that it uses some fallback techniques. One of them is a keyboard input simulation and this is exactly the same technique used for this case as far as I understood.
So the problem is that when I am trying to set text with mixed language content, it produces some wrong characters.
In order to reproduce it, some additional languages must be installed on the computer (e.g. Cyrillic).
Code snippets
var cmdInfo = new ProcessStartInfo("cmd.exe")
{
    UseShellExecute = true
};

var cmdApp = Application.Launch(cmdInfo);

using var automation = new UIA3Automation();
var mainWindow = cmdApp.GetMainWindow(automation);
mainWindow.Focus();
Wait.UntilInputIsProcessed();

// change the keyboard language layout
Keyboard.TypeSimultaneously(VirtualKeyShort.SHIFT, VirtualKeyShort.ALT);

TextBox textBox = mainWindow.FindFirstDescendant(cf => cf.ByControlType(ControlType.Document)).AsTextBox();
if (textBox != null)
{
       // set the text with mixed languages content
       textBox.Text = "test тест בדיקה";
}

The code is attached also: FlaUITests.zip
Screenshots

Just came by your issue.
So here is a solution on the off chance that you're still suffering from it. The problem is with the font you're using in cmd and not with FlaUI (I tried your example and it worked for me), change cmd's font (by right clicking the title bar and going to properties->font) to something that accepts all the languages that you want and you should be good to go.
@Roemer this should be closed.


Compilation error in Android (termux) with go get

After I followed the instructions here https://github.com/bettercap/bettercap/wiki/Compilation-on-Android and have installed dependencies, I get this error during go compilation:
go get github.com/bettercap/bettercap
# github.com/bettercap/bettercap/network
go/src/github.com/bettercap/bettercap/network/net_gateway_android.go:14:8: undefined: str

Uhm, I'm confused. This is the restic (the backup program) issue tracker, but it looks like you're having troubles installing bettercap?

I'm going to close this issue for now, please feel free to add further comments. Thanks!

I'm sorry, I don't know how the hell I wrote here... Typing and surfing from my phone is not the same of doing It from my laptop. Sorry again


How do we make sure the bookmarks are always shown?

First of all, I really like this project :) I've fiddled with it a bit locally so it suits my needs better, and everything is perfect, except the fact I don't know how to make the bookmarks always show. I've looked at the wiki and in the code, but I couldn't find anything to help me out.
I've also tried changing this setting from the browser > rightclick near the url bar > bookmarks toolbar > always show, but that didn't change anything, and the setting seems to stay off?
I'm currently running latest firefox version on manjaro.
Any help would be appreciated, thanks!

I've finally found a way. In navbar.css:
toolbox[id="navigator-toolbox"]:hover #PersonalToolbar {
    opacity: 1;
    margin: 0 !important;
}

I just needed to remove the :hover and it's all good.


[local_auth] Please enable Stack Smashing protection to avoid component exposure to memory corruption attacks

We have identified a security issue in your package from our security scan.
Stack smashing protection has not been implemented in components included in the application. When an application is compiled with stack smashing protection, a known value or "canary" is placed on the stack directly before the local variables to protect the saved base pointer, saved instruction pointer, and function arguments. The value of the canary is verified upon the function return to see if it has been overwritten. The compiler uses a heuristic to intelligently apply stack protection to a function, typically functions using character arrays. This is a very simple best practice that hardens your app with little to no downside. Memory corruption vulnerabilities can be very hard to track down, but can be extremely severe.
Please follow the steps below for the respective platform to fix this security issue:
iOS:
In XCode, under the Build Settings for the app, go to the "Other C Flags" section and add in -fstack-protector-all. More reading can be done on Apple's developer library
Android:
Make sure that the -fstack-protector-all, -fpic, and -fstack-protector-strong flags are all set in the build.gradle file (typically in the cmake/cppFlags).

/cc @stuartmorgan

Closing as a duplicate of https://github.com/flutter/flutter/issues/99905


Add hierarchies

Refactored igests to use individual hierarchies from Regenstrief.
Refactored CLI
Updated Readme

@joeflack4 This PR has more than intended with all the docs.
The main changes relevant to our discussion are:

code_ingest.py
part_ingest.py
build.py
README.md
data/part_files/*
data/owl_files/*


chore: Convert Dataplane/Gateway Listings to DataSource/AppCollection

There is still quite a bit of work to be done here, but I wanted to get far enough to convert everything to use DataSource/AppCollection, and as soon as I got there I stopped to submit a PR. There are likely to be follow up PRs to come to improve various things here, some of them pre-existing (I don't think we should always mention zones in the filter when we are in standalone more for example).
Notable significant changes:

We now have a specific route component for the GatewayListing tab
We no longer have 2 components to show the summary detail page (SummaryDetail has been deleted)
The KFilterBar usage has been moved to the top i.e. its used in the route component rather than inside nested components.

GH is having issues at the minute so just waiting for that to clear up

Ok thanks @kleinfreund I've addressed your last round of feedback, I think I got everything lmk if not

Awesome thanks for the reviews on this one. I was cautious of making sure I covered the existing functionality of the things we are keeping, and it took me a good while to simplify it all out. Just to mention as we discussed in yesterdays sync, there will be PRs coming to turn this into 3 separate views:

Dataplane Proxy Listing (only columns for proxies)
Gateway Listing (only columns for gateways)
Dataplanes for a Service listing (columns for both proxies and gateways)

From what I remember from working on this, the main reason we have a separate DataplaneList is to have the data re-shaping in one place, we then use awkward conditionals inside the component which are going to break down now we need 3 different setups. For that reason, once we have moved the data reshaping to the data layer so it can be reused anywhere, I would guess I will just delete the DataplaneList component and just use 3 separate AppCollection components configured with the correct columns for each view. I will be able to do this as the data will already have been reshaped for me for all 3 views in the data layer. I would guess the "move data reshaping to the data layer" PR will come first.


Error while processing group sharing

Hello!
I've got a strange error and do not know why is it occur. So, the situation is:
I've got several groups. One as ACL, another one with some code base. I would like to share the second one with the first one.
So, the first one, lets say - acl/team, another one - product/codebase. And my config looks like that:
  "acl/team/*":
    visibility: private
    enforce: true
    group_members:
      users:
       . . .
  "product/codebase/*":
    enforce: true
    visibility: private
    group_members:
      groups:
        acl/team:
          group_access: 40

On the first run everything is ok. There is no errors or warnings:
:: # of projects processed successfully: 1
:: All requested groups/projects processed successfully! ✨

However, second and following runs give me an error:
Warning: Error occurred while processing group product/codebase, exception:

Request url='https://somegitlabdomain.com/api/v4/groups/product%2Fcodebase/share', method=POST, data='{"expires_at": null, "group_access": 40, "group_id": someID}' failed - expected code(s) [200, 201], got code 409 & body: '{"message":"Shared group The group has already been shared with this group"}'

And I do not understand what is going on.
If I add another group to group_members of product/codebase, there would not be any problems with that group. Only with acl/team.
Used GitLabForm version is 3.8.0:
GitLabForm version: 3.8.0 = the latest stable

What's the full gitlabform command you're using?

I've used several ways:
$ gitlabform ALL_DEFINED

and
$ gitlabform product/codebase

The config has some errors
I've fixed them. Nevertheless, outcome is the same

Could you post the full config in this scenario?
This is somewhat full config:

config_version: 3

gitlab:
  url: https://somegitlabdomain.com
  api_version: 4

projects_and_groups:
  "acl/*":
    project_settings:
      visibility: private
    group_members:
      enforce: true
      users:
        a.zorin:
          access_level: 50

  "acl/team/*":
    project_settings:
      visibility: private
    group_members:
      enforce: true
      users:
        f.name:
          access_level: 50
        s.name:
          access_level: 40

  "team/*":
    project_settings:
      visibility: private
    group_members:
      enforce: true
      users:
        f.name:
          access_level: 50
        s.name:
          access_level: 40

  "product/codebase/*":
    project_settings:
      visibility: private
    group_members:
      enforce: true
      groups:
        acl/team:
          group_access: 40

I've found a reason of this error. Debug mode helped me. Found these lines:
Group shared with BEFORE: [{'group_id': 906, 'group_name': 'Team', 'group_full_path': 'ACL/team', 'group_access_level': 40, 'expires_at': None}]
Adding group 'acl/team' who previously was not a member.

The reason was in path of the parent group. It was in uppercase. And in config it was in lowercase
This config fixed error:
  "product/codebase/*":
    project_settings:
      visibility: private
    group_members:
      enforce: true
      groups:
        ACL/team:
          group_access: 40

Thanks for the update. I wonder why it worled the first time. Also, looking at the code that processes group members, it should be case insensitive.
Btw, I forgot to mention that visibility: private can also be under group_settings if that was the original intention.

According to the second line - group addition is case insensitive:
Adding group 'acl/team' who previously was not a member.

However, I suppose, there is case sensitive comparison of already shared group and current group. In shared with before object group is specified with uppercase. Maybe when we compare them we do not use case insensitive comparison?

Looks like get_group_case_insensitive tries to return groups as is. At the beginning (link):
return self.get_group(some_string)

GitLab api ignores group name case in that case. Both groups/acl%2Fteam and groups/ACL%2F/team return the same result - group info. I think, it also has to be lowercased in get_group_case_insensitive method

Maybe this will be fixed when #633 has been done. Would you be able to help with that?

@wrbbz - it seems this big existed for sometime and was discovered in another issue. Let's close this one and if you have any new findings, add to the other issue.
Duplicate of #236


[Franklin Hackathon 10] Improve Performance

Fixes
Accessibility

html element does not have a lang attribute 4ca17ed
implement simple function to set html lang attribute to en

links do not have a discernible name in footer 800720e
implement function in footer block to force a default aria-label on every a element without a discernible text

heading elements are not in a sequentially-descending order 464e0e7
following items are using h4 for titles

the issue is that previous heading in the dom is a h2.
this commit is to transform the h4 in h3 and show how the page would look like. If visual result is ok, we would fix the heading in the document directly and revert this commit.
https://pianomister.github.io/diffsite/?url1=https%3A%2F%2Fmain--mmm-af--hlxsites.hlx.page%2F&url2=https%3A%2F%2Flh-improvements--mmm-af--catalan-adobe.hlx.page%2F

Improvement: 87% => 97% ! Single remaining issue is about design: Background and foreground colors do not have a sufficient contrast ratio. and should be reported back to the customer
Tests
Test URLs:

Before: https://main--mmm-af--hlxsites.hlx.page/
After: https://lh-improvements--mmm-af--catalan-adobe.hlx.page/

dummy change to force psi check
@catalan-adobe you can click the re-run checkbox in the bot's command above to re-run PSI

dummy change to force psi check
@catalan-adobe you can click the re-run checkbox in the bot's command above to re-run PSI

I could indeed do that in other PRs but in this one the option is not working, neither the checkbox above, nor when looking at the checks tab.
Could it be because the PR is from a fork?

test


Using node, parse, parse dash, on the same server with subdirectories

Hey there again, it is me, lol. I have tried for 2 days to get this to work before making a post, reading through all the documentation yet again, etc. I seem to be stuck, though.
I am trying to run parse-server, and parse-dashboard on the same server, but it does not seem to be working quite right. I was able to get it to the point in which the parse dash login comes up, but then gives a 404 error upon login. At the bottom though, I typed out a few scenarios in which it can / does work, but not properly all the time.
Here is my Parse config.
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var app = express();

var api = new ParseServer({
  databaseURI: 'mongodb://localhost:27017/parse',
  cloud: '',
  appId: '123',
  masterKey: '1234',
  fileKey: '',
  serverURL: 'http://syntaxlabs.io/parse'

});

// Serve the Parse API on the /parse URL prefix
app.use('/parse', api);

app.listen(3000, function() {
  console.log('parse-server running on port 3000.');
});

Here is the parse-dash config
var express = require('express');
var ParseDashboard = require('parse-dashboard');
var app = express();

var dashboard = new ParseDashboard({
  "apps": [
    {
      "serverURL": "http://syntaxlabs.io/parse",
      "appId": "123",
      "masterKey": "1234",
      "appName": "Whatevs"
    }],
    "users":[{"user":"admin","pass":"somepassword12345"}]

}, true);

app.use('/dash', dashboard);

app.listen(3001, function() {
  console.log('parse-dashboard running on port 3001.');
});

Lastly here is the config for redbird I was trying to use, which is quite basic for now.
var proxy = new require('redbird')({port: 80 });

proxy.register("syntaxlabs.io/parse", "http://syntaxlabs.io:3000/parse");
proxy.register("syntaxlabs.io/dash", "http://syntaxlabs.io:3001/dash");

I have tried it with http://<IP_ADDRESS>/dash, http://<IP_ADDRESS>:3001/dash, http://syntaxlabs.io:3001/dash, and http://syntaxlabs.io/dash. They all seem to have similar issues though. Currently I can get into the login screen, in which you can see the login is admin / somepassword12345, but then just gives that 404.
If I go directly to http://syntaxlabs.io:3001/dash it works just fine, but when I try to just go to http://syntaxlabs.io/dash, it will not, yet if I go to http://syntaxlabs.io/dash/ and or http://syntaxlabs.io/dash/apps  it then works, but If I try to change my Redbird config to instead point proxy.register("syntaxlabs.io/dash", "http://syntaxlabs.io:3001/dash/apps"); (or just /dash/) it no longer works. It seems to work if I physically type my url as http://syntaxlabs.io/dash/ <-- with a trailing slash, but if I put that in my redbird config, it doesnt work. Any ideas?

I think you need to debug this issue starting from redbird logs. Use bunyan global tool to get nice formated logs, and you will be able to see how is redbird proxyn all you request, and check if they are proxied as you expect or not:
node myredbirdproxy.js|bunyan

Unfortunately, the logs do not seem to be too terribly much better than what I was getting originally, unless I am missing something?
[2016-09-28T22:36:35.379Z]  INFO: redbird/15933 on ubuntu-512mb-nyc3-01: Proxying syntaxlabs.io/dash to <IP_ADDRESS>:3001/dash/ [2016-09-28T22:36:35.519Z]  INFO: redbird/15933 on ubuntu-512mb-nyc3-01: Proxying syntaxlabs.io/dash/bundles/dashboard.bundle.js to <IP_ADDRESS>:3001/dash/bundles/dashboard.bundle.js [2016-09-28T22:36:36.138Z]  INFO: redbird/15933 on ubuntu-512mb-nyc3-01: Proxying syntaxlabs.io/dash/parse-dashboard-config.json to <IP_ADDRESS>:3001/dash/parse-dashboard-config.json [2016-09-28T22:36:36.319Z]  INFO: redbird/15933 on ubuntu-512mb-nyc3-01: Proxying syntaxlabs.io/parse/serverInfo to syntaxlabs.io:3000/parse/serverInfo [2016-09-28T22:36:36.489Z]  INFO: redbird/15933 on ubuntu-512mb-nyc3-01: Proxying syntaxlabs.io/dash/bundles/img/cf0a48bbd61302f119a4576be8e01ed9.png to <IP_ADDRESS>:3001/dash/bundles/img/cf0a48bbd61302f119a4576be8e01ed9.png

Looks like I got this working using custom resolver, similar to how I was trying to do the letsencrypt thing originally.  not really the ideal way, but it will do I suppose for single server installs where everything is on the same box.
`var customResolver1 = function(host, url) {
if(/^/dash/.test(url)){
return 'http://<IP_ADDRESS>:3001/';
}
};
var proxy = new require('redbird')(
{
port: 80 ,
resolvers: [
customResolver1]
});

proxy.register("syntaxlabs.io/parse", "http://syntaxlabs.io:3000/parse");`