DMalloc detection of free space overwrite during TestRead

Problem
Two instances for this at least:
https://github.com/project-chip/connectedhomeip/runs/8005304886?check_suite_focus=true
https://github.com/project-chip/connectedhomeip/runs/7984389882?check_suite_focus=true
Log says:
...
[1661296765.557679][75818:75818] CHIP:EM: Retransmitting MessageCounter:128264913 on exchange 47182i Send Cnt 1
[1661296765.561911][75818:75818] CHIP:IN: Sending encrypted msg 0x7fc57a2058d0 with MessageCounter:128264913 to 0x0000000011223344 (2) at monotonic time:<PHONE_NUMBER>19EB6C msec
[1661296765.570471][75818:75818] CHIP:DMG: Unblock report hold after min 57311 seconds
debug-malloc library: dumping program, fatal error
  Error: free space has been overwritten (err 67)
Aborted (core dumped)
INF Test 1/1: [FAIL] TestRead

I am unclear where 57311 seconds come from (seems like an abnormally large seconds count) however timestamps do not seem to point at a large thread block either. Unfortunately TestRead in general is very slow to run and with a lot of logs, making it hard to debug.

That log line is doing:
ChipLogDetail(DataManagement, "Unblock report hold after min %d seconds", readHandler->mMinIntervalFloorSeconds);

and mMinIntervalFloorSeconds is a uint16_t.  57311 is 0xdfdf as a 16-bit number.  And debug-malloc uses 0xdf as the "freed memory" marker.
So in this case readHandler is pointing to freed memory and we somehow managed to free it without canceling the OnUnblockHoldReportCallback timer....
@mrjerryjohns @yunhanw-google

Oh, and I expect the "free space has been overwritten" bit is from the immediate next line, which does:
    readHandler->mFlags.Set(ReadHandlerFlags::HoldReport, false);

Did not yet manage to run in RR, however only on my intel vm after a few runs I managed to get a coredump:
#0  0x00005556b54787f2 in chip::Transport::Session::IsSecureSession() const (this=0xdfdfdfdfdfdfdfdf)
    at ../../src/transport/Session.h:226
#1  0x00005556b5479d2b in chip::Messaging::ExchangeContext::NotifyResponseTimeout(bool)
    (this=0x7fc1837eb208, aCloseIfNeeded=true) at ../../src/messaging/ExchangeContext.cpp:487
#2  0x00005556b5479cce in chip::Messaging::ExchangeContext::HandleResponseTimeout(chip::System::Layer*, void*) (aSystemLayer=0x5556b54fb1e0 <gSystemLayer>, aAppState=0x7fc1837eb208)
    at ../../src/messaging/ExchangeContext.cpp:476
#3  0x00005556b54cecfd in chip::System::TimerData::Callback::Invoke() const (this=0x7fff03b0f9a0)
    at ../../src/system/SystemTimer.h:61
#4  0x00005556b54d036d in chip::System::TimerPool<chip::System::TimerList::Node>::Invoke(chip::System::TimerList::Node*) (this=0x5556b54fb7e8 <gSystemLayer+1544>, timer=0x7fc1837e7948)
    at ../../src/system/SystemTimer.h:224
#5  0x00005556b54cfeb8 in chip::System::LayerImplSelect::HandleEvents()
    (this=0x5556b54fb1e0 <gSystemLayer>) at ../../src/system/SystemLayerImplSelect.cpp:476
#6  0x00005556b54a5a45 in ServiceEvents(unsigned int) (aSleepTimeMilliseconds=10)
    at ../../src/inet/tests/TestInetCommonPosix.cpp:449
#7  0x00005556b54a5439 in chip::Test::IOContext::DriveIO() (this=0x7fc183937010)
    at ../../src/transport/raw/tests/NetworkTestHelpers.cpp:58
#8  0x00005556b54a546c in chip::Test::IOContext::DriveIOUntil(std::chrono::duration<unsigned int, std::ratio<1l, 1000l> >, std::function<bool ()>) (this=0x7fc183937010, maxWait=..., completionFunction=...)
    at ../../src/transport/raw/tests/NetworkTestHelpers.cpp:67
#9  0x00005556b537bc22 in (anonymous namespace)::TestReadInteraction::TestReadHandler_MultipleSubscriptionsWithDataVersionFilter(nlTestSuite*, void*) (apSuite=0x5556b54f6120 <(anonymous namespace)::sSuite>, apContext=0x7fc183937008) at ../../src/controller/tests/data_model/TestRead.cpp:2612

Got a RR trace, investigating. For now the trace there seems different:
#8  0x0000713f0489af1d in dmalloc_malloc () from /usr/local/lib/libdmallocthcxx.so
#9  0x000055aeb2c6dd43 in chip::Platform::MemoryAlloc (size=40) at ../../src/lib/support/CHIPMem-Malloc.cpp:91
#10 0x000055aeb2d1f328 in chip::Platform::New<chip::System::TimerList::Node, chip::System::Layer&, std::chrono::duration<unsigned long, std::ratio<1l, 1000l> >&, void (*&)(chip::System::Layer*, void*), void*&> () at ../../src/lib/support/CHIPMem.h:145
#11 0x000055aeb2d1f137 in chip::HeapObjectPool<chip::System::TimerList::Node>::CreateObject<chip::System::Layer&, std::chrono::duration<unsigned long, std::ratio<1l, 1000l> >&, void (*&)(chip::System::Layer*, void*), void*&> (this=0x55aeb2d4a7a8 <gSystemLayer+1544>) at ../../src/lib/support/Pool.h:325
#12 0x000055aeb2d1ee25 in chip::System::TimerPool<chip::System::TimerList::Node>::Create (this=0x55aeb2d4a7a8 <gSystemLayer+1544>, systemLayer=...,
    awakenTime=..., onComplete=0x55aeb2c41480 <chip::app::ReadHandler::OnRefreshSubscribeTimerSyncCallback(chip::System::Layer*, void*)>,
    appState=0x72cd6c52a708) at ../../src/system/SystemTimer.h:194
#13 0x000055aeb2d1dda3 in chip::System::LayerImplSelect::StartTimer (this=0x55aeb2d4a1a0 <gSystemLayer>, delay=...,
    onComplete=0x55aeb2c41480 <chip::app::ReadHandler::OnRefreshSubscribeTimerSyncCallback(chip::System::Layer*, void*)>, appState=0x72cd6c52a708)
    at ../../src/system/SystemLayerImplSelect.cpp:131
#14 0x000055aeb2c41462 in chip::app::ReadHandler::OnUnblockHoldReportCallback (apSystemLayer=0x55aeb2d4a1a0 <gSystemLayer>, apAppState=0x72cd6c52a708)
    at ../../src/app/ReadHandler.cpp:748
#15 0x000055aeb2d1d861 in chip::System::TimerData::Callback::Invoke

ReadHandler seems to be cleared and the free stack trace according to RR is:
#0  chip::app::ReadHandler::~ReadHandler (this=0x72cd6c52a708, __in_chrg=<optimized out>) at ../../src/app/ReadHandler.cpp:59
#1  0x000055aeb2bf22de in chip::Platform::Delete<chip::app::ReadHandler> (p=0x72cd6c52a708) at ../../src/lib/support/CHIPMem.h:168
#2  0x000055aeb2be0e16 in chip::HeapObjectPool<chip::app::ReadHandler>::ReleaseObject (this=0x55aeb2d46138 <chip::app::sInteractionModelEngine+1752>, object=0x72cd6c52a708) at ../../src/lib/support/Pool.h:360
#3  0x000055aeb2c20250 in chip::app::InteractionModelEngine::OnDone (this=0x55aeb2d45a60 <chip::app::sInteractionModelEngine>, apReadObj=...) at ../../src/app/InteractionModelEngine.cpp:291
#4  0x000055aeb2c3c1fb in chip::app::ReadHandler::Close (this=0x72cd6c52a708) at ../../src/app/ReadHandler.cpp:88
#5  0x000055aeb2c3d408 in chip::app::ReadHandler::OnMessageReceived (this=0x72cd6c52a708, apExchangeContext=0x72cd6c52ac08, aPayloadHeader=..., aPayload=...) at ../../src/app/ReadHandler.cpp:275
#6  0x000055aeb2c1edd9 in chip::Messaging::ExchangeHolder::OnMessageReceived (this=0x72cd6c52a790, ec=0x72cd6c52ac08, payloadHeader=..., payload=...) at ../../src/messaging/ExchangeHolder.h:154
#7  0x000055aeb2cc6b33 in chip::Messaging::ExchangeContext::HandleMessage (this=0x72cd6c52ac08, messageCounter=25554252, payloadHeader=..., msgFlags=..., msgBuf=...) at ../../src/messaging/ExchangeContext.cpp:587
#8  0x000055aeb2cc9636 in operator()<chip::Messaging::ExchangeContext> (__closure=0x7ffc77b0e180, ec=0x72cd6c52ac08) at ../../src/messaging/ExchangeMgr.cpp:219
#9  0x000055aeb2cc9b09 in chip::internal::LambdaProxy<chip::Messaging::ExchangeContext, chip::Messaging::ExchangeManager::OnMessageReceived(const chip::PacketHeader&, const chip::PayloadHeader&, const chip::SessionHandle&, chip::SessionMessageDelegate::DuplicateMessage, chip::System::PacketBufferHandle&&)::<lambda(auto:6*)> >::Call(void *, void *) (context=0x7ffc77b0e180, target=0x72cd6c52ac08) at ../../src/lib/support/Pool.h:126
#10 0x000055aeb2c6d8b1 in chip::internal::HeapObjectList::ForEachNode (this=0x769847aecd88, context=0x7ffc77b0e180, lambda=0x55aeb2cc9ae6 <chip::internal::LambdaProxy<chip::Messaging::ExchangeContext, chip::Messaging::ExchangeManager::OnMessageReceived(const chip::PacketHeader&, const chip::PayloadHeader&, const chip::SessionHandle&, chip::SessionMessageDelegate::DuplicateMessage, chip::System::PacketBufferHandle&&)::<lambda(auto:6*)> >::Call(void *, void *)>) at ../../src/lib/support/Pool.cpp:126
#11 0x000055aeb2cc96c9 in chip::HeapObjectPool<chip::Messaging::ExchangeContext>::ForEachActiveObject<chip::Messaging::ExchangeManager::OnMessageReceived(const chip::PacketHeader&, const chip::PayloadHeader&, const chip::SessionHandle&, chip::SessionMessageDelegate::DuplicateMessage, chip::System::PacketBufferHandle&&)::<lambda(auto:6*)> >(struct {...} &&) (this=0x769847aecd78, function=...) at ../../src/lib/support/Pool.h:401
#12 0x000055aeb2cc8ab5 in chip::Messaging::ExchangeManager::OnMessageReceived (this=0x769847aecd60, packetHeader=..., payloadHeader=..., session=..., isDuplicate=chip::SessionMessageDelegate::DuplicateMessage::No, msgBuf=...) at ../../src/messaging/ExchangeMgr.cpp:212
#13 0x000055aeb2cd3180 in chip::SessionManager::SecureUnicastMessageDispatch (this=0x769847aecc70, packetHeader=..., peerAddress=..., msg=...) at ../../src/transport/SessionManager.cpp:715
#14 0x000055aeb2cd23c5 in chip::SessionManager::OnMessageReceived (this=0x769847aecc70, peerAddress=..., msg=...) at ../../src/transport/SessionManager.cpp:542
#15 0x000055aeb2cd4ffd in chip::TransportMgrBase::HandleMessageReceived (this=0x769847aec028, peerAddress=..., msg=...) at ../../src/transport/TransportMgrBase.cpp:76
#16 0x000055aeb2ba5581 in chip::Transport::Base::HandleMessageReceived (this=0x769847aec050, source=..., buffer=...) at ../../src/transport/raw/Base.h:102
#17 0x000055aeb2ba864f in chip::Test::LoopbackTransport::OnMessageReceived (aSystemLayer=0x55aeb2d4a1a0 <gSystemLayer>, aAppState=0x769847aec050) at ../../src/transport/raw/tests/NetworkTestHelpers.h:98
#18 0x000055aeb2d1d861 in chip::System::TimerData::Callback::Invoke (this=0x7ffc77b0e650) at ../../src/system/SystemTimer.h:61
#19 0x000055aeb2d1f040 in chip::System::TimerPool<chip::System::TimerList::Node>::Invoke (this=0x55aeb2d4a7a8 <gSystemLayer+1544>, timer=0x572370e0d108) at ../../src/system/SystemTimer.h:224
#20 0x000055aeb2d1eaff in chip::System::LayerImplSelect::HandleEvents (this=0x55aeb2d4a1a0 <gSystemLayer>) at ../../src/system/SystemLayerImplSelect.cpp:476
#21 0x000055aeb2cf2e68 in ServiceEvents (aSleepTimeMilliseconds=10) at ../../src/inet/tests/TestInetCommonPosix.cpp:449
#22 0x000055aeb2cf2809 in chip::Test::IOContext::DriveIO (this=0x769847aec010) at ../../src/transport/raw/tests/NetworkTestHelpers.cpp:58
#23 0x000055aeb2cf284b in chip::Test::IOContext::DriveIOUntil(std::chrono::duration<unsigned int, std::ratio<1l, 1000l> >, std::function<bool ()>) (this=0x769847aec010, maxWait=..., completionFunction=...) at ../../src/transport/raw/tests/NetworkTestHelpers.cpp:67
#24 0x000055aeb2bb86e2 in (anonymous namespace)::TestReadInteraction::TestReadHandler_MultipleSubscriptions (apSuite=0x55aeb2d45100 <(anonymous namespace)::sSuite>, apContext=0x769847aec008) at ../../src/controller/tests/data_model/TestRead.cpp:1716
#25 0x000055aeb2cf38ad in nlTestRunner (inSuite=0x55aeb2d45100 <(anonymous namespace)::sSuite>, inContext=0x769847aec008) at ../../third_party/nlunit-test/repo/src/nlunit-test.c:213
#26 0x000055aeb2bd5314 in chip::ExecuteTestsWithContext<chip::Test::AppContext> (suite=0x55aeb2d45100 <(anonymous namespace)::sSuite>) at ../../src/lib/support/UnitTestContext.h:46
#27 0x000055aeb2bcdb70 in TestReadInteractionTest () at ../../src/controller/tests/data_model/TestRead.cpp:4441
#28 0x000055aeb2b9cc57 in main () at gen/TestRead.driver.cpp:32

