Add state scoped events

Objective

Improve robustness of state transitions. Currently events that should be scoped to a specific state can leak between state scopes since events live for two ticks.
See https://github.com/bevyengine/bevy/issues/15072

Solution

Allow registering state scoped events that will be automatically cleared when exiting a state. This is most of the time not obviously useful, but enables users to write correct code that will avoid/reduce edge conditions (such as systems that aren't state scoped polling for a state scoped event and having unintended side effects outside a specific state instance).

Testing
Did not test.

Showcase
Added state scoped events that will be automatically cleared when exiting a state. Useful when you want to guarantee clean state transitions.
Normal way to add an event:
fn setup(app: &mut App) {
    app.add_event::<MyGameEvent>();
}

Add a state-scoped event (NEW):
fn setup(app: &mut App) {
    app.add_state_scoped_event::<MyGameEvent>(GameState::Play);
}

Nice seeing more people jump on the state boat :)
State scoped events was something I wanted to add, but wasn't quite sure how, I like this approach.
I like the implementation, but we could use an example for discoverability.
For the future, we should consider that events E can be generate outside of state S and figure out how to deal with that:

Also cleanup on entry
Lock the event queue, no-op write attempts
Remove the event queue resource and add falliable methods to writers/readers

Also cleanup on entry (ever growing queue if we never enter S)

@MiniaczQ there are are a couple things to consider: events that might be sent into a state, and events sent during OnEnter. The later can be solved by only clearing before OnEnter runs, and the former can maybe be solved by making it opt-in (although that would introduce API complexity). In general I expect state-scoped events to be generated and consumed within that state (since that's their scope - i.e. the only region where the events actually make any sense).

Yeah, lots to consider, we can start by merging this :)

Thank you to everyone involved with the authoring or reviewing of this PR! This work is relatively important and needs release notes! Head over to https://github.com/bevyengine/bevy-website/issues/1683 if you'd like to help out.


[Snyk] Upgrade socks-proxy-agent from 5.0.0 to 5.0.1

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade socks-proxy-agent from 5.0.0 to 5.0.1.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 1 version ahead of your current version.
The recommended version was released 2 years ago, on 2021-06-21.

Release notes

Package name: socks-proxy-agent

5.0.1 - 2021-06-21Patch Changes

a7d4fe5: Update escodegen dependency

5.0.0 - 2020-02-04

    from socks-proxy-agent GitHub release notes

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

@aborovsky, kindly remove any automation from your personal Synk account.


dts: stm32h7.dtsi: Add missing timer definitions

TIM23/TIM24 are functionally equal to TIM2/TIM5, but regarding @erwango they are just not defined in stm32h7.dtsi stm32h723.dtsi. This PR adds their definitions.

@fabiobaltieri @erwango are your 2 week old requests for extra reviews gating this from being merged?

@fabiobaltieri @erwango are your 2 week old requests for extra reviews gating this from being merged?

No this can go in.


No documentation found about some configuration parameters

Why you need it?
Is your feature request related to a problem? Please describe in details
No description about some configurations found in documentation, i.e. store.session.mode store.lock.mode.
How it could be?
A clear and concise description of what you want to happen. You can explain more about input of the feature, and output of it.
Add missing documentation on some configuration parameters.
Other related information
Add any other context or screenshots about the feature request here.

Can you supplement the relevant documentation for us? Please submit https://github.com/seata/seata.github.io here


Keyboard layout "U.S. International PC' is not handled correclty

I have "U.S. International PC" as Keyboard Input Source which means that to produce ä I need to press " followed by a and to produce an actual double quote I have press " followed by space.
To go to a mark like '> I can press '<space>> in vim inside iTerm (terminal emulator) and works fine. When I try the same thing in MacVim it doesn't work. MacVim doesn't seem to recognize this while in normal / operator pending mode,
So '<space>> seems to be interpreted (not sure) as :

jump  to mark called <space>
then indent.

but it it should be interpreted as "jump to end of last visual selection"
If I type just '>seems to be interpreted as nothing.  But the right sequence to type would be '<space>>.
Anyway MacVIm doesn seem to be usable with  U.S International PC  layout, while vim in iTerm works fine.

If you open on-screen keyboard in OS X, you'll see these two symbols (and ')  are not the same as others. They are used to enter sybmols like á without requirement of holding a button or using anoption` key.  Because of this handling, OS X generates different input sequence to an application while using these keys.
Terminal's input is a text-based, when MacVim (GUI) not in Insert or Replace modes, the input is keypress-based, and it swallowed by OS X.
Try to change a layout to US and check if '> works there. To insert symbols from extended alphabet you can press and hold a button and then select required from a pop-up selection.

Changing to US instead of US International work but it's not really an option for many (for those of us that write in several languages like spanish, english and swedish and don't want to switch to different layout every time).
I wonder if it will be possible to handle the input an at different level letting macOS handle the dead key like iTerm does.

MacVim uses NSTextView as a base and doesn't handle keyboard input as PTY does (e.g. in iTerm/Terminal). To rewrite this core components it would be too much effort to be involved than use compatible keyboard layout.
PS: I use Polish layout (Polski pro) for most of my input and completely fine with it.

@ecerulm Does it still an issue for you?

well, yes, I stopped using macvim (and VimR) because of this. I know I can use Swedish Pro , as you say most of the keys are accessible via modifiers. But I choose long time ago to go the International Dead keys way, I can't go back anymore. I just use vim in the terminal.
I understand that maybe dead keys layout are not that common and maybe you want to close this as WONTFIX.

I think it's unsolvable right now because we use NSTextView as for a render and key handling. But it could be changed in the future, who knows.

I just found this issue. I am using MacVim and it makes me sad. I don't know what NSTextView is, but every other Mac app handles dead keys perfectly, MacVim is the only one with a problem. So it makes me guess it's MacVim doing something wrong, not the text thing provided by Apple.
I could help debug it if needed. But I would relaly like to see this issue fixed. It's the only thing preventing me from using MacVim (and many others, since everyone on my company alerted me not to try).

@bighi You're welcome to help.
AFAIK not every single application has fixed such issues and not many applications in macOS are really using ALT/Meta/Option keybindings by default at all. For example, there's a problem for Visual Studio Code (and other Electron-based apps), IntelliJ Idea (and other java apps) where the problem is quite the opposite. Currently I doesn't see any such bindings (Option-letter) in the recent versions of IntelliJ products.
macOS has both option keys behave as AltGr in Windows and Linux (and there you have Alt and AltGr separated), so you have to catch these keys in a special way and then put them into event queue for Vim.
PS: I personally using Polski Pro without any headache. All keybindings with alt I use, I've re-binded and I'd like to keep current behavior for myself when possible.

Sure, I'm happy to help however I can.
But maybe there's a misunderstanding. OP was not talking about ALT/Meta/Option at all.
It's just that for example, while using US International, pressing ' and then a results in á in every other app, except MacVim. And many other combinations.
The problem is that in the US International layout, some keys become dead keys. When pressed, they do nothing until you press a second key. And then one single character is inserted, despite the fact that the user pressed two keys.
In MacVim, dead keys doesn't work. They insert a character as soon as the first key is pressed. So I MacVim I can't write áor ò. And single quotes like ' behave in unexpected ways.

I have MacVim 161 and macOS 10.15 and typed -u to have ü (¨+ u). if first or second key is bonded to a specific action, you'll never get the right result. This is how Vim core works, it doesn't know what'll be next and it's hard to predict it.

AFAIK usually editors doesn't have key-bindings for letters or alt-letters in macOS

This is not how Vim core works. Or maybe there's still a misunderstanding (on your part or mine).
In vim (terminal vim in Mac and Linux, and also gVim in Linux) I can use all the keybindings bound to ' (like jumping to marks) just fine, even though it's a dead key in this keyboard layout.
I can even use ' as a binding in the insert mode, without losing the option to write á. That's because the ' is only actually inserted if I press ' and then <space>. Before I press space (or any other second key), the quote character is shown in a smaller font, to indicate it's waiting for the second keypress.
Except in MacVim.
I hope I could explaing it better this time.

first, you have to be sure, that this symbols are present in the font you type or exception ranges to type in another font
with Alt there's many hacks here and in many other lines in this file (mostly) to threat this as alt, not as special key

No special font at all. Works on every font, on every app.
Also, telling me to change my layout and learn new key combinations to write after decades using US International just because of MacVim, is not a real solution is it? It's almost Apple's "you're holding it wrong".
There's something wrong MacVim is doing, but I don't know enough about the code to find out myself. If I had any indication of what I could do to help find out what is wrong, I would help.
One example of wrong behavior, if it helps:
Try this using US International keyboard layout:

Create a new buffer.
Write this sentence: one two ümlaut "four" five
At the beginning of the line, try to move the cursor to the ü by pressing f " u in sequence.

Expected behavior: It does nothing when pressing ". After pressing u it would move the cursor to the beginning of the ümlaut word. Works on terminal Vim, also on gVim in Linux.
Actual behavior on MacVim: After pressing " it moves to the "four".

with default font handling NSTextView changes font for each letter and symbol and there's many exceptions like you provided, like emoji, etc.
MacVim handles symbols rendering by it's own and don't send a symbol to Vim core processing before it is not "finished". NSTextView sends to a backend ¨, then u, then backend connect two symbols together, change fonts behind the scenes, etc. MacVim has no such processing with an exception for emoji and ligatures for rendering.
If we speak about ¨ (option-u + space) symbol-alike to make ü without optionsequence, it's not a"symbol as you wrote above. So if I typef, "anduI'll getf"u, but never üas I type withoption-u + u` in Safari where I write this comment.
When you enable mode rendering, MacVim writes, that I do IM INSERT, not INSERT for many such combinations. This processing is done by cooperative work between MacVim GUI and Vim Core. This way GVim works as well to insert such symbols. Terminal.app doesn't show this, because the symbol is processed before Vim core, and it's a problem to have some option/meta/alt combinations in Vim (terminal) in macOS.

