Initial Ec2 Volume management

Without this work, managing volumes independent of Ec2 instances is not
possible using this module.  This is the preliminary work to get
Ec2 Volume management operational under Puppet.
Expect that this will be followed up with adjustments to the
ec2_instance type to allow for attachment of volumes that are managed
outside of the ec2_instance type.  Future work will allow volumes to be
carried from one instance to another as instances are decommissioned,
etc.

Ah, now I (again) see this duplicates https://github.com/puppetlabs/puppetlabs-aws/pull/281


feat: Merged SkillInjector upstream with JotunnLib

Changelog:

Moved SkillConfig class to SkillConfig.cs
Refactored Skill handling code to use a Dictionary<Skill.SkillType, SkillConfig>
Added overrides for raise and reset skill cheats to include custom skills

To Test:

Does including JotunnLib and SkillInjector DLLs cause breaking issues?

@pipakin please see the debug DLL created in the checks section

Works well locally for me! Let me know when it goes out and I'll do a bunch of releasing of my mods.


No need for write access to private repos when I just want to search in public repos

Describe the bug
I just want to search in a public Github repo. But the app wants me to sign and give write access to my private repos.
Expected behavior
It should not ask.

That's very scary

...I guess you could set up a second GitHub account

The bloop desktop app uses a GitHub OAuth app for authentication. GitHub OAuth apps don't support fine-grained permissions. In order to get read access to code (in order to index and search it) we need the repo scope which Grants full access to public and private repositories including read and write access to code, commit statuses, repository invitations, collaborators, deployment statuses, and repository webhooks. We don't currently support a mode to only index and search public repositories.

You can now build and run bloop from source with your own GitHub Access Token. See instructions here: https://github.com/BloopAI/bloop?tab=readme-ov-file#building-from-source


Add Docker image #40

Adds an initial Docker image to the repo.
TODO

[x] Set up automatic deployment of the image after every push to master.

@pawroman thanks for the review. Addressed your comments. Just two more open questions. Let me know what you think and if we're good to merge. 😃

I... guess we're clear here. Merging this in.


Invalid sass in _mixins.scss

When trying to build the project using gulp build, I get the following error:

'Error: ".call-to-action-container .navigation .links li" failed to @extend "btn-cover".
The selector "btn-cover" was not found.
Use "@extend btn-cover !optional" if the extend should be able to fail.
on line 47 of assets/scss/modules/_mixins.scss

This is caused by the mixin btn-cover-with-border:
@mixin btn-cover-with-border {
    border: 1px solid $slate-white;

    &:hover {
        border: 1px solid $primary-color;
    }
    @extend btn-cover;
}

The final @extend btn-cover; should probably be changed to @include btn-cover;.
I can create a quick PR if you like though presumably the build is working for you, so maybe there is a separate issue?

You are absolutely correct and this should definitely be change to @include.
I did not get this build issue because I had not updated my gulp-sass module version in a while. This most likely did not give me an issue because presumably there was a bug in my version of gulp-sass. I also experienced this issue on my other machine several weeks ago, so thanks for the catch!
No need for a pull request, I will make the change.

The fix for this should now be part of the latest commit: https://github.com/kelyvin/caffeine-theme/commit/e75490b4633df874ed8bcc7690f9356f8a5bb6e7
Thanks again for the catch!


Can not animate on component mount

I don't seem to be able to animate some height property with Animate.usecode at start when component first renders
but while ago using Animated.Code it used to animate on mount at start
I think I'm missing something here , but at the moment I just can't figure out what
const animateHeight=new Value(200)
const runSpring=( value, dest)=> {
    const clock=new Clock()
    const state = {
        finished: new Value(0),
        velocity: new Value(0),
        position: new Value(0),
        time: new Value(0),
    };

    const config = {
        damping: 10,
        mass: 1,
        stiffness: 100,
        overshootClamping: false,
        restSpeedThreshold: 0.001,
        restDisplacementThreshold: 0.001,
        toValue: new Value(0),
    };

    return [
        cond(clockRunning(clock), 0, [
            set(state.finished, 0),
            set(state.velocity, 0),
            set(state.position, value),
            set(config.toValue, dest),
            startClock(clock),
        ]),
        spring(clock, state, config),
        cond(state.finished, stopClock(clock)),
        set(value,state.position)
    ];
}

 const Moodal=(props)=> {

     const [height,setHeight]=useState(200)

     Animated.useCode(
         block([runSpring(animateHeight,height)]),
         [height]
     )

     return (
        props.visible &&(
            <View
                style={styles.container}
            >

                <Animated.View
                    style={{backgroundColor:"#d0a2ff",width:300,height:animateHeight}}
                >
                    <TouchableOpacity
                        onPress={()=>{
                            setHeight(height!==400? 400 : 200)

                        }}
                    >
                        <Text>close modal</Text>
                    </TouchableOpacity>

                </Animated.View>

            </View>

        )
    );

}

It would be helpful if you provided a reproducible example on Expo Snack.

Also, try using Animated.set in your block:
const { set, useCode, Value } = Animated;
...
const Moodal = props => {
...
  const animatedHeight = new Value(200)
  useCode(
   block[set(animatedHeight, runSpring(animatedHeight, height)]),
   [height]
  )
}

Again, not sure if this will do it, it would be helpful if you posted a snack.

sorry , I've been working and practicing with the reanimated like 24/7 and I don't even remember what this code was about :D
I happen to realized that since I'm using Animated.Code and Animated.useCode  the code inside these components make rerendering takes much longer
so I'm looking for another way than useCode and Animated.Code


Support ruby 3

Support Ruby 3.0

We've incorporated the following into our codebase to maintain it for Ruby3, and we could then drop the dependency on transaction_retry. Consider merging this PR, so other users aren't as impacted.

@qertoip do you mind reviewing this one?


Better hello message #2

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: xieweicarl2018
If they are not already assigned, you can assign the PR to them by writing /assign @xieweicarl2018 in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/meow

@xieweicarl2018:

In response to this:

/meow

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/test this

:star: PR built and available in a preview environment xieweicarl2018-node-http-pr-2 here

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: xieweicarl2018
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [xieweicarl2018]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


bottomNavigationBar onPressed behavior