with usage afterwards in:
(rr) print readHandler
$7 = (chip::app::ReadHandler *) 0x72cd6c52a708
(rr) bt
#0  chip::app::ReadHandler::OnUnblockHoldReportCallback (apSystemLayer=0x55aeb2d4a1a0 <gSystemLayer>, apAppState=0x72cd6c52a708) at ../../src/app/ReadHandler.cpp:742
#1  0x000055aeb2d1d861 in chip::System::TimerData::Callback::Invoke (this=0x7ffc77b0e650) at ../../src/system/SystemTimer.h:61
#2  0x000055aeb2d1f040 in chip::System::TimerPool<chip::System::TimerList::Node>::Invoke (this=0x55aeb2d4a7a8 <gSystemLayer+1544>, timer=0x68342b48) at ../../src/system/SystemTimer.h:224
#3  0x000055aeb2d1eaff in chip::System::LayerImplSelect::HandleEvents (this=0x55aeb2d4a1a0 <gSystemLayer>) at ../../src/system/SystemLayerImplSelect.cpp:476
#4  0x000055aeb2cf2e68 in ServiceEvents (aSleepTimeMilliseconds=10) at ../../src/inet/tests/TestInetCommonPosix.cpp:449
#5  0x000055aeb2cf2809 in chip::Test::IOContext::DriveIO (this=0x769847aec010) at ../../src/transport/raw/tests/NetworkTestHelpers.cpp:58
#6  0x000055aeb2cf284b in chip::Test::IOContext::DriveIOUntil(std::chrono::duration<unsigned int, std::ratio<1l, 1000l> >, std::function<bool ()>) (this=0x769847aec010, maxWait=..., completionFunction=...) at ../../src/transport/raw/tests/NetworkTestHelpers.cpp:67
#7  0x000055aeb2bb86e2 in (anonymous namespace)::TestReadInteraction::TestReadHandler_MultipleSubscriptions (apSuite=0x55aeb2d45100 <(anonymous namespace)::sSuite>, apContext=0x769847aec008) at ../../src/controller/tests/data_model/TestRead.cpp:1716
#8  0x000055aeb2cf38ad in nlTestRunner (inSuite=0x55aeb2d45100 <(anonymous namespace)::sSuite>, inContext=0x769847aec008) at ../../third_party/nlunit-test/repo/src/nlunit-test.c:213
#9  0x000055aeb2bd5314 in chip::ExecuteTestsWithContext<chip::Test::AppContext> (suite=0x55aeb2d45100 <(anonymous namespace)::sSuite>) at ../../src/lib/support/UnitTestContext.h:46
#10 0x000055aeb2bcdb70 in TestReadInteractionTest () at ../../src/controller/tests/data_model/TestRead.cpp:4441
#11 0x000055aeb2b9cc57 in main () at gen/TestRead.driver.cpp:32

Note: in OnUnblockHoldReportCallback, the object is obviously freed and cleared:
(rr) x/40 readHandler
0x72cd6c52a708: 0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf
0x72cd6c52a718: 0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf
0x72cd6c52a728: 0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf
0x72cd6c52a738: 0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf
0x72cd6c52a748: 0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf
0x72cd6c52a758: 0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf
0x72cd6c52a768: 0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf
0x72cd6c52a778: 0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf
0x72cd6c52a788: 0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf
0x72cd6c52a798: 0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf      0xdfdfdfdf

I suspect the key is this bit in the destructor stack:
#0  chip::app::ReadHandler::~ReadHandler (this=0x72cd6c52a708, __in_chrg=<optimized out>) at ../../src/app/ReadHandler.cpp:59
...
#17 0x000055aeb2ba864f in chip::Test::LoopbackTransport::OnMessageReceived (aSystemLayer=0x55aeb2d4a1a0 <gSystemLayer>, aAppState=0x769847aec050) at ../../src/transport/raw/tests/NetworkTestHelpers.h:98
#18 0x000055aeb2d1d861 in chip::System::TimerData::Callback::Invoke (this=0x7ffc77b0e650) at ../../src/system/SystemTimer.h:61
#19 0x000055aeb2d1f040 in chip::System::TimerPool<chip::System::TimerList::Node>::Invoke (this=0x55aeb2d4a7a8 <gSystemLayer+1544>, timer=0x572370e0d108) at ../../src/system/SystemTimer.h:224

So unlike the "normal" non-test case this message is coming off a timer.  And then it's very possible that we're hitting https://github.com/project-chip/connectedhomeip/issues/19387's "can't cancel a timer if another timer is firing and the timers were scheduled for close together" issue.


Remove open libstdc++

Closes #259. This appears to be a hold out from an early version of the install script https://github.com/JuliaOpt/CPLEX.jl/commit/83628ed5aa7584feeb3ebc4140b87be17ca264c8.
I tested on OSX, and we don't need this.

Codecov Report

Merging #263 into master will decrease coverage by 4.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #263      +/-   ##
==========================================
- Coverage   69.24%   65.21%   -4.03%
==========================================
  Files          15       14       -1
  Lines        2432     2070     -362
==========================================
- Hits         1684     1350     -334
+ Misses        748      720      -28

Impacted Files
Coverage Δ

src/cpx_common.jl
43.75% <0%> (-19.89%)
:arrow_down:

src/cpx_env.jl
71.42% <0%> (-15.76%)
:arrow_down:

src/cpx_quad.jl
54.54% <0%> (-13.98%)
:arrow_down:

src/cpx_solve.jl
43.68% <0%> (-11.52%)
:arrow_down:

src/cpx_model.jl
62.88% <0%> (-5.87%)
:arrow_down:

src/cpx_constrs.jl
61.4% <0%> (-4.74%)
:arrow_down:

src/MOI/MOI_wrapper.jl
83.47% <0%> (-3.22%)
:arrow_down:

src/cpx_callbacks.jl
9.67% <0%> (-2.83%)
:arrow_down:

src/cpx_vars.jl
69.87% <0%> (-2.65%)
:arrow_down:

src/cpx_highlevel.jl
81.81% <0%> (-1.52%)
:arrow_down:

... and 5 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 44c8ca6...72be907. Read the comment docs.


User creates a magazine S23

@AndrewMagdy @bassemmagdy @mohabashraf @omaressameldin @mayarali

@MohammedAnsary the last arrow should be aligned with the arrow from if, however it is not a big deal.

@AndrewMagdy what should I change?

Same As other story Fix styling errors in controllers Run rubocop on project folder to see all violations

@AndrewMagdy Please check the style fixations

Self reviewed tests which cover the magazine model and the part of the magazines_controller that are concerned with this issue


ELI5 dataset

Hi :)
I wanted to ask if you have access to the supporting documents in the ELI5 dataset and if you could provide some information on where to find them.
Thanks and best regards,
Chantal

We will release the retrieved HTML from Bing soon.

The training and test data are now available in the huggingface dataset HtmlRAG-train and HtmlRAG-test.
By the way, full ELI5 dataset can be accessed at FlashRAG_datasets.
Hope this solves your concern. I close this issue for now.


Fix another bug in profiling

It seemed initially plausible that the term and type should match up
exactly when we're processing them, and thus it's okay to blow up if
they don't match.
But this is false: both at the term and the type level. I ran into it at
the type level (type lambdas from newtypes), but it's also false at the
term level.

Pre-submit checklist:

Branch

[x] Tests are provided (if possible)
[x] Commit sequence broadly makes sense
[x] Key commits have useful messages
[ ] Relevant tickets are mentioned in commit messages
[x] Formatting, materialized Nix files, PNG optimization, etc. are updated

PR

[ ] (For external contributions) Corresponding issue exists and is linked in the description
[x] Self-reviewed the diff
[x] Useful pull request description
[x] Reviewer requested

I hope you don't mind me pushing a tiny commit fixing typos.

Not at all! :)


Render historic=railway_car and historic=locomotive

https://github.com/tracestrack/tracesmap.com/issues/8

