Add syntactic filtering of side conditions after simplification

This PR introduces a heuristic in the equation application process:

after simplifying the predicates in the requires clause, see if an of them is syncatically present in the path condition (which is known to be true) and delete them

There's a slight slowdown on KEVM with this change.
I've measured with 5 workers and then re-measured with 1 worker to exclude the noise. The results are almost identical, so it looks like https://github.com/runtimeverification/haskell-backend/pull/3853 has indeed worked.

5 workers

| Test                                    | georgy-second-side-condition-filterin time | master-b27210141 time | (georgy-second-side-condition-filterin/master-b27210141) time
|-----------------------------------------|--------------------------------------------|-----------------------|---------------------------------------------------------------
| mcd/vat-muluu-pass-spec.k               | 95.58                                      | 106.08                | 0.9010180995475113
| mcd/dstoken-approve-fail-rough-spec.k   | 87.8                                       | 92.12                 | 0.9531046461137646
| benchmarks/requires01-a0gt0-spec.k      | 42.37                                      | 44.38                 | 0.9547093285263631
| benchmarks/requires01-a0le0-spec.k      | 42.16                                      | 44.06                 | 0.9568769859282795
| examples/solidity-code-spec.md          | 104.39                                     | 108.08                | 0.965858623242043
| examples/erc20-spec.md                  | 159.87                                     | 165.51                | 0.9659235091535255
| erc20/ds/transferFrom-success-2-spec.k  | 82.37                                      | 79.47                 | 1.0364917578960615
| erc20/hkg/allowance-spec.k              | 44.03                                      | 42.38                 | 1.038933459178858
| erc20/ds/transferFrom-success-1-spec.k  | 87.02                                      | 83.37                 | 1.0437807364759504
| erc20/ds/approve-success-spec.k         | 62.3                                       | 59.19                 | 1.0525426592329785
| erc20/ds/transfer-success-2-spec.k      | 69.46                                      | 63.66                 | 1.0911090166509583
| erc20/ds/transfer-success-1-spec.k      | 72.53                                      | 66.12                 | 1.0969449485783425
| erc20/hkg/transferFrom-success-2-spec.k | 63.49                                      | 55.33                 | 1.1474787637809507
| erc20/hkg/transferFrom-success-1-spec.k | 65.75                                      | 57.16                 | 1.1502799160251924
| erc20/hkg/approve-spec.k                | 50.16                                      | 43.55                 | 1.1517795637198622
| TOTAL                                   | 1129.28                                    | 1110.46               | 1.0169479314878518

1 worker

| Test                                    | georgy-second-side-condition-filterin time | master-b27210141 time | (georgy-second-side-condition-filterin/master-b27210141) time
|-----------------------------------------|--------------------------------------------|-----------------------|---------------------------------------------------------------
| mcd/vat-muluu-pass-spec.k               | 95.12                                      | 106.21                | 0.8955842199416252
| benchmarks/requires01-a0le0-spec.k      | 41.45                                      | 43.94                 | 0.9433318161128813
| benchmarks/requires01-a0gt0-spec.k      | 42.33                                      | 44.59                 | 0.9493159901323166
| mcd/dstoken-approve-fail-rough-spec.k   | 87.17                                      | 91.57                 | 0.9519493283826581
| examples/solidity-code-spec.md          | 103.97                                     | 108.35                | 0.9595754499307799
| examples/erc20-spec.md                  | 159.57                                     | 165.61                | 0.9635287724171244
| erc20/hkg/allowance-spec.k              | 44.09                                      | 42.5                  | 1.0374117647058825
| erc20/ds/transferFrom-success-1-spec.k  | 86.92                                      | 83.52                 | 1.0407088122605366
| erc20/ds/transferFrom-success-2-spec.k  | 82.64                                      | 79.22                 | 1.0431709164352436
| erc20/ds/approve-success-spec.k         | 61.96                                      | 58.62                 | 1.0569771409075401
| erc20/ds/transfer-success-2-spec.k      | 69.52                                      | 64.13                 | 1.0840480274442539
| erc20/ds/transfer-success-1-spec.k      | 72.11                                      | 65.94                 | 1.0935699120412496
| erc20/hkg/approve-spec.k                | 49.68                                      | 43.65                 | 1.1381443298969072
| erc20/hkg/transferFrom-success-1-spec.k | 65.94                                      | 57.27                 | 1.1513881613410162
| erc20/hkg/transferFrom-success-2-spec.k | 63.24                                      | 54.88                 | 1.152332361516035
| TOTAL                                   | 1125.7099999999998                         | 1110.0000000000002    | 1.0141531531531527

I have three recently re-enabled KEVM proofs failing on the feature branch:
FAILED src/tests/integration/test_prove.py::test_pyk_prove[mcd/flopper-tick-pass-rough-spec.k]
FAILED src/tests/integration/test_prove.py::test_pyk_prove[mcd/flopper-dent-guy-diff-tic-not-0-pass-rough-spec.k]
FAILED src/tests/integration/test_prove.py::test_pyk_prove[mcd/flopper-dent-guy-same-pass-rough-spec.k]

Will investigate mcd/flopper-tick-pass-rough-spec.k, as it seems to fail relatively quickly (140.20s)

