Support GPX manipulation

Some devices do not know how to handle GPX tracks well (Mainly Gramin).
I have some code in my site that converts all the tracks to a single route.
And some code to convert all track segments to a single segment.
I thought this library might be a good fit for this logic.
Below is the code - assuming issue #12 is resolved:
Single segment:
            var singleTrackGpx = new GpxMainObject
            {
                Waypoints = gpx.Waypoints,
                Routes = new List<GpxRoute>(),
                Tracks = (gpx.Tracks ?? new List<GpxTrack>()).Select(t => new GpxTrack(
                    name: t.Name,
                    description: t.Description,
                    comment: t.Comment,
                    segments: new [] { new GpxTrackSegment(new ImmutableGpxWaypointTable(t.Segments.SelectMany(s => s.Waypoints)), null) }.ToImmutableArray(),
                    source: t.Source,
                    links: t.Links,
                    number: t.Number,
                    classification: t.Classification,
                    extensions: t.Extensions)).ToList()
            };

Single route:
            var routes = gpx.Routes ?? new List<GpxRoute>();
            routes.AddRange((gpx.Tracks ?? new List<GpxTrack>()).Select(t => new GpxRoute(
                name: t.Name,
                description: t.Description,
                comment: t.Comment,
                waypoints: new ImmutableGpxWaypointTable(t.Segments.SelectMany(s => s.Waypoints)),
                source: null, links: ImmutableArray<GpxWebLink>.Empty, number: null, classification: null, extensions: null
            )));
            var routeGpx = new GpxMainObject
            {
                Waypoints = gpx.Waypoints,
                Routes = routes.ToList(),
                Tracks = new List<GpxTrack>(),
            };

@airbreather Do you think this code will make it to this library or not?
I'm asking since I'm working on upgrading NTS libraries and would like to do it in a single commit, I don't mind waiting a bit for this to be implemented in order to remove the code from my repository.

Do you think this code will make it to this library or not?

Probably not for a while.  The main purpose of NetTopologySuite.IO.GPX is to convert back and forth between NTS and GPX.
IMO, the data model here isn't a really great foundation to actually build on for your application's own domain model, since it's primarily driven by the constraints of having to match a >14-year-old XML schema.  So I'd expect this use case to be handled somewhat "automatically", via a process like:

Load your own domain model, perhaps from a GPX file provided by the user
Do whatever your application does
Export your domain model, perhaps to a GPX file that you build via whatever constraints are imposed by your target device


Two-round watchtower opinion polling for fund managers

This introduces a way to poll watchtowers without a fully signed spend transaction to:

