Feature: renaming imports from current folder

Feature proposal:
rename imports from './{sourceComponentName}' to './{destinationComponentName}'

I would love to have this feature, since I use generact a lot for just renaming components (because naming things is hard).
But that conflicts with the default usage of generact (creating new components based on the existing ones). In this case, we don't want to rename imports.
I don't know how to solve it. :(

I did not understand the conflict, for me the naming convention is simple:
App - component folder

App.js
AppAnythingElse.js

So for rename import two conditions should be met:

current folder import (from './')
import starts with old component name (App)

So, if it's ./App*.js rename App to the new component name.
Anything else remains untouched.
What's your case?

Ah, I see. I was talking about a completely different thing. Nevermind.
Currently, we've restricted it to not change AnythingAppElse names when replacing file contents (here: https://github.com/diegohaz/generact/blob/master/src/utils.js#L65). That's because AnythingAppElse could be an external component, which we don't want to touch.
But, as you stated, we can safely do that when it's preceded by ./. Changing that function should be enough. Would you want to work on that?

Let me try :) Seems like a not large bit of work.

Nice. :)
You can start by updating tests for what you expect to have
https://github.com/diegohaz/generact/blob/master/test/utils.test.js#L82-L96
Tell me if you need any help

Do you think these are valid conditions? I'll start
test('replaceContents', () => {
  const contents = `
    import './Button.css'
    import ButtonComponent from '../ButtonComponent'
    import NodeButtonComponent from 'node-button-component'
    import NodeButtonComponent from 'node-component/Button'
    import SimpleButton from './SimpleButton'
    import SimpleAnotherButton from './SimpleButton'
    import { someButtonUtil } from './SimpleButtonUtils'
    const Button = () => <button />
    export default Button
  `

  expect(replaceContents(contents, 'Button', 'AnotherButton')).toBe(`
    import './AnotherButton.css'
    import ButtonComponent from '../ButtonComponent'
    import NodeButtonComponent from 'node-button-component'
    import NodeButtonComponent from 'node-component/Button'
    import SimpleAnotherButton from './SimpleAnotherButton'
    import { someButtonUtil } from './SimpleAnotherButtonUtils'
    const AnotherButton = () => <button />
    export default AnotherButton
  `)
})

Yeah, that seems pretty good.

import { someButtonUtil } from './SimpleAnotherButtonUtils'

someButtonUtil shoulde be renamed as well :( Because
export const someButtonUtil will be renamed, as far as I see.
I'll start PR, but still can't figure a RegExp to match that... That's not my strong part 😕

I think someButtonUtil should remain as it is. Otherwise, things like NodeButtonComponent would be changed as well.

Updated version:
test('replaceContents', () => {
  const contents = `
    import './Button.css'
    import ButtonComponent from '../ButtonComponent'
    import NodeButtonComponent from 'node-button-component'
    import NodeButtonComponent from 'node-component/lib/Button'
    import NodeYellowButtonComponent from 'node-component/YellowButton'
    import SimpleButton from './SimpleButton'
    import { someButtonUtil } from './SimpleButtonUtils'
    const Button = () => <button />
    export const someButtonUtil = () => {}
    export default Button
  `

  expect(replaceContents(contents, 'Button', 'AnotherButton')).toBe(`
    import './AnotherButton.css'
    import ButtonComponent from '../ButtonComponent'
    import NodeButtonComponent from 'node-button-component'
    import NodeButtonComponent from 'node-component/lib/Button'
    import NodeYellowButtonComponent from 'node-component/YellowButton'
    import SimpleAnotherButton from './SimpleAnotherButton'
    import { someButtonUtil } from './SimpleAnotherButtonUtils'
    const AnotherButton = () => <button />
    export const someButtonUtil = () => {}
    export default AnotherButton
  `)
})

Actually this one is changing and it shouldn't:
    -    import NodeButtonComponent from 'node-component/lib/Button'
    +    import NodeButtonComponent from 'node-component/lib/AnotherButton'

What if we made a kind of setting to add extra RegExp for users who want to customize replaceContents per project?
.generact or something like that


RuntimeError: Cuda error: 304[cudaGraphicsGLRegisterBuffer(&s.cudaPosBuffer, s.glPosBuffer, cudaGraphicsRegisterFlagsWriteDiscard);]

encountered this error, do you know if it is related to cuda and cudnn that I have installed? Has anyone encountered this error please help me to fix it. Thank you so much.

Have you solved it?

In my case, the error message mentioned that versions after gcc10 are not supported. My gcc version is 12, so I reinstalled gcc10 and set it as the default version. After that, the issue was resolved.


[NON-ISSUE] Add speech pack downloads URL

Would you kindly add this link to the "add more voices" section of the README? I think it would be useful for most people :)
https://www.microsoft.com/en-us/download/details.aspx?id=27224

Hi! Thanks for your suggestions, that does sound useful but have you tested that they work? The page seems to refer to SAPI version 11 but this project uses SAPI v5.
I'll see if I can test those voices later this week.

🤦♂ Yeah just tried it, doesn't work. So nevermind :P
Any interest in updating this project to support 11?

The goal is for this to run on Linux via Wine. I'm not aware of ways to install the SAPI 11 libraries on Wine. As far as I understand, unlike SAPI 5 which comes in a convenient installer, SAPI 11 is bundled with Windows.


Align inine snapshot handling with file snapshots

I'm finding the crate is getting increasingly complicated, to the extent that as the second contributor (albeit far behind @mitsuhiko...) I'm sometimes scratching my head in how things work. Features such as https://github.com/mitsuhiko/insta/pull/489 are great but will continue to make the main path more complicated.
Potentially some unnecessary complication comes from how differently inline & file snapshots are handled:

Pending inline snapshots write to .pending-snap files, "pending" file snapshots write to .snap.new files
Pending inline snapshots contain both the old & new value; pending file snapshots only contain the new value
Pending inline snapshots have a single file per rust file in which each snapshot gets a separate json entry, pending file snapshots have a file per snapshot
Pending inline snapshots track a run-id

Could we instead use .snap.new files for both file and pending snapshots, with a marker in their metadata indicating which is which? We'd read the old value from the rust file itself, wouldn't need to track run-id, and so collapse a lot of code in our main path. (We'd need to think about how line numbers change as code is updated, maybe other things I haven't thought of). As well as making the crate simpler, we also make its explanation simpler — when writing docs we often have to give footnotes like this: https://github.com/mitsuhiko/insta/blob/58daea1a4e565b2d2ae8700e7e54bd63ab8daf58/insta/src/lib.rs#L171-L172 because of the way things are handled.
We'd need to handle both for a while, and so somewhat dependent on a mechanism such as https://github.com/mitsuhiko/insta/pull/509 to ensure we don't have to handle both forever

I agree on the complexity.  I'm really mentally going more and more back to the discussion in #456.  I think that part of the challenge here really is that these two features (inline and non inline) just came at different times and in the wrong order.
If you treat the primary goal of the crate to just update snapshots in locations, then how that happens can be simplified.  Say we have a snapshot!(...) macro then all it does, is recording changes and either applying them instantly or deferred.  The reason the .pending stuff exists for inline snapshots has been concurrency problems with the way cargo tests sometimes run and that it's impossible to detect the end of a run.  However I believe that there might be better ways to go around this.
But I agree that this should be aligned between the two modes.


Node.appendChild: Cannot add children to a Comment

since today, visiting this site:
https://www.justwatch.com
I get this result:
Uncaught (in promise) DOMException: Node.appendChild: Cannot add children to a
Comment

Vue.js v2.6.14

Please follow the issue template, otherwise we'll close the issue directly. Thank you.


Change to New apiKey

