Table Keyboard Navigation HLD

Pull Request
🤨 Rationale
This is an HLD to discuss implementation strategies related to keyboard navigation.

#1137
#1151

We should go with Option 2: Stick to ARIA guidelines, as there are a lot less cons in doing this than deviating from it.

@atmgrifter00 closing this in favor of #1960, I think that PR covers everything but an fyi just in case


FastAPI requests handled by middleware are always "generic ASGI request"

I have a problem, that requests in FastAPI that get handled by a middleware, such as 404s or OPTIONS for CORS, are reported as "generic ASGI request" for transaction name. It seems like there should be an fix - all of these requests have enough information to name them at least a bit more specific, such as by the name of the middleware, the URI + method, or similar.

Related to #1599


introduce OptionalPeripherals

I needed a way to spread peripheral initialization over multiple init() functions.
Passing &mut Peripherals around won't work as it's field cannot be moved out.
But steal()ing Peripherals in multiple places doesn't seem right.
So this PR augments peripherals_struct!() to also create a struct OptionalPeripherals {} that contains all fields of Peripherals, but wrapped in Option.
This is quite wasteful (1b per Peripheral, e.g., ~119b on nrf52840). I hope that this will be on stack only, or edit we'll optimize this into some kind of bit-field but with a similar interface, or even just compile it out.
edit this only exposes OptionalPeripherals for nrf52840 now. If I get positive feedback on the idea, I'll add re-exporting for the other crates. Marking as draft for now.

Could you show an example of why this is useful?

Could you show an example of why this is useful?

Sure!
Basically I'm trying to provide high-level features ("net", "usb", "usb_ethernet", ...) that an application can select, together with target board features (e.g., "nrf52840dk", "rpi-pico"), and then minimize code duplication, having shared initialization functions.
  #[cfg(feature = "nrf52840dk")]
  mod nrf52840dk {
      pub type UsbDriver = Driver<'static, peripherals::USBD, HardwareVbusDetect>;
      pub fn init_usb(p: Peripherals) -> UsbDriver {
          use embassy_nrf::peripherals;
          use embassy_nrf::usb::{vbus_detect::HardwareVbusDetect, Driver};
          pub fn usb_driver(p: &mut Peripherals) -> UsbDriver {
              let usbd = p.USBD; // cannot move out
              use super::Irqs;
              Driver::new(usbd, Irqs, HardwareVbusDetect::new(Irqs))
          }
      }
  }

  #[cfg(feature = "rpi-pico")]
  pub mod rpi_pico {
      use embassy_rp::peripherals;
      use embassy_rp::usb::Driver;
      pub type UsbDriver = Driver<'static, peripherals::USB>;
      pub fn usb_driver(p: &mut Peripherals) -> UsbDriver {
          let usb = p.USB; // cannot move out
          Driver::new(usb, super::Irqs)
      }
  }

  #[cfg(feature = "nrf52840dk")]
  use nrf52840dk as board;

  #[cfg(feature = "rpi-pico")]
  use rpi_pico as board;

  fn init(p: Peripherals) {
      let usb_driver = board::usb_driver(&mut p);
  }

(pseudo code and mostly conceived example)
In this example, I'd like to move the initialization of usb_driver out of init() into functions (of modules, or elsewhere). With USBD (or USB) being fields of Peripheral, there's no way. If usb_driver() takes &mut Peripheral, the field cannot move out. If it consumes the peripheral, that cannot be used for any other initialization.
For this example, there's ways to work around this (e.g., by passing p.USBD to board::usb_driver()), but already there'd be two versions because of different naming of the USB peripheral field.
Down the line there'll be more variants, more peripheral types, more places to pull init_foo(p: Peripherals) from, ...

I recently published assign-resources which is another way to solve this problem: you can split Peripherals into multiple structs, e.g. you'd have one for fn usb_driver(), and you only write the name of the type in one place, so you can very easily #[cfg] multiple versions for different boards. In main(), you split up peripherals into the smaller structs, and pass each one to the relevant function, which then gets to own its peripherals.
For example:
#[cfg(feature = "nrf52840dk")]
assign_resources! {
    usb_driver: UsbResources {
        usb: USBD,
    }
}

#[cfg(feature = "rpi-pico")]
assign_resources! {
    usb_driver: UsbResources {
        usb: USB,
    }
}

pub fn make_usb_driver(r: UsbResources) -> UsbDriver {
    // it's always called `r.usb` in `UsbResources` and is an owned peripheral, not a reference
    Driver::new(r.usb, Irqs, #[cfg(feature = "nrf52840dk")] HardwareVbusDetect::new(Irqs))
}

fn init(p: Peripherals) {
    let r = split_resources!(p);
    // pass `make_usb_driver()` all the USB related resources (pins, peripherals, DMA channels, etc)
    let usb_driver = make_usb_driver(r.usb_driver);
}

I recently published assign-resources which is another way to solve this problem: you can split Peripherals into multiple structs

Just so this doesn't get cleaned: we might still want to use this, and are still searching for alternatives or better justification. :)

Some update:
We've been using OptionalPeripherals in our fork of embassy for a while now. We're pairing it with a variant of assign_resources!() (we call it riot_rs::define_peripherals!()).
In combination, it allows writing applications that don't fully control Peripherals, which is kinda the thing that RIOT-rs (turning into an opinionated distribution of embassy) adds on top of embassy.
I'm realizing that we don't really have a succinct example showcasing this. Probably our hid test application comes closest.
The general idea is that an (application or library) crate can do sth like this:

use riot_rs::...;

riot_rs::define_peripherals!(Buttons {
    btn1: P0_11,
    btn2: P0_12,
    btn3: P0_24,
    btn4: P0_25,
});

#[riot_rs::task(autostart, peripherals)]
async fn button_user(buttons: Buttons) {
  // this task now owns the peripherals in `Buttons`
...
}

This should look quite familiar to a "regular" embassy application. Here, the riot-rs crates drive MCU setup & startup (controlling main() and Peripherals), take care (using OptionalPeripherals) of extracting Buttons in a safe (works or panics) way, and of spawning the task.
Potentially there are other tasks which use other Peripherals, started elsewhere in the dependency tree, with ownership tracked at runtime using OptionalPeripherals. Like, enabling a feature on the riot-rs crate also enables the network stack.
We'd love to upstream this so we might eventually not use a fork of embassy. And we don't see a way to implement this in our code, the peripherals_struct!() is just the right place. :smile:
Personally I think the name needs bike shedding. Apart from that, I hope embassy finds this useful enough to merge, or unintrusive enough to merge because we want to use it.

I'm sorry, but I don't think this is something we should merge.

Solutions like assign_resources! already offer ways of splitting initialization between multiple methods, without potential "unwrap of None" panics.
I'm not a fan of having two ways of doing the same thing, with subtle tradeoffs between them.

so I'm going to close this. Thanks anyway for the PR!

Hm, this is very unfortunate, we depend on this quit a bit in Ariel OS, and we'd love to not have to use a fork at some point.
What the runtime tracking allows us to do, and what no other solution that we know of does, is that it solves what we've dubbed the "partial move problem" in code that is independent at the type level.
assign_resources!() allows splitting initialization between multiple methods from one method that knows all the types, as the compiler can reason about the partial moves. Only that one method can move fields out of Peripherals.
OptionalPeripherals allows runtime tracking of the actually moved out peripherals, which allows us to pass such a struct to arbitrary methods without knowing the exact peripherals those methods would take out.
I think assign_resources!() actually solves an orthogonal problem (bundling some Peripherals fields and partially moving them out of Peripherals, whereas we need to fully move/take them out, elsewhere).
(In Ariel, we're trying to mitigate the "unwrap of None" panics by having some defined "initialization phase", but we're not too happy about that either. )
We'd love to handle this in our code base, but don't see how. Suggestions welcome. :)
@DirBaio, is this sufficiently different to make you reconsider?
Or, can we maybe ease taking this change in somehow?
Some options I see:

rename the struct (we're not happy with it, we're converging to TrackedPeripherals)