Rendering using same icon


Update README.md for display dates

@ktamaral super minor suggestion, thank you for putting this together!


History / path change

I can't seem to do any kind of document.location-based navigation while using Amok, even if these are just query-based.

Minimal reproducible example?


Translation for sliding pagination controls

The KnpPaginatorBundle:Pagination:twitter_bootstrap_v3_pagination.html.twig template configured for pagination has Previous and Next strings ready for translation, what we should do: translate this strings directly or override this template and include strings like pagination.previous & pagination.next ?

I think better to use already defined keys: next and previous.

@bocharsky-bw where are these keys already defined ? I didn't see them in messages.en.xliff

Sorry, I wrote with lowercase. It's the same what you mean first.

Ahh ok I also think it's better to overwrite this template and include this couple of keys

Where should be included this keys inside the dictionary ? As simple keys or in title, action or label sections ?


Problem to create Kyc Page

Does someone could help me to implement CreateKycPage...
I have my user Id (req.params.a below), my document Id (req.params.b below) with status created and my file encoded on base64 (req.params.c below)...
Then I call that function on Nodejs:
`
1
Parse.Cloud.define('new_kyc_page_mpay', function (req, res)
  | {
  | var mangopay = require('mangopay2-nodejs-sdk');
  |
  | var mango = new mangopay({
  | clientId: 'xxx',
  | clientPassword: 'xxx'
  | });
  |
  | mango.Users.createKycPageFromFile( req.params.a, req.params.b, {
  | "File": req.params.c
  | },function(myKYCpage) {
  | // Output the created user data to console
  | res.success(myKYCpage);
  | });
  |
  | });
`
And I get 'File does not exist'
I tried the same with CreateKycPage but I just get some empty buffer...
I don't figure out how to create a page with these two methods 'CreateKycPage' and 'CreateKycPageFromFile'... on mangopay docs, code is only in PHP... it seems that the file has to be encoded in base64 but when I see the codes on Nodejs it seems that we have to provide file path and that the library encodes that file
Well I am lost... everything was ok (user, wallet, bank accounts, kyc documents) but I am blocked with this page creation.
Thanks for any help

I found the solution that maybe is obvious for some of you but was kind of tricky for me as documentation on that point on mangopay site is missing in my point of view... and only php code examples.
Because I couldn't see in that documentation that api calls response to that particular endpoint are empty and you have to catch response statusCode that is 204 so body is empty.
So for those who have the same problem, these are 2 solutions that worked for me:
1 - with mangopay node js library:
Parse.Cloud.define('new_page_mpay', function (req, res)
--
  | {
  | var mangopay = require('mangopay2-nodejs-sdk');
  |
  | var mango = new mangopay({
  | clientId: 'your_client_id',
  | clientPassword: 'passphrase' .  // mode sandbox
  | });
  |
  | var KycPage = new mango.models.KycPage({
  | "File":req.params.c // your file base64 encoded
  | });
  |
  | mango.Users.createKycPage(req.params.a,req.params.b,KycPage, function(error, response, body) {
  | res.success(response.statusCode);
  | });
  |
  | });

You get 204 response status if everything is OK and then you have to submit your Kyc document for validation.
2- with post request:
req.params.a is User_id
req.params.b is document_kyc_id
req.params.c is your encoded base64 file
var page = { method: 'POST',
--
  | url: 'https://api.sandbox.mangopay.com/v2.01/your_client_id/users/'+req.params.a+'/kyc/documents/'+req.params.b+'/pages/',
  | headers: { 'content-type': 'application/json',
  | "Authorization": "Bearer "+ access_token
  | },
  | body: JSON.stringify({"File":req.params.c}) };
  |
  | request(page, function (error, response, body) {
  | if(error){res.error(error);}
  | res.success(response.statusCode);
  | });

Hello @cyboolo
Thanks for your "auto-answer", I guess it could be very helpful for all node.js devs there!
I'm sorry if our documentation is not clear enough:

on docs.mangopay.com, we're just giving some PHP code examples, that's right, and we can't give any other language example on it for the moment
on our node.js documentation, I guess we could be more precise. I will check what's missing very soon, and enhance it ASAP.

Mickaël


fix(carousel): fix conditions for animation

Fix incorrect animation conditions

Working Plunker here
This fixes #4972

Oh nice, LGTM


[Bug]: v0.10.5 - Unable to add components using npx

Reproduction
Use the CLI
Describe the bug
Since the latest release the npx shadcn-vue@latest add tabs helper no longer works.
Currently using 0.10.4 to keep functionality going.
System Info
System:
    OS: macOS 14.5
    CPU: (10) arm64 Apple M1 Pro
    Memory: 153.47 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.11.0 - ~/.nvm/versions/node/v20.11.0/bin/node
    npm: 10.4.0 - ~/.nvm/versions/node/v20.11.0/bin/npm
    bun: 1.1.3 - ~/.bun/bin/bun
  Browsers:
    Chrome: 124.0.6367.208
    Safari: 17.5
  npmPackages:
    @vueuse/core: ^10.9.0 => 10.9.0
    nuxt: ^3.11.2 => 3.11.2
    radix-vue: ^1.7.4 => 1.7.4
    shadcn-nuxt: ^0.10.4 => 0.10.4
    vue: ^3.4.27 => 3.4.27

Contributes

[ ] I am willing to submit a PR to fix this issue
[ ] I am willing to submit a PR with failing tests

@philliphartin JS or TS project?

It was a TS project (Nuxt)

Same here(tried npm, pnpm, bun), I think this is a bug of v0.10.5.
When I follow documentation using npx shadcn-vue@latest add label it shows below success message.

√ Component button already exists. Would you like to overwrite? ... yes
✔ Done.

but cannot find files in components/ui directory.
npx<EMAIL_ADDRESS>add label works fine.

Same problem

same using node v20.13.1

Same here

Nuxt 3.11.2
Node v20.13.1
pnpm 9.1.2

Same issue for me with Nuxt and shadcn-vue@latest. Works fine with v0.10.4

Hey guys.. I've just tested on Stackblitz using v0.10.5 and latest Nuxt, seems to be fine tho 🤔
https://stackblitz.com/edit/github-iqfvjd?file=package.json

Maybe it only happens on Windows? I'm not sure what environment StackBlitz uses.

Tested on Windows 11 it's working  with v0.10.5

Tested on Windows 11 it's working with v0.10.5

Indicates success and the component is downloaded to the desktop, and not to the project

If you are in Nuxt/JS project this issue might help (component added outside of the project directory)
https://github.com/radix-vue/shadcn-vue/issues/291#issuecomment-1901788144

If you are in Nuxt/JS project this issue might help (component added outside of the project directory)
#291 (comment)

For my case (Nuxt/TS) the components were being added to the parent dir, this solution did fix the issue with detecting root dir.

If you are in Nuxt/JS project this issue might help (component added outside of the project directory)
#291 (comment)

For my case (Nuxt/TS) the components were being added to the parent dir, this solution did fix the issue with detecting root dir.

Did not fix the issue for me.

@diakonovm  can you share what kind of error message you got? We need more details in what is the root cause of this issue

I've been finding the same as the above.
Neither the linked #291 nor deleting the node_modules fixed it.
As above, when I run npx shadcn-vue@latest add sonner tooltip the CLI still runs, it says it is successful ... but now the component is no longer installed in the /components/ui folder (with the rest) but instead get added to the parent folder, in a newly created sibling components/ui folder. Weird! For now I have just manually moved them and then deleted that folder.
Nuxt app, on a Mac, using npm.

Just tried it again and it only works when https://github.com/radix-vue/shadcn-vue/issues/291#issuecomment-1901788144 is added to the nuxt.config.ts then deleting the node_modules and running pnpm install

If you are in Nuxt/JS project this issue might help (component added outside of the project directory)
#291 (comment)

For my case (Nuxt/TS) the components were being added to the parent dir, this solution did fix the issue with detecting root dir.

This seems to work

@kawoki Ah ... yes! Thanks. The order matters.

Daniel Roe quote

There are a number of reasons we choose not to set baseURL, including the fact that typescript recommends against it.
Let's see if we can fix the upstream issue another way.

i made an npm command that moves the folders for windows.
 "shadcnmove": "robocopy \"C:\\Users\\USER_NAME\\code\\components\\ui\" \"C:\\Users\\USER_NAME\\code\\PROJECT_NAME\\components\\ui\" /move /e",

For those who are using Nuxt, I fixed it by setting the tsConfigPath in components.json. Here is my new config.
{
  "$schema": "https://shadcn-vue.com/schema.json",
  "style": "default",
  "typescript": true,
  "tsConfigPath": ".nuxt/tsconfig.json",
  "tailwind": {
    "config": "tailwind.config.js",
    "css": "assets/css/tailwind.css",
    "baseColor": "stone",
    "cssVariables": true
  },
  "framework": "nuxt",
  "aliases": {
    "components": "@/components",
    "utils": "@/utils/cn"
  }
}

For those who are using Nuxt, I fixed it by setting the tsConfigPath in components.json. Here is my new config.
{
  "$schema": "https://shadcn-vue.com/schema.json",
  "style": "default",
  "typescript": true,
  "tsConfigPath": ".nuxt/tsconfig.json",
  "tailwind": {
    "config": "tailwind.config.js",
    "css": "assets/css/tailwind.css",
    "baseColor": "stone",
    "cssVariables": true
  },
  "framework": "nuxt",
  "aliases": {
    "components": "@/components",
    "utils": "@/utils/cn",
    "ui": "@/components/ui"
  }
}

And as an extra information, we should set the aliases.ui in components.json, if we want to change where the components should be placed. The componentsDir in nuxt.config.ts is for the auto import.
  shadcn: {
    prefix: '',
    componentDir: './components/ui',
  },

Fixed it for me too, thank you! I had tsconfig.json instead of .nuxt/tsconfig.json, because tsconfig.json extends .nuxt/tsconfig.json.

Worked for me after changing the tsConfigPath
components.json
"tsConfigPath": "./.nuxt/tsconfig.json",
But the add script is for some reason not adding the required utils in utils/shadcn.ts on my windows machine.

components.json
{
  "$schema": "https://shadcn-vue.com/schema.json",
  "style": "default",
  "typescript": true,
  "tsConfigPath": "./.nuxt/tsconfig.json",
  "tailwind": {
    "config": "tailwind.config.js",
    "css": "assets/style.css",
    "baseColor": "gray",
    "cssVariables": true
  },
  "framework": "nuxt",
  "aliases": {
    "components": "@/components",
    "utils": "@/utils/shadcn"
  }
}

version
------------------------------
- Operating System: Windows_NT
- Node Version:     v20.17.0
- Nuxt Version:     3.13.1
- CLI Version:      3.13.2
- Nitro Version:    2.9.7
- Package Manager<EMAIL_ADDRESS>- Builder:          -
- User Config:      telemetry, debug, devtools, experimental, css, modules, shadcn, meilisearch, nitro, icon, build, routeRules, components, formkit, compatibilityDate
- Runtime Modules:  normalizedModule(), normalizedModule<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>- Build Modules:    -
------------------------------

Any he