the api key has changed.
See following sources:
https://www.springforum.de/threads/app-mydacia.47/post-76213
https://forum.fhem.de/index.php?topic=116273.msg1273022#msg1273022

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[CVPR'24 Spotlight] State Space Models for Event Cameras

Dear @xmindflow , our work has been a spotlight at CVPR 2024. We would like if you could add it to the list:
https://arxiv.org/abs/2402.15584
https://github.com/uzh-rpg/ssms_event_cameras
Best,
Nikola.

Hi Nikola, thank you for your interest in our work. We have added your paper to the repository.


It's not possible to disable editing

I have an user profile screen with a dropdown. It also has a button "Edit" so when the user clicks on it, it enables all the fields. I'm using the prop 'editable' to try to control this but it's not working. Can you check this out, please?
        <Dropdown           containerStyle={styles.dropdownContainer}           animationDuration={100}           baseColor={dropdownTextColor}           textColor={dropdownTextColor}           label={gender}           data={genderList}           editable={false}           onChangeText={ (value) => console.log('Debug: '+ value)}         />
It's hard coded for false as an attempt but it will receive a variable.

@erikabueno

disabled={true}


Overflow at update nutrition facts page

What
Overflow at update nutrition facts page
Steps to reproduce the behavior

Search any product.
Click on 'update nutrition facts'
See overflow error on the header.

Expected behavior
The overflow should not happen.
Screenshot/Mockup/Before-After

Smartphone model

Device: [Real me 5 pro]
OS: [Android 10]
App Version [e.g. 22] - you can see that either in the About Smoothie dialog in the settings or using https://nerdschalk.com/how-to-find-version-number-of-an-app-installed-on-your-device/

Probably again an AutoSize related bug solving, like #1506 and #1503 cc @abhay1821

Indeed @monsieurtanuki, AutoSIze Widget can help to improve all the issues.

Hi @monsieurtanuki  @abhay1821 ,
I feel that it is not due to the autosize widget as it is not used here. I used a sized box and it fixes this.
Here is a screenshot of it.

Yes, you are correct @bhattabhi013  it's not due to autosize text. What @monsieurtanuki And I meant is now we have AutoSizeText Widget in our App so we can play around with AutoSizeText for overflow-related Issues. So here we can use AutoSIzeText with maxlines=2.

Thanks @abhay1821 ,
I got it now. If you don't mind can I work on this one?

Yeah Sure, go ahead @bhattabhi013.

Please close this issue as fixed by #1509 .

This issue is fixed by #1509


TypeScript crash

Steps to reproduce:

Open Visual Studio Code.
Create Project with Typescript.
Coding as usual.
When 2-4 hours, the message will appear at the bottom right of the screen.
Finish.

/needsMoreInfo

/needsMoreInfo


Hit refresh endpoint to refresh JWT or log out user when JWT expires

For refresh endpoint: GET /auth/token/refresh/
https://docs.hackillinois.org/reference/services/Authorization/
OR (combination of the both below)
Log the user out when their token expires (403 forbidden error when trying to make an API call to favorites)
Ideas when to log out user (make sure they are not a guest):

Make an API call to refresh endpoint every time they open the app, and if it's unauthorized then log them out gracefully with an alert message, but this could be a lot of API calls
Any time a 403 is detected, log them out with an alert message if they are not a Guest

Outdated issue.


Add SupplierOutage model

Context
https://trello.com/c/b82716oi
Allow TechSource outages to be specified through database operations on the Rails production console.
Currently there's only one supplier but in the future instead of a SupplierOutage, different suppliers could have many Outages.
New outages can be managed in the database with:
SupplierOutage.create!(start_at: Time.zone.parse('1 Jan 2021 10:00am'), end_at: Time.zone.parse('1 Jan 2021 11:00am'))

Changes proposed in this pull request
Move outages to database model SupplierOutage
Guidance to review

 Put TechSource outages into database without UI

 Supplier outage banner not showing correctly


Regarding the Pre-trained Model

Hello, author! May I ask what the purpose of the "Pre-trained model" mentioned in the readme.md is? Is the "Pre-trained model" the best model trained in this paper? I am really looking forward to your reply.

Hello, you are right. The pre-trained model refers to the best model implemented in the paper.


[tool_crash] YamlException

Command
flutter run

Steps to Reproduce

...
...
...

Logs
YamlException
#0      Parser.parse (package:yaml/src/parser.dart:59:7)
#1      Loader.load (package:yaml/src/loader.dart:51:25)
#2      loadYamlDocument (package:yaml/yaml.dart:69:25)
#3      loadYamlNode (package:yaml/yaml.dart:54:5)
#4      loadYaml (package:yaml/yaml.dart:41:5)
#5      FlutterManifest.createFromString (package:flutter_tools/src/flutter_manifest.dart:42:47)
#6      FlutterManifest.createFromPath (package:flutter_tools/src/flutter_manifest.dart:36:28)
#7      ManifestAssetBundle.build (package:flutter_tools/src/asset.dart:291:72)
<asynchronous suspension>
#8      ResidentWebRunner._updateDevFS (package:flutter_tools/src/isolated/resident_web_runner.dart:492:26)
<asynchronous suspension>
#9      ResidentWebRunner.run.<anonymous closure> (package:flutter_tools/src/isolated/resident_web_runner.dart:283:41)
<asynchronous suspension>
#10     asyncGuard.<anonymous closure> (package:flutter_tools/src/base/async_guard.dart:111:24)
<asynchronous suspension>

[✓] Flutter (Channel stable, 2.5.3, on Microsoft Windows [Version 10.0.19042.1348], locale en-US)
    • Flutter version 2.5.3 at D:\flutter_windows_2.5.2-stable\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18116933e7 (6 weeks ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[✓] Android Studio (version 2020.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.62.3)
    • VS Code at C:\Users\User\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.28.0

[✓] Connected device (2 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 96.0.4664.45
    • Edge (web)   • edge   • web-javascript • Microsoft Edge 96.0.1054.29

! Doctor found issues in 1 category.

Flutter Application Metadata
Type: app
Version: 1.0.0+1
Material: true
Android X: false
Module: false
Plugin: false
Android package: null
iOS bundle identifier: null
Creation channel: stable
Creation framework version: 3595343e20a61ff16d14e8ecc25f364276bb1b8b
Plugins
image_picker-0.8.4+4
image_picker_for_web-2.1.4
path_provider-2.0.7
path_provider_android-2.0.8
path_provider_ios-2.0.7
path_provider_linux-2.1.2
path_provider_macos-2.0.3
path_provider_windows-2.0.4

Command
flutter run

Steps to Reproduce

...
...
...

Logs
YamlException
#0      Parser.parse (package:yaml/src/parser.dart:59:7)
#1      Loader.load (package:yaml/src/loader.dart:51:25)
#2      loadYamlDocument (package:yaml/yaml.dart:69:25)
#3      loadYamlNode (package:yaml/yaml.dart:54:5)
#4      loadYaml (package:yaml/yaml.dart:41:5)
#5      FlutterManifest.createFromString (package:flutter_tools/src/flutter_manifest.dart:42:47)
#6      FlutterManifest.createFromPath (package:flutter_tools/src/flutter_manifest.dart:36:28)
#7      ManifestAssetBundle.build (package:flutter_tools/src/asset.dart:291:72)
<asynchronous suspension>
#8      ResidentWebRunner._updateDevFS (package:flutter_tools/src/isolated/resident_web_runner.dart:492:26)
<asynchronous suspension>
#9      ResidentWebRunner.run.<anonymous closure> (package:flutter_tools/src/isolated/resident_web_runner.dart:283:41)
<asynchronous suspension>
#10     asyncGuard.<anonymous closure> (package:flutter_tools/src/base/async_guard.dart:111:24)
<asynchronous suspension>

[✓] Flutter (Channel stable, 2.5.3, on Microsoft Windows [Version 10.0.19042.1348], locale en-US)
    • Flutter version 2.5.3 at D:\flutter_windows_2.5.2-stable\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18116933e7 (6 weeks ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[✓] Android Studio (version 2020.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.62.3)
    • VS Code at C:\Users\User\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.28.0

[✓] Connected device (2 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 96.0.4664.45
    • Edge (web)   • edge   • web-javascript • Microsoft Edge 96.0.1054.29

! Doctor found issues in 1 category.

Flutter Application Metadata
Type: app Version: 1.0.0+1 Material: true Android X: false Module: false Plugin: false Android package: null iOS bundle identifier: null Creation channel: stable Creation framework version: 3595343
Plugins
image_picker-0.8.4+4 image_picker_for_web-2.1.4 path_provider-2.0.7 path_provider_android-2.0.8 path_provider_ios-2.0.7 path_provider_linux-2.1.2 path_provider_macos-2.0.3 path_provider_windows-2.0.4

Hi @thirtsa-t, thanks for filing the issue.
Please provide your pubspec.yaml.
Thank you


Effect on teleport

The player still have effect when he's teleporting in another location (MobArena).
Can you add an option in the config to fix this ?

@NathanWolf ?

Sorry, I must've missed these original emails
Um, so you would like an option to clear all potion effects on teleport? I have to imagine there's a stand-alone plugin out there that does that .. I'd also be really surprised if it's not a MobArena feature! If not, it would be easy enough to add to Magic, just feels like a bit specific, maybe.
Potion effects added by spells aren't really tracked like that, so it wouldn't be possible (or at least not easy) to just cancel effects caused by spells.

An option to clear all potion effects on teleport or check if player is still equiping the Magic armor.
And MobArena is really bugged, there are a lot of bugs.

And I have another issue too, is there a possibility to cancel the track spell for the vanished player
(/vanish of essentials).
Thanks.

Magic armor (or wands with potion effects) will instantly re-apply those potion effects on TP. So that may be an issue for you, and not easy to fix without some deep MobArena integration (not likely anytime soon, honestly).
Disallowing targeting of vanished players sounds like a good idea, though. I'll open a separate issue for that.

You can't use the teleport event to re-apply the potion effects ?

Re-apply? I thought you wanted them cancelled?

Oh, I didn't think your plugin worked that way. I thought that your plugin checked if the player was wearing an armor, in order to apply or not the effects to a player whenever an event occurs.

I think that is more or less true, but "event" in this case can be anything- like changing equipped items. You'd really need something to prevent the effects being added, unless (I suppose) their armor and wands are stripped away when entering an arena.


ReactorProcessor executes a user-provided function in a thread from the pc-pool rather than in the provided scheduler

As far as I understand, when I use ReactorProcessor, it's expected that the user-provided function will be executed in a scheduler that I provide during initialization. However, it actually executes in a thread from the pc-pool pool.
For example, this code
ReactorProcessor<Object, Object> processor = new ReactorProcessor<>(options, Schedulers::boundedElastic);

processor.react(poolContext -> {
    System.out.println(Thread.currentThread().getName() + ": hello");
    return Mono.fromRunnable(() -> System.out.println(Thread.currentThread().getName() + ": world"));
});

prints
pc-pool-2-thread-1: hello
boundedElastic-1: world

while the expected (as for me) result should be
boundedElastic-1: hello
boundedElastic-1: world

This means that with the current implementation, it's possible for users to block threads from the pc-pool, which may not be clear or expected behavior.
Also, if we dive deeper into the react implementation, we can see that it has multiple thread switches: the first by .subscribeOn and the second by .publishOn.
https://github.com/confluentinc/parallel-consumer/blob/1819a8bbfb227243aaa8732bc1eb0740bb476621/parallel-consumer-reactor/src/main/java/io/confluent/parallelconsumer/reactor/ReactorProcessor.java#L98-L109
However, .subscribeOn only works for the reactive part of the user-defined function, which is why the first print from my example is executed in a pc-pool thread.
As for .publishOn, it switches threads again for the doOnNext and onComplete parts, which seems unnecessary to me - we just spent CPU on a thread switch here.
To fix this problem, we need to move carefullyRun into the reactive context and remove publishOn. This should be enough.
I can provide a PR later today if you agree with my proposal.
Thanks!

Hi @yevheniisemenov,
Thanks for detailed explanation of the issue and PR with a fix. I am not very well versed in usage of Reactor framework so the explanation of the problem is very helpful.
Cheers

@rkolesnev, thanks for merging! I had a follow-up question: when can I expect to see this commit in the next release? Thanks!

@rkolesnev, thanks for merging! I had a follow-up question: when can I expect to see this commit in the next release? Thanks!

I am actually preparing the release - your PR got included last minute as I thought will rather included it now than wait for next release.
Should be released today or this week at the latest.

Sounds great, thank you!

Sounds great, thank you!

Fix merged, closing the issue.


Corners/sides types should allow Partial

Firstly, thank you for writing this library, and I apologise if I'm not using it correctly. I've just found it after trying to make shadows work on android - this has helped a lot :)
From your comment here it looks as if we can omit properties and they will default to true, but currently typescript complains if not all of the properties for corners or sides are specified.
The current type definition means that all keys in the record must be defined, wrapping Record<> in Partial<> will stop TS complaining when only some are defined
corners?: Record<'topStart' | 'topEnd' | 'bottomStart' | 'bottomEnd', boolean>;
sides?: Record<'start' | 'end' | 'top' | 'bottom', boolean>;

corners?: Partial<Record<'topStart' | 'topEnd' | 'bottomStart' | 'bottomEnd', boolean>>;
sides?: Partial<Record<'start' | 'end' | 'top' | 'bottom', boolean>>;

Fixed on 7.1.1 ;)


fix: prettify graphql query variables

Before the "Prettify GraphQL" button only prettified the query, but not the variables.
Now the variables are prettified too! (While respecting the tab/indent-size settings!)
I'm honestly not really sure what it was doing with the variables before. 🤔
As in, it was calling prettify on the JSON before as well, but it just wasn't updating the object in the GUI. Not sure if that was a bug or maybe I'm missing something?
Before

After

On the side this also makes 2 minor edits in the context of this PR:

Trim whitespace on one of the fixtures.
Update the link to JSON Lint (and use the correct capitalization) as the domain expired and was bought by someone else it seems. 🤔

Actually, just converted this to a draft.
After further testing, this is flawed. 🤔
If the query variables editor is modified, so it's malformed, then prettify is clicked, it reverts it back to the last valid input.

Alright, I believe we should be all good now!
Tests are passing, formatting works, doesn't erase user input, JSON is still being validated, and GraphQL related errors are still displayed on hover!
I'm not too sure on how to use Nunjucks in Insomnia to be honest, everything I do leads to malformed tags. (Even on the stable version.) However, it does format at least. ^-^'

I would love to have variables prettified too! ❤

let's look at this on the stream this coming week: come join us on the #stream channel over on the Insomnia community slack: https://chat.insomnia.rest.  The next one will be 10:30am ET on Tuesday May 24th.

Since the stream was cancelled, any chance of getting feedback here, or shall I just wait for next week?
There's no urgency for the ticket, but at the same time just want to make sure things are cool if you have any qualms with it. 👍🏾

Hi @SethFalco, sorry for yesterday's late notice.
We should be able resume the streams and to look at it next week on the next stream 🙇

very sorry.  it was our first cancellation (I was super sick yesterday with the regular flu (of all things).  we're 15/16 weeks, now, so hopefully that means that next week should be all set.  If it's ok with you, I'd prefer to wait until the steam on 5/31 just because this kind of thing is so so much easier to work through and explain.
I don't think I have any qualms with it!  Just gotta figure out what the best UX should be :)
Right now I absolutely expect this PR to get merged in some form, for what it's worth.

Ahh, as a small heads-up, I can't make it to next week's stream live, so I'll just watch the VOD later to hear what's up!

@SethFalco great work!
I did some testing and found some issues we could look at the stream:

The default value for variables being an empty string breaks new queries
There is a flash of content when the variables editor contains template variables.

(by the way, here's what I tested with on the stream)
https://rickandmortyapi.com/graphql

query MyQuery($name: String!) {
  characters(page: 2, filter: { name: $name }) {
    info {
      count
    }
    results {
      name
    }
  }
  location(id: 1) {
    id
  }
  episodesByIds(ids: [1, 2]) {
    id
  }
}

query MyQuery2($name: String!) {
  characters(page: 2, filter: { name: $name }) {
    info {
      pages
    }
  }
}

{
  "name": "rick"
}

no worries at all! :)

Closing, stale.


Mermaid diagram does not show properly

Have you checked that your issue isn't already filed?

[x] I read through FAQ and searched through the past issues, none of which addressed my issue.
[X] Yes, I have checked that this issue isn't already filed.

Bug description
Diagrams larger than the current example will display incorrectly in two ways: 1) will be occluded on the right, and 2) will be occluded on the bottom if they are too long
How to reproduce the bug
To reproduce the width issue:
Go to https://alshedivat.github.io/al-folio/blog/2021/diagrams/
Drag the diagram to the right.
I could not reproduce the height issue with sequenceDiagrams (the mermaid diagram used in the example). However, things break down if you use other types.
Using the below will lead to a diagram that gets cut at the bottom, even though this diagram renders fine in other places (such as markdown preview and here, see below):
```mermaid
classDiagram
    note "From Duck till Zebra"
    Animal <|-- Duck
    note for Duck "can fly\ncan swim\ncan dive\ncan help in debugging"
    Animal <|-- Fish
    Animal <|-- Zebra
    Animal : +int age
    Animal : +String gender
    Animal: +isMammal()
    Animal: +mate()
    class Duck{
        +String beakColor
        +swim()
        +quack()
    }
    class Fish{
        -int sizeInFeet
        -canEat()
    }
    class Zebra{
        +bool is_wild
        +run()
    }
```

It renders fine here:
classDiagram
    note "From Duck till Zebra"
    Animal <|-- Duck
    note for Duck "can fly\ncan swim\ncan dive\ncan help in debugging"
    Animal <|-- Fish
    Animal <|-- Zebra
    Animal : +int age
    Animal : +String gender
    Animal: +isMammal()
    Animal: +mate()
    class Duck{
        +String beakColor
        +swim()
        +quack()
    }
    class Fish{
        -int sizeInFeet
        -canEat()
    }
    class Zebra{
        +bool is_wild
        +run()
    }

Error messages and logs
The error message you got, with the full traceback if available. Please paste it between these triple backticks.

What operating system are you using?
Windows
Where are you seeing the problem on?
Running locally with Docker
More info
No response

Somehow the generated svg is ending with style="max-width:<PHONE_NUMBER>851562px;". Probably fixing this will solve the problem.

Somehow the generated svg is ending with style="max-width:<PHONE_NUMBER>851562px;". Probably fixing this will solve the problem.

I noticed that too, the value on my end is equally arbitrary (and different). I tried tinkering with the css to no avail, and after some reading, it seems that the property is being determined elsewhere.

I tried to check if I could fix it quickly, but it seems to need a "magical" solution.


dev: create a BytesLib namespace to create bytes helpers that follow the same naming convention as the EVM

Dev Request
Describe the Dev Request
From @ClementWalter

We should strive to use the same naming convention as the EVM ...
In short, I think that we should once for all create a BytesLib, put all these helpers with standard naming conventions and tests, and stop to think about it!

Describe Preferred Solution

word = bytes32 = uint256

bytes_i_ is the i first bytes from the left:

bytes31(bytes32) will drop the right most byte
bytes1(bytes32) will keep the left most byte

uint_i_ works the opposite (as uint are big endian)

for example, with no overflow, uint64(uint256) = uint64
so uint248(uint256) will drop the left most byte
uint8(uint256) will keep the right most byte

bytes is a bytes1[], ie an array of bytes and consequently should not have any leading or trailing 0s added for padding

Related Code
Related code would be the broad category of current Helpers that involve byte arrays, and their usage in code.

I would be working on this.

Closing as we won't do these cairo 0 improvements


Add: checkbox for constituent

Hi @wallace,
I created a checkbox constituent in the sign name component.
Kindly review it, and let me know what you think.

Hi, good work! :) Just a question – Is there a corresponding issue for this PR? It's OK if there isn't.

Hi @paramsiddharth,
Here is a reference of the checkbox, and I don't think it had any issue.
https://github.com/ProgramEquity/amplify/discussions/495#discussioncomment-5469978


Update project README

For Joshua to get used to the project workflow and git workflows.

issue finished all done!


Where we should call the api call for optimum experience while using ko router

I am using this router and it's pretty nice. But when loading the components, few components needs to load the data from the api. So what's the best way of calling them ? I write currrently in the viewmodel itself like
function ViewModel()
{

apiCall();

}

Do we have a special hook/method which router can call everytime after rendering the page. My main concern is UI is blank for sometime. Once we render the page, then calling the api will give a better experience. I can see there is a ctx.queue method. Is that something i should use, because it says resolves before page is rendered. I need something after the page is rendered, to show a busy indicator and call the api. Any examples or guidance ?

A lazy example from one of my applications. There are other ways to achieve this but I have found structuring the routes around data loading simplifies apps. YMMV.
Use nested routing to structure the UI and do data loading, like so:
Router.useRoutes({
    '/users': [
        ctx => api.users().then(x => ctx.users = x),
        'users'
        {
            '/:id': [
                ctx => api.user(ctx.params.id).then(x => ctx.user = x),
                'user'
            ]
        }
    ]
});

The users component will have rendered, and be waiting for the data for component user to load.
The router injects a $router variable in to the binding context that is available in the view.
Inside the users component use something like this to show a loading indicator:

Loading...

<ko-component-router data-bind="visible: !$router.isNavigating()"></ko-component-router>

Here is the async binding, from v3 of the router
ko.bindingHandlers['async'] = {
    init(el, valueAccessor, bindings, viewModel, bindingCtx) {
        ko.tasks.schedule(() => ko.applyBindingsToNode(el, valueAccessor(), bindingCtx))
        return { controlsDescendantBindings: true }
    }
}

Leave this issue open please; it's something I want to be sure to document more.

IMO the best practice is to load data and handle loading via middleware. There is a short-coming in the current router where child routers are detached in a sense, so it is impossible to call their middleware at the same time and this can cause blank states in the UI during navigation.
This is solved in the forthcoming v5, so navigating to a deeply nested route will not transition the page until all the middleware has executed and all the data needed to render is available. This means that the current (old) page will be displayed, and then the next page rendered in one fell swoop with no blank state happening at child routers.
I've made an example that is pretty much straight out of our app here.

I wrote more on the changes in middleware execution here if you're interested.


Plugin API & powerful example plugin (denormalizer)

This introduces Ladda's plugin API. This was the initial plan for Ladda: It should be easy to add functionality through plugins, instead of extending the core, which should stay simple and small at all times.
Ladda's core functionality is also implemented as plugin and can therefore serve as example on how to extend Ladda as well.
It's only difference to other plugins is that it is automatically applied, where other plugins need to be specified as an optional second argument to build as array of plugins.
Plugins typically wrap an api function call and enhance it's functionality. Plugins are applied inside out, where the ladda core functionality is always the innermost wrapper applied. Given a list of plugins [a, b, c], apiFunctions would be wrapped in something equivalent to compose(c, b, a, laddaCore)
A plugin is defined as higher order function of the type LaddaConfig -> ApiFnDetails -> ApiFn, where LaddaConfig is an object of { config, entityConfigs } (config is the __config param of the original ladda configuration passed to build, and entityConfigs a Map EntityType EntityConfig as defined in the original ladda configruation passed to build. ApiFnDetails is an object of { entity, apiFnName, apiFn }, where entity is an EntityConfig, apiFnName the name of the passed function and apiFn the function that is supposed to be wrapped in itself. The apiFn is guaranteed to come with all metadata originally applied to it (fields like operation, byId etc.)
The design of this API was led by two requirements:

It should be powerful and flexible (documented by the fact, that even Ladda's core functionality can be implemented with it
It should limit the burden for plugin developers, especially when it comes to returning something out of the plugin

Ad 1): Looking at Ladda's core shows the power of this approach. In LaddaConfig -> ApiFnDetails the plugin has a chance to look at the configuration across all entities and setup its environments. The core uses this function to set up the entity and query caches.
Ad 2): The function ApiFnDetails -> ApiFn is then called by the builder, which orchestrates the creation of the final api object. This function can deal with api functions one at a time and does not need to bother about anything else. builder is responsible to keep the final interface in a proper shape. This also couples plugins very loosely to the internals of how we wire the final api together.
A powerful denomalizer plugin already uses this API to great effect. It allows to define schemas for entities, so that the plugin can resolve/denormalize entities. A backend API can return only ids, while the frontend can consume fully resolved objects. A common example would be the resolution of user objects. Let's say we have a message, which has an author. Rather then sending the user over the wire inside of a Message entity, we can only send the user's id instead. The plugin will then perform an additional request for the user with this id - ideally already hitting the cache and therefore resolve immediately. It also tries to be intelligent when confronted with lists of entities. Per call, there will be a maximum of one additional call per included entity. E.g, if 5 messages are returned from the server with 2 user ids each, only one requests for all 10 users contained in these messages is made.
The details of this API can still be discussed - it's thoroughly unit tested to also document its configuration options and behavior.

Coverage decreased (-1.08%) to 98.915% when pulling 4c6f772dc391dc2d48b83fdde149f308efb8a58b on plugin-api into fa4d56b871ccacd0651c058129cbb90faf08cdff on master.

Coverage decreased (-1.08%) to 98.915% when pulling 35683bf870ef9d30b227c1b1207b4408bed38151 on plugin-api into fa4d56b871ccacd0651c058129cbb90faf08cdff on master.

Coverage decreased (-0.9%) to 99.13% when pulling 21c8ae3ad6384e6ff19a268a9f446041930250c0 on plugin-api into fa4d56b871ccacd0651c058129cbb90faf08cdff on master.

Coverage decreased (-0.4%) to 99.566% when pulling 7bafe1a5c98b0cf59154d64cd59c51ac2ab450fd on plugin-api into fa4d56b871ccacd0651c058129cbb90faf08cdff on master.

Coverage decreased (-0.4%) to 99.566% when pulling e97ebea6c7078b17a79864a0fa350e10ca6992e1 on plugin-api into fa4d56b871ccacd0651c058129cbb90faf08cdff on master.

Coverage decreased (-0.2%) to 99.783% when pulling 7d46785b8f6f85988e02a26dac9a4a1c0b695b39 on plugin-api into fa4d56b871ccacd0651c058129cbb90faf08cdff on master.

Coverage remained the same at 100.0% when pulling 3b92af929aaa689d72d8581d6c9ca367a3f0e232 on plugin-api into fa4d56b871ccacd0651c058129cbb90faf08cdff on master.

Coverage remained the same at 100.0% when pulling 3de6f65f22fb3670915f7d60b485d598bacf898b on plugin-api into fa4d56b871ccacd0651c058129cbb90faf08cdff on master.

Coverage remained the same at 100.0% when pulling 19d201926fe24a067df104f5ceb1f249478a224a on plugin-api into fa4d56b871ccacd0651c058129cbb90faf08cdff on master.


CLOUDSTACK-9054 use of google-optional as PoC

this is using guave optional as suggested by @miguelaferreira in #1056. I am not convinced it is appropriate for that case (as opposed to throwing an exception) but we are going to use Optionals in someway or another. I familiar with the concept (except for in rust) and want to see if the 1.8 is different/better/worse as well.

@DaanHoogland FYI test results:
nosetests --with-marvin --marvin-config=${marvinCfg} -s -a tags=advanced,required_hardware=true \
component/test_vpc_redundant.py \
component/test_routers_iptables_default_policy.py \
component/test_routers_network_ops.py \
component/test_vpc_router_nics.py \
smoke/test_loadbalance.py \
smoke/test_internal_lb.py \
smoke/test_ssvm.py \
smoke/test_network.py

Result:
Create a redundant VPC with two networks with two VMs in each network ... === TestName: test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | Status : SUCCESS ===
ok
Create a redundant VPC with two networks with two VMs in each network and check default routes ... === TestName: test_02_redundant_VPC_default_routes | Status : SUCCESS ===
ok
Test iptables default INPUT/FORWARD policy on RouterVM ... === TestName: test_02_routervm_iptables_policies | Status : SUCCESS ===
ok
Test iptables default INPUT/FORWARD policies on VPC router ... === TestName: test_01_single_VPC_iptables_policies | Status : SUCCESS ===
ok
Test redundant router internals ... === TestName: test_01_isolate_network_FW_PF_default_routes_egress_true | Status : SUCCESS ===
ok
Test redundant router internals ... === TestName: test_02_isolate_network_FW_PF_default_routes_egress_false | Status : SUCCESS ===
ok
Test redundant router internals ... === TestName: test_01_RVR_Network_FW_PF_SSH_default_routes_egress_true | Status : SUCCESS ===
ok
Test redundant router internals ... === TestName: test_02_RVR_Network_FW_PF_SSH_default_routes_egress_false | Status : SUCCESS ===
ok
Create a VPC with two networks with one VM in each network and test nics after destroy ... === TestName: test_01_VPC_nics_after_destroy | Status : SUCCESS ===
ok
Create a VPC with two networks with one VM in each network and test default routes ... === TestName: test_02_VPC_default_routes | Status : SUCCESS ===
ok
Check the password file in the Router VM ... === TestName: test_isolate_network_password_server | Status : SUCCESS ===
ok
Check that the /etc/dhcphosts.txt doesn't contain duplicate IPs ... === TestName: test_router_dhcphosts | Status : SUCCESS ===
ok
Test to create Load balancing rule with source NAT ... === TestName: test_01_create_lb_rule_src_nat | Status : SUCCESS ===
ok
Test to create Load balancing rule with non source NAT ... === TestName: test_02_create_lb_rule_non_nat | Status : SUCCESS ===
ok
Test for assign & removing load balancing rule ... === TestName: test_assign_and_removal_lb | Status : SUCCESS ===
ok
Test to verify access to loadbalancer haproxy admin stats page ... === TestName: test02_internallb_haproxy_stats_on_all_interfaces | Status : SUCCESS ===
ok
Test create, assign, remove of an Internal LB with roundrobin http traffic to 3 vm's ... === TestName: test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 | Status : SUCCESS ===
ok
Test SSVM Internals ... === TestName: test_03_ssvm_internals | Status : SUCCESS ===
ok
Test CPVM Internals ... === TestName: test_04_cpvm_internals | Status : SUCCESS ===
ok
Test stop SSVM ... === TestName: test_05_stop_ssvm | Status : SUCCESS ===
ok
Test stop CPVM ... === TestName: test_06_stop_cpvm | Status : SUCCESS ===
ok
Test reboot SSVM ... === TestName: test_07_reboot_ssvm | Status : SUCCESS ===
ok
Test reboot CPVM ... === TestName: test_08_reboot_cpvm | Status : SUCCESS ===
ok
Test destroy SSVM ... === TestName: test_09_destroy_ssvm | Status : SUCCESS ===
ok
Test destroy CPVM ... === TestName: test_10_destroy_cpvm | Status : SUCCESS ===
ok
Test Remote Access VPN in VPC ... === TestName: test_vpc_remote_access_vpn | Status : SUCCESS ===
ok
Test VPN in VPC ... === TestName: test_vpc_site2site_vpn | Status : SUCCESS ===
ok
Test for port forwarding on source NAT ... === TestName: test_01_port_fwd_on_src_nat | Status : SUCCESS ===
ok
Test for port forwarding on non source NAT ... === TestName: test_02_port_fwd_on_non_src_nat | Status : SUCCESS ===
ok
Test for reboot router ... === TestName: test_reboot_router | Status : SUCCESS ===
ok
Test for Router rules for network rules on acquired public IP ... === TestName: test_network_rules_acquired_public_ip_1_static_nat_rule | Status : SUCCESS ===
ok
Test for Router rules for network rules on acquired public IP ... === TestName: test_network_rules_acquired_public_ip_2_nat_rule | Status : SUCCESS ===
ok
Test for Router rules for network rules on acquired public IP ... === TestName: test_network_rules_acquired_public_ip_3_Load_Balancer_Rule | Status : SUCCESS ===
ok

----------------------------------------------------------------------
Ran 33 tests in 14614.344s

OK

And:
nosetests --with-marvin --marvin-config=${marvinCfg} -s -a tags=advanced,required_hardware=false \
smoke/test_routers.py \
smoke/test_network_acl.py \
smoke/test_privategw_acl.py \
smoke/test_reset_vm_on_reboot.py \
smoke/test_vm_life_cycle.py \
smoke/test_vpc_vpn.py \
smoke/test_service_offerings.py \
component/test_vpc_offerings.py \
component/test_vpc_routers.py

Result:
Test router internal advanced zone ... === TestName: test_02_router_internal_adv | Status : SUCCESS ===
ok
Test restart network ... === TestName: test_03_restart_network_cleanup | Status : SUCCESS ===
ok
Test router basic setup ... === TestName: test_05_router_basic | Status : SUCCESS ===
ok
Test router advanced setup ... === TestName: test_06_router_advanced | Status : SUCCESS ===
ok
Test stop router ... === TestName: test_07_stop_router | Status : SUCCESS ===
ok
Test start router ... === TestName: test_08_start_router | Status : SUCCESS ===
ok
Test reboot router ... === TestName: test_09_reboot_router | Status : SUCCESS ===
ok
test_privategw_acl (integration.smoke.test_privategw_acl.TestPrivateGwACL) ... === TestName: test_privategw_acl | Status : SUCCESS ===
ok
Test reset virtual machine on reboot ... === TestName: test_01_reset_vm_on_reboot | Status : SUCCESS ===
ok
Test advanced zone virtual router ... === TestName: test_advZoneVirtualRouter | Status : SUCCESS ===
ok
Test Deploy Virtual Machine ... === TestName: test_deploy_vm | Status : SUCCESS ===
ok
Test Multiple Deploy Virtual Machine ... === TestName: test_deploy_vm_multiple | Status : SUCCESS ===
ok
Test Stop Virtual Machine ... === TestName: test_01_stop_vm | Status : SUCCESS ===
ok
Test Start Virtual Machine ... === TestName: test_02_start_vm | Status : SUCCESS ===
ok
Test Reboot Virtual Machine ... === TestName: test_03_reboot_vm | Status : SUCCESS ===
ok
Test destroy Virtual Machine ... === TestName: test_06_destroy_vm | Status : SUCCESS ===
ok
Test recover Virtual Machine ... === TestName: test_07_restore_vm | Status : SUCCESS ===
ok
Test migrate VM ... === TestName: test_08_migrate_vm | Status : SUCCESS ===
ok
Test destroy(expunge) Virtual Machine ... === TestName: test_09_expunge_vm | Status : SUCCESS ===
ok
Test to create service offering ... === TestName: test_01_create_service_offering | Status : SUCCESS ===
ok
Test to update existing service offering ... === TestName: test_02_edit_service_offering | Status : SUCCESS ===
ok
Test to delete service offering ... === TestName: test_03_delete_service_offering | Status : SUCCESS ===
ok
Test for delete account ... === TestName: test_delete_account | Status : SUCCESS ===
ok
Test for Associate/Disassociate public IP address for admin account ... === TestName: test_public_ip_admin_account | Status : SUCCESS ===
ok
Test for Associate/Disassociate public IP address for user account ... === TestName: test_public_ip_user_account | Status : SUCCESS ===
ok
Test for release public IP address ... === TestName: test_releaseIP | Status : SUCCESS ===
ok
Test create VPC offering ... === TestName: test_01_create_vpc_offering | Status : SUCCESS ===
ok
Test VPC offering without load balancing service ... === TestName: test_03_vpc_off_without_lb | Status : SUCCESS ===
ok
Test VPC offering without static NAT service ... === TestName: test_04_vpc_off_without_static_nat | Status : SUCCESS ===
ok
Test VPC offering without port forwarding service ... === TestName: test_05_vpc_off_without_pf | Status : SUCCESS ===
ok
Test VPC offering with invalid services ... === TestName: test_06_vpc_off_invalid_services | Status : SUCCESS ===
ok
Test update VPC offering ... === TestName: test_07_update_vpc_off | Status : SUCCESS ===
ok
Test list VPC offering ... === TestName: test_08_list_vpc_off | Status : SUCCESS ===
ok
test_09_create_redundant_vpc_offering (integration.component.test_vpc_offerings.TestVPCOffering) ... === TestName: test_09_create_redundant_vpc_offering | Status : SUCCESS ===
ok
Test start/stop of router after addition of one guest network ... === TestName: test_01_start_stop_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test reboot of router after addition of one guest network ... === TestName: test_02_reboot_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test to change service offering of router after addition of one guest network ... === TestName: test_04_chg_srv_off_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test destroy of router after addition of one guest network ... === TestName: test_05_destroy_router_after_addition_of_one_guest_network | Status : SUCCESS ===
ok
Test to stop and start router after creation of VPC ... === TestName: test_01_stop_start_router_after_creating_vpc | Status : SUCCESS ===
ok
Test to reboot the router after creating a VPC ... === TestName: test_02_reboot_router_after_creating_vpc | Status : SUCCESS ===
ok
Tests to change service offering of the Router after ... === TestName: test_04_change_service_offerring_vpc | Status : SUCCESS ===
ok
Test to destroy the router after creating a VPC ... === TestName: test_05_destroy_router_after_creating_vpc | Status : SUCCESS ===
ok

----------------------------------------------------------------------
Ran 42 tests in 8118.591s

OK

These test may not cover your change, all they do is show you didn't break them. Someone else needs to review the code.

tnx @remibergsma . It can be merged but more important is for it to be a coding policy so I'll link it on dev@
@miguelaferreira Or should we consider going to the java 1.8 implementation?

I would rather use Java 1.8.
We are already migrating to Java 8, right?

@rafaelweingartner we still allow for 1.7 so no 1.8 only features for now

pinging possibly other interested parties @jburwell @wido @jlk @bhaisaab
I think we want to use the java optionals instead but interested in opinions on this to maybe refactor the whole shabang at some point.

@DaanHoogland I lost track of the mailing list thread until this PR.  In summary, I am -1 on the use Optional based on past experiences.  Please see my response on the dev@ for a more detailed explanation.

discussions to dev@ as indicated by @jburwell . this PR losts its purpose.


Load queryParams also when using the enable function

closes #102

@mib200 @NorthBei
In a later PR we could pass the given config to the constructor of VueGtmPlugin. Then we don't need the global pluginConfig object anymore.
I'm also a bit afraid of each release, because we don't have any tests 🙁
I will release that under 3.1.1 for now 🤞


problem with mesh with negative coords

Hi!
First of all, thank you for this great library.
I have strange results with meshes with negative coordinates. I have checked that the meshes are clean (watertight, no self-intersection).
The arrangement computation looks good, but there is a problem with the inside/outside tests. To test my supposition, I have offset the vertices by a "golden" offset to constrain the coordinates to be positive and it works fine, but I don't find any rule to set this offset robustly.
any idea?
meshes.zip

Dear Jeremie,
Thank you for your interest in our work and for pointing out this issue.
I need some time to investigate and possibly fix the code (I'm currently following other projects).

Dear Jeremie,
We fixed a bug in our code, and now we are able to produce the correct results with your meshes (see the attachment).
This is a temporary fix, but we are working to incorporate a new version of the indirect predicates and solve the issue permanently.
Thanks for your patience.
Best regards,
Gianmarco
res.zip


Declare some required dependencies

ast-types is required (https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/efea6f924c2e57fa8f8169231e802466bb5fe9ce/src/index.ts#L6), but isn't declared as a dependency.
When using e.g. pnpm, it doesn't get hoisted into node_modules from being recast's transitive dependency:
$ pnpm why ast-types
Legend: production dependency, optional only, dev only

<EMAIL_ADDRESS>/Users/akx/build/prettier-plugin-tailwindcss

devDependencies:
recast 0.20.5
└── ast-types 0.14.2

so build fails:
> node build.mjs --minify

✘ [ERROR] Could not resolve "ast-types"

    src/index.ts:6:26:
      6 │ import * as astTypes from 'ast-types'

The same stands for @babel/types with a slightly different error (since it's not esbuild but dts complaining).
With these added, things work again:
$ git clean -fdx . -e .idea && pnpm i && pnpm build
[...]
Progress: resolved 607, reused 548, downloaded 0, added 548, done
[...]
DTS ⚡ Build success in 516ms
$

Thanks!


Option to Limit Download Speed

This requires a download manager and another download stream setup. can't implement this at the moment, but it's something valuable for the future.

See Issue #46


Playlist doesn't load

I'm trying to add the following playlist but it just doesn't work in the iptvnator app while it still works in all other apps like VLC etc.
https://snehtv.tk/snehiptv.m3u8
Also, there's no process to stop the loading of a playlist

Testing in Linux; I could not get that URL to load in VLC nor IPTVnator. It did load in mpv and Hypnotix (which is based upon mpv).

I also cannot load it in iptvnator on Linux Mint via URL.
After downloading the playlist I can load it in iptvnator.

Looking at the response headers for the above url, it appears to be a cross origin (CORS) restriction:
$ wget -q -S "https://snehtv.tk/snehiptv.m3u8" -O /dev/null
  HTTP/1.1 302 Found
  x-ratelimit-limit: 50
  x-ratelimit-remaining: 49
  x-ratelimit-reset: 49
  connection: close
  content-type: text/html; charset=utf-8
  x-powered-by: Short.io link shortener
  cache-control: no-cache, no-store, max-age=0, must-revalidate
  pragma: no-cache
  location: https://techiesneh.in1.bitmana.io/snehapi/snehiptv.m3u8
  content-length: 0
  Date: Thu, 06 Jan 2022 00:08:09 GMT
  HTTP/1.1 200 OK
  Server: openresty
  Date: Thu, 06 Jan 2022 00:08:12 GMT
  Content-Type: application/vnd.apple.mpegurl
  Content-Length: 427361
  Connection: keep-alive
  Content-Security-Policy: frame-ancestors 'self';frame-src 'self';
  Cross-Origin-Embedder-Policy: unsafe-none
  Cross-Origin-Opener-Policy: same-origin-allow-popups
  Cross-Origin-Resource-Policy: same-origin
  Permissions-Policy: geolocation=(self), payment=(self)
  Referrer-Policy: strict-origin-when-cross-origin
  X-Content-Type-Options: nosniff
  X-Frame-Options: SAMEORIGIN
  X-Permitted-Cross-Domain-Policies: none
  X-XSS-Protection: 1; mode=block;
  Last-Modified: Sat, 01 Jan 2022 18:08:04 GMT
  ETag: "68561-5d4892b342900"
  Accept-Ranges: bytes
  X-Resolver-IP: <IP_ADDRESS>
  Strict-Transport-Security: max-age=15811200

As electron apps run in a browser, they're bound by the browsers restrictions.
I performed a quick test using:
<html>
  <head>
        <script>
          let r = new XMLHttpRequest();
          r.open('get', 'https://snehtv.tk/snehiptv.m3u8', false);
          r.send();
        </script>
  </head>
</html>

When loaded (from a web server) the above request resulted in a CORS error (as can be observed in the network tab)

Thanks for the report and investigation guys.
CORS shouldn't be a problem, since the request to load the playlist is called from the electron main process, i.e. not from the client, but from the node.js world.
According to the logs, the problem is in the https certificate of the domain.
(node:58348) UnhandledPromiseRejectionWarning: Error: certificate has expired
    at TLSSocket.onConnectSecure (_tls_wrap.js:1501:34)
    at TLSSocket.emit (events.js:315:20)
    at TLSSocket._finishInit (_tls_wrap.js:936:8)
    at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:710:12)

But in any case the error handling should be improved (display user-friendly error message and get rid of endless loading spinner).


Clean up the change-executors example in the README

Without importing symbols, there's nothing else in the Groovy script's binding, so the example would otherwise fail

:bee:

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests

:bee:


Switch to JSDoc

I want to start moving away from the current annotated code documentation to JSDoc, which is better suited for IDE's and more flexible for documentation generation (for which I'll have to find another alternative, sadly, since I love docco).

These changes have been pushed to the develop branch so will be included in the v1.2.0 release.


user_key and user_pseudo_id

I think it's useful to add user_key in fct_ga4__sessions alongside with user_pseudo_id
E.g. I want to join dim_ga4__users to have some info about the user on the session level.
What do you think about that? I can make a PR.

@ivan-toriya can you confirm that you're looking at the main branch? We recently merged #99 which deprecated the concept of a user_key. Now fct_ga4__sessions can be joined to dim_ga4__user_pseudo_ids and then there's a mapping table, stg_ga4__user_id_mapping,  between user_id and user_pseudo_id

My bad, I was looking into the latest version in dbt package hub.
When are you planning next release?

No worries! No immediate plans for a release, but you can always pull the latest code into your dbt project by following the instructions in the readme.


wiki table of contents improvements

[x] should not add nofollow to self links in nav.
[x] too tall on desktop for some large pages. Flow into multiple columns.
[x] nesting is not apparent. h2,h3,h4 links all share the same indent and size.

See https://www.pygame.org/wiki/GettingStarted
This case isn't handled well. It only shows the h2 link.
- h2
  - h3
  - h3
  - ...


are u sure the anti cheat systems wont ban me?

i need and answer before installing plis :,D

If there is an anti-cheat I really don't recommend installing this. It will most definitely flag it and in the worst case, possibly ban you.


api: Implement GET /messages/matches_narrow endpoint

This implements GET /messages/matches_narrow api endpoint.

I think that the format for request here is different from get_messages, apart from the narrow key. Did I misunderstand you ?

@timabbott I've updated this PR.

@timabbott Can you have a look ?

Yeah, this is great, merged!


build failed

/kind bug
What happened:
$ GOPATH=/pkgs/go make install
go build -o /pkgs/go/bin/ks -ldflags="-X main.version=dev-2018-12-17T13:35:57+0800 -X main.apimachineryVersion=kubernetes-1.10.4 -X generator.revision=7c76c9a36caccb5261c05c5152919b6ae1badcc0  "  ./cmd/ks
# github.com/ksonnet/ksonnet/vendor/github.com/ksonnet/ksonnet-lib/ksonnet-gen/printer
vendor/github.com/ksonnet/ksonnet-lib/ksonnet-gen/printer/printer.go:185:8: undefined: strings.Builder
vendor/github.com/ksonnet/ksonnet-lib/ksonnet-gen/printer/printer.go:225:8: undefined: strings.Builder
vendor/github.com/ksonnet/ksonnet-lib/ksonnet-gen/printer/printer.go:748:11: undefined: strings.Builder
$  go version
go version go1.9.4 linux/amd64

What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
follow doc
Anything else we need to know?:
Environment:

Kubernetes version (use kubectl version):Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.5", GitCommit:"32ac1c9073b132b8ba18aa830f46b77dcceb0723", GitTreeState:"clean", BuildDate:"2018-06-21T11:46:00Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.5", GitCommit:"32ac1c9073b132b8ba18aa830f46b77dcceb0723", GitTreeState:"clean", BuildDate:"2018-06-21T11:34:22Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

Please retry with a recent go version (1.11), works for me


[CI] Error in Publish Image workflow

After recent upgrade to Go 1.17 we started seeing this error in our publish workflow:
Error: buildx failed with: error: failed to solve: golang:1.17-alpine3.12: docker.io/library/golang:1.17-alpine3.12: not found

@rolsonquadras could you take a look at this, please?


Improvements to Server-to-Delivery Service assignments

What does this PR (Pull Request) do?

[x] This PR fixes #3756

Reworked the POST method handler of the /servers/{{ID}}/deliveryservices endpoint to both
a) respect CDN limitations in assignments
b) respect tenancy permissions
Also updated Traffic Portal so that servers which are unavailable for DS assignment cloning do not appear in the selection menu.
Draft status pending testing.
Which Traffic Control components are affected by this PR?