avoid being locked up with an unspendable spend transaction (see https://github.com/re-vault/practical-revault/issues/4)
only access HMs if its worth it

This also includes two drive-by fixups needed for this.
Fixes https://github.com/re-vault/practical-revault/issues/4

Update diagrams
Add the unsigned spend tx to the opinion

@JSwambo plz sir me wanna merge :(

How actually i didn't edit it since last time! Please disregard will do soon

Done, this is now ready for review

Ok, updated the first nits, the pubkey inclusion deserves its own pr imo

As discussed yesterday, this introduces a ""reliance"" on the sync server for authenticating the managers. I think it's fine, so was for reference.


aws_iot_mqtt_init returned error: -2

IDF version: ee3f64cb
Development Env: Make
Operating System: macOS
Power Supply: USB

Problem Description
I have been trying to implement the aws-iot subscribe_publish IDF example in my project, but run into the error "aws_iot_mqtt_init returned error: -2" in the aws_iot_task() method in the example. I have followed the readme at protocols/aws-iot to create the thing, certificates and policies in AWS IOT and have copied those certificates to the main/certs directory in my project and renamed them to "aws-root-ca.pem", "certificate.pem.crt" and "private.pem.key". Although I am a bit confused as to which of the root certs I have to download. AWS docs say that ideally you need all of these certificates, but I have added only the first one "VeriSign Class 3" into my directory and renamed it to "aws-root-ca.pem". I then ran make menuconfig and under Component Config, I first checked Amazon Web Services IoT Platform, under which I added my Endpoint Hostname from my AWS account leaving all the rest of the options set to default . AWS IoT MQTT Port is set to 8883.
I then run make app-flash monitor, it compiles just fine, my code already has the example setup to get the time from NTP servers and it successfully gets that time but after that it throws me the error I have mentioned above and AWS does not work. What am I doing wrong here?
Code to reproduce this issue
main.cpp
Debug Logs
D (1492) event: SYSTEM_EVENT_STA_CONNECTED, ssid:Sheikh's Ground, ssid_len:15, bssid:14:d6:4d:36:e8:36, channel:2, authmode:3
D (1500) tcpip_adapter: dhcp client init ip/mask/gw to all-0
D (1505) tcpip_adapter: if0 start ip lost tmr: enter
D (1510) tcpip_adapter: if0 start ip lost tmr: no need start because netif=0x3ffc5d34 interval=120 ip=0
D (1521) tcpip_adapter: dhcp client start successfully
D (3221) tcpip_adapter: if0 dhcpc cb
D (3222) tcpip_adapter: if0 ip changed=1
D (3222) event: SYSTEM_EVENT_STA_GOT_IP, ip:<IP_ADDRESS>, mask:<IP_ADDRESS>, gw:<IP_ADDRESS>
I (3227) event: sta ip: <IP_ADDRESS>, mask: <IP_ADDRESS>, gw: <IP_ADDRESS>
I (3234) Example: Initializing SNTP
I (3240) Example: Waiting for system time to be set... (1/10)
I (5245) Example: The current date/time in Pakistan is: Sun Aug 12 17:39:48 2018
I (5245) Example: AWS IoT SDK Version 3.0.1-
E (5252) Example: aws_iot_mqtt_init returned error : -2
abort() was called at PC 0x400d3210 on core 1

@sheikhumar93
Returned error -2 indicates null value for required parameter. Could you please check along those lines at https://github.com/espressif/aws-iot-device-sdk-embedded-C/blob/299183238ffe7a3e6a5ca0af9db19c10eaca62cf/src/aws_iot_mqtt_client.c#L215


[Discussion] Service Bus - Track 2 - Client Hierarchy

The intent of this issue is to solicit feedback from the community in advance of the GA of the next major version of the Service Bus library (which will follow several Preview releases).
As a reference, the .NET Azure SDK guidelines can be found here: https://azure.github.io/azure-sdk/dotnet_introduction.html
Terminology:
Track 0 refers to the WindowsAzure.ServiceBus library
Track 1 refers to the Microsoft.Azure.ServiceBus library
Track 2 refers to the new library, Azure.Messaging.ServiceBus, we are working on releasing.
This issue specifically covers the client hierarchy we are proposing.
Guiding principles

Approachability
The perceived complexity of an API increases as the number of types increase, particularly when it comes to types that users need to construct directly.

Consistency
Have a consistent API across use cases, particularly when comparing session vs non-session use case.

Resource usage
Connections are expensive in the AMQP world and should be reused where possible. Connection sharing is critical for session use cases where a client is expected to handle many sessions, and a separate receiving link is needed for each session.

Based on these principles, we arrived at the idea of a having a single top level client, called ServiceBusClient, that users would construct in order to use Service Bus.
Approachability
The ServiceBusClient helps with the discoverability of the API as you can dot into the client and see all the available methods as opposed to searching through documentation or exploring namespace for the types that you can instantiate. Whether sending or receiving, or using sessions or not, users will start their applications by constructing the same client.
Consistency
This client also presents an opportunity for making session/non-session usage a bit more consistent as compared to previous libraries. In the previous library, there was a different top-level client when working with sessions, called SessionClient. This client could be used to spawn off receiver instances by calling AcceptMessageSessionAsync.
In Track 2, we are making an attempt to have the session/non-session usage be as seamless as possible. This allows users to make less changes to their code if they decide they want to start or stop using sessions in an already coded app.
Resource usage
By using a single top-level client, we can implicitly share a single connection for all operations that an application performs. In the previous library, connection sharing was implicit when using the SessionClient, but when using other clients, users would need to explicitly pass in a ServiceBusConnection object in order to share a connection. By making this sharing be implicit to a ServiceBusClient instance (in fact ServiceBusConnection will no longer be exposed), we can help ensure that applications will not use multiple connections unless they explicitly opt in by creating multiple ServiceBusClient instances.
Creating a ServiceBusClient
The ServiceBusClient can be created using either TokenCredential or connection string.
// connectionString as generated from the Portal
var client = new ServiceBusClient(connectionString);

// fullyQualifiedNamespace would be the account namespace,
// e.g. mynamespace.servicebus.windows.net
// tokenCredential would be a credential of type Azure.Core.TokenCredential
var client = new ServiceBusClient(fullyQualifiedNamespace, tokenCredential);

Sending and Receiving
In the typical use case, an app will either be sending or receiving from a particular entity. As such, it makes sense to split the API into sending/receiving.
// In order to create a sender
ServiceBusSender sender  = client.CreateSender("myQueueOrTopic");

// Similarly for creating a receiver, you would call
ServiceBusReceiver receiver = client.CreateReceiver("myQueue");

// or for subscriptions
ServiceBusReceiver receiver = client.CreateReceiver("myTopic", "mySubscription");

Receiving from sessions
When working with sessions, users can receive from a particular session by providing a session id or they can choose to receive from any available session. As such we have a different type for session receiving and different methods for creating a session receiver.
// In order to create a receiver scoped to the next available session
ServiceBusSessionReceiver receiver = await client.CreateSessionReceiverAsync("myqueue");

// In order to create a receiver scoped to a specific session
ServiceBusSessionReceiver receiver = await client.CreateSessionReceiverAsync("myqueue", sessionId: "mySessionId");

You may have noticed that the methods to create a session receiver are async. In order to ensure that a session receiver is usable, it is necessary to first establish a session lock. We establish this lock when calling CreateSessionReceiverAsync, in order to ensure that when the SessionReceiver is returned it will be associated with a particular session that it has the lock for, and that the SessionReceiver properties, SessionId and SessionLockedUntil will be populated.

/cc @SeanFeldman

Adding some community members who have recently submitted issues/PRs for Service Bus 😃
/cc @nemakam @SeanFeldman @einarsson @brandondahler @broloaugh @ankrause @grimgadget @ShaneCourtrille @Pucmaster @Bnjmn83

Consistency
This client also presents an opportunity for making session/non-session usage a bit more consistent as compared to previous libraries. In the previous library, there was a different top-level client when working with sessions, called SessionClient. This client could be used to spawn off receiver instances by calling AcceptSessionMessage.

To accept a session message, wouldn't you require a session to be selected and locked? And if so, it's already an async operation, which the suggested method would have to match by following the Async suffix.
I'm also not clear what is the benefit of this "seamless" consistency. Non-session messages are not correlated. Session messages are. What would be the scenario to Accept a Session message? Unless you the intent is to "Accept (a) Session", but then you've got a duplication with the ServiceBusSessionReceiver  described later (under 'Receiving from sessions' section).
Summary: session and non-session messages have very distinct and different scenarios. Merging the two into a single scenario gains what other than API consistency?

Resource usage
By making this sharing be implicit to a ServiceBusClient instance (in fact ServiceBusConnection will no longer be exposed), we can help ensure that applications will not use multiple connections unless they explicitly opt in by creating multiple ServiceBusClient instances.

I.e. connection pooling at the level of the ServiceBusClient. This is what MessagingFactory was doing in Track 0 (yes, that was a thing). This is a better design as it will cause less confusion. Though I'd like to highlight that the objective should not be ensuring fewer connections are established, rather help users understand when a new connection established or not. This approach is safer. 👍

To accept a session message, wouldn't you require a session to be selected and locked? And if so, it's already an async operation, which the suggested method would have to match by following the Async suffix.

I had the name of the method wrong. It is called AcceptMessageSessionAsync, as you are accepting a session, not a message. Calling this method is the point at which a session would be selected by the service (if I don't supply a session Id), and the session would be locked.

I'm also not clear what is the benefit of this "seamless" consistency. Non-session messages are not correlated. Session messages are. What would be the scenario to Accept a Session message? Unless you the intent is to "Accept (a) Session", but then you've got a duplication with the ServiceBusSessionReceiver  described later (under 'Receiving from sessions' section).
Summary: session and non-session messages have very distinct and different scenarios. Merging the two into a single scenario gains what other than API consistency?

I think the consistency is more about the entry point into the API. If you want to do session receiving without using the pump, in the previous library you would have to start by constructing a SessionClient, which is different than the type you would start with when not using Sessions (i.e. the MessageReceiver).
There are separate types for session vs. non-session receiving in this library as well, but the code written for setting up session vs non-session receiving would be very similar.

I had the name of the method wrong. It is called AcceptMessageSessionAsync, as you are accepting a session, not a message. Calling this method is the point at which a session would be selected by the service (if I don't supply a session Id), and the session would be locked.

In that case, you still have it off, as the section calls it out as AcceptMessageSession rather than AcceptMessageSessionAsync. The Async suffix is missing. Then it makes sense 👍
What would serviceBusClient.AcceptMessageSessionAsync(...) return?

I had the name of the method wrong. It is called AcceptMessageSessionAsync, as you are accepting a session, not a message. Calling this method is the point at which a session would be selected by the service (if I don't supply a session Id), and the session would be locked.

In that case, you still have it off, as the section calls it out as AcceptMessageSession rather than AcceptMessageSessionAsync. The Async suffix is missing. Then it makes sense 👍
What would serviceBusClient.AcceptMessageSessionAsync(...) return?

Updated..
This method is used in the Track 1 library so it will be called off of the sessionClient.
sessionClient.AcceptMessageSessionAsync would return a MessageSession object which derives from the MessageReceiver.

+1 for the emphasis on approachability. This is also more consistent with other SDKs.

/cc @danielmarbach

I'm 👍 on what is outlined in the reasoning in the description of this issue. The only thing I was opposed to was to prefix the factory methods with Get and I would have proposed a Create prefix but I see this has already been addressed in the code but hasn't been updated/reflected in the issue description.

I'm 👍 on what is outlined in the reasoning in the description of this issue. The only thing I was opposed to was to prefix the factory methods with Get and I would have proposed a Create prefix but I see this has already been addressed in the code but hasn't been updated/reflected in the issue description.

Updated!

@JoshLove-msft I'm somewhat confused. The methods where already prefixed with Create. Also, the preview package had the right prefixes on the factory method names. So other than the wording, what else has changed?

@JoshLove-msft I'm somewhat confused. The methods where already prefixed with Create. Also, the preview package had the right prefixes on the factory method names. So other than the wording, what else has changed?

I meant that I updated the code snippets in this issue to match what we are already using.

Thanks for the participation everyone!
Closing this issue as it has served its purpose. We have moved the new Azure.Messaging.ServiceBus package out of previews and into a stable release (version 7.0.0) with two top level clients

ServiceBusClient that can be used to create senders, receivers and processors
ServiceBusAdministrationClient that can be used to manage Service Bus queues, topics, subscriptions and rules.

Thanks for the participation everyone!
Closing this issue as it has served its purpose. We have moved the new Azure.Messaging.ServiceBus package out of previews and into a stable release (version 7.0.0) with two top level clients

ServiceBusClient that can be used to create senders, receivers and processors
ServiceBusAdministrationClient that can be used to manage Service Bus queues, topics, subscriptions and rules.


Update CI configs

Looks using coveralls here. Other repos uses codecov.
CI is not running on recent master branch commits.

done by https://github.com/pion/quic/pull/22


Reducer returns correct newState, however store state is unchanged

Hi,
Some cases under my reducer won't update the state store. This shows that there may not be anything wrong with the reducer itself. While debugging, here's what I know for sure:
The reducer is correctly integrated into the indexReducer, since other cases inside the same reducer correctly change the store state.
The new state returned by the reducer is ALWAYS a copy of the previous state, so I'm not mutating my state.
The react component which dispatches the action to the reducer has a container which is a connected component, i.e connected to the redux store.
I've printed out the new state just before it's returned, an it's what I expect, the only problem is the redux store not doing anything with the returned new state.

This is a bug tracker.  Please ask usage questions on Stack Overflow or in the Reactiflux forums - you'll have more people who will see the question and can help you.
Also, I'd encourage you to include the relevant code with your question, as it's hard to guess what's going on without being able to see the actual code.


Fix tile index being off by one

With this.firstgid defaulting to 0 the tile index of every tile rendered is one more than it should be. With this.firstgid defaulting to 1 the problem seems fixed.
It is true that the first tile id of a Tiled tileset is 0 but for phaser the same tile was always referenced by tile index 1.

This was fixed in 2.4


Random Channels broken

Im not sure if this is a betterdiscord bug or a bug for one of my plugins, as i have many
But random channels are never loaded when i open discord
like i dont get notifications for them and when i try to go in them, they never load
which channels are affected are random every time i open discord
no clue whats causing it
Im on mac

This repository is for issues with the BetterDiscord installer.


Add PHP 8.2 Support

Summary
This PR adds PHP 8.2 to the tests workflow.
id:php82-support/v1

Thanks!


[Bug]: Repeated Get() in CompanyInformation(79) table

Describe the issue
After runnig a report in which you use GetCompanyAddr() in Codeunit "Format Address" (or modified report with this procedure) you can add some info in Company Information without inserting it, in such a way substitute value in reports,
But, there is a procedure, where CompanyInformation is Getting for the second time. It spreads overwriting data.

Expected behavior
Please see the possibility to add an event, as well as make sure that your functionality is practiced correctly for Responsibility Center in the reports where there are some modifications.
Change the logic to do it without Get()
Steps to reproduce
runnig a report in which you use GetCompanyAddr()
Additional context
No response
I will provide a fix for a bug

[X] I will provide a fix for a bug

Sounds fair, but since the code you are referring to is in the BaseApp, you'd have to suggest and fix this code in the BaseApp contribution pilot: https://github.com/microsoft/businesscentralapps. For access to the pilot, please fill out the following form: https://forms.office.com/r/E9wyE5a58f.
This repository is only for extensibility requests or pull requests towards the 1st party Business Central apps.
Would you like me to move the issue to the contribution pilot for you?
IMPORTANT: Microsoft is not going to address the reported issue for you. You will have to get the issue approved, and then push a pull request with the suggested changes yourself. If you would like Microsoft to address the issue, please create a support request.

u don’t take my form, I’ve sent it about five times

u don’t take my form, I’ve sent it about five times

I did receive your form! And you should have received an invitation some time ago. I just tried adding you again and GitHub returned:
SerhiiKorniichuk1 was invited to microsoft/BusinessCentralApps on May 7, by this system. The user must accept the invitation to get access.
Please check if cannot find the invitation. Once accepted, you should have access.

I tried again

look forward to your confirmation

I tried again  look forward to your confirmation

Well, I do have your form entry, and did add your GitHub user name to the repo. When I try to do so again, the system tells me that you've already been invited and that you must accept the invitation. Are you sure you cannot do that somewhere?


feat: added typescript support and definitions + some validation

In order to test out if I can use this repo as boilerplate for my purpose I played around with adding TS + some basic validation. This PR contains results of my work.

Hi @KarolNov, thanks for the PR! Sorry for the slow response here, I've been debating whether adding typescript is a good idea or not for this repo due to added complexity for beginners. I want to keep the repo accessible to new devs and that was the main reason it was not added in the beginning.
After giving it some thought I think the benefits outweighs the potential complexity. Would you mind solving the outstanding conflict so I can merge this?
Thanks

@samuelkraft I guess that make sense and the typings I did are quite complicated (I use different built-in magic methods like Extract) and might be confusing for beginners. I wonder what's the best solution here, but I'm planning to build an open source CMS engine for Notion using Typescript, so I guess once that's published anyone interested in Typescript version can go and find it. If you still think it's worth it I can resolve the conflict when I'll have some spare time.

Closing this to focus on the basic js implementation


Add docker image

Hi there!
Adding docker images with cruft. This workflow automatically builds docker images with cruft installed and pushes them to github packages and dockerhub registries.
You need to create a dockerhub account, create a repository there and set DOCKER_HUB_USERNAME and DOCKER_HUB_ACCESS_TOKEN secrets in the settings page.

Note: arm/v6 arch commented out since  python build issue https://github.com/docker-library/python/issues/823

Test images was pushed from https://github.com/jetexe/cruft/pull/2 PR:

Dockerhub
ghcr

Usage example:
# remember to run as the current user to have access to the file system.
docker run --rm -it -u"$(id -u):$(id -g)" -v"${PWD}:/app" -w /app cruft/cruft:2.14.0 check

Closes: #97

@jetexe Thanks for this PR. I would prefer if we only published to ghcr. Would you be okay removing the dockerhub related logic?

Thanks for this PR. I would prefer if we only published to ghcr. Would you be okay removing the dockerhub related logic?

Not a problem. Removed.


Question on error

Hi,  if this is not the appropriate place to post this question please let me know, but I couldn't locate a support forum for LevelX.
We are using Azure ThreadX & FileX along with LevelX on a Winbond 1Gbit SLC NAND.  File X version is 6.1 and Level X is 6.1.9.
We have noticed that during start-up, in the function _lx_nand_flash_open() ,  LX_SYSTEM_INVALID_FORMAT error(s) are being detected and logged. See attached screenshots showing the state of LX_NAND_FLASH data structure on error and soon after init.
It appears this error is not considered fatal by Level X as the process continues and eventually, the function returns LX_SUCCESS.

Is this error something to be concerned about?
What may be causing the error?

Thank you.

Hello @bhnaphade @xiuwencai can you please followup on this question? Same was asked in Microsoft Q&A: https://docs.microsoft.com/en-us/answers/questions/724004/index.html
Thanks @john-rubis for your time!


Last use doesn't consider closure bodies properly

The following test case will crash (once fixed, something similar should be added to the test suite):
fn invoke_several_times(f: lambda()) {
    f();
    f();
    f();
}

fn bycopy<K>(+k: K) { log(error,k); }
fn byref<K>(&&k: K) { log(error,k); }

fn testfn(+k: ~int) {
    bycopy(k); // <-- gets incorrectly optimized into a move
    invoke_several_times {||
        byref(k);
    }
    // bycopy(k); <-- (this would be a last use)
}

fn main() {
    testfn(~22);
}

The reason is that the bycopy(k) is considered a last use of k as uses via upvar are not considered by the last use analysis.  I think we should probably just disable any 'last use' reasoning about variables that escape into a closure of any kind.  After all, the closure could be stored and invoked any number of times, so it's hard to reason about what a last use is in that context.
The only place we could try to get smart is around blocks (i.e., closures with proto block), as they cannot escape and so can be tracked more precisely: in the example above, we know that the block passed to invoke_several_times() won't leak, so a final call to bycopy(k) could safely be considered a last use (as indicated in the example).
As an aside, there is some code in lastuse.rs that seems to try to consider blocks and closures carefully, but so I could not quite figure out what constraints it was trying to enforce.  It didn't seem right to me, but I might be missing something.  The code analyzes blocks twice, presumably to account for the possibility of the block being invoked multiple times: but seeing as upvars are ignored, I don't think this serves its intended purpose.  In addition, it may harm the precision of the analysis for non-upvars within the block?  There is also some special reasoning that delays the visiting of closure arguments to a function until after the rest of the function has been analyzed, though I'm not quite sure why.  Perhaps to simulate the possible execution order?  Removing this special case made no difference in any of my tests.

I think we should probably just disable any 'last use' reasoning about variables that escape into a closure of any kind. After all, the closure could be stored and invoked any number of times, so it's hard to reason about what a last use is in that context.

Unless your changes were more radical than I understood them, only copying closures can be stored anywhere. A 'block' closure an only be invoked (0-N times) by the call that it is passed to, and behaves much like a loop.
The bug you see probably results from the block being classified incorrectly. I'll debug.

Yes, of course, I forgot that lambdas etc copy the variables at the point of creation, so it's a moot point for those sorts of closures.


Updating Master with Live

Docs Build status updates of commit 2d6ef5b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

biztalk/core/biztalk-assemblies.md
:white_check_mark:Succeeded
View

biztalk/install-and-config-guides/hardware-and-software-requirements-for-biztalk-server-2020.md
:white_check_mark:Succeeded
View

biztalk/install-and-config-guides/post-configuration-steps-to-optimize-your-environment.md
:white_check_mark:Succeeded
View

biztalk/install-and-config-guides/set-up-and-install-prerequisites-for-biztalk-server-2020.md
:white_check_mark:Succeeded
View

biztalk/install-and-config-guides/whats-new-in-biztalk-server-2020.md
:white_check_mark:Succeeded
View

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.


Added self-hosting agent recommendation to ui testing doc

Recommended self-hosted agent for running selenium tests in ADO.

Good update here.  I guess it all depends on what the build in packages are for the ms hosted agents which can be seen at https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml.   If installing anything requires sudo, for example on linux, then sudo isn't available (we found that out on a recent engagement).  That can be hacked around, but sometimes a self-hosted agent is easier!

Good update here.  I guess it all depends on what the build in packages are for the ms hosted agents which can be seen at https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml.   If installing anything requires sudo, for example on linux, then sudo isn't available (we found that out on a recent engagement).  That can be hacked around, but sometimes a self-hosted agent is easier!


workaround stun/fast_tls dependency errors

rebar3 can't resolve the legacy dependency format used by stun. Right now working around this by patching the rebar.lock, but it's a brittle solution.

see https://github.com/processone/fast_tls/issues/30


VS Code API does not return isSingleLine true on triple-click line selection

Version: 1.52.1 (user setup)
Commit: ea3859d4ba2f3e577a159bc91e3074c5d85c0523
Date: 2020-12-16T16:34:46.910Z
Electron: 9.3.5
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19041
Steps to Reproduce:

Open a text document with some sample content, for example:

This is my document
second line
third line

Outside of the bounds of line 1, triple click to select the line for This is my document.
The actual selection is line 1: col 0: to line 2: col 0.
Note that in the case of selecting the third line, the selection is line 3: col 0 to line 3: .

While the behavior is inconsistent, the issue I that when writing a VS Code extensions that uses the TextEditorSelectionChangeEvent event, the isSingleLine Selection property is not consistent and misses covering the case of triple-click selection. Instead, in my selection handling logic, I need to code similar to below to correctly handle this case:
- if (selection.isSingleLine) {
+ if ((selection.start.line === selection.end.line) || (selection.start.line === selection.end.line - 1 && selection.end.character === 0)) {
    // Do single-line selection behavior
 }

I don't mind the behavior but it would be ideal if the API correctly returned isSingleLine in this case.

Does this issue occur when all extensions are disabled?: Yes

Triple click (or clicking on a line number) is implemented by setting the selection from the start of the current line to the start of the next line:

This means that the current text on the line plus its EOL sequence (\n or \r\n) is selected.
In our coordinate system, the position after \n or \r\n is not accounted on the current line, but on the next line. So basically the above screenshot represents a selection from line: 21, char: 0 to line: 22, char: 0.
Selection.isSingleLine is speced to be "`true` if `start.line` and `end.line` are equal.. By now, we have very many extensions that depend on this, so I don't think we can ever fix this.
So, TL;DR. Selection.isSingleLine should probably return true for a selection from 21,0 -> 22,0 because that would make sense conceptionally, but the property is already specified to return false in this case, so we cannot change it without potentially breaking an unknown number of extensions.

Triple click (or clicking on a line number) is implemented by setting the selection from the start of the current line to the start of the next line:

This means that the current text on the line plus its EOL sequence (\n or \r\n) is selected.
In our coordinate system, the position after \n or \r\n is not accounted on the current line, but on the next line. So basically the above screenshot represents a selection from line: 21, char: 0 to line: 22, char: 0.
Selection.isSingleLine is speced to be "`true` if `start.line` and `end.line` are equal.. By now, we have very many extensions that depend on this, so I don't think we can ever fix this.
So, TL;DR. Selection.isSingleLine should probably return true for a selection from 21,0 -> 22,0 because that would make sense conceptionally, but the property is already specified to return false in this case, so we cannot change it without potentially breaking an unknown number of extensions.


Tweaking bot automerge feature

For now, just adding labels and reading them.
We should later use this labels reading for checking if automerge should happen.

Merging st we can test it


Bulk Inserts

Would be great to have the ability to make a bulk insert from a pandas.DataFrame.
Similar to https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html

Closing as this repo is being archived


Internal links treated as external when using the design system locally

Summary of problem
When using the design system on local sites (e.g on public-website), internal links get external links style. This happens because the link doesn't start with https://www.citizensadvice.org.uk as specified here: https://github.com/citizensadvice/design-system/blob/main/scss/1-settings/_prose.scss.
This happens on pages that use .cads-prose (e.g: http://localhost:3000/immigration/bringing-family-to-live-in-the-uk-after-brexit/).
Expected behaviour
First link is internal and has no external icon

Actual behaviour
First link is internal but gets external icon

Proposed solution
Most of the internal urls actually begin with / and not http a possible solution to the problem could be:
  a:not([href^="https://www.citizensadvice.org.uk"]):not([href^="/"]):not([href^="#"])::after
  {
    @media not print {
      @include cads-hyperlink--external-icon();
    }
  }

[href^="https://www.citizensadvice.org.uk"] - in case there are urls that are internal but begin with the full url
[href^="/"] - most of the internal links
[href^="#"] - possible hashes

This bug presumably also causes internal links on non-prod domains to be rendered with an external link icon too (if they aren't relative links).
Another option would be to change the current $cads-internal-link-domain SASS variable to a list, and create a rule based on each value in the map.  This would allow users of the design system to have more control


Behavior around upcasts in Dart2 are not documented well

I have the following code running in DartPad (Chrome, OSX, Dart SDK 2.0.0-dev.63.0):
class Shape {
  final id;

  Shape(this.id);

  void log() {
    print('Logging Shape #$id.');
  }
}

class Square extends Shape {
  Square(int id) : super(id);

  @override
  void log() {
    print('Logging Square #$id.');
  }
}

void main() {
  print('*** Squares -> Shapes with "as":');
  var listOfSquares = <Square>[Square(1), Square(2), Square(3)];

  print('1) Original list of Squares:');
  listOfSquares.forEach((s) => s.log());

  final listOfShapes = listOfSquares as List<Shape>;
  print('2) List of Shapes:');
  listOfShapes.forEach((s) => s.log());

  print('3) List of Shapes after adding a Shape to new list:');
  listOfShapes.add(Shape(5));
  listOfShapes.forEach((s) => s.log());

  print('4) Original List after adding a Shape to new list:');
//   try {
    listOfSquares.forEach((s) => s.log());
//   } on CastError {
//     print ('Caught a CastError!');
//   }
}

In short, it creates a list of a subtype, uses as to cast it to the supertype, then adds a new instance of the super type to the new list reference. I would expect this to always fail at Step 3, when the new item is added to the new list reference. It's a casted version and still backed by the original, which can't accept an instance of the supertype.
Instead, this code fails at Step 4, when it tries to print out the original list. If I remove the comments, adding a try/catch around Step 4, then it begins to fail at Step 3, which is just weird.
FWIW, this issue does not occur in a Flutter unit test. If executed in that environment, it always fails as expected at Step 3.

Hi @RedBrogdon!
(For those that don't know, @RedBrogdon is on the Flutter DevRel team. Welcome!)
A couple of things. Thanks for filing, and if you think docs could be improved anywhere in the future please file some issues.

var listOfSquares = <Square>[Square(1), Square(2), Square(3)];

nit: In Dart2 this is the same as:
var listOfSquares = [Square(1), Square(2), Square(3)];

It's easy to get tripped up in Dart2 if you try to manually specify types. The various style guides on the subject have been moving to being more authoritative to trust type inference. I personally recommend (re)-reading the Types section of effective Dart.

final listOfShapes = listOfSquares as List<Shape>;

This is fine because it is an upcast, a List<Square> is-a List<Shape> due to covariance.
@RedBrogdon:

I would expect this to always fail at Step 3...  It's a casted version and still backed by the original
listOfShapes.add(Shape(5));

Ok, so you ran into a combination of bugs and misconceptions around Dart2.
First, Dart SDK 2.0.0-dev.63.0, which uses Dart2JS, had a bug in previous SDKs (including Dart SDK 2.0.0-dev.63.0). I've filed a bug to upgrade it, but in newer versions of Dart2 (and Flutter, which uses the Dart VM), this triggers a covariance check, at runtime, that will throw a CastError (or is it TypeError?).
The way I explained it to myself (and others) is covariance is safe for reads, not writes. That is, it's reasonable to expose a List<Square> as-a List<Shape>, assuming only reads are done (not writes, which are checked, and fail if invalid).
If Dart ever gets immutable data structures or ways to specify variance, it could help:

https://github.com/dart-lang/sdk/issues/33812
https://github.com/dart-lang/sdk/issues/33372
https://github.com/dart-lang/sdk/issues/33697

... so, tl;dr, in "correct" implementations of Dart2, the list .add(...) will fail at runtime.

It's a casted version and still backed by the original

Careful with this language. What a cast is in Dart2 can be a little confusing. For example:
var x = <num>[1, 2, 3];
List<int> x = y as List<int>;

... is invalid (a runtime error). To cast generic data structures, the rules are a little different:

For upcasts (i.e. List<Square> as List<Shape>), what you did was totally fine!
For _downcasts(i.e.ListasList), you'll need create a _new_ List`:
https://www.dartlang.org/guides/language/effective-dart/usage#avoid-using-cast

@RedBrogdon:

Instead, this code fails at Step 4, when it tries to print out the original list:
print('4) Original List after adding a Shape to new list:');
listOfSquares.forEach((s) => s.log());

This is because function types are contravariant, which hits an error case because it is (at runtime) a List<Square> not a List<Shape>. This is harder to explain in the context of this issue, so come grab me for coffee or take a look at the issues below:

https://github.com/dart-lang/sdk/issues/33841
https://github.com/dart-lang/sdk/issues/33697

I also filed a request for more docs.

/cc @munificent, you might want to merge this with https://github.com/dart-lang/site-www/issues/1017.

Thanks for all the detail! I've taken another look at this now that I have some time on the shuttle (and after, admittedly, refreshing myself on co- and contravariance), and I think I've got a grasp of it.
Dart's notion of covariance allows me to upcast lists and read from them:
final listOfSquares = [Square(1), Square(2), Square(3)];
final listOfShapes = listOfSquares as List<Shape>;
listOfShapes.forEach((s) => s.log());

But should stop me from doing this:
final listOfSquares = [Square(1), Square(2), Square(3)];
final listOfShapes = listOfSquares as List<Shape>;
listOfShapes.add(Shape(4));

And contravariance of function types allows me to do something like this:
final listOfSquares = [Square(1), Square(2), Square(3)];
listOfSquares.forEach((Shape s) => s.log());

What I still don't understand is this bit at the end of my original question (which I now realize I should have foregrounded, since it's the reason I posted this whole thing):

...this code fails at Step 4, when it tries to print out the original list. If I remove the comments, adding a try/catch around Step 4, then it begins to fail at Step 3, which is just weird. FWIW, this issue does not occur in a Flutter unit test.

If you run the code I posted above in DartPad, you get this output:
*** Squares -> Shapes with "as":
1) Original list of Squares:
Logging Square #1.
Logging Square #2.
Logging Square #3.
2) List of Shapes:
Logging Square #1.
Logging Square #2.
Logging Square #3.
3) List of Shapes after adding a Shape to new list:
Logging Square #1.
Logging Square #2.
Logging Square #3.
Logging Shape #5.
4) Original List after adding a Shape to new list:
Logging Square #1.
Logging Square #2.
Logging Square #3.
Uncaught exception:
TypeError: Instance of 'Shape': type 'Shape' is not a subtype of type 'Square'

If you uncomment the four lines toward the end, wrapping the last statement in a try/catch, and re-run it, you get this:
*** Squares -> Shapes with "as":
1) Original list of Squares:
Logging Square #1.
Logging Square #2.
Logging Square #3.
2) List of Shapes:
Logging Square #1.
Logging Square #2.
Logging Square #3.
3) List of Shapes after adding a Shape to new list:
Uncaught exception:
TypeError: Instance of 'Shape': type 'Shape' is not a subtype of type 'Square'

I don't understand how uncommenting code at the end of main is causing the method to throw before the uncommented code is ever reached. What is it that I'm missing here?

The current version of DartPad is based on a buggy version of Dart2 on Dart2JS.
I believe the VM has the correct behavior of the newer versions of Dart2JS mimic the VM.

Any more to do on this issue? The only thing I see remaining is perhaps an article on casting in Dart?


Request: Standardise default bread timestamp

Having the default timestamp be in American month/day format and missing the year is a bit confusing. It's also unclear which timezone the logs refer to. Perhaps the default output should be ISO 8601 or similar standardised format?

Here are the possible alternatives I can think of:
03/26 09:39:04.368615777
03-26 09:39:04.368615777
2020-03-26 09:39:04.368615777
2020-03-26 09:39:04.368615777
2020-03-26 09:39:04.368615777+01:00

Some of these resemble to ISO 8601 format, with the difference that the date-time separator T is replaced by  , because the former ins unreadable to me, and nanosecond precision is used.
The current format (the first one) was choose because of brevity. Having 2020- displayed repeatedly seems to me a waste of resources and screen estate: it only adds noise, and if needed, still can be added via the -d switch.
Which one do you prefer and why?

The use case I'm thinking of is that people are setting up a T+1 process to convert the binary logs to human readable and archive them. I can see this being quite common and therefore I would have thought outputting all possible information should be the default so my preference would be for the lat option.

To be lossless, we archive the binary logs themselves (e.g: think about float values or pretty printed types [not yet introduced to the open source version]).
If we consider a cronjob task that needs to be setup once, I don't think it is a big deal to provide additional arguments (-d "%Y-%m-%d %H:%M:%S.%U %z" in this case) to achieve the desired output.
I'd rather focus on the interactive use-case, and set the defaults the most useful way for users entering "$ bread app.blog".


Fixed check_lua(...)

check_lua was taking in a table instead of a string so I just added a check for that.
If it is a table then it will loop over the values and check for any malicious commands

This treats the symptom rather than the source of the problem.

I'm working on implementing proper sandboxing rather than text checks, so this fix will no longer be needed


transfer ownership

We're cleaning up the ICI3D organizational footprint on GitHub, and would like to transfer ownership of this to folks.
Would any of y'all like to take ownership of this repository (because you want to hang on to it, for reference, future work, etc)?

Okay, should have an inbound transfer request. I had to first transfer ICI3D => me, now me => you.

success! thanks @pragativprasad.
As a follow up Q: anything derived from this work that any of y'all would like us to have ICI3D point towards?


Mainly comments and some refactoring.

I have added comments in many places, and included some basic Doxygen-based documentation support to help me, and hopefully others, working with the code.  I've done some minor refactoring and other changes too (added const modifiers, etc.).
The large changed-lines count is due to the new Doxyfile, which is a slightly edited version of the default from 'doxygen -g'; it would be nicer to include only a patch file from the default one and I can do so if preferred.  The changes in adbfs.cpp itself are very modest.
The problems I had (mentioned in my earlier pull request, which I closed) turned out to be outside adbFS.  I am using adbfs now and it works quite well. Thanks again for your work.
Regards,
-chaw

thanks mate.


How cache is being used?

Issue

Hi, our team is running test slow with Jest. We are investigating all possibilities. The ts-jest is writing the result to FS as cache. However, I don't find how the cache is used.
https://github.com/kulshekhar/ts-jest/blob/c610c134ccebe67c583f3733267b9ae9eaad3c20/src/utils.ts#L179-L186
More question is,

Why ts-jest is handling its own cache?
I suppose Jest is handling cache already, even transformed.

In most cases, jest handles the caching. But in cases where it doesn't, ts-jest caches the transpiled code.
Since I don't have a repo to replicate what you're seeing, can you comment out this line and see if that affects the performance? https://github.com/kulshekhar/ts-jest/blob/c610c134ccebe67c583f3733267b9ae9eaad3c20/src/preprocessor.ts#L61


Bug: ni 's package is wrong

Describe the bug

Reproduction
remove local .lock file and execute ni
System Info
remove local .lock file and execute ni

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

I can not reproduce it. #121 does not seem to be a correct fix to me, as you cd into a sub package, ni should always search up for the closest lock file that occurs.

if remove stopAt params ,the lockPath will not be in the current project.
steps to reproduce

delete .lock
run esno ./src/commands/ni

The "packageManager"<EMAIL_ADDRESS>but will use yarn to install the packages

You should not have a lock in your root outside of the project tbh. For the field, yes I think I should read it up for every package.json until we found one lock or the field.

I think this is not the point, he should read the lock in my current directory instead of from my root directory


Fix some prop type warnings

Fixes some prop types warnings I've seen during development. Caused by incorrect prop type declarations and a change in how the publisher logo is stored (#8946)

Unit test failing here seems valid


✨Add typehints and validation

fixes #6 fixes #7

These type hints are great and so is inheritance from CanValidate.
The only issue is that it's all going to hell if we re-generate the schema based on a new version of the SQL source. 😅
So, we need to automate what you did here just like we automate schema generation if we want to keep this in sync with new versions of OMOP.
FYI @sunnyosun


Find All References does not work with module.exports in JavaScript

Issue Type: Bug
Create two files:
utils.js containing:
function getText() {
  return "Hello, World!";
}

module.exports = { getText };

and index.js containing:
const { getText } = require("./utils");

console.log(getText());

Now go to utils.js, and try to find all references of getText, it will only show the references in the current file, utils.js, but not in index.js.
Note that I've tried creating a jsconfig.json with the following contents in the root directory of the project, but it still didn't fix the problem:
{
    "compilerOptions": {
        "target": "es2020" // I also tried "ES6"
    },
    "exclude": [
        "node_modules",
        "**/node_modules/*"
    ]
}

VS Code version: Code 1.57.1 (507ce72a4466fbb27b715c3722558bb15afa9f48, 2021-06-17T13:28:32.912Z)
OS version: Darwin x64 20.5.0
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz (16 x 2400)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
3, 3, 3

Memory (System)
32.00GB (9.81GB free)

Process Argv
--crash-reporter-id 3be7b697-7459-484d-8019-253c76c2ed36

Screen Reader
no

VM
0%

Extensions: none

Node.js version: v14.16.0

Oh I'm sorry I didn't realize my previous issue was transferred to https://github.com/microsoft/TypeScript/issues/44832, I thought I forgot to press submit. I'll close this issue then.


Token problem

Hi,
I've got this error when I try to send a push notification :

JSON_PARSING_ERROR: Unexpected token END OF FILE at position 0.

I don't see how to fix it
Thanks

Can you paste an example of the code you are using?

When exploding the $defaults array here:
$defaults = array(
    "title"        => "Title",
    "message"      => "Message",
    "priority"     => "normal",
    "device_token" => "<my_device_token>",
);

extract($defaults);

You are creating a $message variable for the body of the notification, but then you create a new $message variable and give the value of the Message object:
$message = new Message();
The, when you set the data of the Notification you pass as body of notification the new Message object:
$message->setData(array(
    "title" => $title,
    "body"  => $message,
));

This causes a malformed JSON when the HTTP Client encodes it before doing the request.
Instead a valid code would be this:
use sngrl\PhpFirebaseCloudMessaging\Client;
use sngrl\PhpFirebaseCloudMessaging\Message;
use sngrl\PhpFirebaseCloudMessaging\Notification;
use sngrl\PhpFirebaseCloudMessaging\Recipient\Device;

$defaults = array(
    "title"        => "Title",
    "body_message"      => "Message",
    "priority"     => "normal",
    "device_token" => "<my_device_token>",
);

extract($defaults);

require_once WP_CONTENT_DIR . "/../../vendor/autoload.php";
$client = new Client();
$client->setApiKey("server_key");
$client->injectGuzzleHttpClient(new \GuzzleHttp\Client());

$message = new Message();
$message->setPriority($priority);
$message->addRecipient(new Device($device_token));
$message->setNotification(new Notification($title, $body_message));
$message->setData(array(
    "title" => $title,
    "body"  => $body_message,
));
try {
    $response = $client->send($message);
} catch (Exception $e) {
    echo $e->getMessage();
}

Ohhhhh i'm so sorry for inconvenience !!! I should have to see myself :(


2 more protocol tweaks

When you read through the consensus package, you should check the documentation and make sure it's all consistent, especially with regards to these 2 tweaks.

I changed file contracts so that instead of a single siacoin output getting created, any number of outputs can be created. This might make life easier for us once we need to start scaling things. We might be able to do p2pool but for file contracts or something. Anyway, it allows for more complex hosting schemes. In total, it was like 100loc difference to implement this change.

the siafund fee is not taken for missed storage proofs. It doesn't seem fair to take a fee if the host wasn't actually storing anything.

these will be in the PR shortly

another thing to look for when reviewing is the use of the word 'state' vs. the words 'consensus set'.
'state' is supposed to refer to everything, all of the forks, the blocks, etc. If something is being added to the state, it should be a whole block or a whole block node, and if something is being removed from the state is should only be because the entire block is invalid.
'consensus set' refers to the outputs, siafunds, contracts, etc. that compose the stuff of the longest fork. You add or remove a single output from the consensus set. I think that I did a pretty good job of being consistent with these definitions, but there might still be places where I incorrectly use 'state' instead of 'consensus set'.


Make Operation/Gate classes generic

Seems like it should be fairly straightforward to make Gate, Operation, and GateOperation classes generic, based on the type returned by .on() and .gate respectively. Same thing subsequently for .with_tags, .with_classical_controls, etc. It would be nice to be able to preserve that type information. This doesn't require any quantum knowledge and could be a good issue for new contributors.

The second part of this may not be possible given the way we flatten stacked tagged operations and controlled ops. But the first part should be doable.

This ends up being a bit of a pain because now suddenly cirq.X(q) and cirq.Y(q) are different types, so mypy complains if you try to make a list of them.
I'm closing this to get it out of my queue. If anyone wants to pick this up, please create a separate issue.


fix: exclude Matic ERC20 token on Polygon

Description
We're currently listing the Matic ERC-20 Token alongside the native Matic token on Polygon. The tokens are effectively the same thing, but this is confusing for the end user. This PR removes the Matic ERC-20 token from our asset list.
Pull Request Type

[x] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[ ] :nail_care: New Feature (Breaking/Non-breaking Change)

Testing
Open the web app, enter MATIC into the search window
Screenshots (if applicable)


Custom tab border radius

How to custom tab border radius like GitHub's homepage

now only custom the border line

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Backup improvements.

Supports new features:

backup files can now go through filters. Can be used to encrypt / decrypt backups on the fly.
if backup fails to write to backupstorage, we still restore the state of the tablet, instead of leaving it in a broken state.
added context to backupstorage API.

This is ready for review. I will squash everything before merge, but maybe for review individual commits are better.
@michael-berlin you're the primary review, @enisoc this is a FYI, feel free to review.

OK all comments addressed, much better.
@michael-berlin @enisoc ready for review.


[Anchor -378] Retry at most 3 times for connection error

PR Checklist
PR Structure

[ ] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[ ] This PR avoids mixing refactoring changes with feature changes (split into two PRs
otherwise).
[ ] This PR's title starts with name of package that is most changed in the PR, ex.
paymentservice.stellar, or all or doc if the changes are broad or impact many
packages.

Thoroughness

[ ] This PR adds tests for the most critical parts of the new functionality or fixes.

What
Change to retry at most 3 times for connection error
Why
Please refer to comments and discussions here: https://github.com/stellar/java-stellar-anchor-sdk/pull/1044#issuecomment-1673571967

I was debating between if we want to have separate counter for each exception or just combine them in one. To me it's not likely that we will have that kind of mixed exception as you mentioned, and by isolating them we can easily pinpoint the specific issues causing certain exceptions, which also benefits diagnosing and addressing the root causes.
But I don't have a strong preference on this, we can certainly change it to at most 3 in total for efficiency.


Error Field Currency  When Save or Update

Attempt to assign property 'more_fields->price' of non-object
exception: "ErrorException"
file: "vendor\laravel\nova\src\Fields\Currency.php"
line: 76

Also having this issue, are there any fixes for this?


maas_open_udp_ports variable is not set correctly when deploying region+rack controller

For the scenarion when deploying region and rack controller on the same node, the group_vars defined in 'group_vars/maas_rack_controller/60-firewall' and 'group_vars/maas_region_controller/60-firewall' will both be read and since ansible does not merge arrays, but just uses the latest definition, the array defined in 'group_vars/maas_region_controller/60-firewall' will win (files are sorted alphanumerically) and set 'maas_open_udp_ports' to '[53, 123, 514, 5240]'. This means, that the additional ports '67:69' (which are included in the array defined in 'group_vars/maas_rack_controller/60-firewall') will not be opened.
I am currently trying to figure out a good solution for this problem and will hopefully come up with something lean and a fitting PR soon :)