Hi,
here is s a small example how to reproduce the issue. If you press the center raised button the bottom button onPressed function is triggered also.
Tested on ios simulator 14
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, 1.22.0, on Mac OS X 10.15.6 19G2021, locale de-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
[✓] Android Studio (version 4.0)
[✓] Connected device (1 available)
• No issues found!
Here a record of the issue

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: SafeArea(
        bottom: false,
        child: Center(
          child: RaisedButton(
              child: Text("press me"),
              onPressed: () => print("raised button pressed")),
        ),
      ),
      bottomNavigationBar: MaterialButton(
        color: Theme.of(context).accentColor,
        height: 96,
        child: Text("press me"),
        onPressed: () => print("bottom button pressed"),
      ),
    );
  }
}```

Can not reproduce on android emulator , nor on dartpad .

Hello @amanv8060 it's working fine on Android. I got this issue only on Ios simulator. Also a erase of the simulator has no effect.

@pinpong
Tested on iOS simulator (OS 14), iPhone 6s physical device and didn't see the issue you mentioned. I verified on latest beta and on latest Master.
Restarted application in 707ms.
flutter: raised button pressed
flutter: raised button pressed
flutter: raised button pressed
flutter: raised button pressed
flutter: raised button pressed
flutter: raised button pressed
Please run flutter clean and then flutter run, try to switch to latest master and check again.
Thanks.

flutter doctor -v
[✓] Flutter (Channel beta, 1.22.0, on Mac OS X 10.15.4 19E2269, locale en-IN)
    • Flutter version 1.22.0 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision d408d302e2 (13 days ago), 2020-09-29 11:49:17 -0700
    • Engine revision 5babba6c4d
    • Dart version 2.10.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0.1, Build version 12A7300
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.49.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.11.0

[✓] Connected device (4 available)
    • Darshan's iphone (mobile)           •
      21150b119064aecc249dfcfe05e259197461ce23 • ios            • iOS 14.0
    • iPhone SE (2nd generation) (mobile) • 6C85835D-FBFD-4AB3-8DE8-B4FAD35E5367
      • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-0 (simulator)
    • Web Server (web)                    • web-server
      • web-javascript • Flutter Tools
    • Chrome (web)                        • chrome
      • web-javascript • Google Chrome 86.0.4240.75

• No issues found!

Hi, I can reproduce this issue only with one ios simulator.
Maybe it's an edge case?


21.1.2 Update - From pr 82

credit to @oehlschl

Thanks very much @contygm -- appreciate your support here. I think this will be a big help to the other folks who reached out.

Thank you @contygm and @oehlschl!!


using dynamic expression inside module call for eks

I have issues
I'm submitting a...

[ ] bug report
[ ] feature request
[ X] support request - read the FAQ first!
[ ] kudos, thank you, warm fuzzy

What is the current behavior?
I'm not sure if it's directly related to this module or in general terraform. I'm planing to create node group vs worker group conditional. Tried using dynamic like
module "eks-cluster" {
  source                           = "github.com/terraform-aws-modules/terraform-aws-eks?ref=v11.1.0"
  cluster_name                     = local.cluster_name

  dynamic "node_groups_defaults" {
    for_each = var.node_groups_enabled ? ["true"] : []
    content {
      ami_type  = "AL2_x86_64"
      disk_size = 50
      subnets = split(",",var.private_subnet_ids)
    }
  }

getting an error
on main.tf line 76, in module "eks-cluster":
76:   dynamic "node_groups_defaults" {
Blocks of type "dynamic" are not expected here.
I've used dynamic with resources but not much with modules calls.
If this is a bug, how to reproduce? Please include a code sample if relevant.
Use dynamic block inside eks module call
What's the expected behavior?
It is suppose to compile since node_groups works as individual block
node_groups_defaults = {
  ami_type  = "AL2_x86_64"
  disk_size = 50
  subnets = split(",",var.private_subnet_ids)

}
Are you able to fix this problem and submit a PR? Link here if you have already.
Environment details

Affected module version:
OS:
Terraform version:

Any other relevant info

dynamic blocks don't work on modules.
This does not make sense here either. node_groups_defaults is a map of default values to use when creating the node groups defined in the node_groups map.
node_groups is a map. You can conditionally create it by using the for expression. I'm not sure if conditional creation of it will work though. You will need to be careful. The node_groups sub module makes heavy use of the for_each expression. This means that Terraform must know the keys to the map before it can decide which resources will need creating.  Thanks

@amitsehgal did you make it work?


Uncaught TypeError: Cannot read property 'getIn' of undefined

Do you want to request a feature or report a bug?
Bug
What is the current behavior?
I've got the error when I try to change a checkbox using medium-draft

And Sentry reports it in the file ../node_modules/draft-js/lib/editOnInput.js
https://github.com/facebook/draft-js/blob/792bd3abe9b2c8735e2917af30b3dc9b0055e3ab/src/component/handlers/edit/editOnInput.js#L106-L108
What is the expected behavior?
The editor does not throw an error.
Which versions of Draft.js, and which browser / OS are affected by this issue? Did this work in previous versions of Draft.js?
Chrome Version 80.0.3987.132 (Official Build) (64-bit)
Firefox Version 74.0 (64-bit)
DraftJS 0.11.4 (latest)

#2332 as a reference

any news?


Enable linkcheck readme

Description
Turn on broken link detection for root README.md
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] The quickstart code compiles correctly
[x] You've tested new builds of the quickstart if you changed quickstart code
[x] You've updated the quickstart's README if necessary

Just a text description, since it might not be completely obvious from the minimal code changes:
Our automation creates a matrix build job that does a make validate which in turn calls mm.py -l README.md  on a given quickstart directory. To add link validation to the root README.md, all we had to do was add '.' to the matrix build and add a makefile to the root.


Errors after update

I'm running into an issue that I think initially had something to do with the fact that I had both "/data" and "/www/html/modules" uncommented in the compose file.
Commented out the "/www/html/modules" bind but I'm still getting the following error when I attempt to start everything back up:
Symfony\Component\Debug\Exception\FatalThrowableError thrown with message "Class "Modules\EmbedImages\Providers\EmbedImagesServiceProvider" not found"

Stacktrace:
#24 Symfony\Component\Debug\Exception\FatalThrowableError in /www/html/overrides/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php:279
#23 Illuminate\Foundation\ProviderRepository:createProvider in /www/html/overrides/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php:189
#22 Illuminate\Foundation\ProviderRepository:compileManifest in /www/html/overrides/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php:70
#21 Illuminate\Foundation\ProviderRepository:load in /www/html/vendor/nwidart/laravel-modules/src/Laravel/Module.php:27
#20 Nwidart\Modules\Laravel\Module:registerProviders in /www/html/overrides/nwidart/laravel-modules/src/Module.php:279
#19 Nwidart\Modules\Module:register in /www/html/overrides/nwidart/laravel-modules/src/Repository.php:366
#18 Nwidart\Modules\Repository:register in /www/html/vendor/nwidart/laravel-modules/src/Providers/BootstrapServiceProvider.php:22
#17 Nwidart\Modules\Providers\BootstrapServiceProvider:register in /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:586
#16 Illuminate\Foundation\Application:register in /www/html/vendor/nwidart/laravel-modules/src/ModulesServiceProvider.php:38
#15 Nwidart\Modules\ModulesServiceProvider:registerModules in /www/html/vendor/nwidart/laravel-modules/src/LaravelModulesServiceProvider.php:15
#14 Nwidart\Modules\LaravelModulesServiceProvider:boot in /www/html/overrides/laravel/framework/src/Illuminate/Container/BoundMethod.php:28
#13 call_user_func_array in /www/html/overrides/laravel/framework/src/Illuminate/Container/BoundMethod.php:28
#12 Illuminate\Container\BoundMethod:Illuminate\Container\{closure} in /www/html/overrides/laravel/framework/src/Illuminate/Container/BoundMethod.php:87
#11 Illuminate\Container\BoundMethod:callBoundMethod in /www/html/overrides/laravel/framework/src/Illuminate/Container/BoundMethod.php:27
#10 Illuminate\Container\BoundMethod:call in /www/html/overrides/laravel/framework/src/Illuminate/Container/Container.php:549
#9 Illuminate\Container\Container:call in /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:792
#8 Illuminate\Foundation\Application:bootProvider in /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:775
#7 Illuminate\Foundation\Application:Illuminate\Foundation\{closure} in [internal]:0
#6 array_walk in /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:774
#5 Illuminate\Foundation\Application:boot in /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php:17
#4 Illuminate\Foundation\Bootstrap\BootProviders:bootstrap in /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:213
#3 Illuminate\Foundation\Application:bootstrapWith in /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:162
#2 Illuminate\Foundation\Http\Kernel:bootstrap in /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:146
#1 Illuminate\Foundation\Http\Kernel:sendRequestThroughRouter in /www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:116
#0 Illuminate\Foundation\Http\Kernel:handle in /www/html/public/index.php:82

Seems like it may be due to the module files being removed. I thought that it may reinstall them after removing the extra bind mount but I'm not having any luck.

Does this seem like the issue? If so, what is a recommended path forward?

Sounds it. Try entering the container and try to disable the module via the artisan command... artisan | grep "freescout:" should give you some of the syntax.

ah sweet! Thanks, I'll give that a shot.

Nice! That got me much farther. Was able to run 'artisan freescout:after-app-update' and that seems to have gotten the interface working again. Then, I was able to just go in and manually re-install the extra modules I had.
Thanks for your help and the work you've done putting this image together. Has been super helpful for me!

Nice! That got me much farther. Was able to run 'artisan freescout:after-app-update' and that seems to have gotten the interface working again. Then, I was able to just go in and manually re-install the extra modules I had.
Thanks for your help and the work you've done putting this image together. It has been super helpful for me!


Warpwallet unsafe compared to memorizing 12 word mnemonic

I very much like warpwallet, but I don't believe that it is safe.
Now that many software and hardware wallets use 12 word mnemonics, I believe the best option for a brain wallet is to simply memorize a 12 word mnemonic. A good method for doing this is as follows:

Generate a random 12 word mnemonic
Break it into 4 3-word pieces (or 3 4 word pieces)
Come up with a story or word picture for each piece

For example, if the first three words are "actual raccoon balcony", you might imagine someone standing on a balcony made of raccoons looking very pleased
If the pieces aren't memorable, go back to step one and re-roll the mnemonic

Write down the mnemonic on a piece of paper
Every day for the next 7 days, try to remember the mnemonic and then confirm that you remembered it correctly by looking at the paper
Destroy the paper

I think that this is about as easy as memorizing a warpwallet password, and much more secure.
I think that warpwallet should be depreciated in favor of this approach.

That is like your opinion man.
On Sun, Jul 16, 2017 at 3:36 PM ekrizdis<EMAIL_ADDRESS>wrote:

I very much like warpwallet, but I don't believe that it is safe.
Now that many software and hardware wallets use 12 word mnemonics, I
believe the best option for a brain wallet is to simply memorize a 12 word
mnemonic. A good method for doing this is as follows:

Generate a random 12 word mnemonic
Break it into 4 3-word pieces (or 3 4 word pieces)
Come up with a story or word picture for each piece

For example, if the first three words are "actual raccoon
balcony", you might imagine someone standing on a balcony made of raccoons
looking very pleased
If the pieces aren't memorable, go back to step one and re-roll
the mnemonic

Write down the mnemonic on a piece of paper
Every day for the next 7 days, try to remember the mnemonic and
then confirm that you remembered it correctly by looking at the paper
Destroy the paper

I think that this is about as easy as memorizing a warpwallet password,
and much more secure.
I think that warpwallet should be depreciated in favor of this approach.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/keybase/warpwallet/issues/28, or mute the thread
https://github.com/notifications/unsubscribe-auth/AA05_-46sKKPfgri5-smOJOVB8B6Jlixks5sOmYpgaJpZM4OZZB1
.

Indeed it is! But I think there is a reasonable rationale for it:
A. A warpwallet uses some unknown user-supplied amount of entropy, plus key-stretching. Memorizing a 12 word mnemonic is safer, since it uses a full 128 bits of entropy.
B. A 12 word mnemonic can be used as the seed of an HD wallet, whereas a warp wallet generates a single private key, public key, and address. An HD wallet has privacy advantages. Also, a warp-wallet user will likely be tempted to reuse their wallet, which means exposing the public key.
C. A warpwallet user will need to enter their password on a computer and then import their private key into a software wallet. If their computer is compromised, all their funds can be stolen. A 12 word mnemonic can be used to initialize a hardware wallet directly.
I think that A is pretty persuasive, since humans are very very bad at supplying entropy. Key stretching helps but doesn't make up for it.
B means that if you reuse your warpwallet you'll be at risk if quantum computers become a thing, since your public key will have been revealed.
C is, I think, the most important argument. A warpwallet user will have to enter their password on a computer to generate the wallet, enter the password on a computer every time they want to use their wallet, as well as import their private key into a software wallet. If they memorize a 12 word mnemonic they can avoid it ever being on any device other than a hardware wallet. I think this is a huge security advantage, since a potentially compromised PC never holds a private key.
Sorry for not laying out my rationale in the initial issue.

That is like your opinion man.

The way he phrased it... yes.
Let's make it a little more scientific.

Let's say it makes trying a password<PHONE_NUMBER> times longer on any type of hardware. (which it doesn't, but I'm overestimating the power of warp wallet just for argument's sake)
That means the equivalent of 32 bits of entropy is being added to any password chosen. HUZZAH!
Subtract that from 128 bits and you get 96 bits.
Users need to make a password that is at least 96 bits strong to be equivalent to a normal 12 word BIP39 phrase.
let's say they use 0-9a-zA-Z!"#$%&'()-=^~|[{]}:;+`\/><,.?_ which is 92 characters for their password.
They would need at least 15 characters from that 92 character set. Super hard to remember. Super hard to write down and re-read later.
Let's say they use random words (perfectly random) from a dictionary with 171476 words (number of actively used words in the Oxford English dictionary)
They would need 6 words. A little better for remembering. But still not best. Some word combinations might be misleading when writing down or committing to memory.

