unclear instruction

For someone either completely new or returning after several years (decades?) there was a step that was unclear on this page, namely how to access the manifest. The prior steps clearly identified which files to modify, but for the final code change there was no file with "manifest" in the name, there were many xml files in the project folder, and there was no readily apparent dropdown in the developer menus.

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

ID: 9c4ddde7-f1fd-44ba-fba1-0ae9d0131df7
Version Independent ID: d946ffe6-f29f-1563-b679-121090ba60a1
Content: Build your first Excel task pane add-in - Office Add-ins
Content Source: docs/quickstarts/excel-quickstart-jquery.md
Product: excel
Technology: add-ins
GitHub Login: @o365devx
Microsoft Alias: o365devx

also googling about manifests talked about adding a new (manifest) file, but nothing about identifying an existing project file (a single clue about project.manifest, but no such file existed in the folder)

also googling about manifests talked about adding a new (manifest) file, but nothing about identifying an existing project file (a single clue about project.manifest, but no such file existed in the folder)

@lousilver Thanks for bringing this to our attention!
@alison-mk Can you take a look?
Thanks.

@lousilver Thanks for bringing this to our attention!
@alison-mk Can you take a look?
Thanks.

I think you can tag me on this, I believe I was the last to touch these files.

I think you can tag me on this, I believe I was the last to touch these files.