BTW, I type Polish every day and use to type option-l to type ł, for example. I have no English keyboard at all and macOS do it's spelling depending on a language I type.
The same I've seen in many other keyboard layouts. Probably, there some layouts have such problems that some character input requires type such combinations, but I haven't seen them. If you'll tell me which language you want to type, I'll check layouts for this specific language.

I believe there's still a misunderstanding.
I'm not talking about ¨, Im talking about the actual "symbol, like the one you would use to define a string in lots of programming languages. In US International, you use"+uto writeü`, like I've been saying from the beginning.
Please, don't be condescending about it. I know what key I'm typing and what symbols I'm inserting. Forget option+key at all, please.
I've been saying from the beginning that I'm using the US International layout. I've described the bug with expected behavior and actual behavior, to see if it helps. This is not a font thing, not a regular Mac thing, and isn't a problem with any other app I've tried.
It's starting to feel like there's no good will towards fixing this bug that only happens on MacVim. It's not an OS thing, not a font thing, not a special case thing. It works fine in every other app I've ever tried on Mac OS in my life, except MacVim. So everything indicates it's a MacVim bug.
But I am unable to look at the code and fix it myself. I don't know where or how to start debugging it. But as I said, I offer my time to help however I can, if there's interest in fixing this.

I see. Keyboard preview shows these keys as additional keys to input other letters, like ¨, so we can speak about option-u and other such things as well (they . when I type using this specific layout f"u, I have fü at the end with seeing f""in between (I have a plugin for quote pairing installed). To insert really f"uI need to type f" u (but I can't input ¨ as a character using insert mode)
As I've pointed above, you should start looking into MMBackend.[ch] files and make breakpoints and debugging there. Probably, you could take this information from an active layout for better processing, but I don't know how.

Sorry, I wasn't clear on the bug description part. I meant to type f " u in normal mode. To find the character ü. What ends up happening is that MacVim finds " and then when you press u you undo the last change (instead of complementing "), which is not what the user wants.

I see, it's hard and I don't think it's supported in GVim in Windows/Linux as well.

Now I'm pretty sure I'm being trolled or something. I don't understand why this propensity to call people liars for nothing. Just say you won't fix a bug that don't affect you and leave it at that. But dead keys are supported everywhere and have been for a long time.
So I'm just going to leave this here and move on: I recorded myself typing f " u in gVim in Linux. Also myself typing it in MacVim. Sorry about the quality, it's not easy to film and type at the same time. The video shows it working on gVim, so yes it is indeed supported.
Finding the ü working in gVim (under Linux) with dead keys: https://share.icloud.com/photos/0MZKQwyYIB45nXs650QYumUxg
Finding the ü working in terminal Vim (Mac OS) with dead keys: https://share.icloud.com/photos/0sVHOWYogvPocqAdff6Zl2hBA
Finding the ü NOT working in MacVim (Mac OS) with dead keys:
https://share.icloud.com/photos/0AdYV3OgTmY3o01qxXMxF8PMQ
So I'm just doing what everyone else that depends on dead keys does: moving on from MacVim. Good luck on calling people liars.

@bighi I never told you are a liar, I meant to share only my experience and what I've tested just before writing. I'm sorry, I haven't tested on a recent version version of GVim. Earlier it was definitely was a problem with any non-US keyboard.
I've written that input in macOS has it's own difficulties and it's not very obvious how to handle it properly and where to start looking if anybody want to find out how to fix them.

Sorry all, I just read this thread as I have been busy and late to jump in.
@eirnym, this is a valid and solvable issue. I appreciate your help, but I think it's reasonable to submit a issue for this to be addressed and be discussed over.
This is not an Option/Alt key issue, but more how MacVim handles OS input methods. This is a somewhat similar issue to #837, where normal mode doesn't quite handle input methods properly.
@bighi / @ecerulm, can you try disabling the "Drawed Marked Text Inline" option and see if it works for you (also see https://github.com/macvim-dev/macvim/issues/837#issue-403037750)? I will need to investigate more and this has been on the back burner, but my feeling is we can just always disable that while in normal mode, but there could be other issues with it as well, so I need to think about it a little more.

It's the only thing preventing me from using MacVim (and many others, since everyone on my company alerted me not to try).

@bighi Just out of curiosity, what's the rationale behind "many others" who alerted you not to try MacVim? It's fine if they don't like it but I would like to know the reason so they can be fixed.

@ychin I tried disabling the "Drawed Marked Text Inline" options and it did work!
So I use the following example text:
This text contain the swedish letter ö and the swedish letter ä but also " (the double quote symbol)

When I have Drawsed Marked Text Inline enabled if I press 0f"a it will jump to the " which is incorrect since in U.S International PC keyboard layout 0f"a means 0fä
When I have Drawed Marked Text Inline disabled if I press 0f"a it will jump to ä in the text which is what is expected.

@ecerulm Cool. Good to know. I'll try to see if I can squeeze in a fix for this next update, but as I said I want to think a little more what the desired behavior is as magic options that you need to know to set is never fun.

@ychin when @bighi  said

It's the only thing preventing me from using MacVim (and many others, since everyone on my company alerted me not to try)

I think he mean that just this issue with the dead keys is preventing him and many other people in his company to use MacVim, not that there are other many other issues.
Also to be fair, I should say that in the past I tried all the GUI options for mac and none worked like I wanted. For example, I reported this very same issue  in dec 2017 to the VimR project (macOS GUI for neovim) and it still not fixed there yet.
It's good that @bighi resurrected this thread. Maybe I can finally jump from using vim in the terminal and go the GUI way.

Just came here to say that I tried that and it really did work. All my problems with dead keys seem to be gone.
Thank you, @ychin. You're great!

@bighi Just out of curiosity, what's the rationale behind "many others" who alerted you not to try MacVim? It's fine if they don't like it but I would like to know the reason so they can be fixed.

We have weekly tech talks where I work and after the presentation we hang out to chat. And lots of times it's about Vim. Some guys here tried MacVim before, and their complaints were usually about some rendering issues and the problems with dead keys.
As I'm new to Mac, I decided to try MacVim. We couldn't reproduce the renderings issues, so I'd guess they were solved and the guys didn't even know because they never gave it another chance. But the dead keys problem were still enough to prevent us from using it, because we all have computers with US keyboards, and we need to type in multiple languages, so using the US International keyboard is very important for us.
I'm gonna try and convince them to move back to MacVim.

I see. Yes the rendering issues should mostly be resolved with some remaining issues with scrolling performance not being buttery smooth (see #796). The issue took a little while to resolve especially when transitioning to Mojave. I will look into the dead key issues but for now you can turn off marked text drawing although you probably want to change that back when this is fixed.

Hello,
Any update on this ? I'm hoping for a fix for years ;) And I don't have the option to switch to another layout, I'm using an exotic French-Dvorak layout since 20+ years, not gonna switch ever again.
I must point out that many years ago, there was an option related to that if I remember correctly - it was still not good, like it broke other stuff, but it made dead keys work. And overall, it worked way better for me that way than how it now is since long. Can't we have it back ?
And for me it goes beyond dead keys some more : I can't CTRL-R neither. No idea why, it works everywhere else.
Here's the layout : https://www.algo.be/ergo/v1/pilotes.htm

Sorry, no concrete updates yet. I have done the initial investigation and there is a release that will be focused on input handling so I could fix everything in one go (there are a lot of inter-related features including support modifyOtherKeys for MacVim, making Option key support not suck, dead keys, international keyboard / input fixes). Unfortunately, as it happens other features and higher-priority fixes keep creeping in and I still haven't pushed out release 175 yet. I was originally planning to do the input-focused release in r176, but for now I just renamed the release to be "Release 17X (Input)" 😅 to avoid setting wrong expectations (this is the release tagged with this issue).
I'm finishing up on r175 right now. If things go well and I don't see any other higher priority stuff to work on hopefully I can reassign the release back to r176. Originally I wanted to get overlay scrollbars in first but that was kind of annoying as well and was more a nice-to-have so will probably try to get input handling fixes first.

I must point out that many years ago, there was an option related to that if I remember correctly - it was still not good, like it broke other stuff, but it made dead keys work. And overall, it worked way better for me that way than how it now is since long. Can't we have it back ?

You mean set macmeta?  It's the current recommended fix for something like this for now…

You mean set macmeta?  It's the current recommended fix for something like this for now…

No I don't think so, as I use '8' as dead key, this would have no impact for me. It was an option in the GUI menu, in preferences. But that's not important, if it's scheduled to be properly fixed in upcoming releases then that's great news ! Thanks for the hard work.

Oh, I think you probably mean the Draw Marked Text (default: on) and/or the Core Text Renderer (default: on) advanced options? They are still available, but both are a little buggy if you steer from the default. I think they may fix your issue, and I never removed them.


Responsive channel panel

In the current design, we're setting a fixed width for the panel. We should be able to improve this by dynamically adjusting the width based on the browser's width. Current design doesn't look good on very large or very small screens.

As part of this we should also experiment with the channel controls a bit. One suggestion is adding a +/- or </> to the sliders that would just increment/decrement the value. This would be the same type of control as the one that we have in the z-plane slider.

Moving to wishlist.


Airline Breaks Inside tmux Window

Hey guys,
Super sad about this, can't seem to get this fixed.
Here's vim-airline in normal mode for .vimrc

Here's vim-airline in normal mode for .vimrc inside a tmux session

Any idea what's causing this?
thanks!

Ah yep you're using vim, I see the problem

Okay I fixed it

These two lines added to .vim.conf solved the issue
set-window-option -g utf8 on
set -g default-terminal "screen-256color"
I hope this helps someone else..

@her I think you meant .tmux.conf. thanks for the tip though- this fixed it for me!

@her I think you meant .tmux.conf. thanks for the tip though- this fixed it for me!

got  invalid option: utf8 on
env:
os: windows
shell: msys2
version: msys/tmux-git 2.5.94.g73b9328c-1 [installed]

note, this is a tmux problem, not an airline one.

To solve the utf8 issue try:
setw -q -g utf-8 on or set-window-option -g utf-8 on (these are the same thing)

add this to your .bashrc
export TERM=screen-256color


Flash fallback video not correct height when fluid

I've tried every method I can find to make it fit the width of the container but it always results in the same behaviour. The player in chrome will be fluid and the player in firefox will be the correct size but the flash video inside will be smaller in width and height then the player.
It seems to specifically be a problem on firefox on mac, on windows firefox it was fine
I can send my test project if that helps.

@Zackio Is this still an issue?

Hi Ron, thanks for looking at this issue. I haven't looked at this code for a long time so wouldn't be able to say if it works or not that. Bit rushed off my feet atm to look at it for you.

@Zackio thanks for your response. Let me know your findings and if it's fine close this issue please

@Zackio Closing old issues. If you'd like to reopen this, let us know. Thanks!


tokenize with Spacy

The actual tokenizer is very fast as it uses a simple regex pattern but at the same time very imprecise.
A better alternative might be to make use of spaCy.
Naively tokenize a Pandas Series with spaCy is very simple:
def tokenize_with_spacy(s: pd.Series) -> pd.Series:

    nlp = spacy.load("en_core_web_sm")# disable=["ner", "tagger", "parser"])

    tokenized = []
    for doc in nlp.pipe(s):
        tokenized.append(list(map(str, doc)))

    return pd.Series(tokenized, index=s.index)

This should be somehow fast as in theory spaCy makes use of multi-threading.
The reason we haven't implemented this yet is that we want to make sure this solution is enough faster. We want to provide a simple tool to analyze a quite large amount of text data; say 100k Pandas Row should take no longer than 15-30 seconds to tokenize ... ?
For now, the task consists in:

Compare the "spacy solution" w.r.t the actual version and benchmark the function on large datasets (150k rows or so)

This should be done in a single, clean notebook that will be shared there

Evaluate if we can do better by parallelizing even more the process (we can probably parallelize both by row and by sentence?)

Dask vs. spaCy
It's faster to use pipe from spaCy or to directly use Dask (Dask Dataframe)?
Dask might be the solution we were looking for ...

As described in #162 , dask is not feasible from a UX perspective. Here are our results from experimenting with tokenize. See the attached PDF for a notebook of the results.
Speed Comparison
We now compare:

current implementation without parallelization
current implementation with parallelization (see #162)
tokenize_with_spacy with spacy built-in parallelization through n_process
tokenize_with_spacy with our custom parallelization

Results below.
We can see that

our current implementation is much faster than spaCy (22 vs 51 seconds with both parallelized)
as shown in #162, our parallelization works better than spaCy's.

Thus, our options:

keep everything as proposed in #162 (-> multiprocessing applied to current solution)
option 1, but we give users a parameter use_spacy that works like our tokenize_with_spacy_own_parallelization above, and explain to them that this might give them better results but takes about 3x as long.

We don't really have a preference.


Feature/delete queue

Added functionality to delete queue in dashboard page. Added data for test users. Fixed some UI font inconsistency. Everything should be fine.

Good work, Queues are now can delete.


Feature request: Ability to use custom classes

I have been using transfer learning with megadetector to train detection of only species of interest, not animal, person, vehicle. e.g. quokka, raven, magpie, person
Currently the class names are hard coded in https://github.com/microsoft/CameraTraps/blob/main/detection/run_detector.py and https://github.com/microsoft/CameraTraps/blob/main/api/batch_processing/postprocessing/separate_detections_into_folders.py (and possibly others?)
i.e.
# Label mapping for MegaDetector
DEFAULT_DETECTOR_LABEL_MAP = {
    '1': 'animal',
    '2': 'person',
    '3': 'vehicle'  # available in megadetector v4+
}

and
friendly_folder_names = {'animal':'animals','person':'people','vehicle':'vehicles'}
I have been changing the code manually as a work around, but it would be good of there was better way to this. Maybe by loading a class list file at runtime?  I am happy to implement something if this is of interest.  I have be helping add some changes to PetervanLunteren/EcoAssist, and being able to have classes changed by some sort of config file within CameraTraps seems like the way to go.

The label map is stored in Torch models unlike TensorFlow. So you could just remap after loading the model by adding 1 to the id.
detector = PTDetector(model_file, force_cpu)
for id in detector.model.names:
    DEFAULT_DETECTOR_LABEL_MAP[id+1] = detector.model.names[id]

However, I kind of feel that once you are customizing models you have stepped beyond the intent of the MegaDetector code base.

@persts is right that this is a bit beyond what the MegaDetector code base supports right now, but... fine-tuning for new classes is something we'd like to make easier, and we've never done it, so I will make you (or anyone else who is interested) a deal: if someone publishes a nice step-by-step tutorial with publicly available data (data from LILA is fine) showing someone how to fine-tune MDv5 for new classes, so that we could replicate and test it, I'm happy to update the places where classes are hard-coded to be more robust to variability in classes.
I'll close this issue for now, but if/when that tutorial exists, point us to it!  Thanks.

Deal :)

@persts is right that this is a bit beyond what the MegaDetector code base supports right now, but... fine-tuning for new classes is something we'd like to make easier, and we've never done it, so I will make you (or anyone else who is interested) a deal: if someone publishes a nice step-by-step tutorial with publicly available data (data from LILA is fine) showing someone how to fine-tune MDv5 for new classes, so that we could replicate and test it, I'm happy to update the places where classes are hard-coded to be more robust to variability in classes.
I'll close this issue for now, but if/when that tutorial exists, point us to it! Thanks.

ok, I've written up a tutorial here https://www.kaggle.com/code/evmans/train-megadetector-tutorial.  Have a look and let me know if it makes sense.  It classifies two species, and ignores other species.
It would be great to be able to use same megadetector code with these. Then I will merge it into EcoAssist.

Very cool!  I was able to run the whole tutorial, everything worked as expected.  If you don't mind updating the text a little, I made a few edits in this copy:
https://www.kaggle.com/code/agentmorris/fine-tuning-megadetector/notebook
If you can retrofit those edits back into your copy, I'll link to this from the MegaDetector page.
And I've re-activated this issue, since a deal is a deal. :)
For things like separate_detections_into_folders.py, the class list should be loaded from the .json file, so no new inputs should be required.  That will still be a bit of new code, but The Right Thing is to load directly from the .json file.  FYI Timelapse also reads this format, and doesn't depend on any hard-coded class names.
For run_detector.py and run_detector_batch.py, I'll modify them to take a .json file with class names as input.  I can use the detector from the tutorial to test with, but if you have something more complete than what's trained in the tutorial, and you can share the model file, the class list, and a sample of relevant images, that would be great; you can post here or email to<EMAIL_ADDRESS>.
No rush; it will be a few weeks before I can get to this.
Thanks for bringing this up and for the great tutorial!

I can't access that notebook, is it private?
I will send you some test data.  Thanks for doing this!

My bad, yes, the notebook was private.  Fixed, try again?

Thanks for the edits.  Mine should be updated.
Once it megadetector is updated, I'll update the tutorial to use it for detection and splitting.

I did... a version of this.  It's not perfect or elegant, but given that this is at the fringe of what's supported right now, I'm going to close this unless @ehallein indicates that you still need this and my solution is falling short.
Specifically, there is a new --class_mapping_filename option to run_detector_batch.py.  This argument should point to a .json file, with a dictionary mapping int-strings to strings, like this:
{
"0": "motley-crue",
"1": "def-leppard",
"2": "dokken",
"3": "winger",
"4": "poison",
"5": "bon-jovi"
}
This will do three things:

It will suppress the default error that comes up any time the inference scripts see a class other than (0,1,2)
It will suppress the normal behavior by which the inference scripts add 1 to the output classes (MDv5's model outputs 0-indexed classes, but for compatibility with previous versions, we've always added 1,)
It will write that dictionary, rather than the default, to the output file

I have tested that the resulting output files are compatible with postprocess_batch_results, but I have not done anything with separate_detections_into_folders (although since this thread started, separate_detections_into_folders did get support for classification results, which is slightly different, but possibly equally useful for what you want to do), nor have I done a broader sweep over the repo for other dependencies on the default class list.
Hopefully this will get a little more baked over time; I'm using this feature regularly now, but only because I'm so used to these scripts that I use them for totally-non-camera-trap-related stuff, hence using these scripts with trained YOLOv5 models that have nothing to do with MDv5.
Closing for now, let me know if this doesn't match the scenario for which you originally raised this issue.
Thanks!


Add post-experiment quiz

A la Robert's stuff, have a post-quiz where we ask what the name for each flower is to use a comparison point

Probably only want this for people who finish (not cancel part way?, def. not lobbyTimeOuts).
Should ask about the flowers they saw
Maybe should also ask about one of the other flower conditions as a control?

Minimalist version exists, waiting on copy writing / beautification before adding an unseen flowers version.


feat: Partial execution of pipelines

pipelines can now be partially executed by providing the target placeholder to calculate
executePipeline now accepts an optional target placeholder name
added a test for partial execution and all possible code dependencies
fixed block lambdas not generating when used inside of an assignment

Should some utility functions moved to other files? (like hasImpurityReasonEffectOnFuture, getAssignmentForPlaceholder, getPlaceholderByName ...)

I'll do a more thorough review later.

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

npm package (@latest dist-tag)
npm package (@latest dist-tag)
v0.6.0
GitHub release

Your semantic-release bot :package::rocket:


Upgrade to JHipster 8.2

The error that's happening now happened to me last night too. It appears that ./npmw install doesn't work. I was able to reproduce. I also discovered npm install worked just fine.

The error that's happening now happened to me last night too. It appears that ./npmw install doesn't work. I was able to reproduce. I also discovered npm install worked just fine.

Yes this error happened in generator-jhipster too, and probably will happen in micronaut.
So I am implementing a more generic fix.

I will postpone the generic fix for v8.3.0.


Add option to use webhooks instead of embeds for messages

Added a messageMode option into the config to select if messages are shown using webhooks or embeds. As this is a pretty big change to the discord side I also added bridge online/online messages.

I'm not sure why the imgur link for bot mode wasn't working for you, however I've taken another screenshot and used it instead anyway. Personally I don't think using embedded image would work well in this readme as they take up so much space, however feel free to change this.
I've appended all the info you stated about webhook permissions and rate limits as well as info about the normal perms the bot needs (View Channel and Send Messages) to the discord section.
Also cleaned up the commands list of the discord section to put them all in code blocks to make the whole section easier to read.

I see your point about the screenshots, might be best to just leave it as is.
Thanks for adding the info about the webhook permissions and rate limits, the command list changes are also nice although unrelated to the PR, so it would've been better as its own thing so there isn't a bunch of completely unrelated changes all happening at once, it tends to muddle the commit history and makes it difficult to understand when what was changed.
The only thing left is some formatting to the files but I can do that, thanks again for working on this PR.


http proxy support susceptible to transfer failures with slow/long downloads

While working through the Vagrant based demonstration of installing, the download of the CoreOS install through the on-http proxy functionality failed somewhat consistently, resulting in an iPXE error while that installer OS bootstrap loading process was running. (downloading coreos_production_pxe_image.cpio.gz specifically)
The iPXE error seen was:

http://ipxe.org/420c6001

In debugging this, I pulled down the files into RackHD directly and modified the CoreOS install profile, and the process worked flawlessly. While downloading these files, I noticed the bandwidth of pulling down these specific example files was relatively slow, resulting in a > 5 minute download for the CoreOS production image.
There may be a lingering error for extra-long downloads that make this susceptible to failures in acting as a proxy.

I too have encountered this, with the same number of progress dots following coreos_production_pxe_image.cpio.gz.  Downloading and locally hosting the 2 files allows me to boot past the image loading.

@pengz1 for awareness.

I've hit this in the office with good bandwidth (but those quirkly firewalls) and at home (with relatively poor bandwidth). The initial file always downloads fine, but the larger .cpio.gz is consistently failing on me. I suspect the failure is related to size of the file, not bandwidth based on this detail, but haven't yet exhaustively tested to determine where a failure might be occurring.
I'm going to start testing by hosting HTTP files on my local workstation to remove networks from consideration in the isolation here, and try out some different sized files. I have verified the file is on the remote end, and is correct, using WGET to get it directly myself and verified it all still boots together by hosting it in the RackHD vagrant image directly

For debugging, I set up a local HTTP server and added a proxy configuration, then cat'd the vmlinuz file together to get incremental files:
-rw-rw-r-- 1 vagrant vagrant  30334576 Feb 16 19:42 test1
-rw-rw-r-- 1 vagrant vagrant  60669152 Feb 16 19:42 test2
-rw-rw-r-- 1 vagrant vagrant  91003728 Feb 16 19:42 test3
-rw-rw-r-- 1 vagrant vagrant 121338304 Feb 16 19:42 test4
-rw-rw-r-- 1 vagrant vagrant 151672880 Feb 16 19:47 test5
-rw-rw-r-- 1 vagrant vagrant 182007456 Feb 16 19:47 test6

vagrant@vagrant-ubuntu-trusty-64:/usr/share/nginx/html$ md5sum test*
3257697d78d9111445b3d35917759391  test1
e9e6b03739b2339df4751c99448aaf63  test2
ecd6d6953edee984b933a5d47c2af57f  test3
1ce7a3c1103b23ff32f6855f3eb1ecd3  test4
5a92e7c639663d7ae85234253d8f2090  test5
c548059ada2605d884149bf49380b627  test6

Using curl to test this, there's no chunked progress - the file appears all at one shot, making me think the files are getting loaded entirely into memory before being processed through. The throughput (not surprisingly) was highly variable
using commands like curl http://<IP_ADDRESS>:8080/test/test5 -o test5, the first four files were able to download successfully, but test5 failed repeatedly, as did test6. No errors appeared in the on-http logs during any of these transfers, successful or failed.
Files that transferred successfully did so with all data intact and correct (verified via MD5 sum), failures resulted in no data transferred at all after the http was open for exactly 2:00 minutes:
Details:
vagrant@rackhd-demo:~$ curl http://<IP_ADDRESS>:8080/test/test1 -o test1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 28.9M  100 28.9M    0     0  4081k      0  0:00:07  0:00:07 --:--:-- 7319k
vagrant@rackhd-demo:~$ curl http://<IP_ADDRESS>:8080/test/test2 -o test2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 57.8M  100 57.8M    0     0  1208k      0  0:00:49  0:00:49 --:--:-- 12.4M
vagrant@rackhd-demo:~$ curl http://<IP_ADDRESS>:8080/test/test3 -o test3
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 86.7M  100 86.7M    0     0  1190k      0  0:01:14  0:01:14 --:--:-- 20.9M
vagrant@rackhd-demo:~$ curl http://<IP_ADDRESS>:8080/test/test4 -o test4
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  115M  100  115M    0     0  18.0M      0  0:00:06  0:00:06 --:--:-- 27.7M
vagrant@rackhd-demo:~$ curl http://<IP_ADDRESS>:8080/test/test5 -o test5
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:02:00 --:--:--     0
curl: (52) Empty reply from server
vagrant@rackhd-demo:~$ curl http://<IP_ADDRESS>:8080/test/test4 -o test4
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:02:00 --:--:--     0
curl: (52) Empty reply from server
vagrant@rackhd-demo:~$ curl http://<IP_ADDRESS>:8080/test/test4 -o test4
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  115M  100  115M    0     0  1779k      0  0:01:06  0:01:06 --:--:-- 36.4M
vagrant@rackhd-demo:~$ curl http://<IP_ADDRESS>:8080/test/test6 -o test6
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:02:00 --:--:--     0
curl: (52) Empty reply from server

The marker of failure appears to be related to 2:00 duration of the http request, not the size of the request, since test4 failed once, identical to failing on test5 and test6, but succeeded when it managed to transfer the data in under 2:00 minutes

Side note: the proxy functionality in Vagrant with the existing monorail.json configuration doesn't appear to work at all with the latest code on master branches. On the vagrant instance, when I ran:
cd ~/src
./scripts/clean_all.bash && ./scripts/reset_submodules.bash && ./scripts/link_install_locally.bash
cd ~
sudo nf start

And then re-run these tests, all of the requests provide a response of Cannot GET /test/test1
I'll open a separate issue for this revelation...

@heckj : I did the preliminary testing in my system with latest code, but no coreos installation and no vagrant, all rackhd services run in a virutal machine.
This is my proxy config:
    "httpProxies": [
        {
            "localPath": "/coreos",
            "server": "http://stable.release.core-os.net",
            "remotePath": "/amd64-usr/current/"
        },
        {
            "localPath": "/test",
            "server": "http://<IP_ADDRESS>",
            "remotePath": "/static/rhel"
        }
    ]

The server <IP_ADDRESS> is a local HTTP service setups in local lab.
I tried to download some large files (the largest file is around 260MB), all file downloading via proxy successed:
onrack@~/tmp> wget http://<IP_ADDRESS>:8080/test/7/os/x86_64/LiveOS/squashfs.img
--2016-02-18 17:31:35--  http://<IP_ADDRESS>:8080/test/7/os/x86_64/LiveOS/squashfs.img
Connecting to <IP_ADDRESS>:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 272293888 (260M) [application/octet-stream]
Saving to: ‘squashfs.img’

100%[===========================================================================================================================================================>] 272,293,888  521MB/s   in 0.5s

2016-02-18 17:31:36 (521 MB/s) - ‘squashfs.img’ saved [272293888/272293888]

onrack@~/tmp> wget http://<IP_ADDRESS>:8080/coreos/coreos_production_pxe_image.cpio.gz
--2016-02-18 17:31:56--  http://<IP_ADDRESS>:8080/coreos/coreos_production_pxe_image.cpio.gz
Connecting to <IP_ADDRESS>:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 189959560 (181M) [application/x-cpio]
Saving to: ‘coreos_production_pxe_image.cpio.gz’

100%[===========================================================================================================================================================>] 189,959,560  727MB/s   in 0.2s

2016-02-18 17:31:59 (727 MB/s) - ‘coreos_production_pxe_image.cpio.gz’ saved [189959560/189959560]

If I tried to download some file that as large as 2GB, it eventually failed with error "out-of-memory" or the system hangs due to exhaust memory.
I went through the proxy library we used, it should first download all the request file to memory buffer  from real address and then send the buffer to proxy address. So If the file is large enough, the memory will sure be exhausted.

Thanks @yyscamper  - I'm glad you're at least seeing success here. I suspect it's related to the more constrained resources I have applied to the Vagrant setup. The VM running RackHD on my laptop is configured to use 4 virtual cores and 4096MB of RAM, with the target VM doing the download using a base of 512MB of RAM, but I've also tried it with having allocated it 2GB of RAM and seeing the same result.
It's the vagrant based demo that's showing the failure per some comments on the slack channel too - @kacole2 run into this issue as well. The tests I did above moved the hosting of the external proxy to a VM on the same local network as my laptop to remove "network latency" to a remote site from the possibilities in doing the isolation work above.

Hey @yyscamper ,
Let me know how you're coming along with reproducing the Vagrant setup - even with my PR's to update the Vagrant demo to the latest code, I'm still seeing this issue, and worse - we've had folks pulling down the code to run demos that are hitting the same issues as well. I'm wondering if it makes sense to just deprecate this http proxy game due to it's unreliability and updating the Ansible roles in packer to install and configure Squid or something as a proxy replacement that will be reliable.

@heckj :
I had never practice the vagrant setup, this is my first time and I have just let it run and begin the proxy testing.
No matter how my testing result is, I do see a problem about current proxy design. Just as I said before, It download the whole file into memory and then redirect to the local address. This will require much memory usage. At least we should change it to operate in stream way, and this need to find another proxy library or customize current library.
Meanwhile, before the proxy enhancement ready, I think we can switch to use the NAT, it's package level proxy, so require much less memory. Of course, the NAT setup should be outside RackHD at present.
I am trying to practice the NAT setup and will provide the guide after success.

@heckj : below is a guide about how to bootstrap from external repo via NAT, I just tried, it will success:
(1)  Download this script (https://gist.github.com/yyscamper/49b8f030da48329c8567) and run in RackHD appliance, so that NAT service will be ready, the computer node will have the ability to access the external world via interface "eth0".
(2) Set the repo to an external repo, make sure the "eth0" has the ability to access this repo. For example, this one "http://stable.release.core-os.net/amd64-usr/current/" for CoreOS, and this one for CentOS 7 "http://mirror.centos.org/centos/7/os/x86_64/"
(3) Run the bootstrap as normal.
Since, CoreOS doesn't support external repo at present, so I will submit PR to add this feature for CoreOS. You can first have a try for CentOS.

The external repo support for CoreOS has been included in following PRs:

https://github.com/RackHD/on-http/issues/146
https://github.com/RackHD/on-tasks/issues/131

@yyscamper while this certainly works, I don't think this is the best pattern to encourage. You're basically making the instance of RackHD a one-way traffic router for all requests from hosts.
I think a better solution would be to specifically encourage and support the installation of Squid or related http proxy in RackHD (or on the same layer2 network) and then utilize the repo pieces that you're putting into on-http and on-tasks to point to an alternate mirror endpoint or relevant proxy.
Is it fair to assume that this feature is rather hopelessly blocked due to the lack of "good support" by NodeJS proxy libraries, and that it would be better to use an alternative mechanism?

Copying this in from the mailing list.
I was originally advocating to put up a separate proxy like squid, or a dynamically controlled one like vulcand.
But I discovered redbird. Redbird is written in Node, controlled by API, and looks pretty awesome. But since it's in javascript just like on-http, I looked at the proxy code and see that it's using httpp-proxy as the library.
I think that we should try redbird as  a proxy to see if it does the job. If so, it might be rather trivial to switch from express-http-proxy to httpp-proxy and gain the better functionality.

The external repo support doesn't mean I plan to abandon http proxy. A better proxy design need some investigatation and I even hear some voice that proxy shoud be function outside RackHD. Thanks for these tool or library proposal, I will have a try on them.
No matter proxy is bad or good, the external repo support will be a common feature for all OS installation, so I submit the PRs, and you can have alternative way for CoreOS before proxy is enough good.
Felix
-----Original Message-----
From: Joseph Heck<EMAIL_ADDRESS>Received: 星期四, 25 2月 2016, 1:23
To: RackHD/RackHD<EMAIL_ADDRESS>CC: Yuan, Felix<EMAIL_ADDRESS>Subject: Re: [RackHD] http proxy support susceptible to transfer failures with slow/long downloads (#90)
@yyscamperhttps://github.com/yyscamper while this certainly works, I don't think this is the best pattern to encourage. You're basically making the instance of RackHD a one-way traffic router for all requests from hosts.
I think a better solution would be to specifically encourage and support the installation of Squid or related http proxy in RackHD (or on the same layer2 network) and then utilize the repo pieces that you're putting into on-http and on-tasks to point to an alternate mirror endpoint or relevant proxy.
Is it fair to assume that this feature is rather hopelessly blocked due to the lack of "good support" by NodeJS proxy libraries, and that it would be better to use an alternative mechanism?
—
Reply to this email directly or view it on GitHubhttps://github.com/RackHD/RackHD/issues/90#issuecomment-188360922.

PR has been merged


[MWPW-113214] Hide Top Templates block when empty

Please always provide the JIRA issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix https://jira.corp.adobe.com/browse/MWPW-113214
Test URLs:

Before: https://main--express-website--adobe.hlx.page/express/templates/flyer/christmas
After: https://mwpw-113214-fix--express-website--webistry-development.hlx.page/express/templates/flyer/christmas?lighthouse=on&dev=on

This edit to the code will make it so that the topTemplatesBlock is hide able by omitting to fill out the required columns. For the "Top Templates" block to be hidden, it's necessary that all three columns named "topTemplatesTitle", "topTemplatesText" and "topTemplates" are completely empty.

Closing this Pull Request after multiple attempts to get the team involved to review / provide support on this block. It seems that this functionality may not be required anymore.
If the need arises it will be re-opened.


Add support for Ctrl-K

This PR adds support for Ctrl-K, which deletes from the current cursor position to the end of the line.

Thanks for the suggestions! I've updated the PR and added some unit tests.
One note: For multi-line input, the up and down cursor movement doesn't account for characters in the prompt string, which results in the cursor moving left or right (in addition to up and down). I wrote the tests to expect this behavior, but if it changes in the future, those tests could break.

Follow-up about the multi-line input: With python, there is a continuation prompt that is indented the same amount as the regular prompt, and maybe that's the way to go (in the future) instead of trying to compensate for differing indentation.
>>> def foo():
...   return 1
...


Disabling Embedly is quite problematic

Hi, when I want to remove Embedly package completely I get some errors related to GraphQL. I needed to remove thumbnailUrl from PostsList.fragmentso I tried to replace the component with CustomPostsList component just to be able to overwrite this, but this isn't the solution. I guess it could be done somehow, maybe I don't know something. Anyway, it would be great to be able to just remove Embedly when we don't want thumbnails at all. The same is with PostsPage.fragment.
Ps. also when I don't remove the Embedly package and not configure EmbedlyKey in settings I get errors when posting because in nova:embedly package in EmbedlyURL.jsx we have result.data.getEmbedlyData which is null in that case and result.data.getEmbedlyData.title throws error. Data check there is needed.
I could send a PR but I don't know exactly how to resolve these issues.

You'll always need to remove thumbnailUrl from the fragment. But I agree replacing fragments should be easier, in fact I just pushed some changes to devel to do just that. You can refer to the documentation (http://nova-docs.telescopeapp.org/data-layer.html) to learn more. Let me know if that helps :)

Yes, I tought so :)
So, I've used new registerFragment from devel. It seems to work. I only get this warning http://dev.apollodata.com/core/fragments.html#unique-names , but it isn't a problem for me.
Thanks. New fragments api is much cleaner. I like it :)

Great! Yeah I've just been ignoring these warnings as well for now ;)

Hey @juliancwirko! Fragments API has been updated, they are working better than never, you can have a look there: http://nova-docs.telescopeapp.org/data-layer.html#Fragments

Great, do you plan to officially release v1.0.0 anytime soon? Thanks.

One last task and yes 👍
So I'd say later today or tomorrow? 🌮

@juliancwirko yay! master is stable 💯

Great :) so I need to start my updates :)

You are welcome on the Slack chatroom if you need any help: http://slack.telescopeapp.org 😊

I agree with original post. When I disable embedly, I get this error:
[Error: Network error: Network request failed with status 400 - "Bad Request"]
graphQLErrors: [],
networkError:
{ [Error: Network request failed with status 400 - "Bad Request"]
response:
Body {
url: 'http://localhost:3000/graphql',
status: 400,
statusText: 'Bad Request',
headers: [Object],
ok: false,
body: [Object],
bodyUsed: false,
size: 0,
timeout: 0,
_raw: [],
_abort: false } },
message: 'Network error: Network request failed with status 400 - "Bad Request"',
I20170212-14:44:43.325(-5)?   extraInfo: undefined }

