Add Events API/Support for tt_metal for host->CQ and CQ<->CQ synchronization

Tagging @davorchap , @tooniz , @arakhmati , @TT-billteng for visibility of proposal - please take a look, let me know if any concerns. Starting to work on code scoping/implementation in parallel.
==
This "Events" feature been talked about for a while, opening ticket to add some verbosity, and to track design/implementation on tt_metal side which got assigned to me this week. Let me know if I got anything wrong here.
Intro:

We are looking for a way to have Host block execution until a HW CQ makes progress to a certain command, a kind of "finer grain" barrier, rather than coarse barrier (to wait until CQ is fully drained), like today.
Similiarly, looking for the same feature between multiple HW CQ's. As in, a way to have dependencies enforced between commands for when there are multiple HW CQ's used by a graph, such that say CQ2 can block execution until CQ1 has made progress to a certain command.

I stole a picture from @arakhmati and added words here to illustrate that case:

To start, @TT-billteng just merged change to add initial Event struct to tt_metal/impl/event/event.hpp as :
namespace tt::tt_metal
{
    class Device;
    struct Event
    {
        Device * device;
        uint32_t cq_id;
        uint32_t event_id;
    };
}

.... and these APIs to tt-metal/tt_eager/queue/queue.hpp as stubs for now (until changes for this ticket implemented in tt_metal) - comments added by me here:
void QueueRecordEvent(CommandQueue&, Event&);  // Non-blocking populate Event struct and record it for a CQ
void QueueWaitForEvent(CommandQueue&, Event&); // Non-blocking CQ will wait for an event completed on another CQ
void EventSynchronize(Event&);                 // Blocking - host will wait until event completed on a CQ
void QueueSynchronize(CommandQueue&);          // Blocking - host will wait until CQ entirely drained

The expectation here is that empty Event struct is created by user, passed by reference and filled-in by QueueRecordEvent() and then used by QueueWaitForEvent() ie:
Event math_event;
QueueRecordEvent(cq1, math_event);
QueueWaitForEvent(cq2, math_event);

Design / Proposal
ttnn change:

There was suggestion in meeting from @davorchap last week to rename QueueRecordEvent() and QueueWaitForEvent() to be EnqueueQueueRecordEvent() and EnqueueQueueWaitForEvent() for consistency with other functions to denote they are non-blocking and issued to device.  It was suggested to bring this up with Moreh before changing.

tt_metal spec:
A couple choices here, but since ttnn/eager API has already been decided with Moreh, I think we better make tt_metal API very similiar, so:

Create the following tt_metal API's that 1:1 map with ttnn APIs (these have Enqueue prefix, am anticipating the same can be made for ttnn API):

void EnqueueQueueRecordEvent(CommandQueue&, Event&);
void EnqueueQueueWaitForEvent(CommandQueue&, Event&);
void EventSynchronize(Event&);
void QueueSynchronize(CommandQueue&);

Usage - mapping to 4-op example image above:
// Create vector of 2 empty events, to be populated by Record().
// Or use named structs like exp_add_sync_event, add_gelu_sync_event.
std::vector<Event> events(2);

EnqueueProgram(cq1, sqrt_program, blocking=False);
EnqueueProgram(cq1, exp_program, blocking=False);

// Setup the synchronization. CQ2 must wait until CQ1 exp finished
EnqueueQueueRecordEvent(cq1, events[0]); // Will populate event struct
EnqueueQueueWaitForEvent(cq2, events[0]);

EnqueueProgram(cq2, add_program, blocking=False);

// Setup the synchronization. CQ1 must wait until CQ2 add finished
EnqueueQueueRecordEvent(cq2, events[1]); // Will populate event struct
EnqueueQueueWaitForEvent(cq1, events[1]);

EnqueueProgram(cq1, gelu_program, blocking=False);