Hi @lousilver, thank you for taking the time to submit feedback! With PR #2432, I updated this article based on your suggestion and clarified how to access the manifest XML file in Visual Studio 2019.
If you used the default name for your add-in project, then your manifest file can be found in Solution Explorer, in the ExcelWebAddIn1 > ExcelWebAddIn1Manifest directory, and the manifest will be titled ExcelWebAddIn1.xml. I will close this issue now, but please feel free to let us know if you have any additional questions. Cheers, -Alison
@mscharlock Let me know if you have any suggestions on the PR that addresses this (#2432)!

Hi @lousilver, thank you for taking the time to submit feedback! With PR #2432, I updated this article based on your suggestion and clarified how to access the manifest XML file in Visual Studio 2019.
If you used the default name for your add-in project, then your manifest file can be found in Solution Explorer, in the ExcelWebAddIn1 > ExcelWebAddIn1Manifest directory, and the manifest will be titled ExcelWebAddIn1.xml. I will close this issue now, but please feel free to let us know if you have any additional questions. Cheers, -Alison
@mscharlock Let me know if you have any suggestions on the PR that addresses this (#2432)!


[esl-carousel] replace default arrow implementation with  a clip-path

Using clip-path to render arrows is shorter. In this case, carousel consumers can also easily change the color of the arrows depending on the carousel's state.
Originally posted by @dshovchko in https://github.com/exadel-inc/esl/pull/2185#discussion_r1559277511

:tada: This issue has been resolved in version 5.0.0-beta.15 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Minikube tutorial

Tutorial starting from installing minikube and Kubeflow, compiling a pipeline example, uploading the complied application to Pipeline UI, and executing the uploaded application.
(ref: issue 1662)

This change is

/assign @sarahmaddox

@sarahmaddox
Questions:

do we need to add doc-sprint tag to this PR?
the tutorial is e2e, not sure https://www.kubeflow.org/docs/started/workstation/ is a good location. If not, where is the best location?

Thanks @janeman98! I've created a new issue https://github.com/kubeflow/website/issues/1751 to track this work.
Answering your questions:

do we need to add doc-sprint tag to this PR?

No, because we started this work after the doc sprint was finished.

the tutorial is e2e, not sure https://www.kubeflow.org/docs/started/workstation/ is a good location. If not, where is the best location?

Let's keep the tutorial at that location for now, because its primary purpose is to help people get Kubeflow running on Minikube. The end-to-end aspect is to help people ensure their installation is working. It is true, however, that we need to re-think the left-hand nav in general. There's a plan to focus on this at the next Kubeflow community summit, with perhaps a card-sorting exercise and discussions on the information architecture of the site as a whole. Stay tuned!
I'll review this PR as soon as I can. Things are a little hectic right now. (Though, when are they not? ;) )

@janeman98 thanks for the tutorial. I was able to get this to work, but had to disable cert-manager webhook kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=true .

Thanks @subsid for trying this out even before it is online officially in Kubeflow website!!
To improve this tutorial, I am planning to add a "Troubleshooting" section. Would you mind let me know which step and what error you encountered if you don't  "disable cert-manager webhook"?

sure! The error happens when running kfctl apply -V -f ${CONFIG_URI}
The script loops with the following warning
validatingwebhookconfiguration.admissionregistration.k8s.io/cert-manager-webhook created
WARN[0006] Encountered error applying application cert-manager:  (kubeflow.error): Code 500 with message: Apply.Run  Error error when creating "/tmp/kout477603617": Internal error occurred: failed calling webhook "webhook.cert-manager.io": the server could not find the requested resource  filename="kustomize/kustomize.go:202"
WARN[0006] Will retry in 3 seconds.                      filename="kustomize/kustomize.go:203"

Full output

Thanks @subsid !!
This will be a good tip/hint for those who are hitting the same problem. Hopefully, this tutorial can be online soon.

@janeman98 Sorry for the delay. Just letting you know I haven't forgotten this PR. Things are a little hectic at the moment.

Preview: https://deploy-preview-1743--competent-brattain-de2d6d.netlify.com/docs/started/workstation/minikube-linux/

@sarahmaddox
Good news!
I don't see any progress on kubeflow/examples#748., but I find another MNIST e2e on-prem notebook which cover distributed training, building image, model training, and deployment. And the best part is: this notebook run properly in Kubeflow installation in minikube!
I have updated the kubectl, minikube, kubeflow version which work well with this notebook (since it require Kubeflow Fairing, KFServing, etc.)
Can you please review? Thanks!

@janeman98 Thanks for the updates! I started the review (see comments) but now I notice that the PR seems to be still showing the basic pipeline rather than the notebook you mentioned. Please let me know if I've missed something. :)

@sarahmaddox
The basic pipeline stuff illustrate how to
compile a pipeline example, upload the complied application to Pipeline UI, and execute the uploaded application
The goal is for user to get some idea how to set up an env and try out a sample.
Or I should remove this stuff?
Another option is to keep this stuff, but in addition, I add a section on how to run the MNIST on-prem notebook. Initially, I thought the purpose of the notebook is to verify the kubeflow in minikube work.
What do you think?

@janeman98 Ah, I see! I think the problem is that the basic pipeline example doesn't do any model training or serving, so it therefore doesn't verify for the user that their deployment is working. I think you should remove the pipelines example and replace it with the notebook.

@sarahmaddox
Thanks for your review. I have removed the pipelines example and replace it with the MNIST on-prem notebook. Please feel free to let me know if further change is needed.

/assign @abhi-g

Thanks @janeman98. This is fantastic.
/lgtm
/approve

Awesome work @janeman98!

Thanks @sarahmaddox  and @abhi-g !
@sarahmaddox
Should we close issue #1751 ?

fixes #1751

Thanks @sarahmaddox and @abhi-g !


Sphinx version

After merging PR #123, sphinx (1.2.3) gave me an error when building the doc:
sphinx.errors.ThemeError: no theme named 'classic' found (missing theme.conf?)
I fixed it by upgrading my sphinx to 1.4.4.
I can see the same problem on the nightly build log. Maybe a sphinx upgrade is necessary on the server.

Actually, it is event a FBFS on debian 8
sphinx.errors.ThemeError: no theme named 'classic' found (missing theme.conf?)
debian/rules:25: recipe for target 'override_dh_auto_build' failed
make[1]: *** [override_dh_auto_build] Error 1
make[1]: Leaving directory '/home/kieffer/workspace/silx/package/silx-0.2.0a0'
debian/rules:13: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
Build failed, please investigate ...


XO Editor don't work on touch screens

currently , touch events are not enabled in XO Editor.

You're right. Good shot.

Fixed in https://github.com/llaske/sugarizer/pull/589


Requesting latest documentation for ModuleClient

Hi, I wanted to look more into ModuleClient but have been struggling to find useful documentation. The tutorial could use having a link to such documentation to better understand what can and can't be done with ModuleClient, as well as understanding the difference between something like ModuleClient and DeviceClient. Thanks

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

ID: 181d5562-f8d7-9c59-85ea-09efbe397f3e
Version Independent ID: dbedd952-a050-286e-c951-4529ec8e87b8
Content: Azure IoT Edge C# tutorial
Content Source: articles/iot-edge/tutorial-csharp-module.md
Service: iot-edge
GitHub Login: @kgremban
Microsoft Alias: kgremban

@Cherisle Thanks for the feedback. We are actively investigating and will get back to you soon.

Update: I'm having trouble getting the ModuleClient to receive messages sent to the device hub via DeviceClient from a different module within the same EdgeSolution project. My assumption from testing leads me to believe it has to do with using the wrong connection strings. I have two questions:
When using ModuleClient's CreateFromEnvironmentAsync, how do I know it is fetching the correct connection string? I have tried to name a connection string value within the ".env" file but it doesn't seem to be detected properly.
This led me to attempt using ModuleClient's CreateFromConnectionString; however, when I use this, I don't know which connection string (including deviceID and moduleID) I should be using. In the end, I opted to connect to moduleID's $edgeHub, and upon running the solution my code, my code hangs at line:
await ioTHubModuleClient.SetInputMessageHandlerAsync("input1",ReceiveMessages, ioTHubModuleClient);
with error logs:
Unhandled Exception: System.AggregateException: One or more errors occurred. (Operation timeout expired.) ---> System.TimeoutException: Operation timeout expired.
at Microsoft.Azure.Devices.Client.InternalClient.<>c.b__62_2(Task t)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.Devices.Client.InternalClient.d__86.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.Devices.Client.InternalClient.d__84.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at SampleAddedModule.Program.d__2.MoveNext() in /app/Program.cs:line 65
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait()
at SampleAddedModule.Program.Main(String[] args) in /app/Program.cs:line 22
Unhandled Exception: System.AggregateException: One or more errors occurred. (One or more errors occurred. (One or more errors occurred. (I/O error occurred.))) ---> System.AggregateException: One or more errors occurred. (One or more errors occurred. (I/O error occurred.)) ---> System.AggregateException: One or more errors occurred. (I/O error occurred.) ---> DotNetty.Transport.Channels.ClosedChannelException: I/O error occurred.
--- End of inner exception stack trace ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.Devices.Client.Transport.Mqtt.Util.d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.Devices.Client.Transport.Mqtt.MqttIotHubAdapter.d__40.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Azure.Devices.Client.Transport.Mqtt.MqttIotHubAdapter.d__28.MoveNext()
--- End of inner exception stack trace ---
at Microsoft.Azure.Devices.Client.InternalClient.<>c.b__62_2(Task t)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at SampleAddedModule.Program.d__2.MoveNext() in /app/Program.cs:line 59
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait()
at SampleAddedModule.Program.Main(String[] args) in /app/Program.cs:line 22
Should I be connecting to moduleID $edgeHub? If not, what connection string should I be using for ModuleClient? Also, the docs should be updated as it states that the connection string requires only deviceID, but will throw an error log requiring a moduleID upon being ran as a docker container (from the docs: Parameters --- connectionString --String -Connection string for the IoT hub (with DeviceId))

@adashen please take a look.

@Cherisle Looking at the C# reference API, it looks like the correct connection string is supposed to be the device connection string since it specifies "with DeviceID" and hub connection strings don't include device IDs.
Link: https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.devices.client.moduleclient.createfromconnectionstring?view=azure-dotnet
@adashen Can you add any more information?

@kgremban I understood that part; however, when I initially applied the device connection string as asked, I was not able to retrieve any messages from the input message handler in another module:
e.g. await ioTHubModuleClient.SetInputMessageHandlerAsync("input1",ReceiveMessages, ioTHubModuleClient);
The receiving of messages works fine for me when using the tutorial-given simulated temperature sensor. It then fails to work upon swapping out the tutorial-simulated data with my own "data generating" module. However, these custom messages are still able to make it to the iothub just fine. That's what confuses me: my custom messages are clearly sent to the cloud just fine, yet the receiving module (e.g. to receive the message and filter it) fails to detect the message when previously it could (with tutorial simulated temp sensor as the data generator). I'm hoping my issue makes sense; let me know if I could clarify this further in any way, thank you!

@Cherisle Following up to see if you've had a chance to continue testing, or could share more information about your system?

Hi, so for my sending module I have the following pieces of code:
static void Main(string[] args)
{
bool bypassCertVerification = RuntimeInformation.IsOSPlatform(OSPlatform.Linux);
if (!bypassCertVerification)
{
InstallCert();
}
        dc = Init(bypassCertVerification).Result;
        Console.WriteLine("IoT Hub module client initialized.");
        ...

}
static async Task Init(bool bypassCertVerification)
{
MqttTransportSettings mqttSetting = new MqttTransportSettings(TransportType.Mqtt_Tcp_Only);
ITransportSettings[] settings = { mqttSetting };
//mqttSetting = new MqttTransportSettings(TransportType.Mqtt_Tcp_Only);
//During dev you might want to bypass the cert verification. It is highly recommended to verify certs
systematically in production
if (bypassCertVerification)
{
mqttSetting.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
}
// Open a connection to the Edge runtime
DeviceClient ioTHubDeviceClient = DeviceClient.CreateFromConnectionString("myconnectionstringWithDeviceID",settings);
await ioTHubDeviceClient.OpenAsync();
return ioTHubDeviceClient;
}
static void InstallCert()
{
var certPath = Environment.GetEnvironmentVariable("EdgeModuleCACertificateFile");
if (string.IsNullOrWhiteSpace(certPath))
{
// We cannot proceed further without a proper cert file
Console.WriteLine($"Missing path to certificate collection file: {certPath}");
throw new InvalidOperationException("Missing path to certificate file.");
}
else if (!File.Exists(certPath))
{
// We cannot proceed further without a proper cert file
Console.WriteLine($"Missing path to certificate collection file: {certPath}");
throw new InvalidOperationException("Missing certificate file.");
}
var store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite);
store.Add(new X509Certificate2(X509Certificate2.CreateFromCertFile(certPath)));
Console.WriteLine("Added Cert: " + certPath);
store.Close();
}
And for my receiving module, I have:
static void Main(string[] args)
{
Init().Wait();
        // Wait until the app unloads or is cancelled
        var cts = new CancellationTokenSource();
        AssemblyLoadContext.Default.Unloading += (ctx) => cts.Cancel();
        Console.CancelKeyPress += (sender, cpe) => cts.Cancel();
        WhenCancelled(cts.Token).Wait();

}
static async Task Init()
{
MqttTransportSettings mqttSetting = new MqttTransportSettings(TransportType.Mqtt_Tcp_Only);
// During dev you might want to bypass the cert verification. It is highly recommended to verify certs systematically in production
mqttSetting.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
        ITransportSettings[] settings = { mqttSetting };

        ModuleClient ioTHubModuleClient = await ModuleClient.CreateFromEnvironmentAsync(settings);
        await ioTHubModuleClient.OpenAsync();
        Console.WriteLine("IoT Hub module client initialized.");

        // Register callback to be called when a message is received by the module
        await ioTHubModuleClient.SetInputMessageHandlerAsync("input1", PipeMessage, ioTHubModuleClient);

}
with the (attempted) routes:
routes": {
"DataModuleToSampleModule": "FROM /messages/modules/DataModule/outputs/* INTO BrokeredEndpoint("/modules/SampleModule/inputs/input1")",
"SampleModuleToIoTHub": "FROM /messages/modules/SampleModule/outputs/* INTO $upstream"
and it would require both modules to be up and running to receive and monitor D2C messages. I simply replaced what was "tempSensor" as the sending module with my own custom sending module, and made sure to connect to the device client properly through the docs. Again, what happened was that I was able to receive and monitor my expected D2C messages, but the InputMessageHandlerAsync never detected the messages. I planned on replacing the PipeMessage method with my own filtering method. Let me know if there was anything I left out, or if anything still seems unclear from my end. Thanks!

Hi again @Cherisle, and thanks for the details. I scanned your code and one thing that I don't see is where you declare an output in your sending module. You should be using something like SendEventAsync which takes an output name as a parameter, and then you can target that output in your route source.
Also, I see that you're creating a deviceClient instead of a moduleClient which may be adding to the confusion. DeviceClient's sendEventAsync method doesn't accept an output name as a parameter, so I don't know if those messages can even be routed. Or maybe you'd have to change the route source to something like /messages/modules/DataModule/* instead of specifying outputs.
The original issue description was that you need more information about moduleClient in the documentation. Do you think that's still the case, or is it more that our current sample code focuses on how to receive and process messages but not how to create them?

Thanks for the response @kgremban, I do in fact use SendEventAsync to send messages within the DataModule; this is how I am able to view the live D2C messages from within VS Code. I had forgotten to include that section of the code due to my assumption that the problem stemmed from myself not understanding whether I connected my DeviceClient or ModuleClient properly. Regarding the information on moduleClient, the parameter description for the method "CreateFromConnectionString(String)" states (with DeviceID) but upon checking the logs of the module (e.g. sudo docker logs SampleModule), the connection string also requires the ModuleID. In the example, the SampleModule is connected to ModuleClient via CreateFromEnvironmentAsync instead. I bring this up again due to assuming I didn't connect to the DeviceClient and/or ModuleClient properly. I do think that it would be nice to have a tutorial or sample code of how to create a proper message sending module, as well as the correct way to route this. To redescribe my main issue in a few sentences:
I am unable to get module to module communication (via SetInputMessageHandlerAsync) working even though I clearly have messages being sent to the IoTHub on the cloud (via Azure IoT HubL Start Monitoring D2C Message in VS Code).
Currently, the routes specify this intended behavior, but seem to not be detected by SetInputMessageHandlerAsync; it does make its way to $upstream just fine though. Please let me know if my restating of the issue is unclear in any way, and thanks again for your continued help

Hi @Cherisle. You definitely need to use ModuleClient, not DeviceClient, in both modules to set up the sending output in one module and the receiving output in the other module.
If you use the IoT Edge extension for visual studio code, you get a sample module in whatever language you choose. These samples receive messages from TempSensor and pipe them to $upstream, so they have examples of both inputs and outputs. Take C# for example (I cut out some extranneous code to highlight just the message receipt/send)
        /// <summary>
        /// Initializes the ModuleClient and sets up the callback to receive
        /// messages containing temperature information
        /// </summary>
        static async Task Init()
        {
            AmqpTransportSettings amqpSetting = new AmqpTransportSettings(TransportType.Amqp_Tcp_Only);
            ITransportSettings[] settings = { amqpSetting };

            // Open a connection to the Edge runtime
            ModuleClient ioTHubModuleClient = await ModuleClient.CreateFromEnvironmentAsync(settings);
            await ioTHubModuleClient.OpenAsync();
            Console.WriteLine("IoT Hub module client initialized.");

            // Register callback to be called when a message is received by the module
            await ioTHubModuleClient.SetInputMessageHandlerAsync("input1", PipeMessage, ioTHubModuleClient);
        }

        /// <summary>
        /// This method is called whenever the module is sent a message from the EdgeHub.
        /// It just pipe the messages without any change.
        /// It prints all the incoming messages.
        /// </summary>
        static async Task<MessageResponse> PipeMessage(Message message, object userContext)
        {
            byte[] messageBytes = message.GetBytes();
            string messageString = Encoding.UTF8.GetString(messageBytes);
            Console.WriteLine($"Received message: {counterValue}, Body: [{messageString}]");

            await moduleClient.SendEventAsync("output1", pipeMessage);
            Console.WriteLine("Received message sent");
        }

The input1 and output1 queues are created by name in the module code, and then are referenced by the same names in the routes. In the first route below, a specific output created in the tempSensor module (temperatureOutput) is routed to a specific input created in the CSharpModule (input1). But in the second route, all declared outputs from CSharpModule are sent to $upstream.
        "routes": {
          "sensorToCSharpModule": "FROM /messages/modules/tempSensor/outputs/temperatureOutput INTO BrokeredEndpoint(\"/modules/CSharpModule/inputs/input1\")",
          "CSharpModuleToIoTHub": "FROM /messages/modules/CSharpModule/outputs/* INTO $upstream"
        },

Hi again @kgremban, I think I have a better understanding of what's going wrong now. It seems that the reason why my receiving module doesn't pick up the D2C messages is because although I have my modules within the device running, the device itself is not connected. However, since DataModule was created as a module, this makes me unsure where and whether I need to use DeviceClient to send data. I can open a new feedback as this seems to be out of the scope of my original title (where the docs for ModuleClient do not specifically address the need of the module ID as well as the device ID)

Thanks, @Cherisle. We did sort of wind around a lot of topics in this thread :) If you have questions about the product itself, you can also open issues on the iotedge repository: https://github.com/Azure/iotedge. They may be able to better understand what you're trying to do and what you need to get there.
In general, though, I think you don't need DeviceClient at all on an IoT Edge device. The IoT Edge runtime handles all communication with IoT Hub. On the modules, you just need the ModuleClient. Whenever you send a message from a module, it's the same syntax whether you're sending them to another module or to IoT Hub. You just send the message to a defined output. It's the edgeHub that knows to route messages from that output to another module or $upstream to IoT Hub based on the routes that you declared in the deployment manifest.