You'll need to register a new PostsList fragment without thumbnailUrl, see http://nova-docs.telescopeapp.org/data-layer.html#Replacing-Fragments


#1012 Added POST and GET APIs for custom news

Close #1012
Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md

POST API

GET API

For Front-end part, can I create a separate issue? Because this issue was
more related to adding two APIs first one for posting custom news and
another one for getting all the custom news.
On Thu, Jun 1, 2023 at 11:04 AM Pranjay Poddar @.***>
wrote:

@.**** requested changes on this pull request.
Add frontend for this, backend code alone are not allowed
—
Reply to this email directly, view it on GitHub
https://github.com/pranjay-poddar/Dev-Geeks/pull/1644#pullrequestreview-1454598393,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AND3T3ZBA57OU467C77SGOTXJASXBANCNFSM6AAAAAAYWAAVAY
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Thanks & Regards
Divyanshu Tiwari
M: +91-9654123740

Inactive


Add adopters to the site

What type of PR is this?
/kind documentation
What this PR does / why we need it:
I added the adopters page to the doc site. Also, I added my company as a first adopter.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

/lgtm
/approve


[openimageio] Update version to 2.4.13

Fix https://github.com/microsoft/vcpkg/issues/32837

The new version merged the patch fix-msvc-build.patch. https://github.com/OpenImageIO/oiio/pull/3832

