Control when you want to focus initial date in Calendar

[x] I have changed my target branch to develop :facepunch:

Closes #450
Description
Created prop to control when you want to focus initial date, the default value of initialFocusedDate is true, so when you want to disable it, you only need to set to false.

@dmtrKovalenko, when I was sending initialFocusedDate in DatePicker props I was getting this error:
Warning: React does not recognize the `initialFocusedDate` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `initialfocuseddate` instead. If you accidentally passed it from a parent component, remove it from the DOM element.

Do you know how to solve it?

Yes. You need to spread this prop from passing to ModalWrapper and DateTextField

And also the property should be named something like toFocusDateInitially or shouldFocusDateInitially. Just follow the convention for Boolean props

Okay bro, I'll fix this :+1:


Remove check for tags + duration in query parser

The check only applies to Cassandra backend, which already has the same check enabled.
Resolves #1047.
Signed-off-by: Ivan Babrou<EMAIL_ADDRESS>

Some builds need a restart:
# cd .; git clone https://go.googlesource.com/tools /home/travis/gopath/src/golang.org/x/tools
Cloning into '/home/travis/gopath/src/golang.org/x/tools'...
error: RPC failed; HTTP 502 curl 22 The requested URL returned error: 502 Bad Gateway
fatal: The remote end hung up unexpectedly
package golang.org/x/tools/cover: exit status 128
make: *** [install-tools] Error 1

Unit test is failing

@yurishkuro all green now.

Thanks!


How to create a rounded corner with text inside it ?

Hi @The-lost-cause
I'm not sure I understand your question. Is this what you're looking for? -  https://jsfiddle.net/Lfsjwucz/2/
You can find documentation here.
Best regards


[Key Vault] Prepare for releases with CAE support

Description
This PR is intentionally a draft to validate changes to the feature/kv-cae release branch and produce APIView reviews.
All SDK Contribution checklist:

[ ] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[ ] I have read the contribution guidelines.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-keyvault-administration


Add negative tests for status_request extensions

Problem:
Need negative tests for status_request extension
Proposed Solution:
Add tests to ensure the status_request extension is NOT accepted for messages that do not support this extension - EE (encrypted extensions), NST (NewSessionTicket), and HRR (HelloRetryRequest)
https://tools.ietf.org/html/rfc8446
https://tools.ietf.org/html/rfc6066

This was addressed by https://github.com/awslabs/s2n/issues/1751. The negative tests are now handled by the extensions framework.


How to verify setup and configurations?

Used the docker-compose in repo as baseline.
Any way to verify my setup? Like, to find out if the setup is actually working. The bouncers appear in app.crowdsec.net and an additional KEY_TRAEFIK_... is added to the bouncers tab.

Hi @jorgnyg,
Yes, you can verify your setup.
In the README.md we added the following information to simulate a "ban" from Crowdsec, and see the result in Traefik.
Here is the extract:
Manually add an IP to the blocklist (for testing purposes)
docker-compose up -d crowdsec
docker exec crowdsec cscli decisions add --ip <IP_ADDRESS> -d 10m # this will be effective 10min
docker exec crowdsec cscli decisions remove --ip <IP_ADDRESS>

(Replace <IP_ADDRESS> by your IP seen by Traefik)
I'll try to develop a bit tomorrow.
If you have more specific question, just shoot.
Mathieu

@mathieuHa great, thanks. Looks like manually banning is working.
Is it normal for the api key to "time out"/become inactive after one day like this?

Hi,
I don't really know what are the conditions for the bouncer to be active/inactive.
You should take a look at the docker "bouncer" logs and see what he is doing.
You can use the cscli inside to get informations.
Maybe you're webservices are not exposed (enough ?).
I've tested successfully to block one of my public IP using nikto.  on one of the website behing Traefik / crowdsec.
Note that it didn't work from my internal network, I had to use an external IP.
Mathieu

Hey @jorgnyg to follow up, is everything working for you regarding the initial question ?
I'd like to close this issue if it's all good.
Mathieu

All good. Things are working as expected!


iOS Exception when filename contains space

For iOS, when a file at iCloud has the filename containing space, it throws the exception:
"Could not initialize an instance of the type 'Foundation.NSUrl': the native 'initWithString:' method returned nil.\nIt is possible to ignore this condition by setting ObjCRuntime.Class.ThrowOnInitFailure to false."

same issue here, any suggestion to avoid the error? Thanks

Please provide some details on what version of the package you are using.

we are using v2.0.81-beta
Also getting following error on iOS:
System.IO.DirectoryNotFoundException: Could not find a part of the path "/private/var/containers/Bundle/Application/E6F13309-B18A-4905-96CB-55BFD8145F9F/AgriSynciOS.app/file:/private/var/mobile/Containers/Data/Application/6EB34D7B-B279-4664-A758-FCC4478D095F/tmp/com.myproject-Inbox/sample.pdf".

This is fixed in NuGet package 2.0.106-beta. Please try out this version. The FilePath property now returns a proper file system path.


AMD compatibility + some build tweaks

That's what I had to do to have it working with StackEdit:

Added the whole build folder in the repository. The reason is that I use bower to manage this dependency, and I only want to include diagram-grammar.js and sequence-diagram.js in my project.
Fixed the AMD incompatibility issue. Raphael is not defined globally when AMD is enabled.
Specified jison version in readme.md, as the latest version of jison is not compatible.

Thanks @benweet for this work. Sorry for not reviewing sooner! I've made some changes which has broken this pull request.
However, I have some questions/comments

I've pinned the jison version to the latest now (via the package.json)

I'm unsure of the use case you describe only needing diagram-grammar.js and sequence-diagram.js, and I might have inadvertently broken that as I changed how the final file is built. Could you expand more why you would need this? I consider these files temp files that I don't want checked in.

I would be very happy to include the AMD improvements, but again my changes might have broken this. I personally don't use AMD, but I might investigate and add myself if you no longer have time.


docker compose up error

$ docker-compose up  --build
ERROR: Version in "./docker-compose.yml" is unsupported.
You might be seeing this error because you're using the wrong Compose file version.
Either specify a version of "2" (or "2.0") and place your service definitions under the `services` key,
or omit the `version` key and place your service definitions at the root of the file to use version 1.

$ sudo docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:24:56 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:23:21 2018
  OS/Arch:          linux/amd64
  Experimental:     false

I'm using that same version of Docker, but I did not get that error on the build. Try upping the version in the docker compose file to 3.7.


[Bug] MediaElement not showing up

Description
Steps to Reproduce

Run this project
MediaElementTest.zip

As you can see MediaElement (video) is not showing up.

Expected Behavior
MediaElement (video) should be visible.
Actual Behavior
MediaElement (video) is not visible. I was testing on Android.
Basic Information

Version with issue: <IP_ADDRESS>6
IDE: 16.4.5
Platform Target Frameworks:

Android: 10

This is still happening with the Toolkit version. There is a couple of workarounds already mentioned.

It seems to work if you use FillAndExpand
Specify a width- or heightrequest
Do the little scale trick

Still good to take a look what is going on and hopefully fix it :)

This is still happening with the Toolkit version. There is a couple of workarounds already mentioned.

It seems to work if you use FillAndExpand
Specify a width- or heightrequest
Do the little scale trick

Still good to take a look what is going on and hopefully fix it :)

I was about to give up on using "mediaElement". Luckily I saw this thread so I was able to add the "FillAndExpand" attribute. Now it works fine. I didn't need to add storage access to the manifest, nor did I need to set the experimental flag.

Same Issue in 2022 as this not been fixed yet? Even with this am getting nothing display though am using https://github.com/Tyrrrz/YoutubeExplode  to covert to stream  might be causing a dealy possilby will youtube stream support come in eventually
    <xct:MediaElement x:Name="mediaElement"
                      Grid.Row="0"
                      HeightRequest="500"
                      AutoPlay="True"
                      ShowsPlaybackControls="True"
                      VerticalOptions="FillAndExpand"
                        />

I only see an issue with no playback when the video source is a local resource on android.

The same issue I am facing here, no issue with the URL video but facing issue with the video that is added in resource.
Issue with android version also,We dont have any issue with android 9 but isssue with version 10

The same issue I am facing here, no issue with the URL video but facing issue with the video that is added in the resource.
Issue with Android version also, We don't have any issue with android 9 but issue with version 10

I have same issue.
Asked question here
https://docs.microsoft.com/en-us/answers/questions/939040/mediaelement-is-not-working-for-xamarin-android.html
Any ideas why it's not show up?

Had the same problem when media element was contained in a grid.
This is what I found:
The grid had 2 rows.
Media element is in the second row.
Upper row had a label and a button.