Traffic Ops
Traffic Portal

What is the best way to verify this PR?
Build and run Traffic Ops and Traffic Portal, attempt to assign a server to one or more Delivery Services in a different CDN, and/or to one or more Delivery Services to which access by your tenant is forbidden. Traffic Portal should not present you with the ability to do so, and Traffic Ops should reject your attempt should you bypass the UI.
If this is a bug fix, what versions of Traffic Control are affected?

3.0.1
master (@ 5da4a5b43605d499c474a38dfdc33d20a88a3913)

The following criteria are ALL met by this PR

[x] This PR includes tests OR I have explained why tests are unnecessary
[x] This PR includes documentation OR I have explained why documentation is unnecessary
[x] This PR includes an update to CHANGELOG.md OR such an update is not necessary
[x] This PR includes any and all required license headers
[x] This PR ensures that database migration sequence is correct OR this PR does not include a database migration
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4049/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4051/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4053/
Test PASSed.

retest this please

@ocket8888 - do you plan to write an api test that attempts to clone ds assignments from server in cdn1 to a server in cdn2 and watch it fail or something?

Yeah, probably. I'm still new to the API testing framework (and I struggle to resist the temptation to 'improve' them), so that may be difficult for me to figure out.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4058/
Test PASSed.

Yeah, probably. I'm still new to the API testing framework (and I struggle to resist the temptation to 'improve' them), so that may be difficult for me to figure out.