[x] Changes comply with the maintainer guide
[ ] SHA512s are updated for each updated download
[ ] The "supports" clause reflects platforms that may be fixed by this new version
[ ] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

All features are tested successfully on the x64-windows triplet.


routing bug

i encounter a reproducible problem:
problem:
when you open a page via a deep link, like say like https://docsify.js.org/#/more-pages?id=ignoring-subheaders and then scroll to a different section (by reading on or scrolling up) there are two problems:

the position indicator on the left does not keep updating (it only does that when you navigate to the root of tha page)
because of this, if you scroll to a complete different place on the page and happen to click on the same link in the menu again (the one you deep-navigated to) nothing happens.

what i think should happen:

As you scroll through the page the url in the browser should be replaced with your current position
the indicator on the left should for sure not only work when navigating to the top of the page

Adding $0.02 since this issue is related to #522.
I agree that the sidebar should always reflect the current scroll position of the page: as the user scrolls, the active link in the sidebar should be highlighted in all scenarios.
I do not , however, think the URL should be updated as the page is scrolled. Instead, the URL should be updated only when a user-initiated navigation action has occurred (i.e. clicking a sidebar link). This is how anchor tags work in all browsers by default, so this feels like the expected behavior.


Fixed config value for velocity and effort yaml

Related with this issue https://github.com/ros-simulation/gazebo_ros2_control/issues/50
Signed-off-by: ahcorde<EMAIL_ADDRESS>