After doing some more debugging, i realised that this is also true for all the other ports specifically set for the rack, but not the region controller (and vice versa).

Just as a side note here and out of curiosity: Is there any reason why iptables was chosen to implement the firewall port configuration instead of ufw (https://docs.ansible.com/ansible/latest/collections/community/general/ufw_module.html) like documented here https://maas.io/docs/how-to-improve-maas-security#heading--firewalls ?

@jklare ufw is an interface to iptables. The iptables module is included in ansible-core unlike the ufw module, as such it makes more sense to use iptables


Question about sampled_softmax

Hi, it's me again :)
I wonder what's the purpose of rescale in the sampled_softmax function?

Hi no worries. I think it is some poorly designed numerical trick to help preventing numerical instability when calculating the exp. You can remove the rescale since I already have tf.clip_by_value elsewhere.
Thank you so much for helping me improving the quality of the code!

OK, thanks!


create flag to print backed up files

Presently I can give attic create the --verbose flag to print all scanned files, or omit it to get no output. I don't seem able to print only the files that were changed in this backup revision. That would be super informative for me.

see https://github.com/jborg/attic/pull/224


Pool members aren't being added to AS3 pool

Hi
this is probably an ACC issue, but will post here too.
A fairly simple virtual server configuration when converted to AS3 has no pool member information.
TCL/TMOS
ltm virtual /Common/vs_hcf_443 {
    destination /Common/<IP_ADDRESS>:443
    ip-protocol tcp
    mask <IP_ADDRESS>
    pool /Common/hcf_80
    profiles {
        /Common/tcp { }
    }
    source <IP_ADDRESS>/0
    translate-address enabled
    translate-port enabled
}
ltm pool /Common/hcf_80 {
    description hcf_80
    members {
        /Common/<IP_ADDRESS>:80 {
            address <IP_ADDRESS>
        }
    }
    monitor /Common/http
}
ltm node /Common/<IP_ADDRESS> {
    address <IP_ADDRESS>
}

Gets converted to the following AS3
{
    "class": "ADC",
    "schemaVersion": "3.27.0",
    "id": "urn:uuid:b20c90ca-e492-4f8f-8303-be4abdeab54d",
    "label": "Converted Declaration",
    "remark": "Auto-generated by AS3 Config Converter",
    "Common": {
        "class": "Tenant",
        "Shared": {
            "class": "Application",
            "template": "shared",
            "vs_hcf_443": {
                "layer4": "tcp",
                "pool": "hcf_80",
                "translateServerAddress": true,
                "translateServerPort": true,
                "class": "Service_Generic",
                "virtualAddresses": [
                    "<IP_ADDRESS>"
                ],
                "virtualPort": 443,
                "persistenceMethods": [],
                "snat": "none"
            },
            "hcf_80": {
                "remark": "hcf_80",
                "members": [
                    {
                        "addressDiscovery": "static",
                        "servicePort": null
                    }
                ],
                "monitors": [
                    {
                        "bigip": "/Common/http"
                    }
                ],
                "class": "Pool"
            }
        }
    }
}

Here is the output from ACC
[2021-06-03T05:22:03.214Z] [INFO]: ACC METADATA {
  recognized: {
    'ltm virtual /Common/vs_hcf_443': {
      destination: '/Common/<IP_ADDRESS>:443',
      'ip-protocol': 'tcp',
      mask: '<IP_ADDRESS>',
      pool: '/Common/hcf_80',
      profiles: '{',
      '/Common/tcp': {},
      '}': '',
      source: '<IP_ADDRESS>/0',
      'translate-address': 'enabled',
      'translate-port': 'enabled'
    },
    'ltm pool /Common/hcf_80': {
      description: 'hcf_80',
      members: '{',
      '}': '',
      monitor: '/Common/http'
    },
    'ltm node /Common/<IP_ADDRESS>': { address: '<IP_ADDRESS>' }
  },
  supported: {
    'ltm virtual /Common/vs_hcf_443': {
      destination: '/Common/<IP_ADDRESS>:443',
      'ip-protocol': 'tcp',
      mask: '<IP_ADDRESS>',
      pool: '/Common/hcf_80',
      profiles: '{',
      '/Common/tcp': {},
      '}': '',
      source: '<IP_ADDRESS>/0',
      'translate-address': 'enabled',
      'translate-port': 'enabled'
    },
    'ltm pool /Common/hcf_80': {
      description: 'hcf_80',
      members: '{',
      '}': '',
      monitor: '/Common/http'
    }
  },
  unSupported: { 'ltm node /Common/<IP_ADDRESS>': { address: '<IP_ADDRESS>' } },
  declarationInfo: {
    classes: { Pool: 1, Service_Generic: 1 },
    maps: {
      applications: [ '/Common/Shared' ],
      objects: [ '/Common/Shared/vs_hcf_443', '/Common/Shared/hcf_80' ],
      tenants: [ '/Common' ]
    },
    total: 2
  }
}

Hi @raZorTT,
Thanks for opening this issue.  I see you opened the same with ACC projects itself.
https://github.com/f5devcentral/f5-as3-config-converter/issues/37
I did some quick testing to confirm what you are seeing.  It looks like vscode-f5-chariot v1.11 is working, so you should be able to simply roll back to that version within vscode/marketplace.

There seems to be a problem with running the ACC code on a windows host.  I was able to get expected results when using vscode-f5-chariot v1.12.0 on a linux host (connected over remote-ssh).
ACC is only supported through the official docker solution, which provides that consistent linux base.  I am talking with that team about the issue and what we can do about it.

Hi @DumpySquare
I installed 1.11.0 and I am still getting the same output in the ACC metadata
ltm pool /Common/hcf_80': {
      description: 'hcf_80',
      members: '{',
      '}': '',
      monitor: '/Common/http'
    }