"improving them" as in overhaul would probably require some consensus from mailing list. small improvement, probably fine i'm guessing. in the meantime, we have to work with the framework that is there.

Yeah, that's why I put 'improve' in quotes. I'm still trying to get data to test against before I'm ready to write tests/client code. Because otherwise they could need to all change drastically.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4115/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4116/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4117/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4118/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4119/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4120/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4121/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4122/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4123/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4124/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4125/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4126/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4127/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4128/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4129/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4130/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4131/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4132/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4133/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4134/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4135/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4162/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4579/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4748/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4758/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4778/

I think I'd like to leave those others for a different PR. They don't look to hard themselves, but the handlers could use some refactoring - and possibly just deprecation entirely.

thats fine as long as we dont close the issue then this looks good to me 👍

Well, this does still fix the reported problem with "cloning DS assignments" in Traffic Portal, so instead I've opened #4116 to track the remaining problematic endpoints.

When trying to assign a ds to a server that is in a different cdn, the message is:
Delivery Service 42 is not in the same CDN as server 25 (server is in 1, DS is in 2)!
What's the level of effort to improve that message to something like:
Delivery Service 42 (xml-id) is not in the same CDN as server 25 (hostname) (server is in cdn-name-1, DS is in cdn-name-2)!

I don't think it should be too hard. I can give that a go.