Thanks a lot @ahcorde I will close the issue.


Sketch size is too big for Arduino UNO

Hi!
I'm trying to optimise library to reduce the size of sketch and libraries. But so far, it is not going well.
Any suggestions on this will be much helpful.
I disabled DEBUG printouts.
What else can I do?
Thanks,

I will use two Arduino's as a solution. 1 arduino to listen from serial port for commands to be issued on BLE module, 2nd arduino to handle rest of the stuff.
Luckily I had some Arduino Mini pro laying around :dancers:

I think I'm experiencing run-time memory problems.
I change completely unrelated part of the code. Then suddenly, it starts getting stuck at begin call for bluetooth module.
For example, I define a variable object(BLEMultimedia). Then suddenly it starts getting stuck. Even if I don't use that variable object.

When I have this memory problem it gets stuck at below section in DEBUG print out.

It stops working, if you have less than 515 bytes left for local variables.

@ayildirim memory management is tricky, I often run out of memory when creating peripherals. The Leonardo based boards have 512bytes more SRAM than an Uno. The nRF51822 boards (RedBear and RFduino) have 16 KB of SRAM.
I also use the F() macro to get as many of my strings as possible stored in flash instead of RAM.

@don yes. I think I will have to go with Teensy or something. I was going to make a custom gamepad/tv controller.
I thought using 2 arduinos. But there isn't even enough space left for communication on arduino handling nrf8001.