Therefore, we can state unequivocally that users of Warp wallet are sacrificing large amounts of security for a tiny bit of convenience.
But they are free to place their bitcoins in relative danger if they so choose.
The "bounty" put up is peanuts to anyone with the machinery to actually crack warp wallets seriously, and the people who put that bounty up know it.
Tell me one person who stores billions of dollars worth of bitcoin on a warp wallet, and I can guarantee you it will be cracked within a few years.
Meanwhile, the heat death of the universe will come by before someone can brute force my BIP39 phrase.

Dabura's analysis is correct, but I think that the opsec aspect of being able to generate a mnemonic on a hardware wallet which never touches anything but a hardware wallet is equally important.

Some counterpoints:

The odds you keep your money "safe" as you say, are really the product of the odds that (a) they're not stolen, and (b) the odds you don't screw up.  Unfairly, you're assuming that a WarpWallet has to reach the exact brute force difficulty of a a full 12-word to be preferable, because you apply zero (!) discount for the very high safety risk of memorizing a 12-word passphrase. As if the above memorization technique is guaranteed to succeed.

As for the difficulty: actually memorizing a BIP39-selected phrase for multiple years without writing down has a significantly higher risk of user error, really wrecking the equation. If you're going to write it down, great.  For a brain-stored key,  I wouldn't actually tell any loved one to follow your above instructions. If you really can do it, great.  But I just grabbed 12 words by randomly clicking into the BIP39 english dictionary: "client modify happy delay dragon drill gas poverty hope know lyrics rapid". If I spent 15 minutes a day for 2 weeks memorizing that then there'd be a 75% chance (at best, really, shit...) I would still know it after 5 years of forgetting to think about it...even using these battery horse staple techniques. So basically a 25% chance I'd lose them. If I picked even a much smaller phrase in WarpWallet, salted with a personal email, I'd feel the odds of not being stolen * remembering would be significantly better and a much smarter personal decision.  As max said "that's like your opinion, man", because really, there's no way of measuring the odds you remember the 12-word passphrase vs. the odds of something shorter, especially since the personal one might even be crafted with an entropy technique of your own choosing.

you didn't mention salting by email, which mitigates broad-sweeping searches. Admittedly you can't assign an exact value to this, because you could have the most important email address, associated with half of all the warp wallet value, and this address could be known,  thereby adding really < 1-bit of entropy. But again, that's not really the case...so it's up to you to decide what that's worth. If zero, cool, but it's worth considering.

Valid points about recovery, later...although with my Trezor (which I like a lot) I've found that if I want to prevent the computer from stealing the key during a recovery I need a 24 word key so the computer can't learn the key (24! possibilities) on import. I assume some hardware wallets allow direct word entry to keep it at 12?

Trezor feeds you dummy words if you have a 12 word phrase. So recovering a 12 word wallet requires typing 24 words. :-)

Also, I'd like to add that my stance personally is that memorizing your private key, regardless of the method, is dangerous. The odds of a memory loss event where you forget even the most permanent memories you hold is so non-zero it's not even joke-worthy.
And if you're going to write it down anyways, 12 words is easier to write down than most "secure" brainwallets.
I agree that email salting is better, but not really when the fact that a user's balance leaked online means they probably aren't too private with their email addresses either. And even if they had many email addresses, there's another thing they have to remember and could easily forget.
I agree that warp wallets are relatively better than single SHA256 wallets. But just wanted to point out that "ooooh it took an extra 10 seconds on my browser, if you multiply that by my entropy of my password...... that's..... a lot!" may SEEM correct, as intuition would say that "100,000 times longer is a looot longer!" But when you think about it, 100,000 is only 16 bits. So by multiplying the work by 100,000 you only increase the effective entropy-like quality by 16 bits. And those 16 bits are dependant on the algorithm not being broken to be made faster.

@dabura667 I think you missed a point about the bounty. It was a small bounty and a small password.  It's nice to know that a 48 bit password costs more than 10 BTC to crack over 2 years.  To beat the challenge, on average, you'd have to compute 2,231,378 guesses a second for 2 years. Apparently it wasn't worth anyone's while.  You'd probably need to invest over $500 million in hardware and get free power to beat the challenge, by my back-of-the-envelope calculations (recall, this is a memory hard operation, meaning you need a lot of RAM to get your guesses per second up). Wouldn't it make more sense to mine instead? If you think there's a good GPU solution for scrypt with N=2^17, that would be an interesting result, but it doesn't currently exist. If you don't believe in the crypto (salsa20 in this case), you should probably not be investing in any cryptocurrencies.
Anyways, if 48 bits of entropy in a warpwallet can protect 10BTC (we've put our money where our mouth is here and so far are correct), then 56 bits of entropy should be able to protect 1280BTC. 56 bits of entropy seems way easier to remember than 128 bits, so the risk of accidental loss is much lower (as @malgorithms indicates).

In other words, it all comes down to how much BTC you're protecting, over what period of time.  You have to assume your attacker is rational and won't bother wasting resources if she/he can't recoup costs.

Trezor feeds you dummy words if you have a 12 word phrase. So recovering a 12 word wallet requires typing 24 words. :-)

Love it!

As someone who spent many hours on social media, explaining why strong derivation scheme is a game changer for private keys - eg https://github.com/sakurity/securelogin/issues/34 - I want to cheer your persistence and clear arguments. WarpWallet FTW!
May I add some suggestions for next version?
Drop "optional" part of email entirely - w/o email it's way easier to brute, everyone has an email, email is not leaked to 3rd party, etc - only positive stuff. It must be always required to prevent broad-sweeping searches you mentioned.
Also drop the confirmation checkbox. No idea how is it helpful. I'm not blind, I can see the email I just typed :)
Otherwise, keep it up and please promote Warpwallet approach more - what we have right now for address generation is unusable bullshit. (just laundered my paperwallet, thanks god i made a pic of it previously)

@ekrizdis Maybe I'm not understanding correctly what you want, but basically you want mnemonic passphrase without the email salt? That's great, what if someone chooses this sentence for the mnemonic seed?
Is this the real life
Is this just fantasy
Caught in a landslide
No escape from reality

By the longness, this should be even more secure than a 12 word Mnemonic seed, but in reality, this is probably hacked in the first few minutes, doesn't matter, if you written down on a piece of paper right after generation.
Of course, not everyone will choose the first sentence from this Queen song, maybe the smartest chooses the second strophe. Or even better, take away this from the users and only allow mnemonic words from a pre-selected list. I will tell you what's the problem with that: what do you think, how long it will take to figuring out by a hacker this word list with the help of a web scraper? In a fair amount of time they will have a very definitive list of words from songs, authors, websites that the wallet generator using.
My bet is to using a seed with a passphrase, which is a long password that contains a sentence which describes your life event, which is as long as an mnemonic seed, but it's personal.
What you asking is actually a lowered security.

@DJviolin please Re-read my original comment, particularly how the mnemonic is generated.

I'm not sure if I'm missing OP's point,
but who's to prevent you just entering 12 words, lowercase, space-delimited, as the main passphrase, and then your email as the salt?
I mean, just because it supports password-like levels of special characters doesn't mean you can't just correct horse battery staple, right?

@JamesTheAwesomeDude  you're not missing author's point, author is just being wrong :)

This is a very interesting thread, however; and I would be interested to see someone who knows what they're talking about put to bed @ekrizdis and @dabura667's concerns solidly.
I think that @maxtaco's figures