"hcf_80": {
    "remark": "hcf_80",
    "members": [
        {
            "addressDiscovery": "static",
            "servicePort": null
        }
    ],
    "monitors": [
        {
            "bigip": "/Common/http"
        }
    ],
    "class": "Pool"
}

I installed vscode and the extensions on a mac and confirmed that it worked as expected

breaks using windows. Mac is fine https://github.com/mdditt2000/f5-appsvcs-acc/tree/master/Github/37

Create Jira CHARON-321 for PM tracking

This should be fixed with vscode-f5-chariot v1.13.0 released 7.6.2021.  Please confirm

Hi @DumpySquare
I can confirm it now parses and outputs the pool members correctly, thanks for fixing it!
"hcf_80": {
    "remark": "hcf_80",
    "members": [
        {
            "addressDiscovery": "static",
            "servicePort": 80,
            "serverAddresses": [
                "<IP_ADDRESS>"
            ],
            "shareNodes": true
        }
    ],
    "monitors": [
        {
            "bigip": "/Common/http"
        }
    ],
    "class": "Pool"
}


[MAAS] How to retrieve Admin password of newly deployed in MAAS

It seems SetPasswordPlugin doesn't POST password to MAAS. And MAAS server doesn't seem to have the "Retrieve Password" menu.
Then, How do I retrieve the password configured from SetPasswordPlugin.
Or is there any guides for building retrieve password script?