@ayildirim are you concerned about code space or RAM?
The library is pretty ambitious on the nRF8001 side, it builds the nRF8001 setup messages on the fly on the Arduino (Nordic's Arduino lib relies on a desktop app for this) . There might be some optimizations, but would make the code harder to maintain so I stopped pursuing them.
Happy to review any suggestions you have though.

Hi @sandeepmistry ,
How much memory I can save by sending setup messages on the fly?
Is it only that setup messages array in nrf8001.cpp?
Or is there more added to it in runtime somewhere?
I will try to implement same thing your code, if it can save enough memory. Otherwise Im gonna go ahead and buy a Teensy 3.1

@ayildirim

How much memory I can save by sending setup messages on the fly?

You mean by not calculating them on the fly? No idea ...

Is it only that setup messages array in nrf8001.cpp?
Or is there more added to it in runtime somewhere?

Many more added at run time ...

I will try to implement same thing your code, if it can save enough memory. Otherwise Im gonna go ahead and buy a Teensy 3.1

Good luck!
I would say go for the Teensy or use this lib with nRFgo studio: https://github.com/NordicSemiconductor/ble-sdk-arduino/tree/master/documentation/libraries/BLE/examples/ble_HID_template
probably will save you a ton of time instead of modding this lib.

If you are running out of Flash space during the prototyping stage, it may be worthwhile to switch the ble SDK for Arduino from Nordicsemi which will generate the Setup in the nRFgo Studio (Windows tool and works on the OS X using playonmac), this will allow you to skip the library used to build the Setup in the arduino-BLEPeripheral. The Setup messages are generated by the nRFgo studio and are stored in Flash, so this needs about 1 to 2Kbytes of Flash.
You may be able to cut out the Setup part of the code from the arduino-BLEPeripheral and use the rest but I will have to leave that to Sandeep to comment on.

I need to use Mouse, Keyboard HID features together on 1 device. This library allows doing that. I am not sure if it is possible with nrfGO Studio. It compiles setup message with a given xml descriptor file for either keyboard or mouse.

This library is way nicer to use than nRFgo. Spending $19 on a Teensy is the easiest/fastest solution.

@ayildirim , combining mouse and keyboard functionality is pretty straightforward on nRFgo Studio as well. Additionally you can do the combining on this library and then read the GATT Server over the air and replicate it on the nRFGo studio.
Keeping your RAM and Flash needs low helps you to have choices on mcus. however if that is not needed or there is no real pricing pressure for you, you can pick a solution that has the RAM and flash needed available.

@daviddedwin @don thanks for the feedback/comments!
@ayildirim can we close this now?

@sandeepmistry yes. Thank you all for your answers. Thank you for great work @sandeepmistry.
I will take @don 's advice and continue with Teensy.


M49 gardening: Remove redundant inludes for java_apk.gypi

Strangely these redundant includes are causing the build failure
mentioned in XWALK-6547
BUG=XWALK-6547

@rakuco @lincsoon PTAL at this simple fix.

Can you elaborate on how these includes are redundant? As far as I can see, those targets are not being directly included by others so without that include their respective APKs should stop being generated.


Fix email action links

See https://developers.google.com/gmail/markup/actions/declaring-actions#microdata
itemprop="url" is not the right type for what we're trying to achieve here:

itemprop="target" seems like the way to go:

Tested with a live email, it seems that this is not enough to make it work - we need to register with Google as well. Opened a follow-up issue here: https://github.com/opencollective/opencollective/issues/6382


Exception when closing connection on Android

Original code:
private void closeConnection(HttpURLConnection connection) throws IOException {
        connection.getOutputStream().close();
        connection.disconnect();

        // we have to call this, otherwise out HTTP data does not get send, even though close()/disconnect was called
        // Ceterum censeo HttpUrlConnection esse delendam
        if (connection.getResponseCode() != 200) {
            LOGGER.error("Reporting returned code {} {}: {}", connection.getResponseCode(), connection.getResponseMessage());
        }
    }

Disclaimer Android:
I know that this plugin is not designed for Android, but it's almost working so...
In the ElasticsearchReporter.closeConnection(HttpURLConnection), if you call getResponseCode after the disconnect, it will throw a IOException (Socket closed). If you swap these blocks, it works well on Java and Android.
Pure Java:
Documentation: HttpURLConnection#Disconnect : Indicates that other requests to the server are unlikely in the near future.
So if we want to use the getResponseCode() to ensure the data is sent, we should probably call the disconnect method after, correct?

Swapping the 2 lines are simply not working on standard JVM, so a bit tricky to have something working everywhere...
I forked my solution here for Android guys who want to try: https://github.com/Ksubaka/elasticsearch-metrics-reporter-android


How we can set language json file from S3 in localePath?

I am trying to load language JSON file from S3 AWS. I have tried to set localePath as localePath: "https://xxx.s3.amazonaws.com/v2/locales",
localeStructure: "{{lng}}/{{ns}}"
But it did not work, Is it feasible to load locales language file from the S3 server? If so How we can achieve it
Please suggest,

Please do not open duplicate issues.
I suggest you post on StackOverflow.


The search bar is duplicated at the top.

Describe the bug
The search bar is duplicated at the top.
To Reproduce
Install latest build. Installing it clean didn't help either.
Expected behavior
Working Kiwi browser
Screenshots

Smartphone (please complete the following information):

Device: [e.g. OnePlus 7]
Android Version : [e.g. A11 ]
Kiwi Browser Version [ latest build ]

Pretty obvious :D The fix is coming

The fix is now ready and released in a few minutes


Lock the iterations at the top (Fixed)

Is there a setting that allows you to keep the Sprint headers static, equivalent to frozen in excel?

This yellow box fixed

Thanks @drmigli , this is currently not implemented and require some major refactoring, I can think about it in next major release. For now I am closing the issue.


wire: Add reconstruct type when marshaling to json

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

26 of 26 (100.0%)  changed or added relevant lines in 1 file are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.02%) to 53.301%

Files with Coverage Reduction
New Missed Lines
%

peer/peer.go
3
75.45%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
27859

Relevant Lines:
52267

💛  - Coveralls


Dead project?

This has not aged well, I could not get running from inside of a docker container on python 2.7. Nor is it python3 compatible.
Python2 support ends in 19 days... https://pythonclock.org/

Correction, I did finally get it running in a python:2.7 containers I forgot flask listens on <IP_ADDRESS>


Investigate fuzzing.

The technique works well as a substitute for property testing through qcheck. In theory, it would combine very well with coverage-based fuzzing such as afl-fuzz.

@yomimono I guess this one might be of interest to you. :)


undefined: atomic.SwapInt32

Getting this as an error when running make
godep go build -o bin/go-mysql-elasticsearch ./cmd/go-mysql-elasticsearch
github.com/siddontang/go/sync2
Godeps/_workspace/src/github.com/siddontang/go/sync2/semaphore.go:48: undefined: atomic.SwapInt32
Godeps/_workspace/src/github.com/siddontang/go/sync2/semaphore.go:59: undefined: atomic.SwapInt32
godep: go exit status 2
make: *** [build-elasticsearch] Error 1
Have never used GO before so not sure how I go about fixing it
go1.1.1 linux/amd64