Anyways, if 48 bits of entropy in a warpwallet can protect 10BTC (we've put our money where our mouth is here and so far are correct), then 56 bits of entropy should be able to protect 1280BTC (for 2 years).

sound pretty solid to me, but I really hope to hear back from OP on whether or not this addresses his original point.
Besides, re:privacy if you really wanted to be paranoid with the salt and pump up the entropy for cheap, you could use<EMAIL_ADDRESS>(use IDN subdomain for extra privacy)
I feel like the guy who made this repo could probably mathematically completely dismiss these concerns, to the satisfaction of universal consensus, in 2 seconds if he cared to, which is why it does disconcert me a bit that it seems..at least a bit unresolved as yet

if 48 bits of entropy in a warpwallet can protect 10BTC

A large portion of people with enough computing power to blaze through it are mostly benevolent actors, such as Google etc.
If there was a known warpwallet with 1280 BTC on it at current prices, it would probably be brought down by the user's poor opsec.
Ok, so now assume the warpwallet user used a unique password with a fake and complex email address...... so now they have to write it down? Commit it to memory? Why is this better than BIP39 again? If they're going to write it down anyways they could just write down a 128 bit entropy passphrase to begin with and the SHA256 brainwallets would be sufficient. <<<<<< the whole point of this thread.

So while it is great that warpwallet is better than single SHA256, it is unarguably worse than a simple 12 word BIP39 phrase in almost every way. The only way it is better than BIP39 is that barely anyone uses warpwallet, which makes it "secure" for the same reason "linux doesn't get viruses"... well, it's not that it's more secure in and of itself, but that less people use it and the people that do use it are more likely to be security conscious to begin with.
As long as warpwallet remains an obscure tool for security focused individuals, and they don't go around telling everyone they have money in a warpwallet AND don't use "password" etc for a password... they should be fine.
However, to say that the design of the system itself is "more secure" than BIP39 is not justified.
Also, TIL keybase made warpwallet, so I almost kinda want to give them a pass on this imo. Keybase rocks...

It might be 10 times less secure than a generated seed in terms of entropy, but being 1000 times more usable it wins anyway. Security without usability is dead end - google for lost mnemonic seeds and backup files. That can happen to passwords but much more rarely.
Mnemonic phrases will NEVER be adopted by general public. Even myself I hate dealing with them. Warpwallet approach is extremely clear and equal internet banking email+pw all of us already used before.

That can happen to passwords but much more rarely.

Let me pull up the "forgot password" password reset counts for the bitcoin exchange I work for.
30% of users (out of over 30,000 total) have done it at least once.
one user has done it 24 times over the span of 6 months... lol
Also, I just ran a quick query on 2FA resets (we require them to re-upload a selfie with the same ID they have on file with a hand written message saying "reset 2FA") and it looks as though 5% of users have done this once (we don't track counts though). BTW, 25% of our users have active 2FA currently... so that means 20% of the users that have 2FA enabled have reset it at least once.
...
The usability argument is fine. If you think xyz is more usable for you, that is subjective, as everyone has an idea of what "usability" is for themselves. And I'm sure you are right that if we took an average of all people from all walks of life, surely remembering "daughtersname+birthday" and their email address is much more familiar to people... but to say that "everyone is more likely to lose a phrase than their own password..."
I don't have any data though...

Mnemonic phrases will NEVER be adopted by general public.

Just as password managing software will never be adopted by general public. That doesn't mean you shouldn't use it. :-P
To each his own though.
The entropy argument is just scientific fact so you can't really argue with it though. 90% of users will use a password that is less than 10 bits of entropy (name+birthday or something like that)... probably less for warpwallet, as I said earlier, since the only people using it are tech savvy individuals who think iterative hashing is the bee's knees.
I just hope no one is recommending warpwallet to newbies who would use a password like "password" or their birthday or something like that.

I should find a client side javascript library that measures password strength and record our users' pw strength ratings... would be interesting to follow...

30% of users (out of over 30,000 total) have done it at least once.

A password you cannot forget is a prerequisite to a mnemonic and backup file as well. So if you forget a pw in any scheme there's no recovery. In brainwallets however there's no burden of a mnemonic or file to worry about, just a pw.

prerequisite to a mnemonic

Nope, just write down the mnemonic and keep it in a safe. Spend from it using a Trezor/Ledger.
No need to remember anything... if you forget your HW PIN you still have your safe.
People know how to keep wads of cash and gold etc. safe by throwing it in a safe. Same applies for mnemonics.
Backup files are a pain... which is one of the reasons why BIP39 was made, SatoshiLabs didn't want users to have to manage files and USB memory sticks to backup their Trezor... just write it down (everyone knows how to write...... well, not everyone) and throw it in a safe.

No need to remember anything... if you forget your HW PIN you still have your safe.

https://www.wired.com/story/i-forgot-my-pin-an-epic-tale-of-losing-dollar30000-in-bitcoin/
i wouldn't recommend anyone experience like this. And it will happen again and again. Cash != $30k seed. Maidens know of cash, they don't know about papers with words. I myself got a maid in our hotel to throw a seed to like 100k of btc. Thanks god i made a photo.
So, NO, screw paper backups.

@dabura667
You keep mentioning repeatedly how "12 words is stronger than a password"
but what prevents you from using a password which contains or even comprises 12 words?
There's literally nothing prohibiting the user from using an all-lowercase, pure-alphanumeric, space-delimited-word-sequence password
And then when you add in the salt (and believe me, I have used a similar salt to the one I have described, which is both unforgettable AND unguessable), how many even just regular english words in the password does it take to meet/exceed BIP39?

@homakov

So if you forget a pw in any scheme there's no recovery. In brainwallets however there's no burden of a mnemonic or file to worry about, just a pw.

I agree with what you're saying generally, I think I'm on your "side" in this discussion..but this seems a bit irrelevant, no? Since the guy you're arguing against IS advocating the BIP39 Brainwallet, and I don't see anywhere that you've put forward evidence for the argument it seems (correct me if I'm wrong) that you're making that a password is somehow less of a "burden" to remember than a mnemonic.

but what prevents you from using a password which contains or even comprises 12 words?

The whole point of my argument is "if you give users the option to use "password" as a password, someone will use it."
While you could make the argument that warpwallet is the "strongest wallet in the world because it allows you to enter a 4687 character long (how many characters can fit in the input box) password with all possible unicode characters which is more entropy than exists in the universe so my bitcoins are safe... after a certain point, the extra entropy is useless.
That point is 128 bits. As Koblitz curves have symmetric security equal to n/2 of the bitlength of the keysize (256).
BIP39 12 word phrases have 128 bits of entropy exactly.
What does "reindeerlover38!" password have as entropy? Not that much.
How much time does warpwallet bide? Who knows, but judging from my time, I'd say one key generation in warpwallet takes about 10000 times more time than a single SHA256. 10000 is about 13.3 bits. So if "password" has 0 bits of entropy, then using "password" with warp wallet is about the same as brute forcing a 13 bit password. if "reindeerlover38!" has 30 bits of entropy, then 43.3 bits of brute forcing are required.
To be equivalent to a simple 12 word BIP39 phrase, the user must think of a 115 bit entropy password (but actually a little more since BIP39 has light hash iteration within itself.) in order to be equivalent.
If you personally are satisfied with 78 bits as long as it requires someone to target you specifically (because it is salted) then that is fine for you, go bonkers with whatever method you want.
However, I stick to the idea that this tool should not be recommended to my grandma. She will use "password" or something weak like that as the password and lose money.

So..basically just the lack of a mandatory minimum of security? That it allows the user to pick a bad password?

Another way to look at it: security never works without usability. So you pick something usable and known first (username + pw), then you spice up the security (scrypt N=18, p=20 - works for 1 minute). Not other way around where you pick a purely random string of bytes and ask the user to write it down. How on Earth anyone thought it's a good idea to ask normal people to write down words on a paper.  No bank ever asked them to do that. So they are frustrated and of course papers are eventually lost.
With warpwallet + 10x stronger derivation even top 1m passwords are out of reach of hackers, just too expensive to brute. Look at their challenge.


[feature] Code context in the code review comment page

🧩 Feature
Description
It would be nice to have a quote box in the 'Edit code review comment page' with the code referring to that issue. It would be much easier to have a context about the referred issue.
An extra feature would be being able to see the code diff in that box after the review.
Thank you for the great work. 👍

Hey @HugoCunha when editing a previous made comment, the related code should be highlighted in the related file so that the context is visible.
Is there probably a bug with the highlighting? Or I just didn't understand your exact expectation.

Hey @HugoCunha when editing a previous made comment, the related code should be highlighted in the related file so that the context is visible.
Is there probably a bug with the highlighting? Or I just didn't understand your exact expectation.

I will close this issue for now. Feel free to re-open it, when it's still relevant and describe the feature request a bit more in detail.
Thanks!


Remove PromptFile from the list

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Bug fix
[x] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
Updates the supported sites file with 1 known site that does no longer exist and therefore can't be supported any longer (if the plugin still exists that's a different story, for all I care it could stay but mentioning the site is misleading)

This list is autogenerated.


[ReusableLib][Laravel] Modified product module and incorrect sentence

Modified product module for snack case implementation
Corrected incorrect English sentences.

Refs: Task # 337870

fine to proceed


[Health Insights - Health Insights] API Review

New API Review meeting has been requested.
Service Name: Health Insights - Health Insights
Review Created By: Jean-Luc Verschelde
Review Date: 06/27/2024 08:00 AM PT
Release Plan: 1299
PR: https://github.com/Azure/azure-rest-api-specs/pull/29181
Hero Scenarios Link: Not Provided
Core Concepts Doc Link: Not Provided
Description:
Detailed meeting information and documents provided can be accessed here
For more information that will help prepare you for this review, the requirements, and office hours, visit the documentation here

Notes from API review 6/27/24

Radiology Insights went GA last May (2024-04-01)
Adding 3 new models

Scoring and Assessment
Quality Measures
Clinical Guidance

No new or changed operations -- only changes to request and response models
Three new inference models
minItems(1) on optional array?

This is to avoid an empty array - for better developer experience
But could be a required array - that would also avoid 1 check

This looks good for GA.


Register v0.1.0

@JuliaRegistrator register
Register first release of RobotDojo.jl

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/48649
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" 531b3782bff0457c0b3f6e6eba6536e1d5938e7a
git push origin v0.1.0

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/48649
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" 0b69d1be4115635dde865d1698ed32ba611eaedf
git push origin v0.1.0

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/48649
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" a0675911793f85f28065471bc89678a193c42834
git push origin v0.1.0


Using LINQ Contains expression

Hi phnx47,
I used your lib for my project with PostgreSQL and it worked well except a situation when I used Contains expression for query all items have id in collection like this:
string[] id_arr = ids.Split(',');  List<int> loctypeIds = new List<int>(id_arr.Select(int.Parse).ToArray());  return Json(_subtypeRepository.FindAll(x => loctypeIds.Contains(x.loc_type_id)).ToList(), JsonRequestBehavior.AllowGet);
and this is my model:
[Table("category.location_subtypes")]     public class LocationSubtype     {         [Key]         [Identity]         public int id { get; set; }         public int loc_type_id { get; set; }         [StringLength(100)]         public string description { get; set; }     }
I got error message like this:

42703: column location_subtypes.controllers does not exist

I know this error from PostgreSQL when it can not find out column with name "location_subtypes.controllers" but I don't know why query has this column name.
Do you have any idea ? Thank you.

"Contains" is not supported right now. See ExpressionHelper.cs.
I'll try to debug for throw an exception to such a request

Now I throw an exception: Commit
Later, I'll do a separate method for this operation

yes, it's will more clear with a exception.

fixed in 1.7.0


Changes for inventory for each environment

@jimangel These are the two inventory files. 000_anthos_common is the common variable file that will remain common for all the inventories.. And anthos_vars is specific to that inventory. It has var specific to hybrid/user cluster.
If the name is confusing I can change the name


Add ability to build minimal docker image

This adds the ability to build a statically linked,
minimal docker image via the existing Makefile. The
is done via Docker using the golang1.4-onbuild image.
The resulting image is ~18MB. I have one pushed at
quay.io/doublerr/vulcand.
I'm still learning the go build process so I'm sure there
is plenty of room for improvement. Feedback welcome!
Ryan

I should note that this is primarily for OS X users that want to easily build a binary for linux but should be usable for linux users that want to build a minimal image.

@doublerr, thanks for contributing!  As soon as that change is made, we can merge your PR to master.

Sorry for the delay. Updated.
I thought of a way to reuse the makefile but I'll play with that in another branch and will submit a new PR if it works out.


