bevy_reflect: Add ReflectBox to remotely reflect Box

Objective
Closes #3392
Closes #3400
Closes #6098
Closes #9929
There are plenty of times where we want to reflect a type that itself contains reflected data:
struct Player {
    weapon: Box<dyn Reflect>
}

Unfortunately, Box<dyn Reflect>, does not implement Reflect, making this impossible.
#3400 does a great job at implementing Reflect for Box<dyn Reflect>, but it has one potential issue: double-boxing.
Double-boxing occurs when we erase the type of Box<T> and put it inside another Box. When Box<T> implements the same bounds required by T, this becomes very easy to do accidentally.
For instance, suppose Box<dyn Reflect> did implement Reflect. That would make this possible:
fn make_box<T: Reflect>(value: T) -> Box<dyn Reflect> {
    Box::new(value)
}

let foo = make_box(123); // Creates: Box<i32>
let bar = make_box(foo); // Creates: Box<Box<i32>>
let baz = make_box(bar); // Creates: Box<Box<Box<i32>>>

And while we can get back to a single box through each Box recursively calling a method like Reflect::into_reflect (i.e. Box<Box<Box<i32>>> delegates to Box<Box<i32>> which delegates to Box<i32> which delegates to i32 which results in Box<i32>), this is not very efficient—both in terms of performance and memory.
This PR aims to bring an alternative approach to the table, based on the newly merged remote reflection feature (#6042). The original idea for this PR comes from @soqb.
Solution
Introduce a new ReflectBox<T> wrapper type that can be used to remotely reflect Box<T>.
use bevy_reflect::boxed::ReflectBox;

#[derive(Reflect)]
#[reflect(from_reflect = false)]
struct Player {
    #[reflect(remote = ReflectBox<dyn Reflect>)]
    weapon: Box<dyn Reflect>,
}

ReflectBox<T> cannot be publicly constructed or downcast to. It only exists hidden as the underlying machinery for reflecting Box<T>. This makes it very difficult to accidentally double-box it. In fact, I'm 99% sure you'll never accidentally have that happen (there are ways to force this if you're feeling rebellious though).
The way it works is by defining a couple new traits (both of which are hidden using #[doc(hidden)]): ToPartialReflect and ToReflect. These traits have a blanket impl defined for all types T: PartialReflect and T: Reflect, respectively.
However, they also have custom impls for the corresponding trait objects: dyn PartialReflect and dyn Reflect.
And because ReflectBox<T> requires T: ToPartialReflect, it works for all three: Box<T>, Box<dyn PartialReflect>, and Box<dyn Reflect>.
I chose to make these traits public to allow for other trait objects to join in the fun! For example, we could refactor our Player struct to look like this:
use bevy_reflect::boxed::ReflectBox;

trait Weapon: Reflect {
    fn damage(&self) -> u32;
}

impl ToPartialReflect for dyn Weapon {/* ... */}
impl ToReflect for dyn Weapon {/* ... */}
impl TypePath for dyn Weapon {/* ... */}

#[derive(Reflect)]
#[reflect(from_reflect = false)]
struct Player {
    // Now our Rust API can directly call `Weapon` methods
    // AND we can still reflect it
    #[reflect(remote = ReflectBox<dyn Weapon>)]
    weapon: Box<dyn Weapon>,
}

Caveats
FromReflect

[!note]
This limitation is also an issue for #3400.

You might have noticed the #[reflect(from_reflect = false)] attributes.
We have to opt out of FromReflect because dyn PartialReflect and dyn Reflect are not aware of FromReflect (i.e. they are not subtraits of FromReflect). This means we can't delegate to the FromReflect impl, even if it does exist for the underlying type.
Enums

[!note]
This limitation is also an issue for #3400.

Unfortunately, due to the lack of FromReflect, this approach can't be used in enums.
This is due to enums internally relying on FromReflect within their PartialReflect::try_apply method body, which calls FromReflect when it needs to replace the current variant with a new one.
Usage as a Type Parameter

[!note]
This limitation only applies to #3400 where the type parameter has a FromReflect bound (or any other bound that Box<dyn Reflect> can't satisfy). For example, you also couldn't define a Vec<Box<dyn Reflect>> using #3400.

Since this approach requires the use of remote reflection, it may not be possible to handle types where Box is being used as a type parameter. For example, Vec<Box<dyn Reflect>> and Option<Box<dyn Reflect>> are not possible, even with this PR in place.
In some cases, it may be possible to remedy this with additional remote reflection. However, it's tricky to appease the compiler without monomorphizing the type down to a dedicated type (i.e. instead of supporting MyType<Box<dyn Reflect>>, having a separate MyTypeReflectBox which removes the generic and assumes Box<dyn Reflect> in its place).
Future PRs may explore adding additional types similar to ReflectBox for common types like Vec and Option, but these will also be limited in the same way ReflectBox is now.
Serialization
While the current serialization logic isn't the most efficient (we have to do some string comparisons to determine if the type is a ReflectBox or not), we are able to serialize ReflectBox just like any other type.
Currently, it will serialize concrete Box<T> instances as normal and Box<dyn Trait> as a new type map.
For example, if we serialized the following type:
#[derive(Reflect)]
#[reflect(from_reflect = false)]
struct MyStruct {
    #[reflect(remote = ReflectBox<dyn PartialReflect>)]
    partial_reflect: Box<dyn PartialReflect>,
    #[reflect(remote = ReflectBox<dyn Reflect>)]
    full_reflect: Box<dyn Reflect>,
    #[reflect(remote = ReflectBox<i32>)]
    concrete: Box<i32>,
}

let value = MyStruct {
    partial_reflect: Box::new(123),
    full_reflect: Box::new(456),
    concrete: Box::new(789),
};

We'd get the following RON:
{
    "my_crate::MyStruct": (
        partial_reflect: {"i32": 123},
        full_reflect: {"i32": 456},
        concrete: 789,
    )
}

Open Questions

Are the limitations of this PR worth the avoidance of double-boxing? Or should we continue with #3400 instead?
Please note that we may still choose to go with this more conservative approach while we debate the true risks of #3400. We can do this because most usages of Box under this PR will be fully compatible with #3400—the only exception would be custom Box<dyn SomeOtherTrait> usages, which will need their own solution (maybe a macro?). Of the compatible cases, the only migration needed will be to remove the #[reflect(remote = ReflectBox<...>)] field attributes wherever they are used.

Are there better ways to handle serialization other than fetching the type path and comparing the prefix? We already do this for Option types, but that's at least only performed in specific scenarios.
One thing we could do is add a dedicated method to PartialReflect called is_pointer or is_indirect, which we can then call directly to determine whether we're a ReflectBox or not.
Alternatively, we could change the PartialReflect::is_dynamic method on ReflectBox to return true instead of delegating to the inner type. I don't really like this option because it would be the only method where we do this and it would almost certainly break places that rely on is_dynamic for their control flow.
One last option could be to change the signature of the largely unused PartialReflect::serializable method to take in a reference to the TypeRegistry. Then we could have ReflectBox return a ReflectSerializer containing the inner data. I think this would be my preferred approach considering it doesn't really change the behavior in an unexpected way (unlike modifying is_dynamic). It would just technically be a breaking change.

Should the ToPartialReflect and ToReflect traits be #[doc(hidden)]? I did this to prevent them from coming up during autocomplete and so that users don't accidentally misuse them (although, I don't think you can really "misuse" them). But since it's really nice for users to be able to get this feature to work with their own trait objects, should we consider making it more public?

Testing
You can test the changes locally by running:
cargo test --package bevy_reflect

Showcase
A common occurrence when reflecting a type is wanting to store reflected data within a reflected type. This wasn't possible before, but now it is using the new bevy_reflect::boxed::ReflectBox type and remote reflection:
use bevy_reflect::boxed::ReflectBox;

#[derive(Reflect)]
struct Sword {
    damage: u32
}

#[derive(Reflect)]
// Keep in mind that `ReflectBox` does not implement `FromReflect`.
// Because of this, we will need to opt-out of the automatic `FromReflect` impl:
#[reflect(from_reflect = false)]
struct Player {
    // Tell the `Reflect` derive to remotely reflect our `Box<dyn Reflect>`
    // using the `ReflectBox<dyn Reflect>` wrapper type:
    #[reflect(remote = ReflectBox<dyn Reflect>)]
    weapon: Box<dyn Reflect>
}

let player = Player {
    // We can create our `Box<dyn Reflect>` as normal:
    weapon: Box::new(Sword { damage: 100 })
};

// Now we can reflect `weapon`!
// Under the hood, this `dyn Reflect` is actually a `ReflectBox<dyn Reflect>`,
// and is automatically delegating all reflection methods to the inner `dyn Reflect`.
// It will automatically convert to and from `ReflectBox<dyn Reflect>` as needed.
let weapon: &dyn Reflect = player.weapon.as_reflect();
assert!(weapon.reflect_partial_eq(&Sword { damage: 100 }).unwrap_or_default());

ReflectBox<T> cannot be publicly constructed

Nitpick: it can, since ReflectRemote::into_wrapper offers a way to do so.

I would also add to the caveats that this way of reflecting a Box<dyn Reflect> will limit the operations to those that you can do on the actual underlying type contained in the Box<dyn Reflect>. Most notably you won't be able to entirely replace the Box<dyn Reflect>, changing the type of the contained value.

Are the limitations of this PR worth the avoidance of double-boxing?

IMO no: there's a lot of complexity here, both for users and maintainers. The limitations are also unpleasant, especially the one raised by SkiFire. Avoiding a modest footgun is not worth the complexity cost. I would much rather move forward this than nothing though.

Are there better ways to handle serialization other than fetching the type path and comparing the prefix?

I can't think of anything unfortunately :(

Should the ToPartialReflect and ToReflect traits be #[doc(hidden)]?

IMO no: doc(hidden) items are mysterious and frustrating to users. I'd like to avoid them in general without an extremely compelling reason.

Most notably you won't be able to entirely replace the Box, changing the type of the contained value.

i apologise if i'm really not getting it:
let mut boxed: Box<dyn Reflect> = Box::new(123u8);
boxed = Box::new(456u16);

looking at the PR description, i'm very confident all of the mentioned caveats can be solved:

FromReflect

we can definitely implement FromReflect for ReflectBox<T> by following these semantics:

for T: Sized + FromReflect, defer to individual FromReflect impls.
for T == dyn PartialReflect do nothing, the value is already the type we want.
for T == dyn Reflect, use PartialReflect::try_into_reflect to (fallibly) downcast.

usage as a type parameter.
solving this is more complicated but not outlandish and will give ergonomic benefit down the line.

essentially:

change RemoteReflect to be generic over the remote type.
introduce a reflexive impl so T: Reflect to also impl RemoteReflect<T>
introduce a new Reflectable trait:

// loosely defined as:
trait Reflectable {
    type Via: Reflect + RemoteReflect<Self>;
}

impl<T: Reflect> Reflectable for T {
    type Via = T;
}

impl<T: ToPartialReflect> Reflectable for Box<T> {
    type Via = ReflectBox<T>;
}

and then, in all relevant Reflect impls, types bind to Reflectable instead of Reflect, so something like Vec<Foo<Box<dyn Reflect>>> works seamlessly.

let mut boxed: Box<dyn Reflect> = Box::new(123u8);
boxed = Box::new(456u16);

What I mean is that you won't be able to do this if boxed is actually a field of a type and you're trying to mutate it through reflection. Something like this (I have not tested whether this compiles):
#[derive(Reflect)]
#[reflect(from_reflect = false)]
struct Foo {
    #[reflect(remote = ReflectBox<dyn Reflect>)]
    boxed: Box<dyn Reflect>,
}

let mut foo = Foo {
    boxed: Box::new(123u8),
};
let replacement: Box<dyn Reflect> = Box::new(456u16);

// Imagine that somewhere else gets `foo` as a `&mut dyn Reflect` and
// pattern matches it against a `ReflectMut::Struct`. This may an UI for example.
let reflected: &mut dyn Reflect = foo;
let ReflectMut::Struct(s) = reflected.reflect_mut() else { panic!() };
// Then it wants to change its `boxed` field to a `Box<dyn Reflect>` containing a different type.
// This is one thing it might try, but I don't think there's a way to make this work because
// any mutation will be forward to the underlying type, which of course can't change its own type.
s.field_mut("boxed").unwrap().apply(&replacement);

I'd love to have tests for all of these nasty edge cases ;)

What about Arc<dyn Reflect>?

What about Arc<dyn Reflect>?

I think we can do a similar thing here as well. It might be slightly trickier due to getting mutable access to dyn Reflect being a fallible operation. But it's possible.
At worst, we just keep the existing impl for Arc (which treats it like a value type rather than wrapping it like ReflectBox does).

Are the limitations of this PR worth the avoidance of double-boxing?

IMO no: there's a lot of complexity here, both for users and maintainers. The limitations are also unpleasant, especially the one raised by SkiFire. Avoiding a modest footgun is not worth the complexity cost. I would much rather move forward this than nothing though.

Yeah this PR is definitely more involved. I don't think it's too bad to maintain since most of the logic is just delegating to the inner Box, but it is a lot less ergonomic from a user perspective.
It should be noted that most limitations, including the one posted by SkiFire, exists on #3400 as well. The only limitation (I think) that they don't face is being able to use Box<dyn Reflect> as a type parameter. We face that issue due to remote reflection not currently being expressive enough for such cases.
I do still think that this is the safer option (and I really like that I can reflect reflection-compatible trait objects), but the user ergonomics are probably the most compelling reason to go with #3400.

Are there better ways to handle serialization other than fetching the type path and comparing the prefix?

I can't think of anything unfortunately :(

Yeah I was doing some experiments on being able to store and compare the TypeId of a "base type" via TypeInfo, but that ultimately ended up going nowhere due to issues with trait bounds.

Should the ToPartialReflect and ToReflect traits be #[doc(hidden)]?

IMO no: doc(hidden) items are mysterious and frustrating to users. I'd like to avoid them in general without an extremely compelling reason.

Fair enough. Any suggestions for making them public? Is the naming clear? Should we update the docs in any meaningful way?

What I mean is that you won't be able to do this if boxed is actually a field of a type and you're trying to mutate it through reflection.

Oof didn't think about that. Great point! Unfortunately, this is likely an issue with both this PR and #3400. We would have to either not delegate certain methods or we would have to add a new way of changing a value (which would return an Err for concrete types).
I think we can modify the methods for Reflect::set and PartialReflect::try_apply for ReflectBox to first check if the underlying type is the same or different, then decide whether to delegate or replace the value. I'll look into it!

looking at the PR description, i'm very confident all of the mentioned caveats can be solved:

FromReflect

we can definitely implement FromReflect for ReflectBox<T> by following these semantics:

for T: Sized + FromReflect, defer to individual FromReflect impls.
for T == dyn PartialReflect do nothing, the value is already the type we want.
for T == dyn Reflect, use PartialReflect::try_into_reflect to (fallibly) downcast.

Yeah I like this. It allows FromReflect to still work for types where the fields are concrete types behind the dyn Reflect/dyn PartialReflect objects.
It's still not perfect since dynamic types (such as those you get when deserializing), will always fail. But we can look into solutions for this as that's just an inherent limitation of working with proxies.

usage as a type parameter.
solving this is more complicated but not outlandish and will give ergonomic benefit down the line.

essentially:

change RemoteReflect to be generic over the remote type.
introduce a reflexive impl so T: Reflect to also impl RemoteReflect<T>
introduce a new Reflectable trait:

// loosely defined as:
trait Reflectable {
    type Via: Reflect + RemoteReflect<Self>;
}

impl<T: Reflect> Reflectable for T {
    type Via = T;
}

impl<T: ToPartialReflect> Reflectable for Box<T> {
    type Via = ReflectBox<T>;
}

and then, in all relevant Reflect impls, types bind to Reflectable instead of Reflect, so something like Vec<Foo<Box<dyn Reflect>>> works seamlessly.

I almost forgot about this! I'll try looking into it, because it would vastly improve the ergonomics.

I think we can modify the methods for Reflect::set and PartialReflect::try_apply for ReflectBox to first check if the underlying type is the same or different, then decide whether to delegate or replace the value. I'll look into it!

Starting experimenting with this. I'm not sure it's possible when using T: ?Sized, there's no way for us to downcast back to T from a Box<dyn Reflect> (Any requires Sized).
So unless we remove the generic impl (preventing custom trait object support), then it appears we aren't able to achieve this.
Feel free to correct me if I'm wrong, though!

Since the example I gave in https://github.com/bevyengine/bevy/pull/14776#issuecomment-2293830021 may seem a bit weird/artificial, here's another one that might seem more reasonable:
#[derive(Reflect)]
#[reflect(from_reflect = false)]
struct Foo {
    #[reflect(remote = crate::boxed::ReflectBox<dyn Reflect>)]
    boxed: Box<dyn Reflect>,
}

let mut foo1 = Foo {
    boxed: Box::new(123u8),
};

let foo2 = Foo {
    boxed: Box::new("foo"),
};

foo1.apply(&foo2);

Given foo1 and foo2 having the same type I would expect apply to never fail, and instead it does with:
called `Result::unwrap()` on an `Err` value: MismatchedTypes { from_type: "bevy_reflect::boxed::ReflectBox<dyn bevy_reflect::Reflect>", to_type: "u8" }

To be fair though I think #3400 has the same issue, so there isn't a better approach (yet).

Given foo1 and foo2 having the same type I would expect apply to never fail, and instead it does with:
called `Result::unwrap()` on an `Err` value: MismatchedTypes { from_type: "bevy_reflect::boxed::ReflectBox<dyn bevy_reflect::Reflect>", to_type: "u8" }

To be fair though I think #3400 has the same issue, so there isn't a better approach (yet).

I actually think #3400 might be okay because it currently only supports Box<dyn Reflect>. But if it were to try and support other trait objects it would face the same problem.
I wonder if we made T: Sized by doing ReflectBox<Box<dyn Reflect>> instead of ReflectBox<dyn Reflect> we could make the downcast work 🤔

looking at the PR description, i'm very confident all of the mentioned caveats can be solved:

FromReflect

we can definitely implement FromReflect for ReflectBox<T> by following these semantics:

for T: Sized + FromReflect, defer to individual FromReflect impls.
for T == dyn PartialReflect do nothing, the value is already the type we want.
for T == dyn Reflect, use PartialReflect::try_into_reflect to (fallibly) downcast.

Yeah I like this. It allows FromReflect to still work for types where the fields are concrete types behind the dyn Reflect/dyn PartialReflect objects.
It's still not perfect since dynamic types (such as those you get when deserializing), will always fail. But we can look into solutions for this as that's just an inherent limitation of working with proxies.

So I also looked into adding this. The only one we can potentially support right now is T: Sized + FromReflect.
Attempting to do so for dyn Reflect and dyn PartialReflect run into the same issue: the argument to FromReflect::from_reflect is a &dyn PartialReflect. So we can't just downcast use PartialReflect::try_into_reflect for ReflectBox<dyn PartialReflect>, since we're not given an owned value.
And we can't call PartialReflect::clone_value because it will almost always return a dynamic type, which will always fail PartialReflect::try_into_reflect.
Like I mentioned on Discord, we might be able to get around this by making FromReflect accessible via TypeInfo, or by using a global registry to access ReflectFromReflect. Until then, though, I don't know if it's worth adding. Maybe for T: FromReflect, but I don't expect Box<ConcreteTypeThatImplementsFromReflect> to see a lot of usage.

Alright, thanks to both @MrGVSV and @soqb for addressing my concerns :) If the limitations aren't any worse, then I'm fine to defer to you about maintenance burden. ToReflect / ToPartialReflect are both good names, and the docs are adequate. A doc test or two would be quite helpful in showing off how they're used.

Moved these to a dedicated module and updated the docs to include an example of how to implement it on custom trait objects.

As for end user ergonomics / complexity, can we get a relatively simple top-level example for how to reflect a component that has a Box<dyn Reflect>? Your PR example was nice, and it would be good to have a starting point for the workflow.

You mean an example in the repo? Yeah I can try to put one together 😄

Something like this (I have not tested whether this compiles)

could easily become:
s.field_mut("boxed").unwrap().set(replacement);

NB: i'm not sure if set actually works like this right now, but it should.

Something like this (I have not tested whether this compiles)

could easily become:
s.field_mut("boxed").unwrap().set(replacement);

NB: i'm not sure if set actually works like this right now, but it should.

I think the problem is that ReflectBox<T>::set has to do one of two things:

If the types are the same, call T::set with the given Box<dyn Reflect>
If the types are different, set ReflectBox<T> to a new ReflectBox<T> with the given Box<dyn Reflect>

The real issue is 2, since there is no way to go from Box<dyn Reflect> to Box<T>, while still allowing T: ?Sized (for dyn Reflect, dyn MyTrait, etc.), since Any::downcast does not allow for ?Sized types.

I may have a solution for this actually 🤔

FYI I just put up a new PR that uses a different approach that I think is a bit cleaner and will be easier to extend: #15532
If we decide we prefer this PR better, I'll rebase and we can continue forward with this one.

I prefer that PR too, so I'm closing this for now.


useMeQuery() doesn't run after redirection from login/register page

After redirecting from the login/register pages to the homepage, useMeQuery() does not run, it only runs after reloading from browser.
This is my navbar code:
export const Navbar: React.FC<NavbarProps> = ({}) => {
  const [{ data, fetching }] = useMeQuery();
  let body = null;
  console.log(data);
  console.log(fetching);
  const router = useRouter();

  if (fetching) {
    // Data is loading
    body = null;
  } else if (!data?.me) {
    // Not logged in
    body = (

        <Link href="/login">

Login

        </Link>
        <Link href="/register">

Register

        </Link>

    );
  } else {
    // Logged in
    body =
Hello, {data.me.username}
;
  }

  return
{body}
;
};

Not sure if it matters, but I am using router.push to redirect. I've tried router.replace but that won't work either.
Thanks!

Also this is the console output:

Nvm, I should have just kept watching

How did you solve it? I'm experiencing the same.

@lightify97 it’s solved in the video in the next 5-10 minutes I think


Reflections

Added SSR (screen space reflections) to have some reflections, they are not mirror like reflections and so they are not perfect, there are some values we can tweak
Added skybox reflections

You have to change the code style of the layouts of the blinn still but I aprove it


Internal usage classes

Chore
Describe the chore
Hello, I was thinking if we should change the access modifier of some classes to internal like MapToAttribute, RangeConverter, CustomContratResolver and EnumExtensions we don't want the user to interact with them.
Any thoughts @acupofjose

Done! Good idea.


Node.js v17 or later requires additional options

Summary
If you use Node.js v17 or later, you'll face the ERR_OSSL_EVP_UNSUPPORTED when you run npm run start.
And the workaround is the following
export NODE_OPTIONS=--openssl-legacy-provider

It would be helpful if the book mention this point in some ways.
Detail
I just started to read the book and faced an issue on chap 1's Run the server step.
Here is the error message.
node:internal/crypto/hash:69
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:138:10)
    at module.exports (/Users/tkhm/git/walk-the-dog/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/Users/tkhm/git/walk-the-dog/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/Users/tkhm/git/walk-the-dog/node_modules/webpack/lib/NormalModule.js:471:10)
    at /Users/tkhm/git/walk-the-dog/node_modules/webpack/lib/NormalModule.js:503:5
    at /Users/tkhm/git/walk-the-dog/node_modules/webpack/lib/NormalModule.js:358:12
    at /Users/tkhm/git/walk-the-dog/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/Users/tkhm/git/walk-the-dog/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at Array.<anonymous> (/Users/tkhm/git/walk-the-dog/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    at Storage.finished (/Users/tkhm/git/walk-the-dog/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
    at /Users/tkhm/git/walk-the-dog/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
    at /Users/tkhm/git/walk-the-dog/node_modules/graceful-fs/graceful-fs.js:123:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

And looks it is known issue.
ref https://github.com/webpack/webpack/issues/14532#issuecomment-947012063
And this StackOverflow's answers are well described how we can avoid this issue. (and downgrading to v16 or use legacy provider are not the best solution for the long term though)
node.js - Error message "error:0308010C:digital envelope routines::unsupported" - Stack Overflow https://stackoverflow.com/questions/69692842/error-message-error0308010cdigital-envelope-routinesunsupported

it is because your node version is too height. if your node version is 1.18, please use 1.16 instead and try if it is ok

it is because your node version is too height. if your node version is 1.18, please use 1.16 instead and try if it is ok

Thanks for your comment but as I shared Stack Overflow link with my comment, we know it is one of the options but not the best. And already v16 support was end in the last year.
In addition, looks still this repo’s document is maintained by the author(at least it was updated in the last year), so then note this for the reader in some ways, it would be very helpful in my opinion. (That’s why I issued this as well)

Sorry for the long delay - I never saw this when you first reported it for some reason but I can definitely update the README with this info.


Server requests return HTML due to redirect to new codesearch

API requests currently return HTML instead of JSON, resulting in an error. @asankah advised that this is due to requests to cs.chromium.org being redirected to the new codesearch at source.chromium.org, which now requires an API key.
For example, this test script:
g_cs = codesearch.CodeSearch(should_cache=True, source_root='.')
response = g_cs.SendRequestToServer(codesearch.CompoundRequest(
    search_request=[
    codesearch.SearchRequest(query='hello world',
                             return_line_matches=True,
                             lines_context=0,
                             max_num_results=10)
    ]))

Currently hits this error:
Traceback (most recent call last):
  File "C:\Users\jessemckenna\AppData\Roaming\Sublime Text 3\Packages\ChromiumXRefs\third_party\codesearch\messages.py", line 204, in FromJsonString
    d = json.loads(s)
  File "C:\src\depot_tools\bootstrap-3_8_0_chromium_8_bin\python3\bin\lib\json\__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "C:\src\depot_tools\bootstrap-3_8_0_chromium_8_bin\python3\bin\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\src\depot_tools\bootstrap-3_8_0_chromium_8_bin\python3\bin\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Printing the server response, result, from SendRequestToServer before it is passed to FromJSONString shows an HTML response from source.chromium.org.

Hello,
I got here by searching for "Chromium Code Search API" in Google. I was using this script a few years ago, to quickly get a list of inherited CSS properties and maintain this document. I understood that searching in the Chromium codebase now inloves using a private "Contents API".
Since you both seem to work at Google, can you please just tell me if there's an "official" way to achieve the task described above?

Unfortunately there isn't an official API for that.
This code was also using an unofficial and unsupported endpoint which is
no longer available.
On Sat, Aug 8, 2020 at 3:37 AM Guillaume<EMAIL_ADDRESS>wrote:

Hello,
I got here by searching for "Chromium Code Search API" in Google. I was
using this script a few years ago, to quickly get a list of inherited CSS
properties and maintain this document. I understood that searching in the
Chromium codebase now inloves using a private "Contents API".
Since you both seem to work at Google, can you please just tell me if
there's an "official" way to achieve the task described above?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/chromium/codesearch-py/issues/30#issuecomment-670839507,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABGQSLF72AFH2HESBC67ITR7T6ETANCNFSM4MCLW4AQ
.


Using PhantomData will cause an unnecessary inaccessible fields error

PhantomData is declared as the verifier::external_type_specification of ExPhantomData in module vstd::std_spec::core. Using PhantomData for any purpose will cause an error stating: "a datatype is treated as opaque whenever at least one field is not visible". The error makes no sense sincePhantomData has no field.
Please see the sample code posted in the verus playground.

Indeed, the error message is wrong - PhantomData is not opaque because of visibility, it's opaque because it's marked external_body when it's imported in vstd.
TODO:

[ ] fix error message
[ ] make PhantomData not external_body

PhantomData constructors should now work (e0c7fef6371a9f46ac0dc5d5dbe4bbf98125b0d7)

PhantomData constructors should now work (a632e50fa73984fe697bd608f71fd0e8bd133275)

It works well! Thank you for fixing it!


Automate npm publish

with a github action: https://github.com/marketplace/actions/npm-publish
suggestion from @vsaw

@tdurand I tried to automate this but can't continue unless you create secret for the NPM_TOKEN. Could you do this?

just sent something privately 💙


Partnerstwo Vercel

[x] Create a new team in your account, this will start the free 14 day trial for our Pro plan,
[x] Share the link to your public Git repo with us,  (https://github.com/ElektronPlus/school-website)
[x] Add the Vercel banner (attached to this reply) to your site footer and your Git's README,
[x] Add a link back to https://vercel.com/?utm_source=ElektronPlus&utm_campaign=oss
[x] Add a small description of the open source nature of your project to your Git's README
[x] What is your team's monthly anticipated resource usage? Do you believe your team will fall within our Fair Use Limits?


Get Confluence Page

Hi.
How about the Get Page command?
kind Regards
Oliver

I have rewrite this plugin based on Atlassian REST API, and won't add this feature in this plugin, please try the new plugin "Confluence".
Thanks,
- Kevin


Unauthorized error when downloading the dataset

I'm not able to download the dataset using kaggle api.
Please help!

You can only have one active API token at once.  Is it possible that you've downloaded multiple token?  If so, please redownload one and reuse it if you need it in multiple place.  Each download will expire the previous token.
I know this is not ideal but I don't have an ETA for a fix.  Let me know if this fixes the problem.

problem fixed!

Could you give us any hints on how to fix this problem?

Regenerate the api token.
On Thu, 7 May, 2020, 6:57 PM Yerong Li<EMAIL_ADDRESS>wrote:

problem fixed!
Could you give us any hints on how to fix this problem?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/Kaggle/kaggle-api/issues/98#issuecomment-625254811,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHJWMAOCRVXBWRCARWZ2B5LRQKZKTANCNFSM4FWURFEA
.


Fix CI

Apparently pub extern crate requires docs with the missing_docs lint and you can't use #[allow(...)] on it. So replacing it with pub use fixes this issue.
Also sprinkled some #[allow(clippy::redundant_clone)] until https://github.com/rust-lang/rust-clippy/pull/10873 reaches stable.

Actually it looks like even nightly rustdoc ignores documentation of pub extern crate items when generating the documentation. Not sure why this lint was enabled then. :woman_shrugging:

Yes, thanks!


update to 1.16

Hello!  I've updated all the dependencies and renamed the relevant fields so as to work on 1.16.  I'm not really sure what the best way to ensure nothing is failing silently is but it compiles and everything seems to be working fine in game.
I know some mod authors like to partition different MC versions into different branches.  I can't open up a pull request to a nonexistent branch but I can change the branch it is merging into if you create one.

Thank you for the PR! Sorry for the late merge.


Any junk value is defaulted to one. can it return null or undefined?

sorry for the delay, I will be pushing a fix tomorrow. Completely refactored the whole library using ohm.js so now things will work much better

fixed in fc621fed10c9aa2047059da35472de59f48351ee (v1.2.2 on npm) - I made it return the original junk value - I think that is the most logical. You can always check it against the original input to see if anything was converted. thanks for the feedback


Improve undefined type detection in type definition nodes

Description:
LocationData class is added to keep track of undefined types in type definition nodes. Need to check whether this can be improved with position data from the type nodes position.

We need to keep track of the name in addition to the row and column. So we cannot just use  DiagnosticPos. If we just needed to track the row and column, we could have just directly used DiagnosticPos instead of creating a LocationData  class.
So we cannot remove LocationData class. Hence closing the issue.


Update flyway-core to 8.0.4

Updates org.flywaydb:flyway-core from 7.15.0 to 8.0.4.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.flywaydb", artifactId = "flyway-core" } ]

labels: library-update, early-semver-major, semver-spec-major

Superseded by #581.


VS Code background operations should not steal user's text input focus

VSCode Version: 1.10.1
OS Version: Windows 10 (Anniversary Update)

I opened VS Code today and tried to switch files, and as I did so I VS Code pulled focus to the console because it was automatically updating packages. This is a poor UX.
Steps to Reproduce:

Open VS Code (with outdated packages)
Ctrl+P
Switch to file
Try to type code

Expected result:
Update packages in the background, or don't pull text focus if the console needs to open automatically.

@stewartadam can you share the output of the console? trying to understand which extension causes this.

I think this is independent from extensions. The question is more: should the console be able to pull focus?

Yes, we have API to control this (for all view parts and editors).

When it happens again I'll copy the output. The text I saw said it was updating extensions, with one line for each extension being downloaded... I only have C# and Python installed atm.

@stewartadam when you found out please report it to the extension (either Python or C#).

I saw this happen again while someone else was giving a presentation yesterday, appears to be the C# extension (updating NuGet packages, I think). Will try to repro and report against the extension.


OGQ-1: Alternative Port Accept/Reject Connection Type

Jira: OGQ-1

Still need to implement the reject version and do a few more sanity testings on what happened if there is both accept and reject configured with the same parameters...
Probably not important and just warn the devs on being careful when setting this up.


Hello Microverse Project

This is a simple project created using HTML and CSS,  to greet the Microverse community.

Summary of Branch Implementation:
HTML file updated with the paragraph Hello Microverse
Stylesheet is added.
Linters also checked so that there is no linter error.
MIT license is included


Performance issue in the demo

As @EtienneBruines mentioned, there's a huge performance issue in the provided demo.

@EtienneBruines on gitter
Btw, don't we want to sleep within that for-loop? Doesn't this use a lot of CPU power?

What about if we had a channel?

Channel would work, although a time.Sleep(time.Hour) also works.

Fixed in: https://github.com/EngoEngine/audio/commit/cd7762056dca6668a9d33acfe35f0c4aa743e248


Typescript support

Prerequisites

[X] I have written a descriptive issue title
[X] I have searched existing issues to ensure the feature has not already been requested

🚀 Feature Proposal
I propose to implement typescript in the project.
Motivation
It's better for security.
Ref:
https://docusaurus.io/docs/typescript-support

Whenever the majority of the maintainers of this repo will ask for it, we can do it.
Till then: I'm not keen to migrate this repo to TS nor to review a PR
I maintain it in my free time, and I'm already out of my comfort zone here


Update pt_BR.dart

What does the word "Coser" mean?

Coser is short for Cosplayer
Temp is short for Temporary
These  two phrases are not used in app for now😂.


setup: update release workflow

use build frontend
add dist validation step

Coverage remained the same at 81.866% when pulling 9319f384103a8c050d642a2a2370619810f4cf7f on release-flow into 0aa78f6d09a73baeb6f84b9d351d0231c9ac4efe on master.


Create FolioGo module, analogous to FolioJS

FolioJS is a simple library for writing FOLIO clients in NodeJS. Given the complexity of writing FOLIO client code in the era of Refresh Token Rotation, we now need an analogous library for Go.
This will allow us to implement #20.

In progress at https://github.com/MikeTaylor/FolioGo

First release at https://github.com/indexdata/foliogo/releases/tag/v0.0.1 — I should be able to work with this for the time being. Obviously it's likely I will need to return to it as work on mod-reporting continues.


fix linux incompatibility

msilib.Error() replaced by simple prints
SDA1111 module moved outside the hda to $StableHoudini/python3.9libs
otls symlink created for easier installation

The incompatibility issue is already fixed in the last commit. Also I made the SD1111 as an HDA external file for a reason. I want everything to be in place right away after installing the hda in Houdini. Therefore, I decided to remove all the external py-files from the equation. You can easily edit it with Labs's Edit Extra Sections Source Code menu entry. I understand that it's better to have them as separate files in order to easily merge commits and stuff, but let's just leave it as it is for now.

Cool! Let me then just thank you for such great toolset!


Enhancement/pr 667 updated

Continuation of https://github.com/gregnb/mui-datatables/pull/667.

Coverage remained the same at 75.972% when pulling b4e8372836e2c96383ed6449363b48ec57d7e5e0 on enhancement/pr-667-updated into 6e973d22c8d3b67c983ae57deb6cd8edc11b037d on master.


Unlink old final artifacts before compilation

What does this PR try to resolve?
Some linkers do not remove the executable, but truncate and modify it.
That results in the old hard-link being modified even after renamed.
We delete the old artifact here to prevent this behavior from confusing users.
Fixes #11101; fixes #8348
How should we test and review this PR?
I can only reproduce the original issue on x86_64-pc-windows-msvc with linker.exe. If you can reproduce it on Linux, please share which linker you're using.
New (?) dev-dependency
same-file is already in our dependency graph (dependents: walkdir, ignore, cargo-util), so adding it to dev-dependencies won't affect much.

r? @epage
(rust-highfive has picked a reviewer for you, use r? to override)

@bors r+

:pushpin: Commit b47cacbacfba1a65337c3714e50d28889832b806 has been approved by epage
It is now in the queue for this repository.

:hourglass: Testing commit b47cacbacfba1a65337c3714e50d28889832b806 with merge a74a8d0456d56cae9f3e70cf3cbc59541a2d0c79...

:sunny: Test successful - checks-actions
Approved by: epage
Pushing a74a8d0456d56cae9f3e70cf3cbc59541a2d0c79 to master...


--baseline-rev messes up the repo's working directory

Ran this on clap and finally tried to do some work in the repo again just to find that git status is reporting all sorts of crazy stuff.
With the implementation, I was hoping to do something light weight like a shallow clone but apparently I have no idea how that git2 call works

Looks like shallow clones are not supported.  bleh.  I'd be tempted to look into gitoxide.

While it has risks, I tried creating and deleting a worktree but git2 requires the worktree directory to not exist which means we can't as easily do caching...


Planning off road in Carla co-simulation

Environment: Carla co-simulation platform: https://github.com/guardstrikelab/carla_apollo_bridge
Hello there. I'm running the co-simulation of Apollo, and the car still struggles to make a good turn. Particularly, I found that the planning module is very likely to give a trajectory which is out of the road:

This seem to be a very important factor making the vehicle cannot make a good turn. I tried to modify many parameters in the planning module (including the parameters in conf file and planning_gflags.cc), but still doesn't work.
Is there a way to somewhat fix the planning trajectory on the routine line?
Many thanks.

Environment: Carla co-simulation platform: https://github.com/guardstrikelab/carla_apollo_bridge
Hello there. I'm running the co-simulation of Apollo, and the car still struggles to make a good turn. Particularly, I found that the planning module is very likely to give a trajectory which is out of the road:

This seem to be a very important factor making the vehicle cannot make a good turn. I tried to modify many parameters in the planning module (including the parameters in conf file and planning_gflags.cc), but still doesn't work.
Is there a way to somewhat fix the planning trajectory on the routine line?
Many thanks.

I meet the same question as you, are you chinese? can i have your wechat to discuss? thanks a lot

Environment: Carla co-simulation platform: https://github.com/guardstrikelab/carla_apollo_bridge
Hello there. I'm running the co-simulation of Apollo, and the car still struggles to make a good turn. Particularly, I found that the planning module is very likely to give a trajectory which is out of the road:

This seem to be a very important factor making the vehicle cannot make a good turn. I tried to modify many parameters in the planning module (including the parameters in conf file and planning_gflags.cc), but still doesn't work.
Is there a way to somewhat fix the planning trajectory on the routine line?
Many thanks.

I meet the same question as you, are you chinese? can i have your wechat to discuss? thanks a lot

My e-mail is<EMAIL_ADDRESS>you can contact me via e-mail to exchange wechat for further discussion. Thanks.


Update bigquery.py

Updated the code to be able to write the results to results table with uppercase columns

Updated to code to write the results to results table with upper case columns


Unnecessary !Sub not detected

cfn-lint version: (cfn-lint --version) 0.5.0
Description of issue.
When refactoring code it can quite often be the situation we end up with !Sub applied to a string that has no substitutions, e.g. !Sub foo. This is less clear to read than the plain string foo, so it would be good to detect such cases and complain about them.

Good one.  This shouldn't be hard.  Thanks!


Commit fVDB to OpenVDB

Per TSC Meeting July 23, 2024, we agreed to merge this PR to feature/fvdb branch.


Genericity

The size of this library could be reduced several times by making types and algorithms be generic with respect to scalar type and dimension. For inspiration see my https://github.com/nordlow/phobos-next/blob/master/src/nxt/geometry.d.

I'm going to look into it. Thanks for the pointer. :)


Auto egress

Cleaned up telemetry service
Added AutoTrack and AutoParticipant egress
Added ParticipantCompositeEgress request to Egress service

@frostbyte73 Have been avoiding use of sync.Map due to thread safety concerns and using a regular Map with locks. I have been converting uses of that lest it bite us at inopportune time - https://stackoverflow.com/questions/54174618/is-golang-sync-map-range-function-thread-safe

@frostbyte73 Have been avoiding use of sync.Map due to thread safety concerns and using a regular Map with locks. I have been converting uses of that lest it bite us at inopportune time - https://stackoverflow.com/questions/54174618/is-golang-sync-map-range-function-thread-safe

It's definitely a bit of a landmine, I always check that comment about the 2 use cases just to be sure. I agree it's probably best to not use it in general

@frostbyte73 Have been avoiding use of sync.Map due to thread safety concerns and using a regular Map with locks. I have been converting uses of that lest it bite us at inopportune time - https://stackoverflow.com/questions/54174618/is-golang-sync-map-range-function-thread-safe

It's definitely a bit of a landmine, I always check that comment about the 2 use cases just to be sure. I agree it's probably best to not use it in general

Yeah, true. My simple rule has been "if there are Delete and Range operations, I am not using sync.Map" :-)

What is auto track egress?
Please add documentation


Custom Actions not working with Action Factory: Remote

Rasa Core version: rasa-core (0.8.5), rasa-nlu (0.11.4)
Python version: Python 3.6.3 :: Anaconda custom (64-bit)
Operating system (windows, osx, ...): Windows 10 Pro 64 AND Docker/Linux
Issue: If "action factory: remote" is set in the domain file, using a custom action's name will cause training the core to fail. Replacing the name with the module.class of the action will work, however. When the action is called with curl or other methods, no error is given, but the action does not execute.
Content of domain file (if used & relevant):
actions:
  - Scenario_Pricing_Actions.ActionCheckOwnershipType
  - run_retail_scenario

intents:
  - retail_scenario

entities:
  - property_value
  - down_payment
  - fico
  - ownership_type
  - normalize_ownership

slots:
  down_payment:
    type: text
  fico:
    type: text
  ownership_type:
    type: text
  property_value:
    type: text
  normalized_ownership:
    type: unfeaturized

templates:
  utter_default:
  - text: "Input not understood."
  run_retail_scenario:
  - text: "Data: {ownership_type}, {normalized_ownership}, {property_value}, {down_payment}, {fico}"

action_factory: remote

Just as an update, this is how I am running it:
python -m rasa_core.server -d models/dialogue -u projects/nlu/current -p 5001 --cors="*"

I am going to close this. It looks like this is the expected behavior of the remote action factory - it simply returns the names of the actions and does not run them like it would if it were being run locally. I will suggest an enhancement, that I am going to work on right now, where there is a remote factory that does run the actions. This will be useful for our architecture where we have three layers (UI, Business Logic, Data) and keep the business logic where it belongs. Thanks for all the help on Gitter. I hope to have this working within a day or two. I think it will be useful to others using the server version.

@Nectarineimp Did you do it?

@sameerkumar16 I am still working on it. I am not sure where to begin, other than looking at the code that was written for the other connectors.

@Nectarineimp I am not sure what you are trying to achive. Do you mind explaining your use case a bit, including your setup?

He wants to use templates with action_factory:remote

Mhm, ok what would be the expected behavior there? When using remote Rasa core is not sending messages to the user directly, so they would be returned as part of the response json to you and you would forward that message to the user?

I have a web front end. We are using json calls to rasa to parse user queries (non-technical folks who can describe what they want but can't create sql queries.) I have an action that takes one of the entities, which can have many verbal presentations, and changes it to one of three normalized responses.  I would have to have the front end guy put business logic in the UI layer. We don't want to do that, as it is a bad practice in general. So, I need a restful interface that also will do the actions that contain the business logic.

Just to be clear, I do not want to use utter actions. I want the content of a slot to be normalized before returning the request.

@Nectarineimp  I think you are talking about custom actions getting executed as a webhook. Rasa-ui(https://github.com/paschmann/rasa-ui) does that orchestration. You can configure a webhook and it will automatically forward the request to webhook based on your custom action names ( utter_webhook_*). Rasa ui also logs every thing to a postgres for inspection, including slots.
Another option is to use rasa_core webchannel and code the custom actions in python itself.

@pradeepmvn thank you for that hint. I will look up Rasa-UI (thanks for the link!) and look into creating a webhook. That sounds perfect for what I want to do. I already have the code in Python to make the transformation, so hopefully the rest will be fairly simple.

I'll close this for now, please let us know if you have any further questions.


Server restarting every 2 secs when running in PM2

Hi Logan,
Not sure if this is due to my system, but I observed the following. When running the harmony-span server from command line, it works perfectly. But I wanted to make it more robust (so in case my Raspberry Pi reboots it will also reboot) and installed PM2 to manage the .js application. When I go into PM2 monit, it shows that the server is restarting every two seconds. Looking at the log, it shows the following:

Questions:

Do I have to maybe change the config.json file?
Is PM2 not suiteable for this .js to run automatically in the background on a Rapsberry Pi?
Is there an alternative way to run the server in the background and booting up automatically when restarting the PI?

Many thanks!
Jelle..

And when adding the harmony-span.js to /etc/rc.local to run during startup, it also returns the error as per above. This is reproducable by executing:
su pi -c 'node /home/pi/harmony-span/harmony-span.js < /dev/null &'
Thanks
Jelle..

Thanks again for opening this issue.
Try navigating directly to the folder where you have HarmonySpan located and try running it from there - I suspect that HarmonySpan is looking for the config file in whatever directory you start it in (so if you're in /home/pi for instance and you run HarmonySpan from a different directory, HarmonySpan might be looking in /home/pi for the config file which isn't correct.

Hi Logan,
I think you're right, but I'm not sure how to fix that. I thought I did run
it from the actual folder before I created the startup file in PM2. My
second attempt to have it startup using /etc/rc.local, my line added to
RC.local does contain the actual folder.
I know I can run it in a screen am just detach it, but I want it "idiot
proof" so that when I'm not around and the pi needs to reboot, it's all
still there.
Sidenote: amazing project and amazing functionality you build! Thank you so
much!
Cheers
Jelle..
On Wed, 8 Jul 2020, 20:14 Logan Lowe<EMAIL_ADDRESS>wrote:

Thanks again for opening this issue.
Try navigating directly to the folder where you have HarmonySpan located
and try running it from there - I suspect that HarmonySpan is looking for
the config file in whatever directory you start it in (so if you're in
/home/pi for instance and you run HarmonySpan from a different directory,
HarmonySpan might be looking in /home/pi for the config file which isn't
correct.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/AShifter/harmony-span/issues/7#issuecomment-655676610,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQGOEYWU5BG4GDZ6B33HSWDR2SZPDANCNFSM4OUJU6RQ
.

Hi Logan,
It worked... I deleted the startup script from PM2. Then run PM2 from within the harmony-span folder. Then recreated the startup script. After rebooting, voila, all works.
AWESOME, this one is now closed!

Closed - fixed by running PM2 from within folder where harmony-span is located and creating start-up script from there.
Also, using 'PM2 monit' one can monitor the key presses.


What is the purpose of exp_scaling?

There are exp_scaling in LeakyAvg, KeyFeatureExtractor, ValueFeatureExtractor in mosaic_model.py under 'nanoMosaic' directory. What purspose does these exp_scaling serve?

they amplify the gradients of the scaling parameters in the exponential, something we have found to help in practice.

class LeakyAvg(nn.Module):
    def __init__(self, block_size, n_head):
        super().__init__()
        coef = torch.zeros(block_size, block_size)
        for i in range(block_size):
            coef = torch.diagonal_scatter(coef, -torch.ones(block_size-i)*i, -i)
        self.register_buffer('coef', coef)
        self.exp_scaling = 10
        self.leaky_key_beta = nn.Parameter(torch.linspace(0.5, 5, n_head).view(1, n_head, 1, 1)/self.exp_scaling)

    def forward(self, k):
        B, nh, T, hs = k.size()
        leaky_key_beta = self.leaky_key_beta.abs() * self.exp_scaling
        coef = self.coef[:T,:T].view(1,1,T,T)
        coef = torch.exp(coef * leaky_key_beta)
        return coef.tril() @ k

Thank you for the response. In the above code, while initializing self.leaky_key_beta you are dividing it by self.exp_scaling. Then in the forward call, you are multiplying it by self.exp_scaling. This does not make sense as it renders the original self.leaky_key_beta. But you are saying this is purely for amplifying the gradients of the scaling parameters in the exponential.
I have another question. Any particular reason for initializing self.leaky_key_beta as torch.linspace between 0.5 and 5?

It amplifies gradients. You can compare the gradient on the following two equations for example:
$y_ = (\alpha  x)^2_1$ and $y_2 = x^2_2$, where $x_1$ is initialized to be $x_2 / \alpha$ (small), $\alpha > 1$.
Then $y_1'=2\alpha^2 x_1$ and $y_2' = 2x_2$.
Comparing $y_1'$ and $y_2'$, you will find that $y_1'  = \alpha y_2' > y_2'$.
Thus, this reparameterization trick amplifies gradients.
$e^{- leaky Key Beta}$ is a decay factor in leaky average (Thus it falls into (0,1)). Different heads in Memory Mosaics require different decay factors to summarize information in different resolutions. This initialization provides a range of decay factors $e^{- leaky Key Beta}$ (check coef) from ~0 to ~0.6.

Thank you. It is clear now.


[Feature Request] Dynamic generate texture atlas at runtime

Framework Layaair have a feature that can generate texture atlas dynamicly at runtime.

It is very useful for scene with lots of textfields and avatar images (download from Internet).
And with the advantage of "multiple texture in single batch" by pixi.js.
The performance may be extremly good!
Compare: 100 png (without packaging atlas), texture in WebGL Inspector
Layaair

Pixi.js

https://github.com/gameofbombs/pixi-super-atlas/ works in production in two projects (one by me, one by @cursedcoder). Unfortunately there are not many docs yet.
https://github.com/gameofbombs/pixi-super-atlas/blob/master/test/checkpack.ts
That's main method that swaps one texture for atlas'ed - https://github.com/gameofbombs/pixi-super-atlas/blob/master/src/superAtlas/SuperAtlas.ts#L69 .


[Bug]: Extending ToastRootEmits with enabled declaration throws "A type annotation is necessary (2742)"

Environment
Node version: 18.20.3
Package manager<EMAIL_ADDRESS>
Radix Vue version: 1.8.2
Vue version: 3.4.27

Link to minimal reproduction
https://stackblitz.com/edit/vitejs-vite-ur52p7?file=src%2FToast.vue
Steps to reproduce
npm run build
Describe the bug
Extending ToastRootEmits throws type error.
TS2742: The inferred type of 'default' cannot be named without a reference to '../node_modules/radix-vue/dist/Toast/utils.js'. This is likely not portable. A type annotation is necessary.
Expected behavior
No error
Context & Screenshots (if applicable)
No response

Resolved via adding "baseUrl": "." to tsconfig.


[WIP] Validate leading commas in tag names

closes #5685

Adds client and server-side validation for tag names starting with commas
Trim tag names before adding in PSM (tag attributes are already trimmed before saving in TSM)

TODO:

[ ] Migration to remove leading commas in existing tags

The migration is sitting ready in ##5706, I think it makes sense to de-WIP this and merge it in?

Makes sense to me :+1:


glide fails to build dependencies

I'm getting the following error if I run glide up -v on this repo:
[rspazzol@rspazzol external-storage]$ glide up -v
[INFO]	Downloading dependencies. Please wait...
[INFO]	--> Fetching updates for github.com/dgrijalva/jwt-go.
[INFO]	--> Fetching updates for github.com/aws/aws-sdk-go.
[INFO]	--> Fetching updates for github.com/docker/docker.
[INFO]	--> Fetching updates for k8s.io/apimachinery.
[INFO]	--> Fetching updates for github.com/heketi/heketi.
[INFO]	--> Fetching updates for k8s.io/kubernetes.
[INFO]	--> Fetching updates for github.com/guelfey/go.dbus.
[INFO]	--> Fetching updates for github.com/lpabon/godbc.
[INFO]	--> Fetching updates for k8s.io/client-go.
[INFO]	--> Fetching updates for github.com/mitchellh/mapstructure.
[INFO]	--> Fetching updates for github.com/golang/glog.
[INFO]	--> Setting version for github.com/mitchellh/mapstructure to db1efb5.
[INFO]	--> Setting version for github.com/docker/docker to v1.13.1.
[INFO]	--> Setting version for github.com/lpabon/godbc to 9577782.
[INFO]	--> Setting version for github.com/heketi/heketi to 7bb2c5b.
[INFO]	--> Setting version for github.com/aws/aws-sdk-go to v1.7.3.
[INFO]	--> Setting version for k8s.io/client-go to 450baa5d60f8d6a251c7682cb6f86e939b750b2d.
[INFO]	--> Setting version for k8s.io/apimachinery to 2de00c78cb6d6127fb51b9531c1b3def1cbcac8c.
[INFO]	--> Setting version for k8s.io/kubernetes to v1.6.0.
[INFO]	Resolving imports
[INFO]	--> Fetching updates for github.com/go-ini/ini.
[INFO]	--> Fetching updates for golang.org/x/sys.
[INFO]	Found Godeps.json file in /home/rspazzol/.glide/cache/src/https-k8s.io-apimachinery
[INFO]	--> Parsing Godeps metadata...
[INFO]	--> Fetching updates for github.com/go-openapi/spec.
[INFO]	--> Setting version for github.com/go-openapi/spec to 6aced65f8501fe1217321abf0749d354824ba2ff.
[INFO]	--> Fetching updates for github.com/gogo/protobuf.
[INFO]	--> Setting version for github.com/gogo/protobuf to c0656edd0d9eab7c66d1eb0c568f9039345796f7.
[INFO]	--> Fetching updates for github.com/google/gofuzz.
[INFO]	--> Setting version for github.com/google/gofuzz to 44d81051d367757e1c7c6a5a86423ece9afcf63c.
[INFO]	--> Fetching updates for github.com/pborman/uuid.
[INFO]	--> Setting version for github.com/pborman/uuid to ca53cad383cad2479bbba7f7a1a05797ec1386e4.
[INFO]	--> Fetching updates for github.com/spf13/pflag.
[INFO]	--> Setting version for github.com/spf13/pflag to 9ff6c6923cfffbcd502984b8e0c80539a94968b7.
[INFO]	--> Fetching updates for gopkg.in/inf.v0.
[INFO]	--> Setting version for gopkg.in/inf.v0 to 3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4.
[INFO]	Found Godeps.json file in /home/rspazzol/.glide/cache/src/https-k8s.io-client-go
[INFO]	--> Parsing Godeps metadata...
[INFO]	--> Fetching updates for github.com/ugorji/go.
[INFO]	--> Setting version for github.com/ugorji/go to ded73eae5db7e7a0ef6f55aace87a2873c5d2b74.
[INFO]	--> Fetching updates for github.com/howeyc/gopass.
[INFO]	--> Setting version for github.com/howeyc/gopass to 3ca23474a7c7203e0a0a070fd33508f6efdb9b3d.
[INFO]	--> Fetching updates for github.com/imdario/mergo.
[INFO]	--> Setting version for github.com/imdario/mergo to<PHONE_NUMBER>c1639d9d78127b7d47c622b5d7b6dc.
[INFO]	--> Fetching updates for github.com/golang/groupcache.
[INFO]	--> Setting version for github.com/golang/groupcache to 02826c3e79038b59d737d3b1c0a1d937f71a4433.
[INFO]	Found Godeps.json file in /home/rspazzol/.glide/cache/src/https-github.com-heketi-heketi
[INFO]	--> Parsing Godeps metadata...
[INFO]	--> Setting version for github.com/dgrijalva/jwt-go to 01aeca54ebda6e0fbfafd0a524d234159c05ec20.
[INFO]	--> Fetching updates for github.com/inconshreveable/mousetrap.
[INFO]	--> Setting version for github.com/inconshreveable/mousetrap to 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75.
[INFO]	--> Fetching updates for github.com/fsnotify/fsnotify.
[INFO]	--> Fetching updates for github.com/hashicorp/hcl.
[INFO]	--> Fetching updates for github.com/magiconair/properties.
[INFO]	--> Fetching updates for github.com/pelletier/go-toml.
[INFO]	--> Fetching updates for github.com/spf13/afero.
[INFO]	--> Fetching updates for github.com/spf13/cast.
[INFO]	--> Fetching updates for github.com/spf13/jwalterweatherman.
[INFO]	--> Fetching updates for gopkg.in/yaml.v2.
[INFO]	--> Setting version for gopkg.in/yaml.v2 to 53feefa2559fb8dfa8d81baad31be332c97d6c77.
[INFO]	Found Godeps.json file in /home/rspazzol/.glide/cache/src/https-k8s.io-kubernetes
[INFO]	--> Parsing Godeps metadata...
[WARN]	Conflict: k8s.io/kubernetes rev is currently v1.6.0, but github.com/heketi/heketi wants 0776eab45fe28f02bbeac0f05ae1a203051a21eb
[INFO]	k8s.io/kubernetes reference v1.6.0:
[INFO] - author: Anthony Yeh<EMAIL_ADDRESS>[INFO] - commit date: Tue, 28 Mar 2017 09:23:06 -0700
[INFO] - subject (first line): Kubernetes version v1.6.0
[INFO]	k8s.io/kubernetes reference 0776eab45fe28f02bbeac0f05ae1a203051a21eb (v1.5.0-beta.2):
[INFO] - author: saadali<EMAIL_ADDRESS>[INFO] - commit date: Thu, 24 Nov 2016 14:29:04 -0800
[INFO] - subject (first line): Kubernetes version v1.5.0-beta.2
[INFO]	Keeping k8s.io/kubernetes v1.6.0
[WARN]	Conflict: github.com/aws/aws-sdk-go rev is currently v1.7.3, but k8s.io/kubernetes wants 63ce630574a5ec05ecd8e8de5cea16332a5a684d
[INFO]	github.com/aws/aws-sdk-go reference v1.7.3:
[INFO] - author: xibz<EMAIL_ADDRESS>[INFO] - commit date: Mon, 27 Feb 2017 18:59:22 -0800
[INFO] - subject (first line): Update CHANGELOG.md
[INFO]	github.com/aws/aws-sdk-go reference 63ce630574a5ec05ecd8e8de5cea16332a5a684d (v1.6.10):
[INFO] - author: Baron Von Ben Powell<EMAIL_ADDRESS>[INFO] - commit date: Wed, 04 Jan 2017 18:10:36 +0000
[INFO] - subject (first line): Release v1.6.10
[INFO]	Keeping github.com/aws/aws-sdk-go v1.7.3
[INFO]	--> Fetching updates for github.com/jmespath/go-jmespath.
[INFO]	--> Setting version for github.com/jmespath/go-jmespath to 3433f3ea46d9f8019119e7dd41274e112a2359a9.
[INFO]	--> Fetching updates for github.com/go-openapi/jsonpointer.
[INFO]	--> Setting version for github.com/go-openapi/jsonpointer to 46af16f9f7b149af66e5d1bd010e3574dc06de98.
[INFO]	--> Fetching updates for github.com/go-openapi/jsonreference.
[INFO]	--> Setting version for github.com/go-openapi/jsonreference to 13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272.
[INFO]	--> Fetching updates for github.com/go-openapi/swag.
[INFO]	--> Setting version for github.com/go-openapi/swag to 1d0bd113de87027671077d3c71eb3ac5d7dbba72.
[INFO]	--> Fetching updates for github.com/emicklei/go-restful.
[INFO]	--> Setting version for github.com/emicklei/go-restful to ff4f55a206334ef123e4f79bbf348980da81ca46.
[INFO]	--> Fetching updates for golang.org/x/net.
[INFO]	--> Setting version for golang.org/x/net to f2499483f923065a842d38eb4c7f1927e6fc6e6d.
[INFO]	--> Fetching updates for github.com/emicklei/go-restful-swagger12.
[INFO]	--> Setting version for github.com/emicklei/go-restful-swagger12 to dcef7f55730566d41eae5db10e7d6981829720f6.
[INFO]	--> Fetching updates for github.com/go-openapi/loads.
[INFO]	--> Setting version for github.com/go-openapi/loads to 18441dfa706d924a39a030ee2c3b1d8d81917b38.
[INFO]	--> Fetching updates for github.com/juju/ratelimit.
[INFO]	--> Setting version for github.com/juju/ratelimit to 77ed1c8a01217656d2080ad51981f6e99adaa177.
[INFO]	--> Fetching updates for github.com/docker/distribution.
[INFO]	--> Setting version for github.com/docker/distribution to cd27f179f2c10c5d300e6d09025b538c475b0d51.
[ERROR]	Error scanning k8s.io/client-go/pkg/api/v1/helper: open /home/rspazzol/.glide/cache/src/https-k8s.io-client-go/pkg/api/v1/helper: no such file or directory
[ERROR]	This error means the referenced package was not found.
[ERROR]	Missing file or directory errors usually occur when multiple packages
[ERROR]	share a common dependency and the first reference encountered by the scanner
[ERROR]	sets the version to one that does not contain a subpackage needed required
[ERROR]	by another package that uses the shared dependency. Try setting a
[ERROR]	version in your glide.yaml that works for all packages that share this
[ERROR]	dependency.
[INFO]	--> Fetching updates for golang.org/x/crypto.
[INFO]	--> Setting version for golang.org/x/crypto to d172538b2cfce0c13cee31e647d0367aa8cd2486.
[INFO]	--> Fetching updates for github.com/hashicorp/golang-lru.
[INFO]	--> Setting version for github.com/hashicorp/golang-lru to a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4.
[INFO]	--> Fetching updates for github.com/davecgh/go-spew.
[INFO]	--> Setting version for github.com/davecgh/go-spew to 5215b55f46b2b919f50a1df0eaa5886afe4e3b3d.
[WARN]	Conflict: github.com/lpabon/godbc rev is currently 9577782, but github.com/heketi/heketi wants<PHONE_NUMBER>c1398b710ddae1b86268ba03a19b0c
[INFO]	github.com/lpabon/godbc reference 9577782:
[INFO] - author: Luis Pabon<EMAIL_ADDRESS>[INFO] - commit date: Fri, 13 Jun 2014 12:58:03 -0400
[INFO] - subject (first line): Changed copyrights to Google Chromium style
[INFO]	github.com/lpabon/godbc reference<PHONE_NUMBER>c1398b710ddae1b86268ba03a19b0c:
[INFO] - author: Luis Pabon<EMAIL_ADDRESS>[INFO] - commit date: Fri, 13 Jun 2014 12:58:03 -0400
[INFO] - subject (first line): Changed copyrights to Google Chromium style
[INFO]	Keeping github.com/lpabon/godbc 9577782
[INFO]	--> Setting version for github.com/hashicorp/hcl to d8c773c4cba11b11539e3d45f93daeaa5dcf1fa1.
[INFO]	--> Fetching updates for github.com/pelletier/go-buffruneio.
[INFO]	--> Setting version for github.com/pelletier/go-buffruneio to df1e16fde7fc330a0ca68167c23bf7ed6ac31d6d.
[INFO]	--> Fetching updates for github.com/pkg/sftp.
[INFO]	--> Setting version for github.com/pkg/sftp to 4d0e916071f68db74f8a73926335f809396d6b42.
[INFO]	--> Setting version for github.com/spf13/afero to b28a7effac979219c2a2ed6205a4d70e4b1bcd02.
[INFO]	--> Fetching updates for golang.org/x/text.
[INFO]	--> Setting version for golang.org/x/text to 2910a502d2bf9e43193af9d68ca516529614eed3.
[INFO]	--> Fetching updates for github.com/PuerkitoBio/purell.
[INFO]	--> Setting version for github.com/PuerkitoBio/purell to 8a290539e2e8629dbc4e6bad948158f790ec31f4.
[INFO]	--> Fetching updates for github.com/mailru/easyjson.
[INFO]	--> Setting version for github.com/mailru/easyjson to d5b7844b561a7bc640052f1b935f7b800330d7e0.
[INFO]	--> Fetching updates for github.com/go-openapi/analysis.
[INFO]	--> Setting version for github.com/go-openapi/analysis to b44dc874b601d9e4e2f6e19140e794ba24bead3b.
[INFO]	Found Godeps.json file in /home/rspazzol/.glide/cache/src/https-github.com-docker-distribution
[INFO]	--> Parsing Godeps metadata...
[INFO]	--> Fetching updates for github.com/ghodss/yaml.
[INFO]	--> Setting version for github.com/ghodss/yaml to 73d445a93680fa1a78ae23a5839bad48f32ba1ee.
[INFO]	--> Fetching updates for github.com/kr/fs.
[INFO]	--> Setting version for github.com/kr/fs to 2788f0dbd16903de03cb8186e5c7d97b69ad387b.
[INFO]	--> Fetching updates for github.com/pkg/errors.
[INFO]	--> Setting version for github.com/pkg/errors to a22138067af1c4942683050411a841ade67fe1eb.
[INFO]	--> Fetching updates for github.com/PuerkitoBio/urlesc.
[INFO]	--> Setting version for github.com/PuerkitoBio/urlesc to 5bd2802263f21d8788851d5305584c82a5c75d7e.
[ERROR]	Failed to retrieve a list of dependencies: Error resolving imports

it looks like there is a conflict between the required version of k8s client-go.

We are carrying a patched version of client-go at the moment because versioned helpers were removed and have not been placed elsewhere yet but we can't downgrade because we also need other new things (local storage API).
I'll look into temporarily copying the versioned helpers under say 'lib' so we can get glide working again

ok. I would like to create a PR from here to add iscsi-targetd as dynamic provisioner.
Please let me know what is the best approach given the current issue.

Should work now, please rebase. Let me know if you run into any other issues, go dep management is not fun


V2 polish

Description
Adds some consistent polish before releasing.
Proposed changes in this PR

update readme
polymorphResolver returns a propertyDecorator instead of being on itself
made scripts executable, added deno options inside shebang, updated help text logic

Things to look at

[x] Test coverage
[x] Code Style
[x] Documentation (README.md, CHANGELOG.md, etc..)

let's release this guy


screen size revamping

The goal is keep the screen always at the same size aka no more 800x600 when not flying.
wip is in a special branch: https://github.com/kgersen/Allegiance/tree/windows-size (yeah branch name sux !)
This affects the rendering of the all the Screen panes.
To fix the uglyness (800x600 stuck at the bottom left), there are numerous solutions:

scale the 800x600 to fill the screen (scale everything so it looks bigger)
keep them at 800x600 but center them
just scale/fit the bg image not the UI, center the UI
add new widgets to the modeler (meh) and modify all the screen mdls
make all "screens" "3D views" like when flying with "Screen UI" element on top: this is probably the best way to do this.

most of these solutions requires dealing with scaling mouse coords.
this issue will probably be split into many smaller issues.
prerequisite to do a proper windowed bordeless mode ( #227 )
check impact on multi monitor setups.

working partially (size isn't memorized).
waiting on #232 (and reviving tm7) to continue.

@kgersen Can you say more about option 5)? That's the one you started implementing, right? What do you mean by "3D view" and "Screen UI"?
If I revived approach 4), would you be interested in working with me on this?

"3D view" is the main 3d view which completely fills the screen (there is only one in current alleg code and it's only drawn when a game is running). That view is already adaptive to fullscreen/windowed+resize. The "Screen UI" is a 2D mode (Image) which is fixed at 800x600 . The idea is to always have a 3D view in the background, whatever the game state, and draw the 2d world on top (like the F5/F6 panes are drawn for instance).
4 isn't a choice I would make because I have plan to completely rewrite the UI/modeler code later on.
2 is already working, it doesn't look nice but at least there is no more 'resolution switch' going on.
as for helping, I dunno may be , discuss your plan more in details first. but not here. somewhere in there: https://www.freeallegiance.org/forums/index.php?showforum=108 for instance.

@kgersen @hheimbuerger
Hi there,
What is the status on this? I had been doing some small work on this issue until I noticed this issue. Although my approach would have been your option 4: Forcing a single resolution everywhere in the game, and solving the issues that pop up.
Option 5, wouldn't that have very similar issues with interfaces needing scaling?
Being able to run all of alleg at higher resolutions is probably one of the most important things we can do to attract players to the game.

@pvandommelen I've dropped the ball on this, is the status, because I ran out of energy and time, and other things seems to become more important for the Steam release. :)
I agree that it would be a worthwhile effort for newer players, though!
I'm still fairly convinced of option 4). I certainly understand why that doesn't make sense for where Kage wants to take the codebase, but I think it does for the 'main FAO' line.
If you are interested in working on this from the source end, I'd be happy to work on the MDL side. Here's my first idea of a plan of action:

Create a new branch each on the source and artwork repos of FAO. (you or me)
Force all screens (start with main menu, server selection, game lobby and game results screen) to the current resolution. I'd expect UI elements to then be spread disconnectedly all over the screen with various blank area. (you)
Start rearranging things in MDL so that the right areas extend (e.g. on the server selection screen, the server list should just expand to the bottom). Figure out which UI controls need some code customization. (me)
Implement these UI control changes. (you)
Profit!

But then we should really move this conversation to the FAO fork and stop hijacking KGJV's ticket. :)

Works for me. I'm quite out of the loop, where is Kage trying to go with allegiance?
the FAO repository doesn't have issues enabled (I'll ask). But it may be easier to keep track of the required changes on trello.
Your plan seems fine. I have some progress already on https://github.com/pvandommelen/Allegiance/tree/ui-resolution, so I will continue from that. This already forces the entire game to a single resolution in either windowed or fullscreen mode. This causes most screens to be centered. I don't know yet how easy it is to get dynamic UIs in there, which is probably going to be my next task before cleaning up the code.


Marketplace

[x] Add/Edit New Packages
[x] Auto-crawl RSS feeds for new versions
[x] Nice marketplace index page

Close for now, index will need to be improved in the future, but this will be a priority later.


Links broken

http://tensorflow.org/tutorials/mnist/pros/index.md#build_a_multilayer_convolutional_network
"See the Computation Graph section of Basic Usage for more detail."
Basic Usage
old: http://tensorflow.org/get_started/basic_usage.md
new: http://tensorflow.org/get_started/index.html#basic-usage
Computation Graph
old: http://tensorflow.org/get_started/basic_usage.md#the-computation-graph
new: http://tensorflow.org/get_started/index.html#the-computation-graph

I also found two broken links in this file:
tensorflow/models/rnn/README.md
-* [RNN Tutorial](http://tensorflow.org/tutorials/recurrent/index.md)
-* [Sequence-to-Sequence Tutorial](http://tensorflow.org/tutorials/seq2seq/index.md)

Links are working now I think.


Memory leak when using MLX models

When I load Qwen Coder 2.5 32B Q4 MLX (8k context) it uses about 17.3GB of RAM. After a while it's consuming over 40GB. LM Studio doesn't report the memory usage ever going down until I eject the model and reload it. Then it goes back to 17GB.
This is happening on LMStudio 0.3.5 the v0.0.14 of the mlx runtime on an M4 Max MacBook Pro.
Please let me know if there is anything else you need from me to debug this issue.

Hello, thanks for the report. This will be fixed in the next version on LM Studio.
Similar issue: https://github.com/lmstudio-ai/mlx-engine/issues/18

now MLX is 50% slower than GGUF.

We are tracking this issue in #55, and we have a performance fix ready in #52. Note that this fix will improve MLX performance, but you may still observe the GGUF is faster. If you do, please let us know so that we can see if there are further optimizations we can make in mlx_lm.
I am closing this issue, please track further updates in #55


Broken markdown parser (double question footer)

Server side rendering does not match client with a console error Warning: Prop dangerouslySetInnerHTML did not match. with double-rendered question footer with tags and action buttons:

Repro steps:

open https://aisafety.info/?state=9OGZ_

Looks like we have invalid HTML from markdown rendering with unclosed <div> and unstarted </p>:

Got broken in https://github.com/StampyAI/stampy-ui/pull/317/commits/56e321fdc9b373aed0eeddab8141dcda513317c8

Markdown in Coda looks fine https://coda.io/d/_dfau7sl2hmG#Answers_tuile/r900&view=modal => probably something to do with insertion of see-more...

@Aprillion is this fixed?

I hope so 🤞  I swear that GH decides to not auto-close an issue just when I get used to it and stop checking 😭


Add cloudwatch_log_reader fixture that is available for all accounts

I discovered there are functional tests expecting at least 1 user across the organization. This create a cloud watch log reader to fulfill that expectation.

iambic apply


Change 'beta' -> 'review' (Fixes #31)

Fixes #31.
In detail, here's the call stack for Fastlane's deliver:
Deliver::SubmitForReview#submit!
  Spaceship::Tunes::Application#create_submission
    Spaceship::AppSubmission#create
      Spaceship::TunesClient#prepare_app_submissions
        POST "https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/apps/#{app_id}/versions/#{version}/submit/summary"

Note that the URL above is the one that gets hit whenever the submit review button is pressed. For Testflight, the URL for submitting for external testing should be POST https://itunesconnect.apple.com/testflight/v2/providers/#{team_id}/apps/#{app_id}/builds/#{build_id}/review (this is actually available in Fastlane via Pilot, but has to be called via custom lane).
I'm tagging this WIP to wait for feedback from the maintainers 😉
Please let me know if you have any comments or suggestions. Thanks!

Hi @davidchristiandy,
thanks for the PR!

Glad I can help!


Example instance doesn't work

mastodon.jgarr.net don't work with infinity redirects error. I'm only find profile in mastodon.social cache. And I'm trying doing the same file structure, but my profile is not displayed<EMAIL_ADDRESS>

Sorry, I broke this when moving registrars. I'll figure it out

When will you fix it?

It's fixed now

From any mastodon instance
But why profile shows only on mastodon.social ?

I'm not sure why it doesn't work from other instances. Maybe their installations are old or don't discover users according to AcitivityPub.
You can test the URLs by following it manually with curl
curl -L https://mastodon.jgarr.net/.well-known/webfinger
{
    "subject"<EMAIL_ADDRESS>    "links": [{
        "rel": "self",
        "type": "application/activity+json",
        "href": "https://mastodon.jgarr.net/justin"
    }]
}

I'm makes similar but my profile not shown on mastodon.social
curl -L https://bot.doesnm.cc/.well-known/webfinger
{
    "subject"<EMAIL_ADDRESS>    "links": [{
        "rel": "self",
        "type": "application/activity+json",
        "href": "https://bot.doesnm.cc/test"
    }]
}

Both accounts show from my self-hosted instance Explore search, which isn't mastodon.social.

I'm trying mastodon.social, mastodon.ml, masturbated.one

This isn't a full featured solution and I'm not surprised if it doesn't work anymore. It may just be that my user was cached in mastodon social when it worked and it doesn't anymore

Then why do both profiles work for a person from above?


babel-preset-react-app doesn't support overriding targets

I'm working on making react-scripts support SSR for my project. I can handle most of what I need by editing react-scripts itself but my server-side build is still using ie: 9 as the target because babel-preset-react-app doesn't allow for overriding the targets.
There was a recent discussion about ignoring the"browserslist" settings, but this is a different ask. I would like to have a way to specify a dev or prod build for my app for either node or browser.
Ideally I would be able to specify the targets as an option to babel-preset-react-app. This allows me to copy webpack.config.dev.js to webpack.config.dev-ser ver.js and make the small handful of changes necessary to target node.
(compare to webpack.config.dev.js)
presets: [
  [
    require.resolve('babel-preset-react-app/dependencies'),
    {
      helpers: true,
      // wouldn't it be nice to specify target
      targets: { node: 'current' }
    },
  ],
],

Similar: https://github.com/facebook/create-react-app/issues/2592

Will this be implemented?

I have published a fork for my own purposes: https://www.npmjs.com/package/@zumper/babel-preset-react-app
I went the route of adding a special “node” file that works like the existing “dependency” file.
You would replace a line like this: https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/config/webpack.config.js#L357
presets: [require.resolve('@zumper/babel-preset-react-app/node')],

@ivosabev is seems this was implemented for 2.0 milestone
this comment https://github.com/facebook/create-react-app/issues/892#issuecomment-357407350 references browserlist for these entries

Autoprefixer: #3644
Babel: #3770

But in master branch these settings are applied
https://github.com/facebook/create-react-app/blob/caf0a30e38d0cb9bbd2aab733efa0dd1aa6a9cb6/packages/babel-preset-react-app/create.js#L82-L89
and browserlist override don't works
it was added back here #5033 https://github.com/facebook/create-react-app/commit/c9e18763823780f884ece97129175da6b7fc5f6c#diff-7482288d6d13860f434d0b8171f20431
with this comment

Because of how tuned our babel configuration is we can't reliably let users target what browser's they'd like to support without everything else falling apart.
If we use just preset-env users are left with a suboptimal bundle or something that requires other configuration, so this is the best option for now.

cc @Timer please, can you elaborate on this?
I just wanted to exclude polyfills and ES5 in bundle, and this is impossible now 😢

For anyone who still experiences issues, as a temporary workaround, you can override targets with following:
babel/index.js
// overrides babel-create-react-app preset to deliver es6 code
// at the moment of writing babel-create-react-app preset didn't allow to override targets and used ie9 as a default

const babelReactApp = require('babel-preset-react-app'); // eslint-disable-line

module.exports = (api, opts) => {
  const env = process.env.BABEL_ENV || process.env.NODE_ENV;

  const isEnvDevelopment = env === 'development';
  const isEnvProduction = env === 'production';

  const config = babelReactApp(api, opts);

  // mutate babel-env-preset config for production and development
  if (isEnvProduction || isEnvDevelopment) {
    const envPresetConfig = config.presets.filter(preset => preset && preset[1] && preset[1].targets)[0][1];

    if (envPresetConfig) {
      envPresetConfig.useBuiltIns = false;
      envPresetConfig.ignoreBrowserslistConfig = false;
      // get from browserlistrc
      envPresetConfig.targets = null;
    }
  }

  return config;
};

and in bablerc
{
  // ...
  "presets": [
    "./babel"
  ],
  //...
}

Hovewer, still waiting for support from babel-create-react-app-preset to override such things.

Sorry for offtop. Message to prevent issue from closing


Better stats & minor changes in stop.js

Hm looks good, have you checked the lint errors like are there any :neutral_face:

there are none in stats.js and stop.js. Idk about any others

Aight looks good to me


DocsArchive-<IP_ADDRESS>Auto archive content

Auto archive content from https://github.com/OPS-E2E-PPE/docs-archive-test-source

Docs Build status updates of commit 179fc52:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error]

Cannot sync git repo to specified commit because branch Archive_master_2019-11-14-06-58-28 has been deleted or has been force pushed: fatal: couldn't find remote ref Archive_master_2019-11-14-06-58-28

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Both p3_main and shoc_main added a Runtime paramter

We need to discuss what values to set in the Runtime objects.
P3Runtime has:
Scalar max_total_ni;
SHOCRuntime has:
   Scalar lambda_low;
   Scalar lambda_high;
   Scalar lambda_slope;
   Scalar lambda_thresh;
   Scalar thl2tune;
   Scalar qw2tune;
   Scalar qwthl2tune;
   Scalar w2tune;
   Scalar length_fac;
   Scalar c_diag_3rd_mom;
   Scalar Ckh;
   Scalar Ckm;

@jgfouca I'm realizing that it does make more sense to match the current SCREAM default values rather than the fortran. Eventually these values will likely diverge, and I'll probably expose new namelist variables to allow independent tuning of MMF2, but for now let's match what the SCREAM tests are doing.

@whannah1 , done. It looks like they all already matched except for max_total_ni.


Sppof browser user agent when embedding images

https://github.com/gamell/markpress/commit/b85d1b47441ea8937bac254a28ae6176d914acc1 Implements this


RDKTV-19091 : WpeFramework crash with shared_count display settings

Reason for change:
Fixed Display Settings distractor.
HdmiCecSink shared_ptr cross reference in DisplaySettings
plugin is removed.
Test Procedure: refer jira.


Map editor doesn´t work with Midwinter theme

The map editor does not work when using the Midwinter theme. The screen goes completely black.
When hover over the black screen I can see the links and the pointer changes from cross to pointer.
Map visualization is OK.
Cacti 1.2.27
Weathermap Plugin 1.3

I think that @browniebraun is putting all his energy on MidWinter into 1.3.x.  I've mentioned him here in hopes he can help.


Updates

Added the following functionality:
!listevents
command list ALL events past and present that are in the Bloom Discord server
!deleteevent
command deletes an event. It needs to be passed an event ID with the command.
Scheduled task that will check for events within the next 24 hours once a day.
If events are found it will log them to a specified channel and use the @ here to inform people of the upcoming event/s
When new events are created, there is an hour delay in which the person creating the event can make changes to the name / description etc.

To clarify on !listevents, it will only list events that are still visible within the Bloom Discord server. Once an event has been ended / deleted it will no longer show.

@Balugrizzly , same with this branch

same as what with this branch?

You have linked the help ticket to this which will be closed after merge is this intended?
The help command should exist for the whole bot in its entirety

merge conflicts

Consider opening your files once instead of multiple times and duplicating the functionality. Same goes for similar operations

Ah I see what you mean. 👍🏼

same as what with this branch?

Oh I was just mentioning that this PR was updated from the putting_it_together branch. You can disregard that comment.

You have linked the help ticket to this which will be closed after merge is this intended? The help command should exist for the whole bot in its entirety

I intended to handle that issue in this branch / PR, but I can create another branch for that issue specifically?

Consider opening your files once instead of multiple times and duplicating the functionality. Same goes for similar operations

I was thinking about this and as its a small file wouldn't it be better to open and close as it's just a small file? Wouldn't there potentially be data loss if the bot was restarted / crashed and the file had not been closed / saved?

You have linked the help ticket to this which will be closed after merge is this intended? The help command should exist for the whole bot in its entirety

I intended to handle that issue in this branch / PR, but I can create another branch for that issue specifically?

As long as the help command is available for everything its ok

Consider opening your files once instead of multiple times and duplicating the functionality. Same goes for similar operations

I was thinking about this and as its a small file wouldn't it be better to open and close as it's just a small file? Wouldn't there potentially be data loss if the bot was restarted / crashed and the file had not been closed / saved?

What you state  is unrelated to what i mentioned
The size of the file has no significance in this.
May i suggest implementing it in a way that data loss by design does not occur :) I think that would be beneficial
The implementation is not the only thing the duplication and the referencing or the lack there of is one

Can you explain your directory structure layout If you want we can postpone this and revisit when you bring the three branches together I would lean towards a domain separation or responsibility sections

I was thinking of separating into:
Discord package related:
Commands / Events / Tasks
And then separate folders for:
Emojis/Emotes
Updates/Events
Governance/Proposals
Snapshot

Up to you on how you want to proceed

Happy to merge both of updates and emotes after my changes yesterday. Tested both and are OK.


Cannot read property 'length' of null

Challenge catch-off-by-one-errors-when-using-indexing has an issue.
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36.
Its throwing an error: "Cannot read property 'length' of null" however; in my browser this works as expected.

function countToFive() {
  let firstFive = "12345";

  for (let i = 0; i < firstFive.length; i++) {
    console.log(firstFive[i]);
  }

  return firstFive;
}

countToFive();

@imcodingideas you've removed too much code (len variable) and it is causing the tests errors. This challenge needs to be updated.
Here are some suggestions, but not limited to:

Put some comments in the seed code so that it guides the camper to edit the appropriate code.
The test messages should be simpler to understand. They seem a bit vague in describing what is expected of the camper.

@erictleung I'll take this up..


Lodestar Hobbits Integration

This bounty will be awarded to the team or individual integrating hobbits as defined by the specification of the wire protocol and the specification of the gossip protocol into the Lodestar client.
Acceptance criteria:

The implementation is delivered under a permissive open source license (MIT and/or ASL)
The implementation follows Javascript (or Typescript) best practices.
The implementation has significant test coverage as unit tests.
The implementation is integrated with continuous integration and test coverage.
The Lodestar client is able to peer with itself and finalize blocks

Additional Info:
Lodestar client: https://github.com/ChainSafe/lodestar
Hobbits specifications: https://github.com/deltap2p/hobbits

canceled bounty


upgrade OpenSSL to 1.0.2m

closes #142

@homunkulus r+

:pushpin: Commit 8088695 has been approved by japaric

:hourglass: Testing commit 80886958fb703f8e98ba70832bb0614334b016ba with merge 2a8ea48d62f2817555f4004bb536bf54977a798c...

:sunny: Test successful - status-travis
Approved by: japaric
Pushing 2a8ea48d62f2817555f4004bb536bf54977a798c to master...


fix Fix group concat

Proposed changes
Fix failed in regression_test/suites/query_p0/group_concat/test_group_concat.groovy
forbidden generate stream aggregate node when group by slots is empty

run buildall

run buildall

run buildall


Sometimes facedancer device will throw unexpected data on ep0 errors when it is, in fact, expecting data on ep0

Fixed in: #115


How to import ConnectionRecordMerger

Question
I'm currently trying to implement pagination and would like to realize cache merging. I've been implementing this based on the file below, but I can't find ConnectionRecordMerger.
https://github.com/apollographql/apollo-kotlin/blob/main/tests/pagination/src/commonTest/kotlin/CursorBasedPaginationTest.kt#L54

Can't I import ApolloExperimental?
memo:
https://github.com/apollographql/apollo-kotlin/blob/7690bf5c06b6469228f899380c6fc9f7a3ee910f/apollo-normalized-cache-api/src/commonMain/kotlin/com/apollographql/apollo3/cache/normalized/api/RecordMerger.kt
https://github.com/apollographql/apollo-kotlin/blob/main/tests/pagination/src/commonTest/kotlin/CursorBasedPaginationTest.kt#L54
https://github.com/apollographql/apollo-kotlin/releases/tag/v3.4.0

You probably need to import apollo-normalized-cache-incubating instead of apollo-normalized-cache

Thanks!!
I solved it.
    implementation "com.apollographql.apollo3:apollo-normalized-cache-incubating:$gradle.ext.apollo3"
    implementation "com.apollographql.apollo3:apollo-normalized-cache-sqlite-incubating:$gradle.ext.apollo3"
    // implementation "com.apollographql.apollo3:apollo-normalized-cache:$gradle.ext.apollo3"
    // implementation "com.apollographql.apollo3:apollo-normalized-cache-sqlite:$gradle.ext.apollo3"

Heads up this is (as the name implies) pretty much incubating. I'm pretty sure the performance isn't great and I wouldn't use that in production (contrary to alphas 😄 ). It's mostly a test bed to gather feedback and iterate on API design. If you have any feedbacks abuot the ergonomics, please let us know!

OK. I plan to only use 'incubating' for testing, not in a production environment. Currently, our pagination code is not clean, but  it's working, so there's no problem. First, I'll test it, and then I plan to refactor it again after the official release.
In our pagination code, we hold the values to paginate as a list in the Jetpack Compose state. However, we want to replace the state with a cache.


docs(headless): add React samples for headless search parameter manager

https://coveord.atlassian.net/browse/KIT-415

Could have been cool to also have an example with popular routing library

I think this is specialized use-case to have as the reference sample. I think we should have a sample for it but place it in a dedicated section under e.g. commerce/seo-friendly-urls


Updated Installation Steps - Live server

Installation steps updated to have more specific details on configuring live server if VS CODE is used as an IDE
Related Issues

N/A

Proposed Changes

Change 1 - Added links from free code camp on how to setup live server in vscode in ReadMe.md installation steps
Change 2 - Also added StackOverflow link on how to change port number to a specific one for setting up auth0 in local dev environment setup

Additional Information

For the new contributors , who may be unaware about how to start up a local server while working with project , the proposed change may come handy

Checklist

[ ] Tests
[ ] Translations
[x] Documentations

Screenshots

Original
Updated

** Original Screenshot **
** Updated Screenshot **

Should me mention the reason of why are we asking to open port 3000.
We can write that For using authentication feature in local env the allowed URL is kept as localhost:3000.
More common ports will be added asap.


BirthDate View does not seem to work

I've integrated the apto ui sdk, however when I attempt to get past the Birthdate form, I get an error saying the birthdate is not correct. Any way to get past this? Thanks

Apologies for the delay. Had you previously created a user with that phone number?

Hi, we are able to see a verification for a phone number ending in 577 on 09/02/2020. The birthdate sent to the server is 09/12/1991, while the users (we have 2 on different projects Blegg and Outlet Finance) have different birthdates stored in the system.

Close it.


Preprod faucet setup and test runner

This PR adds:

Faucet runner added

Faucet key and 6 keys for Seath are generated (admin + leader + 4 users)
Runner added can send Ada to KeyWallet's from some funded KeyWallet

Tests setup for preprod
Test runner adjusted so it can ran test on Plutip or Preprod - some modules were reorganized for that, logic didn't change

Once solved the last comment I think this is ready for merge.


Extreme Performance issues after 0.180.0

First I'd like to say the new text parsing improvements are GREAT. :dancer:
But I can only guess that they've caused a memory leak or something. After opening a few large files in a couple different windows and letting an hour or so pass by, my computer was barely responding.

That red spike is memory usage was Atom. Each process was taking about 200 megs or so. I think it's normally around 15mb?
If it happens again, please let me know what other details I can give.

What platform are you on? Is this happening consistently for you? If so, for all projects or only certain projects? If it occurs consistently for a specific project, could you share a link to its repository so I can try and reproduce?

Also, to cover the basics... Is it reproducible in safe mode (atom --save) and how many tabs / files do you have open while it happens?

I had today 4 atom processes with 1GB/each :o my pc has 16gb. After restarting atom everything was responsive again. :)

Closing in favor of https://github.com/atom/atom/issues/1827