Thanks, @Cherisle. We did sort of wind around a lot of topics in this thread :) If you have questions about the product itself, you can also open issues on the iotedge repository: https://github.com/Azure/iotedge. They may be able to better understand what you're trying to do and what you need to get there.
In general, though, I think you don't need DeviceClient at all on an IoT Edge device. The IoT Edge runtime handles all communication with IoT Hub. On the modules, you just need the ModuleClient. Whenever you send a message from a module, it's the same syntax whether you're sending them to another module or to IoT Hub. You just send the message to a defined output. It's the edgeHub that knows to route messages from that output to another module or $upstream to IoT Hub based on the routes that you declared in the deployment manifest.

As mentioned in your response you say ModuleClient needs to be used in Module code, given a scenario wherein there are multiple modules on on IoT Edge Device and I am creating a module client from environment and now that I want ModuleTwin for a specific module how do I do that? Currently I am unable to retrieve ModuleTwin for a specific module when the ModuleClient is created using CreateFromEnvironmentAsync method.
Can you please help with this?
Thanks

@amogh79 What method are you using to retrieve the module twin?

@amogh79 What method are you using to retrieve the module twin?

I am using ModuleClient.GetTwinAsync().Result method.
Following is the code snippet, GetModuleClient is implemented in Helper.cs, this class gets injected via the dependency injection pipeline:
public ModuleClient GetModuleClient(TransportType transportType = TransportType.Amqp_Tcp_Only)
{
var amqpSetting = new AmqpTransportSettings(transportType);
ITransportSettings[] settings = { amqpSetting };
ModuleClient client = ModuleClient.CreateFromEnvironmentAsync(settings).ConfigureAwait(false).GetAwaiter().GetResult();
_logger.LogInformation($"Created module client from environment");
return client;
}
_moduleClient = _helper.GetModuleClient(TransportType.Amqp_Tcp_Only);
_moduleClient.OpenAsync();
Twin twin = _moduleClient.GetTwinAsync().GetAwaiter().GetResult();


fix missing opts type for cookies api

Currently, the cookies api is missing the forwarded types CookieSerializeOptions and CookieParseOptions from the @types/cookie package, so we don't get any typescript autocompletion.
Example:
In a new SvelteKit project, the argument opts is missing its type:

However, after manually installing @types/cookie in a new project, the type appears:

~I was hoping that moving the types package to a dependency will ensure it gets installed automatically, but I have a feeling this might be the wrong way to fix the issue...~
Added it to peerDependencies as per @mquandalle 's advice.
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[ ] Ideally, include a test that fails without this PR but passes with it.

Tests

[x] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[ ] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

Feels strange to me to have cookies in dependencies but the types for it in peerDependencies. I think moving both to dependencies makes more sense.

thank you!


adding '' to the Dockerfile nginx statement

I completed the 3 steps below:

[] I've read the Contribution Guide.
[] I've updated the documentation. (refer to this for how to do so).
[] I enjoyed my time contributing and making developer's life easier :)

this fix is right

Yes. I've faced the same problem and have solved it in the same way.

Should be accepted  👍


gnome.gnome-maps: 42.0 → 42.1

Description of changes
https://gitlab.gnome.org/GNOME/gnome-maps/-/compare/v42.0...v42.1

Update GWeather dependency to version 4
Update the Resrobot public transit plugin to use the v2.1 API
Don't optimize away keep left/right instructions for turn-by-turn routes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@ofborg build gnome.gnome-maps


bpfman: restore caps for bpfman-rpc as a service

In scripts/bpfman.service, the capabilites granted to the service are commented out. This was done in #1053 commit#2, which updated the scripts to install bpfman-rpc instead of bpfman system service.

I don't remember why the caps were commented out. I ran locally as a systemd service and everything seems to run fine. Pushing a PR to run through CI and see if any issues are seen.

What was the use case that didn't work?

What was the use case that didn't work?

Originally or now? I don't know originally, I don't remember why I commented them out. Now, I was locally changing logging from "Info" to "Debug" in the file and noticed the caps were commented out. The reasons for the caps in the bpfman.service file is to limit the set of capabilities granted to a process.


[ScrollView] Duplicate declaration in js file

Was going through the code and noticed var RCTScrollView twice in the file, one on ScrollView.js#L17 and then one on ScrollView.js#L450;
I think the first one is only to pick the RCTScrollViewConsts on the next line.

Raised a PR. Please ignore this issue.


fix 404 dead link to r package

This may require messing with a release for read the docs

Work complete in branch 372


Pie chart not providing the right touchedIndex

Don't make a duplicate issue.
Could not find a similar issue.
Describe the bug
The pie chart does not provide the correct touchedIndex. I find it consistently happening when I first go to the page with the pie chart. If I don't scroll down, the touchedIndex is not given correctly for some sections. If I scroll down a little, it works perfectly. If I scroll back up to the very top again, it will not work. I thought it was due to the pie chart not being completely in view, but I moved it up and it happens when the scroll is at the very top.
My code below changes the size of the section and moves the text to the outside of the circle when touched. When you run this, you will notice that the touchedIndex is not the correct value when touched, thus incorrectly increasing the size of another section.
To Reproduce
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Categories(),
      theme: ThemeData(
        primaryColor: Colors.red[900],
        accentColor: Colors.blueGrey,
        fontFamily: 'Andika',
        backgroundColor: Colors.white,
      ),
    );
  }
}

class Categories extends StatefulWidget {
  @override
  _CategoriesState createState() => _CategoriesState();
}

class _CategoriesState extends State<Categories> {
  int touchedIndex = -1;

  List<Map<String, dynamic>> _categoricalData = [
    {
      'category': 'Holidays & Travel',
      'color': Color(0xff4caf50),
      'amount': 435.13,
      'percentage': 0.7516626647549621
    },
    {
      'category': 'Food & Restaurants',
      'color': Color(0xffd32f2f),
      'amount': 99.2,
      'percentage': 0.17136243500492324
    },
    {
      'category': 'Transportation',
      'color': Color(0xff66bb6a),
      'amount': 39.56,
      'percentage': 0.06833768073381817
    },
    {
      'category': 'Etc.',
      'color': Color(0x8a000000),
      'amount': 5.0,
      'percentage': 0.008637219506296534
    },
  ];

  @override
  Widget build(BuildContext context) {
    List<PieChartSectionData> sectionData = _categoricalData
        .asMap()
        .map((index, category) {
          return MapEntry(
            index,
            PieChartSectionData(
              value: category['percentage'] * 100,
              color: category['color'],
              radius: touchedIndex == index ? 145 : 140,
              title: '\$${category['amount'].toStringAsFixed(2)}',
              titleStyle: TextStyle(
                color: category['percentage'] < 0.05 || touchedIndex == index
                    ? Colors.black
                    : Colors.white,
                fontSize: 16,
              ),
              titlePositionPercentageOffset:
                  category['percentage'] < 0.05 || touchedIndex == index
                      ? 1.2
                      : (index % 2 == 0 ? 0.825 : 0.675),
            ),
          );
        })
        .values
        .toList();

    return ListView.builder(
      itemBuilder: (context, index) => PieChart(
        PieChartData(
          sections: sectionData,
          sectionsSpace: 1,
          borderData: FlBorderData(
            show: false,
          ),
          pieTouchData: PieTouchData(
            touchCallback: (pieTouchResponse) => setState(() {
              touchedIndex = (pieTouchResponse.touchInput is FlLongPressEnd ||
                      pieTouchResponse.touchInput is FlPanEnd ||
                      pieTouchResponse.touchedSectionIndex == null)
                  ? touchedIndex
                  : pieTouchResponse.touchedSectionIndex;
              print(touchedIndex);
            }),
          ),
        ),
      ),
      itemCount: 1,
    );
  }
}

Versions

which version of the Flutter are you using?
Flutter (Channel stable, v1.12.13+hotfix.8, on Mac OS X 10.14.4 18E226, locale en-CA)
which version of the FlChart are you using?
^0.8.1

Hi, I've checked your code, and that's a terrible bug, I'm sorry about that.
But it seems a Flutter bug, I've found this issue.
I don't have any idea how to solve it.
I invite everybody to come and think about it.
Thanks for reporting!