curl -k -v -H "Accept: application/json" --cookie cookie.txt -X POST --data '[10840]' https://localhost:8443/api/1.4/servers/3408/deliveryservices?replace=true
where 10840 exists but not in my tenancy returns:
{"alerts":[{"text":"Either no Delivery Service ids given, or at least one id doesn't exist!","level":"error"}]}
doesn't seem right? Do you want to return a 403 instead?

I wrote that error message with the intention of mimicking the /deliveryservices endpoint's behavior of not disclosing the existence of Delivery Services outside of the user's tenancy. It will log a message about the unauthorized access. I've since learned that this isn't strict policy and should be avoided when it would negatively impact UX, but since in this case people are only passing in identifying information that is created for them - and not modifiable - an incorrect value can only be a mistake.
I can add "... or outside your tenancy" to the error message, though, if you think it's appropriate. I don't really have a stance on that.

sorry, i heavily edited my comment above. not sure if you saw what i added.

curl -k -v -H "Accept: application/json" --cookie cookie.txt -X POST --data '[42]' https://localhost:8443/api/1.4/servers/22/deliveryservices?replace=true
where 42 exists but not in my tenancy returns:
404 {"alerts":[{"text":"Either no Delivery Service ids given, or at least one id doesn't exist!","level":"error"}]}
doesn't seem right? Do you want to return a 403 instead?
or maybe the message could simply be changed to "Either no Delivery Service ids given, or at least one id doesn't exist or is outside of your tenancy"
Also, do you think a 404 is the correct response code when tenancy fails?
Also, (sorry i keep adding to this), i think this is valid: POST --data '[]' if you want to wipe them all out so Either no Delivery Service ids given would not make sense, right?