use some macro to create the wrapped struct (I found https://github.com/roignpar/optfield). hide its use (and the necessary reexports) behind a feature.
This would add the optional dependency, but reduce code impact to a handful of feature-gated lines

Find (must exist, else build) a macro that exports the structure of Peripherals (create a macro that creates a macro that creates Peripherals which embassy exports, which we can use in our code to wrap it in optfield)


Small validator fix

This change is

Reviewed 3 of 3 files at r1.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

tmpop/state.go, line 105 at r1 (raw file):

			return &ABCIError{
				CodeTypeValidation,
				fmt.Sprintf("Link validation rules failed %v: %v", link, err),

Why removing  link info?

Comments from Reviewable

Review status: all files reviewed at latest revision, 1 unresolved discussion.

tmpop/state.go, line 105 at r1 (raw file):
Previously, alexppxela (Alexandre Thibault) wrote…
Why removing  link info?

Because the error message is explicit enough and it's too much data to display in the UI

Comments from Reviewable

Review status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from Reviewable

Reviewed 3 of 3 files at r1.
Review status: all files reviewed at latest revision, 1 unresolved discussion, all commit checks successful.

validator/configloader.go, line 28 at r1 (raw file):

var (
	// ErrInvalidValidator is returned when the schema and the signatures are both missing in a validator.
	ErrInvalidValidator = errors.New("a validator requires a JSON schema, a signature or a transtion criteria to be valid")

nit: transition

Comments from Reviewable

Review status: all files reviewed at latest revision, 1 unresolved discussion.

validator/configloader.go, line 28 at r1 (raw file):
Previously, t-bast (Bastien Teinturier) wrote…
nit: transition

Done.

Comments from Reviewable

Reviewed 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Reviewed 1 of 1 files at r2.
Review status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from Reviewable


Overlay as a sub router

I have seen a similar question, and the answer was, that this is the while point of react-router.
That said, i have not been able to find exactly how to do this.
So my router looks like this.
<Route name="search" path="search/:searchID/:searchPage" handler={Search}>
  <Route name="search-single" path=":searchSingleId" handler={SearchSingle} />
</Route>

I need the SearchSingle to be a overlay on top of the already rendered Search route.
Is it possible to render a sub route inside a div? or is there a way to append the sub-router at the end of the current router render... ?
I don't actually know whats the correct way.
In my backbone app, I would just change window history and append to a pre designated div.
I imagine in react using -router this would be cleaner/smarter.
thanks, vache

if I'm understanding you correctly, this is basically the primary feature of react-router, to nest routes and UI.
So if you're on 0.13.x use a <RouteHandler/> inside of Search, if you're on 1.0.0-beta, use this.props.children

https://reacttraining.com/react-router/web/example/modal-gallery


Build(deps-dev): Bump mini-css-extract-plugin from 2.5.2 to 2.5.3 (#2500)

Pull request opened by the merge tool on behalf of #2500

Merged in da254c29c1ac4c653c306749d8873d6309af3968


Negative stat modifier applied on stat with lowest value, returns maximum value.

When I apply a negative modifier to a stat and it exceeds the amount of the stat, instead of being 0, it deducts from 65535, causing the stat to increase.
Eg A character with 10 dex suffers a -20 penalty to his moddex and his dexter becomes 65526.
The stat modifier should be able to be negative (for example -80), but if the stat is 20, it shouldn't go above 0.

Similar fix with stam/hits/mana
https://github.com/Sphereserver/Source-X/pull/625

It's not a similar fix, the difference is that modstats can go below 0 while the related stats no.
This bring the following issue:
ON=@Equip
src.modstr -50
ON=@Unequip
src.modtr 50
Currently a character with 40 str equipping this item will go below 0 and thus it will get a 65k value of str.
If we internally add a check that avoid a mod value to bring the main stat below 0, the player Unequipping the item will get a 50 str value instead of his original 40 value.
That's because, unlike spells stat modifier, modStats modifier are not tracked anywhere.
So the best solution for me is that the scripter is responsible to check if a modStat will bring the stat below 0. (It's a simple script)
Example:
//Argn1: ModStr value
[FUNCTION setModStr]
if (<tag0.override.modstr>)
	modstr -= <tag0.override.modstr>
	tag.override.modstr =
	return
endif
if ((<str> + <argn1>) < 0)
	argn1 = -<str>
	tag.override.modstr += <argn1>
	sysmessage @50 Modstr overrided to <argn1>
endif
modstr <argn1>

Seem legit to me. Tag.override.modstr wiil be a custom modstr only in script side?

yes

on=@statchange
if <argn1> <= 2 //if str dex or int
    if <argn3> <= 0 //if new value will be negative or 0
        argn3=1
    endif
endif

I think this or something like this is the best way to fix it.
str is  +  so no more would be needed.

That should be double checked, then if there's still overflow, the wisest thing would be only to limit the stat to 0 before overflowing

Im working on this. There are few ways to follow.
1-Let stats be negative, or at least reach @statchange being negative.
Maybeit could be interesting to let hits or mana be negative, but stats and maxstats... no real sense.
2-Do nothing. not the best but at @statchange u can get negative value back. I explain:
Ushort transform negative value into positive value but keep original value. so -5 in ushort will be (65535 - (5 -1)) = 65531
This way u can recover the negative value at @statchange-> argn3 and use it to create ur own formula.
3-Set value to 0 if it is negative before it becomes ushort.
This would be the easies way, but you lose information.
In my opinion, best way would be a total rework, but third way is einfach and solve the problem.

Addressed with a recent commit.


Javascript

Need to add the following URL's

Make API calls with
https://docs.angularjs.org/api/ngResource

For Routing use
https://github.com/angular-ui/ui-router/wiki/URL-Routing

https://josecasanova.com/blog/21-javascript-answers-on-quora-every-developer-must-read/

D3js
http://alignedleft.com/tutorials/d3

JS is definitely hitting the nail. JSON, Node.js, MongoDB and NOSQL, functional paradigms of  JS, closures. So much things!

@erkand-imeri Yes I know I am working on it :)

https://github.com/Leo-G/DevopsWiki/commit/d818bbc9a4809fb24c7e23cfe3fea8997b9c9e7a


Add prefix to Objective-C categories and clean up property attributes

Some more housekeeping in accordance with Apple’s Objective-C guides and Spotify’s style guide.

Just a reminder that a user is not supposed to immediately merge a pull request that he/she submitted : #1535

"immediately"? Wasn't this pull request created a month ago?


Create a third_party/libtess2 repository on flutter.googlesource.com

Used for triangulation, this repository must be initialized to https://github.com/memononen/libtess2/commit/fc52516467dfa124bdd967c15c7cf9faf02a34ca.

Similar to the comment on the other mirror, the branch name does not matter.


add smooth TV denoising

A comparison of Gradient Descent and FISTA for smooth TV approximation in denoising with PDHG algorithm using non-smooth TV

Wait, I'm about to add this too, but with the .objective of PDHG updated.

Sorry, didn't know. I just added some comments and print outputs and reduce the number of iteraitoins. Close when you add your PR

As agreed closing without merging as superseded by #43.


Address/Private Key Export

Please can we have like a json_encode of the public and private keys incase i want to use it as an api. Or is there an api to this great job?

when you log to a file, it is currently writing the JSON string  deliminated by \n for each key pair


Improve Stream Error Handling

Describe the bug
At the moment, if you have a streaming truss, and the truss throws an exception mid-stream, it does not show up in the Truss logs.
To Reproduce
A minimal truss to replicate this has the following predict method:
    def predict(self, request: Dict):
        def inner():
            for i in range(5):
                time.sleep(1)
                yield str(i)
            raise Exception("exception")

Expected behavior
If an exception is thrown mid-stream, the exception should be visible from the Truss logs.
Solution idea
The issue is that currently the actual logic from the Truss is being executed in an async task. We never read the result of the task, nor do we await it, so the exception just gets buried.
We can fix this by catching any exceptions that happen inside of the task, and log them.

Resolved by https://github.com/basetenlabs/truss/pull/493


Removed all @author tags as per guidelines

@garydgregory , can you please take look at this ?

Meregd


feat(ComputeLocalHash): provide more verbose error when normalization…

… fails

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Checkpoints based on validation_step or validation_epoch_end

Somewhere I found an example for
def validation_step(self, batch, batch_idx):
       ....
        return {'val_loss': loss, ....}

def validation_epoch_end(self, batch):
        avg_val_loss               = torch.tensor([ x['val_loss'] for x in batch] ).mean()
        .....
        return {'val_loss': avg_val_loss,....}

What does the automatic checkpoint use for deciding if it got a better checkpoint?
My average val loss is getting better, but I do not have a checkpoint ( green line is run 292 ).

To avoid ambiguity, it would be nice to change the name.  Where are all the places I would have to change the name 'val_loss' if I were to make it 'avg_val_loss'?
btw, lighting is amazing!  I made excellent progress on a monster transformer model and I never worried about figuring out checkpoint, ddp, multi gpu, etc, etc.

My training loss is not averaged, and it's very erratic.

I suspect the checkpoint is based on the non-averaged val loss, since it's not logged, I can only speculate that its just as erratic as training loss. So I would like checkpoint based on average val loss.
Given my model takes days to train, any way to change this to avegare validation loss without restarting everything?

If I use
    checkpoint_callback = ModelCheckpoint(
        filepath='/path/to/store/weights.ckpt',
        save_best_only=True,
        verbose=True,
        monitor='val_loss',
        mode='min'
    )

how do I specify the same path that lightning uses by default (ie: f"/ligthing_logs/version_{num}/epoch_{epoch}")?

https://github.com/PyTorchLightning/pytorch-lightning/pull/4213 will fix https://github.com/PyTorchLightning/pytorch-lightning/issues/3703#issuecomment-700060945


Section On Burnout

Would it be worth it to write something on burnout?

Maybe. I'd call it "pacing yourself" or something like that and add it to section 8. I think somewhere there is some material already on setting expectations for contributors, for example posting a "I will get back to you on this in 2 days" and such. Should try and link up with that somehow.

I think this is an important topic. I haven't tackled it much since I'm not sure I'd be able to do it justice.
Location wise, Section 8 "Project Maintenance" makes a lot of sense. I think having a sustainable, maintained project needs a sustainable workload for the project leads.

As I said in my reply to @betatim, in Issue #58, I (may have) read the title of the whole section wrong but maybe because it might be needed to expanded to add more ways to maintain a project through tools and also how to sustain workload.

I started a page.  Anyone is free to help me write it.


add helper for legacy Firefox for Android (pre-2020?)

ah, thanks!
great that theres a special row on it so it doesnt conflict with regular firefox
all looks good, thanks 👍


Precheck delivermin greater than destination amount

Added in payment::precheck to return a tem if the deliverMin amount is larger than the destination amount.
Removed precheck where sendMax greater than deliverMin.
Modified unit test accordingly.

Revierwers: @JoelKatz @seelabs @nbougalis

:+1:

:+1:

:+1: from me

Why are people putting a passed label on commits that are clearly wrong?

Please fix this

@vinniefalco Fixed commit message, rebased.


Rancher on the Access of the control

Describe your issue here
I am using rancher, found that the authority on the environment to control the granularity is too large, prone to misuse, affecting the production environment.
step：
1、click manage environments
2、edit active environment
3、add new user to environment( role : member)
4、login new user
5、click stack - all ( display all stack)
Test members can start/stop/delete Infrastructure Stacks, which is very insecure.
Whether to restrict non-administrator users don't displaying the Infrastructure Stacks.

Useful
Info

Versions
Rancher v1.2.3 Cattle: v0.174.15 UI: v1.2.40

Access
localauth admin

Orchestration
Cattle

Route
stacks.index

@Chenpipi More fine-grained access controls are planned for the future.  A member can run privileged container, which can then do whatever they want on any hosts that are scheduled to.  So pretending to restrict things any further than we do (by role, stack, etc) without solving the actual lower-level problem would just be misleading.

Hey @vincent99, any release schedule regarding this improvement? It's one of the only issues that lead me to not use Rancher yet. Users should not be able to add, edit, start, stop or delete infrastructure-- both from the API and the UI.
As you mention, this needs to be solved on the lower-level first. I think admins should be able to restrict areas / features users can and can not access (like infrastructure stacks, agent hosting, etc.).


Bug: OnChangePlugin doesn't fire when editor is blurred

Lexical version: 0.9.1
Steps To Reproduce

Set up basic editor with OnChangePlugin
console.log in onChange callback
observe no event fires when clicking outside the editor

Link to code example:
This can be observed in the provided sandbox without modification
https://codesandbox.io/s/lexical-plain-text-example-g932e
The current behavior
OnChange is not fired when editor is blurred (de-focused)
The expected behavior
SelectionState should be set to null, causing a change to the editorstate and firing the onChange callback

OnchangePlugin only works on editor state change, not on blur
However you can create a custom plugin like this
https://codesandbox.io/embed/lexical-plain-text-example-forked-x6vxm8?fontsize=14&hidenavigation=1&theme=dark
const EditorBlurPlugin = () => {
  const [editor] = useLexicalComposerContext();
  useEffect(() => {
    editor.registerCommand(
      BLUR_COMMAND,
      () => {
        console.log("test");
      },
      COMMAND_PRIORITY_EDITOR
    );
  }, []);

  return null;
};

no blur does not changes the editor state itself so onChange will never be triggered

@khanakia is correct. We don't change the editor state on blur, even if selection is changed.


iOS homescreen app when minimised crashes on reopen

Hey guys, I have created a simple sandbox which includes SoundJS, noticed an issue with home screen (seems to happen on most sound engines) where if you add your page to home screen, launch the app, touch to load in the sound, then minimise the app and re-open it, you will see the app actually crash. I think this is related to how apple handles home screen apps in general. Your thoughts?

Yes, we have seen this before with IOS running audio from the home screen. Unfortunately we have not found any work arounds or fixes, but have tracked it down to a bug in the ios home screen implementation. For more details checkout #46

Thanks so much for the response, we have been dealing with this issue on home screen for some time now, such a pity that sound behaves this way. At least I know now not to waste anymore time on it. Cheers and compliments on a great API btw.


checksum mismatch when installing dia via MacPorts

Describe the bug
When I try to install dia via MacPorts it depends on rav1e.
This is the output when installing it:
--->  Fetching archive for rav1e
--->  Attempting to fetch rav1e-0.6.3_0.darwin_22.arm64.tbz2 from https://fra.de.packages.macports.org/rav1e
--->  Attempting to fetch rav1e-0.6.3_0.darwin_22.arm64.tbz2 from https://packages.macports.org/rav1e
--->  Attempting to fetch rav1e-0.6.3_0.darwin_22.arm64.tbz2 from https://mse.uk.packages.macports.org/rav1e
--->  Verifying checksums for rav1e
Error: Checksum (rmd160) mismatch for rav1e-0.6.3.tar.gz
Error: Checksum (sha256) mismatch for rav1e-0.6.3.tar.gz
Error: Checksum (size) mismatch for rav1e-0.6.3.tar.gz
Error: Failed to checksum rav1e: Unable to verify file checksums

To Reproduce
sudo port install dia
Expected behavior
the checksum can be verified
Required Information
Toolchain (if is a build problem):
Version:
I'm trying to install 0.63.2

Operating system: MacOS Ventura 13.1
Darwin LAPTOPNAME.local 22.2.0 Darwin Kernel Version 22.2.0: Fri Nov 11 02:03:51 PST 2022; root:xnu-8792.61.2~4/RELEASE_ARM64_T6000 arm64

Why are you opening the issue to us and not to MacPorts ?

Because it is only your package and I think that means that your checksum is corrupted. Maybe I'm completely wrong about how these checksums work, but to my understanding the checksum also comes from you.
Thanks in advance

I would suggest you to open the issue on macports, we do not provide checksums on our own and we do not do anything special in that regard.

okay thank your for the explanation!


N5boost Error (current wallet)

So I just open up my wallet and this new error came up when opening dogecoin client.
EXCEPTION:N5boost12interprocess22interprocess_exceptionE
Access is denied.
Dogecoint-qt.exe in Runaway exception
Im wondering what could be the issue?

Seems like this happens when the data directory is not accessible by the current user. Check the permissions and owner. Just to make sure: Your run 1.8.2, right?

yup i am.
permissions? how would I do that?

Uhm, on the screenshot you posed on Reddit it says 1.4. Anyway. Go to C:\Users\YourUsernameHere\AppData\Roaming\ where you should find the Dogecoin folder. Right click, click Properties and check under Security. Owner should be you and access should be given to your user or "Everyone".

oh sorry about that. yup under security it says I have everyone. still the same message when loading client.

ahh I got it. everything was read only! Now I got it! Thanks!

Glad to hear, gonna close here then :)


ELKv2_docker_setup

Hi,
The ELK_docker_setup example I contributed previously targets vesion 1.x of both Logstash and Elasticsearch.
With 2.x released for both LS and ES now, I can contribute another example that targets these releases.
The ELKv2_docker_setup is very similar to v1.x but does have slight configuration changes in ES.
What would also be different in this new example is demonstrated use of tagged docker images, which makes it easy to set the exact versions of the 3 pieces (ELK) you wish to deploy.
If I contribute this new example I suggest perhaps keeping them both and renaming to something like:
ELKv1_docker_setup
ELKv2_docker_setup
Let me know if you'd like me to proceed.
Thanks.

Hi Rudi,
Yes, I think a new example would be great. However, instead of creating 2 folders under the examples/ repo, I would suggest have a examples/ELK_docker_setup/ and then have v1 and v2 subfolders under it. Hope that makes sense.
Go ahead and create a PR for the content, and I will merge it in.
Thanks!

Hi,
@asawariS Sorry for the delay, version 2 ELK docker tutorial is ready for review and merge when all good.
PR sent.
Thanks.


Add the warning window that for Java we always need the javaHomeDirectoryPath in the TestCompilerFactory

Describe the bug
If there is no java home directoryp path, it is necessary to show a window for users.

@arksap2002 Could you elaborate on the issue and the proposed solution?


[TA] 2023-04-01

Resolves https://github.com/Azure/azure-sdk-for-python/issues/30109 https://github.com/Azure/azure-sdk-for-python/issues/27406

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

/azp run python - textanalytics - tests


help me

TracerWarning: torch.as_tensor results are registered as constants in the trace. You can safely ignore this warning if you use this function to create tensors out of constant variables that would be the same every time you call this function. In any other case, this might cause the trace to be incorrect.
return func(*args, **kwargs)

In most cases this won't be a problem. Just ignore that.


E2E/Cypress:fixed add user to channel test case

Summary
Fixed add_user_to_channel_spec test case
Screenshots

Release Note
NONE

/e2e-test

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/195062


Allow background dimming

PopupWindow allows dimming background, but it's a bit difficult do so and doesn't animate in sync with entry/exist transitions. Providing a first-class API for doing it would be sweet.

This can be achieved on the implementation side by using a "View" and changing alpha from 0F to 1.5F(acc. to the intensity required) but this might not be a good idea but could be a way-around.

Using a View would require touching the view hierarchy of the background window. It may not be a very bad idea, but I'd like to know if it can avoided by only using PopupWindow's APIs

Using a View would require touching the view hierarchy of the background window. It may not be a very bad idea, but I'd like to know if it can avoided by only using PopupWindow's APIs

I'm some what succeeded in setting the background dim but clearing background is not yet done, If you can have a look at it once.

`
//function to apply the backgroundDim
fun applyDim(parent: ViewGroup, dimAmount: Int) {
val dim: Drawable = ColorDrawable(BLACK)
dim.setBounds(0, 0, parent.width, parent.height)
dim.alpha = dimAmount
val overlay = parent.overlay
overlay.add(dim)
}
//function to clear the backgroundDim
fun clearDim(parent: ViewGroup) {
val overlay = parent.overlay
overlay.clear()
}`
Used this

Yeah sure I wouldn't mind doing that. Wanna take a stab?

Let's give it a try!

I was too late to view this thread 🤦.

Hi, can we using blur view like ios (Context menu)? It's think it's better when support more customView like this:

@fukemy I've added support for background dimming. Blur is not yet supported.


add self.assertNumQueries to test

Description
Please include a summary of the change and which issue is fixed. Please also
include relevant motivation and context.
Fixes # (issue)
Checklist:

[ ] I have added the relevant tests for this change.
[ ] I have added an item to the Pending section of docs/changes.rst.

@crccheck I think this is a WIP. I'm inclined to close it to keep the open PRs minimal until there's more of a direction for the work that requires discussion/review.

I think there's some value in asserting how many quietus Django sees vs how many queries the toolbar sees. I think both functionalities use the same underlying data structure, which makes this additional assertion not very useful. Or maybe I'm missing something?

@crccheck I'm going to close this. If you feel like this is important, please let us know why and we can reopen it.

oh sorry, I only opened it to see if CI would run it. I figured out how a minimal command to get tests to run locally since then and I thought draft PRs wouldn't show up

FYI @matthiask there's an issue where Django's queries actually don't match Debug Toolbar #1791 I was trying to recreate

I think there's some value in asserting how many quietus Django sees vs how many queries the toolbar sees. I think both functionalities use the same underlying data structure, which makes this additional assertion not very useful. Or maybe I'm missing something?

Ah, that makes sense. Thanks for following up!


Does not Compile in 5.1 (Not Really an Issue, just a request)

There are a few issues with trying to compile in 5.1. This is the only plugin at this point were having issues with you trying to go to 5.1. Might you have already tested this and possibly have a fix? :D
If not, may I request of you, given you have some free time to do so, update this to 5.1 please?
Thank you,
Darinius

Here is an image of the errors btw. Not sure if that could do anything to help if its a quick fix.

Thanks for letting me know. This should be already fixed in the new branch for 5.1. I haven't had time to test all the features in 5.1. and since it's a development version please use with caution and be aware that there might be some more bugs in there.


Instance Request in FILKOM Infra

Open a ticket to HALOFILKOM to request for an instance that live in FILKOM infra.

I was already contact with Pak Ivan and was assigned to open a ticket there with providing our needs and one of use ssh public key, ill use mine for now

Request submitted to here at 21:24:19 WIB 30th September.
Track progress here.

Access received on Friday 4 October 2024

Web service is running on filkom's infra, but yet to be proxied

Closed #9


Document MAKE_TEMPORAL functions

We support MAKE_DATE, MAKE_TIME and MAKE_TIMESTAMP in the main code.

Thanks for documenting this @hawkfish! Just closing this as a part of a quick Issues cleanup.


code completion with "." and "(" broken (again and again)

This bug keeps on returning, we had it in #3202 then it was fixed, later in #9777 and it was fixed again, now we have the same issue (Visual Studio 2017 CE).
Code completion should complete when typing . or (, e.g:
text is JSO but typing . does not autocomplete to JSON
text is JSON.par but typing ( does not autocomplete to JSON.parse(
Only TAB key does the autocomplete.

I am using Visual Studio 17.1 24603.0 RTM, I tried your exact example and I do not experience this issue
Can you check the setting below

😳 aehm... where can I run and hide?


Fix Swift package manager support for Xcode 11

The support for Swift PM was updated in Xcode 11 beta 4, but now the subspec is throwing some errors in beta 5. We should try the status of it in the next beta.


EnvironmentPlugin is not documented

Mentioned here: https://github.com/mjohnston/envify-loader/issues/1
EnvironmentPlugin
How to use
{
  plugins: [
    new webpack.EnvironmentPlugin([
      "NODE_ENV", "SECRET_KEY"
    ])
  ]
}

Then use in your code with process.env.NODE_ENV or process.env.SECRET_KEY
Documentation should be added https://github.com/webpack/docs/wiki/internal-webpack-plugins and https://webpack.github.io/docs/plugins.html (IMO)

Could you add it please? It's a wiki and everybody can edit it.

added, issue can be closed.
https://github.com/webpack/docs/wiki/list-of-plugins#environmentplugin


Use dirname to create a parent path for new config file

fixes #115
Issue # (if available)
Description of changes
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Thank you for the pull request. Published gem v4.1.4 with this fix.


Add more SharedMap methods and improve it further

This commit implements every public Map method and property. Also, the SharedMap class is now re-exported by index.ts. Lastly, the self field in the SharedMap class and the event classes have been made private.
The new methods may need more testing.

Typically speaking, my code style has been to export everything in case the end user needs to use them. However in this case, I think it's fine.


FLPG-166: support orgid from request query params

Story/Card:
FLPG-166
What does this PR do?
This change detects whether org_id is specified in the request query parameters. Iff so, we pass that along as an ACR key-value pair to IDM so that it can react appropriately.
Where should reviewer start?
Consider that links sent out by e-mail for C&C will soon include the user's org-id as a query param ("org_id", specifically). This code should be able to pick that out and run with it.
Image showing how you feel about this PR [click here for giphy]:(http://giphy.com)
https://i.imgur.com/T8dvYWH.mp4

Ignore this; too many mistakes.


Improve /health endpoint

We’re now using plug_checkup to provide a /health checkpoint that returns either a 200 or 422 status code, based on various checks.
We’re also adding a /ping endpoint that always return a 200 status code (to check whether the server is ready to receive requests).

🦀 Requesting reviewers for this pull request:

@gcauchon (contributor with 1 commits in the last 90 days and 21 commits overall)
@didia (expert reviewer for the elixir stack)


Fix off by one with default value in pagination

Describe the change
What does this Pull Request do?
This updates the logic to make sure that the default select value is visible on the page when using TTY::Prompt#select with default: set.
Why are we doing this?
Any related context as to why is this is a desirable change.
This fixes the bug outlined in #206.
Benefits
How will the library improve?
It changes the way that the default value is displayed from before to match the way that we scroll through values in the selector. Basically the default value will never be at the top or bottom of the visible options unless it is the first or last value of the entire list. Before it was possible for a value to appear at the top and when it would have been at the bottom it sometimes caused this bug.

Drawbacks
Possible drawbacks applying this change.
None that I can think of.
Requirements

[x] Tests written & passing locally?
[ ] Code style checked?
[ ] Rebased with master branch?
[ ] Documentation updated?
[ ] Changelog updated?

I see the code style checked requirement above. How should I run that locally? I don't see Rubocop in the Gemfile, gem spec or CI file.


Feature/rocket filter

in this milestone, added a filter feature where, all the reserved rockets filtered and rendered in profile page

Hi team🙋♀,
Good job implementing all the project requirements for this milestone/project.
STATUS APPROVED ✔
Your project is complete! There is nothing else to say other than... it's time to merge it 🔗 🚢
Congratulations! 🎉
Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers 🥂 and Happy coding!👏👏👏


Adding missing descriptions for 4 taxons

Inspections and performance of education providers
Teacher training and professional development
Further education funding
Apprenticeships, traineeships and internships

Trello: https://trello.com/c/pJEKNcmC/452-things-that-are-missing-in-the-prototype

Checked all 4 topics 👍


EVM blocks and transactions from COA creation do not get indexed

This is most likely a regression from this change: https://github.com/onflow/flow-evm-gateway/pull/299/files#diff-dead54ca0eb128b19b453911c9bc13c64e01b2c50553a574820820564552e39bR140 .
In bootstrap.go the startServer function is called first, and then the startEngine.
Most likely, the engine is not yet up, to ingest the EVM.BlockExecuted & EVM.TransactionExecuted events.

This is a false alarm. I was using an outdated version of flow-cli, which did not include the new hash calculation for direct calls. The COA creation is a direct call, that's why the reported hash was different, and would return null results.


Add support for opening a column family with options

I've hit an issue when I create a column family with a custom compare function and then try to
re-open the same database.  Since I can't pass in options to open_cf, my existing column familes
are opened with the default options and I get an error.
This adds a new DB::open_cf_descriptors method that allows passing in Options for
each column family, and a new ColumnFamilyDescriptor type was added to contain
the congfiguration for each column family.

This change is similar to #130. I might even like this one better. Though I would make it a breaking change and change open_cf_descriptors() to just open_cf().

Apologies @vmx, I completely missed your open pull request or I'd have pulled that instead!  I'd be happy to update this to be a breaking change if you'd rather go with this PR over your own :).

It would be great to get feedback from others, especially @spacejam on which approach he prefers and if he agrees with me that this should be a breaking change or not.

I like coupling column family identifiers to their options, reducing the chance of messing up the order by users. I see it being relatively inexpensive in maintenance costs to keep open_cf_descriptors as well as open_cf and it's nice that this doesn't break existing code. Maybe if more people feel strongly about there being one, we can merge this as-is for now, and open an issue for collapsing them into a single endpoint in the next breaking release?

@spacejam My point about making this one the open_cf() is that I don't really see a use case for the original function. As soon as you need any options you can't use it. And at least I use column families especially because i needed different options.
So I'm in favour for keeping the API as small as possible, especially since we are before 1.0.

I've made the requested changes and added some crate level documentation on ColumnFamilyDescriptors.
With regards to folding open_cf_descriptors into open_cf, an automatic conversion from &str to a ColumnFamilyDescriptor with default options could be done to keep backwards compatibility I think:
pub fn open_cf<P, C>(opts: &Options, path: P, cfs: &[C]) -> Result<DB, Error>
       where P: AsRef<Path>, C: Into<ColumnFamilyDescriptor> {}

impl From<&str> for ColumnFamilyDescriptor {
    fn from(name: &str) -> Self {
        ColumnFamilyDescriptor::new(name, Options::default())
    }
}

Though, I think in most cases when you want to open a ColumnFamily you also want to define a set of per-cf options.

@garyttierney I like the idea of using an automatic conversion to support the new use case while preserving backwards compatibility, and reduce API bloat. The implementation may require a couple more lifetimes, but it's feasible. @vmx what do you think about this approach?

That sounds like a good solution, I wasn't even aware that things like that are possible with Rust.

Awesome! That feels like a good way forward to me at this point. Great idea, @garyttierney ! Would you mind implementing open_cf such that it accepts an Into<ColumnFamilyDescriptor>?
When playing around with the idea I made this quick PoC of migrating a &[&str to an Into<_>, which is a bit ugly, but in case it's helpful here it is! https://play.rust-lang.org/?gist=401075448daa3d550e4d29d726788b4b&version=stable

@spacejam yep, happy to go ahead and implement this :-) I'll get some changes pushed later on tonight for review.

@garyttierney Can I help somehow with this pull request? If yes, tell me which part is missing and I'll be working on it.

@vmx sorry for the delay.  I got a bit stuck keeping backwards compatibility for the open_cfs method!
Currently open_cf_descriptors takes a Vec<ColumnFamilyDescriptor> and would be able to take a Vec<Into<ColumnFamilyDescriptor>>.  However, this method signature isn't compatible with existing calls to open_cf which accepts &[&str].
The solution there might be to accept &[C] where C: Into<ColumnFamilyDescriptor> but I've had some issues with this also:
pub fn open_cf<P, C>(opts: &Options, path: P, cfs: &[C]) -> Result<DB, Error>
       where P: AsRef<Path>, C: Into<ColumnFamilyDescriptor>
{
    for cf in cfs.into_iter() {  // cf = &ColumnFamilyDescriptor, need ColumnFamilyDescriptor
    }
}

I'm relatively new to Rust, so if you have any ideas there I'd appreciate the help.  Thanks!

I'm still trying to get this working and I think I'll get this working. Though I really wonder if it's worth it.
I still don't see the point of the original API, I think if you use Column Families, the usual case is to have custom options. I would make it a breaking change with a note in the README saying:

If you want to use column families like prior to this release you can do so with converting the Column Family names into ColumnFamilyDescriptors via:
your_cfs_as_str.to_vec().iter().map(|name| ColumnFamilyDescriptor::new(*name, Options::default())).collect();

Or opening a bug with the exact error message and then posting this line so you can find it if you hit the problem.

Here's the code I came up with. The problem is that it needs to clone the elements of the colum family slice even if it is of type ColumFamilyDescriptor already.
diff --git a/src/db.rs b/src/db.rs
index 6660863..f9c3995 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -569,6 +569,12 @@ impl ColumnFamilyDescriptor {
     }
 }

+impl<'a> From<&'a str> for ColumnFamilyDescriptor {
+    fn from(name: &'a str) -> ColumnFamilyDescriptor {
+        ColumnFamilyDescriptor::new(name, Options::default())
+    }
+}
+
 impl DB {
     /// Open a database with default options.
     pub fn open_default<P: AsRef<Path>>(path: P) -> Result<DB, Error> {
@@ -579,14 +585,16 @@ impl DB {

     /// Open the database with the specified options.
     pub fn open<P: AsRef<Path>>(opts: &Options, path: P) -> Result<DB, Error> {
-        DB::open_cf(opts, path, &[])
+        let empty: &[&str] = &[];
+        DB::open_cf(opts, path, empty)
     }

     /// Open a database with the given database options and column family names.
     ///
     /// Column families opened using this function will be created with default `Options`.
-    pub fn open_cf<P: AsRef<Path>>(opts: &Options, path: P, cfs: &[&str]) -> Result<DB, Error> {
-        let cfs_v = cfs.to_vec().iter().map(|name| ColumnFamilyDescriptor::new(*name, Options::default())).collect();
+    pub fn open_cf<P, C>(opts: &Options, path: P, cfs: &[C]) -> Result<DB, Error>
+            where P: AsRef<Path>, C: Clone + Into<ColumnFamilyDescriptor> {
+        let cfs_v = cfs.into_iter().map(|cf| cf.clone().into()).collect();

         DB::open_cf_descriptors(opts, path, cfs_v)
     }
diff --git a/src/lib.rs b/src/lib.rs
index 788e97a..07c947b 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -81,6 +81,7 @@ pub struct DB {
 /// A descriptor for a RocksDB column family.
 ///
 /// A description of the column family, containing the name and `Options`.
+#[derive(Clone)]
 pub struct ColumnFamilyDescriptor {
     name: String,
     options: Options,
@@ -165,6 +166,7 @@ pub struct BlockBasedOptions {
 ///    DB::open(&opts, path).unwrap()
 /// }
 /// ```
+#[derive(Clone)]
 pub struct Options {
     inner: *mut ffi::rocksdb_options_t,
 }

Although the above code compiles, it doesn't work (it segfaults), probably due to the cloning of the Options.
I think all boils down to that open_cf gets the strings as slice (kind of borrowed) and that open_cf_descriptor gets the vector of ColumFamilyDescriptors moved (which makes sense). So with keeping API compatibility you'd borrow the vector and then internally clone it. I think that's counter intuitive.

I've create a version of open_cf_descriptor which borrows the vector of ColumnFamilyDescriptor (https://github.com/vmx/rust-rocksdb/tree/feature/open-cfs-with-options). I haven't found a clean way to convert the &[&str] into a &Vec<ColumnFamilyDescriptor> while not doing any conversion if it's a &Vec<ColumnFamilyDescriptor>.

I've spent another few hours. This time I come to the conclusion that converting a reference to another one — in our case a &[&str]] into a &Vec<ColumnFamilyDescriptor> (or &[ColumnFamilyDescriptor]) — is not possible with the From trait as something needs to hold the actual ColumnFamilydescriptors. Anything created within the fn from() won't live long enough.

This pull request relates to the discussions at #145.

crate version 0.9.0 has been cut with these changes included!


cp2k: fix openmp threading

This works around threading problems in CP2K for the PSMP version (see #33). Depending on the BLAS and LAPACK providers either the psmp version (for MKL only) or the popt version (for anything else) is built.
In principle it also should work with OpenBLAS, at least I've used CP2K 7.1 with OpenBLAS in the PSMP version on our cluster.

The only version that always gives correct results is the one with MKL. I couldn't find any other option, that always gives correct results. Therefore I would suggest to always build CP2K with MKL for the moment.


CDN (Cloudfront) change the appearance and rewrite the links?

@cboettig Could you please check to see if the content rewriting by CDN setting is enabled on Netlify?
I found the following thread.
https://answers.netlify.com/t/cdn-change-netlify-cdn-or-cloudfront/3582

Thanks for reaching out! At the moment when you enable asset optimization of any kind, we’ll serve assets from Cloudfront. This includes enabling pretty URL’s. This only happens for assets that are referenced in your html using relative paths. If you use full paths then it will still load them locally. While this is a behavior that we may change in the future, there are no immediate plans to do so.

Looking at the HTML source, font settings, etc. have been removed, and there seems to be a clear difference in appearance when displayed in the browser.
Local

Netlify (#48)

And, we can also see that the url has been rewritten.
For example, CODE_OF_CONDUCT.html to code_of_conduct.
It is possible that this was also the cause of #23.

Not sure I follow entirely here what is going on, but I do think CDN is enabled by default and it looks like Netlify is already re-writing the assets to the CDN. e.g. if you go View Source on the deployed site, it shows assets like stylesheet being rewritten as:
<link href='https://d33wubrfki0l68.cloudfront.net/css/bef421e66c07d4edad7fbfe0768235fd0d8885e9/styles.css' rel='stylesheet'/>

note the Cloudfront address.  Is this causing issues?  I think we can configure this behavior if necessary?  not clear to me the connection between the style rendering and the cdn here.

@cboettig I don't have a Netlify account so I don't know what the settings screen looks like, but the comments below suggest that this setting is optional and can be turned off.

The domain in the screenshot is the domain where any assets which were modified by the asset optimizations in the build settings will be served. If you disable asset optimization in the site build settings, assets will no longer be served from this domain.

https://answers.netlify.com/t/cdn-change-netlify-cdn-or-cloudfront/3582/2

Thanks. Just trying to wrap my head around the issue -- why do we want to disable the CDN?  Is the CDN not correctly rendering the assets?  From the thread, it looks like using full urls instead of relative urls will also bypass the CDN, but maybe that's not easy to do in quarto?
I'll poke around for the option to turn of the CDN.

why do we want to disable the CDN? Is the CDN not correctly rendering the assets?

I think the web page is rewritten by Netlify.
Due to this, the fonts are displayed differently than expected, and rounded corners seem to be squared off.
The official Quarto site also appears to be deployed on Netlify, but does not appear to be affected as such.
https://quarto.org/

I never ever understood the obsession with Netlify. I sometimes asked and I think I got a partial answer once or twice (and have promptly forgotten what it was about -- maybe something about private vs public repos?).  I am rather content with simply hosting everything I don't just host here (at home) over at GitHub via Pages, and added more content over the years.  It just works with a simple commit -- good enough for me.  My $0.02, but I am not the one putting in the work so deferring to @eitsupi.

Do we want to publish to a different branch or a a docs/ dir on the main branch if we go pure-GitHub pages?

For searchability, it is better to use the gh-pages branch, I think. (I think it confuses people when they search for a document and both the md and html files come up in the search results on GitHub.)
This can be accomplished with a small modification to GitHub Actions and we will create a PR later.

Leave it open until the time when https://www.rocker-project.org/ is finally redirected to GitHub Pages.


[REQUEST Membership]: New membership for gnunu

GitHub Username
gnunu
Organization you are requesting membership in
openyurtio
Sponsors
Intel
Requirements

[y] I have joined in the community Dingding and [WeChat]
[y] I often attend Openyurt Community Week
[y] I have reviewed the [community membership docs]
[y] I have spoken to my sponsors ahead of this application, and they have agreed to sponsor my application
[y] I have checked my affiliation in devstats (if it's not correct, please fix in cncf/gitdm)
[y] I am actively contributing to 1 or more OpenYurt subprojects

List of your contributions

PRs reviewed / authored:

Issues :
https://github.com/openyurtio/openyurt/issues/328

agree +1

agree +1

@gnunu Would you like to introduce yourself to the community ？

@gnunu Would you like to introduce yourself to the community ？

Sure. I am Chen, Shaoqiang from Intel, a software engineer woking on cloud edge software solutions such as video analytics based on heterogenous devices, and co-enginerring with customers for necessary customization or optimization. Excited to be a user and maybe(hope :)) a contributor to OpenYurt commnunity!

@gnunu Thank you for introduction.
Congratulations you to become a member of OpenYurt community. We have sent a github message to invite you as member of OpenYurt, please check the message. and after joining member of OpenYurt, you need to check two points in this issue #14

@rambohe-ch Thanks! I checked but couldn't see the message. :( Could you pls send again？


Fix spelling

Oh whoops sorry this went up when I was already fixing it so I didn't see the PR

No worries


No effect in PATH?

fix-path: v2.0.0
Electron: v1.1.1
Node: v6.2.0
System: Yosemite 10.10.5
code:
const fixPath = require('fix-path');
console.log('PATH before fix:');
console.log(process.env.PATH);
fixPath();
console.log('PATH after fix:');
console.log(process.env.PATH);

logs:
PATH before fix:
/usr/bin:/bin:/usr/sbin:/sbin
PATH after fix:
/usr/bin:/bin:/usr/sbin:/sbin

what is your system path?

@Davidzhu001 can't recall, this way a long time ago, when coding an Electron app. Anyway I gave up using this. Thanks anyway!


fix(balancer): support upstream host_header config for stream tls proxy

Summary
support upstream host_header config for stream tls proxy, so that TLS upstream sni can be configured by host_header.

Checklist

[x] The Pull Request has tests
[ ] There's an entry in the CHANGELOG
[ ] There is a user-facing docs PR against https://github.com/Kong/docs.konghq.com - PUT DOCS PR HERE

Full changelog

[Implement ...]

Issue reference

https://konghq.atlassian.net/browse/FTI-5234

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


1084 move back to go git

replaced git2go with go-git

Codecov Report

Merging #1159 (3276efa) into main (5e6f4ee) will decrease coverage by 0.21%.
The diff coverage is 60.94%.

:exclamation: Current head 3276efa differs from pull request most recent head a4f6b45. Consider uploading reports for the commit a4f6b45 to get more accurate results

@@            Coverage Diff             @@
##             main    #1159      +/-   ##
==========================================
- Coverage   70.04%   69.83%   -0.21%
==========================================
  Files         123      123
  Lines        6239     6243       +4
==========================================
- Hits         4370     4360      -10
- Misses       1464     1465       +1
- Partials      405      418      +13

Impacted Files
Coverage Δ

pkg/git/resolver.go
0.00% <0.00%> (ø)

pkg/git/k8s_git_keychain.go
85.00% <50.00%> (-9.45%)
:arrow_down:

pkg/git/remote_git_resolver.go
66.15% <53.48%> (-17.46%)
:arrow_down:

pkg/git/fetch.go
59.50% <61.11%> (-19.91%)
:arrow_down:

pkg/git/git_keychain.go
80.00% <84.00%> (-2.44%)
:arrow_down:

pkg/apis/build/v1alpha2/source_resolver.go
5.88% <0.00%> (-1.02%)
:arrow_down:

pkg/apis/build/v1alpha1/source_resolver.go
0.00% <0.00%> (ø)

pkg/apis/build/v1alpha1/source_resolver_types.go
0.00% <0.00%> (ø)

pkg/apis/build/v1alpha2/source_resolver_types.go
0.00% <0.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


What's the purpose of adding TypeForwardedTo attributes?

In #86 you said

generate type forwards to ensure things work as expected in multi-targeting scenarios

Could you please elaborate a little bit more on this? What exact problem does it solve to add TypeForwardedTo attributes in target frameworks where the type exists?
For example, when multi-targeting net7.0;net6.0;netstandard2.0 the source generator produces this for .NET 6 and .NET 7 targets:
[assembly: global::System.Runtime.CompilerServices.TypeForwardedTo(typeof(global::System.Runtime.CompilerServices.IsExternalInit))]

If I add <PolySharpExcludeTypeForwardedToDeclarations>true</PolySharpExcludeTypeForwardedToDeclarations> they are not generated and everything seems to work fine. Am I missing something?

In case you generate attributes as public in lib A and have reference to them in another lib B.
With this attribute lib A will always have definition of IsExternalInitAttribute (real or forwarded). Without it, there is a possibility of TypeLoadException if A and B are updated separately.

Like if you publish lib A ver 1, but in ver 2 change PolySharp settings, so this type is no longer generated.
Lib B is transitive dep of app have dependency on A.v1, and app have direct dep on lib A.v2 -- assembly redirection would kick in and choose A.v2 and lib B will throw TypeLoadException.

Find a document about the type forwarding, hope it helps
https://learn.microsoft.com/en-us/dotnet/standard/assembly/type-forwarding


EMFILE: too many open files

https://github.com/nuxt/nuxt/issues/12376
https://github.com/nuxt/nuxt/pull/22333

may be caused by eslint, see https://eslint.nuxt.com/packages/module

Hey!
I've also this issue...
I've test to update tailwind.config but no result...
Any help?

For me, build and preview is works, but only dev not running good

For me, build and preview is works, but only dev not running good

No progress, still trying.

[5:43:58 PM]  WARN  Failed to parse static properties from plugin node_modules/.pnpm/nuxt@3.13.2_@parcel+watcher@2.4.1_@types+node@22.8.6_eslint@9.13.0_jiti<EMAIL_ADDRESS>spawn EBADF

  at ChildProcess.spawn (node:internal/child_process:421:11)
  at Object.spawn (node:child_process:762:9)
  at ensureServiceIsRunning (node_modules/.pnpm/esbuild@0.23.1/node_modules/esbuild/lib/main.js:1980:29)
  at transform (node_modules/.pnpm/esbuild@0.23.1/node_modules/esbuild/lib/main.js:1880:37)
  at extractMetadata (node_modules/.pnpm/nuxt@3.13.2_@parcel+watcher@2.4.1_@types+node@22.8.6_eslint@9.13.0_jiti@2.3.3__ioredis@5.4.1__mmnznmnhtfa3gabzpu4lo43haa/node_modules/nuxt/dist/index.mjs:3838:20)
  at annotatePlugins (node_modules/.pnpm/nuxt@3.13.2_@parcel+watcher@2.4.1_@types+node@22.8.6_eslint@9.13.0_jiti@2.3.3__ioredis@5.4.1__mmnznmnhtfa3gabzpu4lo43haa/node_modules/nuxt/dist/index.mjs:5421:18)
  at async getContents (node_modules/.pnpm/nuxt@3.13.2_@parcel+watcher@2.4.1_@types+node@22.8.6_eslint@9.13.0_jiti@2.3.3__ioredis@5.4.1__mmnznmnhtfa3gabzpu4lo43haa/node_modules/nuxt/dist/index.mjs:4794:27)
  at async i.getContents (node_modules/.pnpm/@nuxt+devtools@1.6.0_rollup@4.24.3_vite@5.4.10_@types+node@22.8.6_terser@5.36.0__vue@3.5.12_t_heqf7i7in3lyg2zs4y2dzpwutu/node_modules/@nuxt/devtools/dist/chunks/plugin-metrics.mjs:10:23)
  at async processTemplate (node_modules/.pnpm/nuxt@3.13.2_@parcel+watcher@2.4.1_@types+node@22.8.6_eslint@9.13.0_jiti@2.3.3__ioredis@5.4.1__mmnznmnhtfa3gabzpu4lo43haa/node_modules/nuxt/dist/index.mjs:5271:22)
  at async Promise.allSettled (index 2)

 ERROR  [unhandledRejection] EMFILE: too many open files, watch                                                                             5:44:02 PM

  at FSWatcher._handle.onchange (node:internal/fs/watchers:207:21)

^C *  Terminal will be reused by tasks, press any key to close it.

If it helps, I just created a docker environment and the dev server is working fine.
Here is my docker config:
1. Dockerfile:
FROM node:22.11-alpine
WORKDIR /app
RUN apk update && apk upgrade
COPY ./package*.json /app/
RUN npm install && npm cache clean --force
COPY . .

My guess is that the issue is due to some indirect DEPs upgrade.
and affects dev=true, may the watching of eslint, tailwind/unocss, nuxt.
the followings are changed, but tested for no effect

node from 20.16 to 20.18
vite-plugin-eslint2 removed

💊 just do the following, all issues gone,

prune pnpm store
upgrade nuxt to 3.14.0

so, the reason may be some indirect Deps upgrade between these days to nuxt 3.14.
the lesson I v taken is SHOULD

use fixed version than range
use lockfile first
dont upgrade during minor release

## reset by bash
pnpm store prune
find . -name "node_modules" -type d -prune -exec rm -rf {} +
find . -name "pnpm-lock.yaml" -type f -exec rm -f {} +
asdf install
pnpm -w i --ignore-pnpmfile
pnpm i


Right click Windows Terminal Icon to select terminal to launch (overrides default)

Description of the new feature/enhancement
I would like to see the ability to right click the Application Icon and select any Terminals listed within settings. This way if we want to override the default terminal we can without having to Windows Terminal, then open a new terminal, then close the original.
Proposed technical implementation details (optional)
Right clicking the Windows Terminal icon shows/allows starting of other defined Terminals listed in settings. Launching and bypassing the default terminal definition.

Thanks for the request! This is a /dupe of #576


login fails with {'success': False, 'msg': 'deviceId=null'}

login would fail and returns:
{'success': False, 'msg': 'deviceId=null'}
it seems 2FA has been enforce by webull, and 2FA is not yet supported by the python login.

I just tested, indeed.

Need to see how we can handle Email MFA..

I see, it seems like MFA will only be needed for the first time if you login from a new device, if the device is trusted, then is not required again. So you need to obtain the device id of your computer the first time and use that id to login for your script.

@xeicoco
Hi! I think
https://github.com/tedchou12/webull/pull/48
should fix it, I have tested it myself. By default the mfa code should be received by Email.

Not sure if this has anything to do with this but getting 404's when hitting
    def account(self, account_id):
        return f'{self.base_trade_url}/v3/home/{account_id}'

if i change v2 -> v3 I know get a 403

To add to this.. looks like it's not grabbing my account_id which is why it's 403ing

@mzupan
Hi Mike, I took a look at the endpoint, is okay for the account endpoint to stay at v2:
webull.login(webull_email, webull_pass, 'MacOS Chrome', '850001')
webull.get_trade_token(webull_token)
account = webull.get_account()
print(account)

def account(self, account_id):
        return f'{self.base_trade_url}/v2/home/{account_id}'

the old endpoint works fine.

what about if MFA isn't setup? I don't have it setup and i get a 404 when logging in

Where does the code '123456' come from?  Is it the system generated code that is sent via email or SMS?

odd.. it seems mfa is enabled in my account which i can't turn off in the client

It looks like the initial login check needs to be modified for a multi-step process.

identify mfa by checking login response for "extInfo"
generate new temp code via sendCode request
new code from email or sms is read in by getpass.getpass prompt
2nd login sent with mfa extInfo header and verificationCode

I see the PR request has get_mfa but it is not called.

@alexonab
Sorry, it should be:
webull.get_mfa(webull_email) #this line will send you the mfa code
webull.login(webull_email, webull_pass, 'MacOS Chrome', '123456')
webull.get_trade_token(webull_token)
account = webull.get_account()
print(account)

Where does the code '123456' come from? Is it the system generated code that is sent via email or SMS?
I think it will be determined by the accountType, if you are using Email, is email, if you are using phone number, you get the SMS.
what about if MFA isn't setup? I don't have it setup and i get a 404 when logging in
I think it is setup by default, I have never recall setting it up, but is required as of today.

I'm not sure what is happening with the get_trade_token() function. I have been locked out of my account due to too many failed trading password verifications. The only parameter to the get_trade_token() function should be my Webull password correct?

No, for get_trade_token, it will not be your webull password. It will be your passcode which will be digit upto 6 I guess. You should have used a trade PIN while signing in, that should be the password you should use for that method. I think, it is better to change the params to PIN rather calling it as password in get_trade_token. May be that is the reason for confusion.

Thank you. Yes, the parameters for the login and get_trade_token functions both contain a password parameter, that confused me. Thanks again though.

I still facing the same error, with the latest version.
webull.get_mfa(webull_email) #this step does not work

@lqin1
Thank you!
What part didn't work? You did not get the Email about the PIN or it shows up some errors?
Could you check if you have the Email correctly setup on your account?

I tried get_mfa with both phone number and email address, but didn't get any pin.
I checked that the response from get_mfa has status_code 500 for both cases

discussed here:
https://github.com/tedchou12/webull/issues/53


the current number of sources are 1, while the pre-defined number of sources are 2.

PS D:> cd motion_inmate
PS D:\motion_inmate> .\motion_imitate.exe --gpu_ids 0 --image_size 256 --num_source 2 --output_dir "./results" --assets_dir "./assets" --model_id "donald_trump_2" --src_path "path?=./assets/samples/sources/donald_trump_2/00000.PNG,name?=donald_trump_2" --ref_path "path?=./assets/samples/references/akun_2.mp4,name?=akun_2,pose_fc?=300"
./assets/executables/ffmpeg-4.3.1-win64-static/bin/ffprobe.exe -v error -select_streams v -of default=noprint_wrappers=1:nokey=1 -show_entries stream=r_frame_rate ./assets/samples/references/akun_2.mp4
------------ Options -------------
{'MAX_NUM_SOURCE': 8,
'MultiMedia': {'ffmpeg': {'Linux': {'ffmpeg_exe_path': 'ffmpeg',
'ffprobe_exe_path': 'ffprobe'},
'Windows': {'ffmpeg_exe_path': './assets/executables/ffmpeg-4.3.1-win64-static/bin/ffmpeg.exe',
'ffprobe_exe_path': './assets/executables/ffmpeg-4.3.1-win64-static/bin/ffprobe.exe'},
'pix_fmt': 'yuv420p',
'vcodec': 'h264'},
'image': {'caption': 'this is a fake video, synthesized by '
'impersonator++',
'saved_name_format': 'pred_{:0>8}.png'}},
'NUMBER_FACES': 13776,
'NUMBER_VERTS': 6890,
'Preprocess': {'BackgroundInpaintor': {'bg_replace': True,
'cfg_path': './assets/configs/inpaintors/mmedit_inpainting.toml',
'dilate_iter_num': 3,
'dilate_kernel_size': 9,
'name': 'mmedit_inpainting',
'use_sr': True},
'Cropper': {'ref_crop_factor': 3.0, 'src_crop_factor': 1.3},
'Deformer': {'cloth_parse_ckpt_path': './assets/checkpoints/mattors/exp-schp-lip.pth'},
'FrontInfo': {'NUM_CANDIDATE': 25, 'RENDER_SIZE': 256},
'HumanMattors': {'cfg_path': './assets/configs/mattors/point_render+gca.toml',
'dilate_iter_num': 7,
'erode_iter_num': 2,
'morph_kernel_size': 3,
'name': 'point_render+gca'},
'MAX_PER_GPU_PROCESS': 1,
'Pose2dEstimator': {'cfg_path': './assets/configs/pose2d/openpose/body25.toml',
'joint_type': 'OpenPose-Body-25',
'name': 'openpose'},
'Pose3dEstimator': {'batch_size': 32,
'cfg_path': './assets/configs/pose3d/spin.toml',
'name': 'spin',
'num_workers': 4},
'Pose3dRefiner': {'cfg_path': './assets/configs/pose3d/smplify.toml',
'name': 'smplify',
'use_lfbgs': True},
'Tracker': {'tracker_name': 'max_box'},
'estimate_boxes_first': True,
'filter_invalid': True,
'has_detector': True,
'temporal': True,
'use_smplify': True},
'Train': {'D_adam_b1': 0.9,
'D_adam_b2': 0.999,
'G_adam_b1': 0.9,
'G_adam_b2': 0.999,
'aug_bg': False,
'display_freq_s': 30,
'face_factor': 1.0,
'face_loss_path': './assets/checkpoints/losses/sphere20a_20171020.pth',
'final_lr': 2e-06,
'lambda_D_prob': 1.0,
'lambda_face': 5.0,
'lambda_mask': 5.0,
'lambda_mask_smooth': 1.0,
'lambda_rec': 10.0,
'lambda_tsf': 10.0,
'lr_D': 0.0001,
'lr_G': 0.0001,
'niters_or_epochs_decay': 0,
'niters_or_epochs_no_decay': 100,
'num_iters_validate': 1,
'opti': 'Adam',
'print_freq_s': 30,
'save_latest_freq_s': 300,
'tb_visual': False,
'train_G_every_n_iterations': 1,
'use_face': True,
'use_vgg': 'VGG19',
'vgg_loss_path': './assets/checkpoints/losses/vgg19-dcbb9e9d.pth'},
'assets_dir': './assets',
'batch_size': 1,
'bg_ks': 11,
'cam_strategy': 'smooth',
'cfg_path': './assets\configs\deploy.toml',
'digital_type': 'cloth_smpl_link',
'dis_name': 'patch_global',
'face_path': './assets/checkpoints/pose3d/smpl_faces.npy',
'facial_path': './assets/checkpoints/pose3d/front_facial.json',
'fim_enc_path': './assets/checkpoints/pose3d/mapper_fim_enc.txt',
'front_path': './assets/checkpoints/pose3d/front_body.json',
'ft_ks': 1,
'gen_name': 'AttLWB-SPADE',
'gpu_ids': '0',
'head_path': './assets/checkpoints/pose3d/head.json',
'image_size': 256,
'intervals': 1,
'ip': '',
'load_epoch': -1,
'load_path_D': 'None',
'load_path_G': './assets/checkpoints/neural_renders/AttLWB-SPADE_id_G_2020-05-18.pth',
'local_rank': 0,
'map_name': 'uv_seg',
'meta_data': {'checkpoints_dir': './results\models\donald_trump_2',
'meta_ref': [<iPERCore.services.options.meta_info.MetaProcess object at 0x000002BE6BC5F370>],
'meta_src': [<iPERCore.services.options.meta_info.MetaProcess object at 0x000002BE6BC5F430>],
'opt_path': './results\models\donald_trump_2\opts.txt',
'personalized_ckpt_path': './results\models\donald_trump_2\personalized.pth',
'root_primitives_dir': './results\primitives'},
'model_id': 'donald_trump_2',
'neural_render_cfg': {'Discriminator': {'bg_cond_nc': 4,
'cond_nc': 6,
'max_nf_mult': 8,
'n_layers': 4,
'name': 'patch_global',
'ndf': 64,
'norm_type': 'instance',
'use_sigmoid': False},
'Generator': {'BGNet': {'cond_nc': 4,
'n_res_block': 6,
'norm_type': 'instance',
'num_filters': [64,
128,
128,
256]},
'SIDNet': {'cond_nc': 6,
'n_res_block': 6,
'norm_type': 'None',
'num_filters': [64, 128, 256]},
'TSFNet': {'cond_nc': 6,
'n_res_block': 6,
'norm_type': 'instance',
'num_filters': [64, 128, 256]},
'name': 'AttLWB-SPADE'}},
'neural_render_cfg_path': './assets/configs/neural_renders/AttLWB-SPADE.toml',
'num_source': 2,
'num_workers': 4,
'only_vis': False,
'output_dir': './results',
'part_path': './assets/checkpoints/pose3d/smpl_part_info.json',
'port': 0,
'ref_path': 'path?=./assets/samples/references/akun_2.mp4,name?=akun_2,pose_fc?=300',
'serial_batches': False,
'share_bg': True,
'smpl_model': './assets/checkpoints/pose3d/smpl_model.pkl',
'smpl_model_hand': './assets/checkpoints/pose3d/smpl_model_with_hand_v2.pkl',
'src_path': 'path?=./assets/samples/sources/donald_trump_2/00000.PNG,name?=donald_trump_2',
'tb_visual': False,
'temporal': False,
'tex_size': 3,
'time_step': 1,
'train_name': 'LWGTrainer',
'use_cudnn': False,
'use_inpaintor': False,
'uv_map_path': './assets/checkpoints/pose3d/mapper_uv.txt',
'verbose': True}
-------------- End ----------------
Pre-processing: start...
----------------------MetaProcess----------------------
meta_input:
path: ./assets/samples/sources/donald_trump_2/00000.PNG
bg_path:
name: donald_trump_2
primitives_dir: ./results\primitives\donald_trump_2
processed_dir: ./results\primitives\donald_trump_2\processed
vid_info_path: ./results\primitives\donald_trump_2\processed\vid_info.pkl
----------------------MetaProcess----------------------
meta_input:
path: ./assets/samples/references/akun_2.mp4
bg_path:
name: akun_2
audio: ./results\primitives\akun_2\processed\audio.mp3
fps: 30.0
pose_fc: 300.0
cam_fc: 100
primitives_dir: ./results\primitives\akun_2
processed_dir: ./results\primitives\akun_2\processed
vid_info_path: ./results\primitives\akun_2\processed\vid_info.pkl
    1.1 Preprocessing, running Preprocessor to detect the human boxes of ./results\primitives\donald_trump_2\processed\orig_images...

100%|████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:01<00:00,  1.21s/it]
1.1 Preprocessing, finish detect the human boxes of ./results\primitives\donald_trump_2\processed\orig_images ...
1.2 Preprocessing, cropping all images in ./results\primitives\donald_trump_2\processed\orig_images by estimated boxes ...
0it [00:00, ?it/s]Traceback (most recent call last):
File "motion_imitate.py", line 7, in
File "", line 991, in _find_and_load
Traceback (most recent call last):
File "motion_imitate.py", line 7, in
File "", line 975, in _find_and_load_unlocked
File "", line 991, in _find_and_load
File "", line 671, in _load_unlocked
File "", line 975, in _find_and_load_unlocked
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 671, in load_unlocked
File "mmcv_init.py", line 4, in
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 991, in find_and_load
File "mmcv_init.py", line 4, in
File "", line 975, in _find_and_load_unlocked
File "", line 991, in _find_and_load
File "", line 671, in _load_unlocked
File "", line 975, in _find_and_load_unlocked
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 671, in load_unlocked
File "mmcv\fileio_init.py", line 4, in
File "", line 991, in _find_and_load
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 975, in find_and_load_unlocked
File "mmcv\fileio_init.py", line 4, in
File "", line 991, in _find_and_load
File "", line 671, in _load_unlocked
File "", line 975, in _find_and_load_unlocked
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "mmcv\fileio\io.py", line 4, in
File "", line 671, in _load_unlocked
File "", line 991, in _find_and_load
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 975, in _find_and_load_unlocked
File "mmcv\fileio\io.py", line 4, in
File "", line 671, in _load_unlocked
File "", line 991, in _find_and_load
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 975, in find_and_load_unlocked
File "mmcv\utils_init.py", line 16, in
File "", line 671, in _load_unlocked
File "", line 991, in _find_and_load
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 975, in find_and_load_unlocked
File "mmcv\utils_init.py", line 16, in
File "", line 991, in _find_and_load
File "", line 671, in _load_unlocked
File "", line 975, in find_and_load_unlocked
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 671, in load_unlocked
Traceback (most recent call last):
File "torch_init.py", line 116, in
File "motion_imitate.py", line 7, in
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
raise err
File "", line 991, in find_and_load
OSError: [WinError 1455] Plik stronicowania jest za mały do ukończenia tej operacji. Error loading "D:\motion_inmate\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies.
File "torch_init.py", line 116, in
[16972] Failed to execute script motion    raise err
File "", line 975, in _find_and_load_unlocked
imOSError: [WinError 1455] Plik stronicowania jest za mały do ukończenia tej operacji. Error loading "D:\motion_inmate\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies.
it[ate1
3  File "", line 671, in load_unlocked
192] Failed to execute scr  File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
ipt motion_imit  File "mmcv_init.py", line 4, in
ate
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in load_unlocked
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "mmcv\fileio_init.py", line 4, in
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "mmcv\fileio\io.py", line 4, in
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in load_unlocked
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "mmcv\utils_init.py", line 16, in
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in load_unlocked
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "torch_init.py", line 116, in
raise err
OSError: [WinError 1455] Plik stronicowania jest za mały do ukończenia tej operacji. Error loading "D:\motion_inmate\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies.
[15676] Failed to execute script motion_imitate
0it [00:03, ?it/s]
Process PreprocessConsumer_0:
Traceback (most recent call last):
File "iPERCore\services\preprocess.py", line 63, in run
File "iPERCore\tools\processors\base_preprocessor.py", line 88, in execute
File "iPERCore\tools\processors\base_preprocessor.py", line 197, in _execute_crop_img
File "tqdm\std.py", line 1167, in iter
File "concurrent\futures\process.py", line 484, in _chain_from_iterable_of_lists
File "concurrent\futures_base.py", line 611, in result_iterator
File "concurrent\futures_base.py", line 439, in result
File "concurrent\futures_base.py", line 388, in __get_result
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "multiprocessing\process.py", line 315, in _bootstrap
File "iPERCore\services\preprocess.py", line 80, in run
TypeError: catching classes that do not inherit from BaseException is not allowed
Pre-processing: digital deformation start...
Process HumanDigitalDeformConsumer_0:
Traceback (most recent call last):
File "iPERCore\services\preprocess.py", line 136, in run
File "iPERCore\services\preprocess.py", line 210, in prepare_inputs_for_run_cloth_smpl_links
File "iPERCore\services\options\process_info.py", line 140, in convert_to_src_info
File "iPERCore\services\options\process_info.py", line 233, in read_src_infos
File "mtrand.pyx", line 908, in numpy.random.mtrand.RandomState.choice
ValueError: 'a' cannot be empty unless no samples are taken
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "multiprocessing\process.py", line 315, in _bootstrap
File "iPERCore\services\preprocess.py", line 153, in run
TypeError: catching classes that do not inherit from BaseException is not allowed
Pre-processing: digital deformation completed...
the current number of sources are 1, while the pre-defined number of sources are 2.
Pre-processing: failed...
This is the demo in windows usage section.
I have no idea why this is happening.
My GPU isn't used at all, only CPU is being used.
I saw somewhere that RTX 20xx series is unsupported but idk

PS D:> cd motion_inmate
PS D:\motion_inmate> .\motion_imitate.exe --gpu_ids 0 --image_size 256 --num_source 2 --output_dir "./results" --assets_dir "./assets" --model_id "donald_trump_2" --src_path "path?=./assets/samples/sources/donald_trump_2/00000.PNG,name?=donald_trump_2" --ref_path "path?=./assets/samples/references/akun_2.mp4,name?=akun_2,pose_fc?=300"
./assets/executables/ffmpeg-4.3.1-win64-static/bin/ffprobe.exe -v error -select_streams v -of default=noprint_wrappers=1:nokey=1 -show_entries stream=r_frame_rate ./assets/samples/references/akun_2.mp4
------------ Options -------------
{'MAX_NUM_SOURCE': 8,
'MultiMedia': {'ffmpeg': {'Linux': {'ffmpeg_exe_path': 'ffmpeg',
'ffprobe_exe_path': 'ffprobe'},
'Windows': {'ffmpeg_exe_path': './assets/executables/ffmpeg-4.3.1-win64-static/bin/ffmpeg.exe',
'ffprobe_exe_path': './assets/executables/ffmpeg-4.3.1-win64-static/bin/ffprobe.exe'},
'pix_fmt': 'yuv420p',
'vcodec': 'h264'},
'image': {'caption': 'this is a fake video, synthesized by '
'impersonator++',
'saved_name_format': 'pred_{:0>8}.png'}},
'NUMBER_FACES': 13776,
'NUMBER_VERTS': 6890,
'Preprocess': {'BackgroundInpaintor': {'bg_replace': True,
'cfg_path': './assets/configs/inpaintors/mmedit_inpainting.toml',
'dilate_iter_num': 3,
'dilate_kernel_size': 9,
'name': 'mmedit_inpainting',
'use_sr': True},
'Cropper': {'ref_crop_factor': 3.0, 'src_crop_factor': 1.3},
'Deformer': {'cloth_parse_ckpt_path': './assets/checkpoints/mattors/exp-schp-lip.pth'},
'FrontInfo': {'NUM_CANDIDATE': 25, 'RENDER_SIZE': 256},
'HumanMattors': {'cfg_path': './assets/configs/mattors/point_render+gca.toml',
'dilate_iter_num': 7,
'erode_iter_num': 2,
'morph_kernel_size': 3,
'name': 'point_render+gca'},
'MAX_PER_GPU_PROCESS': 1,
'Pose2dEstimator': {'cfg_path': './assets/configs/pose2d/openpose/body25.toml',
'joint_type': 'OpenPose-Body-25',
'name': 'openpose'},
'Pose3dEstimator': {'batch_size': 32,
'cfg_path': './assets/configs/pose3d/spin.toml',
'name': 'spin',
'num_workers': 4},
'Pose3dRefiner': {'cfg_path': './assets/configs/pose3d/smplify.toml',
'name': 'smplify',
'use_lfbgs': True},
'Tracker': {'tracker_name': 'max_box'},
'estimate_boxes_first': True,
'filter_invalid': True,
'has_detector': True,
'temporal': True,
'use_smplify': True},
'Train': {'D_adam_b1': 0.9,
'D_adam_b2': 0.999,
'G_adam_b1': 0.9,
'G_adam_b2': 0.999,
'aug_bg': False,
'display_freq_s': 30,
'face_factor': 1.0,
'face_loss_path': './assets/checkpoints/losses/sphere20a_20171020.pth',
'final_lr': 2e-06,
'lambda_D_prob': 1.0,
'lambda_face': 5.0,
'lambda_mask': 5.0,
'lambda_mask_smooth': 1.0,
'lambda_rec': 10.0,
'lambda_tsf': 10.0,
'lr_D': 0.0001,
'lr_G': 0.0001,
'niters_or_epochs_decay': 0,
'niters_or_epochs_no_decay': 100,
'num_iters_validate': 1,
'opti': 'Adam',
'print_freq_s': 30,
'save_latest_freq_s': 300,
'tb_visual': False,
'train_G_every_n_iterations': 1,
'use_face': True,
'use_vgg': 'VGG19',
'vgg_loss_path': './assets/checkpoints/losses/vgg19-dcbb9e9d.pth'},
'assets_dir': './assets',
'batch_size': 1,
'bg_ks': 11,
'cam_strategy': 'smooth',
'cfg_path': './assets\configs\deploy.toml',
'digital_type': 'cloth_smpl_link',
'dis_name': 'patch_global',
'face_path': './assets/checkpoints/pose3d/smpl_faces.npy',
'facial_path': './assets/checkpoints/pose3d/front_facial.json',
'fim_enc_path': './assets/checkpoints/pose3d/mapper_fim_enc.txt',
'front_path': './assets/checkpoints/pose3d/front_body.json',
'ft_ks': 1,
'gen_name': 'AttLWB-SPADE',
'gpu_ids': '0',
'head_path': './assets/checkpoints/pose3d/head.json',
'image_size': 256,
'intervals': 1,
'ip': '',
'load_epoch': -1,
'load_path_D': 'None',
'load_path_G': './assets/checkpoints/neural_renders/AttLWB-SPADE_id_G_2020-05-18.pth',
'local_rank': 0,
'map_name': 'uv_seg',
'meta_data': {'checkpoints_dir': './results\models\donald_trump_2',
'meta_ref': [<iPERCore.services.options.meta_info.MetaProcess object at 0x000002BE6BC5F370>],
'meta_src': [<iPERCore.services.options.meta_info.MetaProcess object at 0x000002BE6BC5F430>],
'opt_path': './results\models\donald_trump_2\opts.txt',
'personalized_ckpt_path': './results\models\donald_trump_2\personalized.pth',
'root_primitives_dir': './results\primitives'},
'model_id': 'donald_trump_2',
'neural_render_cfg': {'Discriminator': {'bg_cond_nc': 4,
'cond_nc': 6,
'max_nf_mult': 8,
'n_layers': 4,
'name': 'patch_global',
'ndf': 64,
'norm_type': 'instance',
'use_sigmoid': False},
'Generator': {'BGNet': {'cond_nc': 4,
'n_res_block': 6,
'norm_type': 'instance',
'num_filters': [64,
128,
128,
256]},
'SIDNet': {'cond_nc': 6,
'n_res_block': 6,
'norm_type': 'None',
'num_filters': [64, 128, 256]},
'TSFNet': {'cond_nc': 6,
'n_res_block': 6,
'norm_type': 'instance',
'num_filters': [64, 128, 256]},
'name': 'AttLWB-SPADE'}},
'neural_render_cfg_path': './assets/configs/neural_renders/AttLWB-SPADE.toml',
'num_source': 2,
'num_workers': 4,
'only_vis': False,
'output_dir': './results',
'part_path': './assets/checkpoints/pose3d/smpl_part_info.json',
'port': 0,
'ref_path': 'path?=./assets/samples/references/akun_2.mp4,name?=akun_2,pose_fc?=300',
'serial_batches': False,
'share_bg': True,
'smpl_model': './assets/checkpoints/pose3d/smpl_model.pkl',
'smpl_model_hand': './assets/checkpoints/pose3d/smpl_model_with_hand_v2.pkl',
'src_path': 'path?=./assets/samples/sources/donald_trump_2/00000.PNG,name?=donald_trump_2',
'tb_visual': False,
'temporal': False,
'tex_size': 3,
'time_step': 1,
'train_name': 'LWGTrainer',
'use_cudnn': False,
'use_inpaintor': False,
'uv_map_path': './assets/checkpoints/pose3d/mapper_uv.txt',
'verbose': True}
-------------- End ----------------
Pre-processing: start...
----------------------MetaProcess----------------------
meta_input:
path: ./assets/samples/sources/donald_trump_2/00000.PNG
bg_path:
name: donald_trump_2
primitives_dir: ./results\primitives\donald_trump_2
processed_dir: ./results\primitives\donald_trump_2\processed
vid_info_path: ./results\primitives\donald_trump_2\processed\vid_info.pkl
----------------------MetaProcess----------------------
meta_input:
path: ./assets/samples/references/akun_2.mp4
bg_path:
name: akun_2
audio: ./results\primitives\akun_2\processed\audio.mp3
fps: 30.0
pose_fc: 300.0
cam_fc: 100
primitives_dir: ./results\primitives\akun_2
processed_dir: ./results\primitives\akun_2\processed
vid_info_path: ./results\primitives\akun_2\processed\vid_info.pkl
    1.1 Preprocessing, running Preprocessor to detect the human boxes of ./results\primitives\donald_trump_2\processed\orig_images...

100%|████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:01<00:00, 1.21s/it]
1.1 Preprocessing, finish detect the human boxes of ./results\primitives\donald_trump_2\processed\orig_images ...
1.2 Preprocessing, cropping all images in ./results\primitives\donald_trump_2\processed\orig_images by estimated boxes ...
0it [00:00, ?it/s]Traceback (most recent call last):
File "motion_imitate.py", line 7, in
File "", line 991, in _find_and_load
Traceback (most recent call last):
File "motion_imitate.py", line 7, in
File "", line 975, in _find_and_load_unlocked
File "", line 991, in _find_and_load
File "", line 671, in load_unlocked
File "", line 975, in find_and_load_unlocked
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 671, in load_unlocked File "mmcv__init.py", line 4, in
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 991, in find_and_load File "mmcv__init.py", line 4, in
File "", line 975, in _find_and_load_unlocked
File "", line 991, in _find_and_load
File "", line 671, in _load_unlocked
File "", line 975, in find_and_load_unlocked
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 671, in load_unlocked File "mmcv\fileio__init.py", line 4, in
File "", line 991, in find_and_load
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 975, in find_and_load_unlocked File "mmcv\fileio__init.py", line 4, in
File "", line 991, in _find_and_load
File "", line 671, in _load_unlocked
File "", line 975, in _find_and_load_unlocked
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "mmcv\fileio\io.py", line 4, in
File "", line 671, in _load_unlocked
File "", line 991, in _find_and_load
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 975, in _find_and_load_unlocked
File "mmcv\fileio\io.py", line 4, in
File "", line 671, in _load_unlocked
File "", line 991, in find_and_load
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 975, in find_and_load_unlocked File "mmcv\utils__init.py", line 16, in
File "", line 671, in _load_unlocked
File "", line 991, in find_and_load
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "", line 975, in find_and_load_unlocked File "mmcv\utils__init.py", line 16, in
File "", line 991, in find_and_load
File "", line 671, in load_unlocked
File "", line 975, in find_and_load_unlocked File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module File "", line 671, in load_unlocked Traceback (most recent call last): File "torch__init.py", line 116, in File "motion_imitate.py", line 7, in File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module raise err File "", line 991, in find_and_load OSError: [WinError 1455] Plik stronicowania jest za mały do ukończenia tej operacji. Error loading "D:\motion_inmate\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies. File "torch__init.py", line 116, in [16972] Failed to execute script motion raise err
File "", line 975, in find_and_load_unlocked
imOSError: [WinError 1455] Plik stronicowania jest za mały do ukończenia tej operacji. Error loading "D:\motion_inmate\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies.
it[ate1
3 File "", line 671, in load_unlocked 192] Failed to execute scr File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module ipt motion_imit File "mmcv__init.py", line 4, in
ate
File "", line 991, in _find_and_load
File "", line 975, in find_and_load_unlocked
File "", line 671, in load_unlocked File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module File "mmcv\fileio__init.py", line 4, in
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
File "mmcv\fileio\io.py", line 4, in
File "", line 991, in _find_and_load
File "", line 975, in find_and_load_unlocked
File "", line 671, in load_unlocked File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module File "mmcv\utils__init.py", line 16, in
File "", line 991, in _find_and_load
File "", line 975, in find_and_load_unlocked
File "", line 671, in load_unlocked File "e:\projects\iperdance\ipercore\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module File "torch__init.py", line 116, in
raise err
OSError: [WinError 1455] Plik stronicowania jest za mały do ukończenia tej operacji. Error loading "D:\motion_inmate\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies.
[15676] Failed to execute script motion_imitate
0it [00:03, ?it/s]
Process PreprocessConsumer_0:
Traceback (most recent call last):
File "iPERCore\services\preprocess.py", line 63, in run
File "iPERCore\tools\processors\base_preprocessor.py", line 88, in execute
File "iPERCore\tools\processors\base_preprocessor.py", line 197, in _execute_crop_img
File "tqdm\std.py", line 1167, in iter
File "concurrent\futures\process.py", line 484, in _chain_from_iterable_of_lists
File "concurrent\futures_base.py", line 611, in result_iterator
File "concurrent\futures_base.py", line 439, in result
File "concurrent\futures_base.py", line 388, in __get_result
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "multiprocessing\process.py", line 315, in _bootstrap
File "iPERCore\services\preprocess.py", line 80, in run
TypeError: catching classes that do not inherit from BaseException is not allowed
Pre-processing: digital deformation start...
Process HumanDigitalDeformConsumer_0:
Traceback (most recent call last):
File "iPERCore\services\preprocess.py", line 136, in run
File "iPERCore\services\preprocess.py", line 210, in prepare_inputs_for_run_cloth_smpl_links
File "iPERCore\services\options\process_info.py", line 140, in convert_to_src_info
File "iPERCore\services\options\process_info.py", line 233, in read_src_infos
File "mtrand.pyx", line 908, in numpy.random.mtrand.RandomState.choice
ValueError: 'a' cannot be empty unless no samples are taken
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "multiprocessing\process.py", line 315, in _bootstrap
File "iPERCore\services\preprocess.py", line 153, in run
TypeError: catching classes that do not inherit from BaseException is not allowed
Pre-processing: digital deformation completed...
the current number of sources are 1, while the pre-defined number of sources are 2.
Pre-processing: failed...
This is the demo in windows usage section.
I have no idea why this is happening.
My GPU isn't used at all, only CPU is being used.
I saw somewhere that RTX 20xx series is unsupported but idk

Have u found any solution?

The fatal error is the mmcv problem, nothing to do with current number of sources. Suggest you rebuilt your mmcv-full with different versions.


base/proposals

did not vote not always showing up (in desmos mainnet completely stopped working)

Closing as it's been merged with no missions.


Improve generation with some useful features

This PR includes the following features:

Add gitignore to avoid pushing compilation folders.
Add save_pretrained (a minimal implementation) to avoid fetching from huggingface on start. This requires to store the configuration, I followed the same approach than Llama.
Adds streamer to be able to stream tokens.
Add explicit arguments to causal_conv1d_fn, new version adds seq_idx as argument, we can solve compatibility with this simple trick.

These are all great, thanks @LuisLechugaRuiz


Screenshots

You should consider adding a few screenshots considering this is a UI. Just my 2 cents...

That’s true.
I have added screenshots in the PR #49, and released as the version 0.30.0.


../waveform.c:4:10: fatal error: 'groove/groove.h' file not found

@ Darwin 10.9
@ node.js 0.10.33
npm install --save wavform is yielding the following error:
><EMAIL_ADDRESS>install /Users/hems/git/my_app/node_modules/waveform
> node-gyp rebuild

  CC(target) Release/obj.target/waveform/waveform.o
../waveform.c:4:10: fatal error: 'groove/groove.h' file not found
#include <groove/groove.h>
         ^
1 error generated.
make: *** [Release/obj.target/waveform/waveform.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:810:12)
gyp ERR! System Darwin 13.4.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/hems/git/my_app/node_modules/waveform
gyp ERR! node -v v0.10.33
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok

npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is most likely a problem with the waveform package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls waveform
npm ERR! There is likely additional logging output above.
npm ERR! System Darwin 13.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "--save" "waveform"
npm ERR! cwd /Users/hems/git/my_app
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! code ELIFECYCLE
npm ERR! not ok code 0
final/application [

You should make libgroove a proper dependency in the package!
Is this possible?

libgroove is reasonably small and could be bundled with npm. But libav is huge and better off using the system installation. So you should install libgroove from the system package manager which can drag in the libav dependency and then the npm package can use that.

@andrewrk , I am trying to get libgroove installed on Mac OS. I've made it through on my other machine (WSL), but can't find my way on Mac.
I could install libpng and zlib, but a simple brew install libgroove or brew install libgroove-dev does not work.
Any guidance ?