ORC-1525: Fix bad read in RleDecoderV2::readByte

What changes were proposed in this pull request?
This PR aims to fix #1640 by resetting BooleanRleEncoderImpl::current and BooleanRleEncoderImpl::bitsRemained when suppress
Why are the changes needed?
As #1640 suppress no null present stream leaves dirty data of BooleanRleEncoderImpl::current and BooleanRleEncoderImpl::bitsRemained, which will be flush to next stripe's present stream if it has some null values.
How was this patch tested?
I hava add a test testSuppressPresentStreamInPreStripe, which will construct a orc file with two stripe, the first stripe has no null value and seconds stripe has some null values. The constructed orc file writer have some dirty data in BooleanRleEncoderImpl for present stream. In the test I have add check for read ok and read result is same as write.
Closes #1640 .

Gentle ping @hoffermei

I created a JIRA, ORC-1525, for this.

If this is originated from ORC-1130, we need to backport this to branch-1.9 and branch-1.8.

Thank you, @wgtmac !

Unfortunately, it turns out that we need additional PR for branch-1.8 because std::make_unique is not available in branch-1.8.
This PR is merged to main and branch-1.9.

To @hoffermei , I'd like to assign ORC-1525 to you. Do you have Apache JIRA ID?


Rename function

Shoud be named to stderr
https://github.com/tlspuffin/tlspuffin/blob/8005fb4fbefdff63e1fee79d0ec64bd9242921a3/puffin/src/log.rs#L27C19-L36

Closing. Fixed in tlspuffin/tlspuffin@398e455506c9e.


build: always generate fresh bundle

operator-sdk does not delete unnecessary files while generating
a bundle, It just overwrites the required ones and we end up having
resources which is not required anymore. Resolve the same via removing
the bundle directory before generating a bundle.
Signed-off-by: Nitin Goyal<EMAIL_ADDRESS>

Outputs after my testing
NAME                  DISPLAY            VERSION   REPLACES   PHASE
lvm-operator.v0.0.1   ODF LVM Operator   0.0.1                Succeeded

NAME                                              READY   STATUS    RESTARTS   AGE
lvm-operator-controller-manager-96465645f-xmdfp   3/3     Running   0          2m26s
topolvm-controller-69ddd6bdff-qx7hz               4/4     Running   0          102s
topolvm-node-jqdms                                4/4     Running   0          102s
vg-manager-lfq9c                                  1/1     Running   0          102s

NAME            STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
lvm-block-pvc   Bound    pvc-804cefc9-da3d-457d-befb-5d7d7ac911f5   5Gi        RWO            odf-lvm-vg1    10s
lvm-file-pvc    Bound    pvc-a20dafe9-1db7-48b4-8bb5-9951bad5c98b   5Gi        RWO            odf-lvm-vg1    11s

/hold

lgtm but why on hold?

I wanted to test this again after cleaning up all resources which OLM does not clean up. and it is working properly.
/hold cancel


Fix code link for hello world

Link to hello world directory in java-docs-samples

Thanks for the submission, but I think it's formatted incorrectly for the use.  And I need a signed CLA
[thing]: URL
https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links


fix(pe): update version to 0.3.0 for spinnaker > 2.28

According to https://docs.armory.io/plugins/policy-engine/ we need to use version 0.3.0 for spinnaker > 2.28

I did reuse the md file from 2.28.0 - content/en/includes/breaking-changes/bc-plugin-compatibility-2-28-0.md. I could use some help doing an updated version for 2.30 so we capture the correct information.

I did reuse the md file from 2.28.0 - content/en/includes/breaking-changes/bc-plugin-compatibility-2-28-0.md. I could use some help doing an updated version for 2.30 so we capture the correct information.

2.28 should use the same version


Consider making a library of relational shortcuts

Typing out the relational algebra operators can be tedious. We could make it less tedious by integrating with Haskell language features such as infix operators for binary operators and optionally tighter type checking (with attribute names) for common cases. Examine vinyl-records for type-checking.

There are also some newer attempts at the record problem which hold a lot of promise: https://hackage.haskell.org/package/rawr and https://hackage.haskell.org/package/bookkeeper just came up as you probably know.

infix operators and optionally tighter type checking (with attribute names) sounds interesting. Sounds we need a tutd ADT first?

Hm, this need not be related to the tutd grammar, though you could convince me otherwise.
I envisioned adopting type strategies from other packages such as beam which could be compiled to DatabaseContextExpr and RelationalExpr.

Good idea!
let boundedQuery :: Q SqliteSelectSyntax _ _ _
    boundedQuery = limit_ 1 $ offset_ 1 $
                   orderBy_ (asc_ . _userFirstName) $
                   all_ (_shoppingCartUsers shoppingCartDb)

I am, too, looking forward that DatabaseContextExpr and RelationalExpr  in haskell can be as simple as something like this.

I am starting to explore adding a typed interface around project-m36, so I figured I should leave some thoughts here. I'm not 100% sure if what I'm trying to do matches with the expectations of this issue, but I'll give a quick precis and you can let me know!
Basically, what I want is to be able to provide functions like
insert :: (IsDbRelVar => db a) => Connection db -> a -> m ()

fetch :: (IsDbRelVar => db a) => Connection db -> m [a]

where db is some type that represents all possible types in the current database connection.
I also want to be able to provide functions like
queryBy :: (IsDbRelVar => db a, IsField a b) => Connection db -> b -> Value b -> [a]
... query producing [a] where some field b is equal to some Value b
So far I've implemented a poc for the first set of functionality (inserting and requesting etc) and I'll be working on the second (querying) shortly.
At the moment the only major issue I have is that my way of ensuring that the current database does indeed have a schema that matches the db is to derive and create the schema at the point where a Connection db is created. This could be improved on with some story of, first, schema comparison between an existing database and the db type, emitting a runtime error, and, even better, a coherent story for well typed migration (something like safecopy maybe).

I should maybe add that the goal would be to have some type level combinators (like servant) that would allow typing of more complex queries.

We support some of your suggested functions already with the Tupleable typeclass. Check out the blog example.
It would be pretty easy to cook up a function like queryBy that fits with Tupleable today- that would, in fact, be a nifty contribution.
The complication is in making composable, type-safe functions based on the Haskell type so that, for example, accessing an attribute through the query which is not defined in the Haskell type results in a GHC compile-time error rather than a Project:M36 RelationalError. That's the sort of thing that libraries like beam offer and what we lack currently.

I think we are at cross purposes here - the blog example doesn't do anything like this. There is no typing whatsoever on any part of it. As a simply example, the line insertBlogsExpr <- handleError $ toInsertExpr blogs "blog" does not do any type checking at all. Would I get a compile error if I wrote insertBlogsExpr <- handleError $ toInsertExpr blogs "blogtypoblog" What about if I tried to insert some other instance of Tupleable that we haven't actually added to the database?

The complication is in making composable, type-safe functions based on the Haskell type so that, for example, accessing an attribute through the query which is not defined in the Haskell type results in a GHC compile-time error rather than a Project:M36 RelationalError. That's the sort of thing that libraries like beam offer and what we lack currently.

That is exactly what I was talking about.

Perhaps my original comment wasn't clear enough
type IsDbRelVar db a = (Elem db a, Tupleable a)
insert :: (IsDbRelVar db a) => Connection db -> a -> m ()
fetch :: (IsDbRelVar db a) => Connection db -> m [a]