sorry, i added to that comment

"Also, (sorry i keep adding to this), i think this is valid: POST --data '[]' if you want to wipe them all out so Either no Delivery Service ids given would not make sense, right?"

If I understand what you're saying, you mean submitting an array of no DS IDs with the replace=true parameter? Yeah, that looks accurate, based on the code. Naturally, the whole POST method of this endpoint is undocumented, so I didn't know about that. I'll try to refactor a bit while I'm allowing that.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4786/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4788/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4789/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/4797/

`curl -k -v -H "Accept: application/json" --cookie cookie.txt -X POST --data '[42]' https://localhost:8443/api/1.4/servers/3408/deliveryservices?replace=true
< HTTP/2 404
{"alerts":[{"text":"Either no Delivery Service ids given, or at least one id doesn't exist!","level":"error"}]}`
42 exists (but not in my tenancy). Just checking that you want to return a 404 for a tenancy violation. We usually return a 403. I"m guessing it did not behave this way (404) before or maybe it didn't even check tenancy at all...

It didn't check tenancy at all before this, that was part of the change. I'm intentionally mimicking the behavior of /deliveryservices here, since it doesn't hide anything useful from the user that should be fine.


Investigate different (de-)serialization

Since we're doing quite a lot of serialization and de-serialization in the API, it might be worth to investigate a more efficient way of doing that. https://github.com/ProjectMapK/jackson-module-kogera might be used as a more efficient drop-in replacement for the jackson kotlin module, once it is matured enough.

We're now using kotlinx serialization in 2.0


Syntax of HELLO is different from Redis

Search before asking

[X] I had searched in the issues and found no similar issues.

Version
2.3.0
Minimal reproduce step

Set requirepass mypass
Send command: HELLO 2 AUTH default mypass after connected.

What did you expect to see?
mypass should be accepted.
What did you see instead?
invalid password error.
Anything Else?
Hi,
According to https://redis.io/commands/hello, the syntax of HELLO should be
HELLO [protover [AUTH username password] [SETNAME clientname]]

and the default username should be default.
However, kvrocks' syntax seems to lack the username part:
https://github.com/apache/incubator-kvrocks/blob/6889b5916ab560ecd5eed79bb9786e36342f0e17/src/commands/cmd_server.cc#L660
Not sure if this is intended? But I think it will be great if matching redis' syntax.
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

@mapleFU  could you take a look at this?

Hi @rueian . When I implement "hello", kvrocks didn't support auth like that.
https://github.com/apache/incubator-kvrocks/pull/881#issuecomment-1249985088

Hi @rueian, it seems meaningless in kvrocks to give a username, since the AUTH command in kvrocks is used to authorize accessibility to a corresponding namespace.