The mcd/flopper-tick-pass-rough-spec.k fails because Booster gets unknwon from z3 when trying to decide a branch condition:
[booster][execute][term c784633][rewrite 0ee7a2c][detail] EVM.jumpi.true
[booster][execute][term c784633][rewrite 0ee7a2c][match][success] rewrite 0ee7a2c
...
[booster][execute][term c784633][rewrite 0ee7a2c][smt] Checking 1 predicates, given 34 assertions and a substitution of size 0
[booster][execute][term c784633][rewrite 0ee7a2c][smt] Predicates to check: _==Int_(_/Int_(chop(_)_WORD_Int_Int(_*Int_(#lookup(_,_)_EVM-TYPES_Int_Map_Int(VarACCT_ID_STORAGE:SortMap{}, "5"), #lookup(_,_)_EVM-TYPES_Int_Map_Int(VarACCT_ID_STORAGE:SortMap{}, _+Int_(keccak(_)_SERIALIZATION_Int_Bytes(_+Bytes__BYTES-HOOKED_Bytes_Bytes_Bytes(#buf(_,_)_BUF-SYNTAX_Bytes_Int_Int("32", VarABI_id:SortInt{}), "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL...truncated")), "1")))), #lookup(_,_)_EVM-TYPES_Int_Map_Int(VarACCT_ID_STORAGE:SortMap{}, _+Int_(keccak(_)_SERIALIZATION_Int_Bytes(_+Bytes__BYTES-HOOKED_Bytes_Bytes_Bytes(#buf(_,_)_BUF-SYNTAX_Bytes_Int_Int("32", VarABI_id:SortInt{}), "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL...truncated")), "1"))), #lookup(_,_)_EVM-TYPES_Int_Map_Int(VarACCT_ID_STORAGE:SortMap{}, "5"))
[booster][execute][term c784633][rewrite 0ee7a2c][smt] Check of Given ∧ P and Given ∧ !P produced (Sat,Unknown)
[Error#booster] SMT returned `Unknown'

and crashing. I've opened an issue to add retries in Booster.
Thankfully, the proof can go on if given a longer timeout, and we see in the logs that the predicate actually would get actually:
...
[booster][execute][term c784633][rewrite 0ee7a2c][smt] Predicates to check: _==Int_(_/Int_(chop(_)_WORD_Int_Int(_*Int_(#lookup(_,_)_EVM-TYPES_Int_Map_Int(VarACCT_ID_STORAGE:SortMap{}, "5"), #lookup(_,_)_EVM-TYPES_Int_Map_Int(VarACCT_ID_STORAGE:SortMap{}, _+Int_(keccak(_)_SERIALIZATION_Int_Bytes(_+Bytes__BYTES-HOOKED_Bytes_Bytes_Bytes(#buf(_,_)_BUF-SYNTAX_Bytes_Int_Int("32", VarABI_id:SortInt{}), "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL...truncated")), "1")))), #lookup(_,_)_EVM-TYPES_Int_Map_Int(VarACCT_ID_STORAGE:SortMap{}, _+Int_(keccak(_)_SERIALIZATION_Int_Bytes(_+Bytes__BYTES-HOOKED_Bytes_Bytes_Bytes(#buf(_,_)_BUF-SYNTAX_Bytes_Int_Int("32", VarABI_id:SortInt{}), "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL...truncated")), "1"))), #lookup(_,_)_EVM-TYPES_Int_Map_Int(VarACCT_ID_STORAGE:SortMap{}, "5"))
[booster][execute][term c784633][rewrite 0ee7a2c][smt] Check of Given ∧ P and Given ∧ !P produced (Sat,Unsat)

After increasing the timeout to 1 second, mcd/flopper-tick-pass-rough-spec.k still fails. The other two tests pass.
I think we should discuss this  further and possible wait on merging until we have https://github.com/runtimeverification/haskell-backend/issues/3884

KEVM performance numbers, excluding mcd/flopper-tick-pass-rough-spec.k:

Test
georgy-second-side-condition-filterin time
master-0f3148308 time
(georgy-second-side-condition-filterin/master-0f3148308) time

mcd/vat-muluu-pass-spec.k
105.48
116.19
0.9078233927188226

mcd/flopper-kick-pass-rough-spec.k
153.49
169.05
0.9079562259686483

mcd/end-pack-pass-rough-spec.k
195.32
212.04
0.921146953405018

benchmarks/requires01-a0gt0-spec.k
50.91
54.0
0.9427777777777777

examples/solidity-code-spec.md
122.11
127.34
0.958928851892571

benchmarks/encode-keccak00-spec.k
59.6
62.02
0.9609803289261528

mcd/end-cash-pass-rough-spec.k
303.58
315.39
0.9625542978534513

benchmarks/keccak00-spec.k
56.98
59.15
0.9633136094674556

kontrol/test-expectcalltest-testexpectstaticcall-0-spec.k
54.44
56.39
0.9654194006029437

benchmarks/storagevar02-nooverflow-spec.k
52.1
50.17
1.0384692047040063

erc20/ds/transferFrom-success-2-spec.k
98.47
94.56
1.041349407783418

mcd/flopper-cage-pass-spec.k
62.85
60.23
1.0434999169848913

kontrol/test-allowchangestest-testfailallowcallstoaddress-0-spec.k
58.01
55.58
1.0437207628643397

erc20/ds/transferFrom-success-1-spec.k
103.61
97.09
1.0671541868369554

erc20/ds/approve-success-spec.k
75.24
70.16
1.072405929304447

mcd/vat-addui-pass-spec.k
141.23
131.34
1.0753007461550175

erc20/ds/transfer-success-1-spec.k
86.57
79.04
1.0952682186234817

erc20/ds/transfer-success-2-spec.k
83.56
75.88
1.1012124406958357

mcd/vat-addui-fail-rough-spec.k
81.57
69.68
1.170637198622273

erc20/hkg/approve-spec.k
61.74
52.58
1.1742107265119819

erc20/hkg/transferFrom-success-1-spec.k
79.44
67.55
1.1760177646188008

erc20/hkg/transferFrom-success-2-spec.k
75.37
63.91
1.1793146612423722

Kontrol performance:

Test
georgy-second-side-condition-filterin time
master-0f3148308 time
(georgy-second-side-condition-filterin/master-0f3148308) time

FreshCheatcodes.test_address()
43.23
58.98
0.7329603255340793

AddrTest.test_notBuiltinAddress_symbolic(address)
55.83
65.31
0.8548461185117133

StructTypeTest.test_vars((uint8,uint32,bytes32))
35.72
40.84
0.8746327130264445

ConstructorTest.run_constructor()
96.39
109.73
0.8784288708648501

BlockParamsTest.testFee(uint256)
38.48
42.76
0.8999064546304958

BlockParamsTest.testChainId(uint256)
38.68
42.89
0.9018419211937514

AccountParamsTest.testDealSymbolic(uint256)
43.01
47.68
0.9020553691275167

BlockParamsTest.testRoll(uint256)
38.48
42.54
0.9045604137282557

ExpectRevertTest.testFail_expectRevert_false()
134.45
145.31
0.9252632303351455

FreshBytesTest.test_symbolic_bytes_length
103.04
109.31
0.9426401976031471

BytesTypeTest.test_bytes4(bytes4)
32.35
34.22
0.9453535943892462

BlockParamsTest.testWarp(uint256)-trace_options2
30.48
32.09
0.9498286070426923

HevmTests.prove_require_assert_false
70.82
74.2
0.9544474393530996

CounterTest.testSetNumber(uint256)
145.76
152.02
0.9588212077358241

AccountParamsTest.testNonceSymbolic(uint64)
94.58
98.61
0.9591319338809451

Setup2Test.test_setup()
31.46
32.8
0.9591463414634147

FeeTest.test_fee_setup()
65.07
67.73
0.9607264137014615

StoreTest.testGasLoadColdVM()
39.03
40.46
0.9646564508156203

SetUpTest.testSetupData()
79.38
76.51
1.0375114364135405

StoreTest.testLoadNonExistent()
38.73
36.92
1.0490249187432286

HevmTests.prove_revert
23.31
21.93
1.0629274965800273

ExpectRevertTest.testFail_ExpectRevert_failAndSuccess()
115.08
105.97
1.085967726715108

HevmTests.proveFail_all_branches
71.89
64.9
1.107704160246533

TOTAL
1465.2499999999998
1543.7100000000003
0.9491743915631818

test_foundry_prove.py::test_foundry_refute_node fails on both feature and master branches :shrug:

Measured KEVM performance again: no big difference, long-running proofs seem to benefit though.

Test
georgy-second-side-condition-filterin time
master-b6ab7a905 time
(georgy-second-side-condition-filterin/master-b6ab7a905) time

mcd/flopper-tick-pass-rough-spec.k
200.67
225.68
0.8891793690180786

mcd/flopper-kick-pass-rough-spec.k
147.07
163.6
0.898960880195599

mcd/end-pack-pass-rough-spec.k
187.88
203.43
0.9235609300496485

mcd/vat-muluu-pass-spec.k
105.56
114.24
0.9240196078431373

benchmarks/requires01-a0gt0-spec.k
51.15
55.28
0.9252894356005789

benchmarks/requires01-a0le0-spec.k
51.0
54.45
0.9366391184573002

erc20/ds/transferFrom-failure-1-d-spec.k
55.1
58.04
0.9493452791178498

benchmarks/overflow00-nooverflow-spec.k
51.71
54.27
0.9528284503408881

benchmarks/structarg01-spec.k
63.09
65.92
0.9570691747572816

examples/erc20-spec.md
179.97
187.77
0.9584598178622783

mcd/dstoken-approve-fail-rough-spec.k
96.62
100.74
0.9591026404605917

benchmarks/storagevar01-spec.k
49.24
51.15
0.9626588465298144

bihu/forwardToHotWallet-success-2-spec.k
60.67
62.89
0.9647002703132453

bihu/functional-spec.k
50.7
48.84
1.038083538083538

erc20/ds/transferFrom-success-2-spec.k
95.69
90.9
1.0526952695269527

erc20/ds/transferFrom-success-1-spec.k
98.98
93.41
1.0596295899796597

erc20/ds/approve-success-spec.k
72.96
68.09
1.0715229842855043

mcd/vat-addui-pass-spec.k
139.59
129.88
1.0747613181398215

erc20/hkg/approve-spec.k
59.66
54.34
1.0979020979020977

erc20/ds/transfer-success-1-spec.k
84.08
75.2
1.1180851063829786

erc20/ds/transfer-success-2-spec.k
81.59
72.85
1.1199725463280714

erc20/hkg/transferFrom-success-2-spec.k
72.77
62.23
1.1693716856821468

erc20/hkg/transferFrom-success-1-spec.k
77.54
66.17
1.1718301345020403

mcd/vat-addui-fail-rough-spec.k
82.32
69.49
1.1846308821413152

TOTAL
2215.6100000000006
2228.86
0.9940552569474981

There seems to be an improvement in Kontrol performance, although the proofs are rather short-running:
|---------------------------------------------------|--------------------------------------------|-----------------------|---------------------------------------------------------------
| FreshCheatcodes.test_address()                    | 42.9                                       | 57.59                 | 0.7449209932279909
| AddrTest.test_notBuiltinAddress_symbolic(address) | 55.29                                      | 63.67                 | 0.8683838542484686
| StructTypeTest.test_vars((uint8,uint32,bytes32))  | 35.57                                      | 39.31                 | 0.9048588145510048
| BlockParamsTest.testFee(uint256)                  | 37.71                                      | 41.67                 | 0.9049676025917927
| BlockParamsTest.testRoll(uint256)                 | 37.7                                       | 41.3                  | 0.9128329297820824
| AccountParamsTest.testDealSymbolic(uint256)       | 42.11                                      | 46.06                 | 0.9142422926617455
| BlockParamsTest.testChainId(uint256)              | 37.76                                      | 41.12                 | 0.9182879377431906
| AssertTest.prove_assert_true()                    | 29.39                                      | 31.19                 | 0.9422891952548894
| FreshBytesTest.test_symbolic_bytes_length         | 101.17                                     | 106.05                | 0.953983969825554
| StoreTest.testLoadNonExistent()                   | 36.65                                      | 38.22                 | 0.9589220303506018
| ConstructorTest.run_constructor()                 | 91.72                                      | 95.23                 | 0.9631418670587
| AssertTest.test_assert_true()                     | 34.9                                       | 33.35                 | 1.0464767616191903
| AssumeTest.test_assume_true(uint256,uint256)      | 39.85                                      | 38.06                 | 1.0470310036784025
| HevmTests.proveFail_all_branches                  | 72.68                                      | 69.1                  | 1.0518089725036182
| HevmTests.prove_revert                            | 29.63                                      | 22.4                  | 1.3227678571428572
| TOTAL                                             |<PHONE_NUMBER>000001                          |<PHONE_NUMBER>000002     | 0.948594829390831

No difference in mx-backend performance.

@geo2a what example prompted this change? Was it something on one of our commercial engagements? If so, then we should make sure that example gets upstreamed into one of the relevant test-suites, so that we know we are actually testing the new feature.


Error in shap.columns

Problem resolved. Please download new version of explainx.ai using
pip install explainx


option for comment from articles page

Add an option to add comment to an article directly from the articles page. The model for comment is already built, just add a link to add comment.

while saving  comment i am facing this error!

Request Method:
POST

http://<IP_ADDRESS>:8000/articles/1/comment/

3.0

IntegrityError

NOT NULL constraint failed: articles_comment.article_id


Export/import dsk/sma

It would be handy!

Importing DSK or ZIP is already possible. Use Drag&Drop on the CPC screen or the drop field in "Input". There you can also select a file for import. CPC files are extracted and put in "storage".

Great! What about exporting? I have not found any online tool able to do that

Importing SNA is also possible now (0.1.9). CpcBasic will put it under storage. When selected, the BASIC source is extracted (assuming start address &170) and the memory, including the screen memory. Screen mode and colors are also set. Other parts like Z80 register are ignored.
Exporting will be a bit trickier because it must be valid hardware/software state for Z80 based emulators.

Clear for sna but there should be no such problem for dsk export right?

Kind of related : export in basic token file format

Fantastic! For whatever reason I totally missed the export function...

Now you can also export multiple files from storage (v0.2.5).


feat: add error component info

PR summary

Add GetComponentInfo to support new Go core problem types.
Fixes: part of s905 (needed for #468 too)
Note: An existing issue is required before opening a PR.
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)
[ ] New tests
[ ] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?

Cannot init new style core errors without component info.
What is the new behavior?

Add GetComponentInfo so we can support making new style core errors.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Replaced by #474


Feature: next/prev

Of course, I can use this mapping
nnoremap <C-h> :lua require("harpoon.ui").nav_file(1)<CR>
nnoremap <C-t> :lua require("harpoon.ui").nav_file(2)<CR>
nnoremap <C-n> :lua require("harpoon.ui").nav_file(3)<CR>
nnoremap <C-s> :lua require("harpoon.ui").nav_file(4)<CR>

but this is not quite what I need.

This is not documented but it's available with nav_next and nav_prev.

document it pleases! :)


Simplify / fix validation of imported users

Simplifies validation and lets us remove Angular sign up code once refactoring is done.
When user logs in for the first time, he will see something like this:

Now that I see the alert message I think it should be changed to:
"Your account was imported from another site. To access this portal you need reset your password. A link to change your password has been sent to

@scytacki, thanks, messages and email content are updated now.

👍


New input to specify a TeX package repository?

Which will be passed to -repository option of install-tl and tlmgr.
This would make the result of CI more stable/reproducible.
Use case: retry (by using action Wandalen/wretry.action) a failed uses: teatimeguest/setup-texlive-action@v3 step with a static repository, so CI can pass before waiting for any auto-chosen CTAN mirrors to be synced up.

Thanks for the suggestion!
A new input repository has been added in v3.1.0. Setting this enforces the action to always use the specified repository and suppresses fallback to other repositories.
Example:
- uses: teatimeguest/setup-texlive-action@v3
  with:
    repository: https://example.com/path/to/tlnet/

There are some limitations at this time:

Only http/https repositories are supported. This is because the action uses @actions/http-client internally, but I am considering adding support for other protocols.
Versions prior to TeX Live 2012 are not supported because the tlmgr repository subcommand is not yet implemented in these versions.
The TeX Live version of the repository must match the version specified by the action input. Perhaps it might be useful to have an option to always use the remote version?

Many thanks!
Maybe the doc of new input repository in README can have an example of the form of URI it expects/supports, or just a link to the TeX Live manual (though I'm a bit afraid the anchor name x1-280003.3.1 would vary: https://tug.org/texlive/doc/texlive-en/texlive-en.html#x1-280003.3.1).

The TeX Live version of the repository must match the version specified by the action input. Perhaps it might be useful to have an option to always use the remote version?

Considering the first days after a yearly TeX Live release, yes your suggestion gives the most smooth experience I think.

In v3.3.0, it is no longer needed to set version explicitly; if set, it will act as an assertion.


add license title

It's not strictly required, but it's useful metadata, and part of the recommended license template text (see http://choosealicense.com/licenses/isc/ and https://opensource.org/licenses/isc-license)

@lloyd also package.json declares the license as MIT which isn't what the package is licensed (ISC):
"licenses": {
    "type": "MIT",
    "url": "https://raw.github.com/lloyd/JSONSelect/master/LICENSE"
}

(note that this should become "licenses": "ISC" if updated, because the format of package.json deprecates the old object syntax in favour of SPDX identifiers).


rospilot: 1.5.5-0 in 'melodic/distribution.yaml' [bloom]

Increasing version of package(s) in repository rospilot to 1.5.5-0:

upstream repository: https://github.com/rospilot/rospilot.git
release repository: https://github.com/rospilot/rospilot-release.git
distro file: melodic/distribution.yaml
bloom version: 0.7.2
previous version for package: 1.5.4-0

rospilot
* Fix web_ui.py serving of nodejs dependencies
* Upgrade Bootstrap to fix CVEs
* Contributors: Christopher Berner

Closing, as I'm submitting 1.5.6 instead


fuse mount with root failed

"mount: invalid argument"
this is the strace log
strace.log
@stapelberg thanks

Does this only happen when you’re running as root, or also as your user?
If it happens only as root, can you try sudo chown root.root /home/wangyang5/polefs/mnt and see if that helps?
If this is blocking you, a workaround would be to add a check for syscall.EINVAL and return errFallback in https://github.com/jacobsa/fuse/blob/2f65426467b1505bddb90f7cb10f071607593679/mount_linux.go#L160

only root user has this problem

i find in man 2 mount

EINVAL source  had  an  invalid superblock.
source is selfdefinde fsname "polefs-wy3", i am not sure how mount get the superblock of source?

i find in man 2 mount

EINVAL source  had  an  invalid superblock.

I don’t think this applies. The mount manpage was written for traditional file systems, not FUSE.
I just tried to reproduce the issue, but can’t:
From your log:

432551 mount("polefs-wy3", "/home/wangyang5/polefs/mnt", "fuse", MS_NODEV, "fd=12,rootmode=40000,user_id=0,group_id=0,default_permissions,subtype=polefs,allow_other") = -1 EINVAL (Invalid argument)

…but on my machine, this works fine:

mount("distri", "/ro", "fuse", MS_NODEV, "fd=3,rootmode=40000,user_id=0,group_id=0,allow_other,default_permissions,subtype=polefs") = 0

Which Linux version are you running this on? What are the steps to reproduce this issue in a clean installation?

Which Linux version are you running this on? What are the steps to reproduce this issue in a clean installation?
centos7 3.18.22 ,  do nothing special in after installation.

So I set up a CentOS 7 VM (from CentOS-7-x86_64-Minimal-1908.iso) and ran yum -y update.
However, I get kernel version 3.10.0-1062.12.1.el7.x86_64, not 3.18.22?
Furthermore, mounting the sample file system (samples/mount_sample) works fine:
[root@localhost ~]# strace -fvy -s2048 -e mount /tmp/mount_sample --ready_file 1 -type flushfs --flushfs.flushes_file=2 -flushfs.fsyncs_file=2 -mount_point /mnt
[…]
[pid  9781] mount("", "/mnt", "fuse", MS_NOSUID|MS_NODEV, "fd=3,rootmode=40000,user_id=0,group_id=0,default_permissions") = 0
[…]

Can you please actually reproduce your problem in a clean VM and share the precise steps to reproduce?

Okay, so the issue only manifests itself once you start setting the Subtype FUSE mount option.


Image creation issue

I have some docker images on dockerhub, i can install them using docker cli manually but testing kitematic it throws the error no such container 404 but images do exist.

Merging with #1030


[api] Define API authentication standard

Define the format of authentication in API request / response, now the primary candidate is JWT. A typical industry practice is to put jwt in request header.
Investigate how to put authentication standard in Swagger UI page, potential reference.
Also investigate how to upgrade web server protocol to be https so it supports usage of jwt.

First item is addressed in #27 and #30, we use JWT as access token & refresh token.
Second item is blocked since discovered a bug in Swagger UI version 3.


Webpack v3.4.1 & webpack-hot-middleware v2.18.2 turn to "[HMR] Update check failed"

Sorry for my bad English, but
My entry and output look like:
entry: {
    app: [
      path.resolve(__dirname, '../src/index.js'),
      path.resolve(__dirname, '../build/dev-client.js')
    ]
  },
  output: {
    filename: 'static/js/[name].js',
    path: path.resolve(__dirname, '/dist'),
    publicPath: '/',
    chunkFilename: 'static/js/[name].[hash].chunk.js'
  },

My dev-client.js:
// require('eventsource-polyfill')
var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')

hotClient.subscribe(function (event) {
  if (event.action === 'reload') {
    window.location.reload()
  }
})

Then I configure my dev server as the document but, every time I change my code, hot reload won't work and i got:
webpack-internal:///33:122 [HMR] Update check failed: Error: Manifest request to http://<IP_ADDRESS>:8080/c93bf614e0b230a58e07.hot-update.json timed out.
    at XMLHttpRequest.request.onreadystatechange (http://<IP_ADDRESS>:8080/static/js/app.js:39:22)

It comes to me that It must be the version that lead to this mistake, so I change webpack version to v2.6.1 ,then everything works fine.
Need help!

Can you share your server code? everything there looks fine.

Thank you, there is my dev-server.js
const webpack = require('webpack')
const path = require('path')
const webpackConfig = require('../config/webpack.config.dev')
const express = require('express')
const proxyMiddleware = require('http-proxy-middleware')

const compiler = webpack(webpackConfig)
const app = express()

const devMiddleware = require('webpack-dev-middleware')(compiler, {
  publicPath: webpackConfig.output.publicPath,
  quiet: true
})

const hotMiddleware = require('webpack-hot-middleware')(compiler, {
  log: () => {}
})

// force page reload when html-webpack-plugin template changes
compiler.plugin('compilation', function (compilation) {
  compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
    hotMiddleware.publish({ action: 'reload' })
    cb()
  })
})

app.use(devMiddleware)

app.use(hotMiddleware)

const port = 8080

devMiddleware.waitUntilValid(() => {
  console.log(`> Listening at ${port}`)
})

app.listen(port)

I also met this error

I just tried to reproduce this by upgrading the dependencies on the example, but everything works fine: https://github.com/glenjamin/webpack-hot-middleware/commit/71c1d2eff75f08bd6aa3bfc963749f419b01cb0b
If someone can provide a standalone reproducible example I can download and run, I can look into it further.


Display issue with the latest build

adxe version: latest server2019 win32
devices test on:
developing environments

VS/msvctools version: Visual Studio 2019(16.11)/14.29.30133
cmake version:
Steps to Reproduce:

Menue pos 12 is not drawing first time.
Scrolling out of the window and scrolling back => Menue 12 is shown.

click on menue raised this error:


[SPARK-27998][SQL] Column alias should support quote string

What changes were proposed in this pull request?
According to the ANSI SQL standard, column alias can be double quote string but SparkSQL only support backquote string.
SELECT au_fname AS "First name",
au_lname AS 'Last name',
city AS City,
state,
zip 'Postal code' FROM authors;

However, SparkSQL's syntax is different from others DB engines.

MySQL support Backquote(``), Single quote (''), Double quote("").
SQL Server support Single quote (''), Double quote("").
Teradata, Oracle, PostgreSQL only support  Double quote("").

How was this patch tested?
Pass the Jenkins with the updated test cases.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

ok to test

Test build #106390 has started for PR 24840 at commit dfd79f6.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/11635/
Test PASSed.

Test build #106390 has finished for PR 24840 at commit dfd79f6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/106390/
Test PASSed.

@lipzhu ANSI SQL uses double quotes to quote identifiers with special characters. Basically, double-quotes in ANSI SQL is equivalent to backquotes in Spark SQL while ANSI SQL single-quotes are for string literals.
That being said, I don't think ANSI SQL ever allows string literals to be used as aliases. It has to be an identifier. The SQL '03 grammar rule also suggests that.
In the future, if we have something like "SQL dialect profile" that allows users to switch between different dialect and use double-quotes for quoting identifiers and single-quotes for quoting strings, then we can have this syntax. But right now, the syntax change proposed in this PR is inconsistent and violate ANSI SQL.

@liancheng , thanks for your comments on this PR.

ANSI SQL uses double quotes to quote identifiers with special characters. Basically, double-quotes in ANSI SQL is equivalent to backquotes in Spark SQL while in ANSI SQL single-quotes are for string literals

Only MySQL support backquote as column alias. The other database engines(Include MySQL) all support double quote. SparkSQL will throw Parser exception, this is a not good user experience.

In the future, if we have something like "SQL dialect profile" that allows users to switch between different dialects and use double-quotes for quoting identifiers and single-quotes for quoting strings, then we can have this syntax

Referring to the "SQL dialect profile", seems current SparkSQL grammar is like MySQL style. Do you think is it reasonable to move SparkSQL's grammar closer to the DW databases(Teradata/Redshift/Vertica)? SQL similar will reduce a lot of effort for user to switch between
SparkSQL and DW db engines.

Can one of the admins verify this patch?

I think we should leave it not fixed for now and decide which DBMS we will follow (or allow via a configuration like PostgreSQL). Let's don't fix it for now.

@lipzhu Your change will make name alias support both '' and "" not only "".
In presto and posgresSQL, '' as STRING can't as identifier, "" can be a identifier


Solve issue #1113.

Send cancellation token when the server shuts down so we terminate the process.

@david-driscoll Does this look right to you?

I’d say we should look at updating LSP libs to latest instead. @david-driscoll, this is fixed there, right?

That said, I might have some time updating that in the end of this week.

I took a look at OmniSharp.Extensions.LanguageServer version 0.10.0.  I couldn't get it to work correctly because there has been a ton of changes since the 0.8.0 version I use in my local repository, but this would still be a problem with the latest version.
The issue is here:
https://github.com/OmniSharp/omnisharp-roslyn/blob/0496b7e914b70f18180d9c63b16eac7febc62708/src/OmniSharp.Stdio.Driver/Program.cs#L35-L43
OmniSharp.exe waits on the cancellation token.  The only things that trigger this cancellation token is closing the console or waiting for the host process to terminate.  If the host process sends an Exit request, the server will shut down, but the cancellation token for OmniSharp.exe will never get triggered, so the .exe keeps running.
If you want to use version 0.10.0, you have to do something like:
_server.Exit.Subscribe(_cancellationTokenSource.Token);

I think that would work.  I never tested it though as I couldn't get 0.10.0 to work.


Multiple users can't use extension at the same time

There seems to be a potential issue with Google preventing the use of Google's API calls from chrome extensions. It is possible this is causing the extension to be unable to add entries to the google sheet when more than one user is accessing it concurrently. It also disrupts each concurrent user and forces them to re-load the screen over and over.
More analysis is needed.

Identified issues in how the OAuth Consent Screen being internal and restricted. Set it to external and kept it in testing mode. Explicitly listed the google accounts of those that will be able to use the extension (see https://console.cloud.google.com/apis/credentials/consent?project=clingen-dx). Any new users will need to be added here to effectively use the extension. This has a daily token grant rate of 10M/day. Every time the submit occurs a token request is made. There is also a cap of 100 google test users at any given time. Both of these parameters seem more than adequate for our usage plans.


Add option to exclude code paths from violations

For example we might want to exclude tests, that could be located in a project/component/app/tests directory

Oops, I already did this in https://github.com/kolonialno/oida/commit/5063ecc7c5b77964f538f84cd3de6bec0472ce9c 😇


GH: release drafter action + templates

GH: release drafter action + templates

Cool stuff to have nice looking release note :)


Missing instructions for how to update to angularjs 1.7

Hi,
At the 1.7.3 docs tutorial, it recommends to use this repository. However, when I run npm install, it gives me angularjs-1.5.x. Also, I read the README and it says:

Since the Angular framework library code and tools are acquired through package managers (npm and bower) you can use these tools to easily update the dependencies. Simply run the preconfigured script:
npm run update-deps

But when I do that, it says something like the following indicating that it is staying within 1.5 because they are ~ dependencies:
ohnobinki@gibby ~/public_html/angularjs-location-path $ npm run update-deps

><EMAIL_ADDRESS>update-deps /home/ohnobinki/public_html/angularjs-location-path
> npm update

><EMAIL_ADDRESS>postupdate-deps /home/ohnobinki/public_html/angularjs-location-path
> bower update

bower cached        https://github.com/angular/bower-angular-loader.git#1.5.11
bower validate      1.5.11 against https://github.com/angular/bower-angular-loader.git#~1.5.0
bower cached        https://github.com/angular/bower-angular.git#1.5.11
bower validate      1.5.11 against https://github.com/angular/bower-angular.git#~1.5.0
bower cached        https://github.com/h5bp/html5-boilerplate.git#5.3.0
bower validate      5.3.0 against https://github.com/h5bp/html5-boilerplate.git#^5.3.0
bower cached        https://github.com/angular/bower-angular-mocks.git#1.5.11
bower validate      1.5.11 against https://github.com/angular/bower-angular-mocks.git#~1.5.0
bower cached        https://github.com/angular/bower-angular-route.git#1.5.11
bower validate      1.5.11 against https://github.com/angular/bower-angular-route.git#~1.5.0

Could the README be updated to explain how to manually do a major (in AngularJS, 1.2 to 1.3 is considered major because it doesn’t use semver which explains why it is using ~ instead of ^ for dependencies) update?

I also added a note about upgrading in the tutorial (in angular/angular.js#16753).


[BUG] R8 does a check for a tail incorrectly

In https://github.com/py-why/dodiscover/blob/5f5003ecaef7133a25919c72718cd671b9cd49fc/dodiscover/constraint/fcialg.py#L557-L559, the check is incorrect. I should've caught this, but to check A -> u in a PAG, one must check that A has directed edge to u AND u does not have a circle edge to A. This is by construction that A -> u is compatible with A o-> u.
In contrast, A -o u is defined as A has a circular edge to u.
It seems this line was reverted in https://github.com/py-why/dodiscover/pull/106/files, which was correct.
# check that A -> u -> C
             condition_one = graph.has_edge(a, u, graph.directed_edge_name) and not graph.has_edge(
                 u, a, graph.circle_edge_name

cc: @jaron-lee
This is making me think that the API for querying edges could be more robust. As in there should be a function for causal graphs that queries has_no_other_edge(u, a), which means there must be no other edge from u to a.
Checklist

[ ] I have verified that the issue exists against the main branch.
[ ] I have read the relevant section in the contribution guide on reporting bugs.
[ ] I have checked the issues list for similar or identical bug reports.
[ ] I have checked the pull requests list for existing proposed fixes.
[ ] I have checked the CHANGELOG and the commit log to find out if the bug was already fixed in the main branch.
[ ] I have included in the "Description" section below a traceback from any exceptions related to this bug.
[ ] I have included in the "Related issues or possible duplicates" section beloew all related issues and possible duplicate issues (If there are none, check this box anyway).
[ ] I have included in the "Environment" section below the name of the operating system and Python version that I was using when I discovered this bug.
[ ] I have included in the "Environment" section below the output of pip freeze.
[ ] I have included in the "Steps to reproduce" section below a minimally reproducible example.

Description

Python traceback:

Related issues or possible duplicates

None

Environment

OS:

Python version:

Output of pip freeze:

Steps to reproduce

Example source:

This is the correct replacement:
            # check that A -> u
            condition_one_Adirectu = (graph.has_edge(a, u, graph.directed_edge_name) and not graph.has_edge(
                 u, a, graph.circle_edge_name))
            # check that A -o u
            condition_one_Acircleu = (graph.has_edge(a, u, graph.circle_edge_name) and not graph.has_edge(u, a))
            if self.selection_bias:
                condition_one = condition_one_Adirectu or condition_one_Acircleu
            else:
                condition_one = condition_one_Adirectu

I have yet to verify R5-7 tho. But I think what I can do is help document the internal rules setting for different edges:

->: is a directed edge present? (note no other edge should be present in other direction)
<->: is bidirected edge present? (note no other edge should be present in any other direction)
-: is tail edge present? (note no other edge should be present in any other direction)
o-o: is circle edge present in both directions?
o->: is circle edge one way and directed edge another way?
o-: is there only one circle edge? (note no other edge should be present in other direction)

Ah good catch. I agree that the API sucks, I did have a lot of trouble checking o-> type edges.

I can push up a fix for R8 and the corresponding test

ah okay I'm happy to do it if you like

Ah sure yeah that would be great! I caught this when I was implementing Psi-FCI for interventional data, so the fix from me wouldn't come for awhile

Did you happen to have a test case that I can add to the unit tests? I can come up with one if not

Yes you can add the following to test_fcialg.py

@pytest.mark.parametrize(
    "skeleton_method", [SkeletonMethods.NBRS, SkeletonMethods.COMPLETE]
)
@pytest.mark.parametrize("pds_skeleton_method", [SkeletonMethods.PDS])
def test_fci_complex(skeleton_method, pds_skeleton_method):
    """
    Test FCI algorithm with more complex graph.

    Use Figure 2 from :footcite:`Colombo2012`.

    References
    ----------
    .. footbibliography::
    """
    edge_list = [
        ("x4", "x1"),
        ("x2", "x5"),
        ("x3", "x2"),
        ("x3", "x4"),
        ("x2", "x6"),
        ("x3", "x6"),
        ("x4", "x6"),
        ("x5", "x6"),
    ]
    latent_edge_list = [("x1", "x2"), ("x4", "x5")]
    G = ADMG(edge_list, latent_edge_list)
    sample = dummy_sample(G)
    context = make_context().variables(data=sample).build()
    oracle = Oracle(G)
    ci_estimator = oracle
    fci = FCI(
        ci_estimator=ci_estimator,
        max_iter=np.inf,
        skeleton_method=skeleton_method,
        pds_skeleton_method=pds_skeleton_method,
        selection_bias=False,
    )
    fci.fit(sample, context)
    pag = fci.graph_

    # double check the m-separation statement and PDS
    assert pywhy_nx.m_separated(G, {"x1"}, {"x3"}, {"x4"})
    pdsep = pywhy_graphs.pds(G, "x1", "x3")
    assert "x2" in pdsep

    expected_pag = PAG()
    expected_pag.add_edges_from(
        [("x6", "x5"), ("x2", "x3"), ("x4", "x3"), ("x6", "x4")], expected_pag.circle_edge_name
    )
    expected_pag.add_edges_from(
        [
            ("x4", "x1"),
            ("x2", "x5"),
            ("x3", "x2"),
            ("x3", "x4"),
            ("x2", "x6"),
            ("x3", "x6"),
            ("x4", "x6"),
            ("x5", "x6"),
        ],
        expected_pag.directed_edge_name,
    )
    expected_pag.add_edge("x1", "x2", expected_pag.bidirected_edge_name)
    expected_pag.add_edge("x4", "x5", expected_pag.bidirected_edge_name)

    assert set(pag.edges()) == set(expected_pag.edges())
    for edge_type, subgraph in expected_pag.get_graphs().items():
        assert nx.is_isomorphic(subgraph, pag.get_graphs(edge_type))

The check does two things: 1) it improves coverage of the algorithm and 2) it adds the subgraph isomorphism check so that all edge-type subgraphs are the same. I am also pushing up a PR to pywhy-graphs to start adding more documentation at least for this issue. I suspect the API will evolve as we progress, but at least we'll have a working prototype and unit tests :)

Great, I added my own simple test as well. For bug fixes should I also update the changelog?

Nah, until we get into release cycles prolly unnecessary.

Should I add this test as-is or should I modify the existing Test_FCI.test_fci_complex test? Seems to be a lot of overlap

I will modify existing test in the initial PR, we can change if you disagree

Sounds good!


TWAMM Hook: fix edge cases

Copied from https://github.com/Uniswap/core-next/issues/58 by sara!
Fix: edge cases - earnings calculations on price boundaries #58

also requires refactor of calculateExecutionUpdates for gas savings & logical flow.
TWAMM pushes pool price past highest/lowest price
- case 1: There is no liquidity at the highest/lowest prices so final price should not be max/min price.
- case 2: There is liquidity at the highest/lowest prices so final price should be max price or min price.

future:

- when checking for tick crossings: don't return true if initialized tick directly after target price (might be a bug rn)
- if executed exactly on expiry, order should be fully complete (must do +1 rn )
- also check exact expiry for both selling pool condition

closing this issue for now, since example hooks do not live in the main branch anymore.
i've added a revisit tag as a reminder


Console block has no default value in Chinese (simplified)

Change language to Chinese (simplified)
Open console category

Fixed!


add value task support and docs

Codecov Report

Merging #15 (d2df2f1) into main (51cbb15) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main       #15   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           48        53    +5
  Lines          546       548    +2
=========================================
+ Hits           546       548    +2

Flag
Coverage Δ

unittests
100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...c/Nut.Results.FluentAssertions/ResultAssertions.cs
100.00% <ø> (ø)

...lts.FluentAssertions/ResultAssertionsExtensions.cs
100.00% <ø> (ø)

.../Nut.Results.FluentAssertions/ResultTAssertions.cs
100.00% <ø> (ø)

src/Nut.Results/Extensions/AsTask.cs
100.00% <ø> (ø)

src/Nut.Results/Extensions/FlatMap.cs
100.00% <ø> (ø)

src/Nut.Results/Extensions/FlatMapError.cs
100.00% <ø> (ø)

src/Nut.Results/Extensions/MapError.cs
100.00% <ø> (ø)

src/Nut.Results/Extensions/Match.cs
100.00% <ø> (ø)

src/Nut.Results/Extensions/T_AsTask.cs
100.00% <ø> (ø)

src/Nut.Results/Extensions/T_Contains.cs
100.00% <ø> (ø)

... and 83 more

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 51cbb15...d2df2f1. Read the comment docs.


505 HTTP Version not supported

I'm trying to generate a ticket, and getting this error:
ERROR Invalid Usage: 505 HTTP Version Not Supported

I've tried launching with the verbose flag, and not really getting an idea of why it's failing. Anything I can.

Figured out the verbose command:
DEBUG Response: HTTP/1.1 505 HTTP Version Not Supported
Connection: close
Date: Wed, 11 Oct 2017 18:05:27 GMT
Server: Apache-Coyote/1.1

Short of posting the JSESSIONID and the Cookie it' returning, not sure what else to provide
Here's the URL it's called:
DEBUG GET https://jira/rest/api/2/issue/createmeta?projectKeys=OPS&issuetypeNames=OPS Ticket&expand=projects.issuetypes.fields
DEBUG Request: GET /rest/api/2/issue/createmeta?projectKeys=OPS&issuetypeNames=OPS Ticket&expand=projects.issuetypes.fields HTTP/1.1

I suspect this is related to [#128] which fixed a bug with space in the issueType field.  Could you update to the latest release and try again?

Yes, this resolved my issue


Send upstream?

Everything looks very well implemented using Zephyr APIs.
Was there a reason for keeping it as a module?
This could be well received upstream!
Thank you for this great project!

My bad, this is ongoing already :)
https://github.com/zephyrproject-rtos/zephyr/pull/69594


HTML: Add a Submit/Search Button to form in addshows.html

Adding in the add shows button as I did not include it in initial construction of the addshows.html page.

Also adding a 'reset form' button.


Renaming some variables

This package was strongly based on the Algolia Symfony Bundler (https://github.com/algolia/search-bundle/ - MIT License).
MeiliSearch and Algolia are indeed similar but not exactly the same. It means there are some naming inconsistencies in the code base of this repository.

[ ] objectId should not be used. MeiliSearch does not generate any objectId but contains a primaryKey that depends on the user dataset. See an example of how to fetch the current primary key of an index
💡 More about the primary key
[ ] requestOptions should be renamed into searchParams
[ ] indexName should be renamed as indexUid

I would rather each point be done in different PRs 🙂
Feel free to ask any question you need!

Why are we removing the objectID usage? When objects get placed into Meilisearch the objectID param is set to the primary keys of the entity (or just the single value if there aren't multiple primary keys). When we pull objects down out of MeiliSearch we can just parse the objectID field to figure out how to query for the entity.
I sort of like how it works now because it keeps the config to a minimum (don't have to define the primary key in config) and also doesn't require running two http requests for every search (to figure out the primary key). It would be cool to override the objectID field with your own way if you really want but how it is currently setup is easiest for users to get started with IMO.
I just updated the MeiliSearchService::search function to the following and it works really well (handles multiple primary keys and entities that don't use id as their primary key):
    public function search(
        ObjectManager $objectManager,
        string $className,
        string $query = '',
        array $requestOptions = []
    ): array {
        $this->assertIsSearchable($className);

        $ids = $this->engine->search($query, $this->searchableAs($className), $requestOptions);
        $results = [];

        // Check if the engine returns results in "hits" key
        if (!isset($ids['hits'])) {
            throw new SearchHitsNotFoundException('There is no "hits" key in the search results.');
        }

        foreach ($ids['hits'] as $objectID) {
            if (in_array($className, $this->aggregators, true)) {
                $entityClass = $className::getEntityClassFromObjectID($objectID);
                $id = $className::getEntityIdFromObjectID($objectID);
            } else {
                $multipleIds = explode('__', $objectID['objectID']);
                $entityClass = $className;

                if (0 === count($ids)) {
                    throw new Exception('Entity has no primary key');
                } else if(count($multipleIds) === 1) {
                    $id = $multipleIds[0];
                    $idFieldName = $objectManager->getClassMetadata($entityClass)->getSingleIdentifierFieldName();
                    $repo = $objectManager->getRepository($entityClass);
                    $entity = $repo->findOneBy([$idFieldName => $id]);
                } else {
                    $idFieldNames = $objectManager->getClassMetadata($entityClass)->getIdentifierFieldNames();
                    $searchIdFields = [];
                    foreach($multipleIds as $idPart) {
                        list($idFieldName, $idFieldValue) = explode("-", $idPart);
                        if(!in_array($idFieldName, $idFieldNames)) {
                            continue;
                        }
                        $searchIdFields[$idFieldName] = $idFieldValue;
                    }
                    $repo = $objectManager->getRepository($entityClass);
                    $entity = $repo->findOneBy($searchIdFields);
                }
            }

            $repo = $objectManager->getRepository($entityClass);
            $entity = $repo->findOneBy(['id' => $id]);

            if (null !== $entity) {
                $results[] = $entity;
            }
        }

        return $results;
    }
    ```

Hello @skylord123!
objectID is a term used by Algolia but is not used in the MeiliSearch ecosystem, that's why I suggest removing it :)
What do you mean by "handles multiple primary keys"?

So the second tasks is fixed as well (#70). The objectId stuff is done in #66 - I would also start taking care of that but first let's crush #76 (little reminder @curquiza ) 😉

I let this issue opened since there is still some objectID in the code, but you did most of the job, thank you very much 😁

Yes, for the objectId I would create a new branch & PR to work on.


Missing aws_appsync_authenticationType in Amplify deployment

Description
My application is using AppSync and it is multienv. The aws-exports.js is ignored from the Git so when the deployment is triggered by the change in Bitbucket, the amplify configuration is auto-generated internally from the Amplify console during the build. The aws_appsync_authenticationType is missing and the frontend will use AWS_IAM as default instead of AMAZON_COGNITO_USER_POOLS (my local config).
To Reproduce
Steps to reproduce the behavior:

Go to Amplify console
Connect project to bitbucket and select any backend environment
Make sure aws-exports.js is not committed to the GIT
Save and deploy
Query from the frontend
AppSync authorization error: UnauthorizedException - Unable to parse JWT token.

Request headers:

Expected behavior
Detect API default authentication method and set aws_appsync_authenticationType to correct value. In my case, use AMAZON_COGNITO_USER_POOLS

Update: Turns out its because there is a version mismatch between the Console and the CLI. You can set the version of the CLI to the latest here: https://docs.aws.amazon.com/amplify/latest/userguide/custom-build-image.html#setup-live-updates
This will fix the issue.

Update: Turns out its because there is a version mismatch between the Console and the CLI. You can set the version of the CLI to the latest here: https://docs.aws.amazon.com/amplify/latest/userguide/custom-build-image.html#setup-live-updates
Please verify this works for you.

It works.

@swaminator Setting the latest Amplify-cli has caused another build error:

Parameters: [unauthRoleName, authRoleName] do not exist in the template

Reference link

@Cas-Laputa I see you came across https://github.com/aws-amplify/amplify-console/issues/10#issuecomment-534787729
Will close this issue and provide additional updates there.

Thank goodness I found this ticket, after a lot of searching. It still seems necessary to set this "live updates" setting for the aws-exports.js to be generated properly during a console build. Is there a non-closed bug tracking a fix so the console build environment actually works out of the box, or should I open one?

Update: It is still necessary today to set live updates to "latest" or else you are using the broken amplify CLI version that silently swallows aws_appsync_authenticationType.

It is confusing to me, that this ticket is closed while the default state of the amplify build environment is broken. Is there another place to open an issue for using the fixed version of the tool by default?

Shouldn't Amplify CLI: "latest" be the default? This is confusing, if you want a specific version then you should pin it. But it sure seems like latest should be the default.

IDK if this stills relevant but I am trying to fix an issue with DataStore with multi auth and the aws_appsync_authenticationType does not seems to have any effect on DataStore behaviour.
I have tried:
Amplify.configure({
      ...awsconfig,
      // https://docs.amplify.aws/lib/datastore/setup-auth-rules/q/platform/js/#configure-multiple-authorization-types
      DataStore: {
        authModeStrategyType: AuthModeStrategyType.MULTI_AUTH,
        aws_appsync_authenticationType: ['AMAZON_COGNITO_USER_POOLS', 'API_KEY'], // --> And also with a single string like 'AMAZON_COGNITO_USER_POOLS' and no changes are seen on the Logger when performing a request
      },
    })


Avoid use of pod names in resource creation

Controllers like deployment rely on replicaset controllers to create pods with hash values attached to them. In such a scenario, knowing or deducing pod names in advance is impossible. pod names in Instaslice are used to create Instaslice resources. this was done for ease of development, InstaSlice should move away from using pod names for resource creation.

#28 fixes this issue


Add retry loop to browser start code to prevent flakes

https://hush-house.pivotal.io/teams/tanzu-user-auth/pipelines/pinniped-pull-requests/jobs/multiple-pinnipeds-test/builds/722#L611602ca:160

Not seeing these flakes anymore.


App is not synced, but there is no status bar (v0.0.6RC4)

App build: v0.0.6RC4
OS: Windows 10
Expected:
App is not connected. There is a status bar indicating the exact nature of the disconnection, such as if it's syncing with the mesh. App works normally.
Actual:
There is no status bar indicating what the nature of the disconnection is. Additional problems with app function occur.
Repro steps

User has not exited or minimized the app since installation and setup.

It was synced and smeshing the last time the user saw it.

Status is 'Not connected!"

There is no status bar informing the user of how the app is disconnected, or if the mesh is syncing.

When the user clicks on the 'Send' button on the wallet screen, an error status appears prompting them to refresh the app.

But the error message is vague, and when the user clicks the refresh button, it is completely unresponsive.

Instead, the user pressing the settings button is what actually causes the display to reset.

Closing. Please see: https://github.com/spacemeshos/smapp/issues/470 for a more recent understanding of the issue.


fix compiler warnings.

Fixed compiler warnings that should prevent issues like #8 from happening.
fixes #8

Hey @andrepiske 👋
could you review this please 😁.

hey @dhruvCW
Thanks a lot for your contribution! It's working 100% and I'll get it merged soon.
I'm sorry that this took so long, it really took me a long time to notice your comment -- I should probably tweak my Github notifications.


Make existing integration tests cover batch executors

Feature Request
Batch executors rely on type info in the request to work. When there is no type info, requests will be fallen back to normal executors.
In our integration tests, most of the test does not generate a fixture request carrying type info, thus batch executors are likely not be covered.

Note: The "offset_for_column" in existing integration tests are also incorrect, which need to be fixed first. Otherwise, batch executors will simply reject these requests.


Pagination?

Pagination is expecting ElementCriteriaModel. Is there a way around this?

I built pagination for a custom search within the comments plugin for craft 2
<?php
namespace Craft;

class Comments_PaginationService extends BaseApplicationComponent
{
    // Properties
    // =========================================================================

    public $activeComment;

    /**
     * @var integer
     */
    public $elementsPerPage;

    /**
     * @var integer
     */
    public $totalElements;

    /**
     * @var string
     */
    public $pageParam;

    /**
     * @var integer
     */
    public $totalPages;

    /**
     * @var integer
     */
    public $currentPage;

    /**
     * @var integer
     */
    public $count;

    /**
     * @var
     */
    public $first;

    /**
     * @var
     */
    public $last;

    // Public Methods
    // =========================================================================

    /**
     * Get curret page for use in the pagination
     *
     * @return [type] [description]
     */
    public function getCurrentPage()
    {
        $currentPage = craft()->request->getQuery($this->pageParam, 1);

        if (is_numeric($currentPage) && $currentPage > $this->totalPages)
        {
            $currentPage = $this->totalPages > 0 ? $this->totalPages : 1;
        }
        else if (!is_numeric($currentPage) || $currentPage < 0)
        {
            $currentPage = 1;
        }

        return (int) $currentPage;
    }

    /**
     * Returns previous page URLs up to a certain distance from the current page.
     *
     * @param int $dist
     *
     * @return array
     */
    public function getPrevUrls($dist = null, $currentPage, $totalPages)
    {
        $this->currentPage = $currentPage;
        $this->totalPages = $totalPages;

        if ($dist)
        {
            $start = $this->currentPage - $dist;
        }
        else
        {
            $start = 1;
        }

        return $this->getRangeUrls($start, $this->currentPage - 1);
    }

    /**
     * Returns next page URLs up to a certain distance from the current page.
     *
     * @param int $dist
     *
     * @return array
     */
    public function getNextUrls($dist = null, $currentPage, $totalPages)
    {
        $this->currentPage = $currentPage;
        $this->totalPages = $totalPages;

        if ($dist)
        {
            $end = $this->currentPage + $dist;
        }
        else
        {
            $end = $this->totalPages;
        }

        return $this->getRangeUrls($this->currentPage + 1, $end);
    }

    /**
     * Returns the URL to a specific page
     *
     * @param int $page
     *
     * @return string|null
     */
    public function getPageUrl($page, $totalPages = false)
    {
        if ($totalPages)$this->totalPages = $totalPages;

        if ($page >= 1 && $page <= $this->totalPages)
        {
            $path = craft()->request->getPath();
            $params = array();

            if ($page != 1)
            {
                // $pageTrigger = craft()->config->get('pageTrigger');
                $pageTrigger = '?page';

                if (!is_string($pageTrigger) || !strlen($pageTrigger))
                {
                    $pageTrigger = 'p';
                }

                // Is this query string-based pagination?
                if ($pageTrigger[0] === '?')
                {
                    $pageTrigger = trim($pageTrigger, '?=');

                    if ($pageTrigger === 'p')
                    {
                        // Avoid conflict with the main 'p' param
                        $pageTrigger = 'pg';
                    }

                    $params = array($pageTrigger => $page);
                }
                else
                {
                    if ($path)
                    {
                        $path .= '/';
                    }

                    $path .= $pageTrigger.$page;
                }
            }

            return UrlHelper::getUrl($path, $params);
        }
    }

    /**
     * Returns a range of page URLs.
     *
     * @param int $start
     * @param int $end
     *
     * @return array
     */
    public function getRangeUrls($start, $end)
    {
        if ($start < 1)
        {
            $start = 1;
        }

        if ($end > $this->totalPages)
        {
            $end = $this->totalPages;
        }

        $urls = array();

        for ($page = $start; $page <= $end; $page++)
        {
            $urls[$page] = $this->getPageUrl($page);
        }

        return $urls;
    }
}

Set this within the same service (as the code you see below this code block) that returns the comments and the pagination data:
$this->elementsPerPage = $limit;
$this->totalElements = $total;
$this->pageParam = 'page';
$this->totalPages = (int) ceil($this->totalElements / $this->elementsPerPage);
$this->currentPage = craft()->comments->getCurrentPage();

Then in the return, I set the pagination like this:
$result = [
    'comments'      =>  $comments,
    'pagination'    =>  [
        'total'         =>  $total,
        'currentPage'   =>  $this->currentPage,
        'totalPages'    =>  $this->totalPages,
        'nextUrl'       =>  craft()->comments_pagination->getPageUrl($this->currentPage + 1, $this->totalPages),
        'prevUrl'       =>  craft()->comments_pagination->getPageUrl(($this->currentPage > 1 ? $this->currentPage - 1 : 1), $this->totalPages),
        'prevUrls'      =>  craft()->comments_pagination->getPrevUrls(5, $this->currentPage, $this->totalPages),
        'nextUrls'      =>  craft()->comments_pagination->getNextUrls(5, $this->currentPage, $this->totalPages),
        'offset'    =>  $offset,
    ]
];

return $result;

Yeah, that’s what I ended up doing. I actually had to write a field type to get my particular use case working. Thanks so much for responding!

On Jan 18, 2018, at 9:40 AM, Keith Damiani<EMAIL_ADDRESS>wrote:
I don't know of any way to convert an EntryModel (which is typically what you'd end up with after performing a custom query) into an ElementCriteriaModel. In one instance where I needed pagination on a custom query result, I ended up writing a plugin and template to build the pagination element manually.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/tightenco/craft-build-query/issues/5#issuecomment-358665978, or mute the thread https://github.com/notifications/unsubscribe-auth/AAW71WwYPP8YYFfiTz83ZnY6zg2qw--yks5tL1fFgaJpZM4Rh4gF.


Generalise cmda to nd matlab

To enable generalising CMDA to arbitrary dimensions, the input observations are now assumed to be given as an array instead of a cell array. This made it necessary to change the function classbased_differences, which in turn made it necessary to update all the other tensor methods to assume array input.

Change all tensor methods to assume array instead of cell array input.
Add test definitions for more dimensions than two.
Generalise CMDA to handle arbitrary number of modes.

Looking good.


documentation

change "Web" to "web" to match case-sensitive name used for creation; enquoted bash cd command for un-tar example

@woodvi You've made a PR on my fork.  This isn't the correct process for contributing to the docs. You'll need to:

Fork docker/docker
Make this change on your own fork
Do the the pull request back to docker/docker.

For  information on the contribution workflow; http://docs.docker.com/opensource/workflow/make-a-contribution/


Maskable icon has white border around it

Describe the bug
The generated maskable icon has thin white border around it.
This seems to be the same bug from https://github.com/GoogleChromeLabs/bubblewrap/issues/240#issuecomment-660571328.
To Reproduce
I generated an APK using PWABuilder and provided both a regular icon and a maskable icon. This is the maskable icon provided:

maskable-512x512.png

Expected behavior
The maskable icon would display correctly cropped like when added to homescreen from Chrome.
Screenshots
Here are a couple of screenshots from the default launcher on my Pixel 3a comparing the app when added to homescreen from Chrome (left) and the generated APK (right):

Circle Icons
Rounded Rectangle Icons
Drop Icon

This behavior is also displayed in the app switcher but oddly enough the icon appears correctly in App Info but I think this is because it either crops it closer or uses the non-maskable icon.
Smartphone (please complete the following information):

Device: Pixel 3a
OS: Android 10
Browser: Chrome
Version 84

Additional context
The app url is: https://hydrus.app/
The web manifest is here: https://hydrus.app/manifest.webmanifest

It seems dropping the adaptive-icon padding by 0.25dp (from 12.75dp to 12.25dp) would solve this. Something like this:
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:aapt="http://schemas.android.com/aapt">
    <background>
            <layer-list>
                <item android:drawable="@android:color/white" />
                <item android:drawable="@mipmap/ic_maskable"
					android:top="12.25dp"
					android:right="12.25dp"
					android:left="12.25dp"
					android:bottom="12.25dp" />
            </layer-list>
    </background>
    <foreground android:drawable="@android:color/transparent" />
</adaptive-icon>

@NotWoods any views / ideas around this?

Looks like it could also help if an option was provided to specify the background color.

Just to +1 this bug, this appears to be the same issue I'm hitting.

Here is my manifest, icon, maskable icon, and URL.
I'm seeing this bug on a Pixel 3a.

Decreasing the padding should be fine. Firefox uses the theme_color to set the background, that might be preferrable. Alternatively the edge pixels could be extended out.

This generates something very similar to the WebAPK output:
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:aapt="http://schemas.android.com/aapt">
    <background>
        <layer-list>
            <item android:drawable="@android:color/white" />
            <item android:drawable="@mipmap/ic_maskable"
                android:top="8.5dp"
                android:right="8.5dp"
                android:left="8.5dp"
                android:bottom="8.5dp" />
        </layer-list>
    </background>
    <foreground android:drawable="@android:color/transparent" />
</adaptive-icon>

The screenshot bellow has a few apps with different icon configurations, with the icon generated by Bubblewrap the left and the WebAPK on the right:

Thanks for the fix!

1.4.1 was released with the fix.

@andreban this should still be fixed even though you guys reverted support for SVG, yeah?
I just got a report on PWABuilder about someone hitting this issue, and I'm wondering if the undoing the SVG support also undid this fix. One possibility is PWABuilder's Google Play platform was reverted to an ealier version of Bubblewrap - checking that on this side, but I first wanted to see if this bug was reintroduced by the SVG reversion.

@JudahGabriel great to heat that! As a note, this issue wasn't related to SVG, but due to padding in the generated icons.


STABS parsing support

Parsing the STABS seems to be the most critical portion about .mdebug for me.
The STABS parser already exists but is currently disabled here:
https://github.com/astrelsky/ghidra_mdebug/blob/4a7e67a3c566014da97b91145e682ff2cb1dfd78/src/main/java/mdebug/analysis/MdebugAnalyzer.java#L12
https://github.com/astrelsky/ghidra_mdebug/blob/4a7e67a3c566014da97b91145e682ff2cb1dfd78/src/main/java/mdebug/analysis/MdebugAnalyzer.java#L109-L117
There doesn't seem to be any information as to why it's not enabled.

Why is it disabled?
What's necessary to get it into a functional state?

Why is it disabled?

To answer my own question: STABS parsing is not upstream yet, and is being proposed by @astrelsky himself in https://github.com/NationalSecurityAgency/ghidra/pull/1460

What's necessary to get it into a functional state?

Probably improve upstream PR and aid with upstream review.

@VelocityRa I know you've played with it. You're input would be appreciated.

Yes, @JayFoxRox I've merged @astrelsky's STABS parser onto this mdebug code, and made changes to it that allow it to skip defined types that result in exceptions (also handles things if they're referenced afterwards).
@astrelsky In what repo should this live? It requires that the Ghidra_mdebug tree is merged into the Ghidra-Stabs one, or the inverse. That's what I started with locally.
In the meantime, if you just want something to work with @JayFoxRox you can reach out to me on Discord velocity#0042. I've tried a few games with half a million STABS and it goes through them just fine (obviously misses some stuff, and there's a few other wrinkles with ie. virtual inheritance).


registered user agent and contact presence

hi,
I'm using SIPJS API V19 and I'm trying to get the current registered user agent and other contacts presence
I found out this example :
https://sipjs.com/api/0.15.0/subscription/subscription/#subscribe
but I can't find subscribe function for the user agent, any help?

Not sure what you need... are you looking for how to make a subscription? If so, from 0.16, it's by using the Subscriber object.
https://github.com/onsip/SIP.js/blob/master/docs/api/sip.js.subscriber.md
You also have a very good example over there.

Please use our google group for questions.


Feature request: Allow for trailing newlines in include files

I have a file called "test.md"
1.  This is the first number line
1.  {%
       include-markdown "./includes/content_chunk2.md"
    %}

1.  If everything works as expected this should be number 3

The contents of "./includes/content_chunk2.md" is this
This is my second content chunk

The challenge is using prettier. It will automatically ensure there is a final "\n" at the end of the file. This breaks the number scheme rendering.
The rendered file will be like this:
Test

1.    This is the first number line
2.    This is my second content chunk

1.    If everything works as expected this should be number 3

The trailing newline can be stripped with this command:
for i in docs/includes/*.md; do printf "$( <$i )" > $i; done

Then it renders like this:
Test

1.    This is the first number line
2.    This is my second content chunk
3.    If everything works as expected this should be number 3

Is there a way to allow an include file to have a trailing newline and also render the numbering system?

Interesting. I think that we can add an option named trailing-newlines by default as true that when would be false would remove the trailing newlines if the file to include have them 👍🏼

As a workaround, you can currently do someting like this:
1. List item number 1
1. {%
       include-markdown "{filepath}"
       comments=false
    %}1. List item number 3

Thanks for the report. This feature has been released in v3.5.0.


Add arrow-assertion Failure matcher that checks underlying throwable equality

Ability to check not just whether a Try returned a Failure, but whether the Failure contained a specific Throwable would be very useful. (https://github.com/kotlintest/kotlintest/issues/422)
Currently to check the underlying exception type, one needs to do something similar to:
val failure = Try.Failure(Exception("foo"))
failure should beFailure() // passes
shouldThrow<Exception> {
    failure.getOrElse { fail("Could not get exception") }
}

The goal of this PR is to allow the user to be able to do:
val failure = Try.Failure(Exception("foo"))
failure should beFailureWithThrowable<Exception>() // Passes test
failure should beFailureWithThrowable<SomeOtherException>() // Does not pass test

This was accomplished relatively easily with Kotlins inline function + reified generic types.

Excellent :+1:

We could do this on master as well.

Yeah that should be straightforward. I'll make a new PR for master as well.


Automatically update the install.sh script (git clone)

Alternative to #2032

The install script is signed, so we can't do this automatically easily :/


problems with ampersand "&" in folder name and workaround

Hi,
Running on classic edition 1.2-rc1 I have a problem with a folder that contains an "&".
Folder "Bob Marley & the Wailers":
Working: I can assign a RFID card via webinterface to this folder
Working: the created shortcut file contains the correct folder name
Not working: swiping the card does not play anything
Not working: clicking the folder in web interface does not play anything
Not working: expanding the folder in web view ("show content") does not work
renaming the folder in "Bob Marley and the Wailers":
Everything works great and as expected
regards,
arnschi

Hi @arnschi,
I think I could fix all of those issues. Could you please test my code. You can find it in https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/599

I committed the code to master: #600
thanks for the input!

Thanks for the quick merge.


Meet concurrent map writes when using bot.Handle in goroutine

Thanks for this handy library!
This test can reproduce the problem, if you think this is an issue, I can PR for this.

Registering new handlers inside other ones doesn't make any sense.


Allow the sign-in redirect to go back to the page the sign-in was initiated from

Describe the issue:

Currently, the Redirect URL is static. The URL can't be changed to dynamically set the redirect URL. This means that it would always take the user back to the home page after a successful login, even if the user triggers the Asgardeo sign-in from a sub-route.
How to reproduce:

In an app that has Asgardeo sign-in integrated, click-on sign-in inside a sub-route.
Complete the sign-in process
Asgardeo will redirect the user to the home page (the pre-set redirect URL)

Expected behavior:
Redirect the user to the URL that the user clicked on the sign-in button.
Suggestion:
The SDK could save this redirect URL in session storage. In the SDK, when attempting to redirect, if there is a redirect URL saved in session storage, that could be used. If not, the Redirect URL that was set from the deployment env variables can be used.
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: 1.1.18

Optional Fields
Related issues:

https://github.com/LSFLK/MedicinesforLK/issues/527
@nipunsampath @anjula-sack

The SDK could save this redirect URL in session storage. In the SDK, when attempting to redirect, if there is a redirect URL saved in session storage, that could be used. If not, the Redirect URL that was set from the deployment env variables can be used.

This is out of the scope of this SDK. The primary purpose of this SDK is to handle the authentication process and manage the credentials.
As a solution to your requirement, you may implement the above quoted logic in your own page, and set the link to that page as the redirect URI in your Asgardeo application. Then, once Asgardeo redirects the user to that specific page, you can redirect the user from there to where the user started the sign in process.


Add support for disabling root viewBox attribute in stack mode

This is the clone PR of the #657
Closes #303

So, how can we get this forward?

Hey, I'm not sure if this pings anyone anymore, but I'd be happy to get a release with this feature. It's been 24 days since this was merged, but no new release since, so we've had to refer to a certain commit if we wish to use this.

@Arkkimaagi hello. There aren't so much changes for a new beta version and there are so much to do before the stable release. If you want, you can always get the current version by npm install github:svg-sprite/svg-sprite
You can also help us with current issues. Or test coverage for non-covered files


[Feature Request]: Fun with Python GUI

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
I wish to contribute some fun projects that display the Graphical User-Interface performed by Python's module such as Turtle and tkinter.
This contribution is aimed to help user experience and learn the use of various GUI tools of Python.
My Contribution will have three programs includes:
1.Turtle Race Game : Using Python's built-in Turtle module
2.Pomodoro Timer : Using Python's tkinter module
3.Indian Map Game : Using Python's built-in Turtle and pandas module

Record

[X] I agree to follow this project's Code of Conduct
[X] I want to work on this issue
[X] I'm willing to provide further clarification or assistance if needed.

Full Name
Omm Devgoswami
Participant Role
GSSOC extd and HacktoberFest 2024

@OmmDevgoswami sorry, but this repo is not for projects it's only for snippets that will help developers to use them directly without writing the code complete.


Create an "index SBOM" for multi-arch images

Currently, as associate SBOMs with each of the constituent images in a multi-arch image, but we do not associate an SBOM with the top-level "index" manifest.
I was talking to @puerco about this (as well as https://github.com/google/ko/issues/654).
Like the manifest list itself, I believe this would be a relatively thin SBOM that somehow referenced the constituent SBOMs (maybe in the same way as the linked issue?), but I defer to @puerco as the expert on the best practices here.

cc @imjasonh @jonjohnsonjr @jdolitsky

What should the "index" SBOM say is included? We already point to the base image(/index) we build on using the OCI annotations, is there something else we want to surface?
If the index SBOM is just a collection of pointers to platform-specific SBOMs, we kind of already get that by virtue of the index being a collection of pointers to the images, which each themselves have SBOMs.
(But I agree, let's defer to @puerco's expertise here 😄 )

Hopefully @puerco can provide an example of what we should be doing here. 🙏

@puerco DM'd me this, posting here so I don't lose it 🤩
{
  "SPDXID": "SPDXRef-DOCUMENT",
  "name": "sbom-sha256:af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58",
  "spdxVersion": "",
  "creationInfo": {
    "created": "1970-01-01T00:00:00Z",
    "creators": [
      "Tool: apko (devel)",
      "Organization: Chainguard, Inc"
    ],
    "licenseListVersion": "3.16"
  },
  "dataLicense": "CC0-1.0",
  "documentNamespace": "https://spdx.org/spdxdocs/apko/",
  "documentDescribes": [
    "sha256-af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58"
  ],
  "packages": [
    {
      "SPDXID": "sha256-af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58",
      "name": "sha256:af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58",
      "versionInfo": "",
      "filesAnalyzed": false,
      "licenseConcluded": "NOASSERTION",
      "licenseDeclared": "NOASSERTION",
      "description": "Multi-arch image index",
      "downloadLocation": "",
      "originator": "",
      "sourceInfo": "Generated at build time by Chainguard apko",
      "copyrightText": "NOASSERTION",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "sha256:af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58"
        }
      ]
    }
  ],
  "relationships": [
    {
      "spdxElementId": "sha256-af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58",
      "relationshipType": "VARIANT_OF",
      "relatedSpdxElement": "386-image-sbom"
    },
    {
      "spdxElementId": "sha256-af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58",
      "relationshipType": "VARIANT_OF",
      "relatedSpdxElement": "amd64-image-sbom"
    }
  ],
  "externalDocumentRefs": [
    {
      "checksum": {
        "algorithm": "SHA256",
        "checksumValue": "SBOMDIGEST_GOES_HERE"
      },
      "externalDocumentId": "386-image-sbom",
      "spdxDocument": ""
    },
    {
      "checksum": {
        "algorithm": "SHA256",
        "checksumValue": "SBOMDIGEST_GOES_HERE"
      },
      "externalDocumentId": "amd64-image-sbom",
      "spdxDocument": ""
    }
  ]
}

I just finished the first iteration in apko to generate the index sboms following that proposal. Here is a full exampl and some notes:

The document has one package that represents the multiarch image.
The SBOMs of each of the individual arch images are linked as external documents (externalDocumentRefs).
Note the the digest in those fields corresponds to the hash of the SBOMs, the URL of the external ref (spdxDocument) is pointing directly to the blob because an SPDX client needs to fetch the SBOM from that URL to look up the referenced packages.
The single package representing the index is linked to each of the individual arch images by adding a relationship to the external package, for example DocumentRef-386-image-sbom:SPDXRef-Package-sha256-d03709...

{
  "SPDXID": "SPDXRef-DOCUMENT",
  "name": "sbom-sha256:af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58",
  "spdxVersion": "SPDX-2.2",
  "creationInfo": {
    "created": "1970-01-01T00:00:00Z",
    "creators": [
      "Tool: apko (devel)",
      "Organization: Chainguard, Inc"
    ],
    "licenseListVersion": "3.16"
  },
  "dataLicense": "CC0-1.0",
  "documentNamespace": "https://spdx.org/spdxdocs/apko/",
  "documentDescribes": [
    "SPDXRef-Package-sha256-af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58"
  ],
  "packages": [
    {
      "SPDXID": "SPDXRef-Package-sha256-af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58",
      "name": "<IP_ADDRESS>:5000/test-nosbom3@sha256:af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58",
      "filesAnalyzed": false,
      "licenseConcluded": "NOASSERTION",
      "licenseDeclared": "NOASSERTION",
      "description": "Multi-arch image index",
      "sourceInfo": "Generated at image build time by apko",
      "copyrightText": "NOASSERTION",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58"
        }
      ],
      "externalRefs": [
        {
          "referenceCategory": "PACKAGE_MANAGER",
          "referenceLocator": "pkg:oci/<IP_ADDRESS>:5000%2Ftest-nosbom3?mediaType=application%2Fvnd.oci.image.index.v1+json\u0026tag=latest",
          "referenceType": "purl"
        }
      ]
    }
  ],
  "relationships": [
    {
      "spdxElementId": "DocumentRef-386-image-sbom:SPDXRef-Package-sha256-d0370905ad41c4eb2b1a56f3139fd6a9acfcef203c27e2a9e1655eab28351fd6",
      "relationshipType": "VARIANT_OF",
      "relatedSpdxElement": "SPDXRef-Package-sha256-af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58"
    },
    {
      "spdxElementId": "DocumentRef-amd64-image-sbom:SPDXRef-Package-sha256-b09ddd04b47e07919402c15ea21bf839a95f6bf38ec0df1594c296425010cf1a",
      "relationshipType": "VARIANT_OF",
      "relatedSpdxElement": "SPDXRef-Package-sha256-af1c5f9673f78aa7a575d627cd8a210bf6a895b0065f719a098dc035eee55a58"
    }
  ],
  "externalDocumentRefs": [
    {
      "checksum": {
        "algorithm": "SHA256",
        "checksumValue": "89ddcc4bd6e2b110aef37f0ba7ae5a638bf8c221a9ba8b618bba908c10324d1c"
      },
      "externalDocumentId": "DocumentRef-386-image-sbom",
      "spdxDocument": "https://<IP_ADDRESS>:5000/v2/test-nosbom3/blobs/sha256:89ddcc4bd6e2b110aef37f0ba7ae5a638bf8c221a9ba8b618bba908c10324d1c"
    },
    {
      "checksum": {
        "algorithm": "SHA256",
        "checksumValue": "ff76954b0ade75e2b0c450696c73cc521ef94c94785d30c03c5d624217d2797c"
      },
      "externalDocumentId": "DocumentRef-amd64-image-sbom",
      "spdxDocument": "https://<IP_ADDRESS>:5000/v2/test-nosbom3/blobs/sha256:ff76954b0ade75e2b0c450696c73cc521ef94c94785d30c03c5d624217d2797c"
    }
  ]
}

For the JSON migration, there are types here: https://github.com/kubernetes-sigs/bom/blob/main/pkg/spdx/json/v2.2.2/types.go

Here's a reference for the CycloneDX side of things: https://github.com/chainguard-dev/apko/pull/274


JFRTest fails with graal master: AllowVMInspection deprecated warning

Discovered here:
https://github.com/graalvm/mandrel/runs/7987554026?check_suite_focus=true
Fails with:
Error:  Failures:
Error:    JFRTest.jfrOptionsSmokeTest:157->jfrOptionsSmoke:288 build-and-run.log log should not contain error or warning lines that are not whitelisted. See /home/runner/work/mandrel/mandrel/mandrel-integration-tests/testsuite/target/archived-logs/org.graalvm.tests.integration.JFRTest/jfrOptionsSmokeTest/build-and-run.log and check these offending lines:
Warning: Option 'AllowVMInspection' is deprecated and might be removed from future versions: Please use --enable-monitoring ==> expected: <true> but was: <false>
Error:    JFRTest.jfrSmokeTest:83->jfrSmoke:135 build-and-run.log log should not contain error or warning lines that are not whitelisted. See /home/runner/work/mandrel/mandrel/mandrel-integration-tests/testsuite/target/archived-logs/org.graalvm.tests.integration.JFRTest/jfrSmokeTest/build-and-run.log and check these offending lines:
Warning: Option 'AllowVMInspection' is deprecated and might be removed from future versions: Please use --enable-monitoring ==> expected: <true> but was: <false>

we should be using --enable-monitoring API option in 22.3+

@Karm Could you please look at this when you get a chance. Thanks!

I'll try to get this one fixed.


Add Haiku support

This fixes and upstreams a port by @puckipedia done some years ago.
Didn't check the premake stuff yet (it seems we have a recipe for 4.4 but not 5 yet), but the Scons-built test do work.

Thanks for sharing this pull request with me and apologies for taking so long to get back.
I don't have the Haiku experience to review or maintain but I am willing to maintain a contrib-haiku branch which merges Haiku updates from contributors.
Before I do this I would like to know if you are interested in supporting Haiku via premake when premake5 comes available (maybe it has by now)?

Oh I didn't reply yet… you're not the only one lagging ;-)
Not sure why you want to keep this in a separate branch…
Just checked, we have a premake recipe in haikuports but only for 4.4 for now, but it shouldn't be that hard to update, just need someone with the time to do it.

I managed to build premake 5 alpha13 (alpha14 has a missing file).

But of course it won't work…

I actually installed HaikuOS onto virtualbox tonight and attempted to compile it.  I noticed this PR uses the deprecated Scons approach to compiling.  Unfortunately, it also failed to build tests with link errors: undefined reference to 'operator new[](unsigned long).  This is because gcc is being used to link instead of g++.
I haven't looked at the source code yet.
Is there any will to get this cleaned up? I would consider merging it if the code was of a maintainable quality and just worked for anyone who wanted to build it and its tests.
The first order of business is moving over to the existing Premake system.  Let me know.

I got premake working but I still have to squash the PR…
It's possible it doesn't link with the C++ library by default. You might want to try to build after running setarch x86 which will use the newer gcc than the 2.95.

It doesn't work on my fresh install.
Let me know when premake support is in there and it works from a fresh checkout and provides build instructions that works from a fresh install and I'll check it out.

This PR has merge conflicts and doesn’t build, and has had no comments in a week. In the interest of keeping NFD’s github page current, I’d like to hear a commitment to move this forward with a specific timeframe, or we can close this and try again later with a different PR.

Well I spent the time rebasing the PR on premake… time spent somewhere is not spent on project that's already been waiting for months.
I'll rebase and see.
Wait, which version did you install, beta, nightly? Did you take the gcc2h or a 64bit one?

I rebased but I can't get premake 5 alpha13 to work so I can't add the haiku-specific part yet:
Error: [string "src/base/_foundation.lua"]:57: [string "d/tools/dmd.lua"]:106: attempt to index a nil value
I'll try to make an alpha14 package with my patches…

I finally managed to get a usable premake5 package… but now I have to implement NFD_PickFolder…

It should build now with gcc > 2.95 (I suppose you didn't use the official gcc2 hybrid image which is why you had the missing new()), but I'd still like to get gcc2 working. However it seems premake itself uses options that it doesn't understand properly.

I'll check it out.  What are the exact commands I should type in after doing a fresh install of the OS to get this fully built?

On latest nightly (gcc2h) you should be able to:
pkgman install premake_x86
setarch x86
cd build
premake5 --verbose dist
cd gmake_haiku
make verbose=1

I noticed ImHex that I want to port actually uses this as a git submodule…
Just rebased and fixed the build.

Oddly premake munges all the OBJDIR from all makefiles to remove the ../ for some reason, not sure what to do about this…


OSError: [Errno 22] Invalid argument

HI,
I am trying to run the code and create a sample entity but i am getting the following error. I have checked the credentials and everything seems fine.
Traceback (most recent call last):
File "c:\Users\shkh\Purview.py", line 105, in
batch=[output01, input01, process]
File "C:\Users\shkh\AppData\Roaming\Python\Python36\site-packages\pyapacheatlas\core\client.py", line 927, in upload_entities
headers=self.authentication.get_authentication_headers()
File "C:\Users\shkh\AppData\Roaming\Python\Python36\site-packages\pyapacheatlas\auth\serviceprincipal.py", line 58, in get_authentication_headers
self._set_access_token()
File "C:\Users\shkh\AppData\Roaming\Python\Python36\site-packages\pyapacheatlas\auth\serviceprincipal.py", line 48, in _set_access_token
self.expiration = datetime.fromtimestamp(int(authJson["expires_in"]))
OSError: [Errno 22] Invalid argument

Can you verify your credentials and connectivity by doing a simple read? This would seem that you did not get a valid access_token back from the oauth request.
import os
import json

from pyapacheatlas.auth import ServicePrincipalAuthentication
from pyapacheatlas.core import PurviewClient, AtlasEntity, AtlasProcess

oauth = ServicePrincipalAuthentication(
    tenant_id = os.environ.get('AZURE_TENANT_ID', ''),
    client_id = os.environ.get('AZURE_CLIENT_ID', ''),
    client_secret = os.environ.get('AZURE_CLIENT_SECRET', '')
    )
client = PurviewClient(
    account_name = os.environ.get('PURVIEW_CATALOG_NAME', ''),
    authentication = oauth
    )
all_type_defs = client.get_all_typedefs()
print(all_type_defs)

HI
Still the same error when I am running using a Python Script. If i use
Jupyter and do Az Login then the code is working fine. Seems like the Auth
token is having some issues when running .py script.
[image: image.png]
Best Regards
Sher Shah Khan
On Thu, Feb 11, 2021 at 8:12 AM Brian Sherwin<EMAIL_ADDRESS>wrote:

Can you verify your credentials and connectivity by doing a simple read?
This would seem that you did not get a valid access_token back from the
oauth request.
import os
import json
from pyapacheatlas.auth import ServicePrincipalAuthentication
from pyapacheatlas.core import PurviewClient, AtlasEntity, AtlasProcess
oauth = ServicePrincipalAuthentication(
tenant_id = os.environ.get('AZURE_TENANT_ID', ''),
client_id = os.environ.get('AZURE_CLIENT_ID', ''),
client_secret = os.environ.get('AZURE_CLIENT_SECRET', '')
)
client = PurviewClient(
account_name = os.environ.get('PURVIEW_CATALOG_NAME', ''),
authentication = oauth
)
all_type_defs = client.get_all_typedefs()
print(all_type_defs)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/wjohnson/pyapacheatlas/issues/89#issuecomment-777039514,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACYN7IHRS5ZXFJR3BCO3DZDS6LZD3ANCNFSM4XH6MAVQ
.

@shershahkhan I was able to replicate this issue on a Windows 10 Powershell window running Python 3.6. I find it interesting that this code runs fine in bash. I think the fix is in the PR listed above, but @wjohnson will have to confirm.

@shershahkhan The latest version in Github fixes the issue for PowerShell.  Thank you @bsherwin for investigating and finding a fix for this!

@shershahkhan latest release on PyPi now reflects Brian's changes!
https://pypi.org/project/pyapacheatlas/0.4.1/


Adding Workflows docs page

Summary
This PR fixes #602

[ ] My code follows the code style of this project and passes make format.
[ ] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[ ] My change has adequate unit test coverage.

Great work, @elisalimli! This is a comprehensive guide on how to create and invoke workflows using the Superagent SDK. The code looks good and follows the conventions of both Python and JavaScript.
I have a few suggestions for improvement:

It would be helpful to include some explanations or comments in the code to provide more context and make it easier for others to understand.

It's a good practice to handle any potential errors or exceptions that may occur during the API calls. You can use try-catch blocks or error handling mechanisms to ensure a smooth execution.

Other than that, the code looks good and the instructions are clear. Well done! 👍🏼

@homanp is this PR deployed to production?
looks like people can't find it.
https://discord.com/channels/1110910277110743103/1190041053579985007/1190041053579985007


Support in-flight rate adjustment

It would be useful to be able to set the rate of the worker after the worker is initially created, to cover cases where the desired rate may change with application  logic and we want to apply any new rate to the existing queue

The underlying mechanism to do so is already there (it's used for back pressure), so it's just  a matter of deciding the best way to expose it.

@SystemFw did you have an opinion on how to design this?
I think the easiest approach would be to remove the backoff parameter from the limiter and instead allowing that function to live on the BackPressure model. The worker can then create a no-op job with backoff set which will alter the rate of the limiter based on what the worker has requested. A helper method can exist on the worker in order to make the API more idiomatic:
w.adjustLimiterRate(100 every 1.minute)

Problem with this approach is that the internal naming is a bit of an oxymoron in the case that the rate increases.
I need this for a project within my work, so I'd be happy to open a PR but want to discuss some designs first.

well, I think that just exposing the Signal (or the Ref, if I replace it) would be better than offering several helper methods. I kinda want to do a broader redesign before releasing for 1.0, but I keep getting side tracked by other work in fs2 proper or cats-effect

This is fixed in 0.2.0-M2


Pass proxy settings through to S3 CRT Client

Issue #, if available:
2571
Description of changes:
Pass proxy settings from S3CrtConfig through to the aws_s3_client_config struct for CRT
Check all that applies:

[✅] Did a review by yourself.
[ ] Added proper tests to cover this PR. (If tests are not applicable, explain.) - don't have access to a global proxy, tested on company proxy
[ ] Checked if this PR is a breaking (APIs have been changed) change.
[ ] Checked if this PR will not introduce cross-platform inconsistent behavior.
[ ] Checked if this PR would require a ReadMe/Wiki update.

Check which platforms you have built SDK on to verify the correctness of this PR.

[✅] Linux
[ ] Windows
[ ] Android
[ ] MacOS
[ ] IOS
[ ] Other Platforms

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

closing in favor of pull/2777 that has code generation on it. will also run CI, thanks for contributing.


Fix share icon size

Introduced in https://github.com/hexojs/hexo-theme-landscape/commit/7dfe38c6e50b98ad63c51e24cca3f1caf8714870#diff-26213b4007aa6716fd661abe8c9923559eca40f37a5392bca85ccc0b3419389cR59

Thanks for your contribution!


chore: smoke test in parallel

Our SauceLabs account should be able to run the smoke tests in parallel now. This PR attempts to this.
Fixes #1563

Duplicate