Worked for me after changing the tsConfigPath
components.json "tsConfigPath": "./.nuxt/tsconfig.json",
But the add script is for some reason not adding the required utils in utils/shadcn.ts on my windows machine.
components.json
{
  "$schema": "https://shadcn-vue.com/schema.json",
  "style": "default",
  "typescript": true,
  "tsConfigPath": "./.nuxt/tsconfig.json",
  "tailwind": {
    "config": "tailwind.config.js",
    "css": "assets/style.css",
    "baseColor": "gray",
    "cssVariables": true
  },
  "framework": "nuxt",
  "aliases": {
    "components": "@/components",
    "utils": "@/utils/shadcn"
  }
}

version
------------------------------
- Operating System: Windows_NT
- Node Version:     v20.17.0
- Nuxt Version:     3.13.1
- CLI Version:      3.13.2
- Nitro Version:    2.9.7
- Package Manager<EMAIL_ADDRESS>- Builder:          -
- User Config:      telemetry, debug, devtools, experimental, css, modules, shadcn, meilisearch, nitro, icon, build, routeRules, components, formkit, compatibilityDate
- Runtime Modules:  normalizedModule(), normalizedModule<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>- Build Modules:    -
------------------------------

This worked for me too, when I was installing the package, I've changed the default tsconfig path to ./tsconfig.json and this make the package create the components outside the project folder.

pnpm dlx is not the same as npx.
I've had far more problems with pnpm dlx when installing these components.
Furthermore, this is not what the docs use when users click-to-copy the snippet to install a component.

Tested on Windows 11 it's working with v0.10.5
Nuxt/TS project

Worked for me after changing the tsConfigPath
components.json "tsConfigPath": "./.nuxt/tsconfig.json",
But the add script is for some reason not adding the required utils in utils/shadcn.ts on my windows machine.
components.json
{
  "$schema": "https://shadcn-vue.com/schema.json",
  "style": "default",
  "typescript": true,
  "tsConfigPath": "./.nuxt/tsconfig.json",
  "tailwind": {
    "config": "tailwind.config.js",
    "css": "assets/style.css",
    "baseColor": "gray",
    "cssVariables": true
  },
  "framework": "nuxt",
  "aliases": {
    "components": "@/components",
    "utils": "@/utils/shadcn"
  }
}

version
------------------------------
- Operating System: Windows_NT
- Node Version:     v20.17.0
- Nuxt Version:     3.13.1
- CLI Version:      3.13.2
- Nitro Version:    2.9.7
- Package Manager<EMAIL_ADDRESS>- Builder:          -
- User Config:      telemetry, debug, devtools, experimental, css, modules, shadcn, meilisearch, nitro, icon, build, routeRules, components, formkit, compatibilityDate
- Runtime Modules:  normalizedModule(), normalizedModule<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>- Build Modules:    -
------------------------------

This worked for me too, when I was installing the package, I've changed the default tsconfig path to ./tsconfig.json and this make the package create the components outside the project folder.

Interesting behaviour I noticed is that having "tsConfigPath": ".tsconfig.json" would also cause the cli to malfunction where tsconfig.json has the following contents
{
  // https://nuxt.com/docs/guide/concepts/typescript
  "extends": "./.nuxt/tsconfig.json"
}


LoggedInOutlet is insecure

On line 27 of the LoggedInOutlet you say:
if (!this.publicRoutes[url] && !localStorage.getItem('jwt')) {

So if I set my localStorage item 'jwt' to any value, I am authenticated. You are not checking, if the jwt token is valid.
Pretty simple to hack :)

Very true :) However, no amount of protection on the front end is going to fully secure a browser-based application. Anyone with enough knowledge and motivation would be able to force protected routes to become available if they wanted to.
Luckily, that's not the point. The stuff that is actually sensitive is the data that is retrieved from the backend and displayed on the front end. Since we're protecting the app with JWT, the user wouldn't be able to get at any of the data on the backend if they didn't have a valid JWT anyway. So while they might be able to get to a front end route that we'd like to keep them away from, it won't be of any use to them once they get there because they won't be able to get any data for it.

I cannot fully agree with this.
It is possible to fully secure a route even on the frontend. Achieving this you just have to make a small "Authentication Check" on every route change. And if it fails, the user gets redirected to /login.

Yes you can make a call to the server before changing routes to verify that the JWT is valid, but even that wouldn't be enough for those with enough hacking determination. Remember that in many cases, all of the code that the Angular app needs for all of its routes to work is delivered to the browser when it loads. That means that the JavaScript necessary to construct the private route is sitting there available for hacking.
I have no idea how you'd go about manipulating the client-side code to force navigation to a private route, but the important part is that the code is there on the client and not protected by the server.
Angular 2 gives us some interesting possibilities with async routing, which allows for the code for a given route to stay on the server until the route is navigated to. Perhaps this is one way to truly protect client-side routes, I don't know.
The question I would have is why would you want to take a chance on including sensitive data on the client side? If you wouldn't be including sensitive data in the client side then why would it matter if the user can force their way to a private route that is just an empty shell?

Yes, sad but true... I was thinking abalou uses a jwt token encrypted by webApi using rsa and auto-refreshing.. This feature combine with CORS could make things a little bit painfull to our cracker but still not enougth .. The cracker always can use an alien client to get jwt and decrypt using some kind of tunneling tool to pass thru CORS protection and try the access ... There's no silver bullet to resolve these issues... But tks, your code help me a lot and save some time!! Good job!

Now it has been replaced by guards in routes.


align, add fast_created_stage to project labels

Can we pause this until #1052 has been merged? That one has been in the works for 2 months and renames stages, I dread having to sort conflicts one more time :)

Sure, I'll leave this here and adapt/rebase once that comes in. (I was actually thinking about that one)

@drebes you can merge this now (enjoy the conflicts)

Roberto, I'm closing this as it will be much simpler to redo it on top of the renamed stages, than fix these conflicts.


Fix the MAC in keys.go to not waste space.

The MAC field in EncryptedData in keys.proto was being computed on empty data due to a quirk in the Golang hmac API. This fixes it to use the hmac API correctly.

Recording the results of an email conversation with kevinawalsh: this is an important fix, and it looks like this problem doesn't exist anywhere in the codebase. So, I'm going to pull this.


Continue even if data is not found

If the app can't retrive info from the Steam store it will just continue fetching the other games instead of aborting the whole operation.

Hi @Yoddikko, it's definitely the issue.
Your PR won't fix the problem, it will skip the branch of code that fetches data from steam library
I think the issue #6 is about that broken part of code you skip here. Something was changed in an API. I will check it later.
You can try to use --skip-non-steam argument to get the same behaviour you added.

Thank you for your answer. Also I have another last issue with your amazing project: it would be cool to have a hours only time played stamp. Because if on Notion I want to sort for most played or less played the games I played only some minutes get mixed with the game I played hours. It happens because maybe on a game I have 100 minutes and on another game I have 2 hours. It should be on top the one with 2 hours, but instead it goes under the one with 100 minutes. I was trying to apply a fix that if you want I can show you my code but I never coded in Python and I got some errors. My solution by the way was transforming minutes in hours, so that for example 30 minutes would be 0.5 hours, so that the sorting would be working correctly.

@Yoddikko feel free to create an issue :)

Fixed in https://github.com/solesensei/notion-game-list/pull/10


Add roles to owner concept

Describe the feature you'd like
Please add the ability set a role as the owner of an object (book/chapter/page).  We have many users who add/share content under a single book but only the book owner can modify permissions at the top level.  Each user who adds content is allowed to set the permissions on their own individually owned pages.  I'd like to set their role, mapped from LDAP, as the owner so that all of the users in that role can manage the book properly.  Once enough chapters and pages are created, it will be problematic if the permissions need to be modified by those users.  They would have to track down each chapter's owner and get them to make the changes.
If possible, it may also be ideal to enforce ownership.  If a role is set as an owner at the book level, all child objects, chapters and pages, should be owned by that role.
Describe the benefits this would bring to existing BookStack users
Allowing a group of users to own objects will allow shared administration of their content.  We have large working groups that will rely on this shared ownership to easily manage permissions for their content.
Can the goal of this request already be achieved via other means?
unknown.  I was unable to find any mention of "shared ownership" in the issues on github.  I also didn't see a "hack" for this purpose
Have you searched for an existing open/closed issue?

[X] I have searched for existing issues and none cover my fundemental request

How long have you been using BookStack?
0 to 6 months
Additional context
I don't want to grant the "manage all book, chapter, and pages permissions" right since these users should not be able to see some of the other books in the BookStack.

and just like that I did find another issue for this exact request.  Their title was misleading.  Closing this request and adding my impact to the existing request.


waybar takes too long to start sometimes dosen't

❯ waybar
[2024-10-26 19:56:43.272] [info] Using configuration file /home/coco/.config/waybar/config.jsonc
[2024-10-26 19:57:08.295] [error] Error calling StartServiceByName for org.freedesktop.portal.Desktop: Timeout was reached

I get the same problem starting at boot using river + sddm on boot (riverctl spawn waybar).

[2024-10-27 10:53:47.711] [info] Using configuration file /home/ati/.config/waybar/config
[2024-10-27 10:54:12.745] [error] Error calling StartServiceByName for org.freedesktop.portal.Desktop: Timeout was reached

Starting manually seems to be fine. Perhaps an environment issue?

I get the same problem starting at boot using river + sddm on boot (riverctl spawn waybar).

[2024-10-27 10:53:47.711] [info] Using configuration file /home/ati/.config/waybar/config
[2024-10-27 10:54:12.745] [error] Error calling StartServiceByName for org.freedesktop.portal.Desktop: Timeout was reached

Starting manually seems to be fine.
Seems to be related to #897 - removing the tray module allows it to start.

I get the same problem starting at boot using river + sddm on boot (riverctl spawn waybar).

[2024-10-27 10:53:47.711] [info] Using configuration file /home/ati/.config/waybar/config
[2024-10-27 10:54:12.745] [error] Error calling StartServiceByName for org.freedesktop.portal.Desktop: Timeout was reached

Starting manually seems to be fine.
Seems to be related to #897 - removing the tray module allows it to start.

the above one is started manually this happened lot more on river and on sway sometimes

I have a different theory, based on past similar experiences of these timeouts. I suspect this is related to the XDG Portal Desktop which might not be defined for your window manager.
@sachinchaudhary1808  Having more info would be useful. Which Linux distro are you using? Which window manager are you using? Please also check if you have a file defining the portals the window manager can use. For example in /usr/share/xdg-desktop-portal/portals I have gtk.portal and wlr.portal. SInce I use Sway the relevant one for me is wlr.portal. In one of these files you should find the portal org.freedesktop.portal.Desktop.

I have a different theory, based on past similar experiences of these timeouts. I suspect this is related to the XDG Portal Desktop which might not be defined for your window manager.
@sachinchaudhary1808  Having more info would be useful. Which Linux distro are you using? Which window manager are you using? Please also check if you have a file defining the portals the window manager can use. For example in /usr/share/xdg-desktop-portal/portals I have gtk.portal and wlr.portal. SInce I use Sway the relevant one for me is wlr.portal. In one of these files you should find the portal org.freedesktop.portal.Desktop.