Hi @rueian, it seems meaningless in kvrocks to give a username, since the AUTH command in kvrocks is used to authorize accessibility to a corresponding namespace.

Hi @PragmaTwice, I understand.
However, from a redis client implementation perspective, this difference in syntax means that a client implementation may need to treat Kvrocks differently to work with it. I think this may put some barriers for a client to adapt to Kvrocks.

@rueian Thanks for you explaination. It make sense. I am not averse to accept an AUTH default <pass> form. cc @git-hulk

I also preferred to allow passing the username, even though it's meaningless to Kvrocks.

@rueian IIRC the goredis client handle the AUTH command specially for kvrocks. If you're implementing a redis client and hope it can be compatible with kvrocks, feel free to start a discussion to add (compatible) integration tests. As our gocases are written on the top of goredis.

Hi @tisonkun,
Yes, I am also making a go redis client, rueidis, and got a report that it doesn't work with kvrocks because of the syntax difference with redis: https://github.com/rueian/rueidis/issues/204
But I am not sure if goredis do special work for kvrocks or not, since its latest version doesn't work with kvrocks as well.
For example:
package main

import (
	"context"
	"fmt"
	"github.com/redis/go-redis/v9"
)

func main() {
	client := redis.NewClient(&redis.Options{Addr: "<IP_ADDRESS>:6666", Password: "mypass"})
	fmt.Println(client.Ping(context.Background()))
}

goredis actually send hello 3 auth default mypass to kvrocs. And then it returned ping: Syntax error in HELLO option auth error.

@rueian Thanks for your repro! That's a good new test case we can add to the integration test suite for verifying this issue is resolved :D


Enable M_PI define on MSVC and fix size_t to unsigned int warning

Nodesoup is not building on MSVC due to missing define

Hi, thanks for your pull request. I think #6 should solve your issue with MSVC building, and I fixed the unsigned int warning.


Port in http-2-next

This has http-2-next as is.
WIP to change RBS, documentation, namespaces, etc, to use HTTP2 instead of HTTP2Next.

Closing this, this is just for reviewing diff - it should not be merged into master. Master will need to be renamed to version-0 or tagged with the latest version.

why though?

It was not the only rubocop rule change prior to the fork. Why i did it though: supporting single and double quotes makes using strings needlessly ambiguous and unreadable. It's a part of the default rubocop config that the standard gem didn't inherit, for example.
I think this PR here is only for tracking purposes, as the goal is to use this branch as the default one. From that perspective, it's better to keep conservative to the imported changes (an attempt to reformat things last week caused a regression in tests) rather than aligning with the master branch. I'm assuming, of course, there's no other benefit in retrofitting single quotes (do correct me if there is one).

My understanding is that it's a best practice and also slightly faster to use literals. It would allow for the diff to be readable, yes, and I highly recommend single quotes here. There should not be any regressions and I'm pretty sure I had all the tests passing with single quotes. It is likely an issue in the test with frozen string literal.

I pushed the change with single quoted strings. The tests all pass. Can you tell me what regression to you saw?
While we don't intend to merge the PR, I definitely think we should have string literals. We can keep many of the stylings of your preference but the rubocop defaults are fairly sane.

My understanding is that it's a best practice and also slightly faster to use literals.

Double-quote strings are also literals. there is no performance difference between them, they're internally the same.
It's not a best practice, it's just rubocop default config. The inconsistency of the style guide created by the rubocop creator is well documented, and one of the outcomes is a very popular gem which is essentially rubocop with different defaults.

There should not be any regressions and I'm pretty sure I had all the tests passing with single quotes.

I was talking about your first attempt porting http-2-next here last week, which I found a regression for when working on porting gitlab CI to github actions (it's in our slack conversation).
@mullermp  Bear in mind that we agreed here on doing a hard-merge, and I mentioned last week to you on slack as well that I'd be open to backtrack on some of the styling changes I committed after the fork (although I'd rather do it after there's a release), but I'd rather keep this one about using double-quoted strings, for the stated reasons, to which there was no objection. I appreciate @igrigorik hasn't joined the chat yet, but I was under the impression you were keeping him in the loop on our conversation.

Thanks everyone. I'll update HEAD the be main and close this PR. We should move master to be version-0 as an archive.


Add a creative Footer Scetion

Description
It's not a problem but to have a good footer makes a website look cool and easy for a user to get the details about the social media handles and many more important part from the bottom also.
I have a quite good solution for your website to add a attractive and informative footer section which will consist of all the important information about the website and all the official social media handles.
So Please assign me this issue under GSSOC'23 so that I can start working on it.
Screenshots
I can create a footer like this

Additional information
No response

@deepeshgupta3257 No Need of it


devicelab tests want ANDROID_SDK_ROOT but it is deprecated

If you run the devicelab tests it will complain that ANDROID_SDK_ROOT is not set.  But if you set it, you'll no longer be able to compile the flutter engine because of the following error:
* What went wrong:
Could not determine the dependencies of task ':app:lintDebug'.
> Several environment variables and/or system properties contain different paths to the SDK.
  Please correct and use only one way to inject the SDK location.

  ANDROID_HOME: /Users/aaclarke/dev/engine/src/third_party/android_tools/sdk
  ANDROID_SDK_ROOT: /Users/aaclarke/Library/Android/sdk

  It is recommended to use ANDROID_HOME as other methods are deprecated

Conclusion from triage meeting discussion:

to fix this, search for any error message in flutter/flutter that mentions "ANDROID_SDK_ROOT" and change it to "ANDROID_HOME".
because this includes at least one change in flutter_tools, I'm assigning this to team-tool.


Add another clothing item feature

Current CNN model is trained against the fashion MNIST dataset which holds 10 clothing items.
Expanding CNN model training with another clothing item (to be determined which) can be cool :)

Decided to move forward with only fashion MNIST clothing items (10 in total)

Decided to move forward with only fashion MNIST clothing items (10 in total)


How to figure out the version of libsnappyjava.so files in snappy-java-VERSION.jar

what is the relationship between snappy-java-VERSION.jar and  snappy.so.VERSION in https://github.com/google/snappy?
for example, snappy-jave-<IP_ADDRESS>.jar has  a libsnappyjava.so file, when I build from https://github.com/google/snappy I got libsnappy.so.1.1.8, can I replace libsnappyjava.so with libsnappy.so.1.1.8?

libsnappyjava.so file is a bit different from libsnappy.so because of some extensions. To see which snappy version is used, see this file https://github.com/xerial/snappy-java/blob/master/src/main/resources/org/xerial/snappy/VERSION

how can I replace libsnappyjava.so with newly build libsnappy.so when I change the source code in snappy
must I add the "BITSHUFFLE" ?
If it must be added , how can I add it?


Add unit test to better qualify ScottPlot

I see discussions here. Since ScottPlot has already released 3.1.4, I guess it is not too early/late to discuss about adding unit test:)  Here is my proposal for the first step:

[x]  Choose a suitable unit test framework
[x]  Start adding minimal test for console based APIs
[x] Watch and see how it is going and add more tests while involving the existing APIs

@swharden  How do you think about this topic?

Hi @morningkyle,
YES! I will classify ScottPlot v3 and its API as "stable" and start adding some unit tests.
You've probably noticed at QuickPlot, in the discussion on QuickPlot#1, and from recent comments in #86 that I have been ready to significantly rearrange (or even rewrite) the entire code base to maximize portability (.NET Standard), improve/simplify the class structure, support multiple-plot figures, and perhaps even use a different rendering engine (with hardware acceleration). These looming changes have made me hesitant to write meticulous tests for ScottPlot, as its internal structure seemed like a moving target and its content may even be fully rewritten shortly. I think the decision to preserve v3 is a good one, as it allows unit tests to be written immediately and gives comfort to its users that its API will no longer change. I will confine all my large-scale changes to an experimental v4 branch which may take months before it's ready for use.
I'll leave this ticket open until I have some tests up and running with Azure Pipelines

I set-up unit testing with the Visual Studio Testing platform
I configured Azure Pipelines to automatically run these tests
I converted all the cookbook figures into individual unit tests
Additional unit tests can be added to UnitTest1.cs

Test Run Successful.
Total tests: 59
     Passed: 59
 Total time: 12.2865 Seconds

@morningkyle, thanks for encouraging me to set this up! Feel free to add special tests from here if you think they would be helpful.


ollama tools

[!IMPORTANT]
Adds support for Ollama provider with new OLLAMA_TOOLS mode, updating response handling, retry logic, and dependencies.

Behavior:

Adds support for OLLAMA_TOOLS mode in Mode enum in mode.py.
Updates from_response() in function_calls.py to handle OLLAMA_TOOLS mode using parse_ollama_tools().
Adds parse_ollama_tools() in function_calls.py to parse responses for OLLAMA_TOOLS mode.
Modifies handle_response_model() in process_response.py to set format for OLLAMA_TOOLS mode.
Updates reask_messages() in retry.py to handle OLLAMA_TOOLS mode.

Imports:

Adds conditional import for from_ollama in __init__.py if ollama is available.
Adds OLLAMA to Provider enum in utils.py.

Dependencies:

Adds ollama-python as an optional dependency in pyproject.toml.

This description was created by  for 15b987e472fdc330c35b155ac499c1882b7cf67e. It will automatically update as commits are pushed.

Example
from ollama import Client
from pydantic import BaseModel

import instructor

class UserInfo(BaseModel):
    name: str
    age: int

client = instructor.from_ollama(Client())

user_info = client.chat.completions.create(
    model="llama3.2",
    response_model=UserInfo,
    messages=[{"role": "user", "content": "John Doe is 30 years old."}],
)

print(user_info)

Ollama hasn't released an official version for their application or ollama-python yet, so you will need to run ollama locally from build.
You can run locally by following their setup guide - https://github.com/ollama/ollama/blob/main/docs/development.md


Introduce Login demo

Introduce the login demo.
Component lifecycle:

[x] Interaction design requirements
[x] Visuals
[x] First checkpoint complete and approved
[ ] CSS
[ ] React
[ ] Second checkpoint complete and approved

Contacts:

IxD
Visual @kybaker
CSS @mattnolting

https://drive.google.com/open?id=1skXkOVsOD9mCvpNS8HfocLi7uwe-OzyO

This login design combines the current PatternFly login design thinking while utilizing the new design system defined for Next. We increased the box size and left aligned to address an issue with the current login where the vector logotypes do not scale down well when the name is longer. This new layout also follows the golden ratio.
Login Design PDF

