Clip selected text

I want to select text on a page, then hit the button and clip only that (properly markdown formatted, of course).

I've worked out how to do this (https://stackoverflow.com/a/5084044/304786) but the UX needs a little bit of thinking.
For example, when I click the button and get the parsed selection, should I also apply the frontmatter template? Does it make sense to do that? Should I potentially provide a second set of templates for selections?
Also, should I put a button somewhere to select the whole document?  Either way, should I display a notification that the extension grabbed selected text only?


Restore RangeSlider initial position afeter clear query

When you type a query, the range slider adapt the min and max values based on the criteria, but, when you clear the query, it should be restoer the initial position (30 and 1500 repectively).
Could be easily checking the value of the query in the component, but I don't know how to.
Another thing: as you can see, in the first state, the value 30 and 1500 are the "base values" and they are not applied as a facet, but when you type a criteria, the new base values are applied as facet. Could be possible control that? this behavior is a little crazy, specially when you have more than one rangeSlider, check on https://windtoday.co/ what happens when you type something 😂
My code is based in the rangeSlider code.
Expected behavior: click here. It's have the query inside the URL, and the range sliders value are ok and not applied as facets.

Hi @Kikobeats
For your first issue, I noticed that you didn't update the slider when new props are given by InstantSearch. Adding something like this should do the trick:
  componentWillReceiveProps(sliderState) {
    const value = {
      min: sliderState.currentRefinement.min,
      max: sliderState.currentRefinement.max
    }

    this.setState({
      min: sliderState.min,
      max: sliderState.max,
      value: value
    })
  },

For the second part, I'm sorry but can you also make a gif of the behavior that's bothering you, I have trouble to understand it correctly.
Finally, when launching your application I noticed that sometimes, you can end-up with an infinite loop. The reason behind it is the usage of rheostat as a slider. When passing an equal min and max to rheostat, you got 'NaN' from it, and then react-instantsearch goes crazy.
We will improve the behavior of react-instantsearch to avoid the infinite loop and I will open an issue on the rheostat side.
In the meantime, if you want to fix this on your side, you can check for the current slider values and don't do a refine if those are NaN.

woh, your componentWillReceiveProps solves the problem.
Thanks!


[Gym]: xcodebuild behaviour differs in Xcode UI compared to fastlane gym invocation

Question Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Question Subject
I have some questions to do with my current Fastlane gym implementation.
I notice that when I CMD+R/CMD+B within Xcode, my build succeeds, but when I use Gym, it fails.
What am I doing differently?
Question Description
To go a level deeper, I need to run you through the current project structure.
We have a CPP project which is built via clang via xcodebuild which is included as a submodule in the iOS repo.
Initially, if you were to clone the repo and open it in Xcode (11.3.1), you'd notice that the CPP xcodeproj is broken. That is because there is a pre-build run-phase script which initialises the submodule, then runs CMake on it and generates that broken xcodeproj.
In Xcode, this process works perfectly. However, when I go to build this via gym, I get errors that one of the CPP projects dependencies cannot be found (and linked).
I can, slightly unwillingly, just invoke that CMake command prior to gym, but I would really like the process to remain 'consistent' between dev and CI (as in, as close to just CMD+B as possible - without complicating the workflow and jumping into a process to run a bunch of stuff).
Fastlane Env:
✅ fastlane environment ✅
Stack

Key
Value

OS
10.15.2

Ruby
2.6.3

Bundler?
true

Git
git version 2.21.1 (Apple Git-122.3)

Installation Source
~/.rvm/gems/ruby-2.6.3/bin/fastlane

Host
Mac OS X 10.15.2 (19C57)

Ruby Lib Dir
~/.rvm/rubies/ruby-2.6.3/lib

OpenSSL Version
OpenSSL 1.1.1d  10 Sep 2019

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
11.3.1

System Locale

Variable
Value

LANG
en_NZ.UTF-8
✅

LC_ALL
en_US.UTF-8
✅

LANGUAGE

fastlane files:
`./fastlane/Fastfile`
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:ios)

platform :ios do
  desc "Builds App"
  lane :build do
    build_ios_app(
      scheme: 'GenieApp',
      workspace: 'GenieApp.xcworkspace',
      skip_package_ipa: true, #TODO: until we have a service account, we cannot sign and package IPAs.
      skip_archive: true,
      skip_codesigning: true,
      skip_profile_detection: true
    )
    # add actions here: https://docs.fastlane.tools/actions
  end
end

`./fastlane/Appfile`
app_identifier("com.someapp.djinnithing")

# app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app
# apple_id("[[APPLE_ID]]") # Your Apple email address

# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile

fastlane gems

Gem
Version
Update-Status

fastlane
2.140.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.3.0

executable-hooks
1.6.0

bundler-unload
1.0.2

rubygems-bundler
1.4.5

bundler
2.1.4

CFPropertyList
3.0.2

public_suffix
2.0.5

addressable
2.7.0

atomos
0.1.3

babosa
1.0.3

claide
1.0.3

colored
1.2

colored2
3.1.2

highline
1.7.10

commander-fastlane
4.4.6

declarative
0.0.10

declarative-option
0.1.0

digest-crc
0.4.1

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

dotenv
2.7.5

emoji_regex
1.0.1

excon
0.71.1

multipart-post
2.0.0

faraday
0.17.3

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

faraday_middleware
0.13.1

fastimage
2.1.7

gh_inspector
1.1.3

jwt
2.1.0

memoist
0.16.2

multi_json
1.14.1

os
1.0.1

signet
0.12.0

googleauth
0.10.0

httpclient
2.8.3

mini_mime
1.0.2

uber
0.1.0

representable
3.0.4

retriable
3.1.2

google-api-client
0.36.4

google-cloud-env
1.3.0

google-cloud-errors
1.0.0

google-cloud-core
1.5.0

google-cloud-storage
1.25.1

json
2.3.0

mini_magick
4.10.1

multi_xml
0.6.0

plist
3.5.0

rubyzip
1.3.0

security
0.1.3

naturally
2.2.0

simctl
1.6.7

slack-notifier
2.3.2

terminal-notifier
2.0.0

unicode-display_width
1.6.1

terminal-table
1.8.0

tty-screen
0.7.0

tty-cursor
0.7.0

tty-spinner
0.9.2

word_wrap
1.0.0

nanaimo
0.2.6

xcodeproj
1.14.0

rouge
2.0.7

xcpretty
0.3.0

xcpretty-travis-formatter
1.0.0

generated on: 2020-01-23

and here is the output line that dies - buildoutputfailure.txt
Note that -lfmtd is one of the nested dependencies. When I build in Xcode, I notice that I see output for building the CPP project and its dependencies, but when I invoke via Gym, I do not, meaning the library is not built meaning that it cannot be linked.
Also, when I invoke the fastlane lane manually, the outcome is the same. At least it's consistent.
Thanks for any input!