Fixed it....upgraded to go1.4.1


How to configure email validation

According to the closed issue #382 it is now possible to configure the email adress  ("to" part) validation. However I fail how to do that.
As far as I can see the validation is hardcoded here:

   //Swift_Mime_Headers_MailboxHeader::344
    /**
     * Throws an Exception if the address passed does not comply with RFC 2822.
     *
     * @param string $address
     *
     * @throws Swift_RfcComplianceException If invalid.
     */
    private function assertValidAddress($address)
    {
        if (!$this->emailValidator->isValid($address, new RFCValidation())) {
            throw new Swift_RfcComplianceException(
                'Address in mailbox given ['.$address.'] does not comply with RFC 2822, 3.6.2.'
            );
        }
    }

Am I missing something? I understand I can change the validator class by replacing it in the dependency injection - but I do not get how I could configure the validation when doing this.

The same for me. I don't see the way how to configure the validation.

Same here... this does not seem to be very configurable at all right now?

I did a little more searching in the code base: I believe it is save to say that the email validation cannot be extended ("configured") like the author of the library intended: https://github.com/egulias/EmailValidator#how-to-extend
What you can do is something like this:
class MyValidator extends \Egulias\EmailValidator\EmailValidator
{
    public function isValid($email, \Egulias\EmailValidator\Validation\EmailValidation $emailValidation)
    {
       // Ommit the second parameter $emailValidation and do some other magic
        return true;
    }
}

Swift_DependencyContainer::getInstance()
    ->register('email.validator')
    ->asSharedInstanceOf('MyValidator');

I would argue that not the "EmailValidator" but the "EmailValidation" should have been incorporated in the dependency map and the assertValid* methods.
I tinkered with this in my fork https://github.com/madflow/swiftmailer/tree/email_validation and introduced the EmailValidation in the dependency map. Not sure if a PR will make sense.

I want to fetch the email from swiftmailer username from the yaml file using ContainerInterface and set it inside setFrom(). Please share some insight on why getParameter echos the email address but value passed in setFrom() is  [*\id]. So, I see an R.F.C error


Sports Equipments Classification #3913

Title and Issue number
Sports Equipments Classification #3913
Close #3913
Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md

Hi @MohitGupta121! It would be great if you could review my PR. Thank you.


Catalan translation

Catalan translation of the interface

Released in 0.8.12
https://github.com/rroller/dahua/releases/tag/0.8.12
Thanks again!


fix dangling comma lint errors

there's probably a eslint update. those were passing locally just fine

I was running the tests locally, so that's maybe why I didn't notice.


Add pekko-stream support

Add pulsar4s-pekko-stream, which provides the same functionality as pulsar4s-akka-stream but for Pekko rather than Akka.

@judu are you the right person to look at this?


update regions and zones

This PR adds/ update regions and zones
Fixes issue https://github.com/ppc64le-cloud/powervs-utils/issues/14

/cc @dharaneeshvrd @Karthik-K-N
please review and also Chennai DC and also go through this doc - https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-ibm-cloud-reg and see what else is missing.

I have noticed new machine Types added in zones, I have added those as well
But in some cases like in Zone dal12  having machine types E980, S922and  dal10  is having machine types E980, S1022, S922 . Machine Types are different for different zones.
How we will handle these cases since we have single entry of zones belonging to same region in map ?
For now we have kept the common machine Types in zones
https://github.com/ppc64le-cloud/powervs-utils/blob/main/region.go#L65

Individual zone based machine types would alter the current region map.
If we are sure that region map is not directly consumed and only util funcs are consumed, then we can alter the map and util funcs.

I dont have much idea on the impact, @hamzy @mjturek could you please take a look.

Individual zone based machine types would alter the current region map.
If we are sure that region map is not directly consumed and only util funcs are consumed, then we can alter the map and util funcs.

I have noticed new machine Types added in zones, I have added those as well But in some cases like in Zone dal12  having machine types E980, S922and dal10  is having machine types E980, S1022, S922 . Machine Types are different for different zones. How should we handle these cases since we have single entry of zones belonging to same region in map ?
For now we have kept the common machine Types in zones https://github.com/ppc64le-cloud/powervs-utils/blob/main/region.go#L65

Have created different issue for this https://github.com/ppc64le-cloud/powervs-utils/issues/16

Overall LGTM!
@arshadd-b Please update the commit message with proper details!

Overall LGTM! @arshadd-b Please update the commit message with proper details!

done


Handling for internal server errors

If the thread of execution responsible for delivering an HTTP prediction response encounters an unexpected error, this PR ensures that we respond with error code 500 instead of timing out.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Clipper-PRB/511/
Test FAILed.

Does this fix #245?

@dcrankshaw This fixes the Connection Aborted behavior cited in #245. Instead, fatal errors will return HTTP code 500. However, I doubt this fixes the underlying cause of the exception being thrown in #245.

Sounds good. I figured you got that from somewhere, just wanted to double check. I'll merge once the tests pass.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Clipper-PRB/515/
Test PASSed.


[CI] Where is Julia being installed?

?

Trying to debug https://julialang.slack.com/archives/CPWJ5DGG1/p1619512408105900?thread_ts=1619480226.104400&channel=CPWJ5DGG1&message_ts=1619512408.105900

Basically, I think this means that your CI jobs are not actually using the version of Julia installed by setup-julia. I think you're just using whatever default Julia is shipped on the GHA runners. (Because setup-julia installs into /opt, but you delete /opt after running setup-julia.)

Which is the same version anyway?

Sure, at least right now. But it's confusing, because if someone reads the jobs section, they'll think that the versions listed in the jobs section are exactly the versions being used by CI, which is not the case.
If you are fine always using the default version of Julia, you could just remove setup-julia.

See #143 and #144


Issue/91/zlibtransport integration

Add the alternative zlib implementation - muzic
Add tests for muzic
Add options to enable muzic
Add tests for TZlibTransport
Add options to enable TZlibTransport

@SdtElectronics - i see several huge and variable-length arrays declared in function scope in one of the trat files. They should be declared static and at file scope.
There are some compilation failures in CI that need to be addressed as well.

@SdtElectronics - a few housekeeping changes

Please move lib/muzic contents to thrift source dir (the goal was to keep TZlibTransport implementation details private). Conditionally compiled source can be activated with the thrift zlib option, share same CMakeLists.txt, etc. muzic tests can be under lib/thrift/muzic.

Please cleanly separate into 2+ commits (1+ for lib and 1+ for tests). It might make sense to keep ThriftTest commit separate from muzic test commit. Please ensure muzic has some basic ztest coverage.

Please ensure all tests are Apache licensed.

For each 3rd party source file, please add the file in it's original format as a separate commit. In the commit message, please include the URL of the original source and the exact git commit of the file as it was taken. Any changes to the original sources should happen in separate commits.

For any 3rd party sources, we need to do a license review. That means we need to verify the file / license in it's original state. If the SPDX identifier was added, it should be done in a separate commit and checked for accuracy.

@stephanosio - can you please help with reviewing 3rd party sources?

My suggestion on the external code contribution would be to use the format documented by the project:
https://docs.zephyrproject.org/latest/contribute/guidelines.html#identifying-contribution-origin.
See https://github.com/zephyrproject-rtos/zephyr/commit/c96f15ecf30fcf75d1dfd654af49c18f7687a80c for example.
There should be two separate commits for importing these external libraries: the first one "importing" the uzlib as-is, and the second one "importing" the "Inflater" as-is.
Also you might want to specify the MIT and Zlib licences as "additional" licences in the license_config.yml so that the scancode action does not report a failure.
Note that both MIT and Zlib are OSI-approved licences and their inclusion into this module should not be a problem for the project.


Trailing WORDPRESS_HOST slash breaks builds

@colbyfayock Yes, checked just now and seems like is breaking with the trailingslash, it adds double //. Also this is related to #79.

Originally posted by @GuilleAngulo in https://github.com/colbyfayock/next-wordpress-starter/issues/50#issuecomment-717495655

@GuilleAngulo i can't assign it to you for some reason 😂  but here it is

hahaha 👍


poll client for Enum.* and LE_* constants

Not present outside of a running client according to meo.

Initial cut at 0811a9ce289054ce9388062cbb2b7f6703e64492, closing.


GitBlit support for "Open file at commit" #65

Mostly copied from createUrlToFileOnBranch, but it works
Fixes #65

Awesome, thanks for this.


Banner test ads on Android stopped working.

I have noticed that a few weeks ago banner test ads for Android (ca-app-pub-3940256099942544/6300978111) stopped to work.
Here's the error message I am getting when requesting the above ad id:
LoadAdError(code: 3, domain: com.google.android.gms.ads, message: No ad config., responseInfo: ResponseInfo(responseId: null, mediationAdapterClassName: , adapterResponses: []))

The last changes to my codebase that touched the parts responsible for loading and displaying ads are from Nov 2021, also test banner ads for iOS  work perfectly as do interstitial test ads for both Android and iOS.
I am on the most recent stable version of both Flutter and google_mobile_ads.
Is there anything that you could advise?

@maheshmnj could you point me to the examples that once were part of this library so that I can try to run one with the above mentioned ad id? The examples were once here (and this is how I learned how to implement them in my projects), but for some reason I cannot find them now.

@hicnar  You can try running this example app https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/google_mobile_ads/example

I tried to run this but I was not able because it uses the old v1 embedding. Could you please upgrade your examples? I guess you haven't run them for quite a while

@hicnar can you please try this sample project? Although I agree that the example needs to be updated.