[SPARK-38700][SQL][3.3] Use error classes in the execution errors of save mode

What changes were proposed in this pull request?
Migrate the following errors in QueryExecutionErrors:

unsupportedSaveModeError -> UNSUPPORTED_SAVE_MODE

This is a backport of https://github.com/apache/spark/pull/36350.
Why are the changes needed?
Porting execution errors of unsupported saveMode to new error framework.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Add new UT.

FYI old pr: https://github.com/apache/spark/pull/36676, i have closed it!
master branch pr: https://github.com/apache/spark/pull/36350
ping @MaxGekk

Can one of the admins verify this patch?

Thank you for updates.

I guess we need @MaxGekk 's final sign-off.

@panbingkun Could you update PR's description and add "This is a backport of https://github.com/apache/spark/pull/36350".

@panbingkun Could you update PR's description and add "This is a backport of #36350".

sure！

@panbingkun Could you fix the test failure, please:
QueryExecutionErrorsSuite.UNSUPPORTED_SAVE_MODE: unsupported null saveMode whether the path exists or not
org.scalatest.exceptions.TestFailedException: "... supported for: a no[n-]existent path." did not equal "... supported for: a no[t ]existent

@panbingkun Could you fix the test failure, please:
QueryExecutionErrorsSuite.UNSUPPORTED_SAVE_MODE: unsupported null saveMode whether the path exists or not
org.scalatest.exceptions.TestFailedException: "... supported for: a no[n-]existent path." did not equal "... supported for: a no[t ]existent

Done @MaxGekk

+1, LGTM. Merging to 3.3.
Thank you, @panbingkun and @dongjoon-hyun for review.


Added symfony/options-resolver 6.0

Q
A

Bug fix?
no

New feature?
no

BC breaks?
no

Deprecations?
no

Related tickets
N/A

Documentation
N/A

License
MIT

What's in this PR?
Added symfony/options-resolver:^6.0 to composer.json and verified the tests.
Why?
So php-http/curl-client can be used together with Symfony 6.
The symfony/options-resolver:6.0 has "no significant changes" according the changelog and should be compatible.
Example Usage

Checklist

To Do

tagged as https://github.com/php-http/curl-client/releases/tag/2.2.1


gprc  issue