Briefly considered other ideas like EnqueueQueueRecordEvent(cq) returning an Event object to user (so they don't have to create empty Event objects) but it sounds like current API is preferred and already agreed upon from ttnn level (this would clash), so not considering this right now.

Ignore 32-bit event_id wrapping back to 0, to start. From talking to Andrew, we don't think it will happen anytime soon, can assert if event_id is seen to wrap.  If we do need to support it, let me know and we can spec out how to handle it.

Implementation:
Currently TBD/WIP -  will start working on this now and scoping out code, will fill in more details once I know them.

EnqueueQueueRecordEvent() will populate Event struct with latest event_id from auto-incrementing event_id already used for commands, so this feature "just works" by waiting for completed event_id to be greater than waited-for event_id.

Host->Device sync via EventSynchronize(): sounds like the expectation here from Davor in meeting last week is that Device would write event_id to completion queue in Host Hugepage (already does this today for cmds), and the support in EventSynchronize(Event) will be real simple to have Host wait for event_id completed for a CQ to be greater than that waited (Event.id) - this is Host reading Host memory.

For Device->Device (CQ to CQ sync) via EnqueueQueueWaitForEvent(): the same completion queue event_id reading can be done, but it would be Device reading Host completion queue for a given CQ to wait for completed event_id greater than waited-for event_id, and spinning with a tiny sleep of say 10us (to avoid non-stop device->host reads) until that occurs.

As a performance optimization, we can consider eliminating Device->Host reading above, and have CQ1 read CQ2 "last completed event_id" or similiar, stored on device directly.

Hey @TT-billteng, how was cq_id on Event struct intended to be used to access a CommandQueue object from EventSynchronize(Event) path?
I got EnqueueQueueRecordEvent(cq, Event) implemented in tt_metal, but realize now that since EventSynchronize(Event) does not take a CommandQueue object as an argument, and as far as I can tell there isn't any global map of CQ's by ID laying around, I don't see how the cq_id field can be used to fine the right CommandQueue object to inspect it's last completed event... feels like a cq argument is needed like all the other functions unless I'm missing something (hopefully I am since I agree it feels ~redundant).

Small update -

as far as I can tell there isn't any global map of CQ's by ID laying around (at least not in tt_metal), I don't see how the cq_id field can be used to find the right CommandQueue object to inspect it's last completed event...

Maybe I'm wrong and prev idea isn't needed, I was looking around more, and came across above code, and now I see there is a way to go from device ptr to HWCommandQueue object which can be looked up by cq_id. Maybe this will solve my concerns... need to look more later.
HWCommandQueue& CommandQueue::hw_command_queue() {
    return this->device()->hw_command_queue(this->cq_id);
}

Looked through all the discussions above.
First of all, the current implementation looks fine.
Moreover, Moreh does not take care much about the API's name whether it is "EnqueueQueue~" or "Queue~".
Also, the alternative way of implementation is also good.

Briefly considered other ideas like EnqueueQueueRecordEvent(cq) returning an Event object to user (so they don't have to create empty Event objects) but it sounds like current API is preferred and already agreed upon from ttnn level (this would clash), so not considering this right now.

What we only focus on is a functionality to synchronize between two queues with events.
Thank you.

The 4th API function I proposed in ticket, QueueSynchronize(cq) seems not necessary at tt_metal, now that I look closer and tidying up changes, it's the exact same thing as Finish(cq) which is already exposed in host_api.cpp - so I'm going to not include that in these changes.  I see ttnn implementation is not a stub here, and they already call Finish:
void QueueSynchronize(CommandQueue& q) { Finish(q); }

If anyone objects let me know.

I got initial implementation working and cleaned up, and in process of review/ci/merge - just wanted to flag something multi-cq related to Moreh folks @razorback3 that came up in discussion that is ~orthogonal to Events:

There is an existing restriction that for multi-cq (num_hw_cqs>1 on Device constructor) , programs are only allowed to be enqueued on cq_id=0 (there are asserts that guard against this in EnqueueProgram().. something to be mindful of. This restriction doesn't apply to data (Reads/Writes, and now Events), they can be inserted on say cd_id=1 when num_hw_cqs=2 for example.  I include some gtests that do this for the new Event APIs (EnqueueQueueRecordEvent() and EnqueueQueueWaitForEvent()

Maybe this is already known. I'm checking with Andrew to see if there is some plan to remove this restriction.

Update here - initial changes are merged at 4ec8d35b9 as discussed above.  Keeping this ticket open since needs to be revisted in coming days for:

testing with async queues once changes for them are released (there is chance that it will "just work")
multichip once multichip fast-dispatch support and other cross-chip communication API changes made (currently not supported with Events, assert added to ensure record event and wait-for-event are from same device) in command_queue.cpp:

    // #5529 - Cross chip sync needs to be implemented. Currently, we only support sync on the same chip.
    TT_ASSERT(this->sync_event.device == this->device,
            "EnqueueWaitForEvent() cross-chip sync not yet supported. Sync event device: {} this device: {}",
            this->sync_event.device->id(), this->device->id());

Looks amazing, thank you @kmabeeTT !
Perhaps we could shorten to EnqueueRecordEvent and EnqueueWaitForEvent?
"EnqeueQueueXYZ" read a bit funny.

Perhaps we could shorten to EnqueueRecordEvent and EnqueueWaitForEvent?

Sure, no prob - made this changes (global search and replace, update APIs, functions, comments, files, docs etc) in PR https://github.com/tenstorrent-metal/tt-metal/pull/5837, will merge soon. FYI @razorback3 for tiny name change.

Merged #5837 for the name change (EnqueueQueue_* -> Enqueue_*) at d978fdab7427ddd0564948dc82cd29a3b9d0c045.

FYI @razorback3 while this is still fresh and unused, we would like to change these newly added APIs to take std::shared_ptr<Event> instead of Event& - do you have any concerns with this change?
void EnqueueRecordEvent(CommandQueue& cq, Event &event);
void EnqueueWaitForEvent(CommandQueue& cq, Event &event);
void EventSynchronize(Event &event);

Becomes:
void EnqueueRecordEvent(CommandQueue& cq, std::shared_ptr<Event> event);
void EnqueueWaitForEvent(CommandQueue& cq, std::shared_ptr<Event> event);
void EventSynchronize(std::shared_ptr<Event> event);

The motivation here is to better protect against unsafe usage when "async queues" are enabled (upcoming changes  from https://github.com/tenstorrent-metal/tt-metal/issues/5804 and using TT_METAL_CQ_ASYNC_MODE=1) where is it easier for user to fumble and have Event refs go out of scope now in main thread now that Enqueue_* operations host code are dispatched to a child thread, causing corruption in the child thread that can lead to various undefined behavior.  Simplest tests like this are no longer safe unless it were a shared_ptr.
// Failure. Original test, this does not work with async queues. event goes out of scope in this thread before used by async thread.
TEST_F(CommandQueueFixture, TestEventsEnqueueRecordEventIssueQueueWrapExample0) {
    constexpr size_t num_events = 100000;
    for (size_t i = 0; i < num_events; i++) {
        Event event; // <-- goes out of scope.
        EnqueueRecordEvent(this->device_->command_queue(), event);
        EXPECT_EQ(event.event_id, i);
    }
    Finish(this->device_->command_queue());
}```

I made local changes to convert API to use `shared_ptr<Event>` and issue went away, plan to rebase, and open PR and merge in next couple days unless any objections.

No problem. Nice work :)

Thanks for quick reply! Merged at 547798575 just now the change to use shard_ptr<Event> instead of Event&.
Related to an earlier bullet on async testing WIP, I found an issue when local testing with upcoming async-cq changes (EnqueueRecordEvent() gets incorrect event_id because it's value is picked from main thread, yet other cmds are picked from async worker threads, can cause event_id to be out-of-order; not good), will be working on fix tonight/tomorrow there, and further async+events testing.

Related to an earlier bullet on async testing WIP, I found an issue when local testing with upcoming async-cq changes (EnqueueRecordEvent() gets incorrect event_id because it's value is picked from main thread, yet other cmds are picked from async worker threads, can cause event_id to be out-of-order; not good), will be working on fix tonight/tomorrow there, and further async+events testing.

This is fixed at 553027e6e and Events tests updated for async cq at 9dca57876.  Initial async cq changes were merged earlier today too.  Going to close this ticket now.

Screnshot from slide I shared today. @razorback3 @sangwon-chae

@kmabeeTT
This issue has already been resolved, but I would like to ask you for one more event-related API.
Would it be possible to add a 'QueryEvent' API with the same functionality as cudaEventQuery?
It would be great if you could let me know whether it is possible and if it doesn't require much work.

Would it be possible to add a 'QueryEvent' API with the same functionality as cudaEventQuery?

Hey @razorback3  - thanks for suggestion.. I took a look, this sounds cool and simple and is basically a derivative of EventSynchronize(event) on our side (instead of waiting, just return if it's ready).  We don't have any enumerated return status codes yet anywhere, so if we're okay with returning bool, then I can implement this easily in main (Fast Dispatch 1.x) and FD2 branches right away.
bool EventQuery(std::shared_ptr<Event> event); // true if event is completed, false if event is not completed.

Sound good? Re-opening.

Would it be possible to add a 'QueryEvent' API with the same functionality as cudaEventQuery?

Hey @razorback3 - thanks for suggestion.. I took a look, this sounds cool and simple and is basically a derivative of EventSynchronize(event) on our side (instead of waiting, just return if it's ready). We don't have any enumerated return status codes yet anywhere, so if we're okay with returning bool, then I can implement this easily in main (Fast Dispatch 1.x) and FD2 branches right away.
bool EventQuery(std::shared_ptr<Event> event); // true if event is completed, false if event is not completed.

Sound good? Re-opening.

Perfect 😄
Thanks for your fast response.

Perfect 😄 Thanks for your fast response.

No prob - this is done and merged to tt-metal main at 06828e32f and no updates needed for FD2, just works.


handle play/pause when window is hidden

Fixes #598.
This could also be done using the already implemented state.window.isFocused, however I added a webkitvisibilitychange event listener, since we only need to force the render when the window is completely hidden and not just out of focus. The event does not fire often so I think this is reasonable.

Thanks @mathiasvr, I think this is reasonable!
Also, I added you as a collaborator to WebTorrent Desktop. 👍

Thanks @feross! 😄


Metadata information not found (problem_list.csv)

Hi,
I am in search of description file, which can describe a brief summary depicting the implementation details of each set of problem in Project_CodeNet_Java250 dataset.
Right now, dataset is available without any description of meta data. I tried to find a file named as "problem_list.csv", but in vain. Can you please share this information?

The additional benchmark datasets like Project_CodeNet_Java250 are pure data (and not metadata) extracts from the larger Project_CodeNet dataset. The former will use the same problem ids and submissions ids as the latter.
However, Project_CodeNet comes with all the metadata. So you will find the file "problem_list.csv" there and also all the individual "metadata/p?????.csv" files.
It would be a good idea if the complete metadata would be available as a separately downloadable archive.
We will be working on that.

Thanks for your response.
Will it be convenient for you to share metadata file and any other associated file for "Project_CodeNet_Java250" dataset?
I check the size of the complete dataset, which is around 7.8 GB, quite large.

We are in the process of sharing all metadata as a separate archive on DAX. That file would be some
291 MB, so much smaller than the full dataset at 7.8 GB. With that metadata you would be able to (back)reference the submissions found in e.g. Project_CodeNet_Java250 (and all other derived benchmark datasets). The relationship among data and metadata is spelled out here: https://github.com/ibm/project_codenet#relationships-among-the-metadata-and-data.

All metadata is now separately available as a downloadable tar archive here:
https://dax-cdn.cdn.appdomain.cloud/dax-project-codenet/1.0.0/Project_CodeNet_metadata.tar.gz?_ga=2.95870620.1494682072.1622480730-463534291.1622235075.
With this, I close this issue.

Can you kindly update the Readme with this separate metadata link?
Also the following files are empty
.p02015.csv
.p02395.csv
p02387.csv
p02478.csv
p02533.csv

Yes, we will update the README with a link to the separate metadata.
Your observation of the "empty" metadata for these 5 problems is correct. Those problems have no
submissions under the "data" folder. For reasons of consistent "problem" numbering the empty .csv files and empty data directories are kept for them, rather then removing the files and directories. I believe this is mentioned somewhere. I hope this answer is satisfactory and will let me close this issue.


Recommendations and best practices for language changes

These changes are to address https://github.com/inclusivenaming/org/issues/44 and https://github.com/inclusivenaming/org/issues/45, and discuss how to make changes (methodically, carefully, patiently) on your own project, as well as how to approach another projects (patiently, tactfully, compassionately) for best results, without making people feel defensive, or feel attacked.

This looks good to me. Do we want to merge and iterate from here?


Add a link to the "System Design: A Primer" repository

Hi there,
I think that the System Design: A Primer repository is really cool and I think it's a nice addition to your list.
Cheers,
Ahmad

Amazing! 👍
Would you make a PR to the repo? 🙏

Sure!

Done. PR: https://github.com/mr-mig/every-programmer-should-know/pull/53


Make it the caller's responsibility to remember which arm was pulled for delayed_reward bandits?

This would make it so the function signatures wouldn't have to change between various bandit forms.

The user has the ability to update specific arms via the arms attribute of an Agent, so not sure this is necessary beyond what already exists.


"400 Bad Request" when authenticating

Hello! I seem to be having issues with authentication. I've compared packet captures from Linphone (which works) to Baresip (which doesn't). Assuming the Nonce calculations are correct, Linphone has a "Algorithm: MD5" parameter in it's auth response, but Baresip doesn't. That's the only difference I can see.
Should Baresip when challenged with an "Algorithm: MD5" in the "WWW-Authenticate" part of the 401 response tag a "Algorithm: MD5" in the response?
Request:

Baresip's response:

Unless I'm missing something obvious, that's the only difference between Linphone and Baresip's response.
Can anyone offer any insight?
Thanks!

Never mind, it's a RE issue and isn't going to be fixed, apparently.
https://github.com/creytiv/re/pull/139


Reland "Upgrade template Gradle, App AGP, Module AGP, and Kotlin versions, and tests"... but no longer upgrade module AGP version

Relands https://github.com/flutter/flutter/pull/150969, but removes the upgrade to the module AGP version.
The reason is that a more complicated change is required because in AGP 8.0 software components are no longer generated by default, but rather only generated for variants that are configured to be published using the publishing DSL (see the android.disableAutomaticComponentCreation section of https://developer.android.com/build/releases/past-releases/agp-8-0-0-release-notes).
That broke our aar initialization script, because the components didn't exist so the aar tasks never got created here.
Verified that the one postsubmit that failed now passes (android_obfuscate_test)
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[ ] I signed the CLA.
[ ] I listed at least one issue that this PR fixes in the description above.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making, or this PR is test-exempt.
[ ] I followed the breaking change policy and added Data Driven Fixes where supported.
[ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

cc @christopherfujino no action needed, just an fyi that the change to the tests that we discussed in the last pr re-landed (because without a cc the last update you would have seen was the revert)


addError should set errors as an array

When calling validate with multiple validations on a property, changeset.error.propertName.validations is an array of messages. However, if you call changeset.addError('propertyName', 'message'), then changeset.error.propertName.validations will be a string.
This is inconsistent and makes it unclear how to handle validation messages for a property in the UI.

Related: https://github.com/DockYard/ember-changeset/pull/52#discussion_r69779078

Yup, basically errors being in an array is a quirk from ECV and shouldn't be enforced by this addon. That said, perhaps an addErrors method could do so..

Just a +1, I also just hit this and found that addError does not manage the validations key as an array like ECV does. Perhaps a pushError method?

I've also run into this, after the ember-form-for fix was implemented my local validations were passing but as soon as I get validations back from the server using the readme instructions it blows up again.

In case you're interested, here is my workaround to coalesce the errors into an array and only call addError once:
  .catch(() => {
    // TODO: clean this up when this issue is addressed:
    // https://github.com/DockYard/ember-changeset/issues/100
    let errorData = {};
    this.get('model.errors').forEach(({attribute, message}) => {
      if (!errorData[attribute]) {
        errorData[attribute] = [];
      }
      errorData[attribute].push(message);
    });
    Object.keys(errorData).forEach((key) => {
      changeset.addError(key, errorData[key]);
    });
  });

See https://github.com/DockYard/ember-changeset/pull/128


Bugfix/ Model upload logs

Description
Corrects logging for the model upload feature.

Required ultralytics version is > 8.0.20 rather than <
Deploy page URL is updated to correct path

Previous logs asked for ultralytics version < 8.0.20, even though we require a greater version. And they point to the old URL path of ../deploy/..

New logs point to correct path

Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] This change requires a documentation update

How has this change been tested, please provide a testcase or example of how you tested the change?
Tested model upload with local package.
Any specific deployment considerations
None.

I will defer to Paul to approve which versions we are supporting. I know previously the < was to prevent ultralytics from pushing breaking changes knowing we would support <
Things have presumably settled down over there...

Maybe we should pin to a specific version and have it match the version we use in the roboflow-model-conversion library.

Hmm. version 8.0.20 did not work for me, and latest ultralytics did work. 8.0.20 is giving me this error:

i'll pin it to the version in roboflow-model-conversion after I upgrade that ultralytics package


DATE is not supported in CDH 5.16 Impala

Running impala-external.sql & impala-parquet.sql scripts on CDH 5.16.2 (impalad version 2.12.0-cdh5.16.2 RELEASE) fails with:
ERROR: AnalysisException: Unsupported data type: DATE

Had to  change the scripts to execute...
sed -e 's/ date,/ varchar(10),/g' impala-external.sql  > impala-external_varchar.sql
sed -e 's/ date,/ varchar(10),/g' impala-parquet.sql   > impala-parquet_varchar.sql

Also, the compute-stats.sql is missing:
use use tpcds_10000_parquet;

The DDL scripts were changed recently to use the DATE type which is only supported in Impala version 3.3 and later (https://issues.apache.org/jira/browse/IMPALA-7368).  If you're looking for a Cloudera release with the required DATE support I believe it's supported in all of the CDP releases (both CDP cloud and CDP Data Center 7.0 for on-prem).  The DATE support isn't available on CDH 5 or CDH 6.  If you need to run on earlier CDH releases you could consider using a version of the TPC-DS kit prior to the recent commit that made the DATE related changes.


Adds the necessary files to start building for the Internet Computer

This PR kickoffs the project by adding the skeleton to start working on the integration. The steps taken:

Ran the ./bootstrap.sh script.
Installed emscripten sudo apt-get install -y emscripten into the devcontainer.
Added ICP to the registry.json.
Ran ./codegen/bin/newcoin icp which generates the protobuf definitions and the code needed to start.
Ran ./tools/generate-files to generate the protobuf classes.

Made in error. Ignore.


Make the library a Go module and add a Logrus sink.

This PR:

makes the library a Go module by adding go.mod an go.sum files;
contributes a sink for Logrus, one of the most popular logging frameworks.

Thanks!

@qbarrand We've converted this repository to a module. If you still like to add a Logrus sink, can you please update this PR with those changes only.


Bug 2234948: build: upgrade client-go tov 0.26.4

client-go v0.26.4 earlier than this is causing
error Segmentation violation.

Description of your changes:
Which issue is resolved by this Pull Request:
Resolves #
Checklist:

[ ] Commit Message Formatting: Commit titles and messages follow guidelines in the developer guide).
[ ] Skip Tests for Docs: If this is only a documentation change, add the label skip-ci on the PR.
[ ] Reviewed the developer guide on Submitting a Pull Request
[ ] Pending release notes updated with breaking and/or notable changes for the next minor release.
[ ] Documentation has been updated, if necessary.
[ ] Unit tests have been added, if necessary.
[ ] Integration tests have been added, if necessary.

/bugzilla refresh

Looks like the CI is failing, you may need to run make crds, thanks for picking this up!

done


Update Meta “tags”

Automatically generated by Netlify CMS

👷 Deploy Preview for drama-of-the-world processing.

Name
Link

🔨 Latest commit
51b7cfa706ff0bd252b113a9963b85b3e68c91cb

🔍 Latest deploy log
https://app.netlify.com/sites/drama-of-the-world/deploys/62700186d52c7c0009a80eae


using PowerShell3 execution causes "Cannot process command because of one or more missing mandatory parameters"

Hi,
I have a task using the following input...
 "inputs": [
     {
      "name": "NuGetServerEndpoint",
      "type": "connectedService:Generic",
      "label": "NuGet Server Endpoint",
      "required": true,
      "helpMarkDown": "The NuGet server generic endpoint."
    }
  ],

and in my PowerShell script have the corresponding Params
Param
(
	[Parameter(Mandatory=$true)]
	[string]$NuGetServerEndpoint
)

If i use "PowerShell" the task runs fine - however when i use "PowerShell3" i get the error as per the subject "Cannot process command because of one or more missing mandatory parameters"
Do i need a different type when using Powershell3? I have installed the ps module as per the documentation and when running locally "Invoke-VstsTaskScript -ScriptBlock { . .\MyTask.ps1 }" all works fine (except im asked for the parameter $NuGetServerEndpoint) despite the fact i declare it as...
$env:INPUT_NuGetServerEndpoint = "EP1"
$env:ENDPOINT_URL_EP1 = 'http://nuget.org'
$env:ENDPOINT_AUTH_EP1 = '{ "Parameters": { "UserName": "Some user", "Password": "Some password" }, "Scheme": "Some scheme" }'
$env:ENDPOINT_DATA_EP1 = '{ "Key1": "Value1", "Key2": "Value2" }'

Can you please provide some help on this?
Much appreciated
ExampleFiles.zip.zip

You need to use Get-VstsInput to get the input, and Get-VstsEndpoint to get the endpoint.
I'm working on docs right now. Better getting started docs coming soon.

Many thanks - using Get-VstsInput works.
+1 for those documents :-)


isregular() method for checking regularity of TS objects

isregular() method for checking regularity of vectors and TS objects (test cases included)

Codecov Report

Merging #94 (5597984) into main (48a28b8) will decrease coverage by 0.74%.
The diff coverage is 88.88%.

@@            Coverage Diff             @@
##             main      #94      +/-   ##
==========================================
- Coverage   67.50%   66.75%   -0.75%
==========================================
  Files          19       19
  Lines         360      388      +28
==========================================
+ Hits          243      259      +16
- Misses        117      129      +12

Impacted Files
Coverage Δ

src/TSx.jl
100.00% <ø> (ø)

src/utils.jl
43.07% <88.88%> (+10.64%)
:arrow_up:

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


new characters for recruitment system

Add the following characters to the recruitment system

Archangel Saint Milae
Well-Respected Aristocrat Lotiya
Dreameater Aridya
Magical Knight Tyrella
Angel of Punishment
Angel of Bliss

Add "Weaken" tag to Snake Queen Mesmiia
Replace the original recruitment report form with the official discord link
Known issue

src/images/char_{158-160}.png are templates.

I somehow obtained the images and fixed the character IDs.
Please let me know if there's anything I missed!
Thanks for the help!

There are four potential types which are attacker, defender, supporter, and N/R type, a type shared by N/R characters. Note that the attacker, defender, and supporter here are not identical to character positions. (e.g. Juneau is an attacker in character position but a supporter in potential type.)
You can find the type by comparing the potential material requirement of a new character to that of an existed character.

Happy new year! I have been working on the new recruitable characters. However, I searched everywhere but I couldn't find the characters' small pictures (160 x 160 ones). I thought the official website has them :(
I would be so grateful if you could give me some hints! Thanks!


Improve notebook.output.fontFamily wording

Testing #177719
This doesn't read well to me:

Suggestion:

The font family of the output text within notebook cells. When unset, #editor.fontFamily# is used.

Similar improvements could be made to the other settings. The "for...for" in particular:

Thanks for the feedback, the suggestion looks good.


Support Android Feature modules

Issue
When using Apollo with the android plugin, com.android.feature, the following error is shown: "Apollo plugin couldn't be applied. The Android or Java plugin must be configured first"
This is an extension on the closed issue, #698.
Discussion
With Android's new Instant App structure, it requires apps to use the following plugins for their modules:

com.android.application
com.android.instantapp
com.android.feature

An example of this structure is found here: https://github.com/googlesamples/android-instant-apps/tree/master/multi-feature-module
Currently, Apollo works with application and, as of #1067, instantapp. This issue requests adding support for feature.
The proposed fix, proposed by the plugin author @marwanad in #698, is to add project.plugins.hasPlugin("com.android.feature") to the list of checks here.
I would be happy to make a pull request for this change, but wanted to have a quick code style discussion first. Namely, the conditional in the if-else statement will grow another line. Would that be an issue, or would you rather have all of that wrapped in a canApplyPlugin() method?

wrap it in a function/method. Thank you

I think we can close this issue.

@digitalbuddha Can you provide more details on how to wrap it in a function/method?


Block domain rippie.claims

Domain: rippie.claims
Requested by @usser0134

.

@usser0134 thanks again


fix(deps): update terraform terraform-ibm-modules/secrets-manager/ibm to v1.19.7

This PR contains the following updates:

Package
Type
Update
Change

terraform-ibm-modules/secrets-manager/ibm (source)
module
patch
1.19.6 -> 1.19.7

Release Notes

terraform-ibm-modules/terraform-ibm-secrets-manager (terraform-ibm-modules/secrets-manager/ibm)
v1.19.7
Compare Source
Bug Fixes

deps: update terraform-module (#249) (20ac785)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

:tada: This PR is included in version 8.15.16 :tada:
The release is available on:

GitHub release
v8.15.16

Your semantic-release bot :package::rocket:


L515 is worse than D345 for alignment performance

The first picture is the alignment effect of the d345.
The resolution of the color map is 1280-720，The resolution of the depth map is 1280-720。

The second picture is the alignment effect of the L515.
The resolution of the color map is 1024-768，The resolution of the depth map is 1280-720。
Resolution of the red point cloud  1280-720，and resolution of the yellow point cloud  1280-720.

The two point clouds(red and yellow) are taken by the same camera at the same time, so the alignment effect of L515 should be the same as that of the d345.
This question has been asked before, but no solution has been found. Now I want to ask again, the reason why the alignment effect of l515 is poor is the hardware (for example, the effect of internal and external calibration is not good?) Or software?
Or there are other solutions？

@DreamLFairy  What SDK and FW version do you use for L515? Also double check my understanding of your L515 configuration.  Is that depth 1024x768 and color 1280x720?

@DreamLFairy Could you please update if you still need support on this? Thanks!

@DreamLFairy Could you please update? Thanks!

@DreamLFairy  Sorry that we didn't hear from you for weeks. Will close this accordingly. Please feel free to create another ticket if you still have issues or questions. Thanks!


Added more labels to support list

Closes: #103
Changes

[Added more labels to support list, in the auto-labeler.yml

vc


Add to scripts

[x] https://sqlundercover.com/2017/09/13/undercover-toolbox-checking-your-backup-paths-exist-and-automatically-creating-them-if-they-dont/
[x] https://www.mssqltips.com/sqlservertip/4876/finding-sql-server-object-dependencies-for-synonyms/

Closed via https://github.com/ktaranov/sqlserver-kit/commit/e4a9f172eca976ceca80229067b576f69a06f54c


If initialValues in formik KeyboardDatePicker are empty strings, I receive an error

If I set the initialValue for a KeyboardDatePicker to an empty string, I receive an error. If I fill in the field with a date (such as 10/10/2009) then it works fine.

The error appears after I select a date from the picker.

Is happening to me as well, if I set the initial value to an empty string I get the error, but if I set to null I don't get the error.

Is happening to me as well, if I set the initial value to an empty string I get the error, but if I set to null I don't get the error.

This does the job, and I was actually doing it. But if you happen to have that datepicker value is optional in your form, it might remain null for submission which causes issues with Formik since based on the official documentation "initialValues are required and should always be specified".

Is happening to me as well, if I set the initial value to an empty string I get the error, but if I set to null I don't get the error.

Still need this fix.


[Suggestion] Force the import library selection priority as the same order as dll_path

I created an additional virtual environment with venv and then installed XGBoost.
There is an older version XGBoost installed by Conda in another virtual environments directory.

core.py
Maybe it is better to break the lib_paths for-loop when lib_success is True.
Which will first use the library along with the package instead of other installed XGBoost in the system somewhere else.
    for lib_path in lib_paths:

      ...

      # Add this
      if lib_success:
          break

libpath.py
As the comment in libpath.py, the dll_path last item was designed to be the last option. But currently, it will be selected if available.
    curr_path = os.path.dirname(os.path.abspath(os.path.expanduser(__file__)))
    dll_path = [
        # normal, after installation `lib` is copied into Python package tree.
        os.path.join(curr_path, "lib"),
        # editable installation, no copying is performed.
        os.path.join(curr_path, os.path.pardir, os.path.pardir, "lib"),
        # use libxgboost from a system prefix, if available.  This should be the last
        # option.
        os.path.join(sys.base_prefix, "lib"),
    ]

And might cause error like this which is misleading:
Python 3.8.13 (default, Mar 28 2022, 11:38:47)
Type 'copyright', 'credits' or 'license' for more information
IPython 8.12.3 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import xgboost as xgb
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[1], line 1
----> 1 import xgboost as xgb

File /mnt/NAS/sda/ShareFolder/lidawei/ExperimentNotebook/daweilee_research/lib/python3.8/site-packages/xgboost/__init__.py:7
      1 """XGBoost: eXtreme Gradient Boosting library.
      2
      3 Contributors: https://github.com/dmlc/xgboost/blob/master/CONTRIBUTORS.md
      4 """
      6 from . import tracker  # noqa
----> 7 from . import collective, dask, rabit
      8 from .core import (
      9     Booster,
     10     DataIter,
   (...)
     15     build_info,
     16 )
     17 from .tracker import RabitTracker  # noqa

File /mnt/NAS/sda/ShareFolder/lidawei/ExperimentNotebook/daweilee_research/lib/python3.8/site-packages/xgboost/collective.py:12
      9 import numpy as np
     11 from ._typing import _T
---> 12 from .core import _LIB, _check_call, c_str, from_pystr_to_cstr, py_str
     14 LOGGER = logging.getLogger("[xgboost.collective]")
     17 def init(**args: Any) -> None:

File /mnt/NAS/sda/ShareFolder/lidawei/ExperimentNotebook/daweilee_research/lib/python3.8/site-packages/xgboost/core.py:266
    262     return lib
    265 # load the XGBoost library globally
--> 266 _LIB = _load_lib()
    269 def _check_call(ret: int) -> None:
    270     """Check the return value of C API call
    271
    272     This function will raise exception when error occurs.
   (...)
    278         return value from API calls
    279     """

File /mnt/NAS/sda/ShareFolder/lidawei/ExperimentNotebook/daweilee_research/lib/python3.8/site-packages/xgboost/core.py:260, in _load_lib()
    251     libver_str = ".".join((str(v) for v in libver))
    252     msg = (
    253         "Mismatched version between the Python package and the native shared "
    254         f"""object.  Python package version: {pyver_str}. Shared object """
   (...)
    258         "please remove one of the installations."
    259     )
--> 260     raise ValueError(msg)
    262 return lib

ValueError: Mismatched version between the Python package and the native shared object.  Python package version: 2.0.2. Shared object version: 1.5.0. Shared object is loaded from: /mnt/NAS/sda/ShareFolder/anaconda3/envs/research/lib/libxgboost.so.
Likely cause:
  * XGBoost is first installed with anaconda then upgraded with pip. To fix it please remove one of the installations.

After adding if lib_success: break the error is fixed.

There is an older version XGBoost installed by Conda in another virtual environments directory.

I'm curious how the two environments got mixed together in the first place.

XGBoost looks for sys.base_prefix, I think that's why.
ipdb> pprint(dll_path)
['/mnt/NAS/sda/ShareFolder/lidawei/ExperimentNotebook/daweilee_research/lib/python3.8/site-packages/xgboost/lib',
 '/mnt/NAS/sda/ShareFolder/lidawei/ExperimentNotebook/daweilee_research/lib/python3.8/site-packages/xgboost/../../lib',
 '/mnt/NAS/sda/ShareFolder/anaconda3/envs/research/lib']
ipdb> sys.base_prefix
'/mnt/NAS/sda/ShareFolder/anaconda3/envs/research'

sys — System-specific parameters and functions — Python 3.12.0 documentation
sys.base_prefix
Set during Python startup, before site.py is run, to the same value as prefix. If not running in a virtual environment, the values will stay the same; if site.py finds that a virtual environment is in use, the values of prefix and exec_prefix will be changed to point to the virtual environment, whereas base_prefix and base_exec_prefix will remain pointing to the base Python installation (the one which the virtual environment was created from).

cc @hcho3 @oliverholworthy
Related https://github.com/dmlc/xgboost/pull/9349 .

We have the same issue in an HPC environment where the base system is installed with conda and a user wants to install a newer version with pip install xgboost --user. It still tries to load the libxgboost.so from the old conda environment, even though the pip package has the newer one and it's the first in the list returned by find_lib_path().
Adding the if lib_success: break as suggested should do the right thing (selects the first appropriate choice).

I'm not against of the change if it reduces confusion for users. But it's a bit odd to me that one would mix environments and sources of packages, it's an invitation of troubles.

I think the comment https://github.com/dmlc/xgboost/issues/9790#issuecomment-1815570083 makes sense, I will prepare a PR for that change.


How to disable devtools listener when running puppeteer?

I didn't see any documentation on how to disable the devtools listener and prevent it from opening when using jest-puppeteer.  Even with devtools: false (which I think should affect it) isn't being followed.

Hello @rodoabad, I don't have any answer. I didn't experience that on my side.

@neoziro when you start up jest with jest-puppeteer as a preset it doesn't open a web socket for you?

Yeah it connects to Chrome using Puppeteer and a socket. The code is pretty simple, give a look.


Add Signet support

This PR adds signet support to tapd.
I tested it with a mint on default signet https://mempool.space/signet/tx/b67eb166b5cb891cc20f11f594114e97da1a61c675cbd439eeeec7664f191fb8

fixes #283

Aaah, I missed that. Probably because this daemon was created with lnd as a template. Okay, cool!


Add a --args-file flag to kurtosis run

Background & motivation
While reviewing the guidance around how to pass args to run from a file, I realized that the quoting/spaces thing is a hassle, especially for people unfamiliar with Bash. We can make this much easier for folks.
Desired behaviour
We should add an --args-file option, so that the second argument to kurtosis run can be interpreted as a file, and read in as args for the user (no escaping or "$(cat params.json)" nonsense needed)
How important is this to you?
Nice to have; this feature would make using Kurtosis more enjoyable.

Extra reason we might want to do this: now that we have typehint comments in Starlark, we can actually allow users to treat Starlark packages like "CLIs", generating arguments.
For example, let's say we had Starlark like so:
def run(plan, image, optional_arg = "default"):
    """
    Args:
        image (string): The image that's needed
        optional_arg (string): Some optional arg

The GUI already uses this type-hinting information to generate a pretty form for users to fill in, and I'd like to do something similar in the CLI (so generating "args" and "flags" for the user). E.g.:
kurtosis run github.com/the-user/the-package "some-new-image" --optional_arg "New value of optional arg"

Requested again by Barnabas this morning (pain: it's difficult and annoying to remember the syntax)

Also @leeederek had 3 people ask about this, because the "$(cat ...)" syntax isn't cross-architecture (Windows does something different)

Abhi from web3-labs asked for this on Discord, I am on it


Use Logux Core 0.5 and Logux Client 0.8

Changes:

credentials was renamed to token.
userId and token must be always a string.
token could also receive a function for dynamic tokens.
Client#changeUser was added.
Logux Redux moved Redux to peerDependencies.

Thank you. I carefully follow the changes in Logux Redux. Already moved Vuex to peer dependencies.

BTW, the current tradition is to close the issue with a commit of fixing it, not a release commit

I wasn't sure if that commit would close issue completely. Sorry.


In-Process gRPC Server for Testing

For testing purposes, we need to investigate a similar GrpcServerRule.

GrpcServerRule is a JUnit TestRule that starts an in-process gRPC service with a MutableHandlerRegistry for adding services. It is particularly useful for mocking out external gRPC-based services and asserting that the expected requests were made.

This approach would be very useful for ScalaTest BeforeAndAfter fragments, instead of JUnit hooks.
Something like that would be great to be provided as part of our own tests and also as an external utility in the frees-rpc-testing Sbt module.

This was finished, and integrated into the project. Closing this issue...


Layer at function level does not attach to lambda automatically

After adding a layer to the API route function, I can see that the layer is being created and built but isn't attached to lambda on sst start . this is the setup.
const api = new Api(stack, "api", {
    routes: {
      "GET /{path+}": {
        function: {
          handler: "functions/lambda.handler",
          bundle: {
            externalModules: ["sharp"],
          },
          layers: [
            new lambda.LayerVersion(stack, "SharpLayer", {
              code: lambda.Code.fromAsset("layers/sharp"),
            }),
          ],
        }
      },
    },
  });

The layer is available in the layers tab. i tried adding Arn still doesn't work

Not sure if I'm doing something wrong

Hey @bardzh, layers aren't loaded on sst start. Is sharp in ur local node_modules? You don't need to load it from the layer right?

We are transition this repo to https://github.com/sst/v2 and are closing this issue for now. If it is still relevant please reopen it there - sorry for the trouble


feat(upcloud): validate max-nodes-total against cluster plan

check that maximum number of nodes in the cluster is aligned with the cluster plan
small refactoring to make code more testable
new upCloudConfig type to represent provider configuration

@ajmyyra  thanks for the review :+1:
We check those limits in initialization phase and if there is more nodes defined than plan allows, then service won't start and it will exit with proper error message e.g. with --max-nodes-total=200 and dev plan:
MaxNodesTotal 200 is greater than maximum allowed 50 with selected development cluster plan
If that was what you meant.


Date Picker

Implement the Date Picker component.

Hey everyone! Is somebody working on this one ? I'd like to help by creating a component. We need a date range picker in dashboard. Is it OK if I start working on it ?
@coreyhume @josokinas @rabelloo

Hi, sorry for the delay, I was on holidays.
I don't believe we have a design ready to go, so that you could start implementing right away.
I'll double check with the team and we'll reach out to you on Slack.
Thanks for offering your help, it's much appreciated 😄


Convert depracation comments to godoc and deprecate Resource struct.

What does this PR do?

Reformat earlier deprecation comments so they are compatible with docs rendering (I hope)
Deprecate the Resource struct (reasons outlined here https://github.com/plutov/paypal/pull/205#issuecomment-879721101 )

Hello? This is a good change since it might stop bad code from being used.


Maintainability of package.json on Vulcan updates

So, either by cloning Vulcan directly or using the 2-repo approach, the own project's package.json dependencies become quite difficult to maintain when Vulcan needs to be updated.
This is specially true if the project has introduced new dependencies: package.json cannot be overwritten with Vulcan's, so the developer must manually select the updated dependencies from Vulcan and adding them to their project's.
I'm opening this issue to see how you're managing package.json on updates, and to discuss a good, easy and less painful way of doing it.

I'll explain the approach we are using for a big project we have, and it saves some time and headeaches when we have to update (it still has some caveats though).
First, let's clarify some things:

package.json located in the root in our project is the one that we are changing (that was originally Vulcan's)
.vulcan/package.json will contain the package.json of the new Vulcan version
the objective here is to get all the added/updated dependencies from .vulcan/package.json into the project's package.json

So, I wrote a script that will do that merge for me. I've placed it inside the .vulcan folder to mimic the prestart_vulcan.js script, and I named it update_package.js.
Now, to update package.json we copy Vulcan new version's package.json into .vulcan/package.json and then execute execute the script by running node .vulcan/update_package.js (must be run from the folder where the project's package.json is located). As stated above, this will merge dependencies from .vulcan/package.json into package.json.
Now, there may be some human intervention needed in this process. The merge will stop and throw an error if it finds incompatible semver ranges. For example, Cannot merge semver ranges "^2.0.1" and "^3.0.2" states that Vulcan has updated to version ^3.0.2 for a given package, so you will have to manually change that. This is a bit of a pain in the ass... but it is good for you because it forces you to check that you're not relying in the older version of that package.
The script is using @userfrosting/merge-package-dependencies, so the heavy lifting is done there. This is why I have no control in the incompatible semver ranges error (that, unfortunately, does not say the name of the package in the error).
I'll create a PR with the script.

From @Neobi this package could work betteri https://github.com/kellyselden/merge-package.json#readme


Panic: mutateHeaderFunc not supported in modified Transport while using basic auth in transport proxy

Example below demonstrates issue i have with dynamically set proxy.
If i use addr1 - that is proxy without basic auth - everything works as expected.
On the other hand if i use addr0 i get following exception:
http: panic serving <IP_ADDRESS>:38870: mutateHeaderFunc not supported in modified Transport
goroutine 19 [running]:
net/http.(*conn).serve.func1(0xc4200b1180)
	/home/wt/Apps/go1.8/go/src/net/http/server.go:1721 +0xd0
panic(0x67db80, 0xc420116ae0)
	/home/wt/Apps/go1.8/go/src/runtime/panic.go:489 +0x2cf
github.com/elazarl/goproxy/transport.(*persistConn).roundTrip(0xc420078700, 0xc420053ab0, 0xc420078700, 0x0, 0x0)
	/home/wt/Projects/GoWorkspace/src/github.com/elazarl/goproxy/transport/transport.go:657 +0x430
github.com/elazarl/goproxy/transport.(*Transport).DetailedRoundTrip(0xc420092a40, 0xc4200f2300, 0xc420053b08, 0x5f153f, 0xc42007f980, 0x6e3d3a)
	/home/wt/Projects/GoWorkspace/src/github.com/elazarl/goproxy/transport/transport.go:169 +0x30e
main.main.func1.1(0xc4200f2300, 0xc4200a6e60, 0x6e3d3a, 0xa, 0xc420053b58)
	/home/wt/Projects/GoWorkspace/src/bitbucket.org/wturyn/prokurilo/main.go:23 +0x34
github.com/elazarl/goproxy.RoundTripperFunc.RoundTrip(0xc420116a40, 0xc4200f2300, 0xc4200a6e60, 0xc420116a50, 0x67db80, 0xc420116a60)
	/home/wt/Projects/GoWorkspace/src/github.com/elazarl/goproxy/ctx.go:33 +0x3a
github.com/elazarl/goproxy.(*ProxyCtx).RoundTrip(0xc4200a6e60, 0xc4200f2300, 0xc4200a6e60, 0xc4200f2300, 0x0)
	/home/wt/Projects/GoWorkspace/src/github.com/elazarl/goproxy/ctx.go:38 +0x4c
github.com/elazarl/goproxy.(*ProxyHttpServer).ServeHTTP(0xc420078500, 0x80a540, 0xc4201141c0, 0xc4200f2300)
	/home/wt/Projects/GoWorkspace/src/github.com/elazarl/goproxy/proxy.go:112 +0x74e
net/http.serverHandler.ServeHTTP(0xc4200be6e0, 0x80a540, 0xc4201141c0, 0xc4200f2300)
	/home/wt/Apps/go1.8/go/src/net/http/server.go:2568 +0x92
net/http.(*conn).serve(0xc4200b1180, 0x80aa40, 0xc420092740)
	/home/wt/Apps/go1.8/go/src/net/http/server.go:1825 +0x612
created by net/http.(*Server).Serve
	/home/wt/Apps/go1.8/go/src/net/http/server.go:2668 +0x2ce

Example:
package main

import (
	"net/http"
	"log"
	"github.com/elazarl/goproxy"
	"github.com/elazarl/goproxy/transport"
	"net/url"
)

func main() {
	pr := goproxy.NewProxyHttpServer()
	pr.Verbose = true

	pr.OnRequest().DoFunc(func(r *http.Request, ctx *goproxy.ProxyCtx) (*http.Request, *http.Response) {
		const addr0 = "http://aaa:bbb@<IP_ADDRESS>:8088"
		const addr1 = "http://<IP_ADDRESS>:8088"

		proxyURL, _ := url.Parse(addr0)
		tr := transport.Transport{Proxy: transport.ProxyURL(proxyURL)}

		ctx.RoundTripper = goproxy.RoundTripperFunc(func(req *http.Request, ctx *goproxy.ProxyCtx) (resp *http.Response, err error) {
			_, resp, err = tr.DetailedRoundTrip(req)
			return
		})

		return r, nil
	})
	log.Fatal(http.ListenAndServe(":8000", pr))
}

I'll look into that, but I have to be honest, this can take a few months, I
unfortunately don't have much time for this project these days.
Many thanks for the great bug report.
On Tue, May 2, 2017, 1:16 AM Wojciech Turyn<EMAIL_ADDRESS>wrote:

Example below demonstrates issue i have with dynamically set proxy.
If i use addr1 - that is proxy without basic auth - everything works as
expected.
On the other hand if i use addr0 i get following exception:
http: panic serving <IP_ADDRESS>:38870: mutateHeaderFunc not supported in modified Transport
goroutine 19 [running]:
net/http.(*conn).serve.func1(0xc4200b1180)
/home/wt/Apps/go1.8/go/src/net/http/server.go:1721 +0xd0
panic(0x67db80, 0xc420116ae0)
/home/wt/Apps/go1.8/go/src/runtime/panic.go:489 +0x2cfgithub.com/elazarl/goproxy/transport.(*persistConn).roundTrip(0xc420078700, 0xc420053ab0, 0xc420078700, 0x0, 0x0)
/home/wt/Projects/GoWorkspace/src/github.com/elazarl/goproxy/transport/transport.go:657 +0x430github.com/elazarl/goproxy/transport.(*Transport).DetailedRoundTrip(0xc420092a40, 0xc4200f2300, 0xc420053b08, 0x5f153f, 0xc42007f980, 0x6e3d3a)
/home/wt/Projects/GoWorkspace/src/github.com/elazarl/goproxy/transport/transport.go:169 +0x30e
main.main.func1.1(0xc4200f2300, 0xc4200a6e60, 0x6e3d3a, 0xa, 0xc420053b58)
/home/wt/Projects/GoWorkspace/src/bitbucket.org/wturyn/prokurilo/main.go:23 +0x34github.com/elazarl/goproxy.RoundTripperFunc.RoundTrip(0xc420116a40, 0xc4200f2300, 0xc4200a6e60, 0xc420116a50, 0x67db80, 0xc420116a60)
/home/wt/Projects/GoWorkspace/src/github.com/elazarl/goproxy/ctx.go:33 +0x3agithub.com/elazarl/goproxy.(*ProxyCtx).RoundTrip(0xc4200a6e60, 0xc4200f2300, 0xc4200a6e60, 0xc4200f2300, 0x0)
/home/wt/Projects/GoWorkspace/src/github.com/elazarl/goproxy/ctx.go:38 +0x4cgithub.com/elazarl/goproxy.(*ProxyHttpServer).ServeHTTP(0xc420078500, 0x80a540, 0xc4201141c0, 0xc4200f2300)
/home/wt/Projects/GoWorkspace/src/github.com/elazarl/goproxy/proxy.go:112 +0x74e
net/http.serverHandler.ServeHTTP(0xc4200be6e0, 0x80a540, 0xc4201141c0, 0xc4200f2300)
/home/wt/Apps/go1.8/go/src/net/http/server.go:2568 +0x92
net/http.(*conn).serve(0xc4200b1180, 0x80aa40, 0xc420092740)
/home/wt/Apps/go1.8/go/src/net/http/server.go:1825 +0x612
created by net/http.(*Server).Serve
/home/wt/Apps/go1.8/go/src/net/http/server.go:2668 +0x2ce
Example:
package main
import (
"net/http"
"log"
"github.com/elazarl/goproxy"
"github.com/elazarl/goproxy/transport"
"net/url"
)
func main() {
pr := goproxy.NewProxyHttpServer()
pr.Verbose = true
pr.OnRequest().DoFunc(func(r *http.Request, ctx *goproxy.ProxyCtx) (*http.Request, *http.Response) {
const addr0 = "http://aaa:bbb@<IP_ADDRESS>:8088"
const addr1 = "http://<IP_ADDRESS>:8088"
  proxyURL, _ := url.Parse(addr0)
  tr := transport.Transport{Proxy: transport.ProxyURL(proxyURL)}

  ctx.RoundTripper = goproxy.RoundTripperFunc(func(req *http.Request, ctx *goproxy.ProxyCtx) (resp *http.Response, err error) {
  	_, resp, err = tr.DetailedRoundTrip(req)
  	return
  })

  return r, nil

})
log.Fatal(http.ListenAndServe(":8000", pr))
}
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/elazarl/goproxy/issues/220, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAP4ojbHfm36-1WUz3x73i3SSBxhlekUks5r1lmsgaJpZM4NNgAn
.

I've looked at your code and obviously the reason for the panic is here: https://github.com/elazarl/goproxy/blob/master/transport/transport.go#L657
I imagine that you put it there because extraHeaders are actually never written.
Neither http.Request.Write nor http.Request.WriteProxy allow to write extra headers.
In standard library all those structs are in the same package (http) and thus have access to unexported method http.Request.write (for example here: https://github.com/golang/go/blob/master/src/net/http/transport.go#L1754)
Unfortunately, the only solution for my specific purpose is to mutate the original request and set those headers inside RoundTripperFunc.

Are you using the latest commit? IIRC transport is no longer used.
On Wed, May 3, 2017, 5:05 PM Wojciech Turyn<EMAIL_ADDRESS>wrote:

I've looked at your code and obviously the reason for the panic is here:
https://github.com/elazarl/goproxy/blob/master/transport/transport.go#L657
I imagine that you put it there because extraHeaders are actually never
written.
Neither http.Request.Write nor http.Request.WriteProxy allow to write
extra headers.
In standard library all those structs are in the same package (http) and
thus have access to unexported method http.Request.write (for example
here:
https://github.com/golang/go/blob/master/src/net/http/transport.go#L1754)
Unfortunately, the only solution for my specific purpose is to mutate the
original request and set those headers inside RoundTripperFunc.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/elazarl/goproxy/issues/220#issuecomment-298921006,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAP4ovgxjBIFg1JpklLeww0Ikdye77zdks5r2InAgaJpZM4NNgAn
.

Which commit do you refer to?

the same problem


Can't use with react

I have tried multiple things but still can't get it to work with react. It would be nice if you can add a few examples in repo showing working examples in different cases.

Work fine for me !
Simply do this in App.js
import { loadProgressBar } from 'axios-progress-bar';
import 'axios-progress-bar/dist/nprogress.css';

class App extends Component {
    componentDidMount() {
          loadProgressBar();
    }
}

@vaibhavhrt What is your specific problem?  Using an axios instance and the default config has worked well for me:
import axios from 'axios';
import { loadProgressBar } from 'axios-progress-bar'

const api = () => {
    const httpConfig = {
        baseURL: "localhost:12345"
    };

    const instance = axios.create(httpConfig);
    loadProgressBar(null, instance);

    return instance;
};

export default api;

Not sure what I'm doing wrong, But the progress bar loads only to 1/4th of the screen and disappears in my case.

The progressbar is not showing to me also. I have loaded with an instance, the css code is loaded on  and js is called after axios instance.create.
Is just that? a css code and js call? who is creating the div/positioning?
Any ideas?


Create educapardubice.txt

@jirisykora83 First stage of verification passed, official domain is educapardubice.cz as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@jirisykora83 Thank you for your patience while waiting for a review and processing your request. Pull request merged.


repetition of text in footer

I want to fix this issue.
Please assign this issue to me under gssoc-extd and hacktoberfest.

@Kajalmehta29 not required


[WIP] Update toolkit version 10.2.89

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Resolves #23

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

@conda-forge-admin, please rerender

Any progress oon this?

Friendly bump here to see if this PR is still of interest to some.

FWIW This feedstock should probably be archived at this point

What package are we supposed to use to build against cuda on conda forge then?

see the nvcc package and the cudatoolkit package

Neither of them installs a working NVCC or headers. This is the package that does.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Documentation on acceptable licenses can be found here.

Any progress?
I also need CUDA 10.2

@xmnlab should we close this PR now as we have already moved to CUDA 11 on the main branch?

I am closing this PR for now. if there is any need to have a build for 10.X series, let me know and I will create a new branch for that.  thanks!


GOLANG TOUR IN OTHER LANGUAGES (DOES NOT WORK ! ) - DIFERENCES BETWEN GOOGLE AND MICROSOFT FORUM

IN MICROSOFT FORUM PEOPLE COLABORATE WITH SOLUTIONS IN ALL KIND OF WAYS
IN GOOGLE ... "GURUS" CLOSE ISSUE FIRST - DRINK COFFE AND PLAY GAMES AT HOME
GOOD LUCK ALPHABET !

Just so you know: I don't work for Google or have any relation with them.
If you came anywhere near anything I was a moderator of with this dickish attitude I'd close and delete all your post immediately without response.

OHHHH !!!! REALLY ????

AFAIK, This is not forum. This is bug tracker. If go team remaining the issues with opening status, we will not be able to manage bugs. So they close invalid issues, duplicate issues. If you have opinion that the issue is not duplicated or invalid, you should reopen the issue and explain why you think not so.

The translated Go tour is not maintained by this project,
and there is already an open issue for the translated tour
project. I don't see there is any problem closing the issue.


fix(python): full overwrite data with request_options

🧭 What and Why
🎟 JIRA Ticket: https://algolia.atlassian.net/browse/DI-1784
Changes included:
we should fully overwrite the data when the user provide it in the request_options

Yep, matches the other clients!

Thanks for catching it!

btw I don't think we assert this somewhere


Expose editor.suggestSelection to extension for customization

Currently VSCode doesn't expose editor.suggestSelection to extension for customization. This limits specific code extensions' ability to customize the default selection in the completion item list. If an extension needs to rank the completion list (for instance based on a ML model) the extension wants to set the default selection to point to the top ranked item, unless the user wants to override the behavior.

How's about first, 'lastUsedanddynamic` options. In the latter case the selection is specified by the extension. It may not necessarily be the first item.

/duplicate of #35551


Can't add custom attr on collection_widget block

According to your twig doc header:
# If you are already using a form theme, you can use both by using:
# {%
#   form_theme myForm
#       'FuzAppBundle::my-form-theme.html.twig'
#       'FuzAppBundle::jquery.collection.html.twig'
#       ...
# %}

So I did from config:
twig:
    debug:            '%kernel.debug%'
    strict_variables: '%kernel.debug%'
    form_themes:
        - 'form_generic_fields.html.twig'
        - 'form_fields.html.twig'
        - 'jquery.collection.html.twig'

And in form_generic_fields.html.twig, I want to always add collection-type class like this:
{% block collection_widget -%}
    {% set attr = attr|merge({class: (attr.class|default('') ~ ' collection-type')|trim}) %}
    {{ parent() }}
{%- endblock collection_widget %}

The problem is this as no effect at all because your template also override this block and don't have any parent.
Is that a solvable issue or should I do it with another way?

I found another way. I put all here so you can add it on documentation if you want to.
Create a CollectionTypeExtension class:
<?php

namespace AppBundle\Form\Extension;

use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;

/**
 * @author Sullivan Senechal<EMAIL_ADDRESS> */
final class CollectionTypeExtension extends AbstractTypeExtension
{
    /**
     * {@inheritdoc}
     */
    public function buildView(FormView $view, FormInterface $form, array $options)
    {
        // Here we add the collection-type class
        $view->vars['attr']['class'] = array_key_exists('class', $view->vars['attr'])
            ? $view->vars['attr']['class'].' collection-type'
            : 'collection-type';
    }

    /**
     * {@inheritdoc}
     */
    public function getExtendedType()
    {
        return CollectionType::class;
    }
}

And enable the service:
form.extension.collection:
    class: AppBundle\Form\Extension\CollectionTypeExtension
    tags:
        - { name: form.type_extension, extended_type: Symfony\Component\Form\Extension\Core\Type\CollectionType }

That's all! :+1:


Adding docker flavor

Dockerfile
docker file to make development and deployment a breeze

docker-compose.yml for development
docker-compose up -d

docker-compose.prod.yml for deployment
docker stack deploy --compose-file docker-compose.prod.yml
es-django-example

updated settings.py to work with env vars and read swarm secrets
using docker secrets to manage password for accessing elastic cloud
instance

Relevant for discussion at https://github.com/elastic/infra/issues/452


PutOfferVariantRequest - documentation

Hello
How to create instance of this class: PutOfferVariantRequest ?
I have some details wrong and it does not work.
link to file: PutOfferVariantRequest.php

Hi @RG-1
I suspect that you have a problem with second argument. I'll use short example to make things clear:
use Imper86\AllegroApi\Rest\Model\Collection\StringCollection;
use Imper86\AllegroApi\Rest\Model\Request\OfferVariants\ParameterModel\Offer;
use Imper86\AllegroApi\Rest\Model\Request\OfferVariants\ParameterModel\OfferCollection;
use Imper86\AllegroApi\Rest\Model\Request\OfferVariants\PutOfferVariantRequest;

$offer1 = new Offer('3124213213', 'collorpattern_1');
$offer2 = new Offer('3124213312', 'collorpattern_1');

$offerCollection = new OfferCollection();
$offerCollection->add($offer1);
$offerCollection->add($offer2);

$request = new PutOfferVariantRequest(
    $variantSetUuid, //generate new or use existing one
    $offerCollection,
    'Name of variant set',
    true, //use color pattern or not
    new StringCollection(['paramid'])
);

After creatings request object like that you can just use it in sendRequest method in RestClient object.

Now it works perfectly.
Thank you very much for your help.
:-)

There is small typo in your example: offers must have unique values of parameters.
$offer1 = new Offer('3124213213', 'collorpattern_1'); // e.g. red
$offer2 = new Offer('3124213312', 'collorpattern_2'); // e.g. blue

@RG-1 of course it depends on what you want to do :). If you have the same color pattern on two offers you can still split them with parameter you give in the last argument of PutOfferVariantRequest constructor. Most standard use case for this is clothes/shoes - you have one model with different sizes :)


Integrated Terminal crashes with Exit code: 1

VSCode Version: Code 1.6.1 (9e4e44c19e393803e2b05fe2323cf4ed7e36880e, 2016-10-13T16:21:53.542Z)
OS Version: Windows_NT ia32 10.0.14393
Extensions: dcr30.lualinter-1.0.3, donjayamanne.python-0.5.0, fduman.vscode-nodemcu-1.0.5, formulahendry.terminal-0.0.5, keyring.Lua-0.0.8, ms-vscode.csharp-1.4.1, ms-vscode.PowerShell-0.7.2, robertohuertasm.vscode-icons-3.0.5

Steps to Reproduce:

Press Ctrl + ö in a german version of VS Code

Is there a keyboard shortcut for that combination?

Can you show a screenshot or something of what this looks like? Does it still happen if you launch with --disable-extensions?

I believe this is already fixed, can you see if you can reproduce in the Insiders build?

Tyriar is right, fixed in 1.7 of the insider build

FYI this is a duplicate of https://github.com/Microsoft/vscode/issues/7727


Updates for new tool versions.

Black and npm-groovy-lint have newer versions available. Using those newer versions cause issues with tool plugin performance, unit tests and formatting.

Install lark as test dependency.
Run groovylint tool against all source files at once instead of one at a time.
Handle parsing issues when CodeNarcServer errors are present in npm-groovy-lint output.
Add groovylint unit test for potential errors in tool output.
Black formatting all source code with v24.1.1.

The only file that really changed is statick/statick/statick_tool/plugins/tool/groovylint_tool_plugin.py. The rest are black formatting. I would be happy to make the black changes separately, but that PR would not pass CI due to failing unit tests. Fixing unit tests on their own would not pass CI due to failing black (see #494). This merged version passes CI. Let me know if you want separate ones if this is difficult to read so many changes at once.

Fixes #493.

weirdly the codecov checks show 100% coverage, but inside the PR diff I see a couple instances of missed lines in the groovylint_tool_plugin:
https://github.com/sscpac/statick/pull/495/files#diff-9af53fec4a41eef21a2d36b197a0b0ff13c6e0de6ce177c363adc6426b747b55R57

Can you update the changelog? include the versions of black and groovylint that changed.

This branch worked on my system with npm-groovy-lint v11.1.1 installed.

I have always had issues with codecov reporting. My sense is the tool reports on the first set of unit tests that are uploaded then does not always update the PR comment after other, related unit test results are uploaded. The website version always has the reports merged, but the PR comments are often wrong (but intermittently they get it right).


git push:!	refs/heads/master:refs/heads/master	[remote rejected] (unable to migrate objects to permanent storage

Gogs version (or commit ref):  <IP_ADDRESS>9
Git version: 2.17.0
Operating system: centos7
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gogs.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist (usually found in log/gogs.log):nothing log

Description
when use git push,always show:
!refs/heads/master:refs/heads/master	[remote rejected] (unable to migrate objects to permanent storage
and push failed, Is anyone kown what happend?thx

I try to update the permission of repository,chmod o+w project.git -R,then push success,but post-receive hook not run because no permission,very confused,I use git user  for running gogs,no question before.

Maybe helpful: https://discuss.gogs.io/t/hooks-was-ignored-because-its-not-set-as-executable/1866


[Bug]: How to rorate orientation when streaming

Version
v1.2.0
Which operating systems have you used?

[X] Android
[X] iOS

Environment that reproduces the issue
Both
Is it reproducible in the example application?
Not tested
RTMP Server
my local
Reproduction steps

init and start startStreaming
Rotate the phone from portrait to landscape or vice versa

Expected result
The frame changes according to the device's rotation direction
Actual result
In live stream video result, the frame does not change at all, there is even a slight pause when the phone direction is changed
Additional context
Hello,
During the process of rotating the device from portrait to landscape, or landscape to portrait, the transmission to the system begins; the image doesn't change according to my rotation direction.
If I rotate the device before setting up and starting the streaming session, the frame image flows back to the server with the original orientation
I tried stopping and restarting the streaming session at rotation time, but it crashed my app and the image remained the same.
Please help me with a solution to do this device rotation during streaming!
Thanks
Relevant logs output
No response

Most players/decoders/container do not handle a resolution change. Resolution change implies a change in the resolution for going from landscape to portrait and vice versa. Can your decoding pipeline handle that?
Do you turn your phone when recording with the default camera?

I don't want to say how the interface displays on my application will change when I rotate the device, but what I noticed is that when I rotate the device, the image streamed to the server does not change direction. Does your library do anything when I rotate?
Regards,


[Android] enable/disable error handling server conf

they asked to wait till next week for this :/ to test

still content is the star seems like

oki doki, we will wait then 🫡


fix (react-native-web-example): add tui to turbo config

Description

Adding ui to the turbo.json allows to have interactive tasks

https://github.com/vercel/turborepo/issues/1235#issuecomment-2436930436
Testing Instructions

Create a new project npx create-turbo@latest -e with-react-native-web
Run pnpm run dev
It opens a new terminal UI

Allow CI Workflow Run

[ ] approve CI run for commit: 8ee472e41357ffbbb19b36dd2ca5802f993d18cd

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

Allow CI Workflow Run

[ ] approve CI run for commit: 8ee472e41357ffbbb19b36dd2ca5802f993d18cd

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer


(ai): mock generator for rssi to coord

[ ] Three gateways locations given
[ ] Sensor randomized within triangle
[ ] Get distance
[ ] Convert to RSSI
[ ] Train
[ ] Predict


Stepped reservation process

WIP at this point, but to give you a quick idea of what I was thinking.
Although its now multi-step, the benefits of this are we now show the right dates for each location, and the right times for the date selected.
If you're happy with the approach, then next I would be working on styling each of the steps (e.g. location list, calendar/date selection).
I had also wondered if it would be better to move reservations to an URL like {location_slug}/reservations like menus is?

An alternative would be to switch to a calendar view similar to how Resdiary handle it. Changing the guest number, time etc would update the calendar dates through a JS request.

having thought it over some more I think the calendar view is the way to do, its much more user friendly.
So here's an update with that approach in place.
Some thoughts at this point:

Do we need the time picker step - I left it in but we could easily incorporate the times into the drop down on the calendar step.
I think it would be great to bring this in under the restaurant urls, as it cuts out the first step.

Let me know what you think, I'll hold off doing any more until you come back to me.

Sorry somehow lost this PR in my notifications.

If you're happy with the approach, then next I would be working on styling each of the steps (e.g. location list, calendar/date selection).

Yep, go-ahead!

I had also wondered if it would be better to move reservations to an URL like {location_slug}/reservations like menus is?

Agreed

Do we need the time picker step - I left it in but we could easily incorporate the times into the drop down on the calendar step.

Love the idea as long as the user experience on mobile is smooth.

Great, I'll work on it this week.
Whats the best approach to enable the {location_slug}/reservations url?

Ok, I've pushed an update here and its working, though testing and refinements will no doubt be needed. Its working well on mobile and feels more intuitive (to me at least).
The permalink on the theme reservation layout needs changed to permalink: /:location?local/reservation for this to function.
If you notice any issues or want any changes let me know.

@sampoyigi just in case you've missed this - let me know your thoughts.

feels more intuitive

1000%, love the layout.

Whats the best approach to enable the {location_slug}/reservations URL?

How about add a location select box above the reserve a table form and then reload the page based on the selected location. For example, when Location 1 is selected the page redirects to /reservation/location-1 and renders the picker_form

So I made it work at {slug}/reservations by amending the url in the reservation partial, I referenced it in one of the commments.
This feels natural to me, that way you would choose a location from the main locations list and there would be a link in the Nav to reserve just like menus?

Yea I get that with using the main local search box, but that's more for the order and we also want to use to be able to choose a different restaurant from the same page if they change their mind instead of navigating back to the homepage.

Ok, location selection is back.
Do we need a 'loading' sort of overlay when you change option to indicate something has happened? If so is there a style for these anywhere?

Sorry, lost track of this one. We could instead disable inputs when loading or use something similar on the checkout page when choosing payment.

You and me both :)
I've added a progress indicator over the top when loading - let me know if you think thats not enough.

Ok this should be timeslots back and working. As I had amended the timeslots function i added a new one (reducedTimeslots). I've also changed up the HTML a bit to be a button rather than a link. Do you not think all the forms should POST rather than GET? I didn't want to change that in case you had a reason for it.
My only other thought is the location list should be filtered by those that accept reservations - I had that in but you removed it - do you want all locations to be displayed even if they dont accept reservations?

The GET method is for SEO and to make the booking form sharable. Got the idea from OpenTable.
Erm can't remember removing the code, must have thought it was for something else. Feel free to add it back.

Ok the location filtering is back in now.
Let me know what you think.

Thank you, I'll test and let you know.

How can I test all those feature? How can I setup an environment to start doing pull requests? Thanks guys

You can download the branch from github as a zip.
You can also set up git on your computer and then switch to branches which pulls down the code for that branch.
https://github.com/yui/yui3/wiki/Set-Up-Your-Git-Environment
Might help

On 8 Nov 2020, at 12:58, BreakSecurity<EMAIL_ADDRESS>wrote:

How can I test all those feature? How can I setup an environment to start doing pull requests? Thanks guys
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

I think we're done here?

Yep I think it’s good to merge

@ryanmitchell Much appreciation for your contributions ❤


KAFKA-13785: docs for emit final

Add Java docs for emit final
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Thanks for the PR. Merged to trunk.


Feature request: make page title an optional parameter to BarcodeScanner

@tashi146 simple feature request to make page title an optional parameter to BarcodeScanner(). I can do a pull request if you want, but it's a really trivial change, might be more efficient if you make the change.  I'm only using web but it probably applies to other platforms too.
For web:
In https://github.com/CodingWithTashi/simple_barcode_scanner/blob/main/lib/screens/web.dart add a new param to BarcodeScanner to allow override of the default page title.
just add
final String? pageTitle;

and then
appBar: AppBar(
        title: Text(pageTitle?? kScanPageTitle),
      ),

Fixed: https://github.com/CodingWithTashi/simple_barcode_scanner/commit/2249102e5c6c649c8b88fc4f7e0f1d99c038e6ec


while reading data from sqlite all the column names are coming in lower case in ionic app (IOS).

I am trying to execute select query to read data from sqlite tables. but while reading data all the column names are coming in lower case in ios but its coming pascal case in android.
createtablequery = 'CREATE TABLE IF NOT EXISTS TestTable (ID varchar(255) NOT NULL PRIMARY KEY, FirstName varchar(255), LastName varchar(255),Address varchar(255),MobileNumber varchar(255));'
query = select * from TestTable ;
this.sqlite.query(query, values);
query result- (ios)
id, firstname, lastname, address, mobilenumber
query result- (android)
ID, FirstName, LastName, Address, MobileNumber
Please help me out to get same column name from sqlite table.
Thanks in advance

@NeeteshSonkiya First thanks for using the plugin, Sqlite3 Swift doesn't make the differences between lastname, LastName, lastName so even if the column is created with LastName if you look at the database with an external tool like DBBrowser you can see LastName when you query like
SELECT LastName from TestTable
or
SELECT lastname from testtable
or
SELECT lastName from testTable
it is always returning the same .
To the contrary SQLite Java is case sensitive.
To get the same results from both Swift and Java the Swift query will have to parse all the resulting row and modify the column name when required meaning slowing down the whole process even for those who never use Capitalization letter.
So my answer will be to use a standard rules for naming which works for all the devices you want your application to work with meaning No Capitalisation letters
Hope this clarify, tell me if my answer suit you

@NeeteshSonkiya This has been fixed in release 2.1.0, you can now use Capitalization characters in field name.


Setup for sourceMap support for dev environment

I created a new PR with v4 merged into my branch
This is WIP

I created this merge request to get feedback on my approach. Let me know if I missed anything.
As discussed in this issue, the source map support will only be available for dev environment for two reasons:

CSS sourcemap will greatly increase the bundle size of the app
SpeedyTag.insertRule doesn't insert comment, sourceMap needs to live inside a comment

Changes need to be made to both the styled-components repo and the babel-plugin-styled-components repo

We need to render the styles into style tag
Each style tag can only have one sourceMap, because styles are dynamically generated and added to the style tag, we need to make sure one style tag contains one rule.
The only source mapping we can do is to map the begining of a rule to the beginng of the styled-component code. We can't do mapping for each css property.

In this repo (with this merge request), I added support to pass sourceMap into styled component with withConfig
styled.div.withConfig({
    sourceMap: `/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9yaWdpbmFsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBIiwiZmlsZSI6ImRpc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGxpbmUgd2lsbCBiZSBza2lwcGVkXG5JIHdpbGwgc2V0IGNzcyBjbGFzcyBoZXJlXG5JIHdpbGwgc2V0IGNvbG9yIGhlcmVcbiJdfQ== */`
})`
    color: red
`

This should generate a style tag that contains rules only for this component
<style>
/* sc-component-id: sc-a*/
.sc-a {
  color: red;
} /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9yaWdpbmFsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBIiwiZmlsZSI6ImRpc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGxpbmUgd2lsbCBiZSBza2lwcGVkXG5JIHdpbGwgc2V0IGNzcyBjbGFzcyBoZXJlXG5JIHdpbGwgc2V0IGNvbG9yIGhlcmVcbiJdfQ== */
</style>

The second part of the work would be done in babel plugin repo to generate those sourceMap comment.
Because this uses withConfig, looks like injectGlobal and keyframe don't support it.
Edit: Since we are switching to createGlobalStyle, I will take a look at if I can add sourcemap to it

I published an experimental version of this under styled-components@sourcemap so you can test it in conjunction with the changes you make to the babel plugin. I'd prefer to not merge this until both are done to make sure no further changes are needed on this side.

Got some progress:

It's not complete yet. Currently, server rendered style doesn't have sourcemap because of a recent change to improve rehydration. I will take a look at it in the next few days.
Also the bundle size failed CI again.

Amazing! 😍😍😍 Can't wait to land this :clap:

Also the bundle size failed CI again.

Just make sure all the code is inside NODE_ENV !== 'production' checks and it should be omitted

Should be ready for code review. The babel plugin PR is at https://github.com/styled-components/babel-plugin-styled-components/pull/180

Looks like I haven't handled some edge cases. I will work on them

I tested it in Chrome, Firefox and Safari. Looks like only Chrome works. Emotion's sourcemap work with Chrome and Firefox, but not Safari either.
Chrome is very lenient with the mapping in sourcemap. For a generated style tag like the following

Seems like as long as there is a sourceMappingURL comment in the style tag, Chrome will use the sourcemap even if the position doesn't quite match.
In the screenshot, I have a simple component
const Container = styled.div`
  background: ${props => props.background};
  color: white;
`;

In the sourcemap comment, I mapped the first line, first character (start of the comment /* sc-component ...) to the source code. Chrome was able to map .exOHhY class to it.
When the prop changes, styled-components will add a new class in the same style tag

Chrome was able to use the same sourcemap for the new class (qrATe) as well.
While Firefox is stricter with sourcemap mapping. The mapping has to match the exact position of the classname in the style tag. This imposes two issues:

new classes for the same component will not get mapping if we append it at the end of the previous class (emotion solve this by creating a new tag for the new class)
looks like Firefox doesn't respect line break in a textnode, so a style

/* sc-component-id: src__Container-on3mkn-0 */
.exOHhy{background: pink;}

becomes /* sc-component-id: src__Container-on3mkn-0 */ .exOHhy{background: pink;}
I would need to calculate the length of the marker (/* sc-component-id: src__Container-on3mkn-0 */) to know the starting position of .exOHhy
I will think about the solution. If anybody has any question or suggestion, let me know.

Closing since this has gone very stale for now. I don't think there's been a big need or shout from CSS-in-JS users, calling this a must-have anymore, as browser's CSS devtools get better. But we'll observe and see what happens to this.


SINGA-214 Add LMDBReader and LMDBWriter for LMDB

Add LMDBReader and LMDBWriter for LMDB. The classes are modified from db_lmdb.cpp and db_lmdb.hpp in Caffe.
Need to swith "USE_LMDB" ON when using these two classes.
Todo: LMDB does not support checking empty and duplicate keys, may support by us later.

The Reader class may need a SeekToFirst() function for repeating the reading over the dataset multiple times.
Or adding a flag to the read function, e.g., auto_repeat, if true, then seek to first automatically when reaching the file end.


Fix metrics nomenclature

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

If this PR will release a new chart version please make sure to also uncomment the following line:

/kind chart-release

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area falco-chart

/area falco-exporter-chart

/area falcosidekick-chart

/area falco-talon-chart

/area event-generator-chart

/area k8s-metacollector-chart

What this PR does / why we need it:
It is a follow-up of https://github.com/falcosecurity/falcosidekick/pull/995
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
I've already fixed the corresponding labels in GitHub
Checklist

[ ] Chart Version bumped
Variables are documented in the README.md
[ ] CHANGELOG.md updated

Welcome @fcollonval! It looks like this is your first PR to falcosecurity/charts 🎉

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: fcollonval
Once this PR has been reviewed and has the lgtm label, please assign leogr for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.
:memo: Please follow instructions in the contributing guide to update your commits with the DCO
Full details of the Developer Certificate of Origin can be found at developercertificate.org.
The list of commits missing DCO signoff:

8f82a89 Add changelog entry

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.
:memo: Please follow instructions in the contributing guide to update your commits with the DCO
Full details of the Developer Certificate of Origin can be found at developercertificate.org.
The list of commits missing DCO signoff:

8f82a89 Add changelog entry
6acad6a Add future version in change

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: fcollonval
Once this PR has been reviewed and has the lgtm label, please ask for approval from issif. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: fcollonval, Issif
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Issif]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: fa46361d9752b7232c4ef7ed4fea14b950ad46a0


Fixed distance calculation.

Distance is calculated using pythagoras sqrt(x^2 + y^2)

Well spotted, that is indeed a silly mistake. I'll include this fix with some test case improvements soon in a separate patch.
Thanks for letting me know!

Fixed in 31f307602e89b7aee00cf3d5a5b6c4014f254b01


Update brand.py

Add new 21 items into brand category

Codecov Report

Merging #51 into main will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##              main       #51    +/-   ##
==========================================
  Coverage   100.00%   100.00%
==========================================
  Files           20        66    +46
  Lines          223       599   +376
==========================================
+ Hits           223       599   +376

Impacted Files
Coverage Δ

qual_id/categories/adjective.py
100.00% <100.00%> (ø)

qual_id/categories/animal.py
100.00% <100.00%> (ø)

qual_id/categories/book.py
100.00% <100.00%> (ø)

qual_id/categories/brand.py
100.00% <100.00%> (ø)

qual_id/categories/city.py
100.00% <100.00%> (ø)

qual_id/categories/clothing.py
100.00% <100.00%> (ø)

qual_id/categories/color.py
100.00% <100.00%> (ø)

qual_id/categories/constellation.py
100.00% <100.00%> (ø)

qual_id/categories/country.py
100.00% <100.00%> (ø)

qual_id/categories/drink.py
100.00% <100.00%> (ø)

... and 100 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 8e8e8a7...58cb650. Read the comment docs.

Thanks for your contribution @DemetriusStorm 🙂


API proposal for Azure provisioning

Issue to resolve
When writing the component for WebPubSub, everytime I locally run my sample project xxx.AppHost with AddAzureWebPubSub it always provisions a new Azure service, and after 5 times it hits our service free resource limitation 5. It makes me wondering what is the common workflow when a customer uses aspire with Azure services. IMHO, it follows these steps:

Add AppHost that helps provisioning the service
Add web app that consumes the service
Local debug to see if the workflow works -> aspire provisions the service, web app successfully consumes the service, and web app runs successfully
There might be some issues found in web app: update the application code and rerun the code
Aspire provisions another service for the web app to consume

Step 5 sounds not necessary and  if customer reruns for application code updates, an API like GetOrAdd... could help.
API proposal
I am wondering if this is a common need and if we could have some general patterns for Azure service provisioning, with APIs like:
AddAzure{Service}("name");
GetOrAddAzure{Service}("name");
AddOrUpdateAzure{Service}("name");
TryGetAzure{Service}("name");

It shouldn't be provisioning a new resource each time. When you run the apphost for the first time it should be storing connection information for the resource in secrets.json.
The only way it would generate a new resource each time is if you were generating a custom resource name each time or where deploying to a new resource group each time.
Are all the resources deployed into the same user group?

I'd like to figure out how to address the "use a custom resource but not using a connection string to see if this is a valuable feature in general". I've been playing with this scenario, my team has a pre-provisioned keyvault that I'm using to get secrets and I want to point to it in the apphost:
var builder = DistributedApplication.CreateBuilder(args);

var kv = builder.AddExistingKeyVault("kv", "vault");

builder.AddProject<Projects.WebApplication1>("api")
       .WithReference(kv)
       .WithExternalHttpEndpoints();

builder.Build().Run();

Here's the implementation:
public static class KeyVaultExtensions
{
    public static IResourceBuilder<AzureKeyVaultResource> AddExistingKeyVault(this IDistributedApplicationBuilder builder, string name, string vaultName)
    {
        AzureKeyVaultResource? resource = null;

        resource = new AzureKeyVaultResource(name, c =>
        {
            // Add the principal id parameter
            // c.AddParameter(c.PrincipalIdParameter);

            // Get the existing key vault resource based on the name
            var kv = KeyVault.FromExisting(c, $"'{vaultName}'");

            // Do role assignments
            // kv.AssignRole(RoleDefinition.KeyVaultAdministrator);

            // This name is important because it maps to AzureKeyVaultResource.VaultUri.Name
            kv.AddOutput(resource!.VaultUri.Name, k => k.Properties.VaultUri);
        });

        return builder.AddResource(resource)
                      // Tell the system that we want the principal id to produce role assignments
                      // .WithParameter(AzureBicepResource.KnownParameters.PrincipalId)
                      .WithManifestPublishingCallback(resource.WriteToManifest);
    }
}

The idea is that you just need the resource name, and we will "do the rest". It's unclear if we should do role assignments as well. Maybe it should opt-in.
PS: This feels like a dupe of https://github.com/dotnet/aspire/issues/2395

Ah I see, why I have the feeling of always provisioning is that I work from several different devices, a new device runs the same code and start a new provisioning.

It shouldn't be provisioning a new resource each time. When you run the apphost for the first time it should be storing connection information for the resource in secrets.json.
The only way it would generate a new resource each time is if you were generating a custom resource name each time or where deploying to a new resource group each time.
Are all the resources deployed into the same user group?

Dupe of https://github.com/dotnet/aspire/issues/2395