Hello,
There are two ways to solve this:

You can create a user and set a predefined password during the image generation process. You can later use that user to connect to the deployed Windows machine.

You can add a x509 certificate to MaaS and use WinRM to send commands to that machine. To do so:
Run the following command on your MaaS node (to generate a new x509 certificate):
maas-generate-winrm-cert
The public portion of the key will be printed to screen. Copy that key (including the "BEGIN CERTIFICATE" and "END CERTIFICATE" portion) and upload it to your MaaS node under user-->preferences-->SSL keys. (it should be in the same place you saved your SSH public key).
Deploy the Windows image again and after it gets installed and Cloudbase-Init finishes running, you should be able to run remote commands via WinRM.
You can use the following script to execute commands via WinRM: https://raw.githubusercontent.com/cloudbase/pywinrm/master/wsmancmd.py
Please note that you will need pywinrm for this to work:
sudo pip install pywinrm
If everything went well up to this point you can now use something like this:
./wsmancmd.py -H <IP_OF_WINDOWS_MACHINE> -s -a certificate -c $HOME/.ssl/winrm_client_cert.pem -k $HOME/.ssl/winrm_client_cert.key "net user Administrator supersecretp@ss"

Please note that you might need to use the "Admin" account created by Cloudbase-Init to run the commands.