The point is if you call insert with any other type than something that is in the db type (which might look like `'[Person, Address, Purchases]') then you would get a compile time error.
Exactly the same thing for queryBy. I want an interface where you can provide a type level witness of some field, whereby the compiler can guarantee a) that the record is part of the db, b) that the field is part of the record and c) that the Value b is the same type as the field.

So I have made considerable progress on this front, but I'm currently stalling a bit after running into the performance issue documented here.
So far I have got to the point where you can define your schema as a type, like so:
type AppSchema = (
  RelVar User :$
    '[UniqueConstraint '["userFirstName", "userLastName"],
      ForeignConstraint '["userAddress"] (RelVar Address), "addressId"]]
  :& RelVar Address
  :& RelVar PhoneNumber
  )

and my code will

Give compilation errors if you make any mistakes in the schema (e.g. reference a field in a UniqueConstraint that doesn't actually exist)
Generate the equivalent databasecontextexprs for creating this schema
Allow you to insert and fetch records defined in the schema, with compilation errors if the relvar is not in the schema
(poc) Allow you to write fully type checked relational expressions (a subset at the moment) for basic querying purposes. For example, if you Project, Rename, or Extend over a relvar, you will get a compilation error if you reference a field that the relvar does not contain.

If there is any interest I can pull out the relevant code and create a demo repo for it.

I should add that the code is based entirely around generics, generics-sop and a bunch of closed type families, with no need for template haskell.

hi @matchwood
It sounds awosome! I definitely have interest in seeing and learning. Please create a repo for it.

Wow! That's really exciting! I, too, would be interested in trying it out.

Ok good, I will try to get a demo repo up in a week or two - I'll leave a comment here when I manage it!

Well... it was a little bit longer, but here you are https://github.com/matchwood/project-m36-typed .
I have actually moved on a bit from project-m36, as I ran into some performance issues that make it unsuitable for the kind of use case I was envisaging (see #210). But I am still generally very supportive of the project, and am happy to continue discussion and so forth if anyone likes the approach I've taken in my typed interface code.

Thanks! I'll take a look.
I saw your posting proposing a new acid-world which looks promising. I hope that we can cross-pollinate ideas and performance results. For example, I have been examining cborg for suitability, but it's difficult to determine how well new hackage modules are maintained.

Yes, that would be good!
Just a bit of background for acid-world - I'm strongly in favour of expressing as much as possible at the type level. Haskell gives us this amazing opportunity to construct compile time guarantees for all kinds of things, and I still don't think it has been fully leveraged. Servant is the kind of library that I think everything should be moving towards. That was what motivated me to try to make a typed interface for project-m36.
At the same time, I need to actually use these projects in contexts where performance matters. Acid-world is really just a layer of typing over the same concept as acid-state, and therefore is pretty performative. I haven't done any optimisation on it yet, but inserts are around 400 μs, and because it is event based that performance is pretty much O(1) (I have benchmarks at 100k and 1m existing records).
On the other hand, I really like the underlying concept of project-m36, as it is a much more principled and general approach to the problem of persistence than acid-state or acid-world.
On the issue of cborg specifically, I am inclined to trust it. Among other things, DCoutts (the primary author) is a lynchpin of the Haskell community, and it is supported by Well Typed (who I'm pretty sure are using it in production in their own projects).

It would seem the discussion went into a wee bit of a tangential direction? Back to the main (I think?) topic, which is "make relational algebra expressions less tedious to type out". Perhaps not an ideal solution, but I suppose you already have a TutorialD to RelationalExpr parser. So why not add a parsing quasi-quoter to (optionally) write more complicated relational algebra expressions in TutD? That seems like quite a sizeable benefit in exchange for very little work. While at it, perhaps adding a full-fledged DatabaseContextExpr quasi-quoter might also be nice.
This wouldn't by any means preclude from adding an EDSL at some point, of course. But looking at the current progress, I don't think this is likely to happen very soon?

statements that can't compose

Technically since QQ is TH, I think we could, say, use haskell-src-meta to add context-capturing Haskell slices to the TutD syntax (for instance, similar to how TH's default QQ does it, e.g. [|some Haskell expression $(embedded expression slice) continued|])
So, for example, the hair example could look like:
  let blond = NakedAtomExpr (toAtom Blond)
  eCheck $ executeDatabaseContextExpr sessionId conn
      [tutdctx|people := relation{tuple{hair $blond, name "Colin"}}|]

(notice the $ before blond).
This would require some potentially painful changes to the parser though, so I have my doubts about the viability of this approach.

string escape chaos

Not much of an issue, generally speaking. The only thing QQ doesn't allow inside a quotation is |] IIRC, and adding a simple pre-processing rule that would, say, replace |~] with |] in the captured string isn't hard (more generally, removing one ~ from substring |~~...~~] -- or choose literally any other character instead of ~)

That's why I would like to see ... just straight Haskell.

Well, sure, I'm with you on that. But it seems like a lot more work. And frankly right now I want a quick and relatively easy way around writing out an extremely verbose AST by hand, not to create a complete relational EDSL from scratch.
... Anyway, I've written some proof of concept code. Had to add Language.Haskell.TH.Syntax.Lift instances for all AST types, but that's just annoying, not hard (I've added those straight to Base, but it might be better to collect orphan instances in a separate module to avoid unnecessary TH proliferation). The rest is mostly trivial. Currently this allows for code like this (using the same hair example):
  eCheck $ executeDatabaseContextExpr sessionId conn
    [tutdctx|people := relation{
      tuple{hair Blond, name "Colin"},
      tuple{hair OtherColor "Grey", name "Greg"}
    }|]

  peopleRel <- eCheck $ executeRelationalExpr sessionId conn
    [tutdrel|people where hair = Blond|]

Note there is no compile-time typechecking going on here, so Blond could be Bogus, and stuff would still compile and then happily crash at runtime.
Also note that it's in general impossible to know at compile-time whether Blond is even defined in the DB context or not, so this shouldn't be at all surprising.
Will try to get it on GitHub in a day or two, if you're interested. It's not yet here because the commit history is a bit of a mess, it's nigh impossible to understand where the changes are exactly (since I've had to move TutorialD.Interpreter hierarchy into the library for obvious reasons). Will also try to at least implement the |] escaping thing.

Okay, I've published the proof-of-concept to the qq-parser branch of my fork. Commits of interest are

46aeb9b8739cc6abdcf00c2ca5b030766f91934e, which adds just quasiquoters and
aeef9f0b12d434a03809f3e3d2d31f00215bc2dd, which adds limited support for Haskell variable splicing inside the quasiquoters.

The latter adds a constructor into AST, but doesn't amend AST consumers, which creates some partial functions due to pattern-matching not being total in a few places. Frankly I couldn't figure out a more reasonable way to do this which wouldn't involve rewriting/rewiring the AST and/or the parser entirely. One option for handling this more gracefully would be to parametrize the AST on yet another type, representing the "placeholder", say Placeholder, make a typeclass class PlaceholderHandler with instances for Placeholder and Void, and extend relevant AST nodes with an alternative for type parameter representing the placeholder. Then use (e.g.) SYB-style generic programming to convert between AST representations when needed. I might give it a shot later.
This is more or less enough for my immediate needs, so I'm unlikely to work much more on this in the near future (a bit of a crunch time going on currently)


Fix potential daadlock (#3811)

The class LocalChannel has a mutex variable named _lock and class
TabletsChannel::Sender also has a mutex variable named lock.
It's possible to run LoadChannel::cancel() and TabletsChannel::add_chunk()
concurrently, and both of them will acquire the above-mentioned mutex variables,
with different orders, which may cause a deadlock.

run starrocks_fe_unittest


chore: huawei destination support

Signed-off-by: Nitish Kulkarni<EMAIL_ADDRESS>PR summary
PR include the changes of Huawei destination support and vulnerabilty fix of testng-version package updated to 7.7.1 (where minimum java version required is 11).
Fixes: <! -- link to issue -->
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[x] New tests
[ ] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?

Vulnerability reported for testng package
Support of Huawei destination is not present

What is the new behavior?

Fixed vulnerability.
support of Huawei Destination.

Does this PR introduce a breaking change?

[x] Yes
[ ] No

Other information

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


[coverage] Replacing coveralls with codecov

I'm unsure why but coveralls hasn't run as part of the Travis CI since December 2017. It seems nowadays most repos are using codecov rather than coveralls (including incubator-airflow) which is free and requires no token for public GitHub repos and thus I though there was merit in trying to leverage this.
One really nice thing about codecov is they have a browser extension which works seamlessly with GitHub and allows you to see the code coverage right from within GitHub. See here for more details, which includes a demo on YouTube.
Previously coveralls was integrated with tox which meant passing Travis CI environment variables to tox and making the run_tests.sh script aware of whether it was running in a CI environment. Personally I'm not a fan of this interwoven dependency, i.e., I think of tox as a testing environment which can run locally via shell-based testing or with a CI server, and thus given that codecov is primarily a web-based CI tool, this logic should not be integrated with tox.
Note this PR produced the following report.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@4135854). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             master   #4533   +/-   ##
========================================
  Coverage          ?   71.1%
========================================
  Files             ?     188
  Lines             ?   14803
  Branches          ?    1083
========================================
  Hits              ?   10525
  Misses            ?    4275
  Partials          ?       3

Continue to review full report at Codecov.

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

This is great. Now we need to figure out how to hook up the JS coverage report.

LGTM


startWifiPeriodicallyScan Can you give me an implementation example?

Hi there,
I'm implementing almost all this functions in my APP and so far so good although i'm having troubles with startWifiPeriodicallyScan, probably i'm implementing it wrong.
I have this implementation
`cordova.plugins.hotspot.startWifiPeriodicallyScan(30000,Number.MAX_SAFE_INTEGER,
                                                              cordova.plugins.hotspot.scanWifi(function(jsonwifi){
                                                                     jsonwifi.forEach(function (element){
                                                                    console.log(JSON.stringify(element));});},
                                                               function(){})
                                                       , function(){console.log('ERROR');});`

What is happening is that only  the first iteration is working, when I start startWifiPeriodicallyScan it runs once and then stops, I've tried with a duration of 120000 and the behavior is the same.
Am I not supposed to call the scanWifi in the sucessCB?
What am I doing wrong?
For a workarround I can just use the JS setInterval but I would like to use this one.
Thank you very much,
Luís Almeida

sorry, but having currently no time to help you on this


Searching through Your library?

So, sometimes (most of the times) I want a playlist I created myself, and I think that doesn't happen in this plugin.
I think what happens is that it searches across all the elements in Spotify's public resources, and so it is a worse search than just looking in the Library itself, because many other instances are found.
So it would be nice to narrow down the search to your library maybe with a special command like sp l or something like that.
We can talk too about searching filters (only songs, only playlists, etc.), but maybe that's for another Issue

Yeah, I would create another issue for scoping search to a specific item type.
As for your first point, this is somewhat related to https://github.com/waaverecords/PowerToys-Run-Spotify/issues/5 where nothing can be done for "liked songs".
However, for playlists the user owns, I believe this is achievable.
It would be done using _spotifyClient.Playlists.GetUsers and _spotifyClient.Playlists.GetItems.
You are welcome to validate this and submit a PR if it works.

Thank you!
I'm right up close to finishing the academic year and thus somewhat busy, and haven't used C#, but I'm certain Copilot has, so he'll be able to teach me.

Sorry guys, I'm switching to Flow launcher, no need to reinvent the wheel!


fix: standardise obj exports

Coverage remained the same at 100.0% when pulling 0151b5267b46245b518d575755564daccc10274c on feature/ts-object-export into 2e7e6aa3f552c5c63c44fa32bc1eab303a3fb542 on master.


tornado: Send request_started signal in Django thread

Django’s ASGIHandler does this too and it seems like a good idea.

That seems right, merged, thanks @andersk!


missing variable for templatefile in Azure CLI example

Under Deploy template section the Azure CLI examples is not working.
the following is in the example,
templateFile="{provide-the-path-to-the-template-file}"
az deployment group create
--name blanktemplate
--resource-group myResourceGroup
--template-file $templateFile
and templateFile is missing an $ that is later used for --template-file

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

ID: 7bf283cd-65c2-09ad-0af2-37bf95fe4d90
Version Independent ID: 46451ccf-174a-e4da-433f-aa8c5570557d
Content: Tutorial - Create & deploy template - Azure Resource Manager
Content Source: articles/azure-resource-manager/templates/template-tutorial-create-first-template.md
Service: azure-resource-manager
Sub-service: templates
GitHub Login: @mumian
Microsoft Alias: jgao

@alexanderojala - The CLI examples are written for Bash. The syntax for that environment is correct. If you are using Azure CLI in another environment, you could add the $
#please-close


Feature request: Show compression % on hover.

Swapped from dbpoweramp, this is so much better in every way (open source too!), but the one thing it had was it would say the percentage of how compressed a file was on hover, would love to see it here.

We need to add, when we have time, this customization of the mouse hover... In addition to the compression %.
Good ideas but no ETA.


Add OpenAPI 3.0.0 upgrader

[ ] return error for required field
[ ] the produces/consumes could be declared in Swagger object and inheritant in Operation object
[ ] do not convert 'file' to 'application/octet-stream' directly, only use it when it's declared in 2.0 spec

This PR is just adding converter from 2.0 to 3.0, original logic based on 2.0 is not changed.


problem with the UTF-8-SIG encoding

when crawl some websites I got the following error message. example: http://www.sangfor.com.cn/about/newlist.html
[E 150112 17:54:39 base_handler:221] unknown encoding: 'UTF-8-SIG'
    Traceback (most recent call last):
      File "<sangfor>", line 19, in index_page
      File "/usr/local/lib/python2.7/dist-packages/pyspider/libs/response.py", line 152, in doc
        parser = lxml.html.HTMLParser(encoding=self.encoding)
      File "/usr/local/lib/python2.7/dist-packages/lxml/html/__init__.py", line 1681, in __init__
        super(HTMLParser, self).__init__(**kwargs)
      File "parser.pxi", line 1640, in lxml.etree.HTMLParser.__init__ (src/lxml/lxml.etree.c:104406)
      File "parser.pxi", line 802, in lxml.etree._BaseParser.__init__ (src/lxml/lxml.etree.c:96638)
    LookupError: unknown encoding: 'UTF-8-SIG'

The encoding detected is not supported by lxml. You can specify the encoding with response.encoding = 'utf-8'.

Thanks for your answer, should add this to FAQ maybe.
I'm closing the issue.


Simplify boolean variable checks

(cherry picked from commit 63a8f26)

Don’t compare boolean values to True or False using ==:
Yes:
if greeting:
No:
if greeting == True:
Worse:
if greeting is True:

source

Thanks @delirious-lettuce for the PR! I agree with this style change and I think it improves readability a lot.
Since we currently don't have automatic tests, we have to make sure to run the full test suite locally, since some of these changes are not strictly equivalent. For instance, if x is [1] then bool(x) is True but x == True is not. I will kick off the tests now and write another comment when it's done.

Tests are OK.


Improve the MITM detection during session establishment:

Even for SSL/TLS encrypted connections, it is possible for a determined attacker to mount certain types of relatively inexpensive MITM attacks that might make it possible to intelligently tamper with messages exchanged between endpoints.
This risk can be mitigated if each side has a certificate from CA that the other side trusts. But, in the context of a decentralized and permissionless network, requiring certificates is neither reasonable nor desirable.
Ultimately, the goal is to ensure that two endpoints A and B know that they are talking directly to each other over a single end-to-end TLS session instead of two separate TLS sessions, with the attacker acting as a proxy.
The XRP Ledger protocol prevents this by leveraging the fact that the two servers each have a node identity, in the form of a secp256k1 keypair.
By deriving a secure fingerprint associated with the TLS session and never sent over the wire, which both sides sign with their respective node private key and send to the other, we can strongly bind the TLS session to the node identities of each of the servers at the end of the TLS session.
This commit changes the way the fingerprint is derived, moving away from using SSL_get_finished and SSL_get_peer_finished, in favor of using SSL_export_keying_material.
The change is backwards compatible and servers with this commit will still generate and verify old-style fingerprints, but they also introduce support for new-style fingerprints, generated using SSL_export_keying_material.
For a fuller discussion on this topic, please see:
https://github.com/openssl/openssl/issues/5509
This commit fixes #2413, which was already closed as a 'WONTFIX'.

High Level Overview of Change

Context of Change

Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Refactor (non-breaking change that only restructures code)
[ ] Tests (You added tests for code that already exists, or your new feature included in this PR)
[ ] Documentation Updates
[ ] Release

That took a while :-) I remember pointing out the problems with SSL_get_finished and SSL_get_peer_finished way back in a security report in February 2015. Never did get that bounty :-)

That took a while :-) I remember pointing out the problems with SSL_get_finished and SSL_get_peer_finished way back in a security report in February 2015. Never did get that bounty :-)

It did take a while but better late than never, I guess. 😅
As for the bounty, I'm sure I have your original report somewhere, can you please send it to me via email or (in the interest of full transparency) paste it here?
If it qualifies as a security issue I'll look into having a bounty awarded.
With that said, I am skeptical; the technique used is secure, and there are no bugs—at least that I'm aware of—in the implementation. Yes, it's awkward and reaches way too deeply into the TLS session and I know it frustrated experts like @richsalz, but, mess or not, it does work and work correctly.
And since I mentioned @richsalz, I'm curious whether he feels that is a better that using ``SSL_get_finishedandSSL_get_peer_finished`
Still a fix is now available and, hopefully, this version passes muster.
So send over the report and I'll review it and, if appropriate, recommend that you receive an appropriate bounty.

Here's the original report from February 2015:
https://docs.google.com/document/d/1109KT3AJUe68XjnRLUkidzQrRhFs5pKc-2A_hXsuvEI/edit?usp=sharing
Seeing as session resumption is still not disabled in rippled and you can still use SSL_get_finished and SSL_get_peer_finished, maybe it is still possible...
https://github.com/ripple/rippled/blob/7bd5d51e4e4e76a5547051d30b330739618eddb0/src/ripple/basics/impl/make_SSLContext.cpp#L390

Here's the original report from February 2015:
https://docs.google.com/document/d/1109KT3AJUe68XjnRLUkidzQrRhFs5pKc-2A_hXsuvEI/edit?usp=sharing
Seeing as session resumption is still not disabled in rippled and you can still use SSL_get_finished and SSL_get_peer_finished, maybe it is still possible...
https://github.com/ripple/rippled/blob/7bd5d51e4e4e76a5547051d30b330739618eddb0/src/ripple/basics/impl/make_SSLContext.cpp#L390

Thanks! I'll review this closely and follow up.

3SHAKE aside, it's really tricky to use exporters correctly and I'm no longer convinced that this technique is as effective as we think. At a minimum, a mechanism is needed to allow both endpoints to collaboratively generate a random "cookie" that then gets passed into SSL_export_keying_material, so that the resulting fingerprint is not under the control of either party.
I'm going to close this PR and think this through more carefully.

@nbougalis: yes, using exporters is not as easy as it perhaps should be.  I'm glad to see you're taking another look. (FWIW, I don't do OpenSSL any more, but happy to talk about TLS in generic terms.)

https://github.com/libp2p/specs/blob/master/tls/tls.md was already mentioned in the issue a few years ago, maybe it might be better to implement this in https://github.com/libp2p/cpp-libp2p and get the other features from there than trying to make the current construction secure? Would be a larger undertaking though.

@nbougalis: yes, using exporters is not as easy as it perhaps should be.  I'm glad to see you're taking another look. (FWIW, I don't do OpenSSL any more, but happy to talk about TLS in generic terms.)

Thanks for following up. It's just hard to tightly bind a higher-level protocol to a TLS session, when with something like EKM.
In reading @MarkusTeufelberger's comment below, about encoding the `secp256k1 key in an X.509 structure, I kinda wish that it was possible to use such keys with TLS and have the master secret derived using ECIES.
By the way maybe you can answer a question: why does the EKM spec only use the master secret and the two client random values instead of, say, the finished messages themselves? They contain, inter alia, things like any exchanged certs, which seem relevant.

https://github.com/libp2p/specs/blob/master/tls/tls.md was already mentioned in the issue a few years ago, maybe it might be better to implement this in https://github.com/libp2p/cpp-libp2p and get the other features from there than trying to make the current construction secure? Would be a larger undertaking though.

I think that migrating the P2P layer to a library is a little ambitious; it's unclear to me if the benefits would outweigh the costs, but I think it's reasonable to have a conversation about it. Would you like to open an issue to discuss this topic separately?
The idea of encoding the node's public key into a certificate is interesting. It's certainly possible for the self-signed certificates most nodes have, but it could be a little annoying (or maybe not even possible) for operators that use certificates from trusted CAs (like my employer) so that's something to consider.

Inter-node communication can maybe use different certificates than pure API endpoints. I doubt that you'll get a certificate with custom fields from a widely trusted CA, but I haven't looked into this - maybe to differentiate themselves from Let's Encrypt this is easier to get from them nowadays? Though "Honest Achmed's Used Cars and Certificates" surely will be able to sell you whatever you want!
Joking aside, it might at least be a bit easier to implement in a non-OpenSSL way.

why does the EKM spec only use the master secret and the two client random values instead of, say, the finished messages themselves? They contain, inter alia, things like any exchanged certs, which seem relevant.

Because you don't know when the EKM will happen and you don't want to force everyone to keep the messages around. The TLS connection is authenticated because the digest includes all the messages anyway.


Server-side persistent store

We originally went with the rdfstore-js library for working with graphs on the server side, but as the author explains in antoniogarrote/rdfstore-js#92, he's opted to move away from server side support to focus on the browser.  As such, support for the MongoDB persistence layer is already gone from the latest versions, and the only interface either usage supports is IndexedDB, of which there are very few interface-level implementations (e.g., translating the IndexedDB API to talk to MySQL, or something).
I've started a new branch to use https://github.com/mcollina/levelgraph instead, on the branch levelgraph which is presently at 2e4bd3f43f854a5047d6b466c670c441cbda3333.  There are some flaws as it exposes a core Node bug joyent/node#5108 (or a level library actually potentially leaks memory) and has some non-trivial incompatibility with the current use of promises, but this is probably the working solution going forward.  There's no need to install another component with Level, which seems like a plus for this software.
Obviously it is no longer compatible with earlier versions of Scribe.  This can be dealt with by dumping Turtle/N3 from the rdfstore-js dependent versions and importing it into the latest.

It's very close, the search now works correctly, but there's still an as-yet unknown bug in the N3 utility that appears to allow data to be added but doesn't conclude, and so an HTTP PUT hangs.  I've filed an issue with the project, mcollina/levelgraph-n3#16 to see whether that's a usage issue or something else.

Thanks to a tip from the author, we should be using an earlier version of the database, tested and verified working.  Fix in d62d015f6123ae587e6508f998611ea1f3b3cd51


verify CouchDB failed Installation windows 10 after upgrade

Expected Behavior
Verify success fully
Current Behavior
Verify failed with error: error,{error,{conn_failed,{error,eaddrnotavail...
Context
Can't replicate database
Your Environment

Version used: 2.1
Browser Name and version: Chrome 61
Operating System and version (desktop or mobile): Windows 10 Creator Desktop

eaddrnotavail means whatever address you're trying to bind to, doesn't exist. By default Windows 2.1 binds to address <IP_ADDRESS>. Have you disabled your loopback interface?

I reinstalled and the problem went away.  Installed on other systems without problem.


[Failure] 47 3 | add_handwashing_facility_cat function categorizes handwashing facility status correctly

The error
── Failure ('test-add_handwashing_facility_cat.R:47:3'): add_handwashing_facility_cat function categorizes handwashing facility status correctly ──
result$wash_handwashing_facility_jmp_cat[5] not equal to "basic".
1/1 mismatches
x[1]: NA
y[1]: "basic"
The Issue:
Based on the error message, it appears that the add_handwashing_facility_cat function is not correctly categorizing the handwashing facility status for the 5th row of the test data. The test expects the result to be "basic", but it's returning NA.
From the JMP

Handwashing ladder
Basic

Availability of a handwashing facility with soap and water at home

Limited

Availability of a handwashing facility lacking soap and/or water at home

No facility

No handwashing facility on premises

The dummy data row 5:
    survey_modality = "in_person"
    wash_handwashing_facility = "available"
    wash_handwashing_facility_observed_soap = "soap_available"
    wash_handwashing_facility_observed_water = "water_available"

For in-person surveys, the function should categorize the handwashing facility as "basic" when:

The facility is available
Soap is available
Water is available

This should be categorized as "basic".
Proposed Solution
  # Option 1: Process for In-person modality
  df_in_person <- dplyr::filter(df, !!rlang::sym(survey_modality) %in% survey_modality_in_person)
  df_in_person <- dplyr::mutate(
    df_in_person,
    wash_handwashing_facility_yn = dplyr::case_when(
      !!rlang::sym(facility) == facility_options1[1] ~ 1,
      !!rlang::sym(facility) == facility_options1[2] ~ 0,
      .default = NA_real_
    ),
    wash_soap_yn = dplyr::case_when(
      !!rlang::sym(observed_soap) == observed_soap_options[1] ~ 1,
      !!rlang::sym(observed_soap) %in% observed_soap_options[-1] ~ 0,
      .default = NA_real_
    ),
    wash_handwashing_facility_jmp_cat = dplyr::case_when(
      wash_handwashing_facility_yn == 1 & wash_soap_yn == 1 & !!rlang::sym(observed_water) == observed_water_options[1] ~ "basic",
      wash_handwashing_facility_yn == 1 & (wash_soap_yn == 0 | !!rlang::sym(observed_water) == observed_water_options[2]) ~ "limited",
      wash_handwashing_facility_yn == 0 ~ "no_facility",
      .default = NA_character_
    ))

@lanawwas I'm currently reviewing this function. Will look at the issues created and push commits inclusive of your proposals!

The error seems to come intially from the sectoral guidance. Then it's been added to the MSNI guidance from there. Will propose a first fix along these lines above. But we will have to coordinate with PHU, especially when it comes to remote options or no permission to see.

Latest commit related to this issue 3bc0577ec9206011f8c47ef9f734a6ba8d2ec584.

Handled in Ticket #450


Adding Kazakhstan

#sign-off

@outinyman : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Bug report: spinner breaks interactive mode

Priority
(Urgent) I can't use the CLI
Description
The spinner breaks the interactive mode. When you run m365 setup, the spinner is displayed over the last item in a choice list:

Steps to reproduce
Run m365 setup
Expected results
Last option in the list is visible
Actual results
Last option is covered by the spinner
Diagnostics
No response
CLI for Microsoft 365 version
latest from main
nodejs version
v18
Operating system (environment)
macOS
Shell
zsh
cli doctor
No response
Additional Info
No response

Odd! Never noticed this before. I've used it all the same!

Can you repro the issue though?

yep I have the same in latest main


Added plates identifier

Added plates identifier
Promoted to new version 1.2

https://github.com/Defkon1/italian-toolkit/runs/17304771326


Crash on non-ASCII input.

Description
Crash on non-ASCII input: UnicodeDecodeError: 'ascii' codec can't decode byte 0x85 in position 0: ordinal not in range(128)
Steps to reproduce the bug
To make it easier, this will download mc3362.pdf.

wget https://github.com/user-attachments/files/16489263/mc3362.pdf && pdf2txt.py mc3362.pdf

Error produced
Traceback (most recent call last):
  File "pdf2txt.py", line 115, in <module>
    if __name__ == '__main__': sys.exit(main(sys.argv))
                                        ^^^^^^^^^^^^^^
  File "pdf2txt.py", line 110, in main
    interpreter.process_page(page)
  File "/lib/python3.12/site-packages/pdfminer/pdfinterp.py", line 841, in process_page
    self.render_contents(page.resources, page.contents, ctm=ctm)
  File "/lib/python3.12/site-packages/pdfminer/pdfinterp.py", line 854, in render_contents
    self.execute(list_value(streams))
  File "/lib/python3.12/site-packages/pdfminer/pdfinterp.py", line 869, in execute
    name = keyword_name(obj).decode('ascii')
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'ascii' codec can't decode byte 0x85 in position 0: ordinal not in range(128)

What version of pdfminer.six are you using?  I can't reproduce this with either Python 3.11 or 3.12 and pdfminer.six v20240706.

Looks old.
./lib/python3.12/site-packages/pdfminer-20191125.dist-info

Closing since @dhdaines can't reproduce. Probalby you can fix this by removing all versions of pdfminer and pdfminer.six and then installing the lastest version from pip.


Added the ability to track and manage exceptions during an experiment. Fixed #55.

@Haacked should be good to go.

Looks good to me. I haven't had a chance to try it out. @davezych do you have any feedback before I merge?

I don't have time to pull it down and try it but it looks good on paper.
As a note for the future, the ExperimentInstance constructor is getting a bit unwieldy - there's what, 10 parameters there now? We might want to think about somehow cleaning that up sometime.

As a note for the future, the ExperimentInstance constructor is getting a bit unwieldy - there's what, 10 parameters there now? We might want to think about somehow cleaning that up sometime.

Indeed.

Nice work @joncloud!


Allow plain functions to be used as components

Often, a component only needs to take in props/children and render something, and does not maintain any internal state. In those instances, it can be useful to define the component as a function of props and
children.
This adds etch.stateless(renderFn) that implements a component that renders renderFn with props and children during initialize and update.
@kuychaco has brought up the excellent point that etch.stateless isn't the best name for this; I'm totally open to suggestions
Signed-off-by: Katrina Uychaco<EMAIL_ADDRESS>

I've been looking at this a bit more and I think it can be improved. I would like to support the following use cases, in order of importance:

Use plain functions as components.

In this scenario, a function that takes props and children and returns a VNode could be a valid component type; for instance:
function PlainFunctionComponent({thing}, children) {
  return
{thing} - {children}

}

// ...

render() {
  return (

      <PlainFunctionComponent thing="yep">
        children!
      </PlainFunctionComponent>

  )
}

This simplifies many cases where you just want to render something static based on props and need no internal state tracking in the component.

Support plain function components as top-level components.

This would allow users to use such functions as entry-points into Etch-based views. It's less clear to me how something like this would look/work (or if it's really that necessary at all). I could see both the following cases being useful:

Just rendering some static Etch view directly from a VNode:

```javascript
let element = etch.render(functionReturningVNode(props))
document.body.appendChild(element)
```

Using a plain function to render a simple view that contains stateful components:

```javascript
function MyComponent({name}) {
  return <StatefulComponent name={name} />
}

let component = etch.render(MyComponent, {name: 'Alice'})
document.body.appendChild(component.element)
// later
component.update({name: 'Bob'})
```

I decided to drop case 2 detailed above. Since Etch components are objects with a consistent interface, it didn't seem to make sense to force plain functions in at the top-level. I did export a new etch.render that can be used to render simple VNodes directly to elements.

Okay, I think this is ready for some 👀. /cc @nathansobo

😍

It seems like there are a few different issues in play here.

Using functions as child components. Instead of passing a constructor as a "tag name", you want to pass a function returning JSX. This may be a matter of detecting whether the return value is a JSX expression or a component object and doing the right thing. Unfortunately, to conform to people's expectations about how constructors work, we always call child component functions with new assuming they're constructors. Is there any way to definitively tell whether something is actually a constructor, perhaps by checking prototypes or something? That would help the efficiency of such a polymorphic move.

Easily defining component objects via functions. This seems like a library or helper function to me that just takes the function and does the work of setting up a simple component that calls etch.initialize and etch.update at the right times, something akin to your etch.stateless idea. I'm not fully convinced this is something we should include in etch core at this time, but I'm not 100% opposed and could be convinced.

More amorphous concerns about working with JSX and functions that return it. Given a JSX expression, how do I render it to DOM nodes? Given a function returning JSX, what else useful can I do with it outside the framework of the Etch component lifecycle methods. For this, I originally exported some of the primitives we use internally such as diff, patch, render etc. This may be something we could explore again, but I want to see use cases to inform the decision.

Item 2 isn't very important to me; originally, etch.stateless was simply a way to support item 1. Now it's used to get around the fact that I'm not sure what the best way is to determine if a function is a constructor or not; thus I stopped exporting it from Etch (it's only used internally). If we can detect if a function isn't a constructor (and just returns JSX), then as per your first point, we could probably just call the function and do away with etch.stateless completely.

Would it make any sens to simply have a etch.fromRenderFunction(fn) helper that scaffold a basic life cycle component and use the function to render it?
I understand there's design intent to hide etch as a implementation detail, but it seems the amount of boilerplate copy paste may be inconvenient in some case. Also it seems that because of virtual dom there's always some amount of state to maintain, live object VS jsx string.

@nathansobo

Is there any way to definitively tell whether something is actually a constructor, perhaps by checking prototypes or something? That would help the efficiency of such a polymorphic move.

BTW this is exactly what this PR is doing now — it creates a Widget from a plain function if that function doesn't have a render method on its prototype.

Chatted with @nathansobo a bunch today and we ultimately decided to back out of this, in favor of a solution like the one implemented in 88e756feff3c33769dc47fc53e193b49d8e53260 due to complexities around ensuring that the right version of etch is used to update functional components. This solution will live in userland, at least for now.

@nathansobo we talked about moving this to userland, but doesn't that result in the userland module that provides the stateless function using initialize and update from its version of etch, and the user's module using the etch.dom constructors from its version of etch?


ui feature: app 'downloading...' and 'installing...' modals are confusing

Is your feature request related to a problem? Please describe.
When I download or install an app, there is a modal which pops up. At first I wasn't sure if the download will continue if I click 'X', so  I was reluctant.

Describe the solution you'd like
For example, instead of using a modal, this button 'Download' could just say 'Downloading...'

This button here could also say 'Downloading...':

And analogously for installs,
here:

and here:

#372


Add attribution to redirections to mfT

We redirect users to mfT from within the product (e.g. "You're trying to target a deployment, this is supported in mfT"). We need to be able to attribute website visits to these links in order to analyze them, do A/B tests, etc.

More details:

use query parameters "utm_source" and "utm_medium" (most others get removed by plausible)
differentiate between features that cause the redirect eg. multipod separate from copy_target
track both the source message (above) and the source platform i.e. VSCode/IntelliJ/CLI
most links are to documentation on MfT, there is one to app.metalbear.co which can be handled separately

This will require some extra care in the IntelliJ plugin, since links in notifications there are not processed/rendered - just embedded raw.


getting full file system access

I understand the idea of sandboxing file system access, but I'm working on a project where I fully trust the script I'm running inside LiquidCore and the virtual file system makes things quite difficult for me, i.e. I need to constantly map between paths of the environment and my script.
I would highly welcome an option to allow full access to the hosts file system. If there already is such an option, I'm afraid I haven't found it.

Hi @Znerole, as it currently stands, no such option exists.  This was an intentional design decision, as the goal is to support multiple instances running simultaneously that can't interfere with the rest of the app.  The idea is that eventually I would like this to be a general "micro app" development environment where app developers could drop third party micro-apps into their project without obvious security holes.  But I am quite far from that vision at the moment.
There is a very simple way to hack this, but it requires you to build LiquidCore on your own (i.e. you can't use the published libraries).
For Android, change var access = 0; to var access = 3; in FileSystem.java: https://github.com/LiquidPlayer/LiquidCore/blob/bf9cdcdf5968f843860a253e55a13ac966b0b814/LiquidCore/src/main/java/org/liquidplayer/node/FileSystem.java#L377
For iOS, do the same in FileSystem.m:https://github.com/LiquidPlayer/LiquidCore/blob/bf9cdcdf5968f843860a253e55a13ac966b0b814/LiquidCore/src/main/java/org/liquidplayer/node/FileSystem.java#L377
You will still have the virtual file system anchored at /home, but accesses outside the sandbox won't automatically throw ENOACES.  Instead, if they resolve somewhere, they should work as expected.
I suppose I could expose this as an option when creating the MicroService, but I wonder how common this use case is.

Hi Eric,
thanks for your help!
I know where you're coming from regarding the micro apps. In my case, I simply need to run a set of existing nodejs applications on Android/iOS and I turned to LiquidCore because it is by far the best available nodejs port (even though it is more).
That aside, an alternative to giving full file system access could be to allow configuring custom "symlinks". Full file access would be mapping "/" -> "/", but more restrictive patterns would be possible, like for the current "/home" links.
I might try to work on this, but perhaps not too soon. For now, I will try your suggestions to build a patched LiquidCore.
Best Regards
Lorenz

Hi @Znerole -
I have added this functionality which will get pushed with the next release.
Android Example
  android.content.Context context = ...;
  MicroService service = ...;

  final String dir = context.getFilesDir().getAbsolutePath();
  service.getProcess().exposeHostDirectory(dir, Process.kMediaAccessPermissionsRW);

Assuming dir is something like /data/data/0/org.foo.bar/blahblah, this directory will now be available to the micro service:
  const fs = require('fs')
  let content = String(fs.readFileSync('/data/data/0/org.foo.bar/blahblah/SomeFile.txt'))

iOS Example
  service.process.exposeHostDirectory(NSHomeDirectory(), mediaAccessMask:PermissionsRW)

This has been added to 0.7.4


Feature of this plugin

Hello,
We plan to create a new application on iOS (iPhone and iPad) and we want to know if we can use this plugin to make calls through our phone system (asterisk & WebRTC). Is there a function that accept sip credentials?
Thanks.

Please use the public mailing list for questions about the plugin.
This plugin exposes the WebRTC JavaScript API into iOS Cordova based apps. Nothing else. If you want to use SIP you need a JavaScript SIP library (such as JsSIP).


gpio_emul: Fix bug with input & output pins

Change gpio_emul_input_set_masked_pend to log when it returns an error.
Changed all calls to gpio_emul_input_set_masked* to check the return
value.
Added a test case that sets and reads emulated 2 gpios to make sure
they don't interact with each other. Fails before this cl, passes
afterwards.
./scripts/twister -T tests/drivers/gpio
The function gpio_emul_input_set_masked_pend will not set the input
values if there are bits set in the value that are not in the mask. In
almost every call to that function, the value wasn't being limited to
bits set in the mask, so they were failing if there was more than one
gpio configured for INPUT|OUTPUT with a value of 1.

The function gpio_emul_input_set_masked_pend will not set the input values if there are bits set in the value that are not in the mask.

My originally implementation operated the way you describe but I was asked to change it so that it would set bits regardless of what the mask was, because it reflected more closely what actual hardware does.
Generally, GPIO-oriented registers may return values that fall outside of the provided mask. E.g. an application is perfectly OK to use a mask of (-1) to refer to all pins, regardless of which are actually in use, and that should not trigger an error.
cc: @pabigot

The function gpio_emul_input_set_masked_pend will not set the input values if there are bits set in the value that are not in the mask.

My originally implementation operated the way you describe but I was asked to change it so that it would set bits regardless of what the mask was, because it reflected more closely what actual hardware does.
Generally, GPIO-oriented registers may return values that fall outside of the provided mask. E.g. an application is perfectly OK to use a mask of (-1) to refer to all pins, regardless of which are actually in use, and that should not trigger an error.
So currently, I do not believe this change is correct or required.

That is why I added the new test, which fails without my changes. The test demonstrates that the code does not work as intended.
If you called gpio_emul_input_set_masked_pend with a mask of -1 and a value of 3, that would work fine. However if you call it with a mask of 3 and a value of -1, it will return an error, which is exactly what the code in

Can you please remove the added log messages and whitespace changes? It would be easier to review if the change only reflected what the minimal necessary changes.

There are no whitespace changes, so I don't understand what you mean.  The only "whitespace" changes are where the line was <80 chars, I added text making it over 80 chars, and so I wrapped it. These are the minimal necessary changes.

Additionally, why was it necessary to modify the test suite?

I added a new test to prove that the code was not working correctly, and the test passes after my changes to prove that they work.

However if you call it with a mask of 3 and a value of -1, it will return an error, which is exactly what the code in

I'm not active with Zephyr, but my recollection was the design was intended to allow -1 to be passed as a mask meaning "all pins, even if some are missing" but also as a value meaning "set all pins even if they're outside of the mask".  So it sounds to me like the code is wrong.

I'm not active with Zephyr, but my recollection was the design was intended to allow -1 to be passed as a mask meaning "all pins, even if some are missing" but also as a value meaning "set all pins even if they're outside of the mask". So it sounds to me like the code is wrong.

So would you suggest completely removing the error return at line 302?
if (values & ~mask) {
	return -EINVAL;
}

I don't know.  At the time I was working GPIO, that would be the wrong thing to do.  Other GPIO drivers from that time wouldn't treat that as an error.  What do they do now?  An emulator should generally behave like others; if real hardware rejects the combination so should the emulator.
Though IIRC the "emulator" infrastructure is a little unusual, so if this is in a function that is invoked by emulator-specific code that instructs the emulator how to behave, rather than in code that's reached using GPIO driver functions, an error might be appropriate.
I defer to @cfriedt to figure out the best overall approach.

Though IIRC the "emulator" infrastructure is a little unusual, so if this is in a function that is invoked by emulator-specific code that instructs the emulator how to behave, rather than in code that's reached using GPIO driver functions, an error might be appropriate.

In this case, my problems are in emulator code calling other emulator code and passing data which causes errors and ignoring those error codes. So my change ignores whether it is proper to return errors and always passes data that won't cause errors instead. I also changed the code to not ignore the errors, in case something like this comes up again.

I defer to @cfriedt to figure out the best overall approach.

A good test would be to compare against a few different hardware platforms and report results here.
Also, it would be great if @mnkp could weigh in as the current GPIO maintainer.
Ultimately, gpio_emul must be consistent with non-emulated hardware.

Ultimately, gpio_emul must be consistent with non-emulated hardware.

I can guarantee there is no hardware that lets you set one output gpio and read the value back, but if you set 2 output gpios, the 2nd one reads as 0.  That is the current behavior of the emulator.

@mnkp I made the changes you requested. Please take another look. The test still passes.

Can you please remove the added log messages and whitespace changes? It would be easier to review if the change only reflected what the minimal necessary changes.
Additionally, why was it necessary to modify the test suite?

@cfriedt Can you please resolve this?

Just for clarification, the title of this PR is inaccurate, as the existing previous behaviour was correct based on the previous requirements. I'm fine with those requirements evolving though, as long as nothing breaks and it is still useful.

Just for clarification, the title of this PR is inaccurate, as the existing previous behaviour was correct based on the previous requirements (i.e. there was no "bug"). I'm fine with those requirements evolving though, as long as nothing breaks and it is still useful.

There was a bug, in that calling gpio_emul_driver->port_set_bits_raw() to enable a OUTPUT|INPUT pin, followed by gpio_emul_driver->port_get_raw() to read that same pin would return 0 for the value if there were any other GPIO output pins also set to 1.

There was a bug, in that calling gpio_emul_driver->port_set_bits_raw() to enable a OUTPUT|INPUT pin, followed by gpio_emul_driver->port_get_raw() to read that same pin would return 0 for the value if there were any other GPIO output pins also set to 1.

Thanks for clarifying. That does sound like a bug. Please create an issue to link against this PR, and update your commit to say Fixes #[issue].
I'll add the appropriate labels.

Please create an issue to link against this PR, and update your commit to say Fixes #[issue].

done

Fixes #40646


Floe 545

@jhung please review, thanks!

@dayotte package-lock.json and .DS_Store should not be included in the commit.
In the future, to avoid checking these in, edit your .gitignore file and add those two files to the list. For me, I typically git add <filename> for every file manually so I only commit the files I intend to.

@jhung @dayotte: the images don't seem to be showing up on the site https://guide.inclusivedesign.ca/activities/CollaborativeArtWarmup.html


METRON-547 Create integration components for Yarn and Zookeeper, use them in Maas Tests

Standardize the Maas Integration testing to use the Component/ComponentRunner system and create re-usable components for Yarn and Zookeeper
Test with mvn clean integration-test

Could you please rename this preface METRON-547?

sorry

I dig it.  +1 by inspection.

changed based on review, thanks!


Use of PSF trademarks

Hello,
I'm Van Lindberg with the PSF. I'm glad you are building things for Python, but I unfortunately need to ask that you change the name of your project and stop using the PyPI logo.
It is fine to re-implement the PyPI interfaces, but unfortunately you cannot use the PyPI logo or the name "PyPI" to describe your project.
The reason why is that those terms refer exclusively to the PyPI repository run by the PSF, and we don't want to open the door for any confusion as to whether they are pulling their packages from PyPI or from a private repository.
Questions? Just reply here or email me at van -at- python.org.
Thanks,
Van

@VanL Agree. I will change the logo and project name today.

Thanks! PyWharf is great, and thanks for being so responsive. As you update your documentation, you can say "a private package repository, like the PyPI repository," or similar, so as to make sure it is consistent.
Thanks again for being so helpful.
P.S. Sorry for accidentally creating three duplicate issues.


Show range in new reading

Current:
Systolic 164 (high: stage 2)
Diastolic 82 (high: stage 1)
Average 162/87
Proposed:
Systolic 164 (high: stage 2 [140-179])
Diastolic 82 (high: stage 1 [80-89])
Average 162/87  [140-179] / [80-89]

It now shows the range and lables for the averages.


Completion returning incorrect seed for xxx.func(

returning "func(" instead of ""
but I am about to do a big checkin so I will fix this bug tomorrow

Fixed along with similar cases


Fix search by json logic not working

Also add support for the "in" operator for strings.
Related JIRA tickets : WC2-167
Self proofreading checklist

[X] Did I use eslint and black formatters
[X] Is my code clear enough and well documented
[ ] Are my typescript files well typed
[ ] Did I add translations
[ ] My migrations file are included
[X] Are there enough tests

Changes
Add import of jsonlogic_to_q.
Make sure that the value passed to jsonlogic_to_q is a JSON object.
Fix the prefix field on which the query was applied.
Add a test to ensure it is working properly.
Slight change in jsonlogic_to_q to include the in operator
How to test
Call /api/mobile/entitytypes/{id}/entities with a valid json_content query param.

@quang-le I have indeed added a new operator, but we should test it with the other kind of data (arrays, etc.), as I have only tested with text, to add it in the web front-end. This could be added in a future PR if the need for this operator in the web front-end arises.

@mathvdh Je pense que la raison pour laquelle on n'utilise pas JsonLogic-py c'est parce qu'on veut faire les requêtes en DB et que JsonLogic-py ne fait que du traitement de données en mémoire.


Fix subtleties in rebuilding

Fixes a couple small bugs:
The method rebuild_at was slightly wrong in a couple ways:

Merge functions should run on canonicalized values, meaning we should take the previous value in a given function row and canonicalize it before merging it.
We should not unconditionally remove the old row in a table: the keys to a row may not have changed. Instead, run the merge function first and only remove the old row if needed.

On top of that there was (I think) an unintentional variable shadowing in the add method for "composite" indexes.
Fixes #121

Thanks for the fix!

We should merge this


how can I exclude the swagger /docs path from middleware auth ?

Hi @vikyw89,
We unfortunately didn't document this, thanks for pointing that out. The middleware takes a keyword argument called excluded_urls that expects a list of strings (relative paths)

Thank you for the information


Header file inclusion

Is there a way to let the tool add also header files to the project?
Thanks
FC

Hi @ciscoski,
Such feature is not available as per EWPtool 4.2.6.
Though it is a nice suggestion, hence I added it as feature request for a future version.
Stay tuned. Thanks.

Hi @ciscoski
We added it as an optional feature in EWPtool 4.2.7 which should cover your and similar use cases.
You can find more information in the Release Notes for EWPtool 4.2.7.
Please enjoy and let us know.

That is much appriciate.
Thanks


Delete inventory transformer and grouping code from the kustomize repo (deprecated)

Also perform documentation updates to refer to new way to perform pruning.

Donny Xia is doing this. He is not yet on github (from what I can tell), so I can't assign to him.

done


Use mousemove listner only then needed and remove afterwards

1. Why is this change necessary?
Every pixel the mouse moves on the screen or touch ... closeMenu is triggered and $.publish is fired. (User FroshProfiler - available/triggered JS subscriber and on 4k Screen the browser nearly crashes).
Selector is on body!
2. What does this change do, exactly?
Adds the needed event-listener if the menu is open an removes it afterwards. Still a lot of calles of onMouseMove but line 255 returns the function and no closeMenu is used.
First Pageload has no event on body until the menu is triggered and never on off-canvas menu/mobile.
Even better would be if advanced menu panel would be excluded like body:not(.advanced-menu). So unnenned calls on onMouseMove are gone, but few tries didn't work. Tried body:not(.advanced-menu), $body = $('body').not('.advanced-menu') and  $body.on('mousemove touchstart',":not(.advanced-menu)", $.proxy(me.onMouseMove, me)); (or [data-advanced-menu="true"]), but maybe somebody has a better approach.
3. Describe each step to reproduce the issue or behaviour.
Add a console log to closeMenu or enable FroshProfiler. Better script evaluation time on Mobile Lighthouse (difference depends a lot on your setup and other JS onload)
6. Checklist

[x] I have written tests and verified that they fail without my change
[x] I have squashed any insignificant commits
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/issues/SW-24297
Please use this issue to track the state of your pull request.

Hey @xf-, thank you very much for your contribution! 💙


Add ability to en- and disable OPCache

https://forge.laravel.com/api-documentation#enable-opcache

Thanks :)


PyPIM integration guide

Write the integration guide for integrating PyPIM in a pyansys library.
Additional changes:

Improve the main README with a configuration section
document building a channel for a non standard grpc port

Fixes #12
Fixes #13

Codecov Report

Merging #55 (d8ccf56) into main (8312e77) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #55   +/-   ##
=======================================
  Coverage   95.15%   95.15%
=======================================
  Files           7        7
  Lines         330      330
=======================================
  Hits          314      314
  Misses         16       16

Impacted Files
Coverage Δ

src/ansys/platform/instancemanagement/instance.py
97.72% <ø> (ø)

Continue to review full report at Codecov.

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


Cherry-Picked: Broken up QuantumSimulator into CommonNativeSimulator and QuantumSimulator

Cherry-picked to main the feature-branch changes of these 2 PRs:

#853: Broken up QuantumSimulator into CommonNativeSimulator and QuantumSimulator,
#857: Reverting the Allocate() change.

@kuzminrobin What is the intent of this change? Does the additional layer of indirection make the infrastructure more compatible with the sparse simulator? The changes seem reasonable, it's just hard to tell from the files what this enables.

@swernli wrote:

@kuzminrobin What is the intent of this change? Does the additional layer of indirection make the infrastructure more compatible with the sparse simulator? The changes seem reasonable, it's just hard to tell from the files what this enables.

Brief extract from an email that I have written to Bettina and Cassandra:
I would like to cherry-pick from the feature branch feature/sparse-simulator to the main the change that extracts from the QuantumSimulator the part common for QuantumSimulator and SparseSimulator – CommonNativeSimulator (see this PR). It just seems more natural to simplify the Dump on top of that change, because some of the code fragments need to relocate from IQSharp to the class common for QuantumSimulator and SparseSimulator (rather than to QuantumSimulator).
Then I plan to re-do the Dump changes on the QuantumSimulator side (with improvements that move some code to CommonNativeSimulator).

@swernli wrote:

@kuzminrobin What is the intent of this change? Does the additional layer of indirection make the infrastructure more compatible with the sparse simulator? The changes seem reasonable, it's just hard to tell from the files what this enables.

This is preparation for SparseSimulator, which has common part with QuantumSimulator. That common part is being extracted into a common parent - CommonNativeSimulator.


update docblocks

when we return an array of a specific type (object or scalar) we can use this syntax to be more specific, and help out our IDE.
documentation: https://docs.phpdoc.org/references/phpdoc/types.html#arrays
precedence: https://github.com/laravel/framework/blob/5.5/src/Illuminate/Console/Scheduling/Schedule.php#L140

I don't think any other docblock in the framework follows this convention?

click the 'precedence' link.  there's also a couple others.

Ah you're right, definitely 👍  for me


filepath.Join instead of path.Join on windows

This broke log uploads, possibly. Anyway, path.Join doesn't work on Windows. Thanks Golang!
@maxtaco @patrickxb

Fails C/I but otherwise good.


Handle the case when on_stuck_return is a function returning None

#1083
Please check if you agree with the argument type for on_stuck_raise. Is Union[None, X] or Optional[X] preferred by the way?

I prefer Optional[X] but not enough to consider it a problem.

Automerge: started


Pre populate with values

It is really a nice plugin but I am not able to find a solution to prepopulate magic search with some values.Is it possible to prepopulate the magic search with values? if so then how ?

If your script like this
var dataSource = [     {id: 1, firstName: 'Tim', lastName: 'Cook'},     {id: 2, firstName: 'Eric', lastName: 'Baker'},     {id: 3, firstName: 'Victor', lastName: 'Brown'}, ]; $('#start-magicsearch').magicsearch({     dataSource: dataSource,     id: 'id',     ...... });
you can add data-id on your input,like this
<input data-id="1,3">
now you will see some values were populated in your input.

It's working for me now
Thanks


Crash when using AOT compiled code containing namedtuples

Reporting a bug

[x] I am using the latest released version of Numba (most recent is visible in
the change log (https://github.com/numba/numba/blob/master/CHANGE_LOG).
[x] I have included below a minimal working reproducer (if you are unsure how
to write one see http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports).

OS: Windows 10
Numba version: 0.42.0
Reproducer:
import collections
import numba as nb
import numba.pycc as pycc

T = collections.namedtuple('T', ['a', 'b'])
t_type = nb.types.NamedTuple((nb.i8, nb.f8), T)
cc = pycc.CC('test')

@cc.export('instantiate', t_type())
def instantiate():
    return T(1, 2.0)

cc.verbose = True
cc.compile()

Compiles ok. Then on runtime:
import test
test.instantiate() // crashes

workaround:
import test
T = collections.namedtuple('T', ['a', 'b'])
test.instantiate() // does not crash

The namespace that T needs to be in depends on the namespace it was in during compilation. In this case, that namespace is __main__.

Thanks for the report, I can reproduce locally. Back trace:
#0  PyObject_Call () at /tmp/build/80754af9/python_1544812943833/work/Objects/call.c:225
#1  0x00007f5d8df1d334 in ._pycc_method_instantiate () from test.cpython-37m-x86_64-linux-gnu.so
#2  0x0000556b5aaf0004 in _PyMethodDef_RawFastCallKeywords ()
    at /tmp/build/80754af9/python_1544812943833/work/Objects/call.c:690

note: probably has a runtime reference to the namedtuple type

another workaround for me is to just remove python visibility to the namedtuple:
import collections
import numba as nb
import numba.pycc as pycc

T = collections.namedtuple('T', ['a', 'b'])
t_type = nb.types.Tuple((nb.i8, nb.f8))
cc = pycc.CC('test')

@cc.export('instantiate', t_type())
def instantiate():
    return (1, 2.0)

@cc.export('access', nb.i8(t_type))
def access(t):
    t = T(*t)
    return t.a

cc.verbose = True
cc.compile()


betterlockscreen: 4.0.4 -> 4.1.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/pavanjadhaw/betterlockscreen/releases.
meta.description for betterlockscreen is: Fast and sweet looking lockscreen for linux systems with effects!
meta.homepage for betterlockscreen is: https://github.com/pavanjadhaw/betterlockscreen
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 4.1.0 with grep in /nix/store/r7cf4nsy0s9vafbc3rcabkzd62iw3nwn-betterlockscreen-4.1.0
found 4.1.0 in filename of file in /nix/store/r7cf4nsy0s9vafbc3rcabkzd62iw3nwn-betterlockscreen-4.1.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
betterlockscreen

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/r7cf4nsy0s9vafbc3rcabkzd62iw3nwn-betterlockscreen-4.1.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A betterlockscreen https://github.com/r-ryantm/nixpkgs/archive/5df58b1a3be2b916515e349ef4865ff9494af082.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/r7cf4nsy0s9vafbc3rcabkzd62iw3nwn-betterlockscreen-4.1.0
ls -la /nix/store/r7cf4nsy0s9vafbc3rcabkzd62iw3nwn-betterlockscreen-4.1.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

betterlockscreen

Maintainer pings
cc @eyJhb @SebTM for testing.

Duplicate of #251772


cpp-linter: If no --tidy-checks are specified .clang-tidy file config is overridden

If a .clang-tidy exists and you use cpp-linter without --tidy-checks option,
the default cpp-linter checks are used (boost-*,bugprone-*,performance-*,readability-*,portability-*,modernize-*,clang-analyzer-*,cppcoreguidelines-*).
This overrides the .clang-tidy checks in this config-file.
EXPECTED BEHAVIOR
If no -tidy-checks option is used, the checks from the .clang-tidy config-file should be used.

You can pass an empty string instead of omitting the arg. This design decision originated from usage in cpp-linter-action.
This has been documented: https://cpp-linter.github.io/cpp-linter/cli_args.html#cmdoption-c

IMHO that is still a bad design decision:

The user specifies a .clang-tidy file
The tool thinks it knows better when no command-line option is provided

Mmh...

Given that cpp-linter-action also sets the same default value: https://github.com/cpp-linter/cpp-linter-action/blob/77982d55693d154611fbb8b1304a447c44ae6f2d/action.yml#L28-L31. I guess we could change the default here to be an empty string.
But if no .clang-tidy file exists and no checks have been specified, then this situation may need further compensation in run_clang_tidy() to skip running clang-tidy at all (which can be done by passing --tidy-checks='-*') to avoid needless execution time. I'm not enthusiastic for this change because it would require re-implementing a check for the presence of any relevant .clang-tidy file(s). This presence check would be slower to execute in python and is already done faster with clang-tidy itself; I don't want to "re-invent the wheel".
In the end, it should be noted that this pkg is not clang-tidy. So, we can't be expected to behave exactly like a combination of clang-tidy and clang-format behavior (that would be too brittle).


FLEX-4585 ~ Fixes null pointer exception when updating relay status data

SonarQube analysis reported 2 issues
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 Ssld.java#L61: Make "eans" transient or serializable.
 Ssld.java#L71: Make "relayStatuses" transient or serializable.

All is well.


Warning: Hammer: ref is not a prop. Trying to access it will result in undefined being returned. If you need to access the same value within the child component, you should pass it as a different prop.

I'm using:
"react": "15.0.1",
"react-dom": "15.0.1",
"react-hammerjs": "1.0.1",

Everything works like a charm, but I get the following error in console:
Warning: Hammer: `ref` is not a prop. Trying to access it will result in `undefined`
being returned. If you need to access the same value within the child component,
you should pass it as a different prop.

I think that React deprecated string refs and now only supports callback refs.
https://facebook.github.io/react/docs/refs-and-the-dom.html#legacy-api-string-refs
Probably each instance of a string ref has to be updated to use a callback ref instead.

As far as I can see the warning is thrown here where it is tried to access the ref prop directly.

Bump, seeing this exact issue.


Don't advise to use Debian Installer initrd

The Debian Installer initrd-s are special purpose and will start the debian
installer instead of allowing the use of a prebuilt rootfs. Remove the hint of
using them because of that.
Signed-off-by: Eddy Petrișor<EMAIL_ADDRESS>

When I used the DI initrds I got the installer screen, this might be a useful way to create a clean rootfs, but it will not contain the hacks and pine64 specific fixes needed.


Use GitHub OAuth role from GitHub

Remove it from this repository.
If the other devs like this approach then we can extract a lot of other roles that are likely even more reusable than github_oauth.

I also like these changes. Looks good.


[FEAT]: Discriminated union support

Describe the need
There are quite a few types that are discriminated unions. See #178 for an example of one. Currently we sidestep the issue by deserializing to dynamic and letting the SDK consumer figure out what the actual type is.
Discriminated unions aren't likely to make it into C# in the near future^1 (and I'm not likely to rewrite this SDK in F#). The only viable alternative I see right now is OneOf. However, the System.Text.Json story doesn't seem to be fully fleshed out.
SDK Version
No response
API Version
No response
Relevant log output
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Another potential avenue: https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/polymorphism


Mibdump: Multiple MODULE-IDENTITY in MIB

Hello,
I try convert mib file to json with mibdump, but file contains multiple MODULE-IDENTITY (ex.: http://www.circitor.fr/Mibs/Mib/R/RAISECOM-SYSTEM-MIB.mib) and script ends with error: Failed MIBs: RAISECOM-SYSTEM-MIB (Duplicate module identity at MIB RAISECOM-SYSTEM-MIB).
Is there any option to fix this trouble?

People shouldn't define more than one module identity items in a MIB document, but overall it is harmless. PySMI shouldn't raise an error in this case.
You will have to use pysmi-lextudio 1.3.2 and above where we will remove this error.


Create wiki with samples

Create a new wiki page with totally nice samples
Fix old samples - move Console output inside of methods.
Main Readme.dm should contain not very much samples but mainly very interesting and short.

Aggregated to issue https://github.com/iivchenko/ShogunLib/issues/18


fix: script dir independent of git

Using dirname, realpath and BASH_SOURCE allows the script to be called without relying on the project being a git repository. This is useful for calling the script using the release tarball.

@mook-as Not if it's not totally necessary. As soon as we start using this pattern everywhere, it becomes a mess when moving scripts around due to the relative paths.


Fix wrong link

https://github.com/nyu-ossd-s19/yc2311-weekly/blob/cff76b9f4182f7e41817420a7c27bc061ef0e305/_config.yml#L44 This should be updated to https://nyu-ossd-s19.github.io/yc2311-weekly . I think the 18 is probably because Joanna forgot to update the url

You're absolutely right @TrottPilgrim
Thanks for pointing this out! I'll fix it and close the issue.


Update the chrome extension to fix the CRX_HEADER_INVALID error

Packed a new Chrome extension since it wouldnt load correctly :)

Is this just a rebuild of the existing code? How do I know? (I trust you of course but I suppose this is not something I could be sure of?)
And btw, wouldn't you like to try the new Joof.app Mac version and Chrome extension instead?

Yes it's just a rebuild of the existing code. I just packed a new extension. Pinky swear!
And YES! Would love to give it a try 👯♂

Also, if you wanna make sure, just unzip the crx file. Its just a regular zip file :)

💙💚💛💜❤