@kybaker @mceledonia Is this design still in progress? I have questions about this but don't want to hinder progress if it's still a WIP.

@matthewcarleton Now is a good time to ask questions. Michael and I did not want to create mockups for the responsive states until we talked to CSS.

@mceledonia After meeting with @matthewcarleton the next step for this design is to incorporate the variations identified in the current login pattern. We also need to design the responsive states.

Updated design which includes Red Hat logo
Working File
PDF

These are looking great @mceledonia. I have some questions but it can wait until you finish up.

@mceledonia and I talked these through. Once he is ready we can get these reviewed by the larger group.

Updated my last comment above with the latest versions

@mceledonia @kybaker These look great. Just one question. I see you are using input field styles with an underscore rather than a box. Is this special styling for the login screen, only, or will this be an alternate text box style available throughout?  Also, how will validation errors be shown? Same as the current design?

@kybaker this issue requires an update of the spacing in the mockups to match box spacing before @mattnolting will take it to build the demo

This issue was recently filed against PF-3 https://github.com/patternfly/patternfly-design/issues/671 Should consider how validation errors will be displayed and how that affects spacing while doing this implementation.

Any reason why we stick with "Log in" while the more common phrasing these days is "Sign in"?
"Log in" feels a bit dated and more technical than needed.

@stacymcauliffe any insight re: @thomasmaas feedback about wording?

I'd support a switch to Sign in, although the industry is a bit split on which is better. I think the big concern is the potential confusion between "Sign In" and "Sign Up" which could be easily avoided with different copy around the sign up experience, like "Create an account" instead of "Sign up" for instance.
Google, Amazon, and Microsoft are all using Sign in, whereas services like Facebook and Instagram use Log In.
Another reason I prefer Sign In is the "Log in" v "Login" issue, where "Login" is used as a noun and "Log in" is used for the action of actually logging in, which can become kind of a pain to keep straight.

@mceledonia can we update the mock-ups to say sign-in vs log in?

Closed by #665


How to enable scrollback when using tmux in ssh?

Windows build number: Microsoft Windows [Version 10.0.18362.778]
Windows Terminal version (if applicable): Version: 1.1.2021.0

When running tmux in an ssh session (connected to a Centos 7 machine) tmux works ok except that scrollback does not work.
Is there a way to enable scrollback when using tmux in Terminal?
(I think #381 may be relevant but I don't understand it).

Does tmux support using the scrollback in any terminal emulator? I was under the impression that it always maintained it's own internal scrollback, and didn't use the terminal emulator's, since there's no real way that you can use the terminal scrollback for multiple panes in a sensible way

This might be related to the issue where scrolling regions that take up the entire screen don't push lines off the top properly. I can't recall which that is at the moment.

@DavidA2014

When running tmux in an ssh session (connected to a Centos 7 machine) tmux works ok except that scrollback does not work.

Actually, you know what? I think I know what this is. tmux supports mouse scrolling using VT mouse mode.
David, are you using the version of ssh that comes with windows? Can you share the output of ssh -V?

@DHowett
>ssh -V
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5

That will do it! The version of SSH that comes with Windows doesn't support sending your mouse input to the other end of the wire (so tmux never knows you're trying to scroll.)
If you give a try to the newer version, 8.2+, from their releases page, does it work better?

@DHowett Thanks, but did you mean 8.2+? I can't see anything later than 8.1.

8.1 should be sufficient. Sorry about that, I forgot what version they were on :)

Thanks. I'm also a bit worried about installing a custom version, now that Windows comes with OpenSSH. I've tried the PowerShell installation commands for OpenSSH in the past and they've not worked for me. Any advice? (Don't worry if you haven't).

That's a fair concern. I'm not sure how best to install it or to make sure that it's working properly across your system.
If you want to give it a quick test just to verify before jumping in, you can just run ssh.exe right out of the zip file (or, well, extract it somewhere first :smile:).

https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH has always worked for me every release (minus firewall rules, which only need to be put in once.)

@WSLUser Thanks for your answer. We used the instructions that you linked to and successfully installed OpenSSH_for_Windows_8.1p1.
Just for the record, the default version of ssh provided by Windows is at:
C:\Windows\System32\OpenSSH\ssh.exe
The version installed by the instructions from https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH is at:
"C:\Program Files\OpenSSH\ssh.exe

It seems that even with OpenSSH_for_Windows_8.1p1, scrollback is not working properly with tmux in Terminal.

How are you attempting to scroll to the scrollback - with the mouse wheel, or a keybinding in tmux? If you're trying to use the mouse, do you have mouse support enabled in your tmux config?
Does the scrollback work if you try ssh'ing from a vintage console window (i.e. cmd.exe)?

Just to take away another factor, did you uninstall the Optional Feature version of OpenSSH? In theory you should be able to use both but in practice it's better to use only one version, typically the latest in the case of OpenSSH. Your PATH may still be using the old version, so uninstalling it should help ensure that isn't the case.  Also be sure to bump the 8.1 release near the top of your PATH (the UI is quite useful for this).

@WSLUser @zadjii-msft Thanks for your comments, I can't investigate further just at the moment.
@WSLUser what did you mean by:
(the UI is quite useful for this).

?

Can confirm that installing latest of OpenSSH (v8.1 from the website) fixes the issue with tmux getting the mouse scroll wheel commands.
The path thing didn't work even when put at the top of the list (but perhaps I was missing a reboot in the middle) - by default I would still get the Windows 10 installed v7.2 when ssh from a command prompt.
I was perhaps a bit rash and just uninstalled the optional feature "SSH Client" but no issues - it worked fine and now a bear ssh from the command prompt will launch v8.1 and then testing out tmux and scrolls back in history fine.

It seems that even with OpenSSH_for_Windows_8.1p1, scrollback is not working properly with tmux in Terminal.

@WSLUser @zadjii-msft @DavidA2014
It's working fine for me using tmux in Windows Terminal.  I didn't want to install it either, so all I did was copied the ssh.exe (and only that file) from the zip at:
https://github.com/powershell/win32-openssh/releases
Into a directory in my path so it's used rather than the installed version.
If it's not working for you, maybe check you tmux settings as indicated by zadjii-msft .


Feature request ezydata-mongodb, write single value in collection without loading and saving the whole object

Is your feature request related to a problem? Please describe.
public void SetNewPassword(Long id, String password)
{
Account account = accountRepo.findById(id);
account.setPassword(password);
accountRepo.save(account);
}
i need to save the whole account object instead of saving only the required field password
Describe the solution you'd like
there should be get some function to save only a single value by id like
saveValueById(id, "field-in-the-collection", value)
Same for a get a single value
Int/String value = getValueById(id, "field-in-the-collection")
There are a lot of usecases to need only save a single value instead of the full object. like Character stats, inventory(load a inventory Object with 100 entries rewrite a single value and write it back to db) maybe isnt good for server performance and for large Objects.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

You can use update query, could you take a look the document? https://youngmonkeys.org/ezydata/guides/ezymongo-query-data

Is there an example in code in the book example how to create a custom query?

Could you take a look https://github.com/youngmonkeys/ezydata/blob/master/ezydata-mongodb/src/test/java/com/tvd12/ezydata/mongodb/testing/bean/FoodRepo.java#L50?
I will update the document tomorrow.

Thank you, ive created a custom mongoDB query
@EzyQuery("{$query: {_id:?0}, $update: {$set: {?1:?2}}}")
void updateStringFieldById(long id, String field, String value);
i think you can close this issue.


Store WithFrpContext inside FrpContext to shorten up # of params to some methods.

Actually just realized that wont work. Closing.


onModuleInit change the scope

I think this is urgent problem @kamilmysliwiec , how to reproduce?
import {Component, Logger} from '@nestjs/common';
import {OnModuleInit} from '@nestjs/common/interfaces/modules';

@Component()
export default class TestComponent implements OnModuleInit {
	private flag = false;
	private logger = new Logger(TestComponent.name);
	constructor() {
		this.logger.log('Constructor');
		this.showFlagValue();
		setTimeout(() => {
			this.logger.log('Constructor');
			this.showFlagValue();
		}, 4000);
	}

	onModuleInit() {
		setTimeout(() => {
			this.logger.log('onModuleInit');
			this.flag = true;
			this.showFlagValue();
		}, 1000);
	}

	private showFlagValue() {
		this.logger.log(`Flag value: ${this.flag}`);
	}
}

Output:
[Nest] 16820   - 7/11/2017, 10:37:22 AM   [TestComponent] Constructor
[Nest] 16820   - 7/11/2017, 10:37:22 AM   [TestComponent] Flag value: false
[Nest] 16820   - 7/11/2017, 10:37:23 AM   [TestComponent] onModuleInit
[Nest] 16820   - 7/11/2017, 10:37:23 AM   [TestComponent] Flag value: true
[Nest] 16820   - 7/11/2017, 10:37:26 AM   [TestComponent] Constructor
[Nest] 16820   - 7/11/2017, 10:37:26 AM   [TestComponent] Flag value: false

This can be fixed in the code by:
	constructor() {
		this.onModuleInit = this.onModuleInit.bind(this);
	}

But I don't think it's the best way to achieve this.
The third output with Flag value should be true.

I had this problem as well. I recommend using @autobind from core-decorators

@benbayard but it should not happen

Hey @cojack,
That's why you should avoid any additional logic inside constructor. Instead of this, there's onModuleInit lifecycle hook :smiley: The bug should be fixed in the nearest release. Thanks for reporting

Hi @cojack,
So I have spent some time on this bug and the issue isn't with the onModuleInit hook, but rather with async operations (such as XHR requests, setTimeout..) called from constructor. It's possible to fix this with the monkey patching, but I don't think whether it makes sense. Basically, any async code called from the constructor isn't a good practice and is a bad pattern, that's why we have the onModuleInit hook. I think it'd be better to leave this as it is.


Incorrect link in spec

From 4.14 - The new Operator:

If C has one or more apparent construct signatures (section 3.11.1), the expression is processed in the same manner as a function call, but using the construct signatures as the initial set of candidate signatures for overload resolution. The result type of the function call becomes the result type of the operation.

But 3.11.1 is the Apparent Members section.

An apparent construct signature is an apparent member.


utils/fs: Fix O_CREATE flag check in OpenFile

Flag checking is using a | instead of & against os.O_CREATE.

cool, how you found the issue? this requires a test @smola

I just reviewed the code changes from rc1 to rc2, and it caught my eyes.

Tests added. Thanks @jinroh!