Containing grid had a RowDefinitions='Auto,*'
Media element's VerticalOptions='FillAndExpand'
Media element was not visible.
Containing grid had a RowDefinitions='*,*' (or '*,6*' for that matter)
Media element's VerticalOptions='FillAndExpand'
Media element was visible.
Containing grid had a RowDefinitions='*,*' (or '*,6*' for that matter)
Media element's VerticalOptions='StartAndExpand'
The video itself was not visible but the media element took some space (could see it's "BackgroundColor").

Adding this up to the discussion above leads me to believe that it is highly probable that the media element does not request for space(WidthRequest?\HightRequest) from it's parent after assessing the size of the video.


Tekton Security Audit

Tekton project has requested a project security audit. This issue tracks progress towards that.

Setting up discovery meeting with Tekton community & trailofbits to figure out scope, commitment, etc

CDF Governing Board has approved the 2021 budget which means we can fund this audit this year.

At least myself and @vdemeester are available for an initial meeting to understand how the audit would work and what kind of commitment is required from the Tekton community side. @tracymiranda could you help setting up the initial meeting?
@bobcatfish might be interested to join too.

I will set up a call with trailofbits folks for 11.30am Eastern Tuesday 22nd July. Please shout if this does not work!

Tekton Security Audit planning doc - https://docs.google.com/document/d/1K5NYOHTVQicZeB2lrLJylO3InNBzICBuDjdU5HcQriE/edit#

Kickoff meeting is schedule for 17th Feb at 12pm ET - calendar invite sent out to Tekton folks
https://docs.google.com/document/d/1K5NYOHTVQicZeB2lrLJylO3InNBzICBuDjdU5HcQriE/edit#

Closing the issue since the Tekton Security Audit completed few months ago and Tekton is a graduated project now!
Thanks everyone for their help!


Add a Task.abort() method

Fixes https://github.com/lit/lit/issues/3997
This makes task cancellation possible, but manual. It's maybe desirable in some cases to somehow allow passing an AbortSignal into the task and composing it with the signal we automatically create, and but the exact requirements and shape of that API aren't clear yet. Chaining tasks is one of the more obvious use cases, but this might be doable already because aborting a task will reject its taskComplete promise, which can be passed to downstream tasks.

Oh good catch (he he) with undefined error values!

@rictic yeah, that really through me for a loop for a while today. Only found it because I was aborting with undefined only in Safari 14 because it didn't support signal.reason, and the task wasn't transitioning to ERROR in that case. I have a bruise on my head from banging it 🤕


Fix block detection, using due_time

Fix #403
High level logic for block detection
On a per-chunk basis, check for the presence of new block, insert into Block table.
1. Find the 0s in pellet_ct (these are times when the pellet count reset - i.e. new block)
2. Remove any double 0s (0s within 1 second of each other) (pick the first 0)
3. Calculate block end_times (use due_time) and durations
4. Insert into Block table

Closing this PR, include changes in PR #398


Backport fix: avoid spring loading issue with vertx and k8s client

Issue
Backport of https://github.com/gravitee-io/gravitee-node/pull/186
https://github.com/gravitee-io/issues/issues/8927
https://gravitee.atlassian.net/browse/APIM-1047
Description
Make sure the VertxFactory doesn't try to list all environment properties by using environment.getProperty("xxx") instead of EnvironmentUtils.getPropertiesStartingWith("xxxx").
KubernetesPropertyResolver needs a KubernetesClient which needs a vertx instance. Vertx instance is instantiated with VertxFactory which, when a particular configuration is enabled (service.metrics.enabled), tries to customize the metrics labels by looking at the configuration. When doing that, it calls EnvironmentUtils.getPropertiesStartingWith("xxxxxx") which basically iterates over all the spring property resolvers including  KubernetesPropertyResolver -> :boom:

Gravitee.io Automatic Deployment
🚀 A prerelease version of this package has been published on Gravitee's private artifactory, you can:

use it directly by updating your project with version: 1.27.6-fix-1-27-x-spring-vertx-bean-injection-kub-client-SNAPSHOT
download it from Artifactory here

:tada: This PR is included in version 1.27.7 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

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

2.0.7
GitHub release

Your semantic-release bot :package::rocket:

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

3.0.6
GitHub release

Your semantic-release bot :package::rocket:


DNS Overwrite/Assignment for URL in Monitoring

⚠ Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find similar feature request

🏷 Feature Request Type
Other
🔖 Feature description
I have a domain (let's say www.example.com) redirected to a local host device (let's say <IP_ADDRESS>) on my router so I can access my service quickly when I connect to my local network, but I may want to check it's public ip (let's say <IP_ADDRESS>) for service availability matters, I've got jump/reversed proxy for that port mapping it to public.
✔ Solution
I'd like to have an option for overwrite server ip address without changing the dns server it self.

❓ Alternatives
No response
📝 Additional Context
No response

👍🏻 for this feature!

This would be a great feature to add to the project!
Great tool overall!

I am also looking for a similar option.
I know it's possible to do a similar 'outside check' through a proxy. But finding a free proxy to do that check is annoying and they never live long enough to make it useful through uptime-kuma.
The possibility to bypass the docker DNS, would make it easier to be able to check local DNS and remote DNS for a service.

I'm also looking for this feature!
I want to customize the DNS for each HTTP type of monitor to differentiate between internal and external networks.

@Lakr233
You can do that with the tools currently at your disposal:

you enter the ip into the url field
you enter the Host header as described in https://github.com/louislam/uptime-kuma/issues/2991

I think this is a duplicate of https://github.com/louislam/uptime-kuma/issues/2991 https://github.com/louislam/uptime-kuma/issues/3979
If you agree, could you please close this Issue, as duplicates only create immortal zombies and are really hard to issue-manage?
If not, what makes this issue unique enough to require an additional issue? (Could this be integrated into the issue linked above?) ^^
Note that our contribution guide can be found here and that we are open to contributions if you adhere to this

@CommanderStorm Thank you for providing this level of detail, and I have confirmed that it is working as expected.


RAM variants for databases

Database variants that use the ram volume to speed up builds
Checklist

[x] I've run make from the root directory to see all Dockerfiles are created successfully.
- [ ] I've updated the documentation if necessary.

Motivation and Context
Speed up builds with significant database component.  We provide database variants that use in-memory filesystem to speed up database operation.
Description
Rather than using disk io, make the databases use /dev/shm where a ram-based filesystem is mounted.  It should make things super fast for builds that have heavy database operation and have enough RAM in their build container.

I love this

People who tried this branch, what sort of performance improvement did you see? I saw close to zero improvement for Rails application tests which makes me curious about whether it's actually working as suggested, or whether I don't have CircleCI configured, or what


Kernel Config Services Refactor

Motivation and Context
The current services registration is hard-coded to support only 4 interface types (ITextCompletion, ITextEmedding...). This is not going to be extensible in the long run, as new model types will come onboard, and even within a category (i.e. image generation) not all model providers will have the same requirements, interfaces.
Furthermore, there are additional service types we'd like to manage centrally (HttpClients, Logging, etc.) making them accessible to APIs throughout the kernel -- this change allows for general services management.
Description

Implement a simple named service registry
KernelConfig "is a" ServiceRegistry.
Modeled after the System.Extensions.DependencyInjection types, splitting the ServiceCollection (registration) and ServiceProvider (getting instances). The code is split such that these are in the same class, but implemented in partial classes. If we want to make KernelBuilder where registrations happen, and KernelConfig a read-only source of registered services (ie KernelBuilder.Build() produces an immutable ServiceProvider), this will be a simple split.
Note: considered using System.Extensions.DependencyInjection. This does not provide the named service support we need, and it brings in another library that's much heavier than we need.
Added lots of UTs, updated callers.

Contribution Checklist