Hello,
I tried the 2nd method as you mentioned.
After I re-deploy Windows and cloudbase-init finished running. I executed wsmancmd.py and got SSL error.
root@maas:~/pywinrm# python3 wsmancmd.py -H <IP_ADDRESS> -s -a certificate -c $HOME/.ssl/winrm_client_cert.pem -k $HOME/.ssl/winrm_client_cert.key "net user Administrator supersecretp@ss"
`
Traceback (most recent call last):
File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/contrib/pyopenssl.py", line 472, in wrap_socket
cnx.do_handshake()
File "/usr/lib/python3/dist-packages/OpenSSL/SSL.py", line 1808, in do_handshake
self._raise_ssl_error(self._ssl, result)
File "/usr/lib/python3/dist-packages/OpenSSL/SSL.py", line 1548, in _raise_ssl_error
_raise_current_error()
File "/usr/lib/python3/dist-packages/OpenSSL/_util.py", line 54, in exception_from_error_queue
raise exception_type(errors)
OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 603, in urlopen
chunked=chunked)
File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 344, in _make_request
self._validate_conn(conn)
File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 843, in validate_conn
conn.connect()
File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/connection.py", line 370, in connect
ssl_context=context)
File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/util/ssl.py", line 368, in ssl_wrap_socket
return context.wrap_socket(sock)
File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/contrib/pyopenssl.py", line 478, in wrap_socket
raise ssl.SSLError('bad handshake: %r' % e)
ssl.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/babebbu/.local/lib/python3.6/site-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 641, in urlopen
_stacktrace=sys.exc_info()[2])
File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/util/retry.py", line 399, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=5986): Max retries exceeded with url: /wsman (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "wsmancmd.py", line 172, in
main()
File "wsmancmd.py", line 164, in main
cert_key_pem, cmd)
File "wsmancmd.py", line 121, in run_wsman_cmd
shell_id = p.open_shell(codepage=CODEPAGE_UTF8)
File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/protocol.py", line 157, in open_shell
res = self.send_message(xmltodict.unparse(req))
File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/protocol.py", line 234, in send_message
resp = self.transport.send_message(message)
File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/transport.py", line 256, in send_message
response = self._send_message_request(prepared_request, message)
File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/transport.py", line 261, in _send_message_request
response = self.session.send(prepared_request, timeout=self.read_timeout_sec)
File "/home/babebbu/.local/lib/python3.6/site-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/home/babebbu/.local/lib/python3.6/site-packages/requests/adapters.py", line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=5986): Max retries exceeded with url: /wsman (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))
`

And I got ConnectionTimeout error sometimes
Traceback (most recent call last):
  File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/connection.py", line 160, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw)
  File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/util/connection.py", line 80, in create_connection
    raise err
  File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/util/connection.py", line 70, in create_connection
    sock.connect(sa)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 603, in urlopen
    chunked=chunked)
  File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 344, in _make_request
    self._validate_conn(conn)
  File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 843, in _validate_conn
    conn.connect()
  File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/connection.py", line 316, in connect
    conn = self._new_conn()
  File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/connection.py", line 165, in _new_conn
    (self.host, self.timeout))