I'm on nixos, i use sway, i do have xdg-desktop-portal-gtk in my configuration, i have xdg-portal wlr too, but I don't have /usr/anything cuz of using nixos,

though after finding where nixos stores them this i have
❯ ls /run/current-system/sw/share/xdg-desktop-portal/portals/
gnome-keyring.portal  gtk.portal  wlr.portal

~ via 🌙
❯ ```

in wlr.portal i only have this
DBusName=org.freedesktop.impl.portal.desktop.wlr
Interfaces=org.freedesktop.impl.portal.Screenshot;org.freedesktop.impl.portal.ScreenCast;
UseIn=wlroots;sway;Wayfire;river;phosh;Hyprland;

What I usually try to do when debugging XDG portals issues is:

kill all running xdg-desktop-portal-*
start xdg-desktop-portal -r -v, inspect the output to see if a specific portal is listed (in your case the "org.freedesktop.portal.Desktop"). If I don't see it, I try adding it to the portal of my compositor (wlr.portal) and restart xdg-desktop-portal.
Start the application that causes the timeout and see if xdg-desktop-portal shows something on the stdout

Hope it helps


Consider always enabling Checkstyle

I was wondering why an unused checkstyle exist. A Gradle config exists but it is not enabled by default - but it should.
I think it is a good idea to use a code analysis tool like Checkstyle. One reason is that it can enforce a coding convention to increase the code's readability. Another is that it might be easier to integrate pull request because they do not reformat the whole source code.
The current situation is that the checkstyle version is way too old (6.0 was released three years ago! current is 7.6.1). Updating the plugin version shows that the checkstyle.xml isn't compatible anymore so we would need to update to/create a new checkstyle.xml. This leads to another point: the checkstyle.xml itself. The rule set is rather short and in my opinion it could be more strict. A guide for a new checkstyle.xml could be the Google config

Hello,
Sure we could use Google java config , feel free to send a pull request.
Regards,

will push the fix soon.

Closed with #280


Unbreak examples/screencopy on FreeBSD

Similar to https://github.com/cyclopsian/wdisplays/pull/6
wlroots already uses shm_open correctly elsewhere:
https://github.com/swaywm/wlroots/blob/16e5e9541b3de49e397a3d2caa3212db25487648/util/shm.c#L29

Thanks!


Implement GitHub App API methods

This PR implements the GitHub Apps API workflow. Things to be noted:

I assumed that JWT is encoded externally and its JWT token is passed as a parameter to be used as an authentication mechanism (like it's done with the OAuth token currently). Implementing JWT encoding logic seemed too cumbersome for the project's value proposition (IMHO)

Methods that can only be requested via JWT as part of the Github App workflow are documented

On the Requester class, I had to make the with(String key, Collection<String> value) more generic as just adding another method like with(String key, Collection<Integer> value) wouldn't do the trick...and adding a specific method for this seemed weird...but let me know if you want to have this implemented in another way or if you're fine with the approach taken.

If you find that this contribution is a good addition to the project, please accept this PR.
Best regards,

Added @Preview and @Deprecated annotations to methods in which the API is still in preview

ping @kohsuke @bitwiseman
Hi guys, is there anything I can do to make this PR mergeable?

would really ❤ to see that merged, as its a pre-requisite to make Jenkins a GitHub App, which would help a lot, especially for bigger setups, see also https://issues.jenkins-ci.org/browse/JENKINS-57351

@PauloMigAlmeida
My apologies for the delay.  I've been buried under other work and I will be for at least another couple weeks, but make the time to be responsive to this discussion.
This looks reasonable to me from cursory review.  The Requester change isn't an API break, right?  If so, that also seem fine.
I'm new to this project and very uncomfortable with how little testing it includes, but I also understand how testing is difficult in this area.
Can you see any way to add more tests for these changes API? I would be far more comfortable if there were.

@bitwiseman
No problem at all and thanks for taking the time to take a look at this PR

This looks reasonable to me from cursory review. The Requester change isn't an API break, right? If so, that also seems fine.
You're correct. This doesn't break backwards API compatibility.

Can you see any way to add more tests for these changes API? I would be far more comfortable if there were.
Absolutely! I think I can develop something using MockServer to mimic Github server responses and ensure that those new methods work as expected. Let me know if you have another strategy for testing it that you want me to follow.

I will ping you once I've finished it (probably around tomorrow)

@PauloMigAlmeida
The only thing we have in this area is #316 and #382.
One of the clients of this library, the Jenkins github-branch-source-plugin has a number of WireMock-based tests, but I would be happy to see any reasonable set of tests.

@bitwiseman
I read the threads you mentioned and in both cases, it seems to boil down to the reference implementation on the github-branch-source-plugin.
Having said that, I implemented the tests using canned HTTP responses (WireMock-based tests). Let me know if you want me to change anything else before merging it.

ping @bitwiseman

ping @bitwiseman
Let me know if there is anything you want me to change in order to get this approved.
PS.: I saw that given the last few merges you did on the master branch caused this PR to conflict, so I just merged with the most up-to-date commit.

@PauloMigAlmeida
I haven't had time to do a deep review, but generally this looks reasonable.
I have made a mocking framework that should simplify your tests some - each test method gets it's only directory which should mean you don't have to read each payload.  Could you move this to use that structure and then I can do a final review?
Why do most of the methods have @Preview @Deprecated on them?

Hi @bitwiseman, all good.
Sure, I can definitely update my tests to follow the new test framework. I will probably do it tomorrow. Stay tuned 😊
In regards to the preview/deprecated annotations, that’s a solution proposed by kohsuke for dealing with github preview apis.
It is documented here: https://github.com/github-api/github-api/blob/master/src/main/java/org/kohsuke/github/Preview.java
If that doesn’t apply anymore, let me know and I will gladly remove them

@PauloMigAlmeida
Re "Preview" - Ah, got it.  Yes, that still applies please continue doing that.

@bitwiseman
I updated my tests to make use of the new wiremock structure you created.
Let me know if you need anything to be amended before you can merge it into master.

ping @bitwiseman

@bitwiseman
I saw that given the last few merges you did on the master branch caused this PR to conflict, so I just merged with the most up-to-date commit.

I would love to hear from you if there is anything you want me to change so that we can get this merged 😄

@bitwiseman the build broke due to a legacy code which isn't connected to this PR.

Fixed the failures in master, so this is passing now.

🎆 🎉

🤩🤩🤩🤩


source contains non-free licensed RFC content

Several files contain contents from RFC documents which are covered by licensing certainly not MIT and (by some definitions) not free:
src/schemas/JOSEHeaderSchema.js
src/schemas/JWECompactSerializationSchema.js
src/schemas/JWEFlattenedSerializationSchema.js
src/schemas/JWEJSONSerializationSchema.js
src/schemas/JWSFlattenedSerializationSchema.js
src/schemas/JWSJSONSerializationSchema.js
src/schemas/JWTClaimsSetSchema.js
test/schemas/JWKSchemaSpec.js
Please consider removing that content, to ease (re)distribution e.g. by Debian-based distributions.
See also discussion at similar issue https://github.com/anvilresearch/json-document/issues/21

Thanks @jonassmedegaard!
We should remove the copied paragraphs (and just leave the links to those sections in the spec).

Addressed by PR #5, closing.


Support for Code-first Configuration (builder)

I would like to package my features within the dll  without   JSON to avoid modifications when we distribute the dll (package).
ideally using a builder
thanks

@mike7ang1rdz
are you able to provide an example of what type of code you are looking to be able to write. Even if pseudo-code. Ideally it can help seed the conversation and make sure we're accomplishing what you're looking for.

Sure.
Serilog is a great example

You can build an instance using a builder:

using var log = new LoggerConfiguration()
    .WriteTo.Console()
    .WriteTo.File("log.txt")
    .CreateLogger();

Or creating an instance reading from appsettings.json

{
  "Serilog": {
    "Using":  [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      { "Name": "Console" },
      { "Name": "File", "Args": { "path": "Logs/log.txt" } }
    ],
    "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
    "Destructure": [
      { "Name": "With", "Args": { "policy": "Sample.CustomPolicy, Sample" } },
      { "Name": "ToMaximumDepth", "Args": { "maximumDestructuringDepth": 4 } },
      { "Name": "ToMaximumStringLength", "Args": { "maximumStringLength": 100 } },
      { "Name": "ToMaximumCollectionCount", "Args": { "maximumCollectionCount": 10 } }
    ],
    "Properties": {
        "Application": "Sample"
    }
  }
}

https://github.com/serilog/serilog-settings-configuration

@mike7ang1rdz
The FeatureManagement is built on the IConfiguration. After release 3.1.0, FeatureManager and ConfigurationFeatureDefintionProvider are exposed to public. You can use it directly without DI.
I am digesting your request. If my understanding is correct, for your case, the feature flag will be hard coded.
You can create IConfiguration like this ref

Hello @mike7ang1rdz, does the approach that @zhiyuanliang-ms suggested work for your scenario?

It works perfectly thanks.

You can use them directly without DI.

To expand upon what @zhiyuanliang-ms mentioned, this approach can also be used when FeatureManager is in .NET core's DI container. Just make sure to add the in-memory collection to the main configuration that is also added to DI.


Add version + hash to generated Prisma Client files

Thanks a lot for reporting 🙏
This issue is fixed in the latest alpha version of @prisma/cli.
You can try it out with npm i -g @prisma/cli@alpha.
In case it’s not fixed for you - please let us know and we’ll reopen this issue!


Merge cmd/gen-test-vectors with integration/client_tests.

cmd/gen-test-vectors and integration/client_tests.go are essentially duplicate code.
It would be ideal if go generate ./core/testdata ran a regular go test with an extra flag go test ./impl/integration --generate
Note, there is another asymmetry in that the tests that rely on core/testdata are in core/client.  It's not clear if these should be moved.

I'l take it.


Attempting to get value from the following node according to sort order applied by xsl:apply-templates

Hello @gerontakos : Do you have any time this week to look at an XSLT problem?
Writing the stylesheet to output an RDF/XML Sinopia resource template from the storage instance (currently a smaller 'scratch' version), copying lots of @mcm104 's work from a test stylesheet
brief-as-possible summary

Applying templates to a set of properties sorted by form order @value values here
The sort used in apply-templates seems reflected in output* generated here, where position() = last() is used to identify the prop element coming last in the sorted set
The sort used in apply-templates does not seem to be reflected in output generated here, where I unsuccessfully attempt to retrieve a value from the prop element coming next in the sort order

*output from this stylesheet = TEST_2021-09-01_WAU_RT_rda_Manifestation_Manifestation_monograph_default.rdf
details/thoughts if needed

The duplication of XPaths here, where I repeat the apply templates and sort XPaths in order to get a value from the prop element coming first in the sort order, also seems less-than-ideal
I'm wondering whether a fix for the problem above will require an significant overhaul of the stylesheet; I have a very vague idea about storing a sorted tree in a variable at the top of the stylesheet and using this throughout to reduce the need to repeat lengthy XPaths, this might fix the XPath repetition issue

Looking for resources...

The following are both a little old but may help?

StackOverflow: Do XPath axes respect Xslt sorting?
XML.com: Trees, Temporarily

🥳 🎈 🎉
sequence_in_var.xsl processes a scratch test file to output*:
<?xml version="1.0" encoding="UTF-8"?>
<sorted_set xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:mapstor="https://uwlib-cams.github.io/map_storage/">
   <prop_details>
      <previous/>
      has groove characteristic
      <form_order>0.000001</form_order>
      <next>has details of applied material</next>
   </prop_details>
   <prop_details>
      <previous>has groove characteristic</previous>
      has details of applied material
      <form_order>0.5</form_order>
      <next>has access point for manifestation</next>
   </prop_details>
   <prop_details>
      <previous>has details of applied material</previous>
      has access point for manifestation
      <form_order>1.0</form_order>
      <next/>
   </prop_details>
</sorted_set>

*Output element order is reverse document order, correct sort order (using form_order values).


JavaDoc param 'args' is changed to 'arguments'

LGTM. Since this is just a small fix I'll just handle it myself.

Merged into master, 2.10, 2.9 branches.


Subliminal automator workflow on mac os x to auto download srt from specific folder

I am looking for a way to auto download srt files using subliminal on mac os x. Can someone share an automator workflow or an alternative for this?

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Open Automator and choose Folder Action
Choose a folder via the dropdown menu -> Other...
Add a Run Shell Script-action (search for "shell script" in the search bar to the left)
Clear and add this: /usr/local/bin/subliminal download -l en "$@" (assuming you want english subs)
Set Pass input to as arguments
Save and you're done. The script triggers every time you place a new file/folder in the chosen folder.

I would prefer this as a Quick Action as it would allow selecting a folder(s) or file(s) from Finder.

Open Automator, select Quick Action
Set Workflow receives current 'files and folders' in Finder
Add a Run Shell Script-action (search for "shell script" in the search bar to the left)
Clear and add this: /usr/local/bin/subliminal download -l en "$@" (assuming you want english subs)
Set Pass input to as arguments
Save it and name it

Now, every time you open Finder you can select one or more files or/and folder, right click the selection and go to Quick Actions -> [whatever you named the quick action in step 6]


[native_pdf_view] Hotkey zoom in a PDF View

It would be nice, if you could scroll with Control + mouse scroll (if mouse position is in the pdf view), like in a normal PDF program.
Demo:

@nilsreichardt Hello Nils, kind of offtopic question: how did you enable those pdf controls on the web (download/print/zoom/etc)?
Thanks!

@nilsreichardt Hello Nils, kind of offtopic question: how did you enable those pdf controls on the web (download/print/zoom/etc)?
Thanks!

See https://github.com/rbcprolabs/packages.flutter/issues/6#issuecomment-961061302


Fix CertificateCompressionAlgorithm to be read as 2-octet-wide

RFC8879
defines CertificateCompressionAlgorithm as a two-octet-wide enum:
       enum {
           zlib(1),
           brotli(2),
           zstd(3),
           (65535)
       } CertificateCompressionAlgorithm;

OpenSSL is reading them as one-octet-wide values though,
so that yet-unallocated values like 770 (0x302) or 16385 (0x4001)
are considered valid algorithms and result in compression negotiated and used.
@tmshort, please also double-check the width in other places,
I only gave it a cursory look.
Checklist

[ ] documentation is added or updated
[ ] tests are added or updated

As after this change the tests still pass, it means we are undertested here :(

As after this change the tests still pass, it means we are undertested here :(

It's the nature of the allowed data. Even if there were unsupported algorithms, what would happen is that they would be ignored, unless one of the bytes matched a known but unsupported algorithm by the sender.
The only thing I can think of is some sort of fuzzing test where the client only sends algorithm (0x101 * a supported algorithm), (e.g. 0x101, 0x202 or 0x303, depending on config), which then gets interpreted as a supported algorithm. The test would fail if a compressed certificate is sent by the server. This would, of course, break once any of those values become valid. This would likely need to fall under the GREASE category of testing, and I haven't figured that out yet (since there almost no GREASE testing in OpenSSL that I can find).

@t184256, I'm assuming this is something that would be tested via tlsfuzzer?

Yes, this has been found with a test I'm planning to add to tlsfuzzer.

@tmshort please confirm you're OK with CLA: trivial.

@tmshort please confirm you're OK with CLA: trivial.

I'm good with CLA:trivial

@openssl/otc do we need to raise a separate issue because of the lack of tests here?..

@beldmit, this was discovered during the development of the tlsfuzzer support for encryption. So, once that's been updated, it will be available as part of the tlsfuzzer CI.

@tmshort let me disagree.
TLSFuzzer is external project and the level of its integration to OpenSSL is not enough (I don't have spare brain to extend the tests for more than 6 months and no signs I will get them soon). This issue should be tested locally.

@tmshort let me disagree.
TLSFuzzer is external project and the level of its integration to OpenSSL is not enough (I don't have spare brain to extend the tests for more than 6 months and no signs I will get them soon). This issue should be tested locally.

I understand. During the initial review there was a request to do GREASE-like permutations of the extensions, but there's no generic mechanism for GREASE right now (AFAIK, if I'm wrong please let me know, I'm not sure the TLSProxy can do it). I do intend to introduce some form of GREASE testing of the extensions, possibly writing it in a generic way to allow others to also GREASE some tests. Since I wrote the Certificate Compression code; it is top of mind for me.

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Merged to master branch. @beldmit if you think there should be more testing of the certificate compression, feel free to open an issue.


Laravel5.8

Please ignore - I'm trying to work with a fork of your package and ended up sending the PR to your original package. Still finding my way with github ...


Add mongoDB scaler

Provide a scaler based on a query to mongoDB:

Scaler Source: Mongo DB is a database with a large number of users.
How do you want to scale: Scale on target value from mongo query. Similar to mysql.
Authentication: MongoDB client require address and password for authentication

Thanks for the contribution @NUCsimple, we'll review it asap!

Thanks for the contribution @NUCsimple, we'll review it asap!

very cool -- wish I knew Go well enough to add support for tls connections. It's certainly possible to specify tls in the connection string, but the most secure way to do mongodb uses tls authentication as well, meaning that you need to not only tell it "use TLS", you need to give it a CA certificate and a client key / certificate to use.
Seems like this could be done either by having the key, cert, and ca in the same secret or by allowing you to provide a tls secret as well.
I may have to try to learn enough go to do a PR for this as it would be really useful for me

@taxilian just give it a try, it is not that hard to contribute in Go :)
You can check other scalers how they handle certs referencing, for example Kafka, Metrics API scaler or other ones.

Maybe can this issue be closed?


Release 8.0.4

I think its a good idea to do an 8.0.4 release (current master), after which we can probably focus on 9.0.0.
What do you think? Are we good to go and release an 8.0.4? Or should we include these changes in 9.0.0 maybe?

Releasing 8.0.4 makes sense to me. Not too many changes, but some people may benefit from having the changes compatible with 8.x

yup, lets do it

Just released 8.0.4. Can anyone check if everything went smoothly? My terminal said there was an error when the script tried to git push --follow-tags.
Only had to manually convert the tag to a release.
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/Moya/Moya.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
rake aborted!
Command failed with status (1): [git push --follow-tags...]
/Users/bas/Documents/Programming/iOS/Moya/Rakefile:185:in `block in <top (required)>'
/Users/bas/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `eval'
/Users/bas/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => release
(See full trace by running task with --trace)

🤔, that might have been the merge of #1076 I guess.

I think the release didn't go through with CP. Installing in a fresh project results in 8.0.3. 😞

Tried to push the pod manually but that failed as well. Can any of you help me out? @ashfurrow @sunshinejr @pedrovereza?
[!] You<EMAIL_ADDRESS>are not allowed to push new versions for this pod. The owners of this pod are ---.

@BasThomas DM me your email and I'll add you as an owner to the pod 👍

Look at it!
🎉  Congrats
🚀  Moya (8.0.4) successfully published
📅  May 9th, 21:17
🌎  https://cocoapods.org/pods/Moya
👍  Tell your friends!


python38Packages.junos-eznc: 2.6.1 -> 2.6.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python38Packages.junos-eznc is: "Junos 'EZ' automation for non-programmers"
meta.homepage for python38Packages.junos-eznc is: "http://www.github.com/Juniper/py-junos-eznc"
meta.changelog for python38Packages.junos-eznc is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 2.6.2 with grep in /nix/store/dws6mqq1r8n25c0j000r5dd1pmwsq4vn-python3.8-junos-eznc-2.6.2

found 2.6.2 in filename of file in /nix/store/dws6mqq1r8n25c0j000r5dd1pmwsq4vn-python3.8-junos-eznc-2.6.2

directory tree listing: https://gist.github.com/d3522ef602c2fe32ff840486cd507872

du listing: https://gist.github.com/518c48e23100c72069c8aaf3ca5b3d18

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

8 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
2 i686-linux rebuild(s)
2 x86_64-darwin rebuild(s)
2 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
python38Packages.junos-eznc
python39Packages.junos-eznc

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/dws6mqq1r8n25c0j000r5dd1pmwsq4vn-python3.8-junos-eznc-2.6.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/dws6mqq1r8n25c0j000r5dd1pmwsq4vn-python3.8-junos-eznc-2.6.2
ls -la /nix/store/dws6mqq1r8n25c0j000r5dd1pmwsq4vn-python3.8-junos-eznc-2.6.2/bin

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

2 packages built:

python38Packages.junos-eznc
python39Packages.junos-eznc

Maintainer pings
cc @xnaveira for testing.

Result of nixpkgs-review pr 133855 at a924a126 run on aarch64-linux 1

2 packages built successfully:

python38Packages.junos-eznc
python39Packages.junos-eznc

2 suggestions:

warning: no-python-tests
Test runner could not discover any test cases: ‘Ran 0 tests in 0.533s’
Near pkgs/development/python-modules/junos-eznc/default.nix:45:0:
   |
45 |     description = "Junos 'EZ' automation for non-programmers";
   | ^

warning: no-python-tests
Test runner could not discover any test cases: ‘Ran 0 tests in 0.545s’
Near pkgs/development/python-modules/junos-eznc/default.nix:45:0:
   |
45 |     description = "Junos 'EZ' automation for non-programmers";
   | ^


Update salesforce API from v51 to v53

GUS-W-9944567

I want to document the problems that I know about that I'm intentionally not addressing here.

We're not using the org version anywhere in the tests
Org has no unit tests
Org is consumed by Context which also has no unit tests
The tests and their mocks are coupled with the API version. We're asserting in data-api.ts works with mocked data, those responses were generated from queries against v51 API. If we simply change all the versions in the mocks, we have no mechanism to assert that the values from SFDC didn't also change. In short our mocks prevent us from knowing if there are any breaking changes with our code and a given version of salesforce.
I'm intentionally not changing this version used in our tests https://github.com/forcedotcom/sf-fx-runtime-nodejs/blob/main/test/sdk/data-api.ts#L13 to match the version used in our org due to the last point. It would make a massive diff and provide no real value to the codebase.


Query with 'not contains' throws an OCommandSQLParsingException [moved]

This is Issue 1059 moved from a Google Code project.
Added by 2012-09-16T16:48:12.000Z by<EMAIL_ADDRESS>Please review that bug for more context and additional comments, but update this bug.
Closed (Fixed).
Original labels: Type-Defect, Priority-Medium, v1.2.0
Original description
Release orientdb-1.2.0-20120911.134825-23-distribution.zip:

What steps will reproduce the problem?

orientdb> connect remote:localhost/temp admin admin

orientdb> create class Tag
orientdb> create property Tag.name string
orientdb> create class Post
orientdb> create property Post.name string
orientdb> create property Post.tags linkset Tag

orientdb> insert into Tag set name = 'cool' // Tag#7:0
orientdb> insert into Tag set name = 'vacation' // Tag#7:1
orientdb> insert into Tag set name = 'food' // Tag#7:2

orientdb> insert into Post set name = 'first', tags = [#7:0,#7:1]
orientdb> insert into Post set name = 'second', tags = [#7:1,#7:2]
orientdb> insert into Post set name = 'third', tags = [#7:2]

orientdb> select from Post where tags not contains (name='vacation')

Error: com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error on parsing command at position #0: Error on parsing command at position #41: Invalid keyword 'NAME'
Command: select from Post where tags not contains (name='vacation')

What is the expected output? What do you see instead?

orientdb> select from Post where tags not contains (name='vacation')
---+---------+--------------------+--------------------
  #| RID     |name                |tags
---+---------+--------------------+--------------------
  0|     #7:2|third               |[1]
---+---------+--------------------+--------------------

According to https://groups.google.com/forum/?fromgroups=#!topic/orient-database/UjDJPtmvJDc and Lvc@ 'not contains' should create a query with exclusion.

I have an embedded list of maps. contains works fine against it but not contains goes in error.
Error parsing query:
select count(*) from myclass where embfield is not null and embfield not contains (type = 1)
                                                               ^
Encountered "" at line 1, column 57.
Was expecting one of:

Tested with 2.2.10.
@luigidellaquila @lvca can we reopen this issue?

Hi @fabriziofortino
The NOT CONTAINS operator does not exist in OrientDB, but you can use the following:
select count(*) from myclass where embfield is not null and not (embfield contains (type = 1))

Thanks
Luigi


Update README.md for the CLAWdit #1267

GitHub Issue: https://github.com/Islandora-CLAW/CLAW/issues/1267
What does this Pull Request do?
Updates the readme to match the new template, updates Maintainer to Rosie Le Faive.
What's new?
Some new boiler-platish sections in the readme, a few things shifted around, updated maintainer.
How should this be tested?
A simple preview and comparison to the template should do it.
Additional Notes:
Since there isn't any documentation specifically on chullo in our docs yet, I left the link pointing to the docs in general.
Interested parties
@rosiel I guess it's you now!

Feels a bit dishonest until it's actually documented at github.io, but i appreciate it's the formality.


You can not use codeformers face restoration if gfpgan installed

Describe your environment

GPU:  mps
VRAM: n/A but 8Gb M1
CPU arch: arm
OS: macOS
Python: pip installed
Branch: development
Commit: commit cd8be1d0e9f6fccad5f796668e8d2e0611bbdb0d (HEAD -> development, origin/development)

Describe the bug
If both the codeformers model and gfpgan are installed then the code will alway use gfpgan.
Code has a logic 'bug' that is if self.gfpgan is defined it will not use codeformers
                    if self.gfpgan is not None or self.codeformer is not None:
                        if self.gfpgan is None:
                            if facetool == 'codeformer':
                                if self.codeformer is not None:

If both are installed both self.gfpgan and self.codeformer are not None as self.gfpgan is not None is does not use codeformer
face restoration.
To Reproduce
Steps to reproduce the behavior:
Check you have GFPGAN installed and working
"a young helen mirren in chain mail armour" -s 50 -S 64196915 -W 256 -H 256 -C 15.5 -A k_lms  -G 0.7

You will get
>> GFPGAN - Restoring Faces for image seed:64196915

In the output.
Install the codeformers restoration  model
and attempt the same prompt using codeformer as the face tool
"a young helen mirren in chain mail armour" -s 50 -S 64196915 -W 256 -H 256 -C 15.5 -A k_lms -ft codeformer -cf 0.7 -G 0.7

You will still get
>> GFPGAN - Restoring Faces for image seed:64196915

In the output.
Expected behavior
"a young helen mirren in chain mail armour" -s 50 -S 64196915 -W 256 -H 256 -C 15.5 -A k_lms -ft codeformer -cf 0.7 -G 0.7

wil get
>> CodeFormer - Restoring Faces for image seed:64196915

In the output.

This has been working for me... I have the GFPGAN repo cloned separately and run things through to compare; outputs from -ft codeformer appear to be distinct, and similar to RestoreFormer, related to CF, which GFPGAN can use as a model.
Is it just the case that CodeFormer is a model and GFPGAN is still the thing using it?

Don't know.
I've stuck a  print in the code above and I alway get a value for self.gfpgan
<ldm.dream.restoration.gfpgan.GFPGAN object at 0x11c1cee00>
<ldm.dream.restoration.codeformer.CodeFormerRestoration object at 0x28142fb20>

So it never goes in the codeformer call
I've had to comment out the is None: bit to test  codeformer (as it has a issue on MPS, well it looks like its actually facexlib that does, waiting for a decent face to restore to test while typing this)

looks like a commit around 11 hours ago is the cause.
https://github.com/invoke-ai/InvokeAI/commit/cd8be1d0e9f6fccad5f796668e8d2e0611bbdb0d
totally changed how that logic worked.
Code in  ldm/generate.py

This has been working for me... I have the GFPGAN repo cloned separately and run things through to compare; outputs from -ft codeformer appear to be distinct, and similar to RestoreFormer, related to CF, which GFPGAN can use as a model.
Is it just the case that CodeFormer is a model and GFPGAN is still the thing using it?

I was wrong. In fact, the -cf and -ft switches aren't even winding up in my dream_log:
CodeFormer via -ft:
[...] photograph by Leibovitz, sunny, huge dark green leaves, 8K HDR" -s 8 -S 444 -W 512 -H 512 -C 10.0 -A k_euler -V 744951550:0.33

GFPGAN via -G:
[...] photograph by Leibovitz, sunny, huge dark green leaves, 8K HDR" -s 8 -S 444 -W 512 -H 512 -C 10.0 -A k_euler -G 1.0 -V 744951550:0.33

Thanks for pointing it out. Should be fixed in #776. Please pull that and check and let me know if there's any other use cases that I might have missed.


[Bug]: Reminder Time Formatted Incorrectly in exported note inside a notebook

evernote-backup version
1.9.3
What OS are you using?
MacOS
OS Version / Linux distribution
Sonoma 14.4.1
Bug description
Yarle reports that the reminder time is in the wrong format.
evernote-backup's notebook XML of a note shows
  <reminder-time>1719842400000</reminder-time>

where an ENEX export of the same notebook shows the note's reminder as
  <reminder-time>20240701T140000Z</reminder-time>

10.84.3-mac-ddl-public<PHONE_NUMBER>5102)
Editor: v177.16.3
Service: v1.100.4
© 2019 - 2024 Evernote Corporation. All rights reserved
Log excerpt
No response

It looks like the problem is in note_formatter.py that has (starting in line 34 of the source I looked at):
        if note.attributes:
            note_skeleton["note"]["note-attributes"] = {
                "subject-date": fmt_time(note.attributes.subjectDate),
                "latitude": note.attributes.latitude,
                "longitude": note.attributes.longitude,
                "altitude": note.attributes.altitude,
                "author": note.attributes.author,
                "source": note.attributes.source,
                "source-url": note.attributes.sourceURL,
                "source-application": note.attributes.sourceApplication,
                "reminder-order": note.attributes.reminderOrder,
                "reminder-time": note.attributes.reminderTime,
                "reminder-done-time": note.attributes.reminderDoneTime,
                "place-name": note.attributes.placeName,
                "content-class": note.attributes.contentClass,
            }

I think the lines with reminder-time and reminder-done-time should have the value converted with fmt_time()
                "reminder-time": fmt_time(note.attributes.reminderTime),
                "reminder-done-time": fmt_time(note.attributes.reminderDoneTime),


GPU Widget ignores HostId

When you are setting up a widget to extract data from the included HWINFO shared memory viewer, if you chose a GPU that is sitting in another computer the hostid is ignored and the sensor is fetched (if it exists) from the local computer.

Unfortunately, the hostID will be going away in the next version anyway (whenever I get around to it...). The reason being that using the advanced HWiNFO features (such as host ID) will require paying for HWiNFO going forward. The free method of getting system information will not support host IDs. Sorry!

Sure, but it doesn't change the fact that it is being ignored for versions that still had it as a free option. And even if you paid for it it won't work. But I see your point, there is no point in supporting it now if it is going to be behind a paywall.


OpDecorateId is not handled correctly with its parameters

In SPIRV-tools, OpDecorateId is parsed to extract its parameters and the parameters of decoration is used like this decoration.params(). It assumes the parameters are literal values. However, it is not true for OpDecorateId while it is true for OpDecorate. All parameters of OpDecorateId are instead IDs of other variable. As a result, the validation and disassembly are both wrong when handling OpDecorateId. Similar cases are encountered for OpExecutionModeId.

Some misunderstanding of the SPIR-V spec.


Add missing citations

refs #0

Job VTB Documentation on d898802 wanted to post the following:
View the site here
This comment will be updated on new commits.


The application can not be opened on MacOS 12.5

Good job! But it doesn't seem to work on the updated MacOS (it says the file is damaged). Hope the author will solve this problem.

the same question in Mac M2


Merge mvt_providers and providers into one section.

Merge mvt_providers and providers sections of the config.
We will now use the type param to figure out the mvt_providers and providers.
fixes #688

Pull Request Test Coverage Report for Build 33b4750a5-PR-700

93 of 189 (49.21%)  changed or added relevant lines in 11 files are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.2%) to 45.393%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

cmd/tegola/cmd/root.go
0
1
0.0%

atlas/map.go
0
4
0.0%

cmd/internal/register/maps.go
7
11
63.64%

provider/errors.go
0
11
0.0%

config/errors.go
4
21
19.05%

provider/provider.go
35
94
37.23%

Files with Coverage Reduction
New Missed Lines
%

provider/provider.go
3
38.46%

Totals

Change from base Build 57ce4fd8a:
0.2%

Covered Lines:
5360

Relevant Lines:
11808

💛  - Coveralls

I finally had some time to test this out and it's working great. Please rebase onto v0.12.x prior to merging.

Looks good! Just clean up the commits and then let's get this into v0.12.x!


When I would like to find good configurations for log distributional variables

Hi, I would like to optimize the configuration which includes some variables which should be sampled after converted into log scale.
I checked your codes and found there I could choose 4 types of variable: "Continuous", "Ordinal", "Integer", "U"(categorical). I would like to make the points clear.
In the former hyperopt or Optuna offered by PFN, I can choose the distributions from "Uniform", "Discrete", "LogUniform", "Categorical". In the HpBandSter, how can I handle with these kind of variables??
I'm looking forward to hearing from you.
shuhei

Hello,
The definition of the parameters is done with the ConfigSpace package. There is only limited documentation for that, but your case is rather easy: The Continuous and Integer parameters have an additional argument called log. If you set that to true, the optimizer will assume a uniform prior in log-space, which is what you want, I think.
Hope that helps!

Thanks to @PhMueller we now have "real" docs for the ConfigSpace at https://automl.github.io/ConfigSpace/master/


SideBar does not appear on Install & Customize (Chatplugin)

Describe the bug
The sidebar does not appear when you go to Channels / Edit a connected channel and click Install & Customize.
To Reproduce
Steps to reproduce the behavior:

Connect a chatplugin channel
Edit this channel
click on Install & Customize
See missing sidebar

Expected behavior
On this screen the sidebar should appear
Screenshots

Environment

OS: [e.g. iOS]
Browser: [e.g. Chrome, Safari]
Version: [e.g. 22]

Additional context
Add any other context about the problem here.

closed by #2431


Converts Microwave & Wallmed to old /tg/ sprites

About the PR
What it says on the tin. The microwave just looked kind of weird (slightly hueshifted and moderately overdone shading) and I felt like the /tg/ sprite fit better. It has been slightly modified to be 2px shorter per request.
Nanomed, on the other hand, is in the completely wrong perspective & is also hueshifted too much. I'm honestly not sure why it wasn't replaced in the initial batch of sprite replacements, it looks really weird on flat perspective walls.
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog
:cl:

tweak: The Microwave and wall-mounted Nanomed now use sprites similar to the ones found in SS14.

"tweak: The Microwave and wall-mounted Nanomed now use sprites similar to the ones found in SS14."
Ah yes, the floor is made of floor :D


TypeError in iter_slices() when slice_length=None

An unintended side effect of using chunk_size=None (as referenced in PR #3368) is a failure in iter_slices(). The two code snippets below will both trigger reused_chunks being chosen as the return value of iter_content. The generator is produced by iter_slices which currently requires the chunk_size to be an integer, otherwise it raises a TypeError when trying to add an int and NoneType.
Perhaps these are obscure enough edge cases, that it's not an issue. I just wanted to make a quick note of it.
Examples
def test_stream():
    s = requests.Session()
    req = requests.Request('GET', 'https://httpbin.org/get').prepare()
    resp = s.send(req, stream=False)
    next(resp.iter_content(None))

def test_decode():
    r = requests.Response()
    r.raw = io.BytesIO(b'the content')
    all_content = r.content
    decoded_chunk = next(r.iter_content(None, True))

Why does iter_slices with slice_length = None not trigger a TypeError?

Sorry, I'm not sure I understand the question. I'm currently seeing the following error returned with both python2.7 and python3.5.
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
A more direct code snippet for reproduction would be:
next(requests.utils.iter_slices('my string', None))

Ok, that's good, I just didn't read the report clearly enough I guess. =)


Fix: Support dbt-core 1.8.x

Allow any version of dbt-core 1.8 to be used.

@nicholasyager - my pleasure, thanks for this project. Any chance you could do a release today so I can pick up this change?

@sayeaud-accelins: Yeah, that would be prudent. I'll have one out shortly.


Custom Crop Size

How to change the image crop size? I'm having a problem when I change it to (480,size)
Code:
n_channels, im_height, im_width = (3, 480, 320)
input_shape = (n_channels, im_height, im_width) if K.image_data_format() == 'channels_first' else (im_height, im_width, n_channels)
print(input_shape)
stack_sizes = (n_channels, 48, 96, 192)

Error:
ValueError: Error when checking input: expected input_1 to have shape (None, 10, 480, 320, 3) but got array with shape (4, 10, 128, 160, 3)

I believe the crop function is written specifically for the kitti data. It assumes that video or image width > height.

When training on a new dataset, the image size has to be divisible by 2^(nb of layers - 1) because of the cyclical 2x2 max-pooling and upsampling operations.
You have to add conv. layers to get the desires end output.


docs: list non-goals

It is important to signal to users non-goals to reduce time wasted.
Non-goals:

writing Cloud Function code into function root .js file
handling deployment of your app, you should expect firebase deploy to work
supporting custom docker images (currently relying on Functions Framework and the Cloud Function Node14 buildpack. I may be convinced otherwise on this if it's not too much extra work, though it feels like duplication of the GCF buildpack image.

closed in #29


PC Engines APU2 firmware updater plugin

Do you think it would be possible to have a plugin which allows to update the firmware of a PC Engines APU2 device directly from the web-UI?
Currently I use this firmware updater script.
Is it even possible to have this executed with root permissions within the "plugin context"?
What do you think?
Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
Plugin to be able to update the PC Engines APU2 firmware directly from the web-UI.
Describe alternatives you've considered
Continue the "manual" update procedure using the script.

You need to poweroff the APU completely after the update finished, otherwise the firmware update may stay in an unpredictable state (its documented on pcengines.github.io). Soft-Reboot is insufficient, you have to power cycle the board.

@soder10 the script was merged to the official documentation. Used it several times doing remote upgrades followed by a remote reboot only and hadn't any problems until now. Not sure if the power cycle is still needed 🧐 or may be only for the legacy firmware.

Are there any plans of implementing this? Full power cycles appear to be possible using a command like pciconf -w pci0:24:0 0x6c 0x580ffe10 as documented here, and as previously stated, there's already a script for it.


Fix issue #266

Description
Fixes #266
Type of change

Bug fix (non-breaking change which fixes an issue)

Testing steps
Done on CI
Checklist

[ ] make before_commit passes
[ ] updated documentation wherever necessary
[ ] added or modified tests if necessary
[ ] updated schemas and validators in insights-data-schemas in case of input/output change

Codecov Report
Base: 5.92% // Head: 5.92% // No change to project coverage :thumbsup:

Coverage data is based on head (415f435) compared to base (9f3bc3d).
Patch coverage: 0.00% of modified lines in pull request are covered.

Additional details and impacted files
@@          Coverage Diff           @@
##           master    #336   +/-   ##
======================================
  Coverage    5.92%   5.92%
======================================
  Files          15      15
  Lines         827     827
======================================
  Hits           49      49
  Misses        778     778

Impacted Files
Coverage Δ

mock.go
0.00% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Add extra metadata

This PR introduces extra fields to the Poketo series and chapter responses to enable several new features on the Poketo reader.

[ ] ~Series status (ongoing vs. completed)~
[x] Volume numbers
[x] Chapter numbers
[x] Chapter titles (beyond just numbers)
[ ] ~Chapter preview images (ie. volume covers)~
[ ] ~Author names~

The big challenge here isn't necessarily adding this information. It should be readily available for most of the sites in the list already. I think the challenge is figuring out the right API to avoid updating any clients over and over.

What do we want from the series preview image?
Artist, author, both? Why?
Some sites don't have a "status" field and, on first glance, it seems like it'd be quite hard to guess at

I'm going to revise the list to be a little smaller until there's stronger use-cases around the others.

Closing this out in favour of #9


TESTS

[ ] fix preexisting unit tests
[ ] create unit tests that are missing

Would recommend adding a GH Action to test the build process of backend/ when PRs are opened against Main.
I ran into an issue with PR #140 where code would compile in my dev environment, but another contributor had issues. It looks like the latest version of Rust might be more forgiving and that I was using a feature that was introduced fairly recently that other collaborators might not have access to.
A GH Action that runs on pull_request:  that installs the version of Rust that we use on prod could help us spot these issues before code is merged to main.


[REQUEST] Loadin/saving conversations

It would be useful to be able to load / save conversations.

You can easily retype your messages through the history.
You can easily view the conversation history in messages.md.
if you want to start a conversation in a kind of context or scenario, use ".role" or ".prompt"
With the max token limit of 4096, i can't find anybenefit of loading conversations or saving conversations individually

Oh ok. I was under the impression that 4096 tokens was the limit for a single request but that a multi turn conversation could go beyond 4096 tokens.

It seems you are right:

Including the conversation history helps when user instructions refer to prior messages. In the example above, the user’s final question of "Where was it played?" only makes sense in the context of the prior messages about the World Series of 2020. Because the models have no memory of past requests, all relevant information must be supplied via the conversation. If a conversation cannot fit within the model’s token limit, it will need to be shortened in some way.


The template engine callback does not work

My express version 4.15.5.
I took the instruction from here: http://expressjs.com/en/4x/api.html#app.engine
My code:
app.set('views', path.join(__dirname, 'views'));
app.engine('swine', require('pug').__express);

When I opened the start page, there was an error:
Error: No default engine was specified and no extension was provided.
    at new View (/home/user/nodejs/server/node_modules/express/lib/view.js:61:11)
    at Function.render (/home/user/nodejs/server/node_modules/express/lib/application.js:570:12)
    at ServerResponse.render (/home/user/nodejs/server/node_modules/express/lib/response.js:971:7)
    at /home/user/nodejs/server/app.js:128:6
    at Layer.handle_error (/home/user/nodejs/server/node_modules/express/lib/router/layer.js:71:5)
    at trim_prefix (/home/user/nodejs/server/node_modules/express/lib/router/index.js:315:13)
    at /home/user/nodejs/server/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/home/user/nodejs/server/node_modules/express/lib/router/index.js:335:12)
    at next (/home/user/nodejs/server/node_modules/express/lib/router/index.js:275:10)
    at Layer.handle_error (/home/user/nodejs/server/node_modules/express/lib/router/layer.js:67:12)

The template file for views/index.swine is present! I ask help

Hi @morteryler this error means you're not providing the full filename to your res.render call (perhaps you're just passing the string index instead of index.swine?) and you didn't specify a default extension setting. There are two fixes you can do:

Change res.redner('index') to res.render('index.swine') so Express can locate the file on disk or
Set your default extension to swine using the "view engine" setting: app.set('view engine', 'swine')

👍


Migration of the GeoParquet specification to the official OGC templates

Based on #219 and #206. Original author is @ghobona.
Making this a draft for now because the CI is failing, but I don't have the time and knowledge about metanorma to fix this.
Adds back the following commits:

5d67a9c5
471a2f88
2aa06683
a727140f

The docs may need to be updated with the commits that were merged afterwards:
https://github.com/opengeospatial/geoparquet/compare/fe3687dfa732b47e7891b0e235febf6c10fc03f1...main

The CI only checks that there's a single newline at the end of each file, and that there are no superfluous whitespace characters at the end of each line.

That was too easy, lol. Thanks, @kylebarron.

Thanks @m-mohr. I'll try to edit the readme today, and take it out of draft status.

Ok, I think this is ready for review now. I updated the readme to try to explain what's going on, and put in more links.
I am leaning towards just removing the extra folders on images, figures and code, and it seems like if we want those later we can add them back in.
I think we ideally get this merged back in pretty soon, and then can continue to iterate on main, so that the OGC docs can continue to build.

@cholmes The docs probably need to be updated with the commits that were merged afterwards:
https://github.com/opengeospatial/geoparquet/compare/fe3687dfa732b47e7891b0e235febf6c10fc03f1...main
Did you do that already?

I think most of those are not needed? This just targets 1.0, so we don’t want the latest changes to 1.1. Though I should probably make that a bit more clear, I still need to update the section on ‘authoring’.

Oh, this is meant to target 1.0 and not 1.1?

Yeah, it's for 1.0. Good point that we should be sure there are no 1.1 things that are in it.