I had to modify it a bit, but all in all I tested that and it looks like the problem is tied one of my android devices (S9) it works if run on an emulator also it works when run on Google Pixel C tablet. Which makes me thing it has something to do with something related to my S9. Apologies for opening this without running more tests across different types of Android devices.


[Type Checker] Directional Path Consistency algorithm

What's in this pull request?
Improvements to the TypeChecker, namely DPC
(directional path consistency) algoritm which tries to
solve individual sub-expressions and combine
resolved types as a way to reduce pre-existing OSR domains. Solving
is done bottom-up so each consecutive sub-expression tightens
possible solution domain even further.
Note: Original PR (https://github.com/apple/swift/pull/4485); Changes: updated test for SR-2102 to avoid importing Foundation and clang-format'ed sources and tests.
Resolved bug number: (SR-139)
Resolved bug number: (SR-838)
Resolved bug number: (SR-2102)
And most likely at least couple of others related to "expression is too complex" I haven't seen yet.

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    All supported platforms     | @swift-ci Please smoke test and merge
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

A smoke test on macOS does the following:

Builds the compiler incrementally.
Builds the standard library only for macOS. Simulator standard libraries and
device standard libraries are not built.
lldb is not built.
The test and validation-test targets are run only for macOS. The optimized
version of these tests are not run.

A smoke test on Linux does the following:

Builds the compiler incrementally.
Builds the standard library incrementally.
lldb is built incrementally.
The swift test and validation-test targets are run. The optimized version of these
tests are not run.
lldb is tested.

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    All supported platforms     | @swift-ci Please test and merge
    OS X platform               | @swift-ci Please test OS X platform
    OS X platform               | @swift-ci Please benchmark
    Linux platform              | @swift-ci Please test Linux platform

Lint Testing
    Language     | Comment
    ------------ | -------------
    Python       | @swift-ci Please Python lint

Note: Only members of the Apple organization can trigger swift-ci.

DPC algoritm tries to solve individual sub-expressions and combine
resolved types as a way to reduce pre-existing OSR domains. Solving
is done bottom-up so each consecutive sub-expression tightens
possible solution domain even further.

/cc @rudkx @DougGregor

@swift-ci Smoke test macOS.

@swift-ci Test and merge.

@rudkx Sorry if it's stupid question, but regarding issues at bugs.swift.org that this PR handles, should I assign them to myself and resolve once everything is merged?

@xedin In this case I'll take care of that as well as reviewing any other known performance test cases we have.

It looks like the tests passed (macOS and Linux), but the automation won't do the merge because it wasn't specifically the macOS smoke test.


chore(deps): bump https://github.com/jenkins-x/jx-cli to 3.0.332

Update jenkins-x/jx-cli to 3.0.332
Command run was ./promote/main

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign jenkins-x-labs-bot
You can assign the PR to them by writing /assign @jenkins-x-labs-bot in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

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


[DOCS] The changelog does not list version 1.1.4

Seems like a new version was released (1.1.4) but the changelog does not describe it

I find changelogs are duplicated in [CHANGELOG.md](https://github.com/jayvynl/django-clickhouse-backend/blob/main/CHANGELOG.md) and github release page. Maybe I should remove the changelog file.

Hey @jayvynl any timeline for next release?

Hey @jayvynl any timeline for next release?

when implementing cityhash function, maybe this weekend.

Okay, great. Thanks @jayvynl


Build main file

Should essentially search through the steam market. and get the case url you want

Completed


say: not found

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I have read the Contribution Guidelines

Issue Description
say action not working on my 2.45.0 fastlane.
Fastfile is very simple:
lane :test do
  say "I can speak"
end

Captured Output
Command Used: test
Output/Log

DEBUG [2017-07-10 14:53:45.81]: Checking if there are any plugins that should be loaded...
ERROR [2017-07-10 14:53:45.88]: No such file or directory - xcode-select
INFO [2017-07-10 14:53:45.88]: Driving the lane 'test' 🚀
INFO [2017-07-10 14:53:45.88]: -----------------
INFO [2017-07-10 14:53:45.88]: --- Step: say ---
INFO [2017-07-10 14:53:45.88]: -----------------
INFO [2017-07-10 14:53:45.89]: $ say 'I can speak'
INFO [2017-07-10 14:53:45.89]: ▸ sh: 1: say: not found
WARN [2017-07-10 14:53:45.89]: Lane Context:
INFO [2017-07-10 14:53:45.89]: {:PLATFORM_NAME=>nil, :LANE_NAME=>"test"}
ERROR [2017-07-10 14:53:45.89]: Exit status of command 'say 'I can speak'' was 127 instead of 0.
sh: 1: say: not found

INFO [2017-07-10 14:53:45.89]: Successfully generated documentation at path '/home/lex/workspace/sapho-cordova/fastlane/README.md'

+------+--------+-------------+
|      fastlane summary       |
+------+--------+-------------+
| Step | Action | Time (in s) |
+------+--------+-------------+
| 💥   | say    | 0           |
+------+--------+-------------+

ERROR [2017-07-10 14:53:45.91]: fastlane finished with errors

Looking for related GitHub issues on fastlane/fastlane...
Search query: Exit status of command 'say 'I can speak'' was 127 instead of 0.
sh: 1: say: not found

URL: https://api.github.com/search/issues?q=Exit%20status%20of%20command%20'say%20'I%20can%20speak''%20was%20127%20instead%20of%200.%0Ash:%201:%20say:%20not%20found%0A+repo:fastlane/fastlane
➡  Increment build number
    https://github.com/fastlane/fastlane/pull/127 [closed] 2 💬
    04 Feb 2017

🚫 fastlane environment 🚫
Stack

Key
Value

OS
debian_based stretch/sid

Ruby
2.3.1

Bundler?
false

Git
git version 2.7.4

Installation Source
/usr/local/bin/fastlane

Host
Ubuntu 16.04.2 LTS debian_based stretch/sid (4.4.0-79-generic)

Ruby Lib Dir
/usr/lib

OpenSSL Version
OpenSSL 1.0.2g  1 Mar 2016

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

System Locale

Variable
Value

LANG
cs_CZ.UTF-8
✅

LC_ALL

LANGUAGE

🚫

fastlane files:
`./fastlane/Fastfile`
lane :test do
  say "I can speak"
end

No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.45.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

slack-notifier
1.5.1

CFPropertyList
2.3.5

claide
1.0.2

colored2
3.1.2

nanaimo
0.2.3

xcodeproj
1.5.0

rouge
2.0.7

xcpretty
0.2.8

terminal-notifier
1.8.0

unicode-display_width
1.3.0

terminal-table
1.8.0

plist
3.3.0

public_suffix
2.0.5

addressable
2.5.1

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.5.0

babosa
1.0.2

colored
1.2

highline
1.7.8

commander-fastlane
4.4.5

excon
0.57.1

faraday
0.12.1

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20170404

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

fastimage
2.1.0

gh_inspector
1.0.3

uber
0.1.0

declarative
0.0.9

declarative-option
0.1.0

representable
3.0.4

retriable
3.0.2

mime-types-data
3.2016.0521

mime-types
3.1

little-plugger
1.1.4

multi_json
1.12.1

logging
2.2.2

jwt
1.5.6

memoist
0.16.0

os
0.9.6

signet
0.7.3

googleauth
0.5.1

httpclient
2.8.3

google-api-client
0.12.0

json
1.8.3

mini_magick
4.5.1

multi_xml
0.6.0

rubyzip
1.2.1

security
0.1.3

xcpretty-travis-formatter
0.0.4

dotenv
2.2.1

bundler
1.15.1

faraday_middleware
<IP_ADDRESS>

io-console
0.4.5

generated on: 2017-07-10

/var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane_core/lib/fastlane_core/ui/interface.rb:143:in `shell_error!': [!] Exit status of command 'say 'I can speak'' was 127 instead of 0. (FastlaneCore::Interface::FastlaneShellError)
sh: 1: say: not found
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane_core/lib/fastlane_core/ui/ui.rb:14:in `method_missing'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/helper/sh_helper.rb:56:in `sh_control_output'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/helper/sh_helper.rb:10:in `sh'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/actions/say.rb:10:in `run'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/fast_file.rb:269:in `block in say'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/actions/actions_helper.rb:50:in `execute_action'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/fast_file.rb:267:in `say'
    from Fastfile:2:in `block in parsing_binding'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/lane.rb:33:in `call'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/lane_manager.rb:52:in `cruise_lane'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/command_line_handler.rb:30:in `handle'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/commands_generator.rb:104:in `block (2 levels) in run'
    from /var/lib/gems/2.3.0/gems/commander-fastlane-4.4.5/lib/commander/command.rb:178:in `call'
    from /var/lib/gems/2.3.0/gems/commander-fastlane-4.4.5/lib/commander/command.rb:153:in `run'
    from /var/lib/gems/2.3.0/gems/commander-fastlane-4.4.5/lib/commander/runner.rb:476:in `run_active_command'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:56:in `run!'
    from /var/lib/gems/2.3.0/gems/commander-fastlane-4.4.5/lib/commander/delegates.rb:15:in `run!'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/commands_generator.rb:303:in `run'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/commands_generator.rb:42:in `start'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/fastlane/lib/fastlane/cli_tools_distributor.rb:66:in `take_off'
    from /var/lib/gems/2.3.0/gems/fastlane-2.45.0/bin/fastlane:20:in `<top (required)>'
    from /usr/local/bin/fastlane:23:in `load'
    from /usr/local/bin/fastlane:23:in `<main>'

The say command is only available in OSX, it's an apple utility. If you have espeak installed, you can shell out and run:
echo "your string"|espeak

I see, thanks. I thought it's multiplatform action for notifications.