urllib3.exceptions.ConnectTimeoutError: (<urllib3.connection.VerifiedHTTPSConnection object at 0x7f5815b09668>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=30)')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/babebbu/.local/lib/python3.6/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 641, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/home/babebbu/.local/lib/python3.6/site-packages/urllib3/util/retry.py", line 399, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=5986): Max retries exceeded with url: /wsman (Caused by ConnectTimeoutError(<urllib3.connection.VerifiedHTTPSConnection object at 0x7f5815b09668>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=30)'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "wsmancmd.py", line 172, in <module>
    main()
  File "wsmancmd.py", line 164, in main
    cert_key_pem, cmd)
  File "wsmancmd.py", line 121, in run_wsman_cmd
    shell_id = p.open_shell(codepage=CODEPAGE_UTF8)
  File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/protocol.py", line 157, in open_shell
    res = self.send_message(xmltodict.unparse(req))
  File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/protocol.py", line 234, in send_message
    resp = self.transport.send_message(message)
  File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/transport.py", line 256, in send_message
    response = self._send_message_request(prepared_request, message)
  File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/transport.py", line 261, in _send_message_request
    response = self.session.send(prepared_request, timeout=self.read_timeout_sec)
  File "/home/babebbu/.local/lib/python3.6/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/home/babebbu/.local/lib/python3.6/site-packages/requests/adapters.py", line 504, in send
    raise ConnectTimeout(e, request=request)
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='<IP_ADDRESS>', port=5986): Max retries exceeded with url: /wsman (Caused by ConnectTimeoutError(<urllib3.connection.VerifiedHTTPSConnection object at 0x7f5815b09668>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=30)'))

I've tried to use wsmancmd.py without -s (ssl) arg. The following error occurs
Traceback (most recent call last):
  File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/transport.py", line 262, in _send_message_request
    response.raise_for_status()
  File "/home/babebbu/.local/lib/python3.6/site-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error:  for url: http://<IP_ADDRESS>:5985/wsman

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "wsmancmd.py", line 172, in <module>
    main()
  File "wsmancmd.py", line 164, in main
    cert_key_pem, cmd)
  File "wsmancmd.py", line 121, in run_wsman_cmd
    shell_id = p.open_shell(codepage=CODEPAGE_UTF8)
  File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/protocol.py", line 157, in open_shell
    res = self.send_message(xmltodict.unparse(req))
  File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/protocol.py", line 234, in send_message
    resp = self.transport.send_message(message)
  File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/transport.py", line 256, in send_message
    response = self._send_message_request(prepared_request, message)
  File "/home/babebbu/.local/lib/python3.6/site-packages/winrm/transport.py", line 266, in _send_message_request
    raise InvalidCredentialsError("the specified credentials were rejected by the server")
winrm.exceptions.InvalidCredentialsError: the specified credentials were rejected by the server

The issue seems to be with the certificate itself. Can you check that the certificate and the key can be found in $HOME/.ssl/ ? Also check that there are no missing characters in the public key pasted in MaaS.
Also have you tried using Admin as user, instead of Administrator?

Hello,
Did you had any luck with the above?

Hi,
I'm trying to run it again. Sorry, I was having an ad-hoc task.

Hello,
I tried to reproduce it again and this time it throws SSL SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED]
./wsmancmd.py -H <IP_ADDRESS> -s -a certificate -c $HOME/.ssl/winrm_client_cert.pem -k $HOME/.ssl/winrm_client_cert.key "net user Administrator supersecretp@ss"
Traceback (most recent call last):
  File "./wsmancmd.py", line 172, in <module>
    main()
  File "./wsmancmd.py", line 164, in main
    cert_key_pem, cmd)
  File "./wsmancmd.py", line 121, in run_wsman_cmd
    shell_id = p.open_shell(codepage=CODEPAGE_UTF8)
  File "/usr/local/lib/python2.7/dist-packages/winrm/protocol.py", line 157, in open_shell
    res = self.send_message(xmltodict.unparse(req))
  File "/usr/local/lib/python2.7/dist-packages/winrm/protocol.py", line 234, in send_message
    resp = self.transport.send_message(message)
  File "/usr/local/lib/python2.7/dist-packages/winrm/transport.py", line 256, in send_message
    response = self._send_message_request(prepared_request, message)
  File "/usr/local/lib/python2.7/dist-packages/winrm/transport.py", line 261, in _send_message_request
    response = self.session.send(prepared_request, timeout=self.read_timeout_sec)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='<IP_ADDRESS>', port=5986): Max retries exceeded with url: /wsman (Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)'),))

Hello,
This is quite strange. I will try to reproduce this in our environment and see if I can get the same error.
Will get back to you as soon as I can reproduce this and find a solution for it.

Hello @codesonteen,
did you manage to get it working some other way? or do you need further assistance on this issue?
Thank you,
Adrian.

The WinRM method doesn't seem to be working and I haven't figured out yet.
So, I work around by custom build a LocalScript to handle the password from user data which passed on cloudbase-init.

Thank  you for the information,
I suppose better documentation would help on this matter.
Did you follow this tutorial: https://cloudbase.it/windows-without-passwords-in-openstack/ ?

@codesonteen it seems there is an issue with Py2.7 and windows certificates.
Can you try with an updated version of wsmancmd.py https://github.com/ader1990/winrm-scripts/commit/8df871b33f9fcf6bea8e6b0c87a264af1f68bfe7 ?

@ader1990 Ok, I will try booting up my dev environments up and test it.

Closing the issue, as there was no recent response / activity.


[GUI] Display wallet creation date at installer and in settings

Core know the wallet creation date, a user should:

write it down, probably at the same time as they backup their descriptor
be able to find it on the settings too.

Yeah it would be nice to know the wallet creation date in the "wallet" section of the settings in the GUI.
We shouldn't get it from bitcoind though but from our own database: https://github.com/wizardsardine/liana/blob/d5b7a3a7de8fb36b5995bc25fc5171e425a22d8b/src/database/sqlite/schema.rs#L21-L31
An approach to this would be to:

Include this field in the getinfo RPC command
Display this field in the "wallet" section of the settings in the GUI by calling getinfo.

I can tackle that, but not sure I can deliver for v4

Related to #620.


Short command for invoice payment

Per roasbeef's suggestion, I would like to ask for a change in the command to make invoice payment when using lnd with btcd on commandline.  So, instead of
lncli sendpayment --pay_req=yx9zqprrqp9f16s9ymcmikjkwxm7a9gbeqm373dehytc96yjd1bjn8ym18sw3mp5rg1rcfitqcj3u6up1acnw9195urj9j5uwjnnpezyyyyyyyyyyyycoxjj3ydy
Could we make it shorter, something like:
lncli payinvoice yx9zqprrqp9f16s9ymcmikjkwxm7a9gbeqm373dehytc96yjd1bjn8ym18sw3mp5rg1rcfitqcj3u6up1acnw9195urj9j5uwjnnpezyyyyyyyyyyyycoxjj3ydy   ?
Thank you.

I would like to take a stab at this. Is the intention here to create a new command with just payment request as the argument?

Yep, that's my understanding at least :)

I have a pr(https://github.com/lightningnetwork/lnd/pull/359) open for this. Would appreciate feedback.


node cg adds always json extension to file

Hi,
I cloned the master git branch and tried to execute node cg nodejs defs/swagger.yaml
But cg appends always .json to the input file and executes node cg nodejs defs/swagger.yaml.json
I renamed the file to swagger.yaml.json and executed the first command again and cg was able to find the file but I got an error with unexpected token, which is comprehensible because the file is yaml and not json.

Closing due to inactivity - but please feel free to reopen the issue if necessary.


How to use this in android with MainActivity

There is no mainactivity in your github sample. Can you update the sample as a working sample in android? These four classes are not helping at all

there is no sample at all, its just the library. look at the readme under Usage to see how to use it


MAT-3708 Update CQM-Parser to Account for Comments in the ELM (#163)

MAT-3708 Update CQM-Parser to Account for Comments in the ELM

MAT-3708 display commented functions and defs

Pull requests into cqm-parsers require the following. Submitter and reviewer should :white_check_mark: when done. For items that are not-applicable, note it's not-applicable ("N/A") and :white_check_mark:.
Submitter:

[ ] This pull request describes why these changes were made.
[ ] Internal ticket for this PR:
[ ] Internal ticket links to this PR
[ ] Code diff has been done and been reviewed
[ ] Tests are included and test edge cases
[ ] Tests have been run locally and pass

Reviewer 1:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

Reviewer 2:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

Codecov Report

Merging #164 (d680f2b) into master (fd4d124) will increase coverage by 0.10%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #164      +/-   ##
==========================================
+ Coverage   82.40%   82.50%   +0.10%
==========================================
  Files          69       69
  Lines        4320     4351      +31
==========================================
+ Hits         3560     3590      +30
- Misses        760      761       +1

Impacted Files
Coverage Δ

lib/hqmf-parser/2.0/population_criteria.rb
93.44% <100.00%> (ø)

...rser/cql/document_helpers/doc_population_helper.rb
98.90% <100.00%> (+0.03%)
:arrow_up:

lib/measure-loader/elm_parser.rb
100.00% <100.00%> (ø)

lib/measure-loader/mat_measure_files.rb
95.34% <100.00%> (ø)

lib/measure-loader/source_data_criteria_loader.rb
100.00% <100.00%> (ø)

lib/measure-loader/vsac_value_set_loader.rb
100.00% <100.00%> (ø)

lib/util/vsac_api.rb
98.07% <100.00%> (ø)

lib/hqmf-parser/2.0/document.rb
90.83% <0.00%> (-0.70%)
:arrow_down:

lib/hqmf-parser/2.0/data_criteria.rb
81.39% <0.00%> (-0.30%)
:arrow_down:

...rser/2.0/document_helpers/doc_population_helper.rb
77.88% <0.00%> (-0.12%)
:arrow_down:

... and 23 more

Continue to review full report at Codecov.

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


Add proper Django 1.7 migrations

As per recommendations at
http://south.readthedocs.org/en/latest/releasenotes/1.0.html#library-
migration-path
tox tests pass as before (tests with django 1.8 fail, but that was already the case before this change).

tnx, merged


Textareas and inputs inside the SortableItem dont move.

Hello there,
I am not sure if this is a bug or not but is there a reason that textarea's and input fields inside the sortable item do not move into the new position.
See example -> https://codepen.io/lsdd/pen/OxpKad
notice the content in the textarea returns to the old once it has been dropped.
Thanks!

change defaultValue to value on your textareas - defaultValue is only for initial load.

As @sebastianoblom, you have to use value on your inputs, not defaultValue. Closing as this isn't an issue with react-sortable-hoc per-se

what if there is no value or defaultValue set? because I am also having the same issue
    return (

        <BroadcastPreferencesForm selectedFanpage={this.props.selectedFanpage}
          addComponent={this.mountComponent} sexFemale={this.sexFemale} sexMale={this.sexMale}
          saveBroadcast={this.saveBroadcast} language={this.chooseLanguage} timezone={this.chooseTimezone}
          date={this.setDate} />
        <SortableList items={this.state.items} onSortEnd={this.onSortEnd}
          unmountComponent={(index) => this.unmountComponent(index)}
          handleTextChange={(text) => this.handleTextChange(text)} />

    )
  }
}