npm install gives following stack trace...
In file included from /usr/include/string.h:495,                  from ../deps/grpc/third_party/nanopb/pb.h:68,                  from ../deps/grpc/third_party/nanopb/pb_decode.h:9,                  from ../deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc:21: In function ‘char* strncpy(char*, const char*, size_t)’,     inlined from ‘grpc_grpclb_request* grpc_grpclb_request_create(const char*)’ at ../deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc:74:11: /usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:34: error: ‘char* __builtin_strncpy(char*, const char*, long unsigned int)’ specified bound 128 equals destination size  [-Werror=stringop-truncation]   106 |   return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));       |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1plus: all warnings being treated as errors make: *** [grpc.target.mk:520: Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.o] Error 1 make: Leaving directory '/home/syeda/stripe-course/node_modules/grpc/build' gyp ERR! build error gyp ERR! stack Error: make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/syeda/.nvm/versions/node/v14.17.4/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:400:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)
gyp ERR! System Linux 5.4.72-microsoft-standard-WSL2
gyp ERR! command "/home/syeda/.nvm/versions/node/v14.17.4/bin/node" "/home/syeda/.nvm/versions/node/v14.17.4/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build"
"--fallback-to-build" "--library=static_library" "--module=/home/syeda/stripe-course/node_modules/grpc/src/node/extension_binary/node-v83-linux-x64-glibc/grpc_node.node" "--modu
le_name=grpc_node" "--module_path=/home/syeda/stripe-course/node_modules/grpc/src/node/extension_binary/node-v83-linux-x64-glibc" "--napi_version=8" "--node_abi_napi=napi" "--na
pi_build_version=0" "--node_napi_label=node-v83"
gyp ERR! cwd /home/syeda/stripe-course/node_modules/grpc
gyp ERR! node -v v14.17.4
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/home/syeda/.nvm/versions/node/v14.17.4/bin/node /home/syeda/.nvm/versions/node/v14.17.4/lib/node_modules/npm/node_modules/node
-gyp/bin/node-gyp.js build --fallback-to-build --library=static_library --module=/home/syeda/stripe-course/node_modules/grpc/src/node/extension_binary/node-v83-linux-x64-glibc/g
rpc_node.node --module_name=grpc_node --module_path=/home/syeda/stripe-course/node_modules/grpc/src/node/extension_binary/node-v83-linux-x64-glibc --napi_version=8 --node_abi_na
pi=napi --napi_build_version=0 --node_napi_label=node-v83' (1)
node-pre-gyp ERR! stack     at ChildProcess. (/home/syeda/stripe-course/node_modules/grpc/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:400:28)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1055:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
node-pre-gyp ERR! System Linux 5.4.72-microsoft-standard-WSL2
node-pre-gyp ERR! command "/home/syeda/.nvm/versions/node/v14.17.4/bin/node" "/home/syeda/stripe-course/node_modules/grpc/node_modules/.bin/node-pre-gyp" "install" "--fallback-t
o-build" "--library=static_library"
node-pre-gyp ERR! cwd /home/syeda/stripe-course/node_modules/grpc
node-pre-gyp ERR! node -v v14.17.4
node-pre-gyp ERR! node-pre-gyp -v v0.13.0
node-pre-gyp ERR! not ok
Failed to execute '/home/syeda/.nvm/versions/node/v14.17.4/bin/node /home/syeda/.nvm/versions/node/v14.17.4/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fa
llback-to-build --library=static_library --module=/home/syeda/stripe-course/node_modules/grpc/src/node/extension_binary/node-v83-linux-x64-glibc/grpc_node.node --module_name=grp
c_node --module_path=/home/syeda/stripe-course/node_modules/grpc/src/node/extension_binary/node-v83-linux-x64-glibc --napi_version=8 --node_abi_napi=napi --napi_build_version=0
--node_napi_label=node-v83' (1)
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS><9 || ^9.0.0-0 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS><9 || ^9.0.0-0 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS><9 || ^9.0.0-0 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS><9 || ^9.0.0-0 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/webpack-dev-server/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/watchpack-chokidar2/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>install: node-pre-gyp install --fallback-to-build --library=static_library
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
`

resolved

how that was resolved @s0gemaker ?

I was using wrong node version.


forward headers that are treated special into foxx as well.

Scope & Purpose
Up to now, the http headers accept, accept-encoding and

[x] :hankey: Bugfix (requires CHANGELOG entry)
[ ] :pizza: New feature (requires CHANGELOG entry, feature documentation and release notes)
[ ] :fire: Performance improvement
[ ] :hammer: Refactoring/simplification
[ ] :book: CHANGELOG entry made

Backports:

[ ] No backports required
[x] Backports required for: 3.7

Related Information
(Please reference tickets / specification / other PRs etc)

[ ] Docs PR:
[ ] Enterprise PR:
[x] GitHub issue: https://github.com/arangodb/arangodb/issues/12734
[ ] Design document:

Testing & Verification
(Please pick either of the following options)

[ ] This change is a trivial rework / code cleanup without any test coverage.
[ ] The behavior in this PR was manually tested
[ ] This change is already covered by existing tests, such as (please describe tests).
[x] This PR adds tests that were used to verify all changes:

[ ] Added new C++ Unit tests
[x] Added new integration tests (e.g. in shell_client)
[ ] Added new resilience tests (only if the feature is impacted by failovers)

[ ] There are tests in an external testing repository:
[ ] I ensured this code runs with ASan / TSan or other static verification tools

Link to Jenkins PR run:
Documentation

All new features should be accompanied by corresponding documentation.
Bugs and features should furthermore be documented in the CHANGELOG so that
support, end users, and other developers have a concise overview.

[ ] Added entry to Release Notes
[ ] Added a new section in the Manual
[ ] Added a new section in the HTTP API
[ ] Added Swagger examples for the HTTP API
[ ] Updated license information in LICENSES-OTHER-COMPONENTS.md for 3rd party libraries

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/12830/

In addition, I think we need to make a CHANGELOG entry, because with that change we will not be populating the Accept-Type header of incoming requests with identity in a lot of cases. This does not seem to be downwards-compatible, so we need to mention this in the CHANGELOG and add a paragraph to https://github.com/arangodb/docs/blob/main/3.8/release-notes-38.md

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/12835/

testrun blue.
To be decided: what to do with accept: identity|deflate header?

ommit on identity
store actual string similar to the accept-content-type header, and use that
continue as is only add to CHANGELOG & documentation changelog

Up to now, the http headers accept, accept-encoding and

The description of this issue seems to be missing a piece there.

testrun blue.
To be decided: what to do with accept: identity|deflate header?

ommit on identity
store actual string similar to the accept-content-type header, and use that
continue as is only add to CHANGELOG & documentation changelog

My vote is for 2.

hm, we have 4) - do nothing to accept-encoding as the algorithms leave it in that list, opposing the other headers. The tests now check for all variants of headers to become handled correctly, and no accept-encoding headers being added inbetween on random.
however, there seems to be another so far not yet identified issue: (as found in discussions with @pluma )

foxx may use compressed files https://www.arangodb.com/docs/stable/foxx-reference-manifest.html
https://github.com/arangodb/arangodb/blob/devel/js/server/modules/%40arangodb/actions.js#L2033-L2047 - which depends on accept-encoding: gzip but won't work with deflate - though its basically the same?
https://github.com/arangodb/arangodb/blob/devel/arangod/GeneralServer/RestHandler.cpp#L331 otoh will only react on deflate - not gzip.

currently there are no tests for neither behaviour, else they would have seen me breaking it. Letting compressResponse() also lose if we have accept-encoding: gzip may add missing features, but my cause foxx delivering .gz files end up with double-compressed content.

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/12905/

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/12908/

http://jenkins01.arangodb.biz:8080/job/arangodb-matrix-pr-windows/6476/ second windows test blue.


How minute step fixed on 5

Hi, i would fixed a step 5 by 5 min , like the minute on the display not between like 16min or 54 just 05-00-05-10-15-20-25-30-35-40-45-50-55-. I search in jquery.clockpicker-min.js  but its hard; If anybody know how//
i have check he other post on 30 minute step and doesb't run for me
Thanks

+1

+1

Duplicate of #51


Symbolise Edition's type-specific field keys

Currently each subclass of Edition ends up with its #fields_to_copy as a mixture of symbols and strings

Well spotted, thanks :+1:


XSLT documentation is misleading

XSLT configuration docs seem to suggest that the file: URI scheme is supported for the quarkus.camel.xslt.sources property.
But the extension seems to only be able to handle the classpath resources.
Build step org.apache.camel.quarkus.component.xslt.deployment.XsltProcessor#xsltResources threw an exception: java.lang.RuntimeException: URI scheme 'file:' not supported for build time compilation of XSL templates. Only 'classpath:' URIs are supported
	at org.apache.camel.quarkus.component.xslt.deployment.BuildTimeUriResolver.resolve(BuildTimeUriResolver.java:41)
	at org.apache.camel.quarkus.component.xslt.deployment.XsltProcessor.xsltResources(XsltProcessor.java:95)

Yes, the docs is out of date. My fault, I can fix it unless you started already.

Thanks. Please go ahead and fix whenever you get time :+1:


Error running tests

Currently, I import the obsidian module in the fileDoc.ts as follows:
import type { App } from "obsidian";

As part of removing the path library from the code, I have switched to use normalizePath function as seen on fileDoc.ts on branch remove-path-api as follows:
import { FileSystemAdapter, normalizePath } from "obsidian";

With this changes, which eliminates the usage of type from the import statement, my tests no longer work as seen in this Action run.
Run npm run test

><EMAIL_ADDRESS>test /home/runner/work/obsidian-readwise/obsidian-readwise
> mocha -r ts-node/register tests/*.ts

Error: Cannot find module 'obsidian'
Require stack:
- /home/runner/work/obsidian-readwise/obsidian-readwise/src/fileDoc.ts
- /home/runner/work/obsidian-readwise/obsidian-readwise/tests/fileDoc.ts
- /home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/mocha/lib/esm-utils.js
- /home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/mocha/lib/mocha.js
- /home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/mocha/lib/cli/one-and-dones.js
- /home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/mocha/lib/cli/options.js
- /home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/mocha/bin/mocha
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (/home/runner/work/obsidian-readwise/obsidian-readwise/src/fileDoc.ts:4:1)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Module.m._compile (/home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/ts-node/src/index.ts:1056:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Object.require.extensions.<computed> [as .ts] (/home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/ts-node/src/index.ts:1059:12)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (/home/runner/work/obsidian-readwise/obsidian-readwise/tests/fileDoc.ts:3:1)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Module.m._compile (/home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/ts-node/src/index.ts:1056:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Object.require.extensions.<computed> [as .ts] (/home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/ts-node/src/index.ts:1059:12)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.exports.requireOrImport (/home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/mocha/lib/esm-utils.js:42:12)
    at Object.exports.loadFilesAsync (/home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/mocha/lib/esm-utils.js:55:34)
    at Mocha.loadFilesAsync (/home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/mocha/lib/mocha.js:473:19)
    at singleRun (/home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/mocha/lib/cli/run-helpers.js:125:15)
    at exports.runMocha (/home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/mocha/lib/cli/run-helpers.js:190:10)
    at Object.exports.handler (/home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/mocha/lib/cli/run.js:362:11)
    at /home/runner/work/obsidian-readwise/obsidian-readwise/node_modules/yargs/build/index.cjs:443:71
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>test: `mocha -r ts-node/register tests/*.ts`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/runner/.npm/_logs/2021-04-13T12_38_37_318Z-debug.log
Error: Process completed with exit code 1.

@renehernandez This is a known problem and limitation of the existing obsidian API.
Because the "obisidian" npm package only contains the declaration file obsidian.d.ts, we don't have access to the "real" code when running outside the obsidian app. This means that you won't be able to use any function / class from obsidian in your tests.
To run unit tests, you would have to run the test code in the obsidian app, like a plugin.
This is not an ideal solution, because this defeats the purpose of testing frameworks like mocha, jest, ....
I think this is what the obsidian-outliner (https://github.com/vslinko/obsidian-outliner) is doing if you want an example.
I don't really like this solution, and I think we should find a solution to be able to use testing frameworks from outside the obsidian app.
I'm curious of what @lishid thinks about this.

If your code is using functions and classes from obsidian's package, then running it from within Obsidian as a plugin is currently the only way right now. You could tweak the codebase to isolate code that's purely functional and does not depend on Obsidian's API for your tests, or attempt to mock out the obsidian package.
It's definitely not ideal, but designing a system that can accurately emulate the app's environment is fairly challenging. Perhaps we'll spend some time thinking about this later once the app is more mature and the API is more stable.

I was able to abstract the usage of the filesystem capabilities from obsidian through an internal interface and depend on said interface instead of FileSystemAdapter directly. That way I can introduce a fake object during test to verify the logic I wanted in the FileDoc object.
PR: https://github.com/renehernandez/obsidian-readwise/pull/26
@lishid @SilentVoid13 Thanks for the feedback and suggestions

There's a couple of ways to test plugins at this point. We might consider providing an official framework for testing in the future.
Here are some samples of tests:

https://github.com/renehernandez/obsidian-readwise/tree/main/tests
https://github.com/SilentVoid13/Templater/tree/master/tests

Frameworks:

https://github.com/trashhalo/obsidian-plugin-e2e-test
https://github.com/motif-software/obsimian

If anyone just needs to test editor-related functionality, I've had success substituting CodeMirror as the editor on which my tests run (that's what Obsidian uses under the hood anyway).
For example:

Jest setup: https://github.com/timhor/obsidian-editor-shortcuts/commit/d37060f077d4c51e13bea816d177256e573e2a1a
Test files: timhor/obsidian-editor-shortcuts@master/__tests__

Test files: timhor/obsidian-editor-shortcuts@master/tests

That URL gives a 404 now
It's now:

timhor/obsidian-editor-shortcuts@master/src/__tests__

For anyone else finding this issue when searching for help testing Obsidian plugin code, there's now a set of notes on the Obsidian Hub:
for Plugin Developers to Automate Tests
Amongst other things, the above links to ...
How to test plugin code that uses Obsidian APIs
.... which cribs heavily from this issue, and will - I hope - be updated over time as the community learns more about automated testing for plugin code.

I found a way to mock interfaces with the library 'jest-mock-extended'
here's an example:
import { MockProxy, mock, mockDeep, DeepMockProxy } from 'jest-mock-extended';
import { labTest1 } from 'mock/labTest';
import { App, TFile } from 'obsidian';
test('test', () => {
    const tfileArrayMock: MockProxy<TFile[]> = mock<TFile[]>();
    tfileArrayMock
    // @ts-ignore
    const mockObj: DeepMockProxy<App> = mockDeep<App>();
    global.app = mockObj;
    mockObj.vault.getFiles.mockReturnValue(fakeGetFilesResponse);
    expect(labTest1()).toEqual(fakeGetFilesResponse);
});

const fakeGetFilesResponse: TFile[] = [
    {
        "name": "file1",
        "path": "path1",
        "parent": {
            "name": "folder1",
            "children": [
                {
                    "name": "file2",
                    "path": "path2",
                    "vault": null,
                    "parent": null,
                },
            ],
            "isRoot": () => true,
            "vault": null,
            "path": "path1",
            "parent": null
        },
        "basename": "file1",
        "vault": null,
        "extension": "",
        "stat": null
    },
    {
        "name": "file2",
        "path": "path2",
        "parent": {
            "name": "folder1",
            "children": [
                {
                    "name": "file2",
                    "path": "path2",
                    "vault": null,
                    "parent": null,
                },
            ],
            "isRoot": () => true,
            "vault": null,
            "path": "path1",
            "parent": null
        },
        "basename": "file2",
        "vault": null,
        "extension": "",
        "stat": null
    },
];

Where labTest1() is
export function labTest1() {
    return app.vault.getFiles()
}

The current problem of this is a limitation of Typescript with recursive typing. You need to add  // @ts-ignore behind mockDeep<App>(); and this rule on your .eslintrc.js
rules: {
        "@typescript-eslint/ban-ts-comment": [
          "error",
          {
            "ts-ignore": false
          }
        ],
    },

It works!

How about we just include a simple mock with the obsidian API package that mocks the logic and return values behind these functions? Nothing graphical. Shouldn't be too hard and would at least restore some functionality.


Indicate nameprep support

IDN labels are supposed to be normalized using nameprep before being converted into punycode.  nameprep is what enables case-insensitive comparisons of IDN labels, the removal of invalid characters, detection of bidirectional strings, and more.
Does punycode.js support normalization via nameprep? No.
Add documentation to warn users.

Would you like to submit a pull request for this?

I'm thinking we need a primer on the subject....

https://github.com/mathiasbynens/todo/issues/9


MUMMNG-3243 Changing help url for uw-system schools

Switching help url from the base KB page to a "Getting Help with MyUW System Portal" page.

Contributor License Agreement adherence:

[x] This Contribution is under the terms of Individual Contributor License Agreements (and also Corporate Contributor License Agreements to the extent applicable) appearing in the Apereo CLA roster.

Coverage remained the same at 39.199% when pulling 023e57f734adf17b29bf9dd6fbe7548f92fab9e3 on davidmsibley:master into aaef37cc992d818bb400d59b508c869a97f6d3e0 on UW-Madison-DoIT:master.


Fix API ELBs SSL healthcheck endpoint

What this PR does / why we need it:
We were observing thousands of TLS handshake error in the kube-apiserver logs coming from ELB ENIs. Updating the ELB's healthcheck fixes it.
Sep 14 02:06:54 ip-10-1-31-80.eu-west-2.compute.internal apiserver[18739]: I0914 02:06:54.699402   18739 logs.go:41] http: TLS handshake error from <IP_ADDRESS>:50152: EOF
Sep 14 02:06:57 ip-10-1-31-80.eu-west-2.compute.internal apiserver[18739]: I0914 02:06:57.644306   18739 logs.go:41] http: TLS handshake error from <IP_ADDRESS>:56402: EOF
Sep 14 02:07:14 ip-10-1-31-80.eu-west-2.compute.internal apiserver[18739]: I0914 02:07:14.207835   18739 logs.go:41] http: TLS handshake error from <IP_ADDRESS>:24194: EOF
Sep 14 02:07:14 ip-10-1-31-80.eu-west-2.compute.internal apiserver[18739]: I0914 02:07:14.209522   18739 logs.go:41] http: TLS handshake error from <IP_ADDRESS>:2698: EOF

/ok-to-test

Thanks @lostick, this was bothering me looking at looks aswell. Just not enough to fix it :slightly_smiling_face:
/approve
/lgtm


NSArray BinarySearch tests fail on OSX

[ RUN      ] NSArray.BinarySearchInsertionIndex
Foundation/NSArrayTests.mm:278: Failure
Value of: objectIndexInArray(array, 11, 0, array.count, 0) == NSNotFound
Actual: false
Expected: true
NSArray return NSNotFound if object is not found.
[  FAILED  ] NSArray.BinarySearchInsertionIndex (0 ms)
[ RUN      ] NSArray.BinarySearch
Foundation/ReferenceFoundation/TestNSArray.mm:154: Failure
Value of: NSNotFound
Actual:<PHONE_NUMBER>854775807
Expected: notFound
Which is: -1
NSArray return NSNotFound if object is not found.
[  FAILED  ] NSArray.BinarySearch (0 ms)
[ RUN      ] NSArray.BinarySearchFringeCases
Foundation/ReferenceFoundation/TestNSArray.mm:310: Failure
Value of: NSNotFound
Actual:<PHONE_NUMBER>854775807
Expected: notFoundInEmptyArray
Which is: -1
Empty NSArray return NSNotFound for any valid arguments.
[  FAILED  ] NSArray.BinarySearchFringeCases (0 ms)
Seems like they are all related to expecting NSNotFound and not getting it.

This, from the build warnings, seems to have something to do with it:
Foundation/NSArrayTests.mm:287:37: warning: comparison of constant<PHONE_NUMBER>854775807 with expression of type 'int' is always false [-Wtautological-constant-out-of-range-compare]
ASSERT_TRUE_MSG(notFoundInRange == NSNotFound, @"NSArray return NSNotFound if object is not found.");
might be a signed/unsigned thing?


Cannot install torch 2.1.0 as dependencies as this is deprecated

I was trying to pip install thru following command and had following error:
(.venv)(base) ~/PycharmProjects/musicGeneration git:[master]
python3 -m pip install -U git+https://github.com/facebookresearch/audiocraft#egg=audiocraft
Collecting audiocraft
Cloning https://github.com/facebookresearch/audiocraft to /tmp/pip-install-53xg7lqu/audiocraft_351d39e2e483418c92732d6aa7e5699b
Running command git clone --filter=blob:none --quiet https://github.com/facebookresearch/audiocraft /tmp/pip-install-53xg7lqu/audiocraft_351d39e2e483418c92732d6aa7e5699b
Resolved https://github.com/facebookresearch/audiocraft to commit 72cb16f9fb239e9cf03f7bd997198c7d7a67a01c
Preparing metadata (setup.py) ... done
Collecting av==11.0.0 (from audiocraft)
Using cached av-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.5 kB)
Collecting einops (from audiocraft)
Using cached einops-0.8.0-py3-none-any.whl.metadata (12 kB)
Collecting flashy>=0.0.1 (from audiocraft)
Using cached flashy-0.0.2.tar.gz (72 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting hydra-core>=1.1 (from audiocraft)
Using cached hydra_core-1.3.2-py3-none-any.whl.metadata (5.5 kB)
Collecting hydra_colorlog (from audiocraft)
Using cached hydra_colorlog-1.2.0-py3-none-any.whl.metadata (949 bytes)
Collecting julius (from audiocraft)
Using cached julius-0.2.7.tar.gz (59 kB)
Preparing metadata (setup.py) ... done
Collecting num2words (from audiocraft)
Using cached num2words-0.5.13-py3-none-any.whl.metadata (12 kB)
Requirement already satisfied: numpy in ./.venv/lib/python3.12/site-packages (from audiocraft) (1.26.4)
Collecting sentencepiece (from audiocraft)
Using cached sentencepiece-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.7 kB)
Collecting spacy>=3.6.1 (from audiocraft)
Using cached spacy-3.7.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (27 kB)
INFO: pip is looking at multiple versions of audiocraft to determine which version is compatible with other requirements. This could take a while.
ERROR: Could not find a version that satisfies the requirement torch==2.1.0 (from audiocraft) (from versions: 2.2.0, 2.2.1, 2.2.2, 2.3.0)
ERROR: No matching distribution found for torch==2.1.0

I checked late. I also recently experienced this issue too.
In my case, the issue was resolved by changing the python version.
When issue occured, python version of my .venv is 3.12.
To resolve this issue,

download & install python 3.10
in cmd, pip -m venv .venv
in .venv,  pip install --upgrade pip setuptools
python -m pip install -U git+https://github.com/facebookresearch/audiocraft#egg=audiocraft

and done.

I checked late. I also recently experienced this issue too.
In my case, the issue was resolved by changing the python version.
When issue occured, python version of my .venv is 3.12.
To resolve this issue,

download & install python 3.10
in cmd, pip -m venv .venv
in .venv, pip install --upgrade pip
python -m pip install -U git+https://github.com/facebookresearch/audiocraft#egg=audiocraft

and done.

You must use Python 3.9 on your system for all dependencies to interwork correctly. See here: https://github.com/facebookresearch/audiocraft/issues/475#issuecomment-2260424211

pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu118


docs: document mach create-mach-enviroment

The create-match-environment command is not discussed as part of the installation procedure while it might be needed when working with a completely fresh install.  This is not done automatically, though the user is going to be told to do that.

+1
Thanks @pgj


[zigbee2mqttassistant] Add chart

Special notes for your reviewer:
A web gui to go along with zigbee2mqtt
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [radarr])

Hmm, the linter failed, but wouldn't say which field it wants :/

Possible to make this a sidecar to the zigbee2mqtt chart?

@dcplaya Sure it's possible. Is that the preferred way?

I would vote to add it as a sidecar to zigbee2mqtt as well @elfhack

I don't think there is a necessarily "preferred" way but since most people would never run the GUI without running the underlying zigbee2mqtt, I think it makes the most sense. More of a "1 stop shop" type of thing

Fair enough. I'll get on that tommorow then :)


Add private DNS info to breakage report

Task/Issue URL: https://app.asana.com/0/488551667048375/1204814602846193/f
Description
Add private DNS info to breakage report
Steps to test this PR
N/A

Current dependencies on/for this PR:

develop

PR #3259   👈

This comment was auto-generated by Graphite.


Observable and applicationOn are emitting too many times on app.component.ts

Describe the bug
Hi, I have a very weird bug (?) in my test app. When user login (it's only a mock but shows enough the problem),  then move that app to the background (home button on my device), then back to the app and repeat that steps few times, then if the user clicks logout button, the subscription will emit as many times as I moved the app to the background and back before.
So if I move app to the background and open that app 5 times, then authState emits 5 times in console.logs
It's simple code.
app.component.ts
import { Component, OnInit } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { ApplicationEventData, on as applicationOn, suspendEvent } from 'tns-core-modules/application';

const user$ = new BehaviorSubject(null);

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss'],
})
export class AppComponent implements OnInit {
  isLoggedIn: any;

  constructor() {
    console.log('constructor');
    applicationOn(suspendEvent, (args: ApplicationEventData) => {
      console.log('AppComponent suspendEvsent');
    });
  }

  get authState(): Observable<any> {
    return user$.asObservable();
  }

  ngOnInit() {
    this.isLoggedIn = this.authState;
    this.authState.subscribe((user) => {
      console.log('authState', !!user);
    });
  }

  login() {
    user$.next({ isloggedIn: true, name: 'Gienek' });
  }

  logout() {
    user$.next(null);
  }
}

app.component.html
<StackLayout class="p-20">
  <button *ngIf="isLoggedIn | async else logoutBtn" text="Logout" (tap)="logout()"></button>
  <ng-template #logoutBtn>
    <button text="Login" (tap)="login()"></button>
  </ng-template>
</StackLayout>

import { platformNativeScriptDynamic } from 'nativescript-angular/platform';

import { AppModule } from<EMAIL_ADDRESS>
// A traditional NativeScript application starts by initializing global objects,
// setting up global CSS rules, creating, and navigating to the main page.
// Angular applications need to take care of their own initialization: modules, components, directives, routes, DI providers.
// A NativeScript Angular app needs to make both paradigms work together,
// so we provide a wrapper platform object, platformNativeScriptDynamic,
// that sets up a NativeScript application and can bootstrap the Angular framework.
platformNativeScriptDynamic().bootstrapModule(AppModule);

Another thing is console.log in suspendEvent. It is emitting also the wrong number of times (the same suspendEvent code in main.tns.ts is emitting only once, what is correct).
The weird thing is if I try to repeat this on https://play.nativescript.org/?template=play-ng&id=eXX8RG&v=2 it's working properly! Absolutely the same code! What is happening? Something wrong with angular.json? The problem occurs in android emulator and a real device.
 I have the same situation wherever I define some application resume event, on Android (iOS works fine) the doSomething() will be executed for the number of times that I suspend and resume the app.
ngOnInit() {
  applicationOn(resumeEvent, (args: ApplicationEventData) => {
    doSomething()
  });
}

Is this in a app that you are currently developing and using HMR?    I have seen where when I make a change to my code the HMR can cause the events to be re-registered.

In addition, you could also add a console log to the ngOnInt() to see if it is getting called multiple times as it will add a new resume event each time it executes...

@NathanaelA

Indeed an app that still runs on NS 6.5

$ tns info
✔ Getting NativeScript components versions information...
⚠ Update available for component nativescript. Your current version is 6.5.1 and the latest available version is 7.0.8.
⚠ Update available for component @nativescript/core. Your current version is 6.5.20 and the latest available version is 7.0.9.
✔ Component tns-android has 6.5.3 version and is up to date.
✔ Component tns-ios has 6.5.2 version and is up to date.

Regarding HMR I actually disable HMR to avoid all kind of things, so I just run:
$ tns run android --no-hmr

Yes I have that in my code, for example I have two places where I listen to resume events and then I will see console log output like (in this case I would have suspended/resumed the app 4 times:

JS: ChatProvider resumeEvent: updating chats...
JS: ChatProvider resumeEvent: updating chats...
JS: ChatProvider resumeEvent: updating chats...
JS: ChatProvider resumeEvent: updating chats...
JS: checkAndroidUpdate: onFailure
JS: checkStoreUpdate: Install Error(-6): The download/install is not allowed, due to the current device state (e.g. low battery, low disk space, ...). (https://developer.android.com/reference/com/google/android/play/core/install/model/InstallErrorCode#ERROR_INSTALL_NOT_ALLOWED)
JS: checkAndroidUpdate: onFailure
JS: checkStoreUpdate: Install Error(-6): The download/install is not allowed, due to the current device state (e.g. low battery, low disk space, ...). (https://developer.android.com/reference/com/google/android/play/core/install/model/InstallErrorCode#ERROR_INSTALL_NOT_ALLOWED)
JS: checkAndroidUpdate: onFailure
JS: checkStoreUpdate: Install Error(-6): The download/install is not allowed, due to the current device state (e.g. low battery, low disk space, ...). (https://developer.android.com/reference/com/google/android/play/core/install/model/InstallErrorCode#ERROR_INSTALL_NOT_ALLOWED)
JS: checkAndroidUpdate: onFailure
JS: checkStoreUpdate: Install Error(-6): The download/install is not allowed, due to the current device state (e.g. low battery, low disk space, ...). (https://developer.android.com/reference/com/google/android/play/core/install/model/InstallErrorCode#ERROR_INSTALL_NOT_ALLOWED)

So I just added a console log to the ngOnInit of the AppComponent and indeed on Android every time I suspend/resume the app binds again (but not on iOS). I mean I could use a flag to ensure that the binding happens only once, but since iOS doesn't behave like that shouldn't Android be consistent with that?

So something is calling the ngOnInit again.   Their could be any number of reasons this is occurring.   Some phones will swap out the app and then page it back in on resume.
One thing you can do is do is add a console.log((new Error()).stack); to the ngOnInit and see what the call stack is when it resumes to try and figure out why ngOnInit is being called on every resume...

@NathanaelA First off thanks for your help!
I assumed this is just an Android vs iOS thing because it happens on two real Android devices and the simulator as well. Seems like the stack is identical on both launch and resume and that also on resume it is running ApplicationRef.bootstap (I would assume this should not run on resume).
This is the stack on app launch:
Error
    at new ZoneAwareError (file:///data/data/tech.mokum.shine/files/app/vendor.js:91745:33)
    at AppComponent.module.exports.push../app/app.component.ts.AppComponent.ngOnInit (file:///data/data/tech.mokum.shine/files/app/bundle.js:640:22)
    at checkAndUpdateDirectiveInline (file:///data/data/tech.mokum.shine/files/app/vendor.js:59205:19)
    at checkAndUpdateNodeInline (file:///data/data/tech.mokum.shine/files/app/vendor.js:67603:20)
    at checkAndUpdateNode (file:///data/data/tech.mokum.shine/files/app/vendor.js:67565:16)
    at prodCheckAndUpdateNode (file:///data/data/tech.mokum.shine/files/app/vendor.js:68106:5)
    at Object.eval [as updateDirectives] (ng:///AppModule/AppComponent_Host.ngfactory.js:12:9)
    at Object.updateDirectives (file:///data/data/tech.mokum.shine/files/app/vendor.js:67894:72)
    at Object.checkAndUpdateView (file:///data/data/tech.mokum.shine/files/app/vendor.js:67547:14)
    at<EMAIL_ADDRESS>(file:///data/data/tech.mokum.shine/files/app/vendor.js:58794:22)
    at<EMAIL_ADDRESS>(file:///data/data/tech.mokum.shine/files/app/vendor.js:65217:26)
    at<EMAIL_ADDRESS>(file:///data/data/tech.mokum.shine/files/app/vendor.js:65272:14)
    at<EMAIL_ADDRESS>(file:///data/data/tech.mokum.shine/files/app/vendor.js:65189:14)
    at file:///data/data/tech.mokum.shine/files/app/vendor.js:64904:81
    at Array.forEach (<anonymous>)

This is the stack on app resume:
Error
    at new ZoneAwareError (file:///data/data/tech.mokum.shine/files/app/vendor.js:91745:33)
    at AppComponent.module.exports.push../app/app.component.ts.AppComponent.ngOnInit (file:///data/data/tech.mokum.shine/files/app/bundle.js:640:22)
    at checkAndUpdateDirectiveInline (file:///data/data/tech.mokum.shine/files/app/vendor.js:59205:19)
    at checkAndUpdateNodeInline (file:///data/data/tech.mokum.shine/files/app/vendor.js:67603:20)
    at checkAndUpdateNode (file:///data/data/tech.mokum.shine/files/app/vendor.js:67565:16)
    at prodCheckAndUpdateNode (file:///data/data/tech.mokum.shine/files/app/vendor.js:68106:5)
    at Object.eval [as updateDirectives] (ng:///AppModule/AppComponent_Host.ngfactory.js:12:9)
    at Object.updateDirectives (file:///data/data/tech.mokum.shine/files/app/vendor.js:67894:72)
    at Object.checkAndUpdateView (file:///data/data/tech.mokum.shine/files/app/vendor.js:67547:14)
    at<EMAIL_ADDRESS>(file:///data/data/tech.mokum.shine/files/app/vendor.js:58794:22)
    at<EMAIL_ADDRESS>(file:///data/data/tech.mokum.shine/files/app/vendor.js:65217:26)
    at<EMAIL_ADDRESS>(file:///data/data/tech.mokum.shine/files/app/vendor.js:65272:14)
    at<EMAIL_ADDRESS>(file:///data/data/tech.mokum.shine/files/app/vendor.js:65189:14)
    at file:///data/data/tech.mokum.shine/files/app/vendor.js:64904:81
    at Array.forEach (<anonymous>)

By the way: I noticed there is a difference if I suspend by going to the home screen and then resume, which will call ngOnInit again an result in the above call stack, or whether I lock the screen when the app is running en then unlock, which will not call ngOnInit again. So maybe there is something in what you are saying that Android may have different ways of handling resume events.
Any idea as to how we could mitigate this?

Can you check your manifest and see if android:launchMode is defined as singleTask? It must be, otherwise it'll create a new instance of the app when you open it

@edusperoni you are right this solves the issue!
The only thing I am a little worried about is this note in the Android manifest docs:

The other modes — singleTask and singleInstance — are not appropriate for most applications, since they result in an interaction model that is likely to be unfamiliar to users and is very different from most other applications.

I don't really understand why it might no be appropriate for most applications. Do you have any idea in what kind of situations it could cause problems? If I understand correctly I can cause activities to be removed. Should I assume that in NativeScript it will always be safe?
Thanks a lot!

NativeScript uses a single Activity for everything so SingleTask is the best most for most NS applications to eliminate any weirdness especially with Angular as the flavor.


PItchPhase: Coins players pitch into the pot are not increasing the pot value

I noticed this was a comment by matt on the scoring issue I made #151  . Though related, feels like a different issue, so posting here. Lets see if we can reproduce.
"In a 5-person game. After having the first non-decider player buy additional time twice, and then the following player buy additional time once, even though both players were deducted the correct amount of coins, the amount of coins in the pot stayed at 500 throughout.
Double down is working correctly"

confirmed fixed on production


Combined control architecture including MRAC , Lateral and longitudnal controller.

Is there any reference to get a clear idea of how the control commands flow in a control architecture ? Also the explanation on how the flow occurs between different controllers, MRAC, MPC and LQR  and how Lateral and Longitudinal controller work simultaneously.

Any support on this  @lfcarol


Make JDA bubble up websocket crashes as ExceptionEvent

General Troubleshooting

[X] I have checked for similar issues on the Issue-tracker.
[X] I have checked for PRs that might already address this issue.

Version of JDA
5.0.0-beta.22
Expected Behaviour
It should not hang on jda.awaitReady(); indefinitely when the websocket encounters an error.
In my situation I had badly updated my libraries and had in my pom this :
<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.13.3</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>2.17.0</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.17.0</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.datatype</groupId>
			<artifactId>jackson-datatype-jsr310</artifactId>
			<version>2.17.0</version>
		</dependency>

This de-sync in versions caused the ListenerManager#callOnConnected from nv-websocket-client to throw java.lang.NoSuchMethodError: 'void com.fasterxml.jackson.core.util.BufferRecycler.releaseToPool()' which is not handled and reported to the end user because it seems from what I have seen that the class WebSocketClient ignores the handleCallbackError (I found out that AudioWebSocket actually does and correctly "rethrows" it by wrapping it in an ExceptionEvent)
My suggestion is that it should log the error somewhere or allow me to catch it by listening to ExceptionEvents (probably both)
(there is other methods like onUnexpectedError which might need to be handled by WebSocketClient too I guess ? maybe all others onXError, looks like onError is already implemented correctly)
Code Example for Reproduction Steps
JDA jda = JDABuilder.createDefault(token)
                    .setActivity(Activity.listening("..."))
                    .build();

            try {
                jda.awaitReady(); //hangs there
            } catch (InterruptedException e) {
                System.err.println(e);
                return;
            }

Code for JDABuilder or DefaultShardManagerBuilder used
JDA jda = JDABuilder.createDefault(token)
                    .setActivity(Activity.listening("..."))
                    .build();

Exception or Error
No error when it should be (see expected behaviour)

This should be improved in 5.0.0-beta.24