Thanks for replying, I'll close this issue since there is nothing you can do in this repo. I'll keep an eye out for that issue.


Fixed CreationTime -- Simplified Tag/VmSize/VmLocation.  CreationTime can also be read from VM Tag.

The following use cases have been validated (and the results stripped of PII) on my branch and my local upstream.  There are no dependencies on this tool.
Show all jobs triggered by a particular web server ... imagine http://urlOfServer:Port/job/etc/ ...
/lisav2/Utilities> ./Get-AzureVMs.ps1 -Tags *urlOfServer*

VMName    Region      Size             Age BuildUser      TestName                     ResourceGroupName
------    ------      ----             --- ---------      --------                     -----------------
client-vm eastus2     Standard_F72s_v2   3 user1          SOMETEST-WE-RUN              resourceGroupC-636760580563
server-vm eastus2     Standard_F72s_v2   3 user1          SOMETEST-WE-RUN              resourceGroupC-636760580563
receiver  northeurope Standard_DS15_v2   0 user1          ANOTHERTEST                  resourceGroupA-636762835026
sender    northeurope Standard_DS15_v2   0 user1          ANOTHERTEST                  resourceGroupA-636762835026
forwarder northeurope Standard_DS15_v2   0 user1          FREQUENT-TEST                resourceGroupB-636762806654
receiver  northeurope Standard_DS15_v2   0 user1          FREQUENT-TEST                resourceGroupB-636762806654
sender    northeurope Standard_DS15_v2   0 user1          FREQUENT-TEST                resourceGroupB-636762806654
forwarder northeurope Standard_DS15_v2   0 user1          YET-ANOTHER-TEST             resourceGroupB-636762820727
receiver  northeurope Standard_DS15_v2   0 user1          YET-ANOTHER-TEST             resourceGroupB-636762820727
sender    northeurope Standard_DS15_v2   0 user1          YET-ANOTHER-TEST             resourceGroupB-636762820727
client-vm westeurope  Standard_DS15_v2   0 user1          VERIFYING_UNDERSCORES        resourceGroupD-636762851857
server-vm westeurope  Standard_DS15_v2   0 user1          VERIFYING_UNDERSCORES        resourceGroupD-636762851857

Show all VMs that are in eastus
lisav2/Utilities> ./Get-AzureVMs.ps1  -Region eastus

VMName         Region Size               Age       BuildUser TestName ResourceGroupName
------         ------ ----               ---       --------- -------- -----------------
test-jenkins-1 eastus Standard_DS2_v2    Undefined                    jenkins-deployment-8192
prod-jenkins   eastus Standard_DS2_v2    58                           cascade-636712951087
test-jenkins   eastus Standard_M128ms    5                            interop-636758419481
vm-role-0      eastus Standard_NC24rs_v2 2                            COMPARISON-PEUA-636761473133
vm-role-0      eastus Standard_E4s_v3    16        Bob                COMPARISON-SJHG-636749040270
client1        eastus Standard_DS1_v2    Undefined                    all-your-clients
client2        eastus Standard_DS1_v2    Undefined                    all-your-clients
client3        eastus Standard_DS1_v2    80                           all-your-clients
client4        eastus Standard_DS1_v2    Undefined                    all-your-clients
flav1linux     eastus Standard_D2_v3     Undefined                    flav1Linux-rg
flav2linux     eastus Standard_D4s_v3    Undefined                    flavEvenLinux-rg
flav4linux     eastus Standard_D2s_v3    Undefined                    flavEvenLinux-rg
flav5          eastus Standard_DS1_v2    Undefined                    five-Linux-Clients-rg
flav7linux     eastus Standard_D2s_v3    Undefined                    RG-FOR-TESTS
flav8linux     eastus Standard_D2s_v3    Undefined                    Because-SEVEN-EIGHT-NINE
flav9linux     eastus Standard_D2_v3     Undefined                    RG-FOR-TESTS
v2Test         eastus Standard_L8s_v2    Undefined                    ANotherLinuxTest
v4Test         eastus Standard_D4s_v3    Undefined                    ANotherResourceGroup
client1        eastus Standard_D4s_v3    Undefined                    ANotherResourceGroup
client2        eastus Standard_D8s_v3    Undefined                    AnotherResourceGroup
client4        eastus Standard_F16       Undefined                    AnotherResourceGroup
client5        eastus Standard_D2s_v3    Undefined                    AnotherResourceGroup
testvm         eastus Standard_D2s_v3    Undefined                    AnotherResourceGroup
stable-test    eastus Standard_D2s_v3    Undefined                    AnotherResourceGroup
stable-test    eastus Standard_NC6s_v3   Undefined                    AnotherResourceGroup
bleed-test     eastus Standard_B1ms      Undefined                    AnotherResourceGroup
client4        eastus Standard_D32s_v3   Undefined                    AnotherResourceGroup

Add the filter to only include VMSize *DS1_v2
/lisav2/Utilities> ./Get-AzureVMs.ps1  -Region eastus -VMSize *DS1_v2

VMName     Region Size            Age       BuildUser TestName ResourceGroupName
------     ------ ----            ---       --------- -------- -----------------
client1    eastus Standard_DS1_v2 Undefined                    all-your-clients
client2    eastus Standard_DS1_v2 Undefined                    all-your-clients
client3    eastus Standard_DS1_v2 80                           all-your-clients
client4    eastus Standard_DS1_v2 Undefined                    all-your-clients
flav5      eastus Standard_DS1_v2 Undefined                    five-Linux-Clients-rg

Getting Ages for untagged resources.
Note … client3 has a tag that was applied to the machine.  I think it would make sense to just have a script that adds the Storage Age to VMs that don’t have this already tagged.
To tell the tool to go ahead and retrieve the ages from storage … you add the -IncludeAge flag like before.
/lisav2/Utilities> ./Get-AzureVMs.ps1  -Region eastus -VMSize *DS1_v2 -IncludeAge

VMName     Region Size            Age       BuildUser TestName ResourceGroupName
------     ------ ----            ---       --------- -------- -----------------
client1    eastus Standard_DS1_v2  82                          all-your-clients
client2    eastus Standard_DS1_v2  82                          all-your-clients
client3    eastus Standard_DS1_v2  80                          all-your-clients
client4    eastus Standard_DS1_v2  79                          all-your-clients
flav5      eastus Standard_DS1_v2  31                          five-Linux-Clients-rg


Using concept list in concepticon

As pointed on issue #3
This is actually lowering the number of mapped concepts for some reason (would need to investigate manually, as the parameter ids changed and diff doesn't tell anything), but it is still better than having a local list (especially one out of sync with a list in Concepticon).

Where are we on this? looks like it's good to merge once rebuilt?

I suppose. I am rebuilding it.

Ok, I'm closing this PR without merging. @chrzyki had already pushed the code for using the concept-list back in November, this PR was out-of-sync. But I also recompiled the CLDF files and fixed the two things that were needed to get a green badge in the buildbot, it's already in master.

Cool, thanks @tresoldi !


Question: Can I pass a JSON schema written in YAML?

I couldn't find an answer to this in the readme: I've written the schema I'd like to use to validate YAML files in YAML.
Is it possible to use that schema written in YAML without having to convert it into JSON first? That'd be quite neat.

It looks like the answer is yes! Seems to work, fantastic! Would be great to document this :)


Upgrade baroclinic instability elixir

This PR

replaces the perturbation in the baroclinic instability elixir (which is the one used in the original paper that suggested this test for shallow atmosphere models) by an improved version that was suggested in the paper where this elixir is based on,
renames some parameters to be more self-explanatory,
implements a steady-state RHS correction, as described in #980 (also closes #980 and #979),
imports Downloads:download in every elixir that was using the deprecated download function,
removes using Downloads:download in every elixir that doesn't use this function.

The last two are entirely unrelated to the baroclinic instability, but I just happened to notice this, and I didn't want to create a new PR for this.

There's something wrong. The results after 10 days look a bit different.

Please request my review again when you think everything is fine

Alright, it works now. It was just a sign error.

CI finished over 1 hour ago. I don't think codecov will be reporting anything.


--loglevel and --failon option values consistency