export default withRouter(createContainer(props => ({
  ...props
}), BroadcastForm))

const SortableItem = SortableElement(({value, index, unmountComponent, handleTextChange}) => {
  console.log(value, index)
  return
<BroadcastTextMessageForm unmountComponent={(component) => unmountComponent(component)}
    handleTextChange={(text) => handleTextChange(text)} />

})

const SortableList = SortableContainer(({items, unmountComponent, handleTextChange}) => {
  return (

      {items.map((value, index) => (
        <SortableItem key={`item-${index}`} index={index} value={value}
          unmountComponent={unmountComponent} handleTextChange={handleTextChange}
        />
      ))}

  )
})```

and component with textarea tag code

import React from 'react'
import { createContainer } from 'react-meteor-data'
import { withRouter } from 'react-router'
import { BroadcastFormSceleton } from './BroadcastForm'
import './BroadcastTextMessageForm.scss'
export class BroadcastTextMessageForm extends React.Component {
constructor (props) {
super(props)
this.handleChange = this.handleChange.bind(this)
this.unmountComponent = this.unmountComponent.bind(this, this.props.componentId)
}
handleChange (e) {
console.log(e.target.value)
this.props.handleTextChange(e.target.value)
}
unmountComponent (id) {
this.props.unmountComponent(id)
}
render () {
const textMessage = this.props.textMessage
return (

DELETE

)
}
}
export default withRouter(createContainer(props => ({
...props
}), BroadcastTextMessageForm))

fixed

I am also facing same issue. How you got it fixed?

Me too this issue.
I resolved this problem in the article.
https://stackoverflow.com/questions/44649898/react-sortable-hoc-with-formdata


Modernize Objc codebase

📒 Description
It's time to refine the quality of Objc coodebase
🕶 Types of changes
Breaking change (fix or feature that would cause existing functionality to change)
🤯 List of changes

[x] Refactor UI objc codebase by following the best-practice, which is carefully described in #2642
[x] Refactor AutoComplete classes

👫 Relationships
Close #2642
🔎 Review hints

All basic logic are remained

Updated: TimeEntryEditViewController and few unused classes didn't intentionally modernize it since it's unnecessary and they are going to be removed in https://github.com/toggl/toggldesktop/pull/3112

Rebased completely due to file conflicts from master. It's ready to review 👍

@NghiaTranUIT I think there are some files that were removed in #3112 (like TimeEntryEditViewController.h) and added back here when resolving the merge conflict. Can you check those files? The number of added lines also looks like some files were added

@skel35 thank for the point. It has been fixed 👍

@tanel All done 👍 Let proceed 💯


Add linter name

Add a name attribute to the linter to identify where the messages are coming from.

Will tests pass if you rebase?
:shipit:

Looks like you beat me to it, sorry about that.


[SUGGEST] Add list of files modified to Wiki

When I create a new filter , I need to modify some files.
But I often forget someone.
So, suggest add a clear list of the files need to modified.
	modified:   filters/all/src/index.js
	modified:   filters/all/package.json
	modified:   filters/all/types.d.ts
	modified:   filters/all/README.md
	modified:   examples/index.html
	modified:   tools/screenshots/config.json
	modified:   README.md

We should add this to the wiki for adding new filters.

Put it in wiki )

Done, please check it. https://github.com/pixijs/pixi-filters/wiki/Adding-Filters#--check-the-list-of-modified-global-files

OK.Thanks.


Update go-algorand submodule to latest C2C changes

Summary
This PR updates the go-algorand submodule in Indexer so it points to the latest changes in the master branch for C2C changes.
Test Plan
Let's hope the CI tests pass.

Codecov Report

Merging #874 (0e2c70a) into develop (f5344d7) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #874      +/-   ##
===========================================
- Coverage    58.63%   58.62%   -0.01%
===========================================
  Files           37       37
  Lines         4409     4411       +2
===========================================
+ Hits          2585     2586       +1
- Misses        1511     1512       +1
  Partials       313      313

Impacted Files
Coverage Δ

util/util.go
57.14% <0.00%> (-1.20%)
:arrow_down:

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 f5344d7...0e2c70a. Read the comment docs.


Getting related videos for ID

Hi. A quick question. Is it possible to retrieve a list of videos related to a certain video? I tried using search with relatedToVideoId as an option but it's not working. Not sure if it's possible or I'm using the option incorrectly. Thanks.

What's the code you are using and what are the resulting errors, if any?

I was testing with .search("list", 4,  { relatedToVideoId: "videoID" }) but after going over the source code, it seems the first parameter is the query and not a type. I tried again with .searchVideos("", 4, { relatedToVideoId: "videoID" }) and it seems to work. So I guess type has to be video and the query is ignored? Can you confirm if this is the right way to do it?
Basically I want to call this from the module:
https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId=videoID&type=video&key={API_KEY}
Thanks.

Yes, the type does have to be video and the way you are doing it looks like the best way to do what you want with the current release.
Perhaps in the next release, we could add a method to Video for fetching related videos to clean make that a bit simpler.

I'll be implementing a fetchRelated method in the Video class in the next major release to allow related videos to be fetched and cached.

Awesome. Looking forward to it.


Feature Request: Take Emails and Passwords in bulk

Please can we incorporate a feature in this tool to accept multiple emails and passwords?

hahahahhahahahahahahahahahahaahaahahah


Corrupted binaries attached as resource

Using #1750 as a reference.
Problem
I am attaching binary resource (with --resource) to the integration and expecting it to appear in the container as a resource.
Original file size: 6733 bytes (binary, zip archive in its essence).
Executing command: kamel run --dev --resource account.adm Integration.java.
Result: reviewing pod, I see that the attached resource file size is 12255, thus corrupted, integration is unusable.
Attempts adding --compression=true flag (ar per #1750 suggestion) yields raw base64 text file in attached pod resource, that is unusable as a) it is base64, not binary, b) there is an extra compression applied on top of the file.
Using kamel version -> 1.3.
Also wondering, whether there is currently a way to attach resource to camel, directly from self-created configMap?

Thanks for reporting, this behavior is strange.
Sure, there's a way to work this issue around and use data from manually created secrets/configmaps.
You need to link the integration to the secret using:
kamel run it.yaml --secret mysecret

If the secret has a property named key, then you can use the following property placeholder to reference it:
{{secret:mysecret/key}}

Full documentation: https://camel.apache.org/camel-k/latest/configuration/configmap-secret.html#_reference_a_secret_in_properties

Thanks for reporting, this behavior is strange.
Sure, there's a way to work this issue around and use data from manually created secrets/configmaps.
You need to link the integration to the secret using:
kamel run it.yaml --secret mysecret

If the secret has a property named key, then you can use the following property placeholder to reference it:
{{secret:mysecret/key}}

Full documentation: https://camel.apache.org/camel-k/latest/configuration/configmap-secret.html#_reference_a_secret_in_properties

I am having a look at this.

I am having a look at this.

So, the problem seems that the Resources and Sources are correctly base64 encoded in order to be able to include binary contents in ConfigMaps. The Sources are later base64 decoded by the runtime, whilst the Resources are left encoded. Since Resources are meant to be consumed by the application the way they originally are I am going to include the base64 decode before writing the files on the container. I think that should solve the issue.

So, the problem seems that the Resources and Sources are correctly base64 encoded in order to be able to include binary contents in ConfigMaps. The Sources are later base64 decoded by the runtime, whilst the Resources are left encoded. Since Resources are meant to be consumed by the application the way they originally are I am going to include the base64 decode before writing the files on the container. I think that should solve the issue.

eventually the information about the content should be added to the resource struct so it gets decoded only if it is needed (i.e. the application logic is already aware of the base64 encoding thus, decoding it could be an issue)

eventually the information about the content should be added to the resource struct so it gets decoded only if it is needed (i.e. the application logic is already aware of the base64 encoding thus, decoding it could be an issue)

The problem I see is that we mount a volume with file contents from ConfigMaps created from Integration Resources. These are base64 encoded if they are binary or compressed. The problem we have with this approach is that we always require the application to take care of decoding prior using the binary content.
A possible workaround I found is to use directly binary ConfigMaps in order to let the kube cluster to take care of encoding/decoding by asking the user to create a specific one before the integration. However there seems to be some issue there too (see https://github.com/apache/camel-k-runtime/issues/593)

The problem I see is that we mount a volume with file contents from ConfigMaps created from Integration Resources. These are base64 encoded if they are binary or compressed. The problem we have with this approach is that we always require the application to take care of decoding prior using the binary content.
A possible workaround I found is to use directly binary ConfigMaps in order to let the kube cluster to take care of encoding/decoding by asking the user to create a specific one before the integration. However there seems to be some issue there too (see https://github.com/apache/camel-k-runtime/issues/593)