[X] The code builds clean without any errors or warnings
[X] The PR follows SK Contribution Guidelines (https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
[X] The code follows the .NET coding conventions (https://learn.microsoft.com/dotnet/csharp/fundamentals/coding-style/coding-conventions) verified with dotnet format
[X] All unit tests pass, and I have added new tests where possible
[X] I didn't break anyone :smile:

We've been talking about the need to fix this for a while, and use ServiceCollection, providing a solution that fits naturally with ASP.NET apps. Why the different/custom approach?

Called out in the PR notes --
System.Extensions.DependencyInjection does not provide a facility for named services, which we use extensively. If we were to adopt it, we'd effectively just be registering Dictionaries<string, T> as services, and then doing lookups on those anyway -- it doesn't it's another dependency nuget package that everyone using SK would need to pull in, and we'd have to make sure we're not conflicting versions with the host app, and it doesn't really gain us any utility.
It would however invite some unintentional practices -- developers could start using the many extension methods and packages that support IServiceCollection, filling SK full of things they expect us to consume internally -- which we won't do.
As @SergeyMenshykh points out, the patterns of Dependecy Injection and IServiceCollection belong to the host app. They should call those as they register AI Providers, instantiate skills objects, etc. with SK.

We should not create another DI just because we dislike what .NET offers, or because we want to isolate SK from the rest of the applications where it is used. The .NET DI solution is mature, well-documented, and familiar to developers. It also supports named binding extensions if needed, leveraging third party containers, and as far as I know, we only use named binding for AI in testing scenarios.
SK should integrate seamlessly with existing ASP.NET apps. If developers configure their DI to select a specific logger, HTTP client factory, or any other component, SK should adhere to that configuration instead of requiring developers to configure dependencies twice.

We should not create another DI just because we dislike what .NET offers, or because we want to isolate SK from the rest of the applications where it is used. The .NET DI solution is mature, well-documented, and familiar to developers. It also supports named binding extensions if needed, leveraging third party containers, and as far as I know, we only use named binding for AI in testing scenarios. SK should integrate seamlessly with existing ASP.NET apps. If developers configure their DI to select a specific logger, HTTP client factory, or any other component, SK should adhere to that configuration instead of requiring developers to configure dependencies twice.

A few rules that would allow us to avoid a lot of problems and have a very flexible SDK:

SK SDK should not make any assumptions about hosting app/client code.
SK SDK should not expect hosting app/client code to use or not to use DI container.
SK SDK should not expect hosting app/client code to use or not to use HttpClientFactory/HttpClient.
SK SDK should have integration points that demark SK SDK boundaries.
SK SDK should have integration/extension points to allow hosting app/client code to plug required dependencies.

SK SDK should have integration points that demark SK SDK boundaries.

This would make for a bad developer experience, increasing the amount of configuration.

SK SDK should not expect hosting app/client code to use or not to use HttpClientFactory/HttpClient.

HttpClientFactory is a mature solution that we should leverage. It's also a well known for resilient architectures. Expecting people to use it is a fair assumption, leads uses into proven solutions, and allows us to leverage work already done by MSFT.

SK SDK should have integration points that demark SK SDK boundaries.

Why? SK should integrate seamlessly into standard .NET solutions, ie drop-in and it works without any effort other than providing some API keys.

Ideally SK should integrate seamlessly into .NET apps without changing or adding any code.
SK dependency configuration should follow the existing configuration of the hosting apps, particularly when these hosting apps use the standard .NET dependency injection. In other words, developers shouldn't have to configure dependencies twice, once for ASP.NET and once for SK.

The problems we should solve are:

The current DI is limited to AI connectors. This is code inherited from initial prototypes focused just on switching models, rejecting the idea of DI in the first place. Since then the code has gone through a few iterations to make it easier to fit into the standard .NET DI. The AI side of the code is almost there. There is still a lot of work in other sides of the SK.
SK DI (AI, HTTP, Logger) doesn't integrate with hosting apps, asking developers to configure DI twice. The most evident part is HTTP, with several users asking to inject a custom HTTP client, disable SSL certs verification, etc. The second most problematic part is the number of HTTP clients being created, with the risk of running out of sockets. And then logging, where SK logging doesn't automatically follow the logging rules of the hosting app. And unit tests, which often cannot mock dependencies, leading for example to tests depending on code under tests, flaky tests, lack of coverage.


Bus line direction filtering i

When selecting bus line direction 1 or 2 and save, the value is again reset to 0. Not sure if this is a bug in the integration, or if my data source doesn't have direction data in it?

I also had this issue. It seems like it is not possible to change any of the options when pressing configure on an already created HASL integration. When trying to save, all options reset to the initial values put in when creating the integration in the first place.
The only way to reconfigure this integration currently is to remove it and re-add it again, whish is a bit annoying 😄


Geocoding from coordinated lead to different results on different platforms

I'm experiencing two different sets of results when retrieving the address from same coordinates depending on the platform. iOS is the most complete, as the street name  in Android doesn't appear. Also subAdministrativeArea returns two different naming..  I do use that parameter for queries .
Why is this happening? two different API versions?
If so are they supposed to align in results?
This is the method I use :
Future<Map<String, dynamic>> getLocation() async {
//    print('getLocation() called');
    Position position;
    LatLng location;
    try {
      position = await locationManager
          .getCurrentPosition(
              desiredAccuracy: LocationAccuracy.bestForNavigation,
              locationPermissionLevel: GeolocationPermission.locationWhenInUse)
          .timeout(Duration(seconds: 15));
      location = LatLng(double.parse(position.latitude.toStringAsFixed(4)),
          double.parse(position.longitude.toStringAsFixed(4)));

//      List<Placemark> userAddress = await locationManager
//          .placemarkFromCoordinates(position.latitude, position.longitude,
//              localeIdentifier: 'it_It');
      List<Placemark> userAddress =
          await locationManager.placemarkFromCoordinates(44.550601, 11.395805,
              localeIdentifier: 'it_It');

      Placemark userDetails = userAddress.first;
      Map<String, String> cityUser = {
        'addressUser': userDetails.name,
        'cityUser': userDetails.subAdministrativeArea,
        'regionUser': userDetails.administrativeArea,
        'zipcodeUser': userDetails.postalCode,
        'countryUser': userDetails.country
      };
      print('User city is :  '
          'comune: ${userDetails.locality} ,'
          'address: ${userDetails.name} ,'
          'city: ${userDetails.subAdministrativeArea} , '
          'zipcode: ${userDetails.postalCode} , '
          'country: ${userDetails.country} ,'
          'region: ${userDetails.administrativeArea} ,'
          ' ?? ${userDetails.subLocality != '' ? userDetails.subLocality : 'n/a'} ');

//      List<Placemark> dbAddress = await locationManager
//          .placemarkFromCoordinates(position.latitude, position.longitude,
//              localeIdentifier: 'en-US');

      List<Placemark> dbAddress =
          await locationManager.placemarkFromCoordinates(44.550601, 11.395805,
              localeIdentifier: 'en-US');
      Placemark dbDetails = dbAddress.first;
      print('User db is : '
          'comune: ${dbDetails.locality} ,'
          'address: ${dbDetails.name} ,'
          'city: ${dbDetails.subAdministrativeArea} , '
          'zipcode: ${dbDetails.postalCode} , '
          '${dbDetails.country} ,'
          'region: ${dbDetails.administrativeArea} ,'
          ' ?? ${dbDetails.subLocality != '' ? dbDetails.subLocality : 'n/a'}');

      Map<String, String> cityDb = {
        'cityDb': dbDetails.subAdministrativeArea,
        'regionDb': dbDetails.administrativeArea,
        'countryDb': dbDetails.country
      };

      Map<String, dynamic> locationDetails = {
        'userLocation': location,
        'cityUser': cityUser,
        'cityDb': cityDb
      };

      return locationDetails;
    } catch (error) {
      print(
          'getLocation(): error getting current location: ${error.toString()}');
    }
  }

and this are some prints:
iOS:

flutter: User city is :  comune: Bologna ,address: Via Azzo Gardino 38 ,city: Bologna , zipcode: 40122 , country: Italia ,region: Emilia-Romagna , ?? Zona Lame
flutter: User db is : comune: Bologna ,address: Via Azzo Gardino 38 ,city: Bologna , zipcode: 40122 , Italy ,region: Emilia–Romagna , ?? Lame

Android:

User city is :  comune: Bologna ,address: 28 ,city: Città Metropolitana di Bologna , zipcode: 40122 , country: Italia ,region: Emilia-Romagna , ?? n/a
I/flutter (31831): User db is : comune: Bologna ,address: 28 ,city: Città Metropolitana di Bologna , zipcode: 40122 , Italy ,region: Emilia-Romagna , ?? n/a

iOS:
User city is :  comune: Cadriano ,address: Via 25 Aprile 28 ,city: Bologna , zipcode: 40057 , country: Italia ,region: Emilia-Romagna , ?? n/a
User db is : comune: Cadriano ,address: Via 25 Aprile 28 ,city: Bologna , zipcode: 40057 , Italy ,region: Emilia–Romagna , ?? n/a

Android:
User city is :  comune: Cadriano ,address: 13 ,city: Città Metropolitana di Bologna , zipcode: 40057 , country: Italia ,region: Emilia-Romagna , ?? n/a
User db is : comune: Cadriano ,address: 13 ,city: Città Metropolitana di Bologna , zipcode: 40057 , Italy ,region: Emilia-Romagna , ?? n/a

you can notice that city ( subAdministrativeAreaparameter ) changes from platform to platform.
Any way to solve this?
Many thanks.

Hi @vinnytwice, this is because we are offering access to the platform specific geocoding SDKs. This means that on Android devices we use the Android.Location.Geocoder API (details here) and on iOS devices we use the CLGeocoder API (part of the Core Location framework, details here).
The reason we opted for this solution is because they are free (with limitations, see also issue #431) to use. Meaning you are offered some basic geocoding features without being charged. If your app requires more detailed or stable geocoding feature I would suggest you are better of using one of the payed solutions out there (e.g. Google Maps, HERE, Apple MapKit or Bing maps).


Add tests that utilize water

Since water is now properly supported (i.e. TIP3P, SPC), some of the tests should utilize water to test this handling.

Partially resolved by #64 in that tests now include water (and water which is not at the end) but I should still update the tests to check that water is handled properly, i.e.:

it occurs in the topology file where it is expected to occur, and
it is TIP3P/SPC if that was asked for


Reference OpenQASMDeviceActionProperties for Braket devices

What is the expected enhancement?
Currently, when converting from properties of a Braket device to a Qiskit target object, the implementation in adapter.py references the JaqcdDeviceActionProperties. We should instead use the OpenQASMDeviceActionProperties which can be retrieved using DeviceActionType.OPENQASM.

Hello, I want to be assigned to this issue too! I also fixed it just now, so I'll pull a request on this issue :)

Once you configure your IDE to run the tests,  you can run tests through IDE and see the failing test case OR you can run tox in your terminal from project directory as seen in the testing CI pipeline.


Traits and rarity

Lots of generative collections have traits of different rarity. This is very interesting to collectors. We should consider supporting a way to add this to a collection.
One way to do this is to add a field for arbitrary textual metadata. This will get expensive fast, and will be limited to 520 bytes, but it would do the trick and be easy.
A better way to do this would be to allow multiple inscriptions on the same sat, and store traits and metadata in an inscription after the main inscription. We could use a tag or special title to indicate that it contains the traits. HTML inscriptions should be able to access this metadata.

Hi @casey ,
I think your approach to adding traits in inscriptions is a great way to encourage new communities and projects to join the ecosystem. I've been working in the direction you mentioned and came up with given solution & raised a PR here.
Solution:

While running ord inscribe command, user can add '--metadata' flag (optional) and pass on traits in JSON form. The JSON will be added in the inscribing envelop as another segment and broadcasted on-chain. eg.
ord wallet inscribe --metadata "data"
An example of data passed:

{
  "traits": [
    {
      "trait_type": "hair",
      "value": "Short Black"
    },
    {
      "trait_type": "cap",
      "value": "Blue Cap"
    }
  ]
}

While showing the inscription details on explorer, we will show traits section if metadata is NOT NULL and has whitelisted key "traits" in it. Showing ss demonstrating the content passed in that key.
image_link

Once collections and provenance gets established, we can easily compute rarity % for traits in items & collections.
This can encourage more community-based NFT projects to join Ordinals and create new collections. Happy to incorporate changes if community has any thoughts.
Note: Validating JSON in metadata input and parsing key-value pair on explorer UI is pending. Will add it soon :)

Good job!
I think it is fairly easy to implement having familiar commands (like we set sats fees and other params).
@p0stcapone - With respect to utilising block space, I think the cost would be negligible (0.1kb on avg) as compared to the file size which will be in 10s or 100s kbs minimum.
Agree to the potential of BIP-322 where we have more complex use-cases. This one is fairly simple problem statement with simple solution. It is need of the hour to have on-chain traits for the inscriptions.

The potential which BIP-322 has is massive but implementing it here seems to be over-engineering for metadata use case.

Hi @casey , Request your attention here!
We think, this is something good which can help evolve ordinals platform more.

Yes @casey please take time to respond 🙏

I've spent my last few months on ORD-721 (uh.. i started around 100-150k inscriptions), while Poyo.eth also work on BRC-721 for about the same time, started earlier than me but still. We are coming to the same stuff.
I believe that's the way forward, no need for a protocol level stuff. That's why a thin abstractions on top are usually born.
Check out at https://ord721.art (launching soon a collection using it). There's a working playground implementing it, but can't share it yet, maybe a few more days.
And Poyo's, https://brc721.com, who also have a ready playground too.

#2053 has an extremely simple proposal that I think provides 99% of what people want, which is text key value pairs. Check it out!

We've added metadata, so inscribers can add arbitrary traits to their inscriptions.


Gradle 8: Use dynamic proxy for JavaInstallationMetadata

Before this PR
When used on Gradle 8, running compileJava or related java tasks leads to an error:
Execution failed for task ':<project>:compileJava'.
> Receiver class com.palantir.gradle.jdks.ImmutableGradleJdksJavaInstallationMetadata does not define or inherit an implementation of the resolved method 'abstract boolean isCurrentJvm()' of interface org.gradle.jvm.toolchain.JavaInstallationMetadata.

This is because Gradle have added a method to JavaInstallationMetadata with no default, probably not expecting people to implement it :(.
After this PR
==COMMIT_MSG==
Support Gradle 8, avoid errors of the form "ImmutableGradleJdksJavaInstallationMetadata does not define or inherit an implementation of the resolved method 'abstract boolean isCurrentJvm()'"
==COMMIT_MSG==
Do this by making a dynamic proxy, which should work provided nothing actually calls these extra methods.
Related fix in baseline: https://github.com/palantir/gradle-baseline/pull/2605
Possible downsides?
Wonderful hackery.

I'm not sure I understand, why do we have to reimplement this? Didn't we do this in https://github.com/palantir/gradle-baseline/pull/2605 ?

sorry, accidentally closed

We implement JavaInstallationMetadata in this repo too, so have the wrong incorrect inferface issue too.

Released 0.34.0


[bug]: Logged in user unable to fetch folders or customize folders in Context Menu

Affected part
Connection (login/fetching)
Extension version
3.6.0
DSM version
DSM 7.1.1-42962 Update 5
Browser version
Chrome 112.0.5615.138
Description
After successfully logging in using either admin/custom/dedicated extension user

extension fails to load folders when attempting to interact with magnet links or attempting to customize context menu options

Note: Normal download management in browser is disabled (why is it even there)
Steps to Reproduce the Issue
Successfully Log in with credentials
Attempt to enable Custom Folder in Context menu.
Screenshots or Mock up
No response
Failure Logs
[{"timestamp":"2023-06-03T13:27:28.632Z","level":4,"source":"background","value":"Polling service failed to fetch list","params":"Error: The logged in session does not have permission"},{"timestamp":"2023-06-03T13:27:28.712Z","level":4,"source":"background","value":"Polling service failed to fetch statistics","params":"Error: The logged in session does not have permission"},{"timestamp":"2023-06-03T13:27:29.954Z","level":4,"source":"option","value":"Failed load folders.","params":"Error: Invalid session."}]

Store snapshots
No response

Hello,
From what the log seems to indicate, the issue seems to come from the Synology session rights.
For the custom destination modal, you need to have a session with read/write access to FileStation, not just DownloadStation.

Can you check if this is the case ?
Note that the extension sues cookie session ID so if you have an open session on the same domain with lesser permission, it might prevent full fonctionalities

Note: Normal download management in browser is disabled (why is it even there)
This should have no impact, it just mean you won't be abale to redirect local download to the diskstation or intercept local download automatically

Yeah it did have permissions for both file station and downloaded station.
I ended up fixing it by giving it permissions not only to the destination subfolder of the volume but to the entire volume itself.
Running smoothly now! Ty!

I had this issue and all my permissions were correct.
The way I fixed it:

Go to Extension Settings -> Connection -> Credientials
Click "Logout"
Once logged out. Click "Login"

That's it 😕


Ref value returned by function won't get unwrapped

Version
3.2.31
Reproduction link
codesandbox.io
Steps to reproduce

refer a Ref value returned by a function in <template>
confirm that the returned value won't get unwrapped automatically

What is expected?
expect this will work.
<template>

</template>

What is actually happening?
I have to unwrap the value myself:
<template>

</template>

x

I would say it's expected.

Yes, this is expected. See https://vuejs.org/guide/essentials/reactivity-fundamentals.html#ref-unwrapping-in-templates

Hi @posva @caozhong1996  I have read the doc page you provided. But I couldn't see why this is expected. What's the reason for this?

Hi @posva @caozhong1996 I have read the doc page you provided. But I couldn't see why this is expected. What's the reason for this?

Unwrapping occurs in the compilation phase,Unable to process return value of function.

@ygj6 Got it, thanks!


Use database's lower function for case-insensitive match

This PR is for the same problem as PR #492 but with a diferent solution, since it was breaking the build.
It's similar to PR #472 and relates to issue #464

https://github.com/mbleigh/acts-as-taggable-on/issues/464#issuecomment-214843950

As I described here https://github.com/mbleigh/acts-as-taggable-on/issues/464#issuecomment-214843950, the problem is still exists, and it depends on the database adapter and locale settings. In that case, all the code, which includes databases lower() functions will not work for Postgres, if the database uses LC_COLLATE locale not corresponding to tags language. It is in many cases more handy to have the LC_COLLATE using "C" locale. May be, this gem need refactoring all the databases case-functions to Ruby`s analogues?


[Event Request] Table 39 - Purchase Line - OnCopyFromItemOnAfterCheck

Dear ALAppExtensions team,
Through this issue we would like to request event publisher OnCopyFromItemOnAfterCheck in Table 39 Purchase Line to be changed such that the first parameter is passed by reference, i.e.:
    [IntegrationEvent(false, false)]
    local procedure OnCopyFromItemOnAfterCheck(var PurchaseLine: Record "Purchase Line"; Item: Record Item)
    begin
    end;

This way the event signature will be aligned with the event for table 37 Sales Line (see also the request in #2841).

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Fixes issue #998

The problem with issue #998 is, that at some node.originalContent in translate.directive.ts is overwritten by a translation that was assigned previously. So the translation key gets destroyed and no further translations could be made.
The bugfix introduces a new variable (node.lookupKey) that is generated once (by this.key or the trimmed content of the node) and used in further translations instead of calculating it over and over again.
Since I changed no existing tests, I assume that alle existing functionality still works. I added new test to verify that the problem with white spaces are fixed.

Closing this as it was fixed by another PR (https://github.com/ngx-translate/core/commit/35427b071a177cca9e5b4e4c76e11a968559e9a7)


ExpandableFab does not use colorAccent when Theme.MaterialComponents.DayNight is the app theme

The ExpandableFab's efab_color doesn't use colorAccent despite setting it to colorSecondary, it just uses the color black. Tested it on API 25, here's my styles.xml
    <style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/color_primary</item>
        <item name="colorPrimaryVariant">@color/color_primary_variant</item>
        <item name="colorSecondary">@color/color_secondary_variant</item>
        <item name="colorSecondaryVariant">@color/color_secondary</item>
        <item name="colorOnSurface">@color/color_on_surface</item>

        <item name="colorPrimaryDark">?colorPrimaryVariant</item>
        <item name="colorAccent">?colorSecondary</item>
    </style>

My colors.xml:
<resources>
    <color name="color_primary">#6200EE</color>
    <color name="color_primary_variant">#3700B3</color>
    <color name="color_secondary">#03DAC5</color>
    <color name="color_secondary_variant">#036C62</color>
    <color name="shimmer_base_0">#c2c2c2</color>
    <color name="shimmer_highlight_0">#ffffff</color>
    <color name="color_on_surface">#000000</color>
    <color name="color_divider">#1F000000</color>
    <color name="color_tinted_surface">#ffffff</color>
    <color name="color_on_surface_secondary">#9e9e9e</color>
</resources>

I know I can just as easily specify my FAB's preferred color or I might just be misunderstanding something, but just thought I should let you guys know what I encountered.

Hey @alvindizon, thanks for bringing that to our attention. This has been fixed in v1.0.1 which is currently available on Maven Central and JCenter.
This fix allows the use of colorSecondary as well if colorAccent is undefined in the current theme, so you shouldn't have to define both in your case (unless you personally need both in your app). Relevant documentation has also been updated on the project website.
Let me know if v1.0.1 fixes the issue for you.

Thanks, I'll check v1.0.1 out.

Just tried v1.0.1, it fixed the issue. Thanks.


Filecoin address class and tests

Description
Filecoin Address class and tests in the change
The filecoin wallet address is constructed with network symbol, protocol, hashed public key and the checksum.
In Address bytes it stores the hashed public key in binary, so two wallet address is comparable.
Testing instructions
The AddressTests.cpp define the test data.
Types of changes

New feature (non-breaking change which adds functionality)

Checklist

[ ] Prefix PR title with [WIP] if necessary.
[x ] Add tests to cover changes as needed.
[ ] Update documentation as needed.

No coin definitions?


removed adminRequired middleware so users with user access can access…

… their content
Description
Upon attempting to login with user credentials, we noticed that rights were denied. within the profileRouter we found a adminRequired middleware which essentially blocks out users from accessing their content. Removing this from the .get/:id endpoint fixes the issue.
Video Link
https://www.loom.com/share/5d0c98639d1a477c9abeb00bb4cfa3de
Trello Link
https://trello.com/c/IpIplSQH
Type of change
Please delete options that are not relevant.

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

Checklist:

[ ] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have removed unnecessary comments/console logs from my code
[x] My changes generate no new warnings
[ ] I have checked my code and corrected any misspellings
[ ] No duplicate code left within changed files
[ ] Size of pull request kept to a minimum
[x] Pull request description clearly describes changes made & motivations for said changes

A simple, elegant change. Does the job.
Might be good to know why it was there, possibly just comment it out as opposed to removing it if the reason was found.

Great catch! Looks great!


Resize maxInitialismLen if addInitialisms if needed

This change increases the size of maxInitialismLen if any of the given
intialisms is too large.

I just pushed a package refactor that eliminates this. I have not reviewed your code at all. Apologies. Please see tag v0.1.4.


perf(compose): Remove await composed() from hono.ts.

What is included?

Reduced use of await
Reduced use of context instanceof HonoContext

I think this code did not limit the type of context for abstraction, but since it will always be HonoContext in production environment, we have limited the type of context so that we do not have to compare.

There are many changes to the test code, but no changes to Hono's API.
Benchmark
These are the results in my environment.
#493 reflects the results of optimization.
hono - trie-router(default) x 220,343 ops/sec ±5.68% (83 runs sampled)
hono - regexp-router x 261,953 ops/sec ±5.37% (82 runs sampled)
itty-router x 82,331 ops/sec ±3.38% (85 runs sampled)
sunder x 114,834 ops/sec ±2.25% (83 runs sampled)
worktop x 66,525 ops/sec ±3.41% (87 runs sampled)
Fastest is hono - regexp-router

Apply the following changes to this PR.
diff --git a/src/hono.ts b/src/hono.ts
index c4c0810..4a2da5e 100644
--- a/src/hono.ts
+++ b/src/hono.ts
@@ -203,24 +203,6 @@ export class Hono<

     const c = new HonoContext<string, E>(request, env, eventOrExecutionCtx, this.notFoundHandler)

-    // Do not `compose` if it has only one handler
-    if (result && result.handlers.length === 1) {
-      const handler = result.handlers[0]
-      try {
-        const res = handler(c, async () => {})
-        if (res) {
-          const awaited = res instanceof Promise ? await res : res
-          if (awaited) return awaited
-        }
-        return this.notFoundHandler(c as Context)
-      } catch (err) {
-        if (err instanceof Error) {
-          return this.errorHandler(err, c as Context)
-        }
-        throw err
-      }
-    }
-
     const handlers = result ? result.handlers : [this.notFoundHandler]

     const composed = compose<HonoContext<string, E>>(handlers, this.notFoundHandler)

This version is a bit slower, but this is doing quite well, too.
hono - trie-router(default) x 218,861 ops/sec ±6.06% (79 runs sampled)
hono - regexp-router x 265,468 ops/sec ±6.16% (79 runs sampled)
itty-router x 83,826 ops/sec ±3.77% (86 runs sampled)
sunder x 120,162 ops/sec ±2.26% (85 runs sampled)
worktop x 66,387 ops/sec ±5.05% (84 runs sampled)
Fastest is hono - regexp-router

Hi @usualoma !
Thank you for the PR! I've taken the benchmark for the application just returning "Hello World" on Bun.

The code with no #493 applied (the code you used in the second benchmark) will be much faster than v2.1.3! This will speed up handlers with some middleware. Nice! I'll merge it.

Hi @usualoma !
Sorry to get back on topic. Once again, I benchmarked on Bun. This PR will be effective when multiple middleware is applied to the handler. So, I wrote the following script:
import { RegExpRouter } from 'hono/router/reg-exp-router'
import { Hono } from '../../src/index'

const app = new Hono({ router: new RegExpRouter() })

for (let i = 0; i < 10; i++) {
  app.use('/with-middleware', async (c, next) => {
    c.set('count', i)
    await next()
    c.get('foo')
  })
}
app.get('/with-middleware', (c) => c.text('GET(/with-middleware)'))
export default app

Then, run the scripts on Bun 0.1.11 latest canary build, with each versions:

Current main branch
fix/logger-called-twice branch, not applied this PR yet.
v2.1.3

Results are below:

Current main branch is slower than the others. Maybe the changes in this PR are having a worse effect.
And, I've notice that all handlers except main handler are async, because they are almost middlware. So they have to await, and perhaps what this PR is doing is not much different from the previous version.
What do you think about this? Sorry if I am wrong.

@yusukebe Thanks!
Your point is spot on.
I did not correctly consider in this PR that "middleware is an AsyncFunction and await is used".
I think the following PR would solve this problem.
https://github.com/honojs/hono/pull/496


Flow control issues in the curio example server

(By "flow control" here I mean coordinating on reading/writing to a socket, not HTTP/2 flow control. I don't know another term for this?)

The code calls sock.sendall from multiple parallel tasks. This is bad, because sendall is not an atomic operation, so the writes could get intermixed on the wire. There needs to be one linearization point where data read out of data_to_send() is queued to go out on the wire.

The receive loop (the H2Server.run method) alternates between reading and blocking on sending. This seems like risky behavior, because it creates the possibility of deadlock: if a client was written in a similar fashion, then one could potentially end up in a situation where they were both blocked in sendall, waiting for the other to call recv.

I don't know how to handle these properly in the HTTP/2 context, especially when combined with HTTP/2 flow control (which I don't understand at all yet :-)), and the requirement to not allocate infinite memory for buffers (so we can't just keep calling recv forever without any backpressure, or queuing up unbounded amounts of data to send). I'm... not actually entirely sure that (2) even is solvable given bounded memory use, actually?

Concurrency issues, or data races, or thread safety, if you are looking for
a label

Both of these things are very solveable, and HTTP/2 flow control plays into both.
Firstly, part 1). The code cannot call sendall from parallel threads (real or virtual) unless there is a lock around the call. This is a hard-and-fast rule that cannot be broken: if you do it then your code is bugged. However, this is also true of any code that calls send from parallel threads: given that send can send part of the data, the apparent atomicity of send isn't helpful: you can still mix your writes badly.
In fact, this rule is more generally applicable. I has little to do with HTTP/2 and everything to do with concurrent socket programming: if you're using a TCP socket then you must not write from multiple threads without obtaining a lock to serialize that access. Even then it's frequently better to adopt a model that says that you have one thread that "owns" sending from a socket, which loops around pulling messages from a queue and sending them on the socket.
As to 2), this is generally not a good idea. Your sending loop should ideally not get stuck in blocking operations: it should instead be using select or something like it to confirm that an operation is possible, and then doing it. That allows you to avoid using sendall, which absolutely can get stuck, and so you can free yourself up to recv as needed.
So how does HTTP/2 flow control mix into this? It does so in two places. Firstly, on the receive side: if you manage your HTTP/2 flow control appropriately it is not possible to build up unbounded buffers of data. Specifically, you shouldn't open HTTP/2 flow control windows for the stream until the data has been removed from your receive buffer and passed to your application (that is, until it's semantically no longer buffered). You can see this in the Twisted server, which will immediately reopen the flow control window if it passes the data to the application but otherwise keeps hold of it until it's unbuffered later.
The advantage of this is that it limits what the remote peer can send you. In the Twisted case, we cannot buffer more than one connection flow control window of data. That's probably too small, so I'm going to consider adjusting the Twisted code to allow bigger buffers, but it'll be no more than SETTINGS_MAX_CONCURRENT_STREAMS * SETTINGS_INITIAL_WINDOW_SIZE bytes. That means that if your application is not consuming data, eventually the remote peer is unable to send you any more.
For queueing up data to send, you need to be able to signal flow control messages from the remote connection. Essentially, you need a way to say to a task that wants to send a HTTP/2 data frame: "sorry, you're blocked by flow control, I'll tell you when you're unblocked and you can send again". That once again bounds how much data you can buffer by the HTTP/2 flow control window, this time the window of the peer. Twisted's HTTP/2 server does this as well.


fuselage: build script failing

Description
I'm trying to setup fuselage on my local machine for contributing. I'm unable to proceed further than the build setup mentioned in the contributing to fuselage docs.
Steps to reproduce
After forking the repo and cloning I ran the following scripts at the root (/fuselage):
// I deleted the local yarn.lock file to get a fresh yarn.lock since yarn install was failing at first
yarn && yarn build -> failing at the build script

Here's my pastebin error log.
Insert an image/gif
For testing I tried running the uikit-playground package and it's unable to resolve the local npm deps from the mono-repo:

Hey @Rec0iL99, I am also here for contributing to fuselage, I have setup the build in my local machine and its perfectly running  fine in my machine, I would like to point out few things here.

cloning the repo
installing node modules at root level
3)yarn build
navigate to packages/fuselage/
yarn storybook

yarn start simply wont start since this is based on storybook, you can give yarn storybook to run the project.

Hi @ananthastaputra, thanks for reaching out. The problem for me is yarn build (at the root level specifically at fuselage package) is failing for me (you can check my error logs). Maybe it could be a problem with my machine.
If it is working for you, please share your node, npm and yarn versions. Did you run yarn build at the root or fuselage/ level?

Yes we have to build at root level, I dont think its due to yarn, npm, node versions anyhow

You can observe that I came back from packages and done yarn install, I am mentioning my npm and yarn versions here.
yarn -->3.2.4
npm --> 8.19.3

yarn install is working perfectly for me. It's yarn build that's failing :(
Did you run build script at root level?

@ananthastaputra please let me know your Rocket.Chat username. We can discuss there.


Lazy loading with packer

I'm trying to lazy load indent-blankline.nvim using packer:
...
  use {
    'nvim-treesitter/nvim-treesitter',
    run = ':TSUpdate',
    event = 'BufRead',
    cmd = {
      'TSInstall',
      'TSBufEnable',
      'TSBufDisable',
      'TSEnable',
      'TSDisable',
      'TSModuleInfo',
    },
    config = "require('user.plugins.treesitter')",
  }

  use {
    'lukas-reineke/indent-blankline.nvim',
    config = "require('user.plugins.indentlines')",
    event = 'BufWinEnter',
    after = 'nvim-treesitter',
  }
...

my indent line config is this:
----------------------
-- indent_blankline --
----------------------
local status_ok_indent_blankline, indent_blankline = pcall(require, 'indent_blankline')
if not status_ok_indent_blankline then
  return
end
indent_blankline.setup {
  char = '┊',
  filetype_exclude = {
    'NvimTree',
    'TelescopePrompt',
    'TelescopeResults',
    'alpha',
    'help',
    'lspinfo',
    'mason.nvim',
    'nvchad_cheatsheet',
    'packer',
    'terminal',
    '',
  },
  buftype_exclude = { 'terminal' },
  show_trailing_blankline_indent = false,
  show_first_indent_level = false,
  show_current_context = true,
  show_current_context_start = true,
  space_char_blankline = ' ',
}

When entering vim, I get this notification:
indent-blankline  WARN nvim-treesitter not found. Context will not work

Any ideas why?
How to achieve lazy loading?
Thanks.

Not sure, this is more a question for packer. This error just means that when indent-blankline was loaded, nvim-treesitter was not available.
But I would question the point of doing this in the first place. You can't start Neovim without a window, so with BufWinEnter you still load indent-blankline on startup. You don't get any benefit from doing this.

I agree that BufWinEnter might not be the best event to put a lazyload hook into.
In any case, it might be worth adding module = "nvim-treesitter" to the treesitter plugin's definition so it can be loaded on demand by doing require("nvim-treesitter").

Add option to disable this annoying message would be great!

If you get the message it means your config is wrong and not going to work.
Fix the problem with your config and you won't get the message.

If you get the message it means your config is wrong and not going to work. Fix the problem with your config and you won't get the message.

This error only happens if show_current_context is on.
I don't know if this plugin's other features depends on treesitter, if it does, than it should be in the doc, and I will enable this plugin only when treesitter is available.
Otherwise, show_current_context is optional, if it works, great, if it doesn't, fine, just don't emit errors. I like the show_current_context doesn't mean i have to adjust a lot of configs to make it work in all cases.

The whole plugin does not require treesitter. But show_current_context does, and it says so in the docs.
https://github.com/lukas-reineke/indent-blankline.nvim/blob/c4c203c3e8a595bc333abaf168fcb10c13ed5fb7/doc/indent_blankline.txt#L464-L470
If you turn show_current_context on, you explicitly opt-in to use treesitter. If it is not available then, you get an error.
This behavior will not change.


Added wordle clone

Description 📜
This is a simple clone of the most popular web-based word game called "Wordle" built using HTML , CSS and JavaScript.
Please include a summary of the change and which issue is fixed.
Fixes #607

Type of change 📝
Please delete options that are not relevant.And in order to tick the check box just but x inside them for example [x] like this

[x] Add a new project

Domain of Contribution 📊
Please delete options that are not relevant.And in order to tick the check box just but x inside them for example [x] like this

[x] Project using HTML, CSS & JS

Checklist ✅
Please delete options that are not relevant.And in order to tick the check box just but x inside them for example [x] like this

[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GSSoC'22 contributor

Screenshots / Gif (Optional) 📸

Thank You so much . 🙏


Fixed content type date to save date data-type in phpcr

tasks:

[x] test coverage
[ ] gather feedback for my changes
[x] test migration
[x] add upgrade
[x] date content type test

informations:

q
a

Fixed tickets
none

BC breaks
see UPGRADE

Documentation PR
none

@danrot fixed


SPOI-8830: Adding documentation for File Input Operator

@yogidevendra and @ashwinchandrap  please review.

Opening new PR against bug branch.


HIVE-27409: Iceberg: table with EXTERNAL type can not use statistics to optimize the query - ADDENDUM

What changes were proposed in this pull request?

Why are the changes needed?

I missed a fix when refining HIVE-19335 to enable EXTERNAL iceberg table use stats.  This was found when i rerun dynamic_semijoin_reduction.q in which i transform iceberg type to EXTERNAL, but actually the execution plan should not be changed. Please see https://github.com/apache/hive/pull/4341/files#diff-3abb3774d1aa95235ca6c87cae91452ab59ddce60b6270eb46c038a19d12d88a
Does this PR introduce any user-facing change?

NO
How was this patch tested?

@ayushtkn @akshat0395 @simhadri-g Sorry for previous missing fix. Please take a look again if having times.

Added commit https://github.com/apache/hive/pull/4395/commits/24dc46f7738472b094191fbc94387840d511ae9f to fix failed qtests http://ci.hive.apache.org/blue/organizations/jenkins/hive-precommit/detail/PR-4395/1/tests/ which have EXTERNAL iceberg table.
mvn test -Dtest.output.overwrite -Dtest=TestIcebergCliDriver -Dqfile="delete_iceberg_partitioned_avro.q,delete_iceberg_partitioned_orc.q,delete_iceberg_partitioned_parquet.q,delete_iceberg_unpartitioned_parquet.q,update_iceberg_partitioned_avro.q,update_iceberg_partitioned_orc.q,update_iceberg_partitioned_parquet.q,update_iceberg_unpartitioned_parquet.q" -pl itests/qtest-iceberg -Piceberg -Pitests -Drat.skip


Add nodeenv section

Added nodeenv support, I've taken huge inspiration by venv section.

I see this section as a part of the node section. In the case of venv we keep it separately because I could be used with other environments.
I want to hear @salmanulfarzy and @maximbaz opinions on this.

No response.


Image Resource Training (let's go!!)

The Goal
Offer image training for LoRAs directly in the UI, allowing anyone to create one based on provided sample images and captions.
In this PR

"Training" section added to user profile -> models with relevant actions and data

"Train a Model" added to plus button in the nav

new Training Wizard with 3 steps to create the actual training request

first form is for basic selection of training type and name
second allows uploading images or entire zips, creating captions, and zips it all up
third gives options for training parameters

model wizard changes depending on the type (in this case, uploading a model file is replaced with options of the created epoch files)

addressed issue where clicking "x" on a wizard when opening in a new tab didn't do anything

2 new environment variables

new endpoint for submitting training to orchestrator and subsequently to runpod

webhook for updating data back from runpod

new feature flag for this, protected by the "founder" role

fixed existing bug with getTags where tags were an empty array

[dev] small edits to eslint and adding prettier config

[dev] migration for adding and modifying training columns on Model, ModelVersion, and ModelFile

[dev] fixing feature flags for "dev" role while in dev mode

handling loading issue with the current create wizard where the steps can "jump" upon loading

Known Issues / Bugs / Todos

[ ] [dev] need to remove console.logs
[ ] change invalidate calls to proper updates to save reload time ("Loading model...")
[ ] can try to prepopulate model category based on style selected
[ ] need to use zustand / context management to avoid losing data (like image uploads) on navigation
[ ] should probably handle reuploading of zips/images better (update the file rather than make a new one)
[ ] need to add links on the Add Images page for training guidelines, retention policy, etc.
[ ] training settings should have hoverable "hints" as to what they mean and what they're used for
[ ] training settings with calculated defaults need to recalculate when their constituent variables are changed
[ ] when finally posting a model, need to offer the option to select the 3 provided sample images in addition to the dropzone
[ ] redirecting needs to be adjusted for the ModelWizard when editing a training model that has already been submitted, right now it will mistakenly think files have been provided when they have not and will forward you to step 4
[ ] "training start" when clicking "view details" on a submitted training run is currently undefined
[ ] the training tab on the user profile should probably also show missing information for the actual model rather than just the training data
[ ] need to change callbackUrl for prod
[ ] we need an alerting system for when the job is done

Testing Instructions
The general flow should work like this, and should only work if you are logged in and have the proper feature flags (dev, founder, mod):
Step 1

Begin by clicking the plus button in the top left -> Train a model

the initial training screen (step 1) should pop up

Select a type and a name

if both are not populated you should get a warning

clicking Next should create a model and version, and if you navigate back, the data should still be there
leaving after hitting next here should populate a row in your user profile -> models -> training tab with a status of draft

Step 2

now drop some images and caption them (can either click to select file or drag in)
optionally drop a zip file with images and captions, or a combination of a zip and images
if you are looking for datasets, Alex put some here: https://drive.google.com/drive/folders/1K_7tNzB8L6LFY8yOGlCNL3FIuzE8MJlR?usp=drive_link
try to break this by uploading wrong types, invalid zips, etc.
clicking next should zip all these up and upload it
navigating back here should reload your zip and show you the data you just put in

Step 3

final submission step is to choose a base model
optionally, choose your advanced training settings
submitting here should update the model and send off a training job, notify you, and then direct you back to your training tab

Step 4

now that a model is training, you can click it to be taken to the training wizard

this should direct you to step 1, but I need to adjust the redirect logic for the Training case since we technically already have data

the data you have already entered should be reflected in steps 1 and 2

Step 5

if you navigate to step 3 here, you will see an option to select your epoch files (with example images and prompts)
select one of those, and the model should update
now you can try to post normally, which should mark this entire thing as complete and published.

Looks like it's failing the type checks.

When creating the model/modelVersion, we should add a category tag to the model that corresponds with the training category.

For now, the easiest thing to do would be to query for a tag that matches the name of the training category and add that tag to the model. We could look at adding some category tag name map, but I'm not sure if that would be super useful since we would just be hardcoding something that is tied to the database.

When creating the model/modelVersion, we should add a category tag to the model that corresponds with the training category.  For now, the easiest thing to do would be to query for a tag that matches the name of the training category and add that tag to the model. We could look at adding some category tag name map, but I'm not sure if that would be super useful since we would just be hardcoding something that is tied to the database.

this is in the known issues section, the concern is that it happens to overlap with the three in the tag/category section now, but it might not in the future. what would we do in that case?


TypeScript typings support?

+1 also missing this

Agreed – this would be nice to have. I still don't use TypeScript, but know that it's crucial for many others.
However, I don't like the idea of shipping typings down with every installation. And the DefinitelyTyped project has picked up a lot of momentum, which I'm glad to see as it addresses the same concerns I have.
So, sometime during (or after) this next push for a minor release, I'll make a PR to add Polka typings to the collection so that they're available as @types/polka 🤞 That will also keep the types in the vicinity of & in the hands of people who actually use TS and are good at this stuff 😆
I'll keep this issue open as a reminder~

This depends (mostly) on Trouter definitions, which I plan to provide as well. Since both Polka & Trouter will have synchronized major releases, these will come together.

I would do the typings for send and send-type too.
It shouldn't take much time and I love Polka and Typescript - so I would like to contribute ;)

@stahlstift That would be awesome! 🎉
Do you mind getting it started in the DefinitelyTyped repo? I would still prefer that they live there (see reasons above), but I could maybe live with them being inside Polka directly. I guess it depends how much uproar there would be. Although, everyone is already installing @types/express for Express apps anyway.
Also, no need to worry about send – that's being removed entirely. The send-type package is taking its place & its name.

I will start with a fork and put the types in directly. We could then discuss that "where to place" problem ;)

Of course 😄 Yes, the extends functionality they have inside the DefTyped repo is a great addition. I saw it for the first time when looking at Express' typings.
Starting with Trouter would be the best 1st step – you can look at this commit (https://github.com/lukeed/trouter/commit/abf5fa2242d066346e3449c719683f38379ea139) for a jump start. Adding on the Polka parts afterwards "should be easy" ™ lol

Status:

[ ] Trouter
Finished. Need to read thru the contribution guidelines of DefinitelyTyped and prepare the commit. This should happen today ;)
[ ] Polka
Not started
[ ] send-types
Not started

@lukeed It would be nice if you could ping me if there are API changes in one of this projects to keep the typings in sync

@stahlstift that's great! Once I'm near a computer I'll give that a review. I've contributed to DT before so that should help in landing that PR.
As for Polka, the only breaking API change (that I can think of atm) is that handler now expects/receives a next<Function> as its third argument. A bunch of the internals changed, but I don't think that should affect the typings at all.
There's a new discord channel if you wanna swing by for quicker feedback 😆 https://discord.gg/xrRvfYV

declare module 'polka' {
  const content: any;
  export default content;
}

Haha @frzi has completed a solid set of definitions for the 1.0. I've checked them out & they look great.
They'll be available as @types/polka with the release. At this stage, I'm wrapping up 1.0's "compat" layer for existing Express apps & plugging Polka into real-world production usage to see if anything pops up.

Yep. Waiting for stable 1.0 release before sending a PR to DefinitelyTyped. :)
Have been using the type definitions with some personal projects for a while now and liking the way things look! Can't wait!

How long we should wait? I thought that it is straightforward task

It is, thanks for clarifying 👍

Hey, I'm currently using polka with Google cloud functions, Is there any types defined to use when the package @types/polka is ready? I don't know if this works

It's slightly outdated and a rather old contestant for @types. I'm really forward to working with polka again soon. When the time comes and someone else hasn't beaten me to the punch yet, I'll be sure to have the type definitions complete and ready! 💪

I have been working more with TypeScript over the last ~6 months and have maintained definitions while working on/with polka@next for large production applications.
Here are the definitions I've been using, which stemmed from @frzi's original work (thank you): https://gist.github.com/lukeed/2fb80f9f87ee40204ef8412963348098
I've been using them like this:
import { IError, Middleware, Request, RequestHandler, Response, ErrorHandler, Polka } from 'polka';

// Extend `Request` specifically for this application
// ~> needed when doing stuff like: `req.user = await User.find(...)`
export interface IRequest extends Request {
	user?: My_User;
	items?: My_Item[];
	// ...
}

// Export wrapped types for <this> application
// ~> everything bound to the custom `IRequest` context
export type IRouter = Polka<IRequest>;
export type IMiddleware = Middleware<IRequest>;
export type IErrorHandler = ErrorHandler<IRequest>;
export type IHandler = RequestHandler<IRequest>;

// Custom error handler, if any
const onError: IErrorHandler = (err: IError, _req: IRequest, res: Response) => {
	const code = (err.code || err.status || 500);
	if (code >= 500) console.error('onError', err);
	res.headersSent || toError(res, code, err);
}

// Define custom router, with custom Request interface
export default function (): IRouter {
	return polka<IRequest>({ onError });
}

Is it that hard to migrate the little lines of code polka claims to have to typescript? Honestly, if
it have few lines of code, what's the issue? Not like you have to write a bunch of stuff more, and
you make the library usable to typescript without having to maintaing a separate d.ts file.
'polka' is declared but its value is never read.ts(6133)
Could not find a declaration file for module 'polka'.
'**************************************' implicitly has an 'any' type.
  Try `npm install @types/polka` if it exists or add a new declaration (.d.ts) file containing `declare module 'polka';`ts(7016)

FYI - Here are type definitions that I created for Polka.
declare module "polka" {
  import { IncomingMessage, Server, ServerResponse } from "http";
  import { Url } from "url";
  import Trouter = require("trouter");

  /**
   * A middleware function
   */
  type Middleware = (req: Request, res: ServerResponse, next: Next) => void | Promise<void>;

  /**
   * Calls the next middleware function in the chain, or throws an error.
   */
  type Next = (err?: string | Error) => void;

  /**
   * An `http.IncomingMessage`, extended by Polka
   */
  interface Request extends IncomingMessage {
    /**
     * The originally-requested URL, including parent router segments.
     */
    originalUrl: string;

    /**
     * The path portion of the requested URL.
     */
    path: string;

    /**
     * The values of named parameters within your route pattern
     */
    params: {
      [key: string]: string;
    };

    /**
     * The un-parsed querystring
     */
    search: string | null;

    /**
     * The parsed querystring
     */
    query: {
      [key: string]: string | string[];
    };
  }

  /**
   * An instance of the Polka router.
   */
  interface Polka extends Trouter<Middleware> {
    /**
     * Parses the `req.url` property of the given request.
     */
    parse(req: Request): Url;

    /**
     * Attach middleware(s) and/or sub-application(s) to the server.
     * These will execute before your routes' handlers.
     */
    use(...handlers: Middleware[]): this;

    /**
     * Attach middleware(s) and/or sub-application(s) to the server.
     * These will execute before your routes' handlers.
     */
    use(pattern: string | RegExp, ...handlers: Middleware[]): this;

    /**
     * Boots (or creates) the underlying `http.Server` for the first time.
     */
    listen(port?: number, hostname?: string): this;

    /**
     * Boots (or creates) the underlying `http.Server` for the first time.
     * All arguments are passed to server.listen directly with no changes.
     */
    listen(...args: unknown[]): this;

    /**
     * The main Polka `IncomingMessage` handler.
     * It receives all requests and tries to match the incoming URL against known routes.
     */
    handler(req: Request, res: ServerResponse, parsed?: Url): void;
  }

  /**
   * Polka options
   */
  interface Options {
    /**
     * The server instance to use when `polka.listen()` is called.
     */
    server?: Server;

    /**
     * A catch-all error handler; executed whenever a middleware throws an error.
     */
    onError?(err: Error, req: Request, res: ServerResponse, next: Next): void;

    /**
     * A handler when no route definitions were matched.
     */
    onNoMatch?(req: Request, res: ServerResponse): void;
  }

  /**
   * Creates a Polka HTTP router.
   *
   * @see https://github.com/lukeed/polka
   */
  const polka: (opts?: Options) => Polka;

  export = polka;
}

Thank you @JamesMessinger - I believe those are for current Polka (stable), right?

Yeah, that's for 0.5.2.  I hadn't actually realized that you had a 1.0.0 in the works 😅  When is that expected to be released?

What things have changed in 1.0.0?  I'll be happy to update my type definition.

Cool, thanks :) I believed that to be the case, otherwise there were some definite issues with that for the current polka@next version.
I posted the WIP 1.0 types here: https://github.com/lukeed/polka/issues/17#issuecomment-545119126. I've been using them for months now quite successfully. There might be a slight modification or two needed that I've included in my projects, but I'll have to review notes.
Lastly, I left my job – I'll finally be able to put in the time that a few of my OSS projects have needed. Polka is high on the to-be-finished list during this time.

Oh, cool!  Thanks for linking to your own type definitions. I hadn't noticed those before.
Looking forward to seeing Polka 1.0.0 soon. I've been searching for an Express replacement that's as minimalist/performant as possible while still compatible with most middleware packages. Polka fits the bill perfectly. Thank you for creating it and keeping it lightweight!

I created a PR for DefinietlyTyped to cover current stable version: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/44943

There is a bug in this types and prevents chaining .listen() to .get() and other Trouter methods.
Property 'listen' does not exist on type 'Trouter<T>'.

@khc could you provide here a usage example based on https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/polka/polka-tests.ts
I will then fire up a new PR with fixes.
I am not heavy polka user and I simply followed what @JamesMessinger did, adopting it to DefnietlyTyped repo.

I wasn't able to use the DefinitelyTyped package with middlewares.
In package.json: "@types/compression": "^1.7.0",
In server.ts:
import compression from 'compression';

const { PORT, NODE_ENV } = process.env;
const dev = NODE_ENV === 'development';

polka()
	.use(
		compression({ threshold: 0 })
	)

Gives error:
> @rollup/plugin-typescript TS2769: No overload matches this call.
  Overload 1 of 2, '(...handlers: Middleware[]): Polka', gave the following error.
    Argument of type 'RequestHandler<ParamsDictionary, any, any, ParsedQs>' is not assignable to parameter of type 'Middleware'.
      Types of parameters 'req' and 'req' are incompatible.
        Type 'IncomingMessage' is missing the following properties from type 'Request<ParamsDictionary, any, any, ParsedQs>': get, header, accepts, acceptsCharsets, and 26 more.
  Overload 2 of 2, '(pattern: string | RegExp, ...handlers: Middleware[] | Polka[]): Polka', gave the following error.
    Argument of type 'RequestHandler<ParamsDictionary, any, any, ParsedQs>' is not assignable to parameter of type 'string | RegExp'.
      Type 'RequestHandler<ParamsDictionary, any, any, ParsedQs>' is missing the following properties from type 'RegExp': exec, test, source, global, and 12 more.

@pkuczynski Your tests are missing .listen() after Trouter methods. I think the idea is, that even though Polka extends Trouter, it's methods returns Polka instance, not Trouter itself.
Your types for Polka also extends Trouter, but you covered only Polka methods, leaving original Trouter methods, which by Trouter types returns Trouter instance.
For example, this will work:
const app = polka(); app.get('/', hello()); app.listen(3000);

And this will not
polka().get('/', hello()).listen(3000);

The current polka types have the following:
    /**
     * Parses the `req.url` property of the given request.
     */
    parse(req: Request): Url;

and
    /**
     * The main Polka `IncomingMessage` handler.
     * It receives all requests and tries to match the incoming URL against known routes.
     */
    handler(req: Request, res: ServerResponse, parsed?: Url): void;

Based on my reading of the code and the documentation, req should be an IncomingMessage and not a Request.
Does this sound right to others?

Based on my reading of the code and the documentation, req should be an IncomingMessage and not a Request.

Polka decorates IncomingMessage with some extra things described as Request interface. How it is done now, is correct.

There is a bug in this types and prevents chaining .listen() to .get() and other Trouter methods.

I just checked out and it works for chained...

I wasn't able to use the DefinitelyTyped package with middlewares.

I created a PR fixing this issue: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/45060

The only thing I am not sure if Polka should rely on express types not havibg it in its own dependencies? :/

Definitely not, otherwise you might run into a point where a function that doesn't exist in Polka will be returned in types.
As for example here:


Add CNI reconciler for docker

Issue #, if available:
Description of changes:
Implement the provider reconciler for cilium networking for the docker provider
Testing (if applicable):
unit testing
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/hold
Still working on some refactoring of repeated code

/unhold

/approve


Field Name Quotes missing with PgSQL with select()

Here is the code:
$this->query = Entity::find();
$default = ['{{*maintable}}.*'];
$this->related = ['{{%table}}.nEntityID', '{{%table}}.sEntityName']
$this->query->select(ArrayHelper::merge($default, $this->related));
$data = $this->query->asArray()->all();

This will work perfectly with MySQL or may be other DB but not with PgSQL. This is because PgSQL will convert field and tables to lower case if those are not quoted.
The query which is being executed by above code is not quoting the field name. It is quoting table name which are {{%table}} but not to the field added after it which is {{%table}}.nEntityID
Is there anything I am missing or Yii should Quote those field names?

Also if $this->related = ['{{%table}}.nEntityID', '{{%table}}.sEntityName'] is used as $this->related = ['nEntityID', 'sEntityName'],
i.e.: without table name then it is quoting fields properly

To quote column names you should use {{%table}}.[[sEntityName]].


ci: use vm-based travis

https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration

looks good, let's merge 👌


Agency Management: Agencies page / Viewing Agencies

Why is this issue important?
One of the epics of the CPF reporter is agency management. This work takes place primarily under the Agencies tab of the webapp. The first step to building this functionality is building out the Agencies page and table, which allows for the Viewing Agencies functionality.
Current State
None
Expected State
The Agencies tab and associated functionality should only be accessible to admin users. When an Admin user navigates to the Agencies page, they should see see a table of all current Agencies in their tenant’s organization:

This page should include:

page title of “Users”
“Create New Agency” Button [This ticket does not include implementing functionality for the button, just making the button. New agency functionality is under this ticket]
Table of existing agencies

Columns:

Agency Code
Name
Actions: "Edit" button for individual agencies [This ticket does not include implementing functionality for the button, just making the button. Edit agency functionality is under this ticket]

Here the user should be able to view the agencies under their tenant.
Implementation Plan
No response
Relevant Code Snippets
No response

This is working great in staging, closing issue!


Crash due to AttributeError when using remote execution

See original issue on GitLab
In GitLab by [Gitlab user @scott].clarke on May 20, 2020, 13:41
Summary
I experienced a build failure due to and AttributeError, shown below, when using remote execution and having an artifact server defined.
Steps to reproduce
I saw the failure when doing a remote execution build of this element with my project.conf contaning the lines shown below. I only saw this error when the artifact cache was defined, if commented out this didn't occur.
What is the current bug behavior?
Buildstream crashes with an AttributeError as seen below.
What is the expected correct behavior?
Buildstream shouldn't crash.
Relevant logs and/or screenshots
    An unhandled exception occured:

    Traceback (most recent call last):
      File "/usr/local/lib64/python3.7/site-packages/buildstream/_scheduler/jobs/job.py", line 709, in child_action
        result = self.child_process()  # pylint: disable=assignment-from-no-return
      File "/usr/local/lib64/python3.7/site-packages/buildstream/_scheduler/jobs/elementjob.py", line 103, in child_process
        return self._action_cb(self._element)
      File "/usr/local/lib64/python3.7/site-packages/buildstream/_scheduler/queues/buildqueue.py", line 93, in _assemble_element
        return element._assemble()
      File "/usr/local/lib64/python3.7/site-packages/buildstream/element.py", line 1572, in _assemble
        collect = self.assemble(sandbox)  # pylint: disable=assignment-from-no-return
      File "/usr/lib64/python3.7/contextlib.py", line 119, in __exit__
        next(self.gen)
      File "/usr/local/lib64/python3.7/site-packages/buildstream/sandbox/sandbox.py", line 328, in batch
        batch.execute()
      File "/usr/local/lib64/python3.7/site-packages/buildstream/sandbox/_sandboxreapi.py", line 236, in execute
        if self.sandbox.run(["sh", "-c", "-e", self.script], self.flags, cwd=first.cwd, env=first.env) != 0:
      File "/usr/local/lib64/python3.7/site-packages/buildstream/sandbox/sandbox.py", line 282, in run
        return self._run(command, flags, cwd=cwd, env=env)
      File "/usr/local/lib64/python3.7/site-packages/buildstream/sandbox/_sandboxreapi.py", line 106, in _run
        action_result = self._execute_action(action, flags)  # pylint: disable=assignment-from-no-return
      File "/usr/local/lib64/python3.7/site-packages/buildstream/sandbox/_sandboxremote.py", line 330, in _execute_action
        artifactcache.fetch_missing_blobs(project, local_missing_blobs)
      File "/usr/local/lib64/python3.7/site-packages/buildstream/_artifactcache.py", line 408, in fetch_missing_blobs
        missing_blobs = self.cas.fetch_blobs(remote, missing_blobs, allow_partial=True)
      File "/usr/local/lib64/python3.7/site-packages/buildstream/_cas/cascache.py", line 670, in fetch_blobs
        batch.add(digest)
      File "/usr/local/lib64/python3.7/site-packages/buildstream/_cas/casremote.py", line 103, in add
        self._request.instance_name = self._remote.local_cas_instance_name
    AttributeError: 'ArtifactRemote' object has no attribute 'local_cas_instance_name'

artifacts:
  url: https://public.aws.celduin.co.uk

remote-execution:
  execution-service:
    url: https://push.cache.com:30443
    instance-name: remote-execution
    server-cert: server.crt
    client-cert: push.crt
    client-key: push.key
  storage-service:
    url: https://push.cache.com:30443
    instance-name: remote-execution
    server-cert: server.crt
    client-cert: push.crt
    client-key: push.key
  action-cache-service:
    url: https://push.cache.com:30443
    instance-name: remote-execution
    server-cert: server.crt
    client-cert: push.crt
    client-key: push.key

Possible fixes
Other relevant information

BuildStream version affected:
This happened in a container built from the nightly docker image, the latest buildstream commit at the time of building was: 99063c732b56fb92f6c8b8c32bdb66eb4fb015e6

/src> bst --version
1.93.3+76.g99063c73

In GitLab by [Gitlab user @willsalmon] on May 20, 2020, 14:52
Now that !1933 is merged I wonder if this sort of thing was hidden behind the infinite crashing loop for issues like #1309 #1306

In GitLab by [Gitlab user @scott].clarke on May 20, 2020, 15:34
I'm fairly sure I saw this on a buildstream version prior to that MR being merged, unfortunately I don't think I have a record of the exact version I was using but it was built at least a week before that MR went in.

Can we verify that this still happens ?


Use relative paths in scripts

This PR adds a step in the teach-class script to cd into the directory that the script is in before running any other commands and updates all absolute paths to relative paths.
This will allow the scripts to run regardless of which directory you execute them from. Fixes #250.

@parkerbxyz, what do you think of adding another error message here:
  elif [ $ERROR_CODE -eq 2 ]; then
    echo "!!! Please try running option 1 again and picking a unique repository name."
  else
    echo "!!! Wasn't able to clone the template repo from github.com. Are you behind a firewall?"

to include something about checking the PAT scope and if SSO needs to be enabled?

@rwnfoo we’ll have to do some experimentation to make sure we relay the correct error messages. But I think we should save that for a separate PR since it’s unrelated to the issue this PR is aiming to solve.

Okay that sounds good to me 👍

👍 This still runs fine against GHES with your latest changes.

Thanks for confirming, @amyschoen!

You're welcome @parkerbxyz.  Thanks for the heads up.


Better filtering of non-numerical values

This PR follows #2 and #4.
I was a little mistaken about the use of isFinite which still returns true for null or '' (empty string).
I think a better way to filter is d !== null && d !== '' && isFinite(d) (this is roughly what I use in Magrit).
That is what is done in this PR by introducing a isNumber helper function.

Before #4:

> [null, undefined, "", "abc", 0, "0", 1, 2, NaN, Infinity, {}].filter(d => d != '')
(9) [null, undefined, 'abc', '0', 1, 2, NaN, Infinity, {}]

Only empty string, but also actual 0, were filtered out (but null, NaN, Infinity, undefined, non empty strings and objects were kept).

After #4:

> [null, undefined, "", "abc", 0, "0", 1, 2, NaN, Infinity, {}].filter(d => isFinite(d))
(6) [null, '', 0, '0', 1, 2]

Only elements that can be cast to Numbers were kept ( null and empty string were kept because they are converted to 0 when casted to Number by isFinite, so they are 'finite' for JS).

After this PR:

> [null, undefined, "", "abc", 0, "0", 1, 2, NaN, Infinity, {}].filter(d => isNumber(d))
(4) [0, '0', 1, 2]

Hopefully only elements than can really represent finite numbers are left in the array.

Thank you. It's perfect.
Your patch is available in<EMAIL_ADDRESS>Some tests here: https://observablehq.com/@neocartocnrs/hello-statsbreaks@288


Feature request: array of secretNames in values.yaml

Firstly, thanks for the very helpful tool. I have started using it in production, literally 2 minutes ago 😎
This feature would allow users to have multiple issuers, each with its own account on Hertzner with individual DNS API keys.
Would you mind considering this for the next release? My hacky work around at the moment is to manually create a role and role binding like this...
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: cert-manager-webhook-hetzner:secret-reader-alt
  namespace: cert-manager
rules:
  - verbs:
      - get
      - watch
    apiGroups:
      - ""
    resources:
      - secrets
    resourceNames:
      - hetzner-secret-alt
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: cert-manager-webhook-hetzner:secret-reader-alt
  namespace: cert-manager
subjects:
  - kind: ServiceAccount
    name: cert-manager-webhook-hetzner
    namespace: cert-manager
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: cert-manager-webhook-hetzner:secret-reader-alt

Sorry for the late reply. My notification settings for this repository were filtering the activity if my name was not directly mentioned. A bit strange.
Did you think about possible security issues of combining multiple individual API keys into one secret? As I understood there is one secret for all individual accounts, right?

@vadimkim no worries for the late reply. I'll describe my use case to help explain.
I have ingress on cluster A:

develop.myco.net
staging.myco.net

Then on cluster B (production only).

prod.myco.net <-- unpublished url for admin stuff like grafana
myco.com <-- just for the customer facing website

If cluster A was to be compromised, I do not want the DNS for myco.com to be vulnreable. So, for that reason, my bussiness partner created a new account with hetzner just to manage the DNS of myco.com.
This is why I have 2 hetzner DNS secrets on cluster B. I don't think this is a great security issue. What do you think?

Any updates on how to manage two zones with different Hetzner accounts?

@ibotty, @EarthlingDavey I didn't fully understand the idea. Initially you talked about multiple secrets then about multiple zones. Container, if compromised, can reveal API token that can be used by attacker to change DNS records at Hetzner. This is problem, indeed. Very serious.
Multiple zones, as I understood, means that part of your domain (main site) is not managed by API token. And you don't store API token in Kubernetes. The part that is not faced to the customer (develop, staging) is managed by webhook. Thus, if API token is compromised you basically loose nothing (customer will not detect it). Impact is small.
Multiple secrets is less obvious. If container or platform has vulnerabilities than probably both secrets can be compromised. Having 2 of them is not more secure than having just 1. Or I didn't get the idea.
It is probably better to have long TTL for the A records and monitor DNS changes by another API working separately. Then you have time to react on attack and remove compromised tokens as well as recover records while they are still in the cache.
To improve security I am planning to upgrade base docker images first. Then we can think about DNS security as whole. Your solution looks complicated and benefits are not that obvious.

Hi @vadimkim, thanks for taking care of it again!  Very appreciated.
My use case is a multi-tenant(-ish) cluster that has dns zones managed by different hetzner accounts.  ATM, I am using two clusterissuers but that way the right one always has to be specified.
If there were two secrets corresponding to these two accounts it would need chosing the issuer superfluous.

Hey @vadimkim thanks for your reply. I think maybe I can add to my explanation to clear one thing up.
You say...

Having 2 of them is not more secure than having just 1.
.. this is correct in some scenarios, but not for my case.

Say I have myco .net <-- for staging and development on Cluster A.
I also want to re-use the .net domain for private stuff on Cluster B.
With that being the case I use the same Hetzner DNS account because clusters both use the *.net domain.
So, what is the next logical step if I want to run only one public facing .com service on my production Cluster B?
Maybe I'm wrong, there could be a better way, but this is what I did...
Use a new Hetzner account with a 2nd API key to manage .com DNS.
Why did I decide to do this? Because, if Cluster A somehow leaks the secret for .net DNS, I have damage limitation and the attacker cannot modify my very important .com DNS records.
You are right though, if Cluster B is compromised then both secrets are leaked.

It sounds like a similar setup to @ibotty , but with a different reasoning.
This seems like solid advice, thank you!

It is probably better to have long TTL for the A records and monitor DNS changes by another API working separately. Then you have time to react on attack and remove compromised tokens as well as recover records while they are still in the cache.

Awesome, cheers!

To improve security I am planning to upgrade base docker images first.

I hope this reply comes across in the friendly manner that I intend, I appreciate your time and discussion 👊✌


03/07/2018 13:27 : Create Pull Request for branch master -> prTesting1_2018030713

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestRef1.md
:white_check_mark:Succeeded

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.