Fix (#90) When log level is specified number of linted files appear to be off

Codecov Report

Merging #92 into master will increase coverage by 0.03%.
The diff coverage is 95.00%.

@@            Coverage Diff             @@
##           master      #92      +/-   ##
==========================================
+ Coverage   93.71%   93.75%   +0.03%
==========================================
  Files          72       72
  Lines        1798     1809      +11
==========================================
+ Hits         1685     1696      +11
  Misses        113      113

Impacted Files
Coverage Δ

lib/test/helpers/init.js
66.66% <ø> (-6.07%)
:arrow_down:

lib/output.js
96.66% <90.00%> (-0.87%)
:arrow_down:

lib/groovy-lint.js
99.55% <100.00%> (+0.01%)
:arrow_up:

lib/utils.js
97.74% <100.00%> (+0.02%)
:arrow_up:

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 8faf175...779e9b3. Read the comment docs.


Move purge css call to production only

PurgeCss calls should be made only in production environments, during development if you're using any running npm run watch or npm run hot you're going to strip out classes that you could be adding to your project.

Thanks!


⚠ ClamAV has degraded performance

In 41a5ae1, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 54 ms

Resolved: ClamAV performance has improved in 1024007.


Add Basic formatting pre-commit check

Formatting check supports both rust and python code.
Doesn't add the weight of doing a cargo build on a system
that doesn't support it.
Signed-off-by: Nathaniel Clark<EMAIL_ADDRESS>

This change is

It's an alternative, since I don't commit from a build machine in my work-flow.

It's an alternative, since I don't commit from a build machine in my work-flow.

Let's not document it then. I don't want to have competing pre-commit hooks in the readme


Linux to Master

@agarwal-sandeep please review last commit
From this PR forward we won't be using linux branch.
/cc @liminzhu we may want to update Wiki and other places?
/cc @kunalspathak master is ready
/cc @digitalinfinity @jianchun

@obastemur gotcha. After it's merged I'll point docs to master branch instead of Linux.

@agarwal-sandeep Thanks for the review


vite4 _checkForProblematicCharacters检测怎么取消

Description
我的入口html文件含有某些特定字符，如\x85，会导致vite build的过程失败。请问为什么要做这种字符检测，我该如何关闭这个检测

Suggested solution
提供关闭字符检测的配置
Alternative
No response
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

This is defined in the HTML spec.
https://html.spec.whatwg.org/multipage/parsing.html#parsing-with-a-known-character-encoding:~:text=any occurrences of controls other than ASCII whitespace and U%2B0000 NULL characters are control-character-in-input-stream parse errors

This is defined in the HTML spec.
https://html.spec.whatwg.org/multipage/parsing.html#parsing-with-a-known-character-encoding:~:text=any occurrences of controls other than ASCII whitespace and U%2B0000 NULL characters are control-character-in-input-stream parse errors

and can I skip this check stage in vite?

No you cannot. This cannot be rendered by browsers so we restrict it as well. Please provide a reason why you'd need to stick with this character if you think we should support it. Closing for now.

No you cannot. This cannot be rendered by browsers so we restrict it as well. Please provide a reason why you'd need to stick with this character if you think we should support it. Closing for now.

because I need to inline some script in my html. And inline JS may has some unexpected character.


Rosbridge

This is the prototype implementation  that uses rosbridge to eliminate the laptop as a point of failure. A small javascript application eavesdrops on the robots allowing them operate independently while maintaining the existing GUI functionality on the laptop.
Notable changes:

requires rosbridge_server to be installed on the robots and laptop
alternative stratup for robots (misc/rover_launch_local.sh)
Switched image transport from theora to compressed. It is unclear why this was necessary, but overall performance of compressed seems to be better any way.
Reduced message rate for topics that use a lot of bandwidth (ie. images, and sensor data). The GUI does not need 30 ultrasound messages per second. The new rate is 1 message per sensor per second which should be sufficient for diagnostic purposes. This can be easily changed in the rover_onboard_node_launch.sh script.

This should not be merged until the README.md is updated to reflect the additional package that must be installed.


Console not loading class cache

We have been having problems recently with a Symfony app when constructor signatures for our customer services have changed and we have been unable to run cache:clear in production.
The problem seems to be that the compiled DI container (app/cache/prod/appProdProjectContainer.php) constructs the service using the old service definition but it's actually loading the new class and hence there is an error since the console is not loading the class cache.
As an example, consider a custom service like this:
namespace MyApp\MyBundle;

use Psr\Log\LoggerInterface;

class CustomService
{
    /**
     * @var LoggerInterface
     */
    protected $logger;

    /**
     * @param LoggerInterface $logger
     */
    public function __construct(LoggerInterface $logger)
    {
        $this->logger = $logger;
    }
}

The cached version in the container would be something like:
    protected function getMyApp_CustomService()
    {
        return $this->services['my_app.custom_service'] = new \MyApp\MyBundle\CustomService($this->get('logger'));
    }

Now say in the next feature release we add an extra dependency to the service:
namespace MyApp\MyBundle;

use Psr\Log\LoggerInterface;
use Doctrine\ORM\EntityManager;

class CustomService
{
    /**
     * @var LoggerInterface
     */
    protected $logger;
    /**
     * @var EntityManager
     */
    protected $em;

    /**
     * @param LoggerInterface $logger
     * @param EntityManager $em
     */
    public function __construct(LoggerInterface $logger, EntityManager $em)
    {
        $this->logger = $logger;
    }
}

Now when the service is loaded an error is thrown as there is no second parameter being passed to the constructor.
We have added $kernel->loadClassCache(); to app/console and this seems to have resolved the issue.
So I have a few questions:

is this change likely to cause issues elsewhere (I'm by no means an expert on Symfony internals)?
if so, is there a better way to get round this issue?
is this a bug? If so, I am happy to do a quick PR to fix it.

this is always a problem. In no-debug mode, running a command when the cache exists will use the existing cache even when it is totally old.
My advice is to always clear the cache the hard way (rm -rf app/cache/prod) when you deploy changes instead of relying on the flawed cache:clear command.

Adding $kernel->loadClassCache() may be fixing it in your case because the class causing you issues in the class cache, but most cases where it happens won't be solved by this.

The problem isn't so much that the console is using the old cache, it's that it's using a cached version of the container and the current (i.e. non-cached) version of our custom service. Add our custom service to the class cache and then getting the console command to use the class cache seems to work ok.
AFAIK using cache:clear is a (nearly) seamless way of clearing the cache in prod. As I understand it, it warms a new cache before destroying the old and then just swaps them. Surely using rm -rf will leave a bigger window where the cache is missing/inconsistent/out-of-date etc?

You can maybe use app/console cache:clear --no-warmup but basicly, rm -rf app/cache/* works better

So basically rm -rf app/cache/prod then app/console cache:warmup --env=prod?
if cache:clear is so unreliable why is it still there??

@liquorvicar most classes of the code base are not in the class cache, meaning there is no way to boot the kernel using only the old codebase (thus, warming up the cache with the old codebase would mean we could warm it the wrong way).

@stof it's not so much the fact that most of the code is not in the class cache, it's the fact that the console is using the cached container but not the class cache. Thus, even if you add your customer services to the class cache to avoid the issue of old vs new code, it still breaks!

@liquorvicar you would not want to add your whole codebase to the class cache anyway. This would make performance worse by loading lots of unnecessary things
And if you add everything to the class cache, the cache warmup could still be broken because it would warmup things with the old code.


Items are lost upon death if keepInventory is enabled.

Items placed in the cosmetic armor slots are lost upon death if gamerule keepInventory is set to true. The items do not drop, and are no longer in the player's inventory or in the cosmetic slots upon respawning.

Fixed in latest release


Tdc: do not use TRIG_IN by default

Use parameter and generate to exclude IDDR on TRIG_IN. Will limit functionality but this can lead to implementation errors if this input is not connected(not needed).

Set FAST_TRIGGER parameter to 0 and force the input to be 1'b0 if you don't want to use Trigger input.


I want to add new animated button

Hi! I would like to contribute to this issue under the GSSoC'23. It seems interesting and aligned with my skills. I would be happy to take it up and work on this project.

Hey @Spyware007 ,I would like to add new animated button.
I can resolve this issue. I'm a contributor to GSSOC'23 please assign this issue to me as a part of GSSOC'23


Specifications and types translation

The new Specifications and types is ready.
PR #564 was the origin.
Translation
Translation progress:

[x] en
[ ]  ru - /cc @brain-geek / @nscyclone
[ ]  ko /cc @devleoper
[ ]  jp /cc @3100
[ ]  no /cc @therobinsj
[ ]  pl /cc @Koziolek
[ ]  sk /cc @michalvalasek
[ ]  fr /cc @julienXX
[ ]  cn /cc @cizixs
[ ]  es /cc @aleandros / @jonahoffline / @eze1981
[ ]  pt /cc @pragmaticivan
[ ]  vi /cc @joneslee85
[ ]  it /cc @sformisano
[ ]  my /cc @alkaha
[ ]  id /cc @rezaprima
[ ]  gr /cc @gemantzu

Japanese translation is already done(#638)

Greek translation is already done(#629)


Brainstorm: queue + limiter integration (Bottleneck v3 design discussion)

Earlier we had a conversation about integrating the limiter with a queue. I couldn't wrap my head around how exactly I would need it to work. I've finally figured that out.
Current problems:
Currently I use BeeQueue to schedule jobs and distribute them among workers. The workers then accept jobs with a specific maximum concurrency and route them through the appropriate limiters. This leads to several issues.

The worker's concurrency is blocked while a job is waiting to clear the limiter.
If the worker crashes or is taken down the jobs awaiting a limiter either fail (best case) or get stuck
There's no way to track via the queue how many jobs are executing verses waiting on the limiter

Ideal integration:

Jobs are scheduled via the queue as usual either for immediate execution or with a delay. A limiter and group key can optionally be specified with each job.
As soon as a job becomes active it is placed in the appropriate limiter queue, the main queue updates the status to awaiting_limiter.
Once a job has cleared the limiter, it can then be picked up by an available worker (which remains oblivious to the presence of a limiter). An active job is registered by the limiter's timer the moment it is picked up by a worker. Status is set to in_progress.
The worker reports on the success or failure of a job, which is reported via the main queue.
Ideally I could collect real-time statistics on how many jobs are waiting on a limiter and what the wait times are.

This would probably require a master worker to process all the limiters, but the administration could ideally be clustered across several workers for really large-scale projects.
I think the easiest way to accomplish this would probably be to fork BeeQueue, and the changes to BottleNeck should be minimal.
Thoughts anyone else?

I think the easiest way to accomplish this would probably be to fork BeeQueue, and the changes to BottleNeck should be minimal.

That's exactly where I landed after I spent time dissecting BeeQueue's source code 2 months ago. BQ is more than 5 or 10 times smaller and simpler than Bottleneck, and jobs have to go BQ -> Bottleneck, so it makes the most sense to modify BQ and make it aware of Bottleneck instead of the other way around.
Thankfully the BQ source code is small and simple to follow, so forking it to make it support exactly the integration you described is reasonable for a weekend project. I'd be happy to help by answering questions and discussing/planning architecture, if you'd like to get in touch with me. However I don't currently have the bandwidth to do the integration myself. If no one writes such integration this year, I'm probably going to recreate a slimmed down version of BQ myself and add it directly into Bottleneck sometime in the first half of 2019.

Update: I think I've figured out the right way forward. It would be Bottleneck v3 and it would address the current Clustering limitations without compromising the overall design.
Currently, the Cluster uses timestamps, counters, and timers to instruct clients (limiters) on how to proceed. The Cluster is aware of the queue length of each limiter, but nothing more.
Version 3 will have no significant impact on the non-Clustering usage other than a few changes to method and event names, etc. All the major changes will be in the Clustering mode and it will be backwards-compatible with version 2 behavior.
The Cluster is going to keep track of queued jobs. This will "unify" the queues and get rid of all the limitations listed here. Instead of each client having a queue, each limiter's jobs will instead hold a reference to the job's metadata located in Redis.
This approach probably seems like the obvious solution and some might be wondering why this wasn't chosen for v2. The reason is that the jobs themselves (the functions) cannot be serialized, and neither can complex arguments like functions and class-based objects. Most other distributed queued systems also require the user to setup a listener per client to handle each type of job. That design compromises the overall architecture and tends to lead to poorer user side code.
It's always been the top priority of Bottleneck that jobs can be added inline, without first having to register them. The second most important priority is to guarantee a distributed system where clients can safely crash, join, and leave at any time.
In v3, the jobs themselves still won't be serialized, instead, the user will have the option to provide a job type option as part of the job options.
Here's the v3 algorithm for a queued job, when it becomes ready to execute:

IF the limiter that added the job is responsive THEN: Notify the limiter to launch the job. If the limiter doesn't respond, then mark the limiter as unresponsive, drop the job, and try to launch the next job.
ELSE IF the limiter that added the job is unresponsive AND the job has a job type THEN: Use the load balancing algorithm to select a responsive limiter, emit an event on that limiter, pass the job arguments and the job type to that event listener and give a chance to the limiter to execute the job. If the user's event listener doesn't want to execute it, then drop the job and try to launch the next one.
ELSE: Drop the job and try to launch the next one.

In other words, v3 will allow users to still run their jobs even if the originating limiter is lost. It will be opt-in, by passing an extra job option. By default, the behavior will be the same as v2 (jobs are lost).

This all sounds great @SGrondin. At least as far as the projects I'm working on can be considered, this bit...

the user will have the option to provide a job type options

...is exactly what I'm looking for. We have separate queues for each job type that all have to share a common limiter, so each job is wrapped in the same limiter. We've avoided horizontally scaling the workers so far and luckily have enough headroom for the time being to vertically scale the worker, but that's probably not going to be the case forever.
Not sure if this is covered, but one limitation we currently have is our limiter settings are global, but within the app a given token will have different limits from other tokens. Example:
API Token A: 5000 req/hour
API Token B: 7500 req/hour
API Token C: 12500 req/hour
Maybe it makes sense to store this in the job metadata somehow? I can see this being useful for jobs that need to interact with multiple APIs as well, since you could have a single job that has to keep track of different limits. For example, within a single worker could GET 5000 req/hour from API A (e.g. GitHub), but only POST to API B at 5 req/second (e.g. Airtable). The job would need to be limited dynamically based on the state of both.


Explain how to setup and run converter

The README.md does not contain information on what is needed to setup and how to run the converter. Please add some information on how to get started with the converter.

@Jeeppler hopefully readme helps now, open it again if any suggestions

@gautambaghel thanks for adding more information to the README.md. However, I would like to run your converter standalone as CLI tool instead of integrating it into a GitHub Action workflow. Basically, I would like to know what I have to install (I assume NPM and a JavaScript/Nodejs runtime) as well as what dependencies are necessary and how to install them.
It would be nice have the install instructions for a Debian/Ubuntu based system.

@gautambaghel I am unable to re-open the issue. I think you are the only one with the necessary rights to re-open the issue.

I'm not sure if this will be helpful at this point but you can run any actions locally by following this page -> https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions
For this particular action you can run it locally by
env INPUT_PIPELINE-RESULTS-JSON="coverity-results.json" INPUT_OUTPUT-RESULTS-SARIF="coverity-results-sarif.json" node index.js
where coverity-results.json -> results you get from coverity
coverity-results-sarif.json -> name of the o/p sarif file


Routify

What can I do to help add Routify support?

These questions need to be answered before we can support Routify:

Is there a Routify template every app is based on?
Is it created from cloning or using an npm init-esque command?
Is the initializer simple or stable enough to be wrapped like we're able to do for SvelteKit and Vite? I know about Stackmix which I don't currently fully understand.

Hopefully these questions are easy to answer, and that Routify 3's support for SvelteKit has made things easier, but I haven't done the research.
Then, we can go over the list of integrations supported and reverse engineer Routify templates that have these set up, or implement tutorials for them in code.

This adder already exists for nearly two years now. Closing.


test: improve tap output on test failures

Print errmsg on TAP output. After making the TAP output the default,
the info in errmsg was not being used anymore.

LGTM

LGTM. CI just to see how it looks like: https://ci.nodejs.org/view/libuv/job/libuv-test-commit/111/

PR updated.
Sample output of a failing test https://ci.nodejs.org/job/libuv-test-commit-smartos/111/nodes=smartos14-64/console:
not ok 261 - fs_event_close_in_callback
# timeout
# Output from process `fs_event_close_in_callback`: (no output)

Gracias Santi! Landed in 282dc7b.

¡De nada Saúl! :)


CoreCLR is written in C#/C++

Your current text says it is written in C/C++

I think it depends on what you consider to be "CoreCLR".
If you count everything that's in the coreclr repo, then it indeed includes code written in C#.
But if you only include the actual runtime (and exclude core libraries), then I think it's fair to say that CoreCLR is written in C++.
Considering that this is just an example and not some in-depth description of what CoreCLR is, I think not mentioning C# is fine.
On the other hand, I don't understand why C is mentioned, since CoreCLR contains almost no C code.

Which is what I mean, see the name of the issue. I consider C#/C++ also as correct :slightly_smiling_face:

I guess the person who wrote this, intended to spell C#/C++, so its probably a typo.

Yes, most probably, it's a typo. The full sentence:

CoreCLR is platform-specific. It's built in C/C++, so is platform-specific by construction.

with the link to the CoreCLR repo that contains 65% C# and 30% C++.
Though, I don't understand ... is platform-specific by construction. @ShalokShalom @svick could please explain that.

I guess it means platform-independent?

The runtime libraries (VM, GC, JIT) are written in C/C++ (it's not unusual for people to say C/C++ even if there's little to no actual C code in there) and as such they're obviously platform specific.
The "corelib" assembly is written in C#. And despite being written in C#, it too is platform specific, like System.IO and System.Security.Cryptography.Algorithms mentioned below.
IMO both that piece of documentation and this associated issue are just splitting hairs. The intention of the paragraph is to explain that there are platform specific and platform independent libraries. What language those are written in is pretty much irrelevant (and easily observable by looking at the source code in those repos).

Ah I see. The distinction between C and C# is for the most developers probably more as splitting hairs. Platform specific is clearly correct.

What adds to confusion, I think, is the discussion of platform-neutral/platform-specific code in the same topic with the figure that shows what part of the CoreFX C# code is platform-specific. So, there are platform-specific code and platform-specific library. While some of GC code might be platform-neutral - I assume, the GC library itself is platform-specific.

A detailed description is probably suitable?

So, there are platform-specific code and platform-specific library.

Yes, libraries like System.IO are platform specific because they contain platform specific code. I don't see what's confusing about that.

While some of GC code might be platform-neutral - I assume, the GC library itself is platform-specific.

Most of the code is platform neutral. But since it's written in C/C++ the resulting libraries are platform specific - coreclr.dll and clrjit.dll on Windows and libcoreclr.so and libclrjit.so on Linux. The entire C/C++ source code could be platform neutral and the resulting libraries would still be platform specific, that's how native libraries work.

A detailed description is probably suitable?

A detailed description of what? How would it help? The only problem in that text is that it equates the CoreCLR repository with the runtime even if that repository also contains the source code for the corelib assembly. Simply replacing "CoreCLR" with "runtime" should be enough to clarify things:
"The runtime is platform-specific. It's built in C/C++, so is platform-specific by construction."

Simply replacing "CoreCLR" with "runtime" should be enough to clarify things:

Or drop the whole CoreCLR/C/C++ thing and instead talk about System.Private.CoreLib since most section seems to refer only to .NET assemblies. And it's exactly what's useful to point out in the documentation - that some assemblies are platform specific thus you can't just copy them from Windows to Linux.

I think the core issue here is that you refer to the runtime and the repo with the same name.

Or drop the whole CoreCLR/C/C++ thing and instead talk about System.Private.CoreLib since most section seems to refer only to .NET assemblies.

I think that is a good update of the current text.

@karelz @richlander pinging again for help

@richlander already simplified the page in PR #6769 in August. C++ is not mentioned anymore, closing.
(Let me know if I missed anything, we can reopen in such case)


feat: bump ns and context to v1

WHAT
bump ns and context to v1
Part of #130

If we merge this as-is, the redirects will point to a 0.8 URL that will serve 1.0 files. This isn't ideal but we'll have to adjust the redirects anyway due to #123. I'll open another ticket for this.

Oh i actually forgot to change the deploy stuff, we need to do change it before merge it.
I will then proceed to change the perma id with the v1 redirect. is that ok?

If we merge now, the 0.8 files aren't going to resolve at all, I think. I'm working on a PR that publishes spec text and artifacts for all releases (0.8.0, 0.8.1, HEAD). The path pattern will be:

https://eclipse-dataspace-dcp.github.io/decentralized-claims-protocol/releases/HEAD/resources/
https://eclipse-dataspace-dcp.github.io/decentralized-claims-protocol/releases/0.8.0/resources/
https://eclipse-dataspace-dcp.github.io/decentralized-claims-protocol/releases/0.8.1/resources/

currently it's hard-coded as resources/0.8. If you wanna prepare a PR for that on w3id, that's fine.
I think a short timeframe of non-resolution is inevitable as this, my subsequent PR and the redirects will not be merged in sync.

@arnoweiss can you handle the merging of this PR and the others you refer to when you are ready?

I think it's fine though the artifacts were not there for 0.8 release and they basically refer to the 1.0 version right?


Smart Filter not Working

Describe the bug

For Smart Filter, it will work for only one condition, like value.eventData.dutyDepartment == "VQA"
but when their comes multiple condition, second, third and other condition wouldn't work properly like value.eventData.dutyDepartment == "VQA"  && value.eventData.moSapPlant =="123456"
The second part value.eventData.moSapPlant will be ignored, the result will only match dutyDepartement condition
Set up

Docker
Steps to Reproduce

Steps to reproduce the behavior:

Expected behavior

Screenshots

one condition

result

two condition

result

change condition step

result

The result only will match on first condition

Fix character escaping for the filter query
New line symbols should be present as well

Is there a work around for this at this moment?

Is there a work around for this at this moment?

unfortunately, no. But we're planning to fix this one soon.


C++ migration: add libdispatch-based version of FSTDispatchQueue

Re race on destruction: could this be resolved by destroying the operations array (and anything else sensitive like this) in a dispatch_sync?

Re race on destruction: could this be resolved by destroying the operations array (and anything else sensitive like this) in a dispatch_sync?

I have a theory (currently trying it out): perhaps waiting on the packaged_task::get_future() actually does provide the synchronization I expect, but the problem is that the worker thread accesses the vector (RemoveDelayedOperation) after the packaged_task is complete and thus this access is not synchronized. I'll try to remove the operation before running it and see if it helps.

the problem is that the worker thread accesses the vector (RemoveDelayedOperation) after the packaged_task is complete and thus this access is not synchronized.

It looks like I was right on this. Progress update: I reworked EnqueueAfterDelay to verify it's running on the worker queue, and changed the tests to respect that. Right now I'm working on fixingRunDelayedOperationsUntil (I didn't take note that in Objective-C, the callback object would still be alive by the time libdispatch gets to invoke it after the "force" invocation).

Note: I'm in the process of reworking this PR to use (more) shared pointers. (the pure C++ version doesn't depend on this PR in any way)

Reworked the ownership model in the PR, PTAL.

To summarize the offline discussion with @wilhuff:

I will try to simplify the ownership model. The main idea is to give libdispatch exclusive ownership of DelayedOperations (right now both libdispatch and AsyncQueue have equal ownership of those). Hopefully no issue comes up with this;
I'll hold off both libdispatch and C++11 versions of AsyncQueue to refactor them to a "shared class with Firestore-specific logic/platform-dependent implementation with lower-level stuff)" model.


Improve "reanalyze_all" page so that it only analyzes a fixed number of replays at a time

Currently, this page is likely to be very expensive to run. It's fine for now, because the site is cheap, but when it gets to be too expensive, we should change it to analyze only some of the replays, and have some sort of pagination view for it.

This has become important now due to the rf replays; it's no longer fast enough as it is.


Merge 11-15 updates to live

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Language/Reference/User-Interface-Help/accelerator-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/activecontrol-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/add-method-microsoft-forms.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/addcontrol-event.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/additem-method.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/afterupdate-event.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/alignment-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/autosize-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/autotab-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/autowordselect-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/backcolor-property-microsoft-forms.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/backstyle-property-microsoft-forms.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/beforedragover-event.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/beforedroporpaste-event.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/beforeupdate-event.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/bold-italic-size-strikethrough-underline-weight-properties.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/bordercolor-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/borderstyle-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/boundcolumn-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/boundvalue-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/builtin-property-vba-add-in-object-model.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/calendar-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/cancel-property-microsoft-forms.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/canpaste-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/canredo-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/canundo-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/caption-propert-microsoft-forms.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/change-event.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/checkbox-control.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/clear-method-microsoft-forms.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/click-event.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/clientheight-clientleft-clienttop-clientwidth-properties.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/collections-microsoft-forms.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/column-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/columncount-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/columnheads-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/columnwidths-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/combobox-control.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/commandbutton-control.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/concepts-microsoft-forms.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/controls-collection-microsoft-forms.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/controlsource-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/controltiptext-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/copy-method-microsoft-forms.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/count-property-microsoft-forms.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/curline-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/curtargetx-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/curx-property.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/cut-method-microsoft-forms.md
:white_check_mark:Succeeded
View

Language/Reference/User-Interface-Help/cycle-property.md
:white_check_mark:Succeeded
View

This comment lists only the first 50 files in the pull request.
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Store response fields as user defined variables

Issue/Current Implementation
Fields like ID are extracted from Create Task response and saved for further usage in Get task or Cancel Task.
It is embedded in the code and not abstract.
Dependent on the API Specification and has to be handled individually for every field.
Goal
Handle from the YAML test file.
Suggestion
jobs:
  - name: create_task
    ...
    storage_vars:
      id: response["id"]

storage_vars is the property for each job.
id (Key) is the variable reference name.
response["id"] (Value) is the expected field to extract from the response.

I would recommend dot notation for the property to extract, e.g., response.id, rather than response["id"], as the quotes might mess with the YAML parsing. Also, it's easier to read and write.
I'm also wondering if you are planning to support other uses for the variables than extracting properties from responses. If not, then you could skip response entirely. If yes, you need to consider that no ambiguities arise through the expected notation. For example, if you allow users to define variables with string values, like my_var: some_string_value, then it may not be obvious whether the user wants to extract a property or simply assign the string response.id or resoonse["id"] to a variable.

Sure, dot notation is better as you suggested.
At the moment, there are no other uses for variables. Should it look like this cpu_resources_var: resources.cpu_cores  instead of cpu_resources_var: response.resources.cpu_cores?
Later in case, we need to add some fields with their string-defined values (i.e. no extraction), we can store them under env_vars and describe the usage clearly in the template.

Don't have a strong opinion either way. A third option could be to borrow the notation on links from OpenAPI (and probably JSON Schema): https://swagger.io/docs/specification/links/

I suggest we can use this notation cpu_resources_var: $response.resources.cpu_cores. Specifying response will be intuitive and easy to understand. It also gives the sense of child-parent object relationship from the root, which can be confusing otherwise. Adding the $ will highlight the dynamic runtime response values.
We are only using the response body so we are good at this state. As the suite advances, we can follow the methodology from the links of OpenAPI.

Sounds good to me :)


Add multiple scrolls

What does this PR do?
This is to add multiple Scrrolls to any one specific url.
Each url can have multiple ScrollIds.
Just click on the add more scrolls button. Enter the name of new scroll and it will be added
Fetch and add is only working right now. If this PR is Ok .Then I will start working on Update and delete feature also and improve the UI

Any background context you want to provide?

Screenshots and/or Live Demo

@Pratyush1197 Can you also add a screenshot here for reference?

https://drive.google.com/file/d/1YgL7N2MR_aXwyO8O0TWGlpzGb75_KGrp/view?usp=sharing
I have made a video regarding features added till now. Please follow this link

@prateek3255 it's very discouraging to find that you haven't responded to the pull request .If u do not find it helpful you should have atleast told me the areas of improvement. If u are too busy then inform me you will check the pr once free. It's been almost 3 months and I check every week whether I got any feedbacks or not. Even I have invested my precious time and such cold behaviour is not acceptable. Plz don't ruin the culture of open source.
Thank You

@Pratyush1197 Sorry for missing this out. This hacktoberfest consisted of a lot of spam and irrelevant PRs so it got really difficult for us to keep track of the valid ones.
For the feedback, the video you added doesn't match the design in #79 I would recommend you to go through the conversation there and the Figma prototype for exact specifications.

Ok i will improve the ui

Added with #151


Add an allow snippet

Tab trigger all.
all<tab>
allow(book).to receive(:title) { "The RSpec Book" }

cf: https://github.com/rspec/rspec-mocks#method-stubs

Thanks!


Issue with discrete-time transfer function simulation for MIMO system

I have an issue trying to simulate a discrete-time transfer function for a MIMO system, using the function forced_response(). I used the lsim() function in MATLAB to compare and I got a correct response, but when I tried it in Python, I get a vector of zeros as a response followed by these messages:
Wrong parameter 1 in LAPACKE_chetrs_rook
Wrong parameter 1 in LAPACKE_dsyev_2stage_work
Wrong parameter 1 in LAPACKE_chbevd_2stage_work
Wrong parameter 1 in LAPACKE_dsyev_2stage_work
Wrong parameter 1 in LAPACKE_dsytrs
Wrong parameter 1 in LAPACKE_cheswapr_work
Wrong parameter 1 in LAPACKE_cgetrs
Wrong parameter 1 in LAPACKE_cgtsv_work
Wrong parameter 1 in LAPACKE_cgetrf_work

I tried using a code with a different function that I found on the internet and I get the same problem, discarding the coding as the cause.
I am running Windows 10 PRO 64 bits, Python 2.7 64 bits, PyCharm, control-0.8.1, scipy-1.2.0.
I installed numpy+mkl and slycot from the binnary wheels I found on https://www.lfd.uci.edu/~gohlke/pythonlibs/ using pip-19.0.1.

Can you include some example code that generates the error message?

I cannot send you my code, but using the code from issue #113
import control as ctl
import control.matlab as ml
import numpy as np
import matplotlib.pyplot as plt

j = np.complex(0,1)
a = -7+j*np.sqrt(51)
b = np.conjugate(a)

# Sistema en contínuo
sys1c_num, sys1c_den = ml.zpk2tf([], [-.5, a, b], [-100])
sys1c = ctl.TransferFunction(sys1c_num, sys1c_den)
Tc, y1c = ctl.impulse_response(sys1c)
plt.plot(Tc, y1c, label='continuous');

# Sistema Discreto

dt = 0.001
sys1d = ctl.sample_system(sys1c, dt, method='zoh')

td = np.arange(0.,Tc[-1]+dt,dt);
u1d = np.zeros(td.shape);
u1d[0] = 1/dt # seems to correspond to a continuous time impulse

Td, y1d, _ = ctl.forced_response(sys1d, td, u1d, 0)
plt.plot(Td, y1d, label='discrete, input step 1ms');

# try with 1s sample rate

dts = 1
tds = np.arange(0.,Tc[-1]+dts,dts);
u1ds = np.zeros(tds.shape);
u1ds[0] = 1/dts

Tds, y1ds, x1ds = ctl.forced_response(sys1d, tds, u1ds, 0)
print('tds.shape',tds.shape,
      'u1ds.shape',u1ds.shape,
      'Tds.shape',Tds.shape,
      'y1ds.shape',y1ds.shape,
      'x1ds.shape',x1ds.shape)

assert td.shape[0] == y1ds.shape[0]
plt.plot(td,y1ds,label='discrete, input step 1s')
plt.legend()
plt.show()

This code simply works on my computer (Fedora 28, latest slycot/python-control, python3, with some fixes for the dimensions when plotting)
Would you be able to try this on a more modern conda-based installation?
Anaconda, slycot for windows from my channel (repa), and python-control from the conda-forge channel.
p.s. one day we should get around to creating slycot for windows on conda-forge

This code simply works on my computer (Fedora 28, latest slycot/python-control, python3, with some fixes for the dimensions when plotting)
Would you be able to try this on a more modern conda-based installation?
Anaconda, slycot for windows from my channel (repa), and python-control from the conda-forge channel.
p.s. one day we should get around to creating slycot for windows on conda-forge

Thank you for the answer, could you send me the links for the packages?
I am currently using pip to install the packages, but if you think conda could work I will try it.
I am a bit new to Python, so if you could also guide me a little through the installation it would be great.

This code simply works on my computer (Fedora 28, latest slycot/python-control, python3, with some fixes for the dimensions when plotting)
Would you be able to try this on a more modern conda-based installation?
Anaconda, slycot for windows from my channel (repa), and python-control from the conda-forge channel.
p.s. one day we should get around to creating slycot for windows on conda-forge

I installed Anaconda, but when I try to install slycot from your channel I get this error:
(memoria) C:\Users\Francisco Fernández>conda install -c repa slycot
Collecting package metadata: done
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  - slycot

Current channels:

  - https://conda.anaconda.org/repa/win-32
  - https://conda.anaconda.org/repa/noarch
  - https://repo.anaconda.com/pkgs/main/win-32
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/free/win-32
  - https://repo.anaconda.com/pkgs/free/noarch
  - https://repo.anaconda.com/pkgs/r/win-32
  - https://repo.anaconda.com/pkgs/r/noarch
  - https://repo.anaconda.com/pkgs/msys2/win-32
  - https://repo.anaconda.com/pkgs/msys2/noarch
  - https://conda.anaconda.org/conda-forge/win-32
  - https://conda.anaconda.org/conda-forge/noarch

To search for alternate channels that may provide the conda package you're
looking for, navigate to

    https://anaconda.org

and use the search bar at the top of the page.

Wrong parameter 1 in LAPACKE_chetrs_rook

That indicates the extension was built against an older version of openblas. Recompiling fixed that. https://www.lfd.uci.edu/~gohlke/pythonlibs/#slycot

Looks like this was a version issue.  Closing, but reopen if I missed something.


Secretless configuration can be specified using K8s CRDs

Objective
At current the Secretless configuration must be specified in a YAML file that is loaded into the Secretless container, usually via ConfigMaps.
With this change, the Secretless configuration can be loaded into a K8s custom resource definition before the sidecar is deployed, and the Secretless sidecar can reference the relevant CRD in its manifest.
Background on CRDs:
https://github.com/yaronha/kube-crd
https://github.com/kubernetes/code-generator
Story Breakdown

[x] Parent of #368 - CRD configuration plugin is tested
[x] Parent of #355 - CRDs spike
[x] Parent of #356 - CRDs usable in Secretless Broker
[ ] Parent of #365 - CRD documentation
[ ] Parent of #368 - CRD plugin test
[x] Parent of #389 - CRD injector fix

Another info page on this: https://blog.openshift.com/kubernetes-deep-dive-code-generation-customresources/

Duplicate of #836


Add ModularFuelSystems 5.7.4

Closes KSP-CKAN/CKAN#1719

Want to add?
    "download_hash": {
        "sha1": "C52E0DC8B469307FCF3B8E37795CD04B3B146C26",
        "sha256": "D3FE1C710E5F60C3AE25F7E0B5FA3BB40D3E21E99DE163743AC63D5271C5E955"
    },
    "download_content_type": "application/zip"

Bah whatever, I'll work on this once netkan pushes non-kref ckans.

All future ones will have that stuff.

We'll need to go back-fill that data anyway, so no biggie if things aren't there yet. Though I thought we were moving to doing everything in NetKAN now (which would add that).

I didn't think we could move forward on that. I was under the impression .netkans not having a kref would choke either Jenkins or the indexer. If that's not the case, we can merge https://github.com/KSP-CKAN/NetKAN/pull/3893 and that'll get us 90% of the way there.

Ahh, it might be Jenkins that chokes. Netkan is totally fine with it, I've been testing mirror stuff with ckans pushed through netkan first.


Feedback modal is only in German

Describe the Bug
When I open the feedback modal in languages other than German, most of the text is in German only
Steps to Reproduce

Go to 'https://integreat.app/lkansbach/en'
Click on 'Feedback'
See that the feedback modal is largely in German

Expected Behavior
It should be all in the selected language.
Actual Behavior
It is mostly in German.
Additional Information

Thats not a bug, we just need to do the translations again. Would probably still make sense to do this :)


[BUG] Moon Phases Lining Up Incorrectly With Dates

I’m a bit flummoxed with the Moon Settings. I’ve exported from Fantasy Calendar (https://app.fantasy-calendar.com/) and imported the json file into Simple Calendar. However, the moon phases don’t line up with the dates correctly. I’ve tried to input the data manually, but I get the same results.
Please help.

Hey,
I'm not sure how you imported from fantasy calendar as simple calendar doesn't support importing from there yet.
Which calendar are you trying to set up?
The data you will want to edit is setting the moons first new moon date, this is the date of any new moon but is how the calendar calculates when other phases are. It is also important to ensure that the cycle length is as specific as possible, adding decimal places helps ensure this.
Moons are tricky to get exactly right, with a good first new moon date and a specific cycle length you can get them very very close but there will always be phases that are not exact but within a day or so.
In project 1.5.x I am planning on revisiting my calculations to try and make them more accurate but for now the above information is the best way to get it close.

I guess I didn't actually... I tried the import button but I guess that's why it didn't work correctly, lol.
I'm trying to set up the Eberron calendar (the Calendar of Galifar). Aside from the Fantasy Calendar site, there's also this tool ( http://www.wizards.com/dnd/ec/index.htm) that tracks the moons' phases for Eberron.
I'll give it another shot, thank you.

No problem, I know a few people have set up Moons for Eberron, you could try asking in the Foundry Discord to see if anyone has advice on the best values to use :)


showcasing the use of memory_profiler / debug-toolbar

Add requirements
Configuration for debug toolbar
Add timeit helper function decorator
Showcasing the use of memory_profiler and timeit

Note: this patch attempts to showcase the use of several tools to highlight the problem in the large transactions during save.
Some changes requires the update of installed_apps which is included in settings_local only. To explore the use of this patch, you may need to update following items in settings_local:

Add debug_toolbar to INSTALLED_APPS
Add INTERNAL_IPS:

INTERNAL_IPS = [
    "<IP_ADDRESS>"
]

Configure STATIC_URL/STATIC_ROOT accordingly, my configuration is as follows:

STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR
STATICFILES_DIRS = (
    BASE_DIR / "static",
)

You don't have to follow the configuration above, refer to the offical guide is more straightforward:
https://django-debug-toolbar.readthedocs.io/en/latest/installation.html

closing as this won't be merged.


Understanding bazel fusesoc rules

Hi there,
this is more of a question than an issue against OT.  I've been looking at how you've integrated fusesoc into your bazel flow and had a question.
In my use case I'm trying to integrate gRPC with Verilator so am trying to work out the best way to compile the project as a whole.  My understanding of your Verilator flow is that you don't have any external dependencies so all your CPP files are specified in core files passed to fusesoc.  So just to confirm, does your bazel rule just launch fusesoc to compile the final executable?
I guess I have two options: 1) create a core file for the gRPC source and add that as a dependency in my Verilator core file; 2) use bazel to build the final executable such that I can use the gRPC bazel deps but somehow pass the output of the Verilator build as a dependency to bazel.
In your experience of running fusesoc via bazel, is that second option even possible?
Thanks.

In my use case I'm trying to integrate gRPC with Verilator so am trying to work out the best way to compile the project as a whole. My understanding of your Verilator flow is that you don't have any external dependencies so all your CPP files are specified in core files passed to fusesoc. So just to confirm, does your bazel rule just launch fusesoc to compile the final executable?

We do depend on the local installation of Verilator on the host machine. FuseSoC and Verilator aren't compatible with the bazel sandbox (yet). Bazel invokes FuseSoC which invokes Verilator to make the model which is then used in tests with SW and a test harness (that's usually OpenTitanTool). Let me know if that answers this first part of the question.

In your experience of running fusesoc via bazel, is that second option even possible?

Our tests then attach a number of interfaces between the harness and the verilated binary. If we wanted to implement gRPC on OT and run it in a test, I'd imagine it would get built in SW and into the test harness, and would run across one of these interfaces.

Please let us know if you have any follow up questions.

Thanks and sorry, I missed the replies here.  Must have flown past in my inbox.
I ended up dropping Bazel as it was too much of a pain in the back side to get it working.  I'm just using Fusesoc with a CMake generator to compile the gRPC code into libs and copy those into the Fusesoc Verilator build directory.  Seems to work well enough.