For anyone that has this problem, or something similar to the scenario described - I'll post an overview of how I've solved this problem.
The project structure evolved a little, and now there is a Swift xcodeproject embedded in the C++ submodule, which will CMake the C++.
The advantage of this is that the top level project doesn't have to worry so much about all the various static libraries, just the more familiar .framework archive.
Inside of the build target for this Swift xcodeproject is a build phase which - get this - calls both CMake and THEN xcodebuild on the resulting CMake output. Nested Xcodebuild commands. delicious. This has some amount of optimization (as in, only build if an environment variable is true or it hasn't ever been built yet).
but, it works, and unlike the pre-build run phase script, actually outputs to the Report Navigator instead of it's output stream being swallowed up. I have library search paths setup to point to the output directory of the CMake'd project for that Swift project, so it all works pretty tidy now.


java.lang.VerifyError crash on Android app startup when using Android plugin in 3.2.4-rc2

With Godot 3.2.4 apparently the way the Godot activity is retrieved has changed, leading to a crash on startup when using the GameAnalytics SDK in an Android build:
02-13 23:07:07.393  4669  4669 E AndroidRuntime: FATAL EXCEPTION: main
02-13 23:07:07.393  4669  4669 E AndroidRuntime: Process: com.gameanalytics.godottest, PID: 4669
02-13 23:07:07.393  4669  4669 E AndroidRuntime: java.lang.VerifyError: Verifier rejected class com.gameanalytics.godotgameanalytics.GodotGameAnalytics: void com.gameanalytics.godotgameanalytics.GodotGameAnalytics.init(java.lang.String, java.lang.String) failed to verify: void com.gameanalytics.godotgameanalytics.GodotGameAnalytics.init(java.lang.String, java.lang.String): [0x7] register v0 has type Reference: org.godotengine.godot.Godot but expected Reference: android.app.Activity (declaration of 'com.gameanalytics.godotgameanalytics.GodotGameAnalytics' appears in /data/app/com.gameanalytics.godottest-mtZ_tK2kr4ox-nPt89PH7A==/base.apk)

This can be reproduced using the example project and Godot 3.2.4-rc2. I think the fix is related to this comment.
It would be great if you could update the plugin source code and provide a compatible 3.2.4 plugin build on the download page. Thank you!

Once 3.2.4 is out of release candidate we will make an update

Godot 3.3 stable is released now, can you update the plugin?

Godot 3.3 stable is released now, and I'm getting the same error:
java.lang.VerifyError: Verifier rejected class com.gameanalytics.godotgameanalytics.GodotGameAnalytics: void com.gameanalytics.godotgameanalytics.GodotGameAnalytics.<init>(org.godotengine.godot.Godot) failed to verify: void com.gameanalytics.godotgameanalytics.GodotGameAnalytics.<init>(org.godotengine.godot.Godot): [0x6] register v2 has type Reference: org.godotengine.godot.Godot but expected Reference: android.app.Activity (declaration of 'com.gameanalytics.godotgameanalytics.GodotGameAnalytics' appears in /data/app/~~ipgrBL3J5xtpPKkoOyqrww==/com.the1311.astrorbit-i6BkxOMgFSFYIiw1fCsGfw==/base.apk!classes2.dex)

Can you update the plugin please?
Thanks.

This has been fixed in the latest version now (v1.2.8)


Could you please send us your template for our reference?

Hello, we have encountered some issues in the latex template of neural computation. Could you please send us your template for our reference?

Hey. Not sure what you mean. If you email I can send you the final compiled version of the latex document for this paper (too big to upload here) downloaded from overleaf, but if this is your first submission you can probably send in any format.


Question 318 is wrong

Q:

People in Japan are richer than which other places?

"People in Japan are richer than China" is labelled as both right and wrong.

I think that has been corrected as in the data I got today it is this way:
Question: People in Japan are richer than which other places?
Best Answer: People in Japan are richer than China
Correct Answers: People in Japan are richer than China; People in Japan are richer than Mexico; China; India; People in Japan are richer than India
Incorrect Answers: People in Japan are richer than the United States; People in Japan are richer than Canada; America; United States; People in Japan are richer than Germany


Naming kstreams binder causes startup failure if a consumer binding of type GlobalKTable is used

I've created a sample application demonstrating the issue here
https://github.com/pzieminski/kafka-binder-issue1
I tried configuring a multi-binder scenario involving a kstreams and kafka binders similar to the configuration shown here
https://github.com/spring-cloud/spring-cloud-stream-samples/tree/master/multibinder-samples/multibinder-kafka-streams
However, the application fails to start the moment I add naming of the kstreams binder. The sample application shows the two scenario. Please take a look at the attached readme.
In short this configuration and bindings work
spring:
  cloud:
    stream:
      kafka:
        streams:
          binder:
            brokers: localhost:9092
            configuration:
              commit.interval.ms: 3000
              state.dir: ${java.io.tmpdir}/kafka-streams

---

spring.profiles: foo

spring:
  cloud:
    stream:

      bindings:
        foo-output:
          destination: foo-output-topic
        foo-input:
          destination: foo-input-topic
          group: foo-group

      kafka:
        streams:
          bindings:
            foo-output:
              producer:
                keySerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                valueSerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                topic.properties:
                  cleanup.policy: compact
            foo-input:
              consumer:
                applicationId: foo-app
                keySerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                valueSerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                topic.properties:
                  cleanup.policy: compact

---
spring.profiles: baz

spring:
  cloud:
    stream:

      bindings:
        baz-output:
          destination: baz-output-topic
        baz-input:
          destination: baz-input-topic
          group: baz-group
        baz-global-input:
          destination: foo-output-topic
          group: baz-group

      kafka:
        streams:
          bindings:
            baz-output:
              producer:
                keySerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                valueSerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                topic.properties:
                  cleanup.policy: compact
            baz-input:
              consumer:
                applicationId: baz-app
                keySerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                valueSerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                topic.properties:
                  cleanup.policy: compact
            baz-global-input:
              consumer:
                applicationId: baz-app
                keySerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                valueSerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                materializedAs: baz-global
                topic.properties:
                  cleanup.policy: compact

    public interface Bindings {

        String INPUT = "baz-input";
        String GLOBAL_INPUT = "baz-global-input";
        String OUTPUT = "baz-output";

        @Input(INPUT)
        KStream<String, String> input();

        @Input(GLOBAL_INPUT)
        GlobalKTable<String, String> globalInput();

        @Output(OUTPUT)
        KStream<String, String> output();
    }

But as soon as I name the binder like so (kafka1 in this case)
spring:
  cloud:
    stream:
      kafka:
        streams:
          binder:
            brokers: localhost:9092
            configuration:
              commit.interval.ms: 3000
              state.dir: ${java.io.tmpdir}/kafka-streams
      binders:
        kafka1:
          type: kstream

---
spring.profiles: foo

spring:
  cloud:
    stream:

      bindings:
        foo-output:
          destination: foo-output-topic
          binder: kafka1
        foo-input:
          destination: foo-input-topic
          group: foo-group
          binder: kafka1

      kafka:
        streams:
          bindings:
            foo-output:
              producer:
                keySerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                valueSerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                topic.properties:
                  cleanup.policy: compact
            foo-input:
              consumer:
                applicationId: foo-app
                keySerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                valueSerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                topic.properties:
                  cleanup.policy: compact

---
spring.profiles: baz

spring:
  cloud:
    stream:

      bindings:
        baz-output:
          destination: baz-output-topic
          binder: kafka1
        baz-input:
          destination: baz-input-topic
          group: baz-group
          binder: kafka1
        baz-global-input:
          destination: foo-output-topic
          group: baz-group
          binder: kafka1

      kafka:
        streams:
          bindings:
            baz-output:
              producer:
                keySerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                valueSerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                topic.properties:
                  cleanup.policy: compact
            baz-input:
              consumer:
                applicationId: baz-app
                keySerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                valueSerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                topic.properties:
                  cleanup.policy: compact
            baz-global-input:
              consumer:
                applicationId: baz-app
                keySerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                valueSerde: org.apache.kafka.common.serialization.Serdes$StringSerde
                materializedAs: baz-global
                topic.properties:
                  cleanup.policy: compact

the start-up fails with the following exception
Caused by: java.lang.IllegalStateException: The binder 'kafka1' cannot bind a com.sun.proxy.$Proxy68
	at org.springframework.util.Assert.state(Assert.java:73) ~[spring-core-5.1.9.RELEASE.jar:5.1.9.RELEASE]
	at org.springframework.cloud.stream.binder.DefaultBinderFactory.doGetBinder(DefaultBinderFactory.java:194) ~[spring-cloud-stream-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	at org.springframework.cloud.stream.binder.DefaultBinderFactory.getBinder(DefaultBinderFactory.java:130) ~[spring-cloud-stream-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	at org.springframework.cloud.stream.binding.BindingService.getBinder(BindingService.java:337) ~[spring-cloud-stream-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	at org.springframework.cloud.stream.binding.BindingService.bindConsumer(BindingService.java:92) ~[spring-cloud-stream-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	at org.springframework.cloud.stream.binding.BindableProxyFactory.createAndBindInputs(BindableProxyFactory.java:254) ~[spring-cloud-stream-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	at org.springframework.cloud.stream.binding.InputBindingLifecycle.doStartWithBindable(InputBindingLifecycle.java:58) ~[spring-cloud-stream-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	at java.util.LinkedHashMap$LinkedValues.forEach(LinkedHashMap.java:608) ~[na:1.8.0_181]
	at org.springframework.cloud.stream.binding.AbstractBindingLifecycle.start(AbstractBindingLifecycle.java:48) ~[spring-cloud-stream-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	at org.springframework.cloud.stream.binding.InputBindingLifecycle.start(InputBindingLifecycle.java:34) ~[spring-cloud-stream-2.1.4.RELEASE.jar:2.1.4.RELEASE]
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:182) ~[spring-context-5.1.9.RELEASE.jar:5.1.9.RELEASE]
	... 12 common frames omitted

Removing the GlobalKTable typed binding allows it to start even with the binder named.
Hope this very convoluted scenario is made clear by the sample I provided.

Is there a sample anywhere that demonstrates how to achieve a multi-binder scenario with kstreams and kafka binder involving a global table consumer?

@pzieminski Sorry for not getting back to you earlier. We will take a look soon. Thank you for the detailed report on this.

@pzieminski I think the problem is that you are trying to use a KStream binder for a GlobalKTable binding. When I changed the configs as below, I can start the app with the failing profile.
spring:
  cloud:
    stream:
      kafka:
        streams:
          binder:
            brokers: localhost:9092
            configuration:
              commit.interval.ms: 3000
              state.dir: ${java.io.tmpdir}/kafka-streams
      binders:
        kafka1:
          type: kstream
        global-input:
          type: globalktable

and then
spring.profiles: baz_fail

spring:
  cloud:
    stream:

      bindings:
        baz-output:
          destination: baz-output-topic
          binder: kafka1
        baz-input:
          destination: baz-input-topic
          group: baz-group
          binder: kafka1
        baz-global-input:
          destination: foo-output-topic
          group: baz-group
          binder: global-input
...

Please confirm that it works on your end after making these changes. I agree that the docs on this matter are not very clear. We will use this as an issue for improving the docs.
For KStream bindings, you need to use a binder of type KStream, for KTable bindings, the binder type is ktable and GlobalKTable bindings, it is globalktable.

@pzieminski Did you get a chance to confirm this? I want to find out if this is simply a documentation change.

Apologies for the delay, I will take a look today.

I confirm that with the binders defined as above I was able to start the streams app with a mix of KStream and GlobalKTable typed bindings.
Next I'll try it with a kafka binder in the mix also so that I can produce arbitrary messages in the same app.
Documentation change would be welcome, but also maybe the samples could have this added as well.
Thanks a bunch for the help.

I've also tried multi-binder setup with streams (with global table) and kafka binders and it works. Thanks you.

@pzieminski Thank you for the feedback! I will use this issue for enhancing some docs on this matter.


Azure AD B2C Endpoint for checking active session

Core Library
MSAL.js v2 (@azure/msal-browser)
Core Library Version
2.11.0
Wrapper Library
Not Applicable
Wrapper Library Version
None
Description
Hi there, i'm using MSAL browser for authentication on multiple websites with different domains under a single application under one Azure AD B2C Tenant. I am exploring options for cross-tab, cross-domain single sign off. I was wondering if there was a dedicated endpoint that I can make a silent AJAX call to determine if there's an active session?
Thanks in advance!
MSAL Configuration
No response
Relevant Code Snippets
No response
Identity Provider
No response
Source
External (Customer)

@nickgmicrosoft Can you help here?

This is not an entirely an MSAL issue, but how AAD B2C performs single logout against your applications, and latest browser protections.
When you hit the AAD B2C /logout endpoint, AAD B2C spawns hidden iframes to every website with a registered logout url that the user is currently tracked to be logged into.
These iframes attempt to clear the MSAL local storage state from the application.
This operation fails when the domain name of the application differs from the domain name used at AAD B2C, as many browsers now enforce protections against 3rd party cookies (includes local storage), and 3rd party tracking. Since the domain name differs, the MSAL local storage is not cleaned, and therefore the user remains logged in until their tokens expire in that app.
The user is only logged out of the website they initiated the logout request from, and Azure AD B2C (session cookies are destroyed).

I see, so AAD B2C endpoint will spawn a hidden iframe with the registered logout URL for each client application that the user is signed into. So the registered logout URL will only work if the application is only used with a single domain. Hence, why local storage works for single sign out in these cases.
Got it, does the method ssoSilent() make a request to AAD B2C endpoint to see if cookies are present on that AAD B2C endpoint? And does ssoSilent() work for all browsers? I believe I read somewhere that ssoSilent() will always fail when third party cookies are disabled (https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-third-party-cookies-spas)
Thank you very much in advance!

Axtually yes, you are right there, even ssoSilent() will fail in the case where the app is on a different domain to AAD B2C. So right now, there is no real (nice) workaround here.

Gotcha, so ssoSilent() will fail on apps with multiple different domains. Okay, I think this answers my questions. Thank you very much for your insight and help @JasSuri !


Example Not Working

Example is not working at https://rawgit.com/pablojim/highcharts-ng/master/example/charts/general-example.html
Using Chrome

@benjaminmbrown you need to add width and height in the input fields on the right. It should show up then.


Bootstrap intellisense not working in Blazor projects in Visual Studio

Bootstrap intellisense isn't showing up in Blazor projects:

Visual Studio provides intellisense based on the CSS files in the project, but it only looks at the unminified versions.

Closing as this is external.


Session logs

Pull request to modify the borderpatrol logging functionality.

@malikvivek, just a few minor nits.


feature: support new treesitter capture names

Did you check the documentation and existing issues?

[X] I have read all the midnight.nvim documentation
[X] I have searched through all existing issues of midnight.nvim

Is your feature request related to a problem? Please describe.
nvim-treesitter recently changed capture names:

breaking change announcement: https://github.com/nvim-treesitter/nvim-treesitter/issues/2293#issuecomment-1900679583
documented highlights https://github.com/nvim-treesitter/nvim-treesitter/blob/master/CONTRIBUTING.md#highlights
change commit https://github.com/nvim-treesitter/nvim-treesitter/commit/1ae9b0e4558fe7868f8cda2db65239cfb14836d0

which i noticed because my markdown files were no longer highlighted (probably because of @text.* -> @markup.*)
Describe the solution you'd like
Support the new capture names
Describe alternatives you've considered
temporary: pin nvim-treesitter to v0.9.2
long term: find a different color scheme
Additional context
No response

Hello, I will update the colorscheme with these changes soon.

Reopen if you think I missed anything. :)


revendor to delete unused deps

I noticed that we have a bunch of unused code checked in - did a fresh revendor to clean this up

Signed-off-by: Riyaz Faizullabhoy<EMAIL_ADDRESS>

Are you sure you have the latest vndr? I thought licenses and vendor.conf were added to its rules not removed...

@justincormack  - ah yes I'm behind at least one version. Looks like the latest version keeps licenses, readmes, and vendor.conf around.  Closing this.


Go back to old style of React typings and merge in JSX to both

Improves on the previous PR:

Re-split the .d.ts files back in to a module version and a namespace version
Add JSX support to both

This slightly pollutes the global namespace with a __React identifier in the module version, but I think this is preferable to rewriting the entire .d.ts file in a different way.
Thanks @vsiao and @jbrantly for feedback on the prior revision

+1 to merge
The __React identifier pollution is unfortunate but works. Good solution.

@vsiao @pspeter3 can I merge this PR?

Looks good to me. I agree with @jbrantly about the __React solution but it looks like the best option for the situation.

@jbrantly @pspeter3 thanks!
@RyanCavanaugh thanks mate! it merged.

Will this change be applied to react-addons too?

@joewood You're right, that probably should be looked at. In the meantime, just reference both react.d.ts and react-addons.d.ts and you should be good.


Can you provide an example of getting the aws s3 object using the TokenFileWebIdentityCredentials approach?

Can you provide an example of getting the aws s3 object using the TokenFileWebIdentityCredentials approach?

Hi, @winsomely
TokenFileWebIdentityCredential is an implementation of fetching IAM credentials in the EKS environment with "IAM role for service account" enabled. Typically you don't need to call it directly
If you're running your openresty program inside the EKS environment with IRSA enabled, you can do something simple as follows:
-- in the "init" phase initialize the configuration
local _ = require("resty.aws.config").global

-- In your code
local AWS = require("resty.aws")
local AWS_global_config = require("resty.aws.config").global

local config = { region = AWS_global_config.region }

local aws = AWS(config)

local s3 = aws:S3()

-- Invoke a method.
local results, err = s3:getObject {
  Bucket = "my-bucket",
  Key = "my-key",
}


Ignore generated files

This PR just adds minimally to the .gitignore file to ignore the files generated by cmake, and make.

I added a longer one which also covers all the junk in my directory...  :-)


(WIP) Sequence Diagram Title Support

Have some changes here with support for sequence diagram titles working. However, I don't think the logic for the positioning of the title is ready yet. Figured I would throw this out with a WIP to see if anyone had any suggestions on how to handle that better.
Once that's working well enough, I believe this would address #246

Thanks for your work!
Merging!


Added volume tweaker and solved three issues

I have added volume tweaker on MJam and solved issue #54, #32  and #42 .

Replace .png images to material icons as it is already available to be used in the source code already. https://material.io/resources/icons/?style=baseline
Keep the state of the volume tweaker saved in the localStorage so that it could be same even after a restart.
Also, keep one PR just for one issue. So that you could get separate feedback for separate PRs.

Keep the state of the volume tweaker saved in the localStorage so that it could be same even after a restart.

@sanket143 ,I have saved its state in localStorage but how to use it as volume-tweaker's value when I restart ?
I have tried many things but not able to get it, Can you please help me ?

you can read value from localStorage and assign the same to volume tweaker.

you can read value from localStorage and assign the same to volume tweaker.

but volume tweaker's value can only be a number from 0 to 100. we cannot assign it a variabel.

MJam is using vue.js. I think you can make use of v-model https://vuejs.org/v2/guide/?#Handling-User-Input

I will make Three seperate PR for this.


Bump pipeline-service version

Update pipeline-service to include Tekton Results change enabling gRPC access logging.

/retest

Full set of changes: https://github.com/openshift-pipelines/pipeline-service/compare/8f3ebf86101a4cf21fe7e86335e85a3fb6e3671f...0fb095cf1a346033746f8daaa29d275fe0c2a7a8

Updated.

/test appstudio-e2e-tests

Rebased main on my feature branch.

@adambkaplan @Roming22 Can we get this one merge please.

/lgtm

/lgtm

/lgtm

/retest
We had a least one test fail due a a quay.io issue:
error pushing image "quay.io/redhat-appstudio-qe/test-images:build-cd3c1-1680532902" to "docker://quay.io/redhat-appstudio-qe/test-images:build-cd3c1-1680532902": trying to reuse blob sha256:7cda6ce113beb1259d6bfcc07aec67b8bfe7bde8dba632c478befb5ff9c3f49a at destination: failed to read from destination repository redhat-appstudio-qe/test-images: 502 (Bad Gateway)

/lgtm


fix rollup configuration for AoT build

The issue was that you needed to configure the node resolve plugin to skip esri. After that, the bower resolve and ignore plugins were no longer needed.
After making these changes I was able to successfully run npm run build-aot and then load server the index-aot.html from a local web server and it worked.
resolves #2

Nice PR！

Nice repo!
Glad I could do a little to help.


Document contribution

Can I contribute by making document changes and getting them "Hacktoberfest-accepted"?

What kind of changes?

Basic grammatical changes, or I can help writing any Document files also if you want.

You are more than welcome to fix issues with the documentation.
Go for it.

I have some questions into which app is the actual app to use, I posted the issue here: https://github.com/origranot/url-shortener/issues/188#issuecomment-1276835683
both wildly different experiences.

I will close this issue as it is a generic question. You are free to contribute whenever you want! Thanks!! 🔥


adding basic filters are not working with LLSimple camera

hello,
I have used LLSimpleCamera in one of my application and I am not able to add live filters (I mean effects in preview). I need to do that in live preview where user can see selected effects like iPhone default camera.
Thanks
Jankar

@jankarrajpara i also doing that. have you find any solution for this?


Create key-navigation module with back handling support

In order to provide back handling support for desktop, a key listener must be applied to the composition via Modifier.onPreviewKeyEvent. Previous attempts were to hook into the composition hierarchy, utilising expect/actual.
However, it is possible to use the same functionality from the recently introduced gesture navigation module. The NavDecorator implementation delegates to NavigatorDefaults.DefaultDecoration, whilst decorating content with the required modifier.
This then makes the sample implementation redundant, thus it is removed.

Sorry for the delays on this. I think this makes sense, but what do you think about putting this just in the foundation artifact as a helper? CC @stagg @kierse for second opinions. A separate artifact entirely seems unnecessary for this case I think

Ya, think having this in foundation makes the most sense for all desktop uses. Would be nice if we did't have to rely on it being in a NavDecoration, seeing how we can't nest them. Might even be useful for all platforms 🤔,

Thanks folks, yeah I think the NavDecoration would be useful if it were nestable, it'd be nice just to decorate the default decoration. I want to verify some compatibility with an issue I found in my playground, I'll move it to foundation after that 🎉

Managed to verify the bug in my playground was unrelated, I'll update this PR now.

Task :circuit-foundation:compileKotlinIosSimulatorArm64 FAILED
e: Compilation failed: No container found for type parameter 'T' of 'FUN IR_EXTERNAL_DECLARATION_STUB name:DecoratedContent visibility:public modality:ABSTRACT  ($this:com.slack.circuit.backstack.NavDecoration, args:kotlinx.collections.immutable.ImmutableList, backStackDepth:kotlin.Int, modifier:androidx.compose.ui.Modifier, content:kotlin.Function3<T of com.slack.circuit.backstack.NavDecoration.DecoratedContent, androidx.compose.runtime.Composer, kotlin.Int, kotlin.Unit>, $composer:androidx.compose.runtime.Composer?, $changed:kotlin.Int) returnType:kotlin.Unit'

I don't recognise this error, any clues from folks more familiar with iOS?

No idea, that looks like a bug for the compose issue tracker :/


chore: use security monitor action

Use security monitor GitHub action.

Your PR is blocked because this repository has 4 security vulnerabillity issue(s) with critical or high severity:

handlebars (CRITICAL severity). PR created by dependabot: https://github.com/oneflow/oneflow-sdk-js/pull/44
axios (HIGH severity). PR created by dependabot: https://github.com/oneflow/oneflow-sdk-js/pull/42
y18n (HIGH severity). PR created by dependabot: https://github.com/oneflow/oneflow-sdk-js/pull/43
lodash (HIGH severity). PR created by dependabot: https://github.com/oneflow/oneflow-sdk-js/pull/45

To unblock your PR you must fix security issues with CRITICAL or HIGH severity.
If there's no dependabot PR to fix the issue yet and you're planning on fixing it, make sure to include bump {packageName} from {version} to {version} into your commit message.
If you already fixed this issue in a different PR, please merge your branch with the default repo branch to unblock it.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Files sometimes does not remember my sorting preferences for each folder

Description
For some folders, I have set the sorting to be A to Z, and in my Files app, the default sorting is most recent to least recent. I found that sometimes, Files does not remember that for this particular folder, I asked the sorting to be A to Z, and will do most to least recent
This is a bit similar to #15797 , but not entirely because I'm not sure that this happens only when updating, and I didn't understand how OP fixed the issue
Steps To Reproduce
I don't really know, just have a folder to not be the same sorting as the default sorting
Requirements

e.g. Fix crash that occurs when...
Folder sorting preferences should always be remembered by Files

Files Version
<IP_ADDRESS>
Windows Version
10.0.22631.3880
Log File
debug.log

Thanks for the report, your likely having the same issue as you linked. Are you sure Files didn't update when you had the layouts reset? Also there's no fix for it right now just a workaround https://github.com/files-community/Files/issues/15797#issuecomment-2244450518

My bad for duplicate actually yes that's the case, the sorting preferences got forgotten when my Files updated


CAD code required

Hello, Mr. Lin. First of all, your work is great. Thank you for sharing, but some links are missing. I also need to build a CAD system. I want to refer to your code. Can you share your code? thank you very much.

Appreciate!
I haven’t upload the code since part of the project is ready to publish, I will upload full code as soon as possible, sorry for your inconvenience!

Hi, FYI, I just upload the CAD code!

What a big surprise, although I have graduated, hahaha, I will study it when I have time, thank you very much.
------------------ 原始邮件 ------------------
发件人: "Wen-Ya Lin<EMAIL_ADDRESS>发送时间: 2020年12月17日(星期四) 上午8:43
收件人<EMAIL_ADDRESS>抄送<EMAIL_ADDRESS><EMAIL_ADDRESS>主题: Re: [wenyalintw/Nodule-CADx] CAD code required (#1)
Hi, FYI, I just upload the CAD code!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


[vite-plugin-svelte-kit] Error running plugin hook writeBundle for vite-plugin-svelte-kit, expected a function hook.

Describe the bug
After updateing to Version 1.0.0-next.458 and migrating to all the new changes, I can't seem to build the page.
Started with Adapter-CloudFlare and then with Adapter-Auto but it seems to make no difference.
Looks like there's a problem with the Vite plugin. I guess it's tie to svelte-kit and not Vite itself.
This also seems to be ocurring to one other user who reported it on Stackoverflow 18h ago
Reproduction
https://github.com/HenrijsS/LBTU-ITF
Logs
From Cloudflare: https://pastebin.com/Dmhj1syF
From local (yarn build):
PS C:\_DEV\_Sites\LBTU-ITF> yarn build
yarn run v1.22.19
$ vite build
vite v3.0.9 building for production...
transforming (34) src\routes\+layout.ts
🌼 daisyUI components 2.24.0  https://github.com/saadeghi/daisyui
  ✔ Including:  base, components, themes[1], utilities

transforming (56) src\lib\components\iframeComp.svelte
🌼 daisyUI components 2.24.0  https://github.com/saadeghi/daisyui
  ✔ Including:  base, components, themes[1], utilities

✓ 67 modules transformed.
.svelte-kit/output/client/_app/immutable/assets/lv_logo-2624bf41.svg                                    108.20 KiB
.svelte-kit/output/client/_app/immutable/assets/itf_logo-2917a315.svg                                   1.29 KiB
.svelte-kit/output/client/_app/immutable/assets/fira-mono-cyrillic-ext-400-normal-3df7909e.woff2        15.40 KiB
.svelte-kit/output/client/_app/immutable/assets/fira-mono-greek-ext-400-normal-9e2fe623.woff2           7.33 KiB
.svelte-kit/output/client/_app/immutable/assets/fira-mono-cyrillic-400-normal-c7d433fd.woff2            8.89 KiB
.svelte-kit/output/client/_app/immutable/assets/fira-mono-greek-400-normal-a8be01ce.woff2               10.27 KiB
.svelte-kit/output/client/_app/immutable/assets/fira-mono-latin-ext-400-normal-6bfabd30.woff2           11.10 KiB
.svelte-kit/output/client/_app/immutable/assets/fira-mono-latin-400-normal-e43b3538.woff2               15.90 KiB
.svelte-kit/output/client/_app/immutable/assets/fira-mono-all-400-normal-1e3b098c.woff                  75.55 KiB
.svelte-kit/output/client/vite-manifest.json                                                            12.14 KiB
[vite-plugin-svelte-kit] Error running plugin hook writeBundle for vite-plugin-svelte-kit, expected a function hook.
error during build:
Error: Error running plugin hook closeBundle for vite-plugin-svelte-kit, expected a function hook.
    at error (file:///C:/_DEV/_Sites/LBTU-ITF/node_modules/rollup/dist/es/shared/rollup.js:1858:30)
    at throwInvalidHookError (file:///C:/_DEV/_Sites/LBTU-ITF/node_modules/rollup/dist/es/shared/rollup.js:22551:12)
    at file:///C:/_DEV/_Sites/LBTU-ITF/node_modules/rollup/dist/es/shared/rollup.js:22692:24
    at async Promise.all (index 0)
    at async Object.close (file:///C:/_DEV/_Sites/LBTU-ITF/node_modules/rollup/dist/es/shared/rollup.js:23662:13)
    at async Promise.all (index 0)
    at async build (file:///C:/_DEV/_Sites/LBTU-ITF/node_modules/vite/dist/node/chunks/dep-0fc8e132.js:43473:13)
    at async CAC.<anonymous> (file:///C:/_DEV/_Sites/LBTU-ITF/node_modules/vite/dist/node/cli.js:747:9)
error Command failed with exit code 1.

System Info
System:
    OS: Windows 10 10.0.22000
    CPU: (16) x64 AMD Ryzen 7 5800H with Radeon Graphics
    Memory: 4.19 GB / 15.86 GB
  Binaries:
    Node: 16.15.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - C:\Program Files\nodejs\yarn.CMD
    npm: 8.14.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.22000.120.0), Chromium (104.0.1293.70)
    Internet Explorer: 11.0.22000.120

Severity
blocking all usage of SvelteKit
Additional Information
No response

I did some version hopping and it seems like it breaks on v450: https://github.com/sveltejs/kit/releases/tag/%40sveltejs%2Fkit%401.0.0-next.450
Didn't seem to notice anywhere to update Vite to 3.1
Is that the solution?

Yeah, 450+ has a peer dependency of<EMAIL_ADDRESS>People who have pinned their dependencies and use automated dependency updates (like with Renovate Bot) may find @sveltejs/kit is getting updated to 450+, but vite remains at 3.0.9 (latest stable). (ie. unmet peer<EMAIL_ADDRESS>found 3.0.9), which throws the writeBundle error during build.
The workaround, like @HenrijsS mentioned, is to update vite in your package.json.

As mentioned you should get a peer dependency error for vite 3.0.9 when installing a version of kit that required 3.1. Please check those warnings and act on them.


Theme colour is not getting applied on dialog buttons

Framework7 version: 5.7.0
Platform and Target: Any
JSFiddle: https://jsfiddle.net/harish0507/3pv5msjb/2/

Description
Theme colour is not getting applied on dialog buttons when theme colour class is applied to app's root element.
To Reproduce
Steps to reproduce the behaviour:

Go to JSFiddle
Note that .color-theme-purple is set on app's root element #app
But the dialog button colour is not purple, Default colour is being applied

Expected behaviour
The dialog button colour should be same as the theme colour set on app's root element.
Actual Behaviour
The default colour is getting applied to the dialog button irrespective of the theme colour set.
Screenshots

It is by design:
https://framework7.io/docs/dialog.html#css-variables
--f7-dialog-button-text-color defined on :root -> it won't be overridden by class on app. Redefine this var on :root or add that class to <html> element


str and repr are squashed on child classes

After #884, a child class of a model does not inherit its parent's __str__ and __repr__ overloads.
import pydantic

class Foo(pydantic.BaseModel):
    x: int = 3
    y: float = 4.2

    def __str__(self):
        return str(self.y + self.x)

f = Foo()
# Expected: 7.2
# Observed: 7.2
print(str(f))

class Bar(Foo):
    z: bool = False

b = Bar()

# Expected: 7.2
# Observed: x=3 y=4.2 z=False
print(str(b))

OS: Ubuntu 19.10
Python version import sys; print(sys.version): 3.7.5 (default, Nov 20 2019, 09:21:52) [GCC 9.2.1 20191008]
Pydantic version import pydantic; print(pydantic.VERSION): 1.1.1

thanks for reporting, should be fixed in #1023, please check that works for you.


feat: added SharedReplacingMergeTree support

Tables created by clickhouse.cloud have SharedReplacingMergeTree engine, which currently is not handled correctly.

Hi. Thank you for reply.
However after some quick research I discovered that SharedMergeTree (and SharedReplacingMergeTree) is only available in clickhouse.cloud, not sure how I can write tests in this case.
From:
https://clickhouse.com/docs/en/cloud/reference/shared-merge-tree

SharedMergeTree Table Engine

Available exclusively in ClickHouse Cloud (and first party partner cloud services)

The SharedMergeTree table engine family is a cloud-native replacement of the ReplicatedMergeTree engines that is optimized to work on top of shared storage (e.g. Amazon S3, Google Cloud Storage, MinIO, Azure Blob Storage). There is a SharedMergeTree analog for every specific MergeTree engine type, i.e. ReplacingSharedMergeTree replaces ReplacingReplicatedMergeTree.

The SharedMergeTree table engine family powers ClickHouse Cloud. For an end-user, nothing needs to be changed to start using the SharedMergeTree engine family instead of the ReplicatedMergeTree based engines. It provides the following additional benefits:

From what I understand it works exactly the same way as ReplicatedReplacingMergeTree, and was not supported purely because it has a different name and is not present in enum's.

@vpol out of curiosity, I thought ClickHouse cloud would automatically turn the MergeTree tables of any kind into their Shared version.

it does, but  it looks like it's turning it into a different "proprietary" version, with different name. name that is not correctly handled by the current code.


Transaction Tab - No Transaction Details Dialog on double click

In Bitcoin Core, a user can double click on a transaction and get details. Like this:

However in Liquid-qt no such details are available.

Looks like this was addressed previously.
https://github.com/greenaddress/elements/issues/6


Japanese contrib markdown

PR into Azure/azureml-cheatsheets
Checklist
I have:

[ ] read and followed the contributing guidelines

Changes

fixes #

Closed PR because of mistake


Navbar displaced on certain viewport widths

that's because the media query is adjusted for single-digit challenge points. does it make sense to change the "max-width" so the layout is safe up to four-digit points, or does anyone have a better idea?

@hallaathrad Want to take a look at this?

I'm on it


Doesn't work with typescript 4.9 satisfies operator

Describe the bug
Doesn't work with the typescript 4.9 satisfies operator.
Steps to reproduce
Add
const test = {} satisfies {};

anywhere in your CRA project.
Expected behavior
No syntax error.
Actual behavior
Syntax error.

This 'satisfies' is really needed

+1. Running into the same issue.

satisfies was added to<EMAIL_ADDRESS>https://github.com/babel/babel/pull/14211
If you are using a lock file, you must ensure that you are using the latest version. With yarn, you can remove the lines of the subpackage you want to update and run a yarn install to update the latest subdependency.

So I fixed this, but I'm not really sure how I did it 😂 . I was throwing a lot of stuff at the wall and seeing what stuck, and eventually it just worked. Things that I did:

Uninstalled all babel packages
Updated various dependencies
Uninstalled then reinstalled some dependencies (I forgot the -D so some may have gone from dev dependencies to regular, namely craco)
Deleted my package lock (note I use pnpm so it was pnpm-lock.yaml

I know this is not a great answer, but it did end up working!


运行提示错误from markupsafe import soft_unicode

λ xmind2testcase
Traceback (most recent call last):
File "C:\Programs\Python\Python38\lib\runpy.py", line 194, in run_module_as_main
return run_code(code, main_globals, None,
File "C:\Programs\Python\Python38\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Programs\Python\Python38\Scripts\xmind2testcase.exe_main.py", line 4, in
File "C:\Programs\Python\Python38\lib\site-packages\xmind2testcase\cli.py", line 8, in
from webtool.application import launch
File "C:\Programs\Python\Python38\lib\site-packages\webtool\application.py", line 14, in
from flask import Flask, request, send_from_directory, g, render_template, abort, redirect, url_for
File "C:\Programs\Python\Python38\lib\site-packages\flask_init.py", line 14, in
from jinja2 import escape
File "C:\Programs\Python\Python38\lib\site-packages\jinja2_init.py", line 12, in
from .environment import Environment
File "C:\Programs\Python\Python38\lib\site-packages\jinja2\environment.py", line 25, in
from .defaults import BLOCK_END_STRING
File "C:\Programs\Python\Python38\lib\site-packages\jinja2\defaults.py", line 3, in
from .filters import FILTERS as DEFAULT_FILTERS  # noqa: F401
File "C:\Programs\Python\Python38\lib\site-packages\jinja2\filters.py", line 13, in
from markupsafe import soft_unicode
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (C:\Programs\Python\Python38\lib\site-packages\markupsafe_init_.py)

有人遇到这个错误吗，怎么解决


Feature request: Multi-configuration projects

Some of my projects are multi-configuration projects. I'm building C++ applications for different platforms and architectures (platforms: android, linux, windows and archs: 32 and 64 bit), excluding nonsense combinations (android 64 bit isn't yet out AFAIK).
I'd love to see the project be split in some ways and see the current matrix-element being build lit up, instead of the whole project at once. That way you can also see what sub-build breaks and what doesn't.

Thanks @patrickdepinguin - let's move this conversation to #62


TestRecordSource - Creation of multiple records

The current process to create multiple unique records is quite involved, especially with nested record creations.
Currently, the below code would create two opportunity line items, linked to the same opportunity and account.
List<OpportunityLineItem> lineItems = testRecordSource.getRecord(OpportunityLineItem.SObjectType)         .withInsert(2);
Suggest we allow multiple records to be created by specifying that this is enabled for a particular SObject type, e.g.
List<OpportunityLineItem> lineItems = testRecordSource.getRecord(OpportunityLineItem.SObjectType)         .allowMultipleCreation(Opportunity.SObjectType)         .withInsert(2);
This would create two opportunity lines, linked to two separate opportunities, linked to one account.
Specifying the below, would create two opportunity lines, linked to two separate opportunities, linked to two accounts:
List<OpportunityLineItem> lineItems = testRecordSource.getRecord(OpportunityLineItem.SObjectType)         .allowMultipleCreation(Opportunity.SObjectType)         .allowMultipleCreation(Account.SObjectType)         .withInsert(2);

Another thought I had on this is the possibility of using iterators (surprise!) e.g.
List<Opportunity> opportunities = testRecordSource.getRecord(Opportunity.SObjectType).withInsert(2);
List<OpportunityLineItem> lineItems = testRecordSource.getRecord(OpportunityLineItem.SObjectType)
  .put(OpportunityLineItem.OpportunityId, new LazySObjectIterator(opportunities).get(Opportunity.Id))
  .withInsert(2);

Your thoughts?

I feel like the implementation of the lazy iterator should be hidden. I don't care how it's being done, just that it is.
So something like this would be cleaner:
List<Opportunity> opportunities = testRecordSource.getRecord(Opportunity.SObjectType).withInsert(2);
List<OpportunityLineItem> lineItems = testRecordSource.getRecord(OpportunityLineItem.SObjectType)
  .put(OpportunityLineItem.OpportunityId, opportunities)
  .withInsert(2);

I knew you would say that!
It's totally reasonable to have a default/convenience method. But I'd like the flexibility to be able to use a field other than Id from somewhere else. Or to set up an iterator to provide different values for non-Id fields e.g. we could pass in a list of Decimals to set different prices for each test record.

:) :) :)
Agreed, a convenience method would probably cover 95% of scenarios for this usage, and then have an iterator version of the put method to help with the other 5%.


[Docs] Build a docs/readme page from the code base.

In order to better explain our options it would be great to be able to generate a Readme document that users can use to look ad explore options.
Also worth listing compatible dialects in the mainpage.

I was looking into this and I think you have a good start which I will look into to document the commands. That said I do think we should add another few markdown documents that we can generate from the codebase:

Rules Reference

# Rules

The following outlines the rule categories and rules, implemented by sqruff.

## Rule categories

{ for loop

rof }

## Rules

The following are all the rules for sqruff

{ for
 all the rules summary table
}

{ for each rule

### AL01 - aliasing one

Table

| Code | {} |
| Name | {} |
| Description | {} |

Long description

}

A few acceptance criteria that I could come up with:

[ ] Are the docs files stored under docs/ folder?
[ ] Are there docs for the command line as you have generated?
[ ] Are there docs for the reference of the rules, like this one https://docs.sqlfluff.com/en/stable/rules.html#
[ ] Are there docs for the reference of the available dialects: https://docs.sqlfluff.com/en/stable/dialects.html
[ ] Is there a CI step that generates the files and checks they are not out of date?

Let me know what you think @gvozdvmozgu ?

https://github.com/quarylabs/sqruff/pulls#:~:text=feat%3A adding rules docs Should do this

Implemented.


drop support for SNS SignatureVersion 1

Now that both testpypi and pypi queues are configured with version 2, we should drop support to ensure we aren't handling old SHA1 hashes.

Pre validated this a bit by deploying this branch to test.pypi.org and ensuring that SNS notifications were working. Pretty confident it is good to go.


Gemspec, default date

[ ] add Travis install on Windows smoke test

See #340

Can this be released? As it stands right now the latest version is un-installable on Windows.

@Arcanemagus :+1:
1.11.7 is avaiable


PySimpleGUI Port

It's been suggested that PySimpleGUI be ported to run on top of Remi.
PySimpleGUI has been ported to tkinter, Qt, and WxPython.  Sure would be fun to run it on Remi too.
Is this something that you think is possible?
The architecture of PySimpleGUI's "event loop" needs to be able to call the underlying GUI framework's "mainloop" in both a non-blocking way and have the ability to "cancel" a mainloop after a set amount of time is elapsed.  Or, if it's possible to put a "timeout" on the mainloop then a timer is not needed.
The Architecture is discussed here.
Can Remi provide these services?
I'm sorry that I have not yet done much development in Remi.... still learning and want to learn more.  Hope to be able to learn the answers to these questions myself, but would be helpful to get a jump start if possible.

It looks like Remi and PySimpleGUIWeb are tracking each other when it comes to Pip installs..
Remi installs are on the left, PySimpleGUIWeb on the right.  What's a bit baffling is the installs on Jan 24th.  There were over 1,000 installs of PySimpleGUIWeb but the Remi installs didn't go up.  This was prior to adding Remi as a requirement on PyPI.  Remi had to be manually installed at that time.  Now Remi is automatically installed.

so much donwloads @MikeTheWatchGuy :D
but however some of them are automatic pip installs from repl.it .

Damn, we really hit a high mark over the past few days!
Even if some of this is repl.it traffic, it's really impressive!


Unable to Replicate MFU for 7B on 80gb A100

Issue
I'm not able to replicate the reported MFU results for the 7B model on a single 8GPU 80gb A100 node. Rather, I'm getting ~15% MFU. Despite the lower MFU, I'm getting approximately the same reported throughput of 3.7k.
Details
Here are the config settings I'm using. They're close to the settings in train.sh except I switch low_cpu_fsdp = True and use_dummy_dataset = True.
        "use_dummy_dataset": True,
        "ckpt_load_path": "/lustre/pretrain/ckpt",
        "ckpt_save_path": "/lustre/pretrain/ckpt",
        "data_path": "/lustre/bluepile-processing/rel0_7/tokens/llama2/high_quality_rerun_fuzzy_deduped",
        "fsdp_activation_checkpointing": False,
        "selective_checkpointing": 1,
        "sharding_strategy": "hsdp",
        "low_cpu_fsdp": True,
        "batch_size": 2,
        "report_interval": 5,
        "checkpoint_interval": 20000,
        "use_torch_compile": False,
        "use_profiler": False,

MFU Measurement
I'm measuring the MFU using the class below, which I wrote based on the MFU calculation in nanoGPT. I initialize this class as shown below for the 7b model. To track MFU, I add a print statement to the training loop inside the train function as given below.
MFU Initialization
    mfu = ModelFlopsUtilization(
        n=sum([p.numel() for p in model.parameters()]),
        t=4096,
        l=32,
        h=32,
        q=128,
        gpu_type="A100_bf16",
        num_gpus_per_replica=1,
    )

MFU Print Statement
        t_start = time.time()
        input = input.to(local_rank)
        label = label.to(local_rank)

        optimizer.zero_grad()
        output = model(input)
        ce_loss = torch.nn.CrossEntropyLoss()
        loss = ce_loss(output.view(-1, output.size(-1)), label.view(-1).long())

        loss.backward()
        ddp_stats[1] += model.clip_grad_norm_(cfg.grad_clip_thresh).item()
        optimizer.step()
        scheduler.step()

        t_end = time.time()
        print("mfu:", mfu(cfg.batch_size, 1, t_end - t_start))

MFU Class
class ModelFlopsUtilization(object):

    GPU_TYPE_TO_MAX_FLOPS_PER_SEC = {
        # H100 GPU with bfloat16, this is the SXM version
        "H100_SXM_bf16": 1979e12,
        # H100 GPU with bfloat16, this is the PICe version
        "H100_PCIe_bf16": 1513e12,
        # V100 GPU with FP 32
        "V100_fp32": 14e12,
        # A100 GPU with FP 32
        "A100_fp32": 19.5e12,
        # A100 GPU with tensor float 32 peak flops is 156 TFLOPS
        "A100_tf32": 156e12,
        # A100 GPU bfloat16 peak flops is 312 TFLOPS
        "A100_bf16": 312e12,
        # 0 result for CPU
        "cpu": float("-inf"),
    }

    def __init__(self, n, t, l, h, q, gpu_type, num_gpus_per_replica) -> None:
        self.model_flops_per_token = 6 * n + 12 * l * h * q * t
        self.model_flops_per_input = t * self.model_flops_per_token
        self.gpu_max_flops_per_sec = self.GPU_TYPE_TO_MAX_FLOPS_PER_SEC[gpu_type] * num_gpus_per_replica

    def __call__(self, batch_size, steps_per_iter, iter_time):
        """
        Returns the fraction of theoretical flops-per-sec utilized
        """
        model_flops_per_step = self.model_flops_per_input * batch_size
        model_flops_per_iter = model_flops_per_step * steps_per_iter
        model_flops_per_sec = model_flops_per_iter / iter_time
        mfu = model_flops_per_sec / self.gpu_max_flops_per_sec
        return mfu

Hardware Info
In case it's relevant, I've included the output of nvidia-smi on my machine below.
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.86.10              Driver Version: 535.86.10    CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA A100-SXM4-80GB          On  | 00000001:00:00.0 Off |                    0 |
| N/A   32C    P0              62W / 400W |      4MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   1  NVIDIA A100-SXM4-80GB          On  | 00000002:00:00.0 Off |                    0 |
| N/A   31C    P0              63W / 400W |      4MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   2  NVIDIA A100-SXM4-80GB          On  | 00000003:00:00.0 Off |                    0 |
| N/A   31C    P0              66W / 400W |      4MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   3  NVIDIA A100-SXM4-80GB          On  | 00000004:00:00.0 Off |                    0 |
| N/A   30C    P0              61W / 400W |      4MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   4  NVIDIA A100-SXM4-80GB          On  | 0000000B:00:00.0 Off |                    0 |
| N/A   31C    P0              62W / 400W |      4MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   5  NVIDIA A100-SXM4-80GB          On  | 0000000C:00:00.0 Off |                    0 |
| N/A   31C    P0              63W / 400W |      4MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   6  NVIDIA A100-SXM4-80GB          On  | 0000000D:00:00.0 Off |                    0 |
| N/A   31C    P0              60W / 400W |      4MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+
|   7  NVIDIA A100-SXM4-80GB          On  | 0000000E:00:00.0 Off |                    0 |
| N/A   32C    P0              62W / 400W |      4MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

Hi, if you get same throughput, then MFU should be same/similar.
For an easier calculation on MFU:
Leveraging the formula we can get model TFLOP for roughly 192 for 7b model per one bs.  We run a batch size of 2, thus each step is running 192 * 2 TFLOP, and our step time is 2.2s, so we can get Model TFLOPS = 192 * 2 / 2.2 = 175.
MFU is calculated by the ratio of this number with theoretical peak (for A100, this was 312), so 175/312 = 0.56

Thank you, Linsong! Makes sense - must be a measurement error on my part. Appreciate the quick response :)

Noting why my measurement was wrong on the off chance it saves others time.
When you do sum([p.numel() for p in model.parameters()]) for an FSDP model, it only counts the parameters that are in the local FSDP unit. To count the full number of parameters in the FSDP model you can use:
with FSDP.summon_full_params(model):
n_params = sum([p.numel() for p in model.parameters()])


Use vaadin themable.

Fixes #65

This change is

Looks ok in general, but the visual screen test results seem to look different from before?

Review status: 0 of 16 files reviewed at latest revision, 1 unresolved discussion.

vaadin-split-layout.html, line 49 at r1 (raw file):

      }

      :host(:not([vertical])) > [part=splitter] {

nitpick: missing double-quotes around the attribute value: [part="splitter"]

Comments from Reviewable

For some reason, font icons produce blear borders. I have opened the fonts in a web font editor and border seems ok though. Probably someone else more familiar on this sort of tools could take a look.

Review status: 0 of 16 files reviewed at latest revision, 1 unresolved discussion.

vaadin-split-layout.html, line 49 at r1 (raw file):
Previously, Saulis (Sauli Tähkäpää) wrote…
nitpick: missing double-quotes around the attribute value: [part="splitter"]

Done.

Comments from Reviewable

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: manolo:x: SaulisYou have signed the CLA already but the status is still pending? Let us recheck it.

Ahem. Looks like this PR got closed after I deleted the branch after merging #73. Sorry :-)

Restored the branch, please rebase this PR on top of master

Done

Review status: 0 of 16 files reviewed at latest revision, 1 unresolved discussion.

Comments from Reviewable

Review status: 0 of 16 files reviewed at latest revision, 3 unresolved discussions.

vaadin-split-layout.html, line 15 at r2 (raw file):

  @font-face {
    font-family: 'vaadin-split-layout-icons';
    src: url(data:application/font-woff;base64,d09GRgABAAAAAAcsAAoAAAAABuQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAGAAAABg+BMGCGNtYXAAAAFUAAABQgAAAUIADeqpZ2x5ZgAAApgAAAFYAAABWJhloHpoZWFkAAAD8AAAADYAAAA2DP6ajGhoZWEAAAQoAAAAJAAAACQHMAQyaG10eAAABEwAAAAUAAAAFA9tBUZsb2NhAAAEYAAAAAwAAAAMAHIAyG1heHAAAARsAAAAIAAAACAACQAybmFtZQAABIwAAAJSAAACUgRElDpwb3N0AAAG4AAAAEwAAABMNMd8dwAEA9sBkAAFAAACmQLMAAAAjwKZAswAAAHrADMBCQAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAEDpAOkDA8D/wABAA8AAQAAAAAEAAAAAAAAAAAAAACAAAAAAAAMAAAADAAAAHAABAAAAAAA8AAMAAQAAABwABAAgAAAABAAEAAEAAOkD//8AAOkA//8XAQABAAAAAAAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAeoAdQIWAwsAAwAAATMRIwHqLCwDC/1qAAAAAQBsAaYDAgHbAAMAABM1IRVsApYBpjU1AAAAAAMB0gDeAi0CogAPAB8ALwAAAA4CFB4CMj4CNC4DDgIUHgIyPgI0LgICDgIUHgIyPgI0LgIB9hEMBwcMERMQDAgIDBATEQwHBwwRExAMCAgMEBMRDAcHDBETEAwICAwQAe8IDBATEQwHBwwRExAMCLMHDRATEA0HBw0QExANB/6WBwwREhEMBwcMERIRDAcAAAMBHgGTAuIB7QAPAB8ALwAAAB4CMj4CNC4CIg4DHgIyPgI0LgIiDgIEHgIyPgI0LgIiDgIB0QcNEBMQDQcHDRATEA0HswcMERMQDAgIDBATEQwHAWoHDBATEQwHBwwRExAMBwG3EQwHBwwREhEMBwcMERIRDAcHDBESEQwHBwwREhEMBwcMERIRDAcHDBEAAAEAAAABAADKRfaZXw889QALBAAAAAAA1VRE+AAAAADVHhEXAGwAdQMCAwsAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAbABsAwIAAQAAAAAAAAAAAAAAAAAAAAUAAAAABAAB6gNuAGwD/wHSBAABHgAAAAAADgAcAGQArAABAAAABQAwAAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEAGAAAAAEAAAAAAAIABwAYAAEAAAAAAAMAGAAfAAEAAAAAAAQAGAA3AAEAAAAAAAUACwBPAAEAAAAAAAYAGABaAAEAAAAAAAoAGgByAAMAAQQJAAEAMACMAAMAAQQJAAIADgC8AAMAAQQJAAMAMADKAAMAAQQJAAQAMAD6AAMAAQQJAAUAFgEqAAMAAQQJAAYAMAFAAAMAAQQJAAoANAFwdmFhZGluLWRhdGUtcGlja2VyLWljb25zUmVndWxhcnZhYWRpbi1kYXRlLXBpY2tlci1pY29uc3ZhYWRpbi1kYXRlLXBpY2tlci1pY29uc1ZlcnNpb24gMS4wdmFhZGluLWRhdGUtcGlja2VyLWljb25zRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4AdgBhAGEAZABpAG4ALQBkAGEAdABlAC0AcABpAGMAawBlAHIALQBpAGMAbwBuAHMAUgBlAGcAdQBsAGEAcgB2AGEAYQBkAGkAbgAtAGQAYQB0AGUALQBwAGkAYwBrAGUAcgAtAGkAYwBvAG4AcwB2AGEAYQBkAGkAbgAtAGQAYQB0AGUALQBwAGkAYwBrAGUAcgAtAGkAYwBvAG4AcwBWAGUAcgBzAGkAbwBuACAAMQAuADAAdgBhAGEAZABpAG4ALQBkAGEAdABlAC0AcABpAGMAawBlAHIALQBpAGMAbwBuAHMARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAABAgEDAQQBBQd1bmlFOTAwB3VuaUU5MDEHdW5pRTkwMgd1bmlFOTAz) format('woff');

Now that the "handle" is a themable part, we could just make it a 40x40 flexbox in the default styles and center a normal sized icon in it. I think the icons specified here have lots of empty space around them which dictates the handle bounds.

vaadin-split-layout.html, line 81 at r2 (raw file):

    <slot id="primary" name="primary"></slot>
    <div part="splitter" id="splitter" on-track="_onHandleTrack" on-down="_preventDefault">
      <slot name="handle">

Is this feature still relevant after the new theming approach?

Comments from Reviewable

Review status: 0 of 16 files reviewed at latest revision, 3 unresolved discussions.

vaadin-split-layout.html, line 15 at r2 (raw file):
Previously, tomivirkki (Tomi Virkki) wrote…
Now that the "handle" is a themable part, we could just make it a 40x40 flexbox in the default styles and center a normal sized icon in it. I think the icons specified here have lots of empty space around them which dictates the handle bounds.

I don't follow. You mean modify the font ?

vaadin-split-layout.html, line 81 at r2 (raw file):
Previously, tomivirkki (Tomi Virkki) wrote…
Is this feature still relevant after the new theming approach?

I guess the user could still want to replace the handle with any html content like a paper-icon etc.
There might be cases where the font content is not enough

Comments from Reviewable

vaadin-split-layout.html, line 15 at r2 (raw file):
Previously, manolo (Manuel Carrasco Moñino) wrote…
I don't follow. You mean modify the font ?

Yeah, IIRC the space around the handle icon was due to it being an SVG earlier.

Comments from Reviewable

vaadin-split-layout.html, line 81 at r2 (raw file):
Previously, manolo (Manuel Carrasco Moñino) wrote…
I guess the user could still want to replace the handle with any html content like a paper-icon etc.
There might be cases where the font content is not enough

Of course, there can always be edge cases. But the point is that would the new support for modifying the icons with theme be enough for 99.9% of the cases. Has this slot now become one of those features that we support but virtually no-one actually needs anymore?

Comments from Reviewable

Review status: 0 of 16 files reviewed at latest revision, 3 unresolved discussions, some commit checks broke.

vaadin-split-layout.html, line 15 at r2 (raw file):
Previously, tomivirkki (Tomi Virkki) wrote…
Yeah, IIRC the space around the handle icon was due to it being an SVG earlier.

Now the browser font renderer is giving the space that the font needs with the given font-size.
Since we are using lines here differences exist, with other icons like ellipsis, etc differences are not so noticeable.
I think this issues can be fixed by the user selecting another font. Also we could work more trying to understand how fonts work and use better font editors, but I think is out of this PR scope.

vaadin-split-layout.html, line 81 at r2 (raw file):
Previously, tomivirkki (Tomi Virkki) wrote…
Of course, there can always be edge cases. But the point is that would the new support for modifying the icons with theme be enough for 99.9% of the cases. Has this slot now become one of those features that we support but virtually no-one actually needs anymore?

Removed support for slot. Also removed custom demos, since all of remaining were based on slots.

Comments from Reviewable

Review status: 0 of 16 files reviewed at latest revision, 3 unresolved discussions, some commit checks broke.

vaadin-split-layout.html, line 15 at r2 (raw file):
Previously, manolo (Manuel Carrasco Moñino) wrote…
Now the browser font renderer is giving the space that the font needs with the given font-size.
Since we are using lines here differences exist, with other icons like ellipsis, etc differences are not so noticeable.
I think this issues can be fixed by the user selecting another font. Also we could work more trying to understand how fonts work and use better font editors, but I think is out of this PR scope.

Removed fonts. Using a styled element instead.

Comments from Reviewable

Reviewed 1 of 11 files at r3.
Review status: 1 of 16 files reviewed at latest revision, 5 unresolved discussions.

vaadin-split-layout.html, line 235 at r3 (raw file):

       *
       * You can replace the default splitter handle with a custom handle element
       * by using the `handle` slot.

It seems that support for slotted handle was removed later in https://github.com/vaadin/vaadin-split-layout/commit/9da6acad1e14af859cdd49956b4676c6508149a8 . (the same for html block below)

test/visual/customized.html, line 18 at r3 (raw file):

        }

        [part=handle] {

nitpick: missing double-quotes around the attribute value: [part="handle"] and [part="splitter"]

Comments from Reviewable

Review status: 1 of 16 files reviewed at latest revision, 5 unresolved discussions.

vaadin-split-layout.html, line 235 at r3 (raw file):
Previously, YuriyVaadin (Yuriy Yevstihnyeyev) wrote…
It seems that support for slotted handle was removed later in https://github.com/vaadin/vaadin-split-layout/commit/9da6acad1e14af859cdd49956b4676c6508149a8 . (the same for html block below)

Done.

test/visual/customized.html, line 18 at r3 (raw file):
Previously, YuriyVaadin (Yuriy Yevstihnyeyev) wrote…
nitpick: missing double-quotes around the attribute value: [part="handle"] and [part="splitter"]

Done.

Comments from Reviewable

I have the same question as Sauli had:

the visual screen test results seem to look different from before?

Looks like test/visual/customized.html doesn't work, yellow handles are expected.

Review status: 0 of 18 files reviewed at latest revision, 5 unresolved discussions.

Comments from Reviewable

Looks like test/visual/customized.html doesn't work, yellow handles are expected.

Yep, theming requires more properties to make it look like before. Done.

Review status: 0 of 18 files reviewed at latest revision, 5 unresolved discussions.

Comments from Reviewable

Reviewed 2 of 17 files at r1, 7 of 11 files at r3, 2 of 3 files at r4, 4 of 4 files at r5, 4 of 4 files at r6.
Review status: all files reviewed at latest revision, 7 unresolved discussions.

vaadin-split-layout.html, line 15 at r6 (raw file):

  <template>
    <style>
      [part="handle"] {

The handle size should be part of the core style. This is a rather functional style, it doesn’t affect much except the touch target area. Every theme should have a large handle touch area anyway.

vaadin-split-layout.html, line 22 at r6 (raw file):

      [part="handle"]::after {
        content: "";
        position: absolute;

I think, centering with 50% position + negative transform is inappropriate here.
Would do instead:
      [part="handle"]::after {
        content: "";
        display: block;
        margin: 8px auto;
        width: 2px;
        height: 24px;
        background: white;
      }

Another option with more lines but less magic numbers:
      [part="handle"]::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        margin: auto;
        width: 2px;
        height: 24px;
        background: white;
      }

vaadin-split-layout.html, line 62 at r6 (raw file):

        min-width: 8px;
        min-height: 8px;
        background: #ccc;

The color here is theme-opinionated, should be in the default theme.
Maybe the size should be in the default theme too.

demo/theming.html, line 26 at r6 (raw file):

          <template>
            <style>
              [part="handle"]::after {

Theme demo should use ~= part selectors, I suppose.

test/visual/customized.html, line 10 at r6 (raw file):

<body>
  <dom-module id="vaadin-split-layout-style" theme-for="vaadin-split-layout">

Should we reuse theming demo in this test?
Personally, I try to reuse demo code in the tests as much as I can:

More straightforward to maintain, just copy-paste to test when the demo is updated. Less thinking involved, compared to having different demos and tests.
Makes the demos somewhat tested too.

Comments from Reviewable

I miss nice examples from the previous version:
https://cdn.vaadin.com/vaadin-core-elements/master/vaadin-split-layout/demo/custom.html#customizing-vertical-and-horizontal-layouts-separately
https://cdn.vaadin.com/vaadin-core-elements/master/vaadin-split-layout/demo/custom.html#customizing-nested-layouts
https://cdn.vaadin.com/vaadin-core-elements/master/vaadin-split-layout/demo/custom.html#thin-lines
https://cdn.vaadin.com/vaadin-core-elements/master/vaadin-split-layout/demo/custom.html#custom-handle
I would like to the the same result achieved by vaadin-themable.

Review status: all files reviewed at latest revision, 7 unresolved discussions.

Comments from Reviewable

Those are not possible right now because 1.- we removed support for slots and 2.- using themable they would be very verbose and we would need a different page per theme. In case someone asks for them we might do in jsfiddle.
We already agreed to remove them.

Review status: all files reviewed at latest revision, 7 unresolved discussions.

vaadin-split-layout.html, line 62 at r6 (raw file):
Previously, platosha (Anton Platonov) wrote…
The color here is theme-opinionated, should be in the default theme.
Maybe the size should be in the default theme too.

I think color and size are needed for the element work if default theme is removed, this is the reason they are here. And anyways it is easily overridable in custom themes.

Comments from Reviewable

Review status: all files reviewed at latest revision, 7 unresolved discussions.

vaadin-split-layout.html, line 62 at r6 (raw file):
Previously, manolo (Manuel Carrasco Moñino) wrote…
I think color and size are needed for the element work if default theme is removed, this is the reason they are here. And anyways it is easily overridable in custom themes.

Should defenetely work without the color, probably even size.
8px was a material design based choice here.

Comments from Reviewable

Review status: all files reviewed at latest revision, 7 unresolved discussions.

vaadin-split-layout.html, line 22 at r6 (raw file):
Previously, platosha (Anton Platonov) wrote…
I think, centering with 50% position + negative transform is inappropriate here.
Would do instead:
      [part="handle"]::after {
        content: "";
        display: block;
        margin: 8px auto;
        width: 2px;
        height: 24px;
        background: white;
      }

Another option with more lines but less magic numbers:
      [part="handle"]::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        margin: auto;
        width: 2px;
        height: 24px;
        background: white;
      }

Why is inappropriate now, and it was ok in the previous version ?

vaadin-split-layout.html, line 62 at r6 (raw file):
Previously, platosha (Anton Platonov) wrote…
Should defenetely work without the color, probably even size.
8px was a material design based choice here.

Default styles should contain functional styles, which are required to make the element work (overall layout, showing and hiding parts etc.)
Purely visual styles such as box-shadows, color, etc. are okay to add when it’s expected that most themes will either add or override those in any case. Just make sure they are easy to override.
In this case the splitter without any size and color makes the element un-usable. They are expected to override for almost themes, and they are easy to override. I don't see any better reason for removing them.
I would change the values, if you are against having specific material values, probably to
min-width: 2px;
min-height: 2px;
background: black;

demo/theming.html, line 26 at r6 (raw file):
Previously, platosha (Anton Platonov) wrote…
Theme demo should use ~= part selectors, I suppose.

well it's demo code, we are not writing generic themes here.

test/visual/customized.html, line 10 at r6 (raw file):
Previously, platosha (Anton Platonov) wrote…
Should we reuse theming demo in this test?
Personally, I try to reuse demo code in the tests as much as I can:

More straightforward to maintain, just copy-paste to test when the demo is updated. Less thinking involved, compared to having different demos and tests.
Makes the demos somewhat tested too.

I would that in a separate PR. For this PR I want to show what are the visual differences before and after the modifications

Comments from Reviewable

Review status: 17 of 18 files reviewed at latest revision, 7 unresolved discussions.

vaadin-split-layout.html, line 15 at r6 (raw file):
Previously, platosha (Anton Platonov) wrote…
The handle size should be part of the core style. This is a rather functional style, it doesn’t affect much except the touch target area. Every theme should have a large handle touch area anyway.

Not having the handler size, the component works, so I think it's not a fundamental functional feature, this is the reason it's in the theme.
I don't have a strong preference so moving it to the default styles.
Done

Comments from Reviewable

I changed a little bit theming demo page to be a little bit prettier and cross-platform.

Review status: 16 of 20 files reviewed at latest revision, 3 unresolved discussions.

Comments from Reviewable

Review status: 8 of 20 files reviewed at latest revision, 4 unresolved discussions.

demo/theming.html, line 42 at r8 (raw file):

              }

              :host([vertical]) [part~="handle"]::after {

Nit: the handler seems a bit misplaced (not in the middle)

Comments from Reviewable

Review status: 8 of 20 files reviewed at latest revision, 4 unresolved discussions.

Comments from Reviewable

Review status: 8 of 20 files reviewed at latest revision, 4 unresolved discussions.

demo/theming.html, line 42 at r8 (raw file):
Previously, manolo (Manuel Carrasco Moñino) wrote…
Nit: the handler seems a bit misplaced (not in the middle)

It's impossible to get pixel-perfect cross-browser result with UTF symbols. If we want pixel-perfect perfection in demos (do we?), images should be used.

Comments from Reviewable

Review status: 8 of 20 files reviewed at latest revision, 4 unresolved discussions.

demo/theming.html, line 42 at r8 (raw file):
Previously, limonte (Limon Monte) wrote…
It's impossible to get pixel-perfect cross-browser result with UTF symbols. If we want pixel-perfect perfection in demos (do we?), images should be used.

I think, if you increase the splitter width misplacement is less noticeable

Comments from Reviewable

Reviewed 2 of 17 files at r1, 2 of 11 files at r3, 1 of 3 files at r4, 4 of 4 files at r5, 11 of 12 files at r8, 1 of 1 files at r9.
Review status: all files reviewed at latest revision, 4 unresolved discussions.

Comments from Reviewable

Reviewed 2 of 17 files at r1, 2 of 11 files at r3, 1 of 3 files at r4, 4 of 4 files at r5, 11 of 12 files at r8, 1 of 1 files at r9.
Review status: all files reviewed at latest revision, 3 unresolved discussions.

Comments from Reviewable


Automatic framework detection - references #1440

Automatic framework detection
If you use only one target framework in your whole repository, then paket can detect this for you and limit the installation to that specific target framework. You can control this in the paket.dependencies file:
framework: auto-detect
source https://nuget.org/api/v2

nuget Example >= 2.0 // only the target framework that is used in projects

From Slack:

probably it would be nice if it worked also if multiple frameworks are used in solution, giving conditionals for only those frameworks which are defined in any project

@Krzysztof-Cieslak so we would install the union of all the target frameworks?

Yes, so let's say we have in solution one project with 3.5 and second one with 4.0 - for all projects we define conditional references for both 3.5 and 4.0.

sounds good

If we don't find a project then we would not restrict the resolution, right?

Yes, that sounds reasonable


true and false are not parsed as Ident.

According to proc_macro2::Ident, keywords and legal variable names are expected to be parsed as Ident, while the following code will panic:
let i: proc_macro2::Ident = syn::parse_str("true").unwrap();

If keywords are intentionally not parsed as Ident, how can I safely parse a str and get (possibly) Ident(true) etc.

According to proc_macro2::Ident, keywords and legal variable names are expected to be parsed as Ident

They are not. This is contradicted by the documentation you linked. "parsing one through its Parse implementation rejects Rust keywords".


Implement parsing to a bit vector in C++

Bitstream generation with xc-fasm uses a significant amount of time, most of which is spent parsing FASM text with textX.
Given that the FASM format is fairly simple, and the input is in the megabytes, this could be much faster if written in a low level language such as C++.
While the FASM format is well established at this point, it would be nice to keep the same Python interface to allow easy integration and filtering of the FASM input and bit vector output.
Plan to use C++ within Python
There are a number of ways to interface Python and C: cython, Boost Python, ctypes, and many more, several of which are compared in this article.
I have chose ctypes for the following reasons:

The interface should be very simple (filename or string in, byte vector out), so there is no need to model C++ objects.
ctypes comes with Python, so there is no extra dependencies required.

I have written some test code that approximates how this will work: https://github.com/HackerFoo/cpyo
So then, kernel.cpp will be replaced with code that converts FASM input to a bit vector, reading from prjxray as needed, and I will use ctypes to call it from xc-fasm in place of fasm_assembler from prjxray.

Given that your own data shows that 99% of the time is spent in textx, why would you convert the fasm_assembler stuff to C++?  The vast majority of the gain is from avoiding textx for the parsing tree, not in the python used to assemble the bit vector?

The assembler isn't very large or complex (201 lines for fasm_assembler.py, and 128 for bitstream.py, about half of which is comments), and doing only parsing in C++ would require passing a lot more data across the FFI than necessary.

You also need to manage reading segbits, and pathing to segbit data.

@litghost @mithro I have created a document here with